ci: setup Dockerfile, GitLab CI pipeline, and Helm chart for Rancher

This commit is contained in:
2026-09-02 13:50:47 +07:00
parent 5d9ce5e660
commit 1efc053cb8
10 changed files with 434 additions and 356 deletions
+3 -4
View File
@@ -1,6 +1,5 @@
apiVersion: v2
name: sidata-app
description: Helm chart untuk aplikasi Laravel SIDATA
type: application
version: 0.1.0
name: sidata
description: Helm chart untuk aplikasi SIDATA Laravel PHP 7.4
version: 1.0.0
appVersion: "1.0.0"
+6 -24
View File
@@ -2,10 +2,8 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
labels:
app: {{ .Release.Name }}
spec:
replicas: {{ .Values.replicaCount | default 1 }}
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ .Release.Name }}
@@ -15,27 +13,11 @@ spec:
app: {{ .Release.Name }}
spec:
containers:
- name: {{ .Chart.Name }}
- name: {{ .Release.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy | default "Always" }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: 80
volumeMounts:
- name: nginx-config-volume
mountPath: /etc/nginx/http.d/default.conf
subPath: default.conf
env:
{{- range $key, $value := .Values.env }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}
- name: APP_KEY
valueFrom:
secretKeyRef:
name: {{ .Release.Name }}-secret
key: APP_KEY
volumes:
- name: nginx-config-volume
configMap:
name: sidata-nginx-config
envFrom:
- secretRef:
name: {{ .Release.Name }}-env
+10 -9
View File
@@ -1,20 +1,21 @@
{{- if .Values.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sidata-ingress
namespace: sidata-prod
name: {{ .Release.Name }}
annotations:
traefik.ingress.kubernetes.io/router.middlewares: sidata-prod-fix-sidata-prefix@kubernetescrd
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
ingressClassName: traefik
ingressClassName: {{ .Values.ingress.className }}
rules:
- host: dashboard-bpkd.drc-bpkd.data-center.id
- host: {{ .Values.ingress.host }}
http:
paths:
- path: /sidata
pathType: Prefix
- path: {{ .Values.ingress.path }}
pathType: ImplementationSpecific
backend:
service:
name: sidata-service
name: {{ .Release.Name }}
port:
number: 80
number: {{ .Values.service.port }}
{{- end }}
+4 -2
View File
@@ -1,7 +1,9 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ .Release.Name }}-secret
name: {{ .Release.Name }}-env
type: Opaque
stringData:
APP_KEY: {{ .Values.secrets.APP_KEY | quote }}
{{- range $key, $val := .Values.env }}
{{ $key }}: {{ $val | quote }}
{{- end }}
+4 -6
View File
@@ -1,13 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: sidata-service
name: {{ .Release.Name }}
spec:
type: ClusterIP
type: {{ .Values.service.type }}
ports:
- port: 80
- port: {{ .Values.service.port }}
targetPort: 80
protocol: TCP
name: http
selector:
app: sidata
app: {{ .Release.Name }}
+39 -32
View File
@@ -1,37 +1,34 @@
replicaCount: 2
replicaCount: 1
image:
repository: 10.15.39.186:8083/eosbpkd/sidata
repository: 10.15.39.186:8081/sidata
tag: latest
pullPolicy: Always
tag: "latest"
service:
type: NodePort
type: ClusterIP
port: 80
targetPort: 80
nodePort: 32180
ingress:
enabled: true
className: "traefik"
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
traefik.ingress.kubernetes.io/router.middlewares: sidata-prod-fix-sidata-prefix@kubernetescrd
hosts:
- host: "dashboard-bpkd.drc-bpkd.data-center.id"
paths:
- path: "/sidata"
pathType: "Prefix"
className: nginx
host: dashboard-bpkd.drc-bpkd.data-center.id
path: /sidata(/|$)(.*)
# Environment Variables Aplikasi
env:
APP_NAME: "SIDATA"
APP_ENV: "production"
APP_DEBUG: "true"
APP_KEY: "base64:JWoCrp63f8mipgiOWhwpIG+YVpw1Lunn4RZf0mcBWNg="
APP_DEBUG: "false"
APP_URL: "https://dashboard-bpkd.drc-bpkd.data-center.id/sidata"
ASSET_URL: "https://dashboard-bpkd.drc-bpkd.data-center.id/sidata" # <-- TETAP GUNAKAN /sidata
FORCE_HTTPS: true
LOG_CHANNEL: "stack"
LOG_LEVEL: "debug"
MYSQL_CONNECTION: "mysql"
MYSQL_HOST: "10.15.36.53"
MYSQL_PORT: "3306"
MYSQL_DATABASE: "spb23"
MYSQL_USERNAME: "web"
MYSQL_PASSWORD: "W82Mwhnw2_vr"
DB_CONNECTION: "Samasa"
DB_HOST: "10.15.39.193"
DB_PORT: "1521"
@@ -39,21 +36,31 @@ env:
DB_USERNAME: "samasa"
DB_PASSWORD: "123samasa"
DB_SERVICENAME: "sipkd.localdomain"
ORA_CONNECTION: "oracle"
ORA_HOST: "10.15.39.193"
ORA_PORT: 1521
ORA_PORT: "1521"
ORA_DATABASE: "NEWSIPKD"
ORA_USERNAME: "proksi"
ORA_PASSWORD: 123456
ORA_PASSWORD: "123456"
ORA_SERVICENAME: "sipkd.localdomain"
SOA_PEGAWAI: "https://soadev.jakarta.go.id/rest/gov/dki/simpeg/ws/skpp"
SOA_PEGAWAI_USER: "sipkddev"
SOA_PEGAWAI_PASSWORD: "sipkddev!!"
BROADCAST_DRIVER: "log"
CACHE_DRIVER: "file"
FILESYSTEM_DRIVER: "local"
QUEUE_CONNECTION: "sync"
SESSION_DRIVER: "file"
SESSION_LIFETIME: 120
REDIS_HOST: "redis"
REDIS_PASSWORD: null
REDIS_PORT: 6379
# Rahasia Sensitive
secrets:
APP_KEY: "base64:HiyJqrnWz8zB6WUCXTVb6lZsC3EraX/vFIn66Hx/dVM="
SESSION_LIFETIME: "120"
MEMCACHED_HOST: "127.0.0.1"
REDIS_HOST: "127.0.0.1"
REDIS_PASSWORD: "null"
REDIS_PORT: "6379"
MAIL_MAILER: "smtp"
MAIL_HOST: "mailhog"
MAIL_PORT: "1025"
MAIL_USERNAME: "null"
MAIL_PASSWORD: "null"
MAIL_ENCRYPTION: "null"
MAIL_FROM_ADDRESS: "null"
MAIL_FROM_NAME: "SIDATA"