75 lines
2.1 KiB
YAML
75 lines
2.1 KiB
YAML
name: Apply Kuberentes Configs
|
|
on: [push, workflow_dispatch]
|
|
jobs:
|
|
update-repo:
|
|
uses: ./.gitea/workflows/update-repo.yml
|
|
runs-on: home-server
|
|
update-infrastructure:
|
|
runs-on: home-server
|
|
needs: update-repo-folder
|
|
env:
|
|
KUBECONFIG: /home/gitea-runner/.kube/config
|
|
defaults:
|
|
run:
|
|
working-directory: /home/gitea-runner/infrastructure
|
|
steps:
|
|
- name: update home server containers
|
|
run: |
|
|
kubectl apply -f kubernetes/proxy-ingress
|
|
|
|
kubectl annotate ingressclass nginx \
|
|
ingressclass.kubernetes.io/is-default-class="true" --overwrite
|
|
|
|
- name: audiobookshelf
|
|
run: |
|
|
kubectl apply -f kubernetes/audiobookshelf/
|
|
|
|
- name: home assistant
|
|
run: |
|
|
kubectl apply -f kubernetes/homeassistant/
|
|
|
|
- name: copilot
|
|
run: |
|
|
kubectl create secret generic copilot-secret \
|
|
-n copilot \
|
|
--from-literal=token=${{ secrets.COPILOT_SECRET }} \
|
|
--dry-run=client -o yaml | kubectl apply -f -
|
|
|
|
kubectl apply -f kubernetes/copilot/
|
|
|
|
- name: jellyfin
|
|
run: |
|
|
kubectl apply -f kubernetes/jellyfin/
|
|
|
|
- name: minecraft
|
|
run: |
|
|
kubectl apply -f kubernetes/minecraft/
|
|
|
|
- name: homepage
|
|
run: |
|
|
kubectl apply -f kubernetes/homepage/
|
|
kubectl rollout restart deployment/homepage -n homepage
|
|
|
|
- name: test failure notification
|
|
run: |
|
|
exit 1
|
|
|
|
notify-on-failure:
|
|
runs-on: home-server
|
|
needs: update-infrastructure
|
|
if: failure()
|
|
uses: ./.gitea/workflows/notify-ntfy.yml
|
|
secrets:
|
|
NTFY_CHANNEL: ${{ secrets.NTFY_CHANNEL }}
|
|
with:
|
|
title: "Kubernetes Apply Failed"
|
|
message: |
|
|
Failed to apply kubernetes configs
|
|
Repository: ${{ gitea.repository }}
|
|
Run: ${{ gitea.run_number }}
|
|
Job: update-infrastructure
|
|
Status: ${{ needs.update-infrastructure.result }}
|
|
|
|
Logs: https://git.alexmickelson.guru/${{ gitea.repository }}/actions/runs/${{ gitea.run_id }}
|
|
priority: "high"
|
|
tags: "rotating_light,kubernetes" |