class Porkadot::Assets::Kubelet
def bootstrap_cert(refresh=false)
def bootstrap_cert(refresh=false) return @bootstrap_cert if defined?(@bootstrap_cert) if File.file?(config.bootstrap_cert_path) and !refresh self.logger.debug("--> Bootstrap cert already exists, skipping: #{config.bootstrap_cert_path}") @bootstrap_cert = OpenSSL::X509::Certificate.new(File.read(config.bootstrap_cert_path)) else @bootstrap_cert = certs._client_cert( config.bootstrap_cert_path, "/O=porkadot:node-bootstrappers/CN=node-bootstrapper:#{config.name}", self.bootstrap_key, self.certs.ca_cert(false), self.certs.ca_key ) end return @bootstrap_cert end
def bootstrap_key
def bootstrap_key @bootstrap_key ||= certs.private_key(config.bootstrap_key_path) return @bootstrap_key end
def initialize config
def initialize config @config = config @logger = config.logger @global_config = config.config @certs = Porkadot::Assets::Certs::Kubernetes.new(global_config) end
def render
def render logger.info "--> Rendering #{config.name} node" unless File.directory?(config.target_path) FileUtils.mkdir_p(config.target_path) end unless File.directory?(config.target_secrets_path) FileUtils.mkdir_p(config.target_secrets_path) end ca_data = certs.ca_cert.to_pem ca_data = Base64.strict_encode64(ca_data) render_erb 'bootstrap-kubelet.conf', ca_data: ca_data render_bootstrap_certs render_erb 'config.yaml' render_erb 'kubelet.service' render_erb 'initiatorname.iscsi' render_erb 'metadata.json' end
def render_bootstrap_certs
def render_bootstrap_certs logger.info "----> bootstrap certs" self.bootstrap_key self.bootstrap_cert(true) end