From 06659759f1213df23f1d456503b1dd2ea8e90963 Mon Sep 17 00:00:00 2001 From: Diogo Guerra Date: Thu, 26 Mar 2020 17:20:03 +0900 Subject: [PATCH] [k8s] Introduce helm_client_tag label. Added label helm_client_tag to allow user to specify helm client container version. Task: 39294 Story: 2007514 Change-Id: I5d1cf238511951ac4a1849ca66b74dc747865391 Signed-off-by: Diogo Guerra --- doc/source/user/index.rst | 6 ++++++ .../kubernetes/fragments/write-heat-params-master.sh | 1 + .../common/templates/kubernetes/helm/ingress-nginx.sh | 2 +- .../common/templates/kubernetes/helm/metrics-server.sh | 2 +- .../common/templates/kubernetes/helm/prometheus-adapter.sh | 2 +- .../common/templates/kubernetes/helm/prometheus-operator.sh | 2 +- magnum/drivers/heat/k8s_fedora_template_def.py | 1 + .../drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml | 6 ++++++ .../drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml | 5 +++++ .../drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml | 6 ++++++ .../drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml | 5 +++++ magnum/tests/unit/drivers/test_template_definition.py | 6 ++++++ releasenotes/notes/helm_client_label-1d6e70dfcf8ecd0d.yaml | 4 ++++ 13 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 releasenotes/notes/helm_client_label-1d6e70dfcf8ecd0d.yaml diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst index a144a95e0d..a7234ec6d2 100644 --- a/doc/source/user/index.rst +++ b/doc/source/user/index.rst @@ -1469,6 +1469,12 @@ _`tiller_namespace` Configure in which namespace tiller is going to be installed. Default: magnum-tiller +_`helm_client_tag` + The version of the helm client to use. + The image can be stored in a private registry and the + cluster can pull it using the container_infra_prefix label. + Default: dev + _`master_lb_floating_ip_enabled` Controls if Magnum allocates floating IP for the load balancer of master nodes. This label only takes effect when the template property diff --git a/magnum/drivers/common/templates/kubernetes/fragments/write-heat-params-master.sh b/magnum/drivers/common/templates/kubernetes/fragments/write-heat-params-master.sh index db9610dbe0..49134f407c 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/write-heat-params-master.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/write-heat-params-master.sh @@ -117,6 +117,7 @@ EXTERNAL_NETWORK_ID="$EXTERNAL_NETWORK_ID" TILLER_ENABLED="$TILLER_ENABLED" TILLER_TAG="$TILLER_TAG" TILLER_NAMESPACE="$TILLER_NAMESPACE" +HELM_CLIENT_TAG="$HELM_CLIENT_TAG" NODE_PROBLEM_DETECTOR_TAG="$NODE_PROBLEM_DETECTOR_TAG" NGINX_INGRESS_CONTROLLER_TAG="$NGINX_INGRESS_CONTROLLER_TAG" NGINX_INGRESS_CONTROLLER_CHART_TAG="$NGINX_INGRESS_CONTROLLER_CHART_TAG" diff --git a/magnum/drivers/common/templates/kubernetes/helm/ingress-nginx.sh b/magnum/drivers/common/templates/kubernetes/helm/ingress-nginx.sh index 089166df4a..69ad7adbe8 100755 --- a/magnum/drivers/common/templates/kubernetes/helm/ingress-nginx.sh +++ b/magnum/drivers/common/templates/kubernetes/helm/ingress-nginx.sh @@ -214,7 +214,7 @@ spec: serviceAccountName: tiller containers: - name: config-helm - image: ${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/}helm-client:dev + image: ${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/}helm-client:${HELM_CLIENT_TAG} command: - bash args: diff --git a/magnum/drivers/common/templates/kubernetes/helm/metrics-server.sh b/magnum/drivers/common/templates/kubernetes/helm/metrics-server.sh index 97236ebfb8..e76152c6cd 100755 --- a/magnum/drivers/common/templates/kubernetes/helm/metrics-server.sh +++ b/magnum/drivers/common/templates/kubernetes/helm/metrics-server.sh @@ -67,7 +67,7 @@ spec: serviceAccountName: tiller containers: - name: config-helm - image: ${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/}helm-client:dev + image: ${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/}helm-client:${HELM_CLIENT_TAG} command: - bash args: diff --git a/magnum/drivers/common/templates/kubernetes/helm/prometheus-adapter.sh b/magnum/drivers/common/templates/kubernetes/helm/prometheus-adapter.sh index fd26e07357..55e50cd790 100644 --- a/magnum/drivers/common/templates/kubernetes/helm/prometheus-adapter.sh +++ b/magnum/drivers/common/templates/kubernetes/helm/prometheus-adapter.sh @@ -89,7 +89,7 @@ spec: serviceAccountName: tiller containers: - name: config-helm - image: ${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/}helm-client:dev + image: ${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/}helm-client:${HELM_CLIENT_TAG} command: - bash args: diff --git a/magnum/drivers/common/templates/kubernetes/helm/prometheus-operator.sh b/magnum/drivers/common/templates/kubernetes/helm/prometheus-operator.sh index 5ee38bcb86..d336445fdc 100644 --- a/magnum/drivers/common/templates/kubernetes/helm/prometheus-operator.sh +++ b/magnum/drivers/common/templates/kubernetes/helm/prometheus-operator.sh @@ -170,7 +170,7 @@ spec: serviceAccountName: tiller containers: - name: config-helm - image: ${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/}helm-client:dev + image: ${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/}helm-client:${HELM_CLIENT_TAG} command: - bash args: diff --git a/magnum/drivers/heat/k8s_fedora_template_def.py b/magnum/drivers/heat/k8s_fedora_template_def.py index 5d58456136..8bb8311693 100644 --- a/magnum/drivers/heat/k8s_fedora_template_def.py +++ b/magnum/drivers/heat/k8s_fedora_template_def.py @@ -106,6 +106,7 @@ class K8sFedoraTemplateDefinition(k8s_template_def.K8sTemplateDefinition): 'tiller_enabled', 'tiller_tag', 'tiller_namespace', + 'helm_client_tag', 'traefik_ingress_controller_tag', 'node_problem_detector_tag', 'nginx_ingress_controller_tag', diff --git a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml index c422d966eb..04555917ce 100644 --- a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml +++ b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml @@ -728,6 +728,11 @@ parameters: description: namespace where tiller will be installed. default: "magnum-tiller" + helm_client_tag: + type: string + description: tag of helm container + default: "dev" + auto_healing_enabled: type: boolean description: > @@ -1207,6 +1212,7 @@ resources: tiller_enabled: {get_param: tiller_enabled} tiller_tag: {get_param: tiller_tag} tiller_namespace: {get_param: tiller_namespace} + helm_client_tag: {get_param: helm_client_tag} node_problem_detector_tag: {get_param: node_problem_detector_tag} nginx_ingress_controller_tag: {get_param: nginx_ingress_controller_tag} nginx_ingress_controller_chart_tag: {get_param: nginx_ingress_controller_chart_tag} diff --git a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml index 7fee7181c9..441f6c585e 100644 --- a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml +++ b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml @@ -504,6 +504,10 @@ parameters: type: string description: namespace where tiller will be installed + helm_client_tag: + type: string + description: tag of helm container + auto_healing_enabled: type: boolean description: > @@ -792,6 +796,7 @@ resources: "$TILLER_ENABLED": {get_param: tiller_enabled} "$TILLER_TAG": {get_param: tiller_tag} "$TILLER_NAMESPACE": {get_param: tiller_namespace} + "$HELM_CLIENT_TAG": {get_param: helm_client_tag} "$NODE_PROBLEM_DETECTOR_TAG": {get_param: node_problem_detector_tag} "$NGINX_INGRESS_CONTROLLER_TAG": {get_param: nginx_ingress_controller_tag} "$NGINX_INGRESS_CONTROLLER_CHART_TAG": {get_param: nginx_ingress_controller_chart_tag} diff --git a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml index 58230314ec..8c2d2c8071 100644 --- a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml +++ b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml @@ -728,6 +728,11 @@ parameters: description: namespace where tiller will be installed. default: "magnum-tiller" + helm_client_tag: + type: string + description: tag of helm container + default: "dev" + auto_healing_enabled: type: boolean description: > @@ -1219,6 +1224,7 @@ resources: tiller_enabled: {get_param: tiller_enabled} tiller_tag: {get_param: tiller_tag} tiller_namespace: {get_param: tiller_namespace} + helm_client_tag: {get_param: helm_client_tag} node_problem_detector_tag: {get_param: node_problem_detector_tag} nginx_ingress_controller_tag: {get_param: nginx_ingress_controller_tag} nginx_ingress_controller_chart_tag: {get_param: nginx_ingress_controller_chart_tag} diff --git a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml index 482022bc1a..96ecb6f1bf 100644 --- a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml +++ b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml @@ -508,6 +508,10 @@ parameters: type: string description: namespace where tiller will be installed + helm_client_tag: + type: string + description: tag of helm container + auto_healing_enabled: type: boolean description: > @@ -803,6 +807,7 @@ resources: "$TILLER_ENABLED": {get_param: tiller_enabled} "$TILLER_TAG": {get_param: tiller_tag} "$TILLER_NAMESPACE": {get_param: tiller_namespace} + "$HELM_CLIENT_TAG": {get_param: helm_client_tag} "$NODE_PROBLEM_DETECTOR_TAG": {get_param: node_problem_detector_tag} "$NGINX_INGRESS_CONTROLLER_TAG": {get_param: nginx_ingress_controller_tag} "$NGINX_INGRESS_CONTROLLER_CHART_TAG": {get_param: nginx_ingress_controller_chart_tag} diff --git a/magnum/tests/unit/drivers/test_template_definition.py b/magnum/tests/unit/drivers/test_template_definition.py index a2b2a620fe..a804bb09df 100644 --- a/magnum/tests/unit/drivers/test_template_definition.py +++ b/magnum/tests/unit/drivers/test_template_definition.py @@ -567,6 +567,8 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase): 'tiller_tag') tiller_namespace = mock_cluster.labels.get( 'tiller_namespace') + helm_client_tag = mock_cluster.labels.get( + 'helm_client_tag') npd_tag = mock_cluster.labels.get('node_problem_detector_tag') traefik_ingress_controller_tag = mock_cluster.labels.get( 'traefik_ingress_controller_tag') @@ -687,6 +689,7 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase): 'tiller_enabled': tiller_enabled, 'tiller_tag': tiller_tag, 'tiller_namespace': tiller_namespace, + 'helm_client_tag': helm_client_tag, 'node_problem_detector_tag': npd_tag, 'auto_healing_enabled': auto_healing_enabled, 'auto_healing_controller': auto_healing_controller, @@ -1070,6 +1073,8 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase): 'tiller_tag') tiller_namespace = mock_cluster.labels.get( 'tiller_namespace') + helm_client_tag = mock_cluster.labels.get( + 'helm_client_tag') npd_tag = mock_cluster.labels.get('node_problem_detector_tag') traefik_ingress_controller_tag = mock_cluster.labels.get( 'traefik_ingress_controller_tag') @@ -1192,6 +1197,7 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase): 'tiller_enabled': tiller_enabled, 'tiller_tag': tiller_tag, 'tiller_namespace': tiller_namespace, + 'helm_client_tag': helm_client_tag, 'node_problem_detector_tag': npd_tag, 'auto_healing_enabled': auto_healing_enabled, 'auto_healing_controller': auto_healing_controller, diff --git a/releasenotes/notes/helm_client_label-1d6e70dfcf8ecd0d.yaml b/releasenotes/notes/helm_client_label-1d6e70dfcf8ecd0d.yaml new file mode 100644 index 0000000000..f2ec31a5d5 --- /dev/null +++ b/releasenotes/notes/helm_client_label-1d6e70dfcf8ecd0d.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Added label helm_client_tag to allow user to specify helm client container version.