Compare commits
11 Commits
main
...
flows_sequ
| Author | SHA1 | Date | |
|---|---|---|---|
| c217176b83 | |||
| a170343092 | |||
| 220aee3924 | |||
| 825a4e4118 | |||
| 0d6c9b7002 | |||
| d4462527bf | |||
| 929ef65717 | |||
| 62c0e2f4d4 | |||
| f04db5c0a3 | |||
| 81e17c6216 | |||
| 1291f08715 |
@ -1,8 +1,8 @@
|
|||||||
name: Continuous Deployment Workflow
|
name: Continuous Deployment Workflow
|
||||||
on:
|
'on':
|
||||||
push:
|
push:
|
||||||
paths:
|
paths:
|
||||||
- "deployment.json"
|
- deployment.json
|
||||||
branches:
|
branches:
|
||||||
- '*'
|
- '*'
|
||||||
branches-ignore:
|
branches-ignore:
|
||||||
@ -13,21 +13,36 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout Repository
|
- name: Checkout Repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Parse Deployment JSON
|
- name: Parse Deployment JSON
|
||||||
id: parse_deployment
|
id: parse_deployment
|
||||||
run: |
|
run: >
|
||||||
deployment_json=$(cat deployment.json)
|
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
|
- name: Generate values.yaml
|
||||||
env:
|
env:
|
||||||
CI_USER: ${{ secrets.CI_USER }}
|
CI_USER: ${{ secrets.CI_USER }}
|
||||||
@ -41,69 +56,110 @@ jobs:
|
|||||||
branchName: ${{ env.branchName }}
|
branchName: ${{ env.branchName }}
|
||||||
version: ${{ env.version }}
|
version: ${{ env.version }}
|
||||||
shortVersion: ${{ env.shortVersion }}
|
shortVersion: ${{ env.shortVersion }}
|
||||||
run: |
|
KUBECONFIG_CONTENT: ${{ secrets.KUBECONFIG_CONTENT }}
|
||||||
|
run: >
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
echo "namespace: $namespace" > values.yaml
|
echo "namespace: $namespace" > values.yaml
|
||||||
|
|
||||||
echo "name: $name" >> values.yaml
|
echo "name: $name" >> values.yaml
|
||||||
|
|
||||||
echo "repoName: $repoName" >> values.yaml
|
echo "repoName: $repoName" >> values.yaml
|
||||||
|
|
||||||
echo "branchName: $branchName" >> values.yaml
|
echo "branchName: $branchName" >> values.yaml
|
||||||
|
|
||||||
echo "version: $version" >> values.yaml
|
echo "version: $version" >> values.yaml
|
||||||
|
|
||||||
echo "shortVersion: $shortVersion" >> values.yaml
|
echo "shortVersion: $shortVersion" >> values.yaml
|
||||||
|
|
||||||
echo "environment:" >> values.yaml
|
echo "environment:" >> values.yaml
|
||||||
|
|
||||||
|
|
||||||
# Process secrets
|
# Process secrets
|
||||||
|
|
||||||
echo " secrets:" >> values.yaml
|
echo " secrets:" >> values.yaml
|
||||||
|
|
||||||
IFS=',' read -ra SECRET_NAMES <<< "$secrets"
|
IFS=',' read -ra SECRET_NAMES <<< "$secrets"
|
||||||
|
|
||||||
for secret_name in "${SECRET_NAMES[@]}"; do
|
for secret_name in "${SECRET_NAMES[@]}"; do
|
||||||
secret_value="${!secret_name}"
|
secret_value="${!secret_name}"
|
||||||
echo " - name: $secret_name" >> values.yaml
|
echo " - name: $secret_name" >> values.yaml
|
||||||
echo " value: \"$secret_value\"" >> values.yaml
|
echo " value: \"$secret_value\"" >> values.yaml
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
# echo " - name: CI_USER" >> values.yaml
|
# echo " - name: CI_USER" >> values.yaml
|
||||||
|
|
||||||
# echo " value: \"$CI_USER\"" >> values.yaml
|
# echo " value: \"$CI_USER\"" >> values.yaml
|
||||||
|
|
||||||
|
|
||||||
# echo " - name: CI_USER_TOKEN" >> values.yaml
|
# echo " - name: CI_USER_TOKEN" >> values.yaml
|
||||||
|
|
||||||
# echo " value: \"$CI_USER_TOKEN\"" >> values.yaml
|
# echo " value: \"$CI_USER_TOKEN\"" >> values.yaml
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Process variables
|
# Process variables
|
||||||
|
|
||||||
# echo " variables:" >> values.yaml
|
# echo " variables:" >> values.yaml
|
||||||
|
|
||||||
# IFS=',' read -ra VARIABLE_NAMES <<< "$variables"
|
# IFS=',' read -ra VARIABLE_NAMES <<< "$variables"
|
||||||
|
|
||||||
# for variable_name in "${VARIABLE_NAMES[@]}"; do
|
# 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 " - name: $variable_name" >> values.yaml
|
||||||
|
|
||||||
# echo " value: \"$variable_value\"" >> values.yaml
|
# echo " value: \"$variable_value\"" >> values.yaml
|
||||||
|
|
||||||
# done
|
# done
|
||||||
|
|
||||||
|
|
||||||
echo " variables:" >> values.yaml
|
echo " variables:" >> values.yaml
|
||||||
|
|
||||||
echo " - name: REPO_NAME" >> values.yaml
|
echo " - name: REPO_NAME" >> values.yaml
|
||||||
|
|
||||||
echo " value: \"$repoName\"" >> values.yaml
|
echo " value: \"$repoName\"" >> values.yaml
|
||||||
|
|
||||||
echo " - name: BRANCH_NAME" >> values.yaml
|
echo " - name: BRANCH_NAME" >> values.yaml
|
||||||
|
|
||||||
echo " value: \"$branchName\"" >> values.yaml
|
echo " value: \"$branchName\"" >> values.yaml
|
||||||
|
|
||||||
echo " - name: VERSION" >> values.yaml
|
echo " - name: VERSION" >> values.yaml
|
||||||
|
|
||||||
echo " value: \"$version\"" >> values.yaml
|
echo " value: \"$version\"" >> values.yaml
|
||||||
|
|
||||||
echo " - name: NAMESPACE" >> values.yaml
|
echo " - name: NAMESPACE" >> values.yaml
|
||||||
|
|
||||||
echo " value: \"$namespace\"" >> values.yaml
|
echo " value: \"$namespace\"" >> values.yaml
|
||||||
|
|
||||||
echo " - name: FLOWX_ENGINE_ADDRESS" >> 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
|
# Process resources
|
||||||
|
|
||||||
echo "resources:" >> values.yaml
|
echo "resources:" >> values.yaml
|
||||||
|
|
||||||
echo "$resources" | jq -r '
|
echo "$resources" | jq -r '
|
||||||
. as $root |
|
. 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)"
|
" 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
|
' >> values.yaml
|
||||||
|
|
||||||
echo "Generated values.yaml:"
|
|
||||||
cat values.yaml
|
|
||||||
|
|
||||||
|
echo "Generated values.yaml:"
|
||||||
|
|
||||||
|
cat values.yaml
|
||||||
- name: Install Helm
|
- name: Install Helm
|
||||||
run: |
|
run: |
|
||||||
if ! command -v helm >/dev/null 2>&1; then
|
if ! command -v helm >/dev/null 2>&1; then
|
||||||
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Ensure kubectl is Installed
|
- name: Ensure kubectl is Installed
|
||||||
run: |
|
run: |
|
||||||
if ! command -v kubectl >/dev/null 2>&1; then
|
if ! command -v kubectl >/dev/null 2>&1; then
|
||||||
@ -111,7 +167,6 @@ jobs:
|
|||||||
chmod +x kubectl
|
chmod +x kubectl
|
||||||
sudo mv kubectl /usr/local/bin/
|
sudo mv kubectl /usr/local/bin/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Set Up Kubeconfig
|
- name: Set Up Kubeconfig
|
||||||
run: |
|
run: |
|
||||||
echo "${{ secrets.KUBECONFIG_CONTENT }}" > kubeconfig
|
echo "${{ secrets.KUBECONFIG_CONTENT }}" > kubeconfig
|
||||||
@ -120,7 +175,6 @@ jobs:
|
|||||||
kubectl config use-context ci-cd-user-context
|
kubectl config use-context ci-cd-user-context
|
||||||
echo "KUBECONFIG=$(pwd)/kubeconfig" >> $GITHUB_ENV
|
echo "KUBECONFIG=$(pwd)/kubeconfig" >> $GITHUB_ENV
|
||||||
kubectl config view
|
kubectl config view
|
||||||
|
|
||||||
- name: Deploy with Helm
|
- name: Deploy with Helm
|
||||||
env:
|
env:
|
||||||
CI_USER: ${{ secrets.CI_USER }}
|
CI_USER: ${{ secrets.CI_USER }}
|
||||||
@ -129,44 +183,74 @@ jobs:
|
|||||||
repoName: ${{ env.repoName }}
|
repoName: ${{ env.repoName }}
|
||||||
branchName: ${{ env.branchName }}
|
branchName: ${{ env.branchName }}
|
||||||
version: ${{ env.version }}
|
version: ${{ env.version }}
|
||||||
run: |
|
run: >
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
|
||||||
# Sanitize and construct the release name
|
# 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
|
# 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."
|
echo "Error: Release name '$RELEASE_NAME' is invalid."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Login to the OCI registry
|
# 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
|
--username "$CI_USER" --password-stdin --insecure
|
||||||
|
|
||||||
pwd
|
pwd
|
||||||
|
|
||||||
ls -l
|
ls -l
|
||||||
|
|
||||||
chmod 644 values.yaml
|
chmod 644 values.yaml
|
||||||
|
|
||||||
yq eval values.yaml
|
yq eval values.yaml
|
||||||
|
|
||||||
|
|
||||||
# Pull the chart from the OCI registry
|
# 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 \
|
--version 0.1.4 \
|
||||||
|
|
||||||
--plain-http \
|
--plain-http \
|
||||||
|
|
||||||
--untar
|
--untar
|
||||||
|
|
||||||
|
|
||||||
# helm upgrade --install "$RELEASE_NAME" \
|
# helm upgrade --install "$RELEASE_NAME" \
|
||||||
|
|
||||||
# ./block-worker \
|
# ./block-worker \
|
||||||
|
|
||||||
# --version 0.1.4 \
|
# --version 0.1.4 \
|
||||||
|
|
||||||
# --namespace "$namespace" \
|
# --namespace "$namespace" \
|
||||||
|
|
||||||
# --values values.yaml \
|
# --values values.yaml \
|
||||||
|
|
||||||
# --plain-http \
|
# --plain-http \
|
||||||
|
|
||||||
# --debug \
|
# --debug \
|
||||||
|
|
||||||
# --wait \
|
# --wait \
|
||||||
|
|
||||||
# --create-namespace
|
# --create-namespace
|
||||||
|
|
||||||
# --timeout 300s
|
# --timeout 300s
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
helm upgrade --install "$RELEASE_NAME" \
|
helm upgrade --install "$RELEASE_NAME" \
|
||||||
./block-worker \
|
./block-worker \
|
||||||
|
|||||||
@ -1,11 +1,14 @@
|
|||||||
{
|
{
|
||||||
"namespace": "default",
|
"namespace": "production",
|
||||||
"name": "name",
|
"name": "flows/sequence-1",
|
||||||
"version": "sha",
|
"version": "f0fa374e62767a3462f9faa69679819eacf0b4d2",
|
||||||
"repoName": "repoName",
|
"repoName": "flows",
|
||||||
"branchName": "branchName",
|
"branchName": "sequence-1",
|
||||||
"environment": {
|
"environment": {
|
||||||
"secrets": [],
|
"secrets": [
|
||||||
|
"CI_USER",
|
||||||
|
"CI_USER_TOKEN"
|
||||||
|
],
|
||||||
"variables": []
|
"variables": []
|
||||||
},
|
},
|
||||||
"resources": {
|
"resources": {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user