Edit .gitlab-ci.yml
This commit is contained in:
+26
-18
@@ -14,8 +14,8 @@ variables:
|
|||||||
https_proxy: "http://10.15.3.20:80"
|
https_proxy: "http://10.15.3.20:80"
|
||||||
HTTP_PROXY: "http://10.15.3.20:80"
|
HTTP_PROXY: "http://10.15.3.20:80"
|
||||||
HTTPS_PROXY: "http://10.15.3.20:80"
|
HTTPS_PROXY: "http://10.15.3.20:80"
|
||||||
no_proxy: "127.0.0.1,localhost,10.15.39.186,10.15.39.0/24,10.42.0.0/16,10.43.0.0/16,.jakarta.go.id"
|
no_proxy: "127.0.0.1,localhost,10.15.39.168,10.15.39.186,10.15.39.0/24,10.42.0.0/16,10.43.0.0/16,.jakarta.go.id"
|
||||||
NO_PROXY: "127.0.0.1,localhost,10.15.39.186,10.15.39.0/24,10.42.0.0/16,10.43.0.0/16,.jakarta.go.id"
|
NO_PROXY: "127.0.0.1,localhost,10.15.39.168,10.15.39.186,10.15.39.0/24,10.42.0.0/16,10.43.0.0/16,.jakarta.go.id"
|
||||||
|
|
||||||
# =========================================================
|
# =========================================================
|
||||||
# BUILD IMAGE VIA BUILDAH
|
# BUILD IMAGE VIA BUILDAH
|
||||||
@@ -72,61 +72,69 @@ deploy:
|
|||||||
- export no_proxy="*"
|
- export no_proxy="*"
|
||||||
- mkdir -p ./kubeconfig-dir
|
- mkdir -p ./kubeconfig-dir
|
||||||
- echo "$KUBECONFIG_B64" | base64 -d > ./kubeconfig-dir/config
|
- echo "$KUBECONFIG_B64" | base64 -d > ./kubeconfig-dir/config
|
||||||
|
- sed -i 's|127.0.0.1|10.15.39.168|g' ./kubeconfig-dir/config
|
||||||
- chmod 600 ./kubeconfig-dir/config
|
- chmod 600 ./kubeconfig-dir/config
|
||||||
- export KUBECONFIG=$(pwd)/kubeconfig-dir/config
|
- export KUBECONFIG=$(pwd)/kubeconfig-dir/config
|
||||||
|
|
||||||
- echo '2. TEST CONNECTION TO RKE2'
|
- echo '2. TEST CONNECTION TO RKE2'
|
||||||
- kubectl version --client
|
- kubectl version --client --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true
|
||||||
- kubectl get nodes
|
- kubectl get nodes --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true
|
||||||
- kubectl create namespace $KUBE_NAMESPACE --dry-run=client -o yaml | kubectl apply -f -
|
- kubectl create namespace $KUBE_NAMESPACE --dry-run=client -o yaml | kubectl apply -f - --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true
|
||||||
|
|
||||||
- echo '3. VALIDASI TEMPLATE HELM (DEBUG)'
|
- echo '3. VALIDASI TEMPLATE HELM (DEBUG)'
|
||||||
- helm template $HELM_RELEASE ./helm/sidata --namespace $KUBE_NAMESPACE --debug
|
- helm template $HELM_RELEASE ./helm/sidata --namespace $KUBE_NAMESPACE --debug
|
||||||
|
|
||||||
|
- echo '3.5. CLEAN UNMANAGED SERVICE JIKA BENTROK'
|
||||||
|
# Menghapus service non-helm (hasil manual kubectl expose tadi) agar peluncuran Helm bersih
|
||||||
|
- kubectl delete service sidata-service -n $KUBE_NAMESPACE --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true || true
|
||||||
|
|
||||||
- echo '4. DEPLOYING APPS VIA HELM'
|
- echo '4. DEPLOYING APPS VIA HELM'
|
||||||
- |
|
- |
|
||||||
helm upgrade --install $HELM_RELEASE ./helm/sidata \
|
helm upgrade --install $HELM_RELEASE ./helm/sidata \
|
||||||
|
--kube-apiserver https://10.15.39.168:6443 \
|
||||||
|
--kube-insecure-skip-tls-verify \
|
||||||
--namespace $KUBE_NAMESPACE \
|
--namespace $KUBE_NAMESPACE \
|
||||||
|
--force \
|
||||||
--set image.repository=$IMAGE \
|
--set image.repository=$IMAGE \
|
||||||
--set image.tag=$TAG \
|
--set image.tag=$TAG \
|
||||||
--set-string podAnnotations.rolloutTimestamp="$(date +%s)" \
|
--set-string podAnnotations.rolloutTimestamp="$(date +%s)" \
|
||||||
--set service.type=NodePort \
|
--set service.type=NodePort \
|
||||||
--set service.nodePort=32180 \
|
--set service.nodePort=32185 \
|
||||||
|
--set service.name=sidata-service \
|
||||||
--set-string extraEnv.APP_ENV="production" \
|
--set-string extraEnv.APP_ENV="production" \
|
||||||
--set-string extraEnv.APP_DEBUG="false" \
|
--set-string extraEnv.APP_DEBUG="false" \
|
||||||
--set-string extraEnv.FORCE_HTTPS="true" \
|
--set-string extraEnv.FORCE_HTTPS="true" \
|
||||||
--set-string extraEnv.APP_KEY="base64:HiyJqrnWz8zB6WUCXTVb6lZsC3EraX/vFIn66Hx/dVM=" \
|
--set-string extraEnv.APP_KEY="base64:HiyJqrnWz8zB6WUCXTVb6lZsC3EraX/vFIn66Hx/dVM=" \
|
||||||
--set-string extraEnv.APP_URL="https://dashboard-bpkd.drc-bpkd.data-center.id/skpp" \
|
--set-string extraEnv.APP_URL="https://data-center.id" \
|
||||||
--set-string extraEnv.ASSET_URL="https://dashboard-bpkd.drc-bpkd.data-center.id/skpp" \
|
--set-string extraEnv.ASSET_URL="https://data-center.id" \
|
||||||
--set-string extraEnv.SESSION_DRIVER="file" \
|
--set-string extraEnv.SESSION_DRIVER="file" \
|
||||||
--set-string extraEnv.SESSION_SECURE_COOKIE="true"
|
--set-string extraEnv.SESSION_SECURE_COOKIE="true"
|
||||||
|
|
||||||
- echo '5. CHECK REAL NODEPORT STATUS'
|
- echo '5. CHECK REAL NODEPORT STATUS'
|
||||||
- kubectl get svc -n $KUBE_NAMESPACE
|
- kubectl get svc -n $KUBE_NAMESPACE --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true
|
||||||
|
|
||||||
- echo '6. CHECK STATUS ROLLOUT'
|
- echo '6. CHECK STATUS ROLLOUT'
|
||||||
- kubectl rollout status deployment/$HELM_RELEASE -n $KUBE_NAMESPACE --timeout=180s || kubectl rollout status deployment/$HELM_RELEASE-skpp -n $KUBE_NAMESPACE --timeout=180s
|
- kubectl rollout status deployment/$HELM_RELEASE -n $KUBE_NAMESPACE --timeout=180s --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true || kubectl rollout status deployment/$HELM_RELEASE-sidata -n $KUBE_NAMESPACE --timeout=180s --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true
|
||||||
|
|
||||||
- echo '7. AUTO CLEAR LARAVEL CACHE ON POD'
|
- echo '7. AUTO CLEAR LARAVEL CACHE ON POD'
|
||||||
- |
|
- |
|
||||||
# Berikan jeda 5 detik agar pod baru benar-benar stabil sebelum dieksekusi artisan commands
|
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
POD_NAME=$(kubectl get pods -n $KUBE_NAMESPACE -l app=$HELM_RELEASE --field-selector=status.phase=Running -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || true)
|
POD_NAME=$(kubectl get pods -n $KUBE_NAMESPACE -l app=$HELM_RELEASE --field-selector=status.phase=Running --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || true)
|
||||||
if [ -z "$POD_NAME" ]; then
|
if [ -z "$POD_NAME" ]; then
|
||||||
POD_NAME=$(kubectl get pods -n $KUBE_NAMESPACE -l app.kubernetes.io/instance=$HELM_RELEASE --field-selector=status.phase=Running -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || true)
|
POD_NAME=$(kubectl get pods -n $KUBE_NAMESPACE -l app.kubernetes.io/instance=$HELM_RELEASE --field-selector=status.phase=Running --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || true)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$POD_NAME" ]; then
|
if [ -n "$POD_NAME" ]; then
|
||||||
echo "Executing Artisan Clear Cache on Pod: $POD_NAME"
|
echo "Executing Artisan Clear Cache on Pod: $POD_NAME"
|
||||||
kubectl exec -n $KUBE_NAMESPACE $POD_NAME -- php artisan config:clear || true
|
kubectl exec -n $KUBE_NAMESPACE $POD_NAME --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -- php artisan config:clear || true
|
||||||
kubectl exec -n $KUBE_NAMESPACE $POD_NAME -- php artisan route:clear || true
|
kubectl exec -n $KUBE_NAMESPACE $POD_NAME --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -- php artisan route:clear || true
|
||||||
kubectl exec -n $KUBE_NAMESPACE $POD_NAME -- php artisan cache:clear || true
|
kubectl exec -n $KUBE_NAMESPACE $POD_NAME --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -- php artisan cache:clear || true
|
||||||
kubectl exec -n $KUBE_NAMESPACE $POD_NAME -- php artisan view:clear || true
|
kubectl exec -n $KUBE_NAMESPACE $POD_NAME --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -- php artisan view:clear || true
|
||||||
else
|
else
|
||||||
echo "Warning: No running pod found for Artisan commands execution, skipping."
|
echo "Warning: No running pod found for Artisan commands execution, skipping."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
after_script:
|
after_script:
|
||||||
- echo "Cleaning up sensitive temporary files..."
|
- echo "Cleaning up sensitive temporary files..."
|
||||||
- rm -rf ./kubeconfig-dir
|
- rm -rf ./kubeconfig-dir
|
||||||
|
|||||||
Reference in New Issue
Block a user