Kubernetes is an extremely flexible platform. It allows you to extend its own API with new types of resources called custom resources. If that is not enough you can even provide your API server that integrates with the Kubernetes API server in a mechanism called API aggregation. What can you do with custom resources? Plenty. You can use them to manage the Kubernetes API resources that live outside the Kubernetes cluster, which your pods communicate with.
By adding those external resources as custom resources, you get a full picture of your system and you benefit from many Kubernetes API features such as the following:
- Custom CRUD REST endpoints
- Versioning
- Watches
- Automatic integration with generic Kubernetes tooling
Other use cases for custom resources are metadata for custom controllers and automation programs.
Custom resources that were introduced...