A command-line interface (CLI) tool for Open Telekom Cloud (OTC) services.
- 🔐 Authentication: Browser-based SSO login with credential management
- ☁️ Multi-cloud Support: Manage multiple cloud configurations via
clouds.yaml - 🖥️ ECS Management: List and manage Elastic Cloud Servers
- 🐳 CCE Operations: List clusters and manage CCE (Cloud Container Engine) configurations
- 🌍 Multi-region: Support for different regions and projects
git clone https://github.com/ysoftdevs/otc-cli.git
cd otc-cli
go build -o otc .Download the latest release for your platform from the Releases page.
Create a clouds.yaml file in your home directory (~/.config/openstack/clouds.yaml):
clouds:
my-cloud:
region: eu-de
auth:
auth_url: https://iam.eu-de.otc.t-systems.com/v3
domain_id: your-domain-id
sso:
protocol: saml
idp: your-idp
base_url: https://auth.otc.t-systems.com/authui/federation/websso
expiration: 3600You can override configuration using environment variables with the OTC_ prefix:
OTC_CLOUD: Cloud name from clouds.yamlOTC_REGION: Region to useOTC_PROJECT: Project name
Login using browser-based SSO:
otc loginWith specific cloud configuration:
otc login --cloud my-cloud --domain-id YOUR_DOMAIN_IDCustom authentication parameters:
otc login \
--url https://auth.otc.t-systems.com/authui/federation/websso \
--auth-url https://iam.eu-de.otc.t-systems.com/v3 \
--domain-id YOUR_DOMAIN_ID \
--idp YOUR_IDP \
--protocol saml \
--expiration 3600List ECS instances from cloud and region specified in config files:
otc ecs listWith specific cloud and region:
otc ecs list --cloud my-cloud --region eu-deList CCE clusters:
otc cce listGet kubeconfig for a cluster:
otc cce config CLUSTER_NAMESave kubeconfig to file:
otc cce config CLUSTER_NAME --output kubeconfig.yamlThese flags are available for all commands:
-c, --cloud: Name of the cloud from clouds.yaml to use-r, --region: Region to use for the cloud-p, --project: Project name to use for authentication
- Go 1.21 or higher
go build -v ./...go test -v ./...Contributions are welcome! Please feel free to submit a Pull Request.