This repository holds the code for the Cloud Controller Manager (CCM) for Thalassa Cloud. The CCM is a Kubernetes control plane component that embeds cloud-specific control logic, allowing Kubernetes to interact with Thalassa Cloud's infrastructure services.
The Cloud Controller Manager integrates Kubernetes with Thalassa Cloud's infrastructure services.
- Load Balancer Integration: Automatically provisions and manages load balancers for Kubernetes services
- Node Lifecycle Management: Monitors node health and handles node lifecycle events
- Instance Metadata: Provides cloud-specific metadata for nodes
- Zone and Region Support: Supports availability zones and regions for proper node placement
- Configurable Authentication: Supports both Personal Access Token and OIDC authentication methods
The CCM is configured through a cloud configuration file:
# Basic configuration
organisation: "your-org"
project: "your-project"
endpoint: "https://api.thalassa.cloud"
insecure: false
# Authentication (choose one)
cloudCredentials:
personalAccessToken: "your-token"
# OR
clientID: "your-client-id"
clientSecret: "your-client-secret"
# Infrastructure configuration
vpcIdentity: "your-vpc-id"
defaultSubnet: "your-subnet"
cluster: "your-cluster-id"
# Feature configuration
loadBalancer:
enabled: true
creationPollInterval: 5 # seconds
creationPollTimeout: 300 # seconds
instancesV2:
enabled: true
zoneAndRegionEnabled: true
# Additional labels to be added to cloud resources
additionalLabels:
key1: value1
key2: value2
- Create a cloud configuration file with your settings
- Deploy the CCM using the provided Kubernetes manifests
- Configure your Kubernetes cluster to use the Thalassa cloud provider
- Go 1.21 or later
- Kubernetes 1.30 or later
- Access to Thalassa Cloud API
make build
make test
This project is licensed under the Apache License 2.0