diff options
author | Dylan Griffith <dyl.griffith@gmail.com> | 2018-07-25 18:36:58 +0300 |
---|---|---|
committer | Dylan Griffith <dyl.griffith@gmail.com> | 2018-07-30 16:08:32 +0300 |
commit | dc8ccbb6e0b9e14ff90e34661beee01da33008c7 (patch) | |
tree | b9cc4a58ebfe4ed6eefbb079b194ed809f774465 | |
parent | 628ff2cf173f9dd9cac437991084b4507830154c (diff) |
Minor refactoring of Helm and ApplicationData
-rw-r--r-- | app/models/clusters/applications/helm.rb | 50 | ||||
-rw-r--r-- | app/models/clusters/concerns/application_data.rb | 27 | ||||
-rw-r--r-- | spec/models/clusters/applications/helm_spec.rb | 4 |
3 files changed, 49 insertions, 32 deletions
diff --git a/app/models/clusters/applications/helm.rb b/app/models/clusters/applications/helm.rb index 0004997e1a0..b566edae7bb 100644 --- a/app/models/clusters/applications/helm.rb +++ b/app/models/clusters/applications/helm.rb @@ -17,20 +17,7 @@ module Clusters before_create :create_keys_and_certs - def create_keys_and_certs - ca_cert = Gitlab::Kubernetes::Helm::Certificate.generate_root - self.ca_key = ca_cert.key_string - self.ca_cert = ca_cert.cert_string - end - - def ca_cert_obj - return unless has_ssl? - - Gitlab::Kubernetes::Helm::Certificate - .from_strings(ca_key, ca_cert) - end - - def issue_cert + def issue_client_cert ca_cert_obj.issue end @@ -41,21 +28,42 @@ module Clusters end def install_command - tiller_cert = ca_cert_obj.issue(expires_in: Gitlab::Kubernetes::Helm::Certificate::INFINITE_EXPIRY) - Gitlab::Kubernetes::Helm::InitCommand.new( name: name, - files: { - 'ca.pem': ca_cert, - 'cert.pem': tiller_cert.cert_string, - 'key.pem': tiller_cert.key_string - } + files: files ) end def has_ssl? ca_key.present? && ca_cert.present? end + + private + + def files + { + 'ca.pem': ca_cert, + 'cert.pem': tiller_cert.cert_string, + 'key.pem': tiller_cert.key_string + } + end + + def create_keys_and_certs + ca_cert = Gitlab::Kubernetes::Helm::Certificate.generate_root + self.ca_key = ca_cert.key_string + self.ca_cert = ca_cert.cert_string + end + + def tiller_cert + @tiller_cert ||= ca_cert_obj.issue(expires_in: Gitlab::Kubernetes::Helm::Certificate::INFINITE_EXPIRY) + end + + def ca_cert_obj + return unless has_ssl? + + Gitlab::Kubernetes::Helm::Certificate + .from_strings(ca_key, ca_cert) + end end end end diff --git a/app/models/clusters/concerns/application_data.rb b/app/models/clusters/concerns/application_data.rb index 7738138e753..d66f09d48b5 100644 --- a/app/models/clusters/concerns/application_data.rb +++ b/app/models/clusters/concerns/application_data.rb @@ -15,15 +15,8 @@ module Clusters def files @files ||= begin files = { 'values.yaml': values } - if cluster.application_helm.has_ssl? - ca_cert = cluster.application_helm.ca_cert - helm_cert = cluster.application_helm.issue_cert - files.merge!({ - 'ca.pem': ca_cert, - 'cert.pem': helm_cert.cert_string, - 'key.pem': helm_cert.key_string - }) - end + + files.merge!(certificate_files) if cluster.application_helm.has_ssl? files end @@ -31,6 +24,22 @@ module Clusters private + def certificate_files + { + 'ca.pem': ca_cert, + 'cert.pem': helm_cert.cert_string, + 'key.pem': helm_cert.key_string + } + end + + def ca_cert + cluster.application_helm.ca_cert + end + + def helm_cert + @helm_cert ||= cluster.application_helm.issue_client_cert + end + def chart_values_file "#{Rails.root}/vendor/#{name}/values.yaml" end diff --git a/spec/models/clusters/applications/helm_spec.rb b/spec/models/clusters/applications/helm_spec.rb index 6396048492e..e5b2bdc8a4e 100644 --- a/spec/models/clusters/applications/helm_spec.rb +++ b/spec/models/clusters/applications/helm_spec.rb @@ -15,9 +15,9 @@ describe Clusters::Applications::Helm do it { is_expected.to contain_exactly(installed_cluster) } end - describe '#issue_cert' do + describe '#issue_client_cert' do let(:application) { create(:clusters_applications_helm) } - subject { application.issue_cert } + subject { application.issue_client_cert } it 'returns a new cert' do is_expected.to be_kind_of(Gitlab::Kubernetes::Helm::Certificate) |