From 8377c131d9df6c2b10a656fdbbe7be6db595c4d9 Mon Sep 17 00:00:00 2001 From: Tin Lam Date: Mon, 15 Mar 2021 13:24:27 -0500 Subject: [PATCH] fix(overrides): place back missing overrides This patch places back in functionality introduced in [0] that were lost from refactoring. [0] https://review.opendev.org/c/airship/charts/+/775065 Signed-off-by: Tin Lam Change-Id: I6671fcf36c2fe0867c7bb7886cf24d50c09cfad0 --- .../templates/config_map.yaml | 41 ++++++++------- .../templates/config_map.yaml | 41 ++++++++------- .../templates/config_map.yaml | 51 ++++++++++--------- .../templates/config_map.yaml | 41 ++++++++------- .../templates/config_map.yaml | 41 ++++++++------- .../templates/config_map.yaml | 41 ++++++++------- .../templates/config_map.yaml | 41 ++++++++------- .../templates/config_map.yaml | 31 +++++++---- .../gate/jarvis/standard-container/Dockerfile | 1 + .../assets/jarvis/functional_deploy.sh | 9 ++-- .../roles/functional/tasks/main.yaml | 31 ++++++++++- 11 files changed, 226 insertions(+), 143 deletions(-) diff --git a/tools/gate/jarvis/5G-SA-core/amf/jarvis/development-pipeline/templates/config_map.yaml b/tools/gate/jarvis/5G-SA-core/amf/jarvis/development-pipeline/templates/config_map.yaml index ad0d598f..8598c200 100644 --- a/tools/gate/jarvis/5G-SA-core/amf/jarvis/development-pipeline/templates/config_map.yaml +++ b/tools/gate/jarvis/5G-SA-core/amf/jarvis/development-pipeline/templates/config_map.yaml @@ -28,22 +28,29 @@ data: } ] chart.json: | - [ - { - "chart_name": "amf", - "project": "amf", - "repo": "amf", - "version": "0.1.0", - "build_from_source": true, - "path": "charts", - "build": { - "git_repo": "{{ $.Values.git_repo }}", - "target_loc": "/src/checkout/amf", - "refspec": "{{ $.Values.refspec }}", - "version": "refs/changes/*:refs/changes/*" - }, - "namespace": "{{ $.Values.namespace }}", - "release_name": "amf", + [{ + "chart_name": "amf", + "project": "amf", + "repo": "amf", + "version": "0.1.0", + "build_from_source": true, + "path": "charts", + "build": { + "git_repo": "{{ $.Values.git_repo }}", + "target_loc": "/src/checkout/amf", + "refspec": "{{ $.Values.refspec }}", + "version": "refs/changes/*:refs/changes/*" + }, + "namespace": "{{ $.Values.namespace }}", + "release_name": "amf", + "sources": { + "image_map": { + "tag": ["releases", "images", "applications", "amf", "tag"], + "tmp_name": ["releases", "images", "applications", "amf", "name"], + "tmp_repo": ["releases", "images", "applications", "amf", "repo"] + } + }, + "releases": { "images": { "applications": { "amf": { @@ -54,7 +61,7 @@ data: } } } - ] + }] default.json: | { "proxy": { diff --git a/tools/gate/jarvis/5G-SA-core/ausf/jarvis/development-pipeline/templates/config_map.yaml b/tools/gate/jarvis/5G-SA-core/ausf/jarvis/development-pipeline/templates/config_map.yaml index 84e6c258..6d234e7b 100644 --- a/tools/gate/jarvis/5G-SA-core/ausf/jarvis/development-pipeline/templates/config_map.yaml +++ b/tools/gate/jarvis/5G-SA-core/ausf/jarvis/development-pipeline/templates/config_map.yaml @@ -28,22 +28,29 @@ data: } ] chart.json: | - [ - { - "chart_name": "ausf", - "project": "ausf", - "repo": "ausf", - "version": "0.1.0", - "build_from_source": true, - "path": "charts", - "build": { - "git_repo": "{{ $.Values.git_repo }}", - "target_loc": "/src/checkout/ausf", - "refspec": "{{ $.Values.refspec }}", - "version": "refs/changes/*:refs/changes/*" - }, - "namespace": "{{ $.Values.namespace }}", - "release_name": "ausf", + [{ + "chart_name": "ausf", + "project": "ausf", + "repo": "ausf", + "version": "0.1.0", + "build_from_source": true, + "path": "charts", + "build": { + "git_repo": "{{ $.Values.git_repo }}", + "target_loc": "/src/checkout/ausf", + "refspec": "{{ $.Values.refspec }}", + "version": "refs/changes/*:refs/changes/*" + }, + "namespace": "{{ $.Values.namespace }}", + "release_name": "ausf", + "sources": { + "image_map": { + "tag": ["releases", "images", "applications", "ausf", "tag"], + "tmp_name": ["releases", "images", "applications", "ausf", "name"], + "tmp_repo": ["releases", "images", "applications", "ausf", "repo"] + } + }, + "releases": { "images": { "applications": { "ausf": { @@ -54,7 +61,7 @@ data: } } } - ] + }] default.json: | { "proxy": { diff --git a/tools/gate/jarvis/5G-SA-core/mongodb/jarvis/development-pipeline/templates/config_map.yaml b/tools/gate/jarvis/5G-SA-core/mongodb/jarvis/development-pipeline/templates/config_map.yaml index bf6c9779..542e474a 100644 --- a/tools/gate/jarvis/5G-SA-core/mongodb/jarvis/development-pipeline/templates/config_map.yaml +++ b/tools/gate/jarvis/5G-SA-core/mongodb/jarvis/development-pipeline/templates/config_map.yaml @@ -25,32 +25,35 @@ data: } ] chart.json: | - [ - { - "chart_name": "mongodb-sharded", - "project": "mongodb", - "repo": "mongodb-sharded", - "version": "3.3.3", - "build_from_source": false, - "path": "", - "build": { - "name": "https://charts.bitnami.com/bitnami", - "local_repo": "bitnami_mongodb", - "target_loc": "/src/fetch/charts" - }, - "namespace": "development-pipeline", - "release_name": "mongodb-bitnami", - "images": { - "applications": { - "mongodb-sharded": { - "tag": "1.0", - "name": "mongodb", - "repo": "mongodb" - } - } + [{ + "chart_name": "mongodb-sharded", + "project": "mongodb", + "repo": "mongodb-sharded", + "version": "3.3.3", + "build_from_source": false, + "path": "", + "build": { + "name": "https://charts.bitnami.com/bitnami", + "local_repo": "bitnami_mongodb", + "target_loc": "/src/fetch/charts" + }, + "namespace": "{{ $.Values.namespace }}", + "release_name": "mongodb-bitnami", + "sources": { + "image_map": { + "tag": ["releases", "image", "tag"], + "tmp_name": ["releases", "image", "repository"], + "tmp_repo": ["releases", "image", "registry"] + } + }, + "releases": { + "image": { + "registry": "docker.io", + "repository": "bitnami/mongodb-sharded", + "tag": "4.4.4-debian-10-r28" } } - ] + }] default.json: | { "proxy": { diff --git a/tools/gate/jarvis/5G-SA-core/nrf/jarvis/development-pipeline/templates/config_map.yaml b/tools/gate/jarvis/5G-SA-core/nrf/jarvis/development-pipeline/templates/config_map.yaml index 30de6393..80c07a70 100644 --- a/tools/gate/jarvis/5G-SA-core/nrf/jarvis/development-pipeline/templates/config_map.yaml +++ b/tools/gate/jarvis/5G-SA-core/nrf/jarvis/development-pipeline/templates/config_map.yaml @@ -28,22 +28,29 @@ data: } ] chart.json: | - [ - { - "chart_name": "nrf", - "project": "nrf", - "repo": "nrf", - "version": "0.1.0", - "build_from_source": true, - "path": "charts", - "build": { - "git_repo": "{{ $.Values.git_repo }}", - "target_loc": "/src/checkout/nrf", - "refspec": "{{ $.Values.refspec }}", - "version": "refs/changes/*:refs/changes/*" - }, - "namespace": "{{ $.Values.namespace }}", - "release_name": "nrf", + [{ + "chart_name": "nrf", + "project": "nrf", + "repo": "nrf", + "version": "0.1.0", + "build_from_source": true, + "path": "charts", + "build": { + "git_repo": "{{ $.Values.git_repo }}", + "target_loc": "/src/checkout/nrf", + "refspec": "{{ $.Values.refspec }}", + "version": "refs/changes/*:refs/changes/*" + }, + "namespace": "{{ $.Values.namespace }}", + "release_name": "nrf", + "sources": { + "image_map": { + "tag": ["releases", "images", "applications", "nrf", "tag"], + "tmp_name": ["releases", "images", "applications", "nrf", "name"], + "tmp_repo": ["releases", "images", "applications", "nrf", "repo"] + } + }, + "releases": { "images": { "applications": { "nrf": { @@ -54,7 +61,7 @@ data: } } } - ] + }] default.json: | { "proxy": { diff --git a/tools/gate/jarvis/5G-SA-core/pcf/jarvis/development-pipeline/templates/config_map.yaml b/tools/gate/jarvis/5G-SA-core/pcf/jarvis/development-pipeline/templates/config_map.yaml index 94e72065..5db831d5 100644 --- a/tools/gate/jarvis/5G-SA-core/pcf/jarvis/development-pipeline/templates/config_map.yaml +++ b/tools/gate/jarvis/5G-SA-core/pcf/jarvis/development-pipeline/templates/config_map.yaml @@ -28,22 +28,29 @@ data: } ] chart.json: | - [ - { - "chart_name": "pcf", - "project": "pcf", - "repo": "pcf", - "version": "0.1.0", - "build_from_source": true, - "path": "charts", - "build": { - "git_repo": "{{ $.Values.git_repo }}", - "target_loc": "/src/checkout/pcf", - "refspec": "{{ $.Values.refspec }}", - "version": "refs/changes/*:refs/changes/*" - }, - "namespace": "{{ $.Values.namespace }}", - "release_name": "pcf", + [{ + "chart_name": "pcf", + "project": "pcf", + "repo": "pcf", + "version": "0.1.0", + "build_from_source": true, + "path": "charts", + "build": { + "git_repo": "{{ $.Values.git_repo }}", + "target_loc": "/src/checkout/pcf", + "refspec": "{{ $.Values.refspec }}", + "version": "refs/changes/*:refs/changes/*" + }, + "namespace": "{{ $.Values.namespace }}", + "release_name": "pcf", + "sources": { + "image_map": { + "tag": ["releases", "images", "applications", "pcf", "tag"], + "tmp_name": ["releases", "images", "applications", "pcf", "name"], + "tmp_repo": ["releases", "images", "applications", "pcf", "repo"] + } + }, + "releases": { "images": { "applications": { "pcf": { @@ -54,7 +61,7 @@ data: } } } - ] + }] default.json: | { "proxy": { diff --git a/tools/gate/jarvis/5G-SA-core/smf/jarvis/development-pipeline/templates/config_map.yaml b/tools/gate/jarvis/5G-SA-core/smf/jarvis/development-pipeline/templates/config_map.yaml index 4d50be78..7d2b8b08 100644 --- a/tools/gate/jarvis/5G-SA-core/smf/jarvis/development-pipeline/templates/config_map.yaml +++ b/tools/gate/jarvis/5G-SA-core/smf/jarvis/development-pipeline/templates/config_map.yaml @@ -28,22 +28,29 @@ data: } ] chart.json: | - [ - { - "chart_name": "smf", - "project": "smf", - "repo": "smf", - "version": "0.1.0", - "build_from_source": true, - "path": "charts", - "build": { - "git_repo": "{{ $.Values.git_repo }}", - "target_loc": "/src/checkout/smf", - "refspec": "{{ $.Values.refspec }}", - "version": "refs/changes/*:refs/changes/*" - }, - "namespace": "{{ $.Values.namespace }}", - "release_name": "smf", + [{ + "chart_name": "smf", + "project": "smf", + "repo": "smf", + "version": "0.1.0", + "build_from_source": true, + "path": "charts", + "build": { + "git_repo": "{{ $.Values.git_repo }}", + "target_loc": "/src/checkout/smf", + "refspec": "{{ $.Values.refspec }}", + "version": "refs/changes/*:refs/changes/*" + }, + "namespace": "{{ $.Values.namespace }}", + "release_name": "smf", + "sources": { + "image_map": { + "tag": ["releases", "images", "applications", "smf", "tag"], + "tmp_name": ["releases", "images", "applications", "smf", "name"], + "tmp_repo": ["releases", "images", "applications", "smf", "repo"] + } + }, + "releases": { "images": { "applications": { "smf": { @@ -54,7 +61,7 @@ data: } } } - ] + }] default.json: | { "proxy": { diff --git a/tools/gate/jarvis/5G-SA-core/udm/jarvis/development-pipeline/templates/config_map.yaml b/tools/gate/jarvis/5G-SA-core/udm/jarvis/development-pipeline/templates/config_map.yaml index d7a50a6e..700c1a3f 100644 --- a/tools/gate/jarvis/5G-SA-core/udm/jarvis/development-pipeline/templates/config_map.yaml +++ b/tools/gate/jarvis/5G-SA-core/udm/jarvis/development-pipeline/templates/config_map.yaml @@ -28,22 +28,29 @@ data: } ] chart.json: | - [ - { - "chart_name": "udm", - "project": "udm", - "repo": "udm", - "version": "0.1.0", - "build_from_source": true, - "path": "charts", - "build": { - "git_repo": "{{ $.Values.git_repo }}", - "target_loc": "/src/checkout/udm", - "refspec": "{{ $.Values.refspec }}", - "version": "refs/changes/*:refs/changes/*" - }, - "namespace": "{{ $.Values.namespace }}", - "release_name": "udm", + [{ + "chart_name": "udm", + "project": "udm", + "repo": "udm", + "version": "0.1.0", + "build_from_source": true, + "path": "charts", + "build": { + "git_repo": "{{ $.Values.git_repo }}", + "target_loc": "/src/checkout/udm", + "refspec": "{{ $.Values.refspec }}", + "version": "refs/changes/*:refs/changes/*" + }, + "namespace": "{{ $.Values.namespace }}", + "release_name": "udm", + "sources": { + "image_map": { + "tag": ["releases", "images", "applications", "udm", "tag"], + "tmp_name": ["releases", "images", "applications", "udm", "name"], + "tmp_repo": ["releases", "images", "applications", "udm", "repo"] + } + }, + "releases": { "images": { "applications": { "udm": { @@ -54,7 +61,7 @@ data: } } } - ] + }] default.json: | { "proxy": { diff --git a/tools/gate/jarvis/5G-SA-core/udr/jarvis/development-pipeline/templates/config_map.yaml b/tools/gate/jarvis/5G-SA-core/udr/jarvis/development-pipeline/templates/config_map.yaml index b7382c0d..a151fbc4 100644 --- a/tools/gate/jarvis/5G-SA-core/udr/jarvis/development-pipeline/templates/config_map.yaml +++ b/tools/gate/jarvis/5G-SA-core/udr/jarvis/development-pipeline/templates/config_map.yaml @@ -9,7 +9,7 @@ data: "use_existing_cluster": "true" } image.json: | - { + [{ "build_from_source": true, "image_from": "harbor-core.jarvis.local/library/ubuntu:focal", "image_name": "udr", @@ -25,33 +25,42 @@ data: "refspec": "{{ $.Values.refspec }}", "version": "refs/changes/*:refs/changes/*" } - } + }] chart.json: | - { + [{ "chart_name": "udr", "project": "udr", "repo": "udr", "version": "0.1.0", "build_from_source": true, "path": "charts", - "namespace": "{{ $.Values.namespace }}", "build": { "git_repo": "{{ $.Values.git_repo }}", "target_loc": "/src/checkout/udr", "refspec": "{{ $.Values.refspec }}", "version": "refs/changes/*:refs/changes/*" }, + "namespace": "{{ $.Values.namespace }}", "release_name": "udr", - "images": { - "applications": { - "udr": { - "tag": "1.0", - "name": "udr", - "repo": "udr" + "sources": { + "image_map": { + "tag": ["releases", "images", "applications", "udr", "tag"], + "tmp_name": ["releases", "images", "applications", "udr", "name"], + "tmp_repo": ["releases", "images", "applications", "udr", "repo"] + } + }, + "releases": { + "images": { + "applications": { + "udr": { + "tag": "1.0", + "name": "udr", + "repo": "udr" + } } } } - } + }] default.json: | { "proxy": { diff --git a/tools/gate/jarvis/standard-container/Dockerfile b/tools/gate/jarvis/standard-container/Dockerfile index eb3c9cb8..b7c7d75d 100644 --- a/tools/gate/jarvis/standard-container/Dockerfile +++ b/tools/gate/jarvis/standard-container/Dockerfile @@ -21,6 +21,7 @@ RUN apt-get update ;\ ca-certificates \ gnupg-agent \ software-properties-common \ + moreutils \ gettext-base ;\ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - ;\ add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" ;\ diff --git a/tools/gate/jarvis/standard-container/assets/jarvis/functional_deploy.sh b/tools/gate/jarvis/standard-container/assets/jarvis/functional_deploy.sh index ac69ab1c..22ff7746 100755 --- a/tools/gate/jarvis/standard-container/assets/jarvis/functional_deploy.sh +++ b/tools/gate/jarvis/standard-container/assets/jarvis/functional_deploy.sh @@ -4,7 +4,8 @@ set -ex update-ca-certificates ansible-playbook -vvv /playbooks/functional-microflow.yaml -i hosts \ - -e '{"stage":"deploy"}' \ - -e @"/workspace/development_pipeline_data/default.json" \ - -e @"/workspace/development_pipeline_data/cluster.json" \ - -e 'loop_source="/workspace/development_pipeline_data/chart.json"' + -e '{"stage":"deploy"}' \ + -e @"/workspace/development_pipeline_data/default.json" \ + -e @"/workspace/development_pipeline_data/cluster.json" \ + -e 'loop_source="/workspace/development_pipeline_data/chart.json"' \ + -e '{"datapath":"/workspace/development_pipeline_data"}' diff --git a/tools/gate/jarvis/standard-container/assets/playbooks/roles/functional/tasks/main.yaml b/tools/gate/jarvis/standard-container/assets/playbooks/roles/functional/tasks/main.yaml index c1a85f1b..ff00b7a0 100644 --- a/tools/gate/jarvis/standard-container/assets/playbooks/roles/functional/tasks/main.yaml +++ b/tools/gate/jarvis/standard-container/assets/playbooks/roles/functional/tasks/main.yaml @@ -6,9 +6,36 @@ when: ("{{ stage }}" == "deploy") block: #Deploy CNF - - name: Deploy charts - shell: helm upgrade --install --create-namespace --kubeconfig="{{ cluster_kubeconfig_path }}/kubeconfig" "{{ chart.release_name }}" "{{ chart.project }}-staging/{{ chart.chart_name }}" --version="{{ chart.version }}" --namespace="{{ chart.namespace }}" + shell: | + set -xe ; + CHARTNAME={{ chart.chart_name }} ; + REPO={{ docker_registry }} ; + NAME={{ chart.project }}-staging/{{ chart.chart_name }} ; + + jq -c --arg c $CHARTNAME --arg v $REPO 'map(if .repo == $c then .["tmp_repo"] = $v else . end)' {{ datapath }}/image.json | sponge {{ datapath }}/image.json ; + jq -c --arg c $CHARTNAME --arg v $NAME 'map(if .repo == $c then .["tmp_name"] = $v else . end)' {{ datapath }}/image.json | sponge {{ datapath }}/image.json ; + + M=$(jq -c --arg c $CHARTNAME 'map(select(.chart_name == $c)) | first | .sources.image_map' {{ datapath }}/chart.json) ; + if [ "$M" != "null" ] && [ -n "$M" ] ; then \ + echo $M | jq -r 'keys[]' | while IFS= read -r k; do \ + v=$(echo $M | jq -c --arg k $k '.[$k]') ;\ + filter=".$k" ;\ + value=$(jq -c --arg c $CHARTNAME 'map(select(.image_name == $c)) | first' {{ datapath}}/image.json | jq -r $filter) ;\ + jq -r --arg c $CHARTNAME --argjson k $v --arg v $value 'map(if .chart_name == $c then getpath($k) = $v else . end)' {{ datapath }}/chart.json | sponge {{ datapath }}/chart.json ;\ + done ; \ + fi ; + jq -c --arg c $CHARTNAME 'map(select(.chart_name == $c)) | first | .releases' \ + {{ datapath }}/chart.json > {{ datapath }}/{{ chart.chart_name }}-overrides.json ; + cat {{ datapath }}/{{ chart.chart_name }}-overrides.json ; + helm upgrade --install \ + --kubeconfig="{{ cluster_kubeconfig_path }}/kubeconfig" \ + "{{ chart.release_name }}" "{{ chart.project }}-staging/{{ chart.chart_name }}" \ + --version="{{ chart.version }}" \ + --values="{{ datapath }}/{{ chart.chart_name }}-overrides.json" \ + --namespace="{{ chart.namespace }}" + args: + executable: /bin/bash loop: "{{ charts }}" loop_control: loop_var: "chart"