cloudcoil
Cloudcoil combines typed Kubernetes API clients with a controller and admission runtime for Python 3.14+. The same Pydantic resource types work in API calls, controller handlers, CRD definitions and admission requests.
Start with Getting started to run a controller. The guides follow this repository's source; use a matching checkout when trying unreleased APIs.
Build an application
| You need to… | Guide |
|---|---|
| Read and write Kubernetes objects | Resources |
| Define a custom resource and its status | Custom resources |
| Repair desired state and manage child objects | Controllers |
| Split work into stages or choose a case | Stages, cases and reporting |
| Read dependencies through API clients or informers | Live and cached reads |
| Default or validate writes | Admission |
| Generate permissions, install CRDs and deploy | Application deployment |
| Manage startup, shutdown and leadership changes | Lifespans |
| Check behavior locally and against Kubernetes | Testing |
The Widget demo combines a CRD, ordered stages, three child kinds, status and admission. The pattern catalog covers dependency watches, nested cases, variable children, finalizers, reusable controller groups and standalone policies.
Use the client and models
Resource operations and logs work independently of the controller runtime. Use a published model package, or generate models from a CRD or OpenAPI document.
For embedding and tuning, see client caching, runtime and observability and the API reference. Maintainers can follow the model release guide.
Source and issues · Versioning and support · Apache-2.0 license