From b0276466353f1309835e75e0f3a040d9948dc6f6 Mon Sep 17 00:00:00 2001 From: ryan Date: Wed, 12 Aug 2026 13:00:47 +0700 Subject: [PATCH] update to git --- base/deployment-probes.yaml | 39 ++++++++++++++++++++++++ base/deployment-resources.yaml | 17 +++++++++++ base/deployment-volumes.yaml | 13 ++++++++ base/deployment.yaml | 28 +++++++++++++++++ base/kustomization.yaml | 15 +++++++++ base/service.yaml | 11 +++++++ fleet.yaml | 2 ++ kustomization.yaml | 6 ++++ overlays/dev/hpa.yaml | 12 ++++++++ overlays/dev/ingress-route.yaml | 19 ++++++++++++ overlays/dev/kustomization.yaml | 49 ++++++++++++++++++++++++++++++ overlays/dev/pvc.yaml | 11 +++++++ overlays/prod/certificate.yaml | 13 ++++++++ overlays/prod/hpa.yaml | 12 ++++++++ overlays/prod/ingress-route.yaml | 37 ++++++++++++++++++++++ overlays/prod/kustomization.yaml | 40 ++++++++++++++++++++++++ overlays/prod/pv.yaml | 18 +++++++++++ overlays/prod/pvc.yaml | 23 ++++++++++++++ overlays/prod/smb-credentials.yaml | 8 +++++ 19 files changed, 373 insertions(+) create mode 100644 base/deployment-probes.yaml create mode 100644 base/deployment-resources.yaml create mode 100644 base/deployment-volumes.yaml create mode 100644 base/deployment.yaml create mode 100644 base/kustomization.yaml create mode 100644 base/service.yaml create mode 100644 fleet.yaml create mode 100644 kustomization.yaml create mode 100644 overlays/dev/hpa.yaml create mode 100644 overlays/dev/ingress-route.yaml create mode 100644 overlays/dev/kustomization.yaml create mode 100644 overlays/dev/pvc.yaml create mode 100644 overlays/prod/certificate.yaml create mode 100644 overlays/prod/hpa.yaml create mode 100644 overlays/prod/ingress-route.yaml create mode 100644 overlays/prod/kustomization.yaml create mode 100644 overlays/prod/pv.yaml create mode 100644 overlays/prod/pvc.yaml create mode 100644 overlays/prod/smb-credentials.yaml diff --git a/base/deployment-probes.yaml b/base/deployment-probes.yaml new file mode 100644 index 0000000..e700177 --- /dev/null +++ b/base/deployment-probes.yaml @@ -0,0 +1,39 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: qris-jatim +spec: + template: + spec: + containers: + - name: qris-jatim + readinessProbe: + failureThreshold: 3 + successThreshold: 1 + initialDelaySeconds: 10 + timeoutSeconds: 1 + periodSeconds: 10 + httpGet: + scheme: HTTP + port: 3000 + path: / + livenessProbe: + failureThreshold: 3 + successThreshold: 1 + initialDelaySeconds: 60 + timeoutSeconds: 1 + periodSeconds: 60 + httpGet: + scheme: HTTP + port: 3000 + path: / + startupProbe: + failureThreshold: 6 + successThreshold: 1 + initialDelaySeconds: 120 #0 + timeoutSeconds: 1 + periodSeconds: 10 + httpGet: + scheme: HTTP + port: 3000 + path: / \ No newline at end of file diff --git a/base/deployment-resources.yaml b/base/deployment-resources.yaml new file mode 100644 index 0000000..0ee7620 --- /dev/null +++ b/base/deployment-resources.yaml @@ -0,0 +1,17 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: qris-jatim +spec: + # replicas: 1 + template: + spec: + containers: + - name: qris-jatim + resources: + limits: + cpu: 500m + memory: 2Gi + requests: + cpu: 100m + memory: 200Mi diff --git a/base/deployment-volumes.yaml b/base/deployment-volumes.yaml new file mode 100644 index 0000000..d15ef18 --- /dev/null +++ b/base/deployment-volumes.yaml @@ -0,0 +1,13 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: qris-jatim +spec: + template: + spec: + volumes: + - name: vol-qris-media + nfs: + server: nas-rx300.rssa + path: /export/qris/media + readOnly: false \ No newline at end of file diff --git a/base/deployment.yaml b/base/deployment.yaml new file mode 100644 index 0000000..c0345c3 --- /dev/null +++ b/base/deployment.yaml @@ -0,0 +1,28 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: qris-jatim + labels: + app: qris-jatim +spec: + selector: + matchLabels: + app: qris-jatim + template: + metadata: + labels: + app: qris-jatim + spec: + containers: + - name: qris-jatim + image: git.rssa.top/effendy/qris_bank_jatim:20251212093005-main + imagePullPolicy: Always + ports: + - containerPort: 3000 + envFrom: + - secretRef: + name: qris-jatim-env + volumeMounts: + - mountPath: "/app/public/content" + name: vol-qris-media + \ No newline at end of file diff --git a/base/kustomization.yaml b/base/kustomization.yaml new file mode 100644 index 0000000..a967562 --- /dev/null +++ b/base/kustomization.yaml @@ -0,0 +1,15 @@ +# kustomization.yaml +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: +- deployment.yaml +- service.yaml + +patches: +- path: deployment-resources.yaml +- path: deployment-probes.yaml +- path: deployment-volumes.yaml + +commonLabels: + app: qris-jatim diff --git a/base/service.yaml b/base/service.yaml new file mode 100644 index 0000000..1510f35 --- /dev/null +++ b/base/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: qris-jatim +spec: + selector: + app: qris-jatim + ports: + - name: http + port: 80 + targetPort: 3000 \ No newline at end of file diff --git a/fleet.yaml b/fleet.yaml new file mode 100644 index 0000000..94a57ef --- /dev/null +++ b/fleet.yaml @@ -0,0 +1,2 @@ +kustomize: + dir: "" \ No newline at end of file diff --git a/kustomization.yaml b/kustomization.yaml new file mode 100644 index 0000000..199695c --- /dev/null +++ b/kustomization.yaml @@ -0,0 +1,6 @@ +# kustomization.yaml +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: +- overlays/prod diff --git a/overlays/dev/hpa.yaml b/overlays/dev/hpa.yaml new file mode 100644 index 0000000..5dc3565 --- /dev/null +++ b/overlays/dev/hpa.yaml @@ -0,0 +1,12 @@ +apiVersion: autoscaling/v1 +kind: HorizontalPodAutoscaler +metadata: + name: eletter +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: eletter + minReplicas: 1 + maxReplicas: 1 + targetCPUUtilizationPercentage: 70 \ No newline at end of file diff --git a/overlays/dev/ingress-route.yaml b/overlays/dev/ingress-route.yaml new file mode 100644 index 0000000..9a1d0a1 --- /dev/null +++ b/overlays/dev/ingress-route.yaml @@ -0,0 +1,19 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: eletter + annotations: + kubernetes.io/ingress.class: traefik-external +spec: + entryPoints: + - websecure + routes: + - kind: Rule + match: Host(`eletter.dev.rssa.id`) + middlewares: + - name: default-headers + services: + - name: eletter-dev + port: 80 + tls: + secretName: dev-rssa-id-tls diff --git a/overlays/dev/kustomization.yaml b/overlays/dev/kustomization.yaml new file mode 100644 index 0000000..a503879 --- /dev/null +++ b/overlays/dev/kustomization.yaml @@ -0,0 +1,49 @@ +# kustomization.yaml +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: +- ../../base +- ingress-route.yaml +- pvc.yaml +- hpa.yaml + +namespace: rssa-apps-dev +nameSuffix: -dev +commonLabels: + app: eletter-dev + +images: +- name: git.rssa.top/dwi.firman/eletter + newTag: latest-rebuild_eletter + # 20240905081528-rebuild_eletter + # 20240904073444-rebuild_eletter + # 20240808075420-rebuild_eletter + # 20240808075420-rebuild_eletter #stable + # "latest-rebuild_eletter" + +patches: +- target: + kind: Deployment + name: eletter + patch: | + - op: replace + path: /spec/template/spec/containers/0/envFrom/0/secretRef/name + value: eletter-env-dev + +secretGenerator: + - name: eletter-env-dev + literals: + # - APP_ENV=dev + # - DB_HOSTNAME=10.10.123.165 + # - DB_PORT=5000 + # - DB_USERNAME=stim + # - DB_PASSWORD=stim*RS54 + # - DB_NAME=eletter_dev_db + + - APP_ENV=dev + - DB_HOSTNAME=10.10.123.213 + - DB_PORT=5432 + - DB_USERNAME=postgres + - DB_PASSWORD=rumbuk + - DB_NAME=simdistu \ No newline at end of file diff --git a/overlays/dev/pvc.yaml b/overlays/dev/pvc.yaml new file mode 100644 index 0000000..0929d1d --- /dev/null +++ b/overlays/dev/pvc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: eletter +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 8Gi + storageClassName: nas-rx300 diff --git a/overlays/prod/certificate.yaml b/overlays/prod/certificate.yaml new file mode 100644 index 0000000..05212d8 --- /dev/null +++ b/overlays/prod/certificate.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: qris-rssa-id +spec: + secretName: qris-rssa-id-tls + issuerRef: + name: letsencrypt-production + kind: ClusterIssuer + commonName: "qris.rssa.id" + dnsNames: + - "qris.rssa.id" diff --git a/overlays/prod/hpa.yaml b/overlays/prod/hpa.yaml new file mode 100644 index 0000000..0392e09 --- /dev/null +++ b/overlays/prod/hpa.yaml @@ -0,0 +1,12 @@ +apiVersion: autoscaling/v1 +kind: HorizontalPodAutoscaler +metadata: + name: qris-jatim +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: qris-jatim + minReplicas: 1 + maxReplicas: 1 + targetCPUUtilizationPercentage: 70 \ No newline at end of file diff --git a/overlays/prod/ingress-route.yaml b/overlays/prod/ingress-route.yaml new file mode 100644 index 0000000..467f50b --- /dev/null +++ b/overlays/prod/ingress-route.yaml @@ -0,0 +1,37 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: qris-jatim-local + annotations: + kubernetes.io/ingress.class: traefik-internal +spec: + entryPoints: + - web + routes: + - kind: Rule + match: Host(`qris-jatim.rssa.id`) + services: + - name: qris-jatim-prod + port: 80 + +--- + +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: qris-jatim + annotations: + kubernetes.io/ingress.class: traefik-external +spec: + entryPoints: + - websecure + routes: + - kind: Rule + match: Host(`qris-jatim.rssa.id`) + middlewares: + - name: default-headers + services: + - name: qris-jatim-prod + port: 80 + tls: + secretName: qris-rssa-id-tls \ No newline at end of file diff --git a/overlays/prod/kustomization.yaml b/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..826d018 --- /dev/null +++ b/overlays/prod/kustomization.yaml @@ -0,0 +1,40 @@ +# kustomization.yaml +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: +- ../../base +- ingress-route.yaml +- hpa.yaml +- pvc.yaml +- pv.yaml +- smb-credentials.yaml +- certificate.yaml + +namespace: rssa-apps-prod-new +nameSuffix: -prod +commonLabels: + app: qris-jatim-prod + +images: +- name: git.rssa.top/effendy/qris_bank_jatim + newTag: "20251212104443-main" + +patches: +- target: + kind: Deployment + name: qris-jatim + patch: | + - op: replace + path: /spec/template/spec/containers/0/envFrom/0/secretRef/name + value: qris-jatim-env-prod + +secretGenerator: + - name: qris-jatim-env-prod + literals: + - NODE_ENV=production + - HOST=0.0.0.0 + - CI=true # Menghindari TTY prompt pada Nuxt/Consola + - FOLDER_PATH=public/content + - URL_BASE=wss://web-socket-qris.rssa.id/api/v1/ws + - QUERY=user_id=QRIS&room=BANKJATIM diff --git a/overlays/prod/pv.yaml b/overlays/prod/pv.yaml new file mode 100644 index 0000000..2f1e76e --- /dev/null +++ b/overlays/prod/pv.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: smb-data +spec: + capacity: + storage: 8Gi + volumeMode: Filesystem + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + storageClassName: manual + flexVolume: + driver: "kubernetes.io/cifs" + options: + server: "10.10.123.49" + share: "qris" + mountOptions: "vers=3.0,username=qris,password=mailadmin123" diff --git a/overlays/prod/pvc.yaml b/overlays/prod/pvc.yaml new file mode 100644 index 0000000..58b736d --- /dev/null +++ b/overlays/prod/pvc.yaml @@ -0,0 +1,23 @@ +# apiVersion: v1 +# kind: PersistentVolumeClaim +# metadata: +# name: qris-jatim +# spec: +# accessModes: +# - ReadWriteMany +# resources: +# requests: +# storage: 8Gi +# storageClassName: nas-rx300 + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: smb-data +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 8Gi + storageClassName: manual diff --git a/overlays/prod/smb-credentials.yaml b/overlays/prod/smb-credentials.yaml new file mode 100644 index 0000000..c21c51c --- /dev/null +++ b/overlays/prod/smb-credentials.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: smb-credentials +type: Opaque +data: + username: qris + password: mailadmin123