From 0485f4455c162007fd2917972a857dd073133773 Mon Sep 17 00:00:00 2001
From: Diogo Guerra <diogo.filipe.tomas.guerra@cern.ch>
Date: Tue, 26 Oct 2021 11:50:23 +0200
Subject: [PATCH] traefik v2 from cern metachart

Install traefik v2 from cern metachart greater than 0.9.x

This commit is an adaptation of the upstream commit
https://review.opendev.org/c/openstack/magnum/+/697071

Signed-off-by: Diogo Guerra <diogo.filipe.tomas.guerra@cern.ch>
Change-Id: I4b5b3238f405c65b85b916e4fbe71cb37d5b548e
---
 .../fragments/enable-ingress-traefik.sh         | 17 ++++++++++-------
 .../templates/kubernetes/helm/cern-chart.sh     | 15 ++++++++++++++-
 2 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/magnum/drivers/common/templates/kubernetes/fragments/enable-ingress-traefik.sh b/magnum/drivers/common/templates/kubernetes/fragments/enable-ingress-traefik.sh
index b1acd9eee..11089cd1f 100644
--- a/magnum/drivers/common/templates/kubernetes/fragments/enable-ingress-traefik.sh
+++ b/magnum/drivers/common/templates/kubernetes/fragments/enable-ingress-traefik.sh
@@ -157,12 +157,15 @@ metadata:
   namespace: kube-system
 EOF
 )
-writeFile $INGRESS_TRAEFIK_MANIFEST "$INGRESS_TRAEFIK_MANIFEST_CONTENT"
 
-until  [ "ok" = "$(kubectl get --raw='/healthz')" ]
-do
-    echo "Waiting for Kubernetes API..."
-    sleep 5
-done
+if [[ ( $(echo ${CERN_CHART_VERSION} | cut -d. -f2) -lt 9 ) ]]; then
+    writeFile $INGRESS_TRAEFIK_MANIFEST "$INGRESS_TRAEFIK_MANIFEST_CONTENT"
 
-kubectl apply -f ${INGRESS_TRAEFIK_MANIFEST}
+    until  [ "ok" = "$(kubectl get --raw='/healthz')" ]
+    do
+        echo "Waiting for Kubernetes API..."
+        sleep 5
+    done
+
+    kubectl apply -f ${INGRESS_TRAEFIK_MANIFEST}
+fi
diff --git a/magnum/drivers/common/templates/kubernetes/helm/cern-chart.sh b/magnum/drivers/common/templates/kubernetes/helm/cern-chart.sh
index 97b62e809..a7a418767 100644
--- a/magnum/drivers/common/templates/kubernetes/helm/cern-chart.sh
+++ b/magnum/drivers/common/templates/kubernetes/helm/cern-chart.sh
@@ -48,7 +48,14 @@ fi
 # CERN_INGRESS_NGINX_ENABLED is not a magnum value, need to write it in heat-params
 echo "CERN_INGRESS_NGINX_ENABLED=\"${CERN_INGRESS_NGINX_ENABLED}\"" >> /etc/sysconfig/heat-params
 
-
+if [ "$(echo ${INGRESS_CONTROLLER} | tr '[:upper:]' '[:lower:]')" == "traefik" ] && \
+   [[ ( $(echo ${CERN_CHART_VERSION} | cut -d. -f2) -ge 9 ) ]]; then
+    TRAEFIK_HELM_ENABLED="true"
+else
+    TRAEFIK_HELM_ENABLED="false"
+fi
+# TRAEFIK_HELM_ENABLED is not a magnum value, need to write it in heat-params
+echo "TRAEFIK_HELM_ENABLED=\"${TRAEFIK_HELM_ENABLED}\"" >> /etc/sysconfig/heat-params
 
 ### Configuration
 ###############################################################################
@@ -110,6 +117,12 @@ ${NVIDIA_GPU_VALUES}
           enabled: ${MONITORING_ENABLED}
           serviceMonitor:
             enabled: ${MONITORING_ENABLED}
+    traefik:
+      enabled: ${TRAEFIK_HELM_ENABLED}
+      image:
+        tag: ${TRAEFIK_INGRESS_CONTROLLER_TAG}
+      nodeSelector:
+        role: ${INGRESS_CONTROLLER_ROLE}
 EOF
 fi
 
-- 
GitLab