Skip to content

UpCloudLtd/provider-upcloud

Repository files navigation

Crossplane Provider UpCloud

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

Please note that this project is currently in early alpha version, we do not recommend running it in production yet.

Quickstart

  1. You will need a Kubernetes cluster to start using a provider. You can use any Kubernetes cluster, but for testing and development purposes, a Kind cluster is recommended:

    kind create cluster -n crossplane-test
    
  2. Next install UpCloud provider. The simplest way to do that is to just apply the following yaml:

    apiVersion: pkg.crossplane.io/v1
    kind: Provider
    metadata:
      name: provider-upcloud
    spec:
      package: xpkg.upbound.io/upcloud/provider-upcloud:v0.0.4
    

Make sure to change the version to the latest one.

  1. Next, you need to create a Secret with your UpCloud API credentials and a ProviderConfig that will use them to provision your infrastructure. Just apply this yaml:

    apiVersion: v1
    kind: Secret
    metadata:
      name: example-provider-creds
      namespace: default
    type: Opaque
    stringData:
      credentials: |
        {
          "username": "username",
          "password": "password123"
        }
    ---
    apiVersion: provider.upcloud.io/v1beta1
    kind: ProviderConfig
    metadata:
      name: default
    spec:
      credentials:
        source: Secret
        secretRef:
          name: example-provider-creds
          namespace: default
          key: credentials
    
  2. And now you can start creating your infrastructure. Check our examples to see what Managed Resources you can use and how. Have fun!

Missing resources

While this provider allows you to manage most of the UpCloud services, support for some is still missing. The missing list includes:

We are currently working on adding support for them, thank you for your patience!

Report a Bug

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

Developing

For development instructions see DEVELOPING.md