From ea18c3f16fa40d82f812a4890c91b8794af2635e Mon Sep 17 00:00:00 2001 From: Rido Akbar Ibrahim Date: Wed, 26 Jan 2022 21:51:35 +0700 Subject: [PATCH 1/2] add deployment --- .gitlab-ci.yml | 8 ++++---- k8s/production/deployment.yaml | 22 ++++++++++++++++++++++ k8s/production/ingress.yaml | 24 ++++++++++++++++++++++++ k8s/production/middleware.yaml | 9 +++++++++ k8s/production/namespace.yaml | 4 ++++ k8s/production/service.yaml | 13 +++++++++++++ 6 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 k8s/production/deployment.yaml create mode 100644 k8s/production/ingress.yaml create mode 100644 k8s/production/middleware.yaml create mode 100644 k8s/production/namespace.yaml create mode 100644 k8s/production/service.yaml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 111f7cb..58567c8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -48,7 +48,7 @@ build-production: services: - docker:dind script: - - docker login $REGISTRY_URL -u $NWP_REGISTRY_USER -p $NWP_REGISTRY_PASS + - docker login $REGISTRY_URL -u $BKA_REGISTRY_USER -p $BKA_REGISTRY_PASS - docker build -t $REGISTRY_IMAGE:$VERSION_PRODUCTION . - docker push $REGISTRY_IMAGE:$VERSION_PRODUCTION - docker rmi $REGISTRY_IMAGE:$VERSION_PRODUCTION @@ -59,9 +59,9 @@ deploy-production: only: - devops-production script: - - kubectl config set-cluster k8s --server="${NWP_CLUSTER_HOST}" - - kubectl config set clusters.k8s.certificate-authority-data ${NWP_CLUSTER_CA} - - kubectl config set-credentials gitlab --token="${NWP_CLUSTER_TOKEN}" + - kubectl config set-cluster k8s --server="${BKA_CLUSTER_HOST}" + - kubectl config set clusters.k8s.certificate-authority-data ${BKA_CLUSTER_CA} + - kubectl config set-credentials gitlab --token="${BKA_CLUSTER_TOKEN}" - kubectl config set-context default --cluster=k8s --user=gitlab - kubectl config use-context default - sed -i "s//${VERSION_PRODUCTION}/g" k8s/production/deployment.yaml diff --git a/k8s/production/deployment.yaml b/k8s/production/deployment.yaml new file mode 100644 index 0000000..eb910b8 --- /dev/null +++ b/k8s/production/deployment.yaml @@ -0,0 +1,22 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ppob-frontend + namespace: empatnusabangsa-production +spec: + selector: + matchLabels: + app: ppob-frontend + replicas: 1 + template: + metadata: + labels: + app: ppob-frontend + spec: + containers: + - name: ppob-frontend + image: registry-harbor.app.bangun-kreatif.com/empatnusabangsa/ppob-frontend: + ports: + - containerPort: 80 + imagePullSecrets: + - name: regcred diff --git a/k8s/production/ingress.yaml b/k8s/production/ingress.yaml new file mode 100644 index 0000000..2fe0e8c --- /dev/null +++ b/k8s/production/ingress.yaml @@ -0,0 +1,24 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ppob-frontend-ingress + namespace: empatnusabangsa-production + annotations: + kubernetes.io/ingress.class: "traefik" + cert-manager.io/cluster-issuer: letsencrypt-prod +spec: + rules: + - host: "wndsolutions.id" + http: + paths: + - pathType: Prefix + path: / + backend: + service: + name: ppob-frontend + port: + number: 80 + tls: + - hosts: + - "wndsolutions.id" + secretName: wndsolutions-id-tls diff --git a/k8s/production/middleware.yaml b/k8s/production/middleware.yaml new file mode 100644 index 0000000..84327d6 --- /dev/null +++ b/k8s/production/middleware.yaml @@ -0,0 +1,9 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: redirect-https + namespace: empatnusabangsa-production +spec: + redirectScheme: + scheme: https + permanent: true \ No newline at end of file diff --git a/k8s/production/namespace.yaml b/k8s/production/namespace.yaml new file mode 100644 index 0000000..e81b142 --- /dev/null +++ b/k8s/production/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: empatnusabangsa-staging diff --git a/k8s/production/service.yaml b/k8s/production/service.yaml new file mode 100644 index 0000000..fb3b9e4 --- /dev/null +++ b/k8s/production/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: ppob-frontend + namespace: empatnusabangsa-production + labels: + run: ppob-frontend +spec: + ports: + - port: 80 + protocol: TCP + selector: + app: ppob-frontend From d057864b3c6b91e99f10f3391a291fb1ea53db66 Mon Sep 17 00:00:00 2001 From: Rido Akbar Ibrahim Date: Wed, 26 Jan 2022 22:14:02 +0700 Subject: [PATCH 2/2] add deployment --- k8s/production/ingress.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/k8s/production/ingress.yaml b/k8s/production/ingress.yaml index 2fe0e8c..9a11926 100644 --- a/k8s/production/ingress.yaml +++ b/k8s/production/ingress.yaml @@ -6,9 +6,10 @@ metadata: annotations: kubernetes.io/ingress.class: "traefik" cert-manager.io/cluster-issuer: letsencrypt-prod + traefik.ingress.kubernetes.io/router.middlewares: empatnusabangsa-production-redirect-https@kubernetescrd spec: rules: - - host: "wndsolutions.id" + - host: "www.wndsolutions.id" http: paths: - pathType: Prefix @@ -20,5 +21,5 @@ spec: number: 80 tls: - hosts: - - "wndsolutions.id" - secretName: wndsolutions-id-tls + - "www.wndsolutions.id" + secretName: www-wndsolutions-id-tls