Skip to content

opentelekomcloud/provider-opentelekomcloud

T Cloud Public Crossplane provider

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?

Provider Resources Overview

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.

Getting Started

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-dev

Installing the provider

Install Crossplane

Before you begin, make sure you have the following tools installed:

Start by creating a namespace for Crossplane:

kubectl create namespace crossplane-system

Next, add the Crossplane Helm repository and update it:

helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo update

Finally, 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=5m

Install the T Cloud Public provider

Note

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
EOF

Configure the provider

ClusterProviderConfig 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
EOF

Start 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: xplane

Check the state of the managed resources:

kubectl get managed
NAME                                                                SYNCED   READY   EXTERNAL-NAME     AGE
bucket.obs.opentelekomcloud.m.crossplane.io/b   True     True    crossplane-test   3m22s

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

About

T Cloud Public (OpenTelekomCloud) crossplane provider

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors