A Kubernetes operator that manages pools of pre-provisioned, ready-to-use OpenShift namespaces with deployed ClowdEnvironments. Users request namespaces via reservations, and the operator handles lifecycle management including automatic expiration.
The operator maintains pools of namespaces with pre-deployed resources. When a user creates a reservation, a namespace is checked out from the appropriate pool and made available for the specified duration (default: 1 hour). After expiration, the namespace is reclaimed and recycled.
--name— specify a reservation name (e.g.,--name my-reservation)-d, --duration— reservation duration (e.g.,-d 3h)--pool— target pool (e.g.,--pool minimal)
Different pools provide different pre-deployed resources:
| Pool | Resources |
|---|---|
default |
Full ClowdEnvironment (Kafka, Minio, Prometheus, etc) |
minimal |
Minimal ClowdEnvironment |
managed-kafka |
ClowdEnvironment with managed Kafka |
Pools support a sizeLimit configuration to cap the total number of namespaces (ready, creating,
and reserved combined).
- ClowdEnvironment — deployments for Kafka, Kafka Connect, Minio, Prometheus, feature flags
- FrontendEnvironment — configuration for the frontend operator
- RoleBindings — edit access for developers
- Secrets — copied from the base namespace
- Go 1.25+
- OpenShift cluster with Clowder installed
makefor build tooling
# Run tests
make test
# Run linter
make lint
# Build the operator
make build
# Generate manifests
make manifests
# Generate deep copy implementations
make generateThe repository uses GitHub Actions for:
lint.yml— runs golangci-linttest.yml— runs unit testspr-e2e-codebuild.yml— end-to-end tests via AWS CodeBuildplatsec.yml— platform security scanning
A Jenkinsfile is also present for legacy CI integration.
See CONTRIBUTING.md for local development setup and contribution guidelines.
Apache License 2.0