diff options
author | Chris Baumbauer <cab@cabnetworks.net> | 2018-10-24 15:13:33 -0700 |
---|---|---|
committer | Chris Baumbauer <cab@cabnetworks.net> | 2018-10-24 15:13:33 -0700 |
commit | 661fd213de41d06ebdbecb92f37668f0009c838d (patch) | |
tree | 0275b558ea9bce9856a73930203f09aecace6d30 | |
parent | 742f8d64547c3e922afd8cb9bd2e5e64ae155924 (diff) | |
download | gitlab-ce-661fd213de41d06ebdbecb92f37668f0009c838d.tar.gz |
Update helm version 1.7.2 -> 2.11.0
-rw-r--r-- | app/models/clusters/platforms/kubernetes.rb | 6 | ||||
-rw-r--r-- | changelogs/unreleased/update-helm-version.yml | 4 | ||||
-rw-r--r-- | lib/gitlab/kubernetes/helm.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/kubernetes/helm/base_command.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/kubernetes/helm/install_command.rb | 23 | ||||
-rw-r--r-- | spec/lib/gitlab/kubernetes/helm/install_command_spec.rb | 4 | ||||
-rw-r--r-- | spec/support/shared_examples/helm_generated_script.rb | 4 |
7 files changed, 38 insertions, 7 deletions
diff --git a/app/models/clusters/platforms/kubernetes.rb b/app/models/clusters/platforms/kubernetes.rb index e8e943872de..263b7d9d01e 100644 --- a/app/models/clusters/platforms/kubernetes.rb +++ b/app/models/clusters/platforms/kubernetes.rb @@ -25,6 +25,7 @@ module Clusters algorithm: 'aes-256-cbc' before_validation :enforce_namespace_to_lower_case + before_validation :enforce_ca_whitespace_trimming validates :namespace, allow_blank: true, @@ -191,6 +192,11 @@ module Clusters self.namespace = self.namespace&.downcase end + def enforce_ca_whitespace_trimming + self.ca_pem = self.ca_pem&.strip + self.token = self.token&.strip + end + def prevent_modification return unless managed? diff --git a/changelogs/unreleased/update-helm-version.yml b/changelogs/unreleased/update-helm-version.yml new file mode 100644 index 00000000000..092e8f9a9d6 --- /dev/null +++ b/changelogs/unreleased/update-helm-version.yml @@ -0,0 +1,4 @@ +--- +title: Update Helm version to 2.11.0 +author: Chris Baumbauer +type: changed diff --git a/lib/gitlab/kubernetes/helm.rb b/lib/gitlab/kubernetes/helm.rb index 4a1bdf34c3e..a53c2c9e5cb 100644 --- a/lib/gitlab/kubernetes/helm.rb +++ b/lib/gitlab/kubernetes/helm.rb @@ -1,7 +1,7 @@ module Gitlab module Kubernetes module Helm - HELM_VERSION = '2.7.2'.freeze + HELM_VERSION = '2.11.0'.freeze NAMESPACE = 'gitlab-managed-apps'.freeze SERVICE_ACCOUNT = 'tiller'.freeze CLUSTER_ROLE_BINDING = 'tiller-admin'.freeze diff --git a/lib/gitlab/kubernetes/helm/base_command.rb b/lib/gitlab/kubernetes/helm/base_command.rb index 6752f2cff43..74efe4bc8bb 100644 --- a/lib/gitlab/kubernetes/helm/base_command.rb +++ b/lib/gitlab/kubernetes/helm/base_command.rb @@ -14,7 +14,7 @@ module Gitlab ALPINE_VERSION=$(cat /etc/alpine-release | cut -d '.' -f 1,2) echo http://mirror.clarkson.edu/alpine/v$ALPINE_VERSION/main >> /etc/apk/repositories echo http://mirror1.hs-esslingen.de/pub/Mirrors/alpine/v$ALPINE_VERSION/main >> /etc/apk/repositories - apk add -U wget ca-certificates openssl >/dev/null + apk add -U wget ca-certificates openssl git >/dev/null wget -q -O - https://kubernetes-helm.storage.googleapis.com/helm-v#{Gitlab::Kubernetes::Helm::HELM_VERSION}-linux-amd64.tar.gz | tar zxC /tmp >/dev/null mv /tmp/linux-amd64/helm /usr/bin/ HEREDOC diff --git a/lib/gitlab/kubernetes/helm/install_command.rb b/lib/gitlab/kubernetes/helm/install_command.rb index 1be7924d6ac..e7907c033c0 100644 --- a/lib/gitlab/kubernetes/helm/install_command.rb +++ b/lib/gitlab/kubernetes/helm/install_command.rb @@ -4,21 +4,23 @@ module Gitlab class InstallCommand include BaseCommand - attr_reader :name, :files, :chart, :version, :repository + attr_reader :name, :files, :chart, :version, :repository, :setargs - def initialize(name:, chart:, files:, rbac:, version: nil, repository: nil) + def initialize(name:, chart:, files:, rbac:, version: nil, repository: nil, setargs: nil) @name = name @chart = chart @version = version @rbac = rbac @files = files @repository = repository + @setargs = setargs end def generate_script super + [ init_command, repository_command, + repository_update_command, script_command ].compact.join("\n") end @@ -37,6 +39,10 @@ module Gitlab ['helm', 'repo', 'add', name, repository].shelljoin if repository end + def repository_update_command + 'helm repo update >/dev/null' if repository + end + def script_command command = ['helm', 'install', chart] + install_command_flags @@ -47,13 +53,15 @@ module Gitlab name_flag = ['--name', name] namespace_flag = ['--namespace', Gitlab::Kubernetes::Helm::NAMESPACE] value_flag = ['-f', "/data/helm/#{name}/config/values.yaml"] + args_flag = optional_install_set_args_flag name_flag + optional_tls_flags + optional_version_flag + optional_rbac_create_flag + namespace_flag + - value_flag + value_flag + + args_flag end def optional_rbac_create_flag @@ -64,6 +72,15 @@ module Gitlab %w[--set rbac.create=true,rbac.enabled=true] end + def optional_install_set_args_flag + return [] unless setargs + + args = [] + setargs.each do |s| + args.push("--set", s) + end + end + def optional_version_flag return [] unless version diff --git a/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb b/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb index f28941ce58f..bbe7cbe05c5 100644 --- a/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb +++ b/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb @@ -24,6 +24,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do <<~EOS helm init --client-only >/dev/null helm repo add app-name https://repository.example.com + helm repo update >/dev/null #{helm_install_comand} EOS end @@ -51,6 +52,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do <<~EOS helm init --client-only >/dev/null helm repo add app-name https://repository.example.com + helm repo update >/dev/null #{helm_install_command} EOS end @@ -107,6 +109,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do <<~EOS helm init --client-only >/dev/null helm repo add app-name https://repository.example.com + helm repo update >/dev/null #{helm_install_command} EOS end @@ -131,6 +134,7 @@ describe Gitlab::Kubernetes::Helm::InstallCommand do <<~EOS helm init --client-only >/dev/null helm repo add app-name https://repository.example.com + helm repo update >/dev/null #{helm_install_command} EOS end diff --git a/spec/support/shared_examples/helm_generated_script.rb b/spec/support/shared_examples/helm_generated_script.rb index ef9bb7f5533..a1f92c64d38 100644 --- a/spec/support/shared_examples/helm_generated_script.rb +++ b/spec/support/shared_examples/helm_generated_script.rb @@ -6,8 +6,8 @@ shared_examples 'helm commands' do ALPINE_VERSION=$(cat /etc/alpine-release | cut -d '.' -f 1,2) echo http://mirror.clarkson.edu/alpine/v$ALPINE_VERSION/main >> /etc/apk/repositories echo http://mirror1.hs-esslingen.de/pub/Mirrors/alpine/v$ALPINE_VERSION/main >> /etc/apk/repositories - apk add -U wget ca-certificates openssl >/dev/null - wget -q -O - https://kubernetes-helm.storage.googleapis.com/helm-v2.7.2-linux-amd64.tar.gz | tar zxC /tmp >/dev/null + apk add -U wget ca-certificates openssl git >/dev/null + wget -q -O - https://kubernetes-helm.storage.googleapis.com/helm-v2.11.0-linux-amd64.tar.gz | tar zxC /tmp >/dev/null mv /tmp/linux-amd64/helm /usr/bin/ EOS end |