Resource Providers
Resource Providers in Ctrlplane are automated processes responsible for discovering, registering, and updating resources. They continuously monitor your infrastructure and external systems, ensuring that Ctrlplane has an accurate and up-to-date representation of your deployment landscape.
Why Use Resource Providers?
Resource Providers offer several key advantages over manual creation and management of resources:
- Automation: Resource Providers eliminate the need for manual intervention, saving time and reducing the potential for human error.
- Dynamic Updates: As your infrastructure evolves, resource providers automatically detect changes (e.g., new clusters, servers, or cloud resources) and update the corresponding resources in Ctrlplane.
- External System Integration: Resource Providers seamlessly integrate with various external systems (e.g., cloud providers, Kubernetes clusters, infrastructure-as-code tools), pulling in the latest information about your resources.
- Reduced Overhead: By automating the management of resources, resource providers free up your team to focus on higher-level tasks.
How Resource Providers Work
- Discovery: Resource Providers periodically scan your defined infrastructure and external systems, identifying potential resources based on configured criteria.
- Registration: When a new resource is discovered, the resource provider registers it in Ctrlplane, including relevant metadata such as labels and associated information.
- Update: For existing resources, resource providers detect any changes and update the corresponding information in Ctrlplane to ensure accuracy.
Types of Resource Providers
Ctrlplane supports various types of resource providers, including:
- Cloud Resource Providers: These resource providers integrate with cloud platforms like AWS, Azure, and Google Cloud, discovering and registering resources such as virtual machines, Kubernetes clusters, and databases.
- Kubernetes Resource Providers: These resource providers specifically resource Kubernetes environments, detecting clusters, namespaces, and other relevant objects.
- Infrastructure-as-Code Resource Providers: These resource providers parse your infrastructure-as-code definitions (e.g., Terraform, CloudFormation) to identify and register resources.
- Custom Resource Providers: You can create custom resource providers to integrate with any system or platform that exposes information about your resources.
Example
Kubernetes Cluster Resource Provider
A Kubernetes cluster resource provider would typically:
- Connect to your Kubernetes API server.
- Discover clusters, namespaces, and other relevant objects.
- Register each discovered object as a resource in Ctrlplane, applying labels based on its characteristics (e.g., cluster name, namespace, environment).
- Periodically re-scan the cluster to detect any changes and update the corresponding resources.