From 8835354afe7e26d3feb04eb5f0ed7e87c508084c Mon Sep 17 00:00:00 2001 From: Syifa Date: Wed, 22 Oct 2025 08:56:06 +0700 Subject: [PATCH] added kubernetes overlays and base manifest for gitops workflow --- k8s | 2 +- overlays/dev/kustomization.yaml | 20 ++++----- overlays/dev/patch-deployment.yaml | 50 +++-------------------- overlays/production/kustomization.yaml | 15 +++---- overlays/production/patch-deployment.yaml | 48 ++-------------------- overlays/staging/kustomization.yaml | 15 +++---- overlays/staging/patch-deployment.yaml | 48 ++-------------------- 7 files changed, 34 insertions(+), 164 deletions(-) diff --git a/k8s b/k8s index cd1b6eb..1097dba 160000 --- a/k8s +++ b/k8s @@ -1 +1 @@ -Subproject commit cd1b6ebb81ccd7923796fdd97620ace5c0f4d109 +Subproject commit 1097dbafa95e0bf2f8d898d65dea0cda10e8d83c diff --git a/overlays/dev/kustomization.yaml b/overlays/dev/kustomization.yaml index 167bce6..3f9c96f 100644 --- a/overlays/dev/kustomization.yaml +++ b/overlays/dev/kustomization.yaml @@ -1,18 +1,18 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +# Referensi ke base resources: - ../../k8s +# Namespace & prefix untuk semua resource namespace: intern-workspace namePrefix: dev- + +# Label tambahan untuk menandai environment commonLabels: environment: dev -images: - - name: registry.gitlab.com/mauuldya/datasiswa-workflow/datasiswa-app/backend - newTag: latest - - name: registry.gitlab.com/mauuldya/datasiswa-workflow/datasiswa-app/frontend - newTag: latest - - name: mysql - newTag: "8.0" - -patches: - - path: patch-deployment.yaml +# Gabungkan patch deployment kamu +patchesStrategicMerge: + - patch-deployment.yaml diff --git a/overlays/dev/patch-deployment.yaml b/overlays/dev/patch-deployment.yaml index 29bda1f..de332a8 100644 --- a/overlays/dev/patch-deployment.yaml +++ b/overlays/dev/patch-deployment.yaml @@ -1,5 +1,5 @@ # ========================== -# BACKEND +# BACKEND PATCH # ========================== apiVersion: apps/v1 kind: Deployment @@ -11,23 +11,11 @@ spec: spec: containers: - name: backend - env: - - name: NODE_ENV - value: development - - name: DB_USER - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_USER - - name: DB_PASSWORD - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_PASSWORD - + image: docker.io/syifamaulidya/backend-app:dev # <-- Jenkins nanti ganti otomatis ke vX + --- # ========================== -# FRONTEND +# FRONTEND PATCH # ========================== apiVersion: apps/v1 kind: Deployment @@ -39,32 +27,4 @@ spec: spec: containers: - name: frontend - env: - - name: REACT_APP_API_URL - value: "http://backend-app-syifa:5000/api/auth/login" - ---- -# ========================== -# MYSQL -# ========================== -apiVersion: apps/v1 -kind: Deployment -metadata: - name: mysql-app-syifa -spec: - replicas: 1 - template: - spec: - containers: - - name: mysql - env: - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_PASSWORD - - name: MYSQL_USER - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_USER \ No newline at end of file + image: docker.io/syifamaulidya/frontend-app:dev # <-- Jenkins juga ganti otomatis \ No newline at end of file diff --git a/overlays/production/kustomization.yaml b/overlays/production/kustomization.yaml index 160e30e..94e56b5 100644 --- a/overlays/production/kustomization.yaml +++ b/overlays/production/kustomization.yaml @@ -1,3 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + resources: - ../../k8s @@ -6,13 +9,5 @@ namePrefix: prod- commonLabels: environment: production -images: - - name: registry.gitlab.com/mauuldya/datasiswa-app/backend - newTag: prod - - name: registry.gitlab.com/mauuldya/datasiswa-app/frontend - newTag: prod - - name: mysql - newTag: "8.0" - -patches: - - path: patch-deployment.yaml \ No newline at end of file +patchesStrategicMerge: + - patch-deployment.yaml diff --git a/overlays/production/patch-deployment.yaml b/overlays/production/patch-deployment.yaml index 3d061bc..e19f00a 100644 --- a/overlays/production/patch-deployment.yaml +++ b/overlays/production/patch-deployment.yaml @@ -1,5 +1,5 @@ # ========================== -# BACKEND +# BACKEND PATCH # ========================== apiVersion: apps/v1 kind: Deployment @@ -11,23 +11,11 @@ spec: spec: containers: - name: backend - env: - - name: NODE_ENV - value: production - - name: DB_USER - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_USER - - name: DB_PASSWORD - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_PASSWORD + image: docker.io/syifamaulidya/backend-app:production # <-- Jenkins nanti ganti otomatis ke vX --- # ========================== -# FRONTEND +# FRONTEND PATCH # ========================== apiVersion: apps/v1 kind: Deployment @@ -39,32 +27,4 @@ spec: spec: containers: - name: frontend - env: - - name: REACT_APP_API_URL - value: "http://backend-app-syifa:5000/api/auth/login" - ---- -# ========================== -# MYSQL -# ========================== -apiVersion: apps/v1 -kind: Deployment -metadata: - name: mysql-app-syifa -spec: - replicas: 1 - template: - spec: - containers: - - name: mysql - env: - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_PASSWORD - - name: MYSQL_USER - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_USER \ No newline at end of file + image: docker.io/syifamaulidya/frontend-app:production # <-- Jenkins juga ganti otomatis \ No newline at end of file diff --git a/overlays/staging/kustomization.yaml b/overlays/staging/kustomization.yaml index f331bed..064e109 100644 --- a/overlays/staging/kustomization.yaml +++ b/overlays/staging/kustomization.yaml @@ -1,3 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + resources: - ../../k8s @@ -6,13 +9,5 @@ namePrefix: staging- commonLabels: environment: staging -images: - - name: registry.gitlab.com/mauuldya/datasiswa-app/backend - newTag: staging - - name: registry.gitlab.com/mauuldya/datasiswa-app/frontend - newTag: staging - - name: mysql - newTag: "8.0" - -patches: - - path: patch-deployment.yaml \ No newline at end of file +patchesStrategicMerge: + - patch-deployment.yaml diff --git a/overlays/staging/patch-deployment.yaml b/overlays/staging/patch-deployment.yaml index 2242e7d..aa78eb2 100644 --- a/overlays/staging/patch-deployment.yaml +++ b/overlays/staging/patch-deployment.yaml @@ -1,5 +1,5 @@ # ========================== -# BACKEND +# BACKEND PATCH # ========================== apiVersion: apps/v1 kind: Deployment @@ -11,23 +11,11 @@ spec: spec: containers: - name: backend - env: - - name: NODE_ENV - value: staging - - name: DB_USER - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_USER - - name: DB_PASSWORD - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_PASSWORD + image: docker.io/syifamaulidya/backend-app:staging # <-- Jenkins nanti ganti otomatis ke vX --- # ========================== -# FRONTEND +# FRONTEND PATCH # ========================== apiVersion: apps/v1 kind: Deployment @@ -39,32 +27,4 @@ spec: spec: containers: - name: frontend - env: - - name: REACT_APP_API_URL - value: "http://backend-app-syifa:5000/api/auth/login" - ---- -# ========================== -# MYSQL -# ========================== -apiVersion: apps/v1 -kind: Deployment -metadata: - name: mysql-app-syifa -spec: - replicas: 1 - template: - spec: - containers: - - name: mysql - env: - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_PASSWORD - - name: MYSQL_USER - valueFrom: - secretKeyRef: - name: backend-secret-syifa - key: DB_USER \ No newline at end of file + image: docker.io/syifamaulidya/frontend-app:staging # <-- Jenkins juga ganti otomatis \ No newline at end of file