Skip to content

Commit 189fb5a

Browse files
committed
feat: introduce K8 delete workflow
1 parent 91901dd commit 189fb5a

File tree

2 files changed

+115
-0
lines changed

2 files changed

+115
-0
lines changed

.github/workflows/k8s_delete.yml

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: 'K8: Delete'
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-cluster-delete:
19+
name: 'K8: Delete Cluster Resources'
20+
runs-on: [self-hosted, "${{ github.ref_name }}"]
21+
environment: ${{ github.ref_name }}
22+
env:
23+
KUBERNETES_NAMESPACE: "${{ vars.KUBERNETES_NAMESPACE }}"
24+
KUBERNETES_CLUSTER_NAME: "${{ vars.KUBERNETES_CLUSTER_NAME }}"
25+
KUBERNETES_MANIFEST_PATH: "${{ vars.KUBERNETES_MANIFEST_PATH }}"
26+
AZURE_RESOURCE_GROUP: "${{ vars.AZURE_RESOURCE_GROUP }}"
27+
AZURE_STORAGE_ACCOUNT: ${{ vars.AZURE_STORAGE_ACCOUNT }}
28+
AZURE_STORAGE_FILE_SHARE: ${{ vars.AZURE_STORAGE_FILE_SHARE }}
29+
AZCOPY_VERSION: "v10"
30+
steps:
31+
# Checkout the repository to the GitHub Actions runner
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
35+
- name: GitHub Configuration
36+
run: git config --global url."https://oauth2:${{ secrets.GH_TOKEN }}@github.com".insteadOf https://github.com
37+
38+
- name: Clone cicd-deployment-scripts
39+
run: git clone https://github.com/code-kern-ai/cicd-deployment-scripts.git
40+
41+
# Install the latest version of Kubernetes CLI and configure the Kubernetes CLI configuration file with a Kubernetes Cloud user API token
42+
- name: Azure Login
43+
uses: azure/login@v2
44+
with:
45+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
46+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
47+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
48+
49+
# Use kubelogin to configure your kubeconfig for Azure auth
50+
- name: Set up kubelogin for non-interactive login
51+
uses: azure/use-kubelogin@v1
52+
with:
53+
kubelogin-version: 'v0.0.25'
54+
55+
- uses: azure/aks-set-context@v3
56+
with:
57+
resource-group: ${{ env.AZURE_RESOURCE_GROUP }}
58+
cluster-name: ${{ env.KUBERNETES_CLUSTER_NAME }}
59+
admin: 'false'
60+
use-kubelogin: 'true'
61+
62+
- name: Delete Cluster Deployment
63+
shell: bash
64+
run: |
65+
bash cicd-deployment-scripts/k8s/delete.sh \
66+
-n ${{ env.KUBERNETES_NAMESPACE }} \
67+
-d ${{ inputs.deployment_name }}
68+

k8s/delete.sh

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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+
["kratos"]="kratos" \
21+
["oathkeeper"]="oathkeeper" \
22+
["object-storage"]="obj-storage" \
23+
["platform-monitoring"]="plfm-monitor" \
24+
["refinery-commercial-proxy"]="rf-comm-proxy" \
25+
["refinery-config"]="rf-config" \
26+
["refinery-doc-ock"]="rf-doc-ock" \
27+
["refinery-embedder"]="rf-embedder" \
28+
["refinery-gateway"]="rf-gateway" \
29+
["refinery-gateway-proxy"]="rf-gw-proxy" \
30+
["refinery-model-provider"]="rf-mdl-prvd" \
31+
["refinery-neural-search"]="rf-nrl-search" \
32+
["refinery-tokenizer"]="rf-tokenizer" \
33+
["refinery-updater"]="rf-updater" \
34+
["refinery-weak-supervisor"]="rf-weak-supvsr" \
35+
["refinery-websocket"]="rf-websocket" \
36+
["refinery-zero-shot"]="rf-zero-shot" \
37+
)
38+
39+
kubectl config set-context --current --namespace=$KUBERNETES_NAMESPACE
40+
echo "Context set to namespace: \"$KUBERNETES_NAMESPACE\""
41+
42+
KUBERNETES_SERVICE_NAME=$KUBERNETES_DEPLOYMENT_NAME
43+
KUBERNETES_SECRET_NAME=${secret_rename_mapping[$KUBERNETES_DEPLOYMENT_NAME]}
44+
45+
kubectl delete deployment $KUBERNETES_DEPLOYMENT_NAME
46+
kubectl delete service $KUBERNETES_SERVICE_NAME
47+
kubectl delete secret $KUBERNETES_SECRET_NAME

0 commit comments

Comments
 (0)