Add possibility to change k8s image
Added possibility to change hyperkube and calico
images and docker version before deploy k8s env.
Change-Id: I0de769fcfe6a6a5d4bff96f4b9dd7aeed72d87ca
Reviewed-on: https://review.gerrithub.io/362709
Reviewed-by: Tatyanka Leontovich <tleontovich@mirantis.com>
Tested-by: Tatyanka Leontovich <tleontovich@mirantis.com>
diff --git a/tcp_tests/templates/virtual-mcp11-k8s-calico/salt.yaml b/tcp_tests/templates/virtual-mcp11-k8s-calico/salt.yaml
index 69a3a41..4fda035 100644
--- a/tcp_tests/templates/virtual-mcp11-k8s-calico/salt.yaml
+++ b/tcp_tests/templates/virtual-mcp11-k8s-calico/salt.yaml
@@ -17,6 +17,10 @@
{% set IPV4_NET_ADMIN_PREFIX = '.'.join(IPV4_NET_ADMIN.split('.')[0:3]) %}
{% set IPV4_NET_CONTROL_PREFIX = '.'.join(IPV4_NET_CONTROL.split('.')[0:3]) %}
+# Set docker engine version if one exported as environment variables
+{% set DOCKER_ENGINE = os_env('DOCKER_ENGINE', "") %}
+{% set LAB_CONFIG_NAME = os_env('LAB_CONFIG_NAME', "virtual-mcp11-k8s-calico") %}
+
# Install salt to the config node
- description: Installing salt master on cfg01
cmd: apt-get install -y reclass git; apt-get install -y salt-master
@@ -236,6 +240,36 @@
retry: {count: 1, delay: 5}
skip_fail: false
+# Change environment configuration before deploy
+
+{% for image_prefix in "CALICOCTL CALICO CALICO_CNI HYPERKUBE NETCHECKER_AGENT NETCHECKER_SERVER".split() %}
+- description: Change {{ image_prefix.lower() }} image to custom if necessary
+ cmd: |
+ image_link={{ os_env('CUSTOM_IMAGE_' + image_prefix, "") }}
+ if [ -n "${image_link}" ]; then
+ echo "{{ image_prefix.lower() }} image link changed to "${image_link}""
+ salt -C 'I@salt:master' reclass.cluster_meta_set kubernetes_{{ image_prefix.lower() }}_image ${image_link}
+ else
+ echo "Custom {{ image_prefix.lower() }} image link is not set, skipped."
+ fi
+ node_name: {{ HOSTNAME_CFG01 }}
+ retry: {count: 1, delay: 5}
+ skip_fail: false
+{% endfor %}
+
+- description: Change docker engine version to custom if necessary
+ cmd: |
+ FILE="/srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/kubernetes/compute.yml"
+ if [ -n "{{ DOCKER_ENGINE }}" ]; then
+ echo "Change docker engine version to: {{ DOCKER_ENGINE }}"
+ sed "s#docker-engine=.*#docker-engine={{ DOCKER_ENGINE }}#" -i.bak ${FILE}
+ else
+ echo "Custom docker engine version is not set, skipped."
+ fi
+ node_name: {{ HOSTNAME_CFG01 }}
+ retry: {count: 1, delay: 5}
+ skip_fail: false
+
# Bootstrap all nodes
- description: Configure linux on other nodes