lib/porkadot/configs/kubelet.rb
module Porkadot; module Configs class KubeletDefault include Porkadot::ConfigUtils def initialize config @config = config @raw = ::Porkadot::Raw.new end def target_path File.join(self.config.assets_dir, 'kubelet-default') end def target_secrets_path File.join(self.config.secrets_root_dir, 'kubelet-default') end def addon_path File.join(self.target_path, 'addons') end def addon_secrets_path File.join(self.target_secrets_path, 'addons') end def ca_crt_path File.join(self.target_path, 'ca.crt') end def control_plane_endpoint (self.raw.kubernetes && self.raw.kubernetes.control_plane_endpoint) || self.config.k8s.control_plane_endpoint end end class Kubelet include Porkadot::ConfigUtils attr_reader :name attr_reader :connection def initialize config, name, raw @config = config @name = name @raw = raw || ::Porkadot::Raw.new hostname = @raw.hostname || name con = { hostname: hostname } gcon = config.connection.to_hash lcon = @raw.connection ? @raw.connection.to_hash : {} @connection = ::Porkadot::Raw.new(con.rmerge(gcon.rmerge(lcon))) end def apiserver? self.raw.labels && self.raw.labels.include?(Porkadot::K8S_MASTER_LABEL) end def control_plane_endpoint (self.raw.kubernetes && self.raw.kubernetes.control_plane_endpoint) || self.config.k8s.control_plane_endpoint end def labels_string return '' unless self.raw.labels return self.raw.labels.map{|v| v.compact.join('=')}.join(',') end def labels return self.raw.labels || {} end def annotations return self.raw.annotations || {} end def kubelet_config kc = self.raw.config || ::Porkadot::Raw.new kc = kc.merge(self.config.kubernetes.kubelet.config) kc.clusterDNS << self.config.k8s.networking.dns_ip.to_s kc.clusterDomain = self.config.k8s.networking.dns_domain if self.raw.taints kc.registerWithTaints = self.raw.taints end return kc end def hostname self.raw.hostname || self.name end def target_path File.join(self.config.assets_dir, 'kubelet', name) end def target_secrets_path File.join(self.config.secrets_root_dir, 'kubelet', name) end def addon_path File.join(self.target_path, 'addons') end def addon_secrets_path File.join(self.target_secrets_path, 'addons') end def bootstrap_key_path File.join(self.target_secrets_path, 'bootstrap.key') end def bootstrap_cert_path File.join(self.target_path, 'bootstrap.crt') end end end; end