Terrajet Cloudscale Provider
provider-jet-cloudscale is a Crossplane provider that is built using
Terrajet code generation tools and exposes XRM-conformant managed resources
for the Cloudscale API.
Installing the provider
Assuming that you have a working Crossplane installation and kubectl is configured for the K8s cluster running your
Crossplane installation, you can install provider-jet-cloudscale:
- Generate an API token with write permissions in the Cloudscale web interface
- Put the API token into examples/providerconfig/secret.yaml.tmpl
- Install the secret into K8s:
kubectl apply -f examples/providerconfig/secret.yaml.tmpl
- Install the provider configuration into K8s. This tells the provider which secret to use.
kubectl apply -f examples/providerconfig/providerconfig.yaml
- Install the provider. This is achieved by installing the "Crossplane package" with the name
provider-jet-cloudscale, which in turn sets up the controller image provider-jet-cloudscale-controller which does
the real work. You may need to adjust the version number of the "Crossplane package" first in
examples/providerconfig/install.yaml.
kubectl apply -f examples/providerconfig/install.yaml
- Check if the provider is ready.
kubectl get Provider provider-jet-cloudscale
It should both be 'installed' and 'healthy'. If everything is correct the controller is running as the
'provider-jet-cloudscale-...' pod in the crossplane-system namespace and there are some cloudscale-specific CRDs
available.
Using the provider
Assuming the setup is complete you can now create demo user:
kubectl apply -f examples/demouser.yaml
You should now see a "DemoUser" appear in the Cloudscale web interface.
kubectl delete User demouser
The "DemoUser" should now disappear from the Cloudscale web interface.
Developing and testing the provider
The following commands may be useful for developing and testing the provider.
Create a local kubernetes-in-docker test and development environment:
cd kindev
make crossplane-setup
Clean up said development environment:
cd kindev
make clean
Re-generate CRDs and Go code from the Terraform module:
make generate
Re-generate the Crossplane package and operator (controller):
make build
Run the Crossplane operator (controller) directly:
make run
Licensing
provider-jet-cloudscale is under the Apache 2.0 license.