From 4a67ea94d14732f1d0e765f00440dd7fa01833ba Mon Sep 17 00:00:00 2001 From: Admin User Date: Fri, 13 Jun 2025 18:20:50 +0000 Subject: [PATCH] staging --- .gitea/workflows/cd_workflows.yml | 136 ++++++++++++++++++++++++------ deployment.json | 39 +++++---- 2 files changed, 131 insertions(+), 44 deletions(-) diff --git a/.gitea/workflows/cd_workflows.yml b/.gitea/workflows/cd_workflows.yml index 26e7f8d..5f38655 100644 --- a/.gitea/workflows/cd_workflows.yml +++ b/.gitea/workflows/cd_workflows.yml @@ -1,8 +1,8 @@ name: Continuous Deployment Workflow -on: +'on': push: paths: - - "deployment.json" + - deployment.json branches: - '*' branches-ignore: @@ -13,21 +13,36 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v3 - - name: Parse Deployment JSON id: parse_deployment - run: | + run: > deployment_json=$(cat deployment.json) - echo "namespace=$(echo "$deployment_json" | jq -r '.namespace')" >> $GITHUB_ENV - echo "name=$(echo "$deployment_json" | jq -r '.name')" >> $GITHUB_ENV - echo "repoName=$(echo "$deployment_json" | jq -r '.repoName')" >> $GITHUB_ENV - echo "branchName=$(echo "$deployment_json" | jq -r '.branchName')" >> $GITHUB_ENV - echo "version=$(echo "$deployment_json" | jq -r '.version')" >> $GITHUB_ENV - echo "shortVersion=\"$(echo "$deployment_json" | jq -r '.version' | cut -c1-10)\"" >> $GITHUB_ENV - echo "secrets=$(echo "$deployment_json" | jq -r '.environment.secrets[]' | paste -sd ",")" >> $GITHUB_ENV # Updated - echo "variables=$(echo "$deployment_json" | jq -r '.environment.variables[]' | paste -sd ",")" >> $GITHUB_ENV # Updated - echo "resources=$(echo "$deployment_json" | jq -c '.resources')" >> $GITHUB_ENV + echo "namespace=$(echo "$deployment_json" | jq -r '.namespace')" >> + $GITHUB_ENV + + echo "name=$(echo "$deployment_json" | jq -r '.name')" >> $GITHUB_ENV + + echo "repoName=$(echo "$deployment_json" | jq -r '.repoName')" >> + $GITHUB_ENV + + echo "branchName=$(echo "$deployment_json" | jq -r '.branchName')" >> + $GITHUB_ENV + + echo "version=$(echo "$deployment_json" | jq -r '.version')" >> + $GITHUB_ENV + + echo "shortVersion=\"$(echo "$deployment_json" | jq -r '.version' | + cut -c1-10)\"" >> $GITHUB_ENV + + echo "secrets=$(echo "$deployment_json" | jq -r + '.environment.secrets[]' | paste -sd ",")" >> $GITHUB_ENV # Updated + + echo "variables=$(echo "$deployment_json" | jq -r + '.environment.variables[]' | paste -sd ",")" >> $GITHUB_ENV # Updated + + echo "resources=$(echo "$deployment_json" | jq -c '.resources')" >> + $GITHUB_ENV - name: Generate values.yaml env: CI_USER: ${{ secrets.CI_USER }} @@ -41,69 +56,110 @@ jobs: branchName: ${{ env.branchName }} version: ${{ env.version }} shortVersion: ${{ env.shortVersion }} - run: | + KUBECONFIG_CONTENT: ${{ secrets.KUBECONFIG_CONTENT }} + run: > set -euo pipefail + echo "namespace: $namespace" > values.yaml + echo "name: $name" >> values.yaml + echo "repoName: $repoName" >> values.yaml + echo "branchName: $branchName" >> values.yaml + echo "version: $version" >> values.yaml + echo "shortVersion: $shortVersion" >> values.yaml + echo "environment:" >> values.yaml + # Process secrets + echo " secrets:" >> values.yaml + IFS=',' read -ra SECRET_NAMES <<< "$secrets" + for secret_name in "${SECRET_NAMES[@]}"; do secret_value="${!secret_name}" echo " - name: $secret_name" >> values.yaml echo " value: \"$secret_value\"" >> values.yaml done + # echo " - name: CI_USER" >> values.yaml + # echo " value: \"$CI_USER\"" >> values.yaml + # echo " - name: CI_USER_TOKEN" >> values.yaml + # echo " value: \"$CI_USER_TOKEN\"" >> values.yaml + # Process variables + # echo " variables:" >> values.yaml + # IFS=',' read -ra VARIABLE_NAMES <<< "$variables" + # for variable_name in "${VARIABLE_NAMES[@]}"; do - # variable_value="${!variable_name}" # Access the actual value dynamically + + # variable_value="${!variable_name}" # Access the actual value + dynamically + # echo " - name: $variable_name" >> values.yaml + # echo " value: \"$variable_value\"" >> values.yaml + # done + echo " variables:" >> values.yaml + echo " - name: REPO_NAME" >> values.yaml + echo " value: \"$repoName\"" >> values.yaml + echo " - name: BRANCH_NAME" >> values.yaml + echo " value: \"$branchName\"" >> values.yaml + echo " - name: VERSION" >> values.yaml + echo " value: \"$version\"" >> values.yaml + echo " - name: NAMESPACE" >> values.yaml + echo " value: \"$namespace\"" >> values.yaml + echo " - name: FLOWX_ENGINE_ADDRESS" >> values.yaml - echo " value: centurion-workflow-frontend.default.svc.cluster.local:7233" >> values.yaml + + echo " value: + centurion-workflow-frontend.default.svc.cluster.local:7233" >> + values.yaml + # Process resources + echo "resources:" >> values.yaml + echo "$resources" | jq -r ' . as $root | " limits:\n cpu: \($root.limits.cpu)\n memory: \($root.limits.memory)\n requests:\n cpu: \($root.requests.cpu)\n memory: \($root.requests.memory)" ' >> values.yaml - echo "Generated values.yaml:" - cat values.yaml + echo "Generated values.yaml:" + + cat values.yaml - name: Install Helm run: | if ! command -v helm >/dev/null 2>&1; then curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash fi - - name: Ensure kubectl is Installed run: | if ! command -v kubectl >/dev/null 2>&1; then @@ -111,7 +167,6 @@ jobs: chmod +x kubectl sudo mv kubectl /usr/local/bin/ fi - - name: Set Up Kubeconfig run: | echo "${{ secrets.KUBECONFIG_CONTENT }}" > kubeconfig @@ -120,7 +175,6 @@ jobs: kubectl config use-context ci-cd-user-context echo "KUBECONFIG=$(pwd)/kubeconfig" >> $GITHUB_ENV kubectl config view - - name: Deploy with Helm env: CI_USER: ${{ secrets.CI_USER }} @@ -129,44 +183,74 @@ jobs: repoName: ${{ env.repoName }} branchName: ${{ env.branchName }} version: ${{ env.version }} - run: | + run: > set -euo pipefail + # Sanitize and construct the release name - RELEASE_NAME=$(echo "${repoName}-${branchName}" | tr '_' '-' | tr '[:upper:]' '[:lower:]') + + RELEASE_NAME=$(echo "${repoName}-${branchName}" | tr '_' '-' | tr + '[:upper:]' '[:lower:]') + # Ensure the release name meets Helm's naming conventions - if ! echo "$RELEASE_NAME" | grep -Eq '^[a-z]([-a-z0-9]*[a-z0-9])?$'; then + + if ! echo "$RELEASE_NAME" | grep -Eq '^[a-z]([-a-z0-9]*[a-z0-9])?$'; + then echo "Error: Release name '$RELEASE_NAME' is invalid." exit 1 fi + # Login to the OCI registry - echo "$CI_USER_TOKEN" | helm registry login centurion-version-control.default.svc.cluster.local:3000 \ + + echo "$CI_USER_TOKEN" | helm registry login + centurion-version-control.default.svc.cluster.local:3000 \ --username "$CI_USER" --password-stdin --insecure pwd + ls -l + chmod 644 values.yaml + yq eval values.yaml + # Pull the chart from the OCI registry - helm pull oci://centurion-version-control.default.svc.cluster.local:3000/centurion/helm/block-worker \ + + helm pull + oci://centurion-version-control.default.svc.cluster.local:3000/centurion/helm/block-worker + \ + --version 0.1.4 \ + --plain-http \ + --untar + # helm upgrade --install "$RELEASE_NAME" \ + # ./block-worker \ + # --version 0.1.4 \ + # --namespace "$namespace" \ + # --values values.yaml \ + # --plain-http \ + # --debug \ + # --wait \ + # --create-namespace + # --timeout 300s + { helm upgrade --install "$RELEASE_NAME" \ ./block-worker \ diff --git a/deployment.json b/deployment.json index 9f53b99..0183e42 100644 --- a/deployment.json +++ b/deployment.json @@ -1,21 +1,24 @@ { - "namespace": "default", - "name": "name", - "version": "sha", - "repoName": "repoName", - "branchName": "branchName", - "environment": { - "secrets": [], - "variables": [] + "namespace": "staging", + "name": "flows/sequence-1", + "version": "baa9211b23b8a4a79b012d5ba5a4d746608676cd", + "repoName": "flows", + "branchName": "sequence-1", + "environment": { + "secrets": [ + "CI_USER", + "CI_USER_TOKEN" + ], + "variables": [] + }, + "resources": { + "limits": { + "cpu": "500m", + "memory": "512Mi" }, - "resources": { - "limits": { - "cpu": "500m", - "memory": "512Mi" - }, - "requests": { - "cpu": "250m", - "memory": "256Mi" - } + "requests": { + "cpu": "250m", + "memory": "256Mi" } -} + } +} \ No newline at end of file