Note
T Cloud Public is formerly known as Open Telekom Cloud. We are in the process of renaming, rewriting our codebases and documentations with the new name.
provider-opentelekomcloud is a Crossplane provider that is built using Upjet code generation tools and exposes XRM-conformant managed resources for the T Cloud Public API. The provider has been upgraded to support Crossplane v2, which introduced a lot of changes and new features like namespaced ManagedResouces. Cluster scoped MRs are now legacy APIs, thus we recommend using the modern opentelekomcloud.m.crossplane.io namespaced APIs instead. For more information please check What’s New in v2?
You can find all supported resources bundled in the T Cloud Public provider at the Upbound Marketplace.
provider-opentelekomcloud is built on top of the T Cloud Public terraform provider
. This means that all resources supported by the Terraform provider are also configurable through our Crossplane provider.
Please note that some services are not yet fully configured. While you can still provision and manage these services, dynamic value assignment is not configured for them. In such cases, cross-resource identifiers must be configured manually. You can check this issue tracker to see the status of the services.
You will need some flavor of kubernetes to start using Crossplane. You can use kind for testing or any managed kubernetes service.
kind create cluster --name local-devBefore you begin, make sure you have the following tools installed:
Start by creating a namespace for Crossplane:
kubectl create namespace crossplane-systemNext, add the Crossplane Helm repository and update it:
helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo updateFinally, install Crossplane using Helm:
helm install crossplane --namespace crossplane-system crossplane-stable/crossplane After installation, verify that Crossplane is running correctly:
kubectl -n crossplane-system wait --for=condition=Available deployment --all --timeout=5mNote
The provider ships hundreds of ManagedResouces by default, which will increase the load on kube-apiserver. Please consider using MRAP to only activate needed resources.
Install the provider by using the following command after changing the image tag to the latest release:
cat <<EOF | kubectl apply -f -
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-opentelekomcloud
spec:
package: xpkg.upbound.io/opentelekomcloud/provider-opentelekomcloud:v0.7.0
EOFClusterProviderConfig setup with secret:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: provider-secret
namespace: crossplane-system
type: Opaque
stringData:
credentials: |
{
"user_name": "admin",
"password": "t0ps3cr3t11",
"auth_url": "https://iam.eu-de.otc.t-systems.com/v3",
"domain_name": "OTCxxxxx",
"tenant_name": "eu-de_project",
"swauth": "false",
"allow_reauth": "true",
"max_retries": "2",
"max_backoff_retries": "6",
"backoff_retry_timeout": "60",
"insecure": "false"
}
---
apiVersion: opentelekomcloud.m.crossplane.io/v1beta1
kind: ClusterProviderConfig
metadata:
name: default
spec:
credentials:
source: Secret
secretRef:
name: provider-secret
namespace: crossplane-system
key: credentials
EOFStart deploying ManagedResources:
apiVersion: obs.opentelekomcloud.m.crossplane.io/v1alpha1
kind: Bucket
metadata:
annotations:
meta.upbound.io/example-id: obs/v1alpha1/bucket
labels:
testing.upbound.io/example-name: b
name: b
namespace: default
spec:
forProvider:
acl: private
bucket: crossplane-test
tags:
Env: Test
foo: bar
managed: xplaneCheck the state of the managed resources:
kubectl get managedNAME SYNCED READY EXTERNAL-NAME AGE
bucket.obs.opentelekomcloud.m.crossplane.io/b True True crossplane-test 3m22sFor filing bugs, suggesting improvements, or requesting new features, please open an issue.