A catalog of Validated Patterns metadata, served as a static nginx container for consumption by the patterns-operator.
The generate-catalog.sh script queries the GitHub API for all repositories tagged with pattern in the validatedpatterns and validatedpatterns-sandbox organizations. For each repository it:
- Fetches
pattern-metadata.yamland normalizes it into a consistent schema - Fetches
values-secret.yaml.templateif present - Writes per-pattern files under
catalog/<pattern-name>/ - Generates a
catalog/catalog.yamlindex listing all discovered patterns
The resulting catalog/ directory is served by an nginx container image that the patterns-operator deploys on-cluster.
gh(GitHub CLI, authenticated)yqv4+jqpodman
The catalog data must be regenerated locally and committed before pushing.
The CI pipeline does not run generate-catalog.sh — it only builds the
container from whatever is already in catalog/.
make generate-catalog # or ./generate-catalog.sh directly
git add catalog/
git commit -m "Update catalog"
git push origin main # or stable-v1./list-all-patterns.shmake pattern-ui-catalog-build
make pattern-ui-catalog-pushA GitHub Actions workflow (.github/workflows/build-and-push.yml) triggers on
pushes to main or stable-v1 when files in catalog/, templates/, or the
workflow itself change:
- validate-yaml — validates all YAML files under
catalog/withyamllint - build-container — builds the image for amd64 and arm64 in parallel on native runners
- push-multiarch-manifest — assembles a multi-arch manifest, pushes to Quay, and signs with cosign (only in the upstream
validatedpatterns/pattern-ui-catalogrepo)
| Branch | Image tag |
|---|---|
main |
:latest |
stable-v1 |
:stable-v1 |
The workflow requires QUAY_USERNAME and QUAY_PASSWORD secrets configured in a quay environment.
catalog/ # Generated catalog data (served by nginx)
catalog.yaml # Index of all patterns
<pattern>/pattern.yaml # Normalized metadata per pattern
<pattern>/values-secret.yaml.template # Secret template (if available)
.github/workflows/ # CI/CD workflow
templates/ # Dockerfile template
generate-catalog.sh # Catalog generation script
list-all-patterns.sh # Lists all pattern repos
Makefile # Build targets