Files
infrastructure/.gitea/workflows/render-manifests.yaml
Alex Lebens 48c232c275
All checks were successful
renovate / renovate (push) Successful in 1m1s
revert
2025-11-30 14:58:21 -06:00

120 lines
4.1 KiB
YAML

name: render-manifests
on:
push:
branches:
- main
paths:
- "clusters/**"
- ! "clusters/*/archive"
workflow_dispatch:
env:
CLUSTERS: cl01tl
jobs:
render-manifests-helm:
runs-on: ubuntu-js
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: v3.17.2 # Pending https://github.com/helm/helm/pull/30743
- name: Render Helm Manifests
run: |
for cluster in $CLUSTERS; do
mkdir -p ${{ gitea.workspace }}/clusters/$cluster/manifests
for chart_path in ${{ gitea.workspace }}/clusters/$cluster/helm/*; do
chart_name=$(basename "$chart_path")
echo ">> Rendering chart: $chart_name"
if [ -f "$chart_path/Chart.yaml" ]; then
mkdir -p ${{ gitea.workspace }}/clusters/$cluster/manifests/$chart_name
OUTPUT_FILE="${{ gitea.workspace }}/clusters/$cluster/manifests/$chart_name/$chart_name.yaml"
cd $chart_path
echo ""
echo ">> Building helm dependency ..."
helm dependency build
echo ""
echo ">> Linting helm ..."
helm lint --namespace "$chart_name" --with-subcharts
echo ""
echo ">> Rendering templates ..."
helm template "$chart_name" ./ --namespace "$chart_name" --include-crds > "$OUTPUT_FILE"
echo ""
echo ">> Manifests for $chart_name rendered to $OUTPUT_FILE"
echo ""
else
echo ""
echo ">> Directory $chart_path does not contain a Chart.yaml. Skipping ..."
echo ""
fi
done
done
- name: Create Pull Request
id: pull-request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.BOT_TOKEN }}
add-paths: |
clusters/cl01tl/manifests/*
commit-message: "chore: Update manifests after chart change"
committer: gitea-bot <gitea-bot@alexlebens.net>
author: gitea-bot <gitea-bot@alexlebens.net>
branch: auto/update-manifests
branch-suffix: timestamp
base: manifests
title: "Manifest Update"
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.
labels: |
manifests
automated
# - name: ntfy Created
# uses: niniyas/ntfy-action@master
# if: steps.pull-request.outputs.pull-request-operation == 'created'
# with:
# url: "${{ secrets.NTFY_URL }}"
# topic: "${{ secrets.NTFY_TOPIC }}"
# title: "Manifest Render PR Created - Infrastructure"
# priority: 3
# headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
# tags: action,successfully,completed
# details: "Manifest rendering for Infrastructure has created PR ${{ steps.pull-request.outputs.pull-request-number }}!"
# 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