Files
helm-charts/.github/workflows/k3d.yaml

56 lines
2.3 KiB
YAML

name: Deploy on k3d
on:
workflow_dispatch:
pull_request:
jobs:
deploy:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-24.04]
k3d: [v5.7.5]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: "Create single cluster"
uses: AbsaOSS/k3d-action@v2
with:
k3d-version: ${{ matrix.k3d }}
cluster-name: "k3d-cluster"
- name: Print Kubernetes Version
run: |
kubectl version
- name: Test k3d
run: |
echo "Sleeping for 120 seconds, give time for the cluster to be ready" && sleep 120
kubectl get no
kubectl get pods -A -o wide
kubectl get sc
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Prometheus operator
id: install-prometheus-operator
run: |
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.48.1/bundle.yaml
kubectl wait --for=condition=available deployment/prometheus-operator -n default --timeout=300s
kubectl get crd
kubectl get po -A -o wide
- name: Install Hub Helm chart
id: install-hub
run: |
helm repo add kerberos https://charts.kerberos.io
kubectl create namespace kerberos-hub
helm install hub ./charts/hub --values charts/hub/values.yaml -n kerberos-hub --create-namespace
kubectl get pods -A -o wide
- name: Send Slack Notification on Success
if: success()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"✅ K3d deployment successful on ${{ matrix.os }} (${{ matrix.k3d }}) - triggered by ${{ github.actor }}\"}" $SLACK_WEBHOOK_URL
- name: Send Slack Notification on Failure
if: failure()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"❌ K3d deployment failed on ${{ matrix.os }} (${{ matrix.k3d }}) - <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>\"}" $SLACK_WEBHOOK_URL