add render manifest workflow
Some checks failed
lint-test-helm / helm-lint (push) Successful in 9s
render-manifests / render-manifests-helm (push) Failing after 30s
renovate / renovate (push) Successful in 2m6s

This commit is contained in:
2025-11-29 21:41:00 -06:00
parent bcc6a517ee
commit e102d910bc
288 changed files with 15801 additions and 0 deletions

View File

@@ -0,0 +1,94 @@
name: render-manifests
on:
push:
branches:
- main
paths:
- "clusters/**"
- ! "clusters/*/archive"
jobs:
render-manifests-helm:
runs-on: ubuntu-js
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: latest
- name: Render Helm Manifests
env:
CLUSTERS: cl01tl
run: |
for cluster in $CLUSTERS; do
mkdir clusters/$CLUSTER/manifests
for chart_path in clusters/$CLUSTER/helm/; do
chart_name=$(basename "$chart")
echo "--- Rendering chart: $chart_name ---"
if [ -f "$chart_path/Chart.yaml" ]; then
OUTPUT_FILE="clusters/$CLUSTER/manifests/$chart_name.yaml"
helm template "$chart_name" "$chart" --namespace "$chart_name" > "$OUTPUT_FILE"
echo "Manifests for $chart_name rendered to $OUTPUT_FILE"
else
echo "Directory $chart_path does not contain a Chart.yaml. Skipping ..."
fi
done
done
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITEA_TOKEN }}
commit-message: "chore: Update manifests after chart change"
branch: auto/update-manifests
base: manifests
title: "Manifest Update: App Changes"
body: |
This PR contains the newly rendered Kubernetes manifests.
* Triggered by workflow run ${{ github.run_id }}
* Review the `files changed` tab for the full YAML diff.
add-paths: "clusters/*/rendered-manifests/"
- name: ntfy Success
uses: niniyas/ntfy-action@master
if: success()
with:
url: "${{ secrets.NTFY_URL }}"
topic: "${{ secrets.NTFY_TOPIC }}"
title: "Manifest Render Success - Infrastructure"
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: "Manifest rendering for Infrastructure has succeeded"
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png"
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: "${{ secrets.NTFY_URL }}"
topic: "${{ secrets.NTFY_TOPIC }}"
title: "Manifest Render Failure - Infrastructure"
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: "Manifest rendering for Infrastructure has failed!"
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png"
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/infrastructure/actions?workflow=render-manifests.yaml", "clear": true}]'
image: true