https://github.com/thalassa-cloud/cloud-provider-thalassa
The Kubernetes CCM for the Thalassa Cloud Platform
https://github.com/thalassa-cloud/cloud-provider-thalassa
cloud cloud-controller-manager golang kubernetes
Last synced: about 1 month ago
JSON representation
The Kubernetes CCM for the Thalassa Cloud Platform
- Host: GitHub
- URL: https://github.com/thalassa-cloud/cloud-provider-thalassa
- Owner: thalassa-cloud
- License: apache-2.0
- Created: 2025-05-12T11:26:58.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-01-20T22:09:37.000Z (about 2 months ago)
- Last Synced: 2026-01-21T08:20:37.097Z (about 2 months ago)
- Topics: cloud, cloud-controller-manager, golang, kubernetes
- Language: Go
- Homepage: https://docs.thalassa.cloud/docs/kubernetes/components/cloud-controller-manager/
- Size: 11.2 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cloud Provider Thalassa
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.
## Overview
The Cloud Controller Manager integrates Kubernetes with Thalassa Cloud's infrastructure services.
## Features
- Load balancers for Services of type `LoadBalancer` are created and kept in sync
- Per-port access control lists (ACLs) via annotations; global and per-port ACLs can be combined
- Optional managed security group per Service (created, updated and cleaned up automatically)
- Node metadata and lifecycle integration
- Zone and region labels for nodes
## Configuration
The CCM is configured through a cloud configuration file:
```yaml
# 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
```
## Installation
1. Create a cloud configuration file with your settings
2. Deploy the CCM using the provided Kubernetes manifests
3. Configure your Kubernetes cluster to use the Thalassa cloud provider
## Development
### Prerequisites
- Go 1.21 or later
- Kubernetes 1.30 or later
- Access to Thalassa Cloud API
### Building
```bash
make build
```
### Testing
```bash
make test
```
## License
This project is licensed under the Apache License 2.0