Open Service Portal Catalog
This repository serves as the central catalog for Crossplane templates.
Purpose
- Central registry of all template-* repositories
- Managed by Flux for automatic synchronization
- Each template provides XRDs and Compositions for infrastructure
Structure
catalog/
├── templates/ # Individual template repository definitions
├── kustomization.yaml # Kustomize configuration for Flux
└── README.md # This file
Adding a Template
- Create your template repository as
template-<name>in the organization - Create a YAML file in the
templates/directory with:- GitRepository resource pointing to your template repo
- Kustomization resource to sync it to the cluster
- Update kustomization.yaml to include your new file
- Submit PR for review
Template Naming Convention
All template repositories must follow the pattern: template-<resource-type>
Examples:
template-dns-record- DNS record managementtemplate-cloudflare-dnsrecord- Cloudflare DNS integrationtemplate-namespace- Kubernetes namespace provisioningtemplate-whoami- Demo application deploymenttemplate-whoami-service- Service composition example
Current Templates
| Template | Description | Resources Created |
|---|---|---|
template-namespace | Kubernetes namespace management | Namespace, ResourceQuota, NetworkPolicy, RBAC |
template-dns-record | DNS record management (mock) | DNS A/CNAME records for local testing |
template-cloudflare-dnsrecord | Cloudflare DNS integration | Real DNS records in Cloudflare zones |
template-whoami | Demo application | Deployment, Service, Ingress |
template-whoami-service | Service composition | Combines namespace + whoami app |
How It Works
- Flux watches this catalog repository
- When new templates are added, Flux creates GitRepository resources
- Each template repository contains:
- XRD (Composite Resource Definition) - The API
- Composition - The implementation
- Examples - How to use it
Checking Sync Status
# Check if catalog is syncing
flux get sources git catalog -n flux-system
# Check all template repositories
flux get sources git -n flux-system | grep template-
# Check Crossplane resources
kubectl get xrd
kubectl get compositions