Skip to content

opentelekomcloud/provider-opentelekomcloud

Repository files navigation

Provider opentelekomcloud

provider-opentelekomcloud is a Crossplane provider that is built using Upjet code generation tools and exposes XRM-conformant managed resources for the opentelekomcloud API.

🚨 Note: This project is still under development and is not recommended for use in production environments. 🚨

Getting Started

Install provider-opentelekomcloud

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:

helm list -n crossplane-system
kubectl get all -n crossplane-system

Install the Provider

Install the provider by using the following command after changing the image tag to the latest release:

up ctp provider install opentelekomcloud/provider-opentelekomcloud:v0.3.0

Alternatively, you can use declarative installation:

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.3.0
EOF

Notice that in this example Provider resource is referencing ControllerConfig with debug disabled.

You can see the API reference here.

Configure provider-opentelekomcloud

ProviderConfig setup with secret:

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
  name: provider-opentelekomcloud-creds
  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": "...",
      "tenant_name": "...",
      "swauth": "false",
      "allow_reauth": "true",
      "max_retries": "2",
      "max_backoff_retries": "6",
      "backoff_retry_timeout": "60",
      "insecure": "false"
    }
---
apiVersion: opentelekomcloud.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
  name: default
spec:
  credentials:
    source: Secret
    secretRef:
      name: provider-opentelekomcloud-creds
      namespace: crossplane-system
      key: credentials
EOF

Running provider in debug mode

To enable debug mode, create the following ControllerConfig and reference it in your Provider resource:

cat <<EOF | kubectl apply -f -
apiVersion: pkg.crossplane.io/v1alpha1
kind: ControllerConfig
metadata:
  name: debug-config
spec:
  args:
    - --debug
---
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: provider-opentelekomcloud
spec:
  package: xpkg.upbound.io/opentelekomcloud/provider-opentelekomcloud:v0.3.0
  controllerConfigRef:
    name: debug-config
EOF

Developing

Run the code-generation pipeline:

go run cmd/generator/main.go "$PWD"

Run against a Kubernetes cluster:

make run

Build, push, and install:

make all

Build binary:

make build

Report a Bug

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

About

OTC crossplane provider

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •