Skip to content

ci: add config-as-code apply pipeline - #24

Merged
gustavovalverde merged 4 commits into
mainfrom
ci/apply-kuma-config
Jul 8, 2026
Merged

ci: add config-as-code apply pipeline#24
gustavovalverde merged 4 commits into
mainfrom
ci/apply-kuma-config

Conversation

@andres-pcg

Copy link
Copy Markdown
Contributor

Reconciles kuma-config/ onto the prod Kuma (status.zfnd.org) on merge to main, or via workflow_dispatch. apply.js is declarative and non-destructive.

Auth is keyless Workload Identity Federation as a least-privilege SA that reads the admin/webhook secrets from Secret Manager at run time — no secrets stored in GitHub.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a production CD pipeline that applies the declarative kuma-config/ configuration to the Uptime Kuma instance at status.zfnd.org when changes are merged to main (or manually via workflow_dispatch), using keyless Google Cloud Workload Identity Federation and runtime Secret Manager access.

Changes:

  • Document the new “config-as-code apply” pipeline in kuma-config/README.md.
  • Add a GitHub Actions workflow that authenticates via WIF, fetches required secrets from Secret Manager, and runs npm ci && node apply.js in kuma-config/.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

File Description
kuma-config/README.md Documents the prod apply pipeline and how secrets/vars are sourced.
.github/workflows/cd-apply-kuma-config.yml New workflow to reconcile kuma-config/ onto prod Kuma using WIF + Secret Manager at runtime.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/cd-apply-kuma-config.yml Outdated
Comment thread .github/workflows/cd-apply-kuma-config.yml
Comment thread .github/workflows/cd-apply-kuma-config.yml
Comment thread kuma-config/README.md Outdated
Comment thread kuma-config/README.md Outdated
Mask the fetched secrets with ::add-mask:: before use, add a job timeout-minutes,
pass project_id to the auth step, and clarify the KUMA_PUBLIC_URL->KUMA_URL
mapping in the README.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment thread kuma-config/README.md Outdated
@andres-pcg andres-pcg self-assigned this Jul 6, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/cd-apply-kuma-config.yml

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/cd-apply-kuma-config.yml
Skip the job unless running on main (a workflow_dispatch from a feature branch
must not apply unmerged config to prod), and add set -euo pipefail so a failed
secret fetch aborts instead of running apply.js with empty vars.
@gustavovalverde
gustavovalverde merged commit 89b0301 into main Jul 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants