Skip to content
This repository was archived by the owner on Nov 23, 2025. It is now read-only.

Deploy Auth Service to Kubernetes #3

Deploy Auth Service to Kubernetes

Deploy Auth Service to Kubernetes #3

Workflow file for this run

# Authentication/.github/workflows/deploy.yml
name: Deploy Auth Service to Kubernetes
on:
workflow_run:
# This MUST match the 'name:' of your build.yml file
workflows: ["Build and Package Service"]
types:
- completed
branches:
- 'main'
- 'devOps'
jobs:
deploy:
name: Deploy Auth Service to Kubernetes
# We only deploy if the build job was successful
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
# We only need the SHA of the new image
- name: Get Commit SHA
id: get_sha
run: |
echo "sha=$(echo ${{ github.event.workflow_run.head_sha }} | cut -c1-7)" >> $GITHUB_OUTPUT
# 1. Checkout your new 'k8s-config' repository
- name: Checkout K8s Config Repo
uses: actions/checkout@v4
with:
# This points to your new repo
repository: 'TechTorque-2025/k8s-config'
# This uses the org-level secret you created
token: ${{ secrets.REPO_ACCESS_TOKEN }}
# We'll put the code in a directory named 'config-repo'
path: 'config-repo'
# --- NEW LINE ---
# Explicitly checkout the 'main' branch
ref: 'main'
- name: Install kubectl
uses: azure/setup-kubectl@v3
- name: Install yq
run: |
sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq
sudo chmod +x /usr/bin/yq
- name: Set Kubernetes context
uses: azure/k8s-set-context@v4
with:
kubeconfig: ${{ secrets.KUBE_CONFIG_DATA }} # This uses your Org-level secret
# 2. Update the image tag for the *authentication* service
- name: Update image tag in YAML
run: |
yq -i '(select(.kind == "Deployment") | .spec.template.spec.containers[0].image) = "ghcr.io/techtorque-2025/authentication:${{ steps.get_sha.outputs.sha }}"' config-repo/k8s/services/auth-deployment.yaml
# --- NEW DEBUGGING STEP ---
- name: Display file contents before apply
run: |
echo "--- Displaying k8s/services/auth-deployment.yaml ---"
cat config-repo/k8s/services/auth-deployment.yaml
echo "------------------------------------------------------"
# 3. Deploy the updated file
- name: Deploy to Kubernetes
run: |
kubectl apply -f config-repo/k8s/services/auth-deployment.yaml
kubectl rollout status deployment/auth-deployment