All 6 Woodpecker pipelines + 2 CoreDNS files are now generated
by gen_config.py from stack.toml. Templates directory removed.
[images] schema in stack.toml defines every container image:
- dockerfile, context, path_filter, scan, hadolint
- trivy_severity, trivy_exit_code (per-image override)
- prep_commands (pre-build steps like docs bib.sqlite copy)
gen_config.py generates:
- ci.yml: lint, test, coverage, validate-gen-config (drift check)
- deploy.yml: build/scan/upload per image from [images]
- harden.yml: no-cache rebuild + scan + vuln close per image
- rebuild-all.yml: full rebuild + deploy per image
- infra-ci.yml: hadolint + dry-run build per image with path_filter
- release.yml: tag-triggered package release
To add a new image: add [images.foo] to stack.toml, commit.
Pre-commit hook auto-regenerates and stages all 8 derived files.
CI validates with gen_config.py --check.