Skip to content

Commit 4f2fb2b

Browse files
Merge pull request #5 from code-kern-ai/perf-reload-secrets
perf: add k8s reload secrets workflow
2 parents ddffe60 + 9e4be6e commit 4f2fb2b

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: 'K8: Reload Secrets'
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
deployment_name:
7+
description: 'Deployment Name'
8+
required: true
9+
type: string
10+
11+
# Special permissions required for OIDC authentication
12+
permissions:
13+
id-token: write
14+
contents: read
15+
actions: read
16+
17+
jobs:
18+
k8-reload-secrets:
19+
name: 'K8: Reload Secrets'
20+
runs-on: [self-hosted, dev]
21+
environment: dev
22+
env:
23+
KUBELOGIN_VERSION: "v0.0.25"
24+
KUBERNETES_CLUSTER_NAME: "${{ vars.KUBERNETES_CLUSTER_NAME }}"
25+
KUBERNETES_NAMESPACE: "${{ vars.KUBERNETES_NAMESPACE }}"
26+
AZURE_RESOURCE_GROUP: "${{ vars.AZURE_RESOURCE_GROUP }}"
27+
steps:
28+
# Checkout the repository to the GitHub Actions runner
29+
- name: Checkout
30+
uses: actions/checkout@v4
31+
32+
- name: GitHub Configuration
33+
run: git config --global url."https://oauth2:${{ secrets.GH_TOKEN }}@github.com".insteadOf https://github.com
34+
35+
- name: Clone cicd-deployment-scripts
36+
run: git clone https://github.com/code-kern-ai/cicd-deployment-scripts.git
37+
38+
# Install the latest version of Kubernetes CLI and configure the Kubernetes CLI configuration file with a Kubernetes Cloud user API token
39+
- name: Azure Cloud Login
40+
uses: azure/login@v2
41+
with:
42+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
43+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
44+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
45+
46+
# Use kubelogin to configure your kubeconfig for Azure auth
47+
- name: Set up kubelogin for non-interactive login
48+
uses: azure/use-kubelogin@v1
49+
with:
50+
kubelogin-version: ${{ env.KUBELOGIN_VERSION }}
51+
52+
- uses: azure/aks-set-context@v3
53+
with:
54+
resource-group: ${{ env.AZURE_RESOURCE_GROUP }}
55+
cluster-name: ${{ env.KUBERNETES_CLUSTER_NAME }}
56+
admin: 'false'
57+
use-kubelogin: 'true'
58+
59+
- name: Run Secret Reload
60+
shell: bash
61+
run: |
62+
bash cicd-deployment-scripts/k8s/reload_secrets.sh \
63+
-n ${{ env.KUBERNETES_NAMESPACE }} \
64+
-d ${{ inputs.deployment_name }}

k8s/reload_secrets.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# !/bin/bash
2+
set -e
3+
4+
KUBERNETES_NAMESPACE=""
5+
KUBERNETES_DEPLOYMENT_NAME=""
6+
7+
while getopts n:d: flag
8+
do
9+
case "${flag}" in
10+
n) KUBERNETES_NAMESPACE=${OPTARG};;
11+
d) KUBERNETES_DEPLOYMENT_NAME=${OPTARG};;
12+
esac
13+
done
14+
15+
declare -A secret_rename_mapping=( \
16+
["cognition-gateway"]="cg-gateway" \
17+
["cognition-pdf2md"]="cg-gateway" \
18+
["cognition-task-master"]="cg-task-master" \
19+
["gates-gateway"]="gt-gateway" \
20+
["platform-monitoring"]="plfm-monitor" \
21+
["refinery-commercial-proxy"]="rf-comm-proxy" \
22+
["refinery-config"]="rf-config" \
23+
["refinery-doc-ock"]="rf-doc-ock" \
24+
["refinery-embedder"]="rf-embedder" \
25+
["refinery-gateway"]="rf-gateway" \
26+
["refinery-gateway-proxy"]="rf-gw-proxy" \
27+
["refinery-model-provider"]="rf-mdl-prvd" \
28+
["refinery-neural-search"]="rf-nrl-search" \
29+
["refinery-tokenizer"]="rf-tokenizer" \
30+
["refinery-updater"]="rf-updater" \
31+
["refinery-weak-supervisor"]="rf-weak-supvsr" \
32+
["refinery-websocket"]="rf-websocket" \
33+
["refinery-zero-shot"]="rf-zero-shot" \
34+
)
35+
36+
kubectl config set-context --current --namespace=$KUBERNETES_NAMESPACE
37+
echo "Context set to namespace: \"$KUBERNETES_NAMESPACE\""
38+
39+
kubectl delete secret ${secret_rename_mapping[$KUBERNETES_DEPLOYMENT_NAME]}
40+
kubectl rollout restart deployment ${KUBERNETES_DEPLOYMENT_NAME}
41+
kubectl rollout status deployment ${KUBERNETES_DEPLOYMENT_NAME}
42+
43+
echo "::notice::Reloaded ${KUBERNETES_DEPLOYMENT_NAME} secret (${secret_rename_mapping[$KUBERNETES_DEPLOYMENT_NAME]}) successfully"

0 commit comments

Comments
 (0)