Skip to main content

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

  1. Create your template repository as template-<name> in the organization
  2. Create a YAML file in the templates/ directory with:
    • GitRepository resource pointing to your template repo
    • Kustomization resource to sync it to the cluster
  3. Update kustomization.yaml to include your new file
  4. Submit PR for review

Template Naming Convention

All template repositories must follow the pattern: template-<resource-type>

Examples:

  • template-dns-record - DNS record management
  • template-cloudflare-dnsrecord - Cloudflare DNS integration
  • template-namespace - Kubernetes namespace provisioning
  • template-whoami - Demo application deployment
  • template-whoami-service - Service composition example

Current Templates

TemplateDescriptionResources Created
template-namespaceKubernetes namespace managementNamespace, ResourceQuota, NetworkPolicy, RBAC
template-dns-recordDNS record management (mock)DNS A/CNAME records for local testing
template-cloudflare-dnsrecordCloudflare DNS integrationReal DNS records in Cloudflare zones
template-whoamiDemo applicationDeployment, Service, Ingress
template-whoami-serviceService compositionCombines namespace + whoami app

How It Works

  1. Flux watches this catalog repository
  2. When new templates are added, Flux creates GitRepository resources
  3. 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