provider-opentelekomcloud is a Crossplane provider that is built using Upjet code generation tools and exposes XRM-conformant managed resources for the opentelekomcloud 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 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: xplaneFor filing bugs, suggesting improvements, or requesting new features, please open an issue.