provider-openstack
is a Crossplane provider that
is built using Upjet code
generation tools and exposes XRM-conformant managed resources for the
OpenStack API.
Install the provider by using the following command after changing the image tag to the latest release:
up ctp provider install crossplane-contrib/provider-openstack:vX.X.X
Alternatively, you can use declarative installation:
cat <<EOF | kubectl apply -f -
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-openstack
spec:
package: xpkg.upbound.io/crossplane-contrib/provider-openstack:vX.Y.Z
EOF
Notice that in this example Provider resource is referencing ControllerConfig with debug enabled.
You can see the API reference here.
# Providerconfig that referers to the secret
apiVersion: openstack.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
name: provider-openstack-config
spec:
credentials:
source: Secret
secretRef:
key: config
name: provider-openstack-config
namespace: crossplane
---
# Secret that stores credentials and other configuration
apiVersion: v1
kind: Secret
metadata:
name: provider-openstack-config
namespace: crossplane
type: Opaque
data:
config: <see below>
The secret key must contain a json dictionary that provides the authentication data. You can create the secret via this command:
kubectl create secret generic provider-openstack-config --from-file=config=config.json --namespace crossplane
// config.json
{
"auth_url": "https://auth.openstack.example/",
"application_credential_id": "123456789",
"application_credential_secret": "secret-key"
}
Check Terraform OpenStack provider docs to see available configuration settings. Currently not all options of the upstream provider are supported. Check client code to see if your option is supported. If something is missing, please open a new issue.
Install the required submodules to build and run:
make submodules
Apply the Current CRDs and a providerConfig:
kubectl apply -f package/crds
kubectl apply -f examples/providerconfig/providerconfig.yaml
Run against a Kubernetes cluster: (make sure to apply CRDs and providerConfig)
make run
Run a testbuild with linting:
make reviewable
Build binary:
make build
- Update Changelog (Add new Version & Date)
- Create or merge to existing release branch (release-v(major).(minor))
- Run Release pipeline on release branch, using specific version as parameter
For filing bugs, suggesting improvements, or requesting new features, please open an issue.