From fdb5906a85970bc97c2c8496291aa6a41a2c2d68 Mon Sep 17 00:00:00 2001
From: Dobromir Palushev <dobromir@peaksandpies.com>
Date: Sat, 3 Sep 2022 12:54:25 +0200
Subject: [PATCH] fixing static_ip_adresses for staging and production

---
 .gitlab-ci.yml                                    | 5 ++++-
 k8s-manifests/{ingress.yaml => ingress.yaml.tmpl} | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)
 rename k8s-manifests/{ingress.yaml => ingress.yaml.tmpl} (86%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f5b1fbd..325816e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -120,10 +120,12 @@ deploy-image:
       when: 'always'
       variables:
         ENVIRONMENT_NAME: 'staging'
+        STATIC_IP: 'staging-todoapp-ip'
     - if: $CI_COMMIT_REF_NAME !~ /main/
       when: 'always'
       variables:
         ENVIRONMENT_NAME: 'production'
+        STATIC_IP: 'todoapp-ip'
   tags:
     - docker
   image: google/cloud-sdk:${GOOGLE_CLOUD_SDK_IMAGE_VERSION}
@@ -137,7 +139,8 @@ deploy-image:
     - DEPLOYMENT_MANIFEST=$(sed -e "s,{{image}},${IMAGE},g" ./deployment.yaml.tmpl)
     - echo "${DEPLOYMENT_MANIFEST}" | kubectl apply --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}" --filename -
     - kubectl apply -f service.yaml --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}"
-    - kubectl apply -f ingress.yaml --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}"
+    - INGRESS_MANIFEST=$(sed -e "s,{{static-ip-name}},${STATIC_IP},g" ./ingress.yaml.tmpl)
+    - echo "${INGRESS_MANIFEST}" | kubectl apply --namespace "${ENVIRONMENT_NAME}-${K8S_NAMESPACE}" --filename -
 
 
 
diff --git a/k8s-manifests/ingress.yaml b/k8s-manifests/ingress.yaml.tmpl
similarity index 86%
rename from k8s-manifests/ingress.yaml
rename to k8s-manifests/ingress.yaml.tmpl
index 6757622..7635067 100644
--- a/k8s-manifests/ingress.yaml
+++ b/k8s-manifests/ingress.yaml.tmpl
@@ -5,7 +5,7 @@ metadata:
   annotations:
     kubernetes.io/ingress.class: "gce" # an external load-balancer
     kubernetes.io/ingress.allow-http: "false" # disabling HTTP
-    kubernetes.io/ingress.global-static-ip-name: todoapp-ip # staging-todoapp-ip for staging
+    kubernetes.io/ingress.global-static-ip-name: {{static-ip-name}} # staging-todoapp-ip for staging
     networking.gke.io/managed-certificates: todoapp-managed-cert # defined in the infrastructure repository
 spec:
   # rules:
-- 
GitLab