From e3a66b1bc2152760d30fc5bb86fb2b1ab9c3ce23 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Tue, 26 Jan 2021 11:26:32 +0000 Subject: [PATCH] Update Helm to version 3.3.4 * helm_version -> v3.3.4 * required changes to Helm CLI invocations Change-Id: I4816a6da5da50d039d5cf77717d8d33797ff0d6e Signed-off-by: Cian Johnston --- .../playbooks/roles/install/tasks/main.yaml | 20 ++++++++++++++++-- .../playbooks/roles/install/tasks/main.yml | 20 ++++++++++++++++-- playbooks/roles/package/defaults/main.yaml | 1 - playbooks/roles/package/tasks/containers.yaml | 16 ++++++++++++++ .../postinstall/tasks/configure-jumphost.yml | 19 +++++++++++------ .../postinstall/tasks/configure-localhost.yml | 21 ++++++++++++------- vars/kubernetes.yaml | 2 +- 7 files changed, 80 insertions(+), 19 deletions(-) diff --git a/apps/prometheus/kubespray/playbooks/roles/install/tasks/main.yaml b/apps/prometheus/kubespray/playbooks/roles/install/tasks/main.yaml index 3161f20..98aca07 100644 --- a/apps/prometheus/kubespray/playbooks/roles/install/tasks/main.yaml +++ b/apps/prometheus/kubespray/playbooks/roles/install/tasks/main.yaml @@ -42,6 +42,22 @@ command: helm init --client-only --local-repo-url {{ local_repo_url }} --stable-repo-url {{ stable_repo_url }} register: helm_init_result changed_when: true + when: helm_version is version('v3', '<') + +- name: Check if stable helm repo exists (helm v3+) + command: "helm repo list" + changed_when: true + failed_when: false + register: helm_repo_list_result + +- name: Add stable helm repo (helm v3+) + command: "helm repo add stable {{ stable_repo_url }}" + register: helm_repo_add_stable_result + changed_when: true + when: > + helm_version is version('v3.0.0', '>=') + and execution_mode == "online-deployment" + and helm_repo_list_result is not search(stable_repo_url) - name: Clone Helm Charts repository git: @@ -87,9 +103,9 @@ - name: Install Prometheus using helm command: > helm install - --name "{{ prometheus_service }}" + {% if helm_version is version('v3.0.0', '<') %} --name {% endif %}"{{ prometheus_service }}" --namespace "{{ prometheus_namespace }}" - --timeout 900 + --timeout "900{% if helm_version is version('v3.0.0', '>=') %}s{% endif %}" {{ config_path }}/repos/charts/stable/prometheus register: prometheus_helm_log changed_when: true diff --git a/apps/spinnaker/kubespray/playbooks/roles/install/tasks/main.yml b/apps/spinnaker/kubespray/playbooks/roles/install/tasks/main.yml index a722222..ddff98e 100644 --- a/apps/spinnaker/kubespray/playbooks/roles/install/tasks/main.yml +++ b/apps/spinnaker/kubespray/playbooks/roles/install/tasks/main.yml @@ -42,6 +42,22 @@ command: helm init --client-only --local-repo-url {{ local_repo_url }} --stable-repo-url {{ stable_repo_url }} register: helm_init_result changed_when: true + when: helm_version is version('v3', '<') + +- name: Check if stable helm repo exists (helm v3+) + command: "helm repo list" + changed_when: true + failed_when: false + register: helm_repo_list_result + +- name: Add stable helm repo (helm v3+) + command: "helm repo add stable {{ stable_repo_url }}" + register: helm_repo_add_stable_result + changed_when: true + when: > + helm_version is version('v3.0.0', '>=') + and execution_mode == "online-deployment" + and helm_repo_list_result is not search(stable_repo_url) - name: Clone Helm Charts repository git: @@ -108,9 +124,9 @@ - name: Install Spinnaker using helm command: > helm install - --name "{{ spinnaker_service }}" + {% if helm_version is version('v3.0.0', '<')%} --name {% endif %}"{{ spinnaker_service }}" --namespace "{{ spinnaker_namespace }}" - --timeout 900 + --timeout "900{% if helm_version is version('v3.0.0', '>=') %}s{% endif %}" {{ engine_cache }}/repos/charts/stable/spinnaker register: spinnaker_helm_log changed_when: true diff --git a/playbooks/roles/package/defaults/main.yaml b/playbooks/roles/package/defaults/main.yaml index 04f5325..4596859 100644 --- a/playbooks/roles/package/defaults/main.yaml +++ b/playbooks/roles/package/defaults/main.yaml @@ -59,7 +59,6 @@ k8s_misc_images: - nodelocaldns - pod_infra - registry_proxy - - tiller - weave_kube - weave_npc diff --git a/playbooks/roles/package/tasks/containers.yaml b/playbooks/roles/package/tasks/containers.yaml index 9101950..2d032b5 100644 --- a/playbooks/roles/package/tasks/containers.yaml +++ b/playbooks/roles/package/tasks/containers.yaml @@ -90,6 +90,12 @@ become: true changed_when: false +- name: Pull tiller container image (helm v2 only) + command: "docker pull {{ downloads['tiller'].repo }}:{{ downloads['tiller'].tag }}" + become: true + changed_when: false + when: helm_version is version('v3.0.0', '<') + - name: Pull misc container images command: "docker pull {{ downloads[item].repo }}:{{ downloads[item].tag }}" loop: "{{ k8s_misc_images }}" @@ -123,6 +129,16 @@ become: true changed_when: false +- name: Save tiller container image (helm v2 only) + command: |- + docker save {{ downloads['tiller'].repo }}:{{ downloads['tiller'].tag }} + -o {{ downloads['tiller'].repo }} -o {{ downloads['tiller'].repo | replace('/', '_') }}_{{ downloads['tiller'].tag }}.tar + args: + chdir: "{{ containers_folder }}" + become: true + changed_when: false + when: helm_version is version('v3.0.0', '<') + - name: Save other container images command: |- docker save {{ other_images[item.key].repo }}:{{ other_images[item.key].tag }} diff --git a/playbooks/roles/postinstall/tasks/configure-jumphost.yml b/playbooks/roles/postinstall/tasks/configure-jumphost.yml index 3e0cfb5..a5dc9a6 100644 --- a/playbooks/roles/postinstall/tasks/configure-jumphost.yml +++ b/playbooks/roles/postinstall/tasks/configure-jumphost.yml @@ -55,17 +55,24 @@ remote_src: true dest: /tmp -- name: Place helm and tiller binaries to /usr/local/bin +- name: Place helm binaries to /usr/local/bin copy: - src: "/tmp/linux-amd64/{{ item }}" + src: "/tmp/linux-amd64/helm" remote_src: true - dest: "/usr/local/bin/{{ item }}" + dest: "/usr/local/bin/helm" owner: root group: root mode: 0755 - with_items: - - helm - - tiller + +- name: Place tiller binaries to /usr/local/bin + copy: + src: "/tmp/linux-amd64/tiller" + remote_src: true + dest: "/usr/local/bin/tiller" + owner: root + group: root + mode: 0755 + when: helm_version is version('v3.0.0', '<') - name: Delete temporary files and folders file: diff --git a/playbooks/roles/postinstall/tasks/configure-localhost.yml b/playbooks/roles/postinstall/tasks/configure-localhost.yml index f6a23b2..3616adc 100644 --- a/playbooks/roles/postinstall/tasks/configure-localhost.yml +++ b/playbooks/roles/postinstall/tasks/configure-localhost.yml @@ -35,7 +35,7 @@ src: "{{ engine_cache }}/repos/kubespray/inventory/engine/artifacts/admin.conf" dest: "/home/{{ ansible_env.SUDO_USER }}/.kube/config" owner: "{{ ansible_env.SUDO_USER }}" - mode: 0644 + mode: 0600 - name: Download kubectl and place it to /usr/local/bin get_url: @@ -51,17 +51,24 @@ remote_src: true dest: /tmp -- name: Place helm and tiller binaries to /usr/local/bin +- name: Place helm binaries to /usr/local/bin copy: - src: "/tmp/linux-amd64/{{ item }}" + src: "/tmp/linux-amd64/helm" remote_src: true - dest: "/usr/local/bin/{{ item }}" + dest: "/usr/local/bin/helm" owner: root group: root mode: 0755 - with_items: - - helm - - tiller + +- name: Place tiller binaries to /usr/local/bin + copy: + src: "/tmp/linux-amd64/tiller" + remote_src: true + dest: "/usr/local/bin/tiller" + owner: root + group: root + mode: 0755 + when: helm_version is version('v3.0.0', '<') - name: Delete temporary files and folders file: diff --git a/vars/kubernetes.yaml b/vars/kubernetes.yaml index f533d2e..c0247b3 100644 --- a/vars/kubernetes.yaml +++ b/vars/kubernetes.yaml @@ -108,7 +108,7 @@ spinnaker_app_version: "1.16.2" # ------------------------------------------------------------------------------- # Kubernetes: App versions # ------------------------------------------------------------------------------- -helm_version: "v2.16.1" +helm_version: "v3.3.4" charts_version: "0b64349aeb537d0fd038df0e1d40ec5cf1206609" istio_version: "1.3.1" -- 2.25.1