Crossplane Dagger Module
This module provides Dagger functions for Crossplane package management including initialization, building, and publishing to OCI registries.
Features
- ✅ Crossplane package initialization and scaffolding
- ✅ Package building and validation
- ✅ OCI registry publishing with authentication
- ✅ Custom package type creation
- ✅ Multi-registry support (GitHub, Harbor, etc.)
- ✅ Package dependency management
Prerequisites
- Dagger CLI installed
- Docker runtime available
- Registry credentials for publishing
Quick Start
Initialize Package
# Initialize new Crossplane package
dagger call -m crossplane init-package \
--name mypackage \
--progress plain \
export --path=/tmp/crossplane
Build Package
# Build existing package
dagger call -m crossplane package \
--src tests/registry \
--progress plain \
export --path=/tmp/crossplane/built
Push to Registry
# Push package to GitHub Container Registry
dagger call -m crossplane push \
--src tests/registry \
--username stuttgart-things \
--password env:GITHUB_TOKEN \
--registry ghcr.io \
--destination ghcr.io/stuttgart-things/xplane-registry \
--progress plain
Test Module
# Run comprehensive tests
task test-crossplane
API Reference
Package Initialization
dagger call -m crossplane init-package \
--name mypackage \
export --path=/tmp/crossplane/
Package Building
dagger call -m crossplane package \
--src ./crossplane-package \
export --path=/tmp/built-package/
Registry Publishing
dagger call -m crossplane push \
--src ./crossplane-package \
--username myuser \
--password env:REGISTRY_TOKEN \
--registry ghcr.io \
--destination ghcr.io/myorg/mypackage:v1.0.0 \
--progress plain
Custom Package Creation
dagger call -m crossplane init-custom-package \
--name mycustompackage \
export --path=/tmp/crossplane/custom/
Package Structure
A typical Crossplane package structure:
crossplane-package/
├── crossplane.yaml # Package metadata
├── compositions/ # Composition resources
│ └── *.yaml
├── functions/ # Composition functions
│ └── *.yaml
└── examples/ # Usage examples
└── *.yaml
Registry Support
- GitHub Container Registry (
ghcr.io)
- Harbor (custom registry)
- Docker Hub (
docker.io)
- AWS ECR
- Google Container Registry (
gcr.io)
Examples
See the main README for detailed usage examples.
Testing
task test-crossplane
Resources