provider-openstack

module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2024 License: Apache-2.0

README

Crossplane Provider OpenStack

GitHub release Upbound Marketplace

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

Getting Started

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.

Configuration

# 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.

Developing

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

Release a new version (Maintainer)

  • 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

Report a Bug

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

Directories

Path Synopsis
Package apis contains Kubernetes API for the provider.
Package apis contains Kubernetes API for the provider.
blockstorage/v1alpha1
+kubebuilder:object:generate=true +groupName=blockstorage.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=blockstorage.openstack.crossplane.io +versionName=v1alpha1
compute/v1alpha1
+kubebuilder:object:generate=true +groupName=compute.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=compute.openstack.crossplane.io +versionName=v1alpha1
containerinfra/v1alpha1
+kubebuilder:object:generate=true +groupName=containerinfra.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=containerinfra.openstack.crossplane.io +versionName=v1alpha1
db/v1alpha1
+kubebuilder:object:generate=true +groupName=db.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=db.openstack.crossplane.io +versionName=v1alpha1
dns/v1alpha1
+kubebuilder:object:generate=true +groupName=dns.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=dns.openstack.crossplane.io +versionName=v1alpha1
fw/v1alpha1
+kubebuilder:object:generate=true +groupName=fw.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=fw.openstack.crossplane.io +versionName=v1alpha1
identity/v1alpha1
+kubebuilder:object:generate=true +groupName=identity.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=identity.openstack.crossplane.io +versionName=v1alpha1
images/v1alpha1
+kubebuilder:object:generate=true +groupName=images.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=images.openstack.crossplane.io +versionName=v1alpha1
keymanager/v1alpha1
+kubebuilder:object:generate=true +groupName=keymanager.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=keymanager.openstack.crossplane.io +versionName=v1alpha1
lb/v1alpha1
+kubebuilder:object:generate=true +groupName=lb.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=lb.openstack.crossplane.io +versionName=v1alpha1
networking/v1alpha1
+kubebuilder:object:generate=true +groupName=networking.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=networking.openstack.crossplane.io +versionName=v1alpha1
objectstorage/v1alpha1
+kubebuilder:object:generate=true +groupName=objectstorage.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=objectstorage.openstack.crossplane.io +versionName=v1alpha1
orchestration/v1alpha1
+kubebuilder:object:generate=true +groupName=orchestration.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=orchestration.openstack.crossplane.io +versionName=v1alpha1
sharedfilesystem/v1alpha1
+kubebuilder:object:generate=true +groupName=sharedfilesystem.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=sharedfilesystem.openstack.crossplane.io +versionName=v1alpha1
v1alpha1
Package v1alpha1 contains the core resources of the openstack jet provider.
Package v1alpha1 contains the core resources of the openstack jet provider.
v1beta1
Package v1beta1 contains the core resources of the openstack upjet provider.
Package v1beta1 contains the core resources of the openstack upjet provider.
vpnaas/v1alpha1
+kubebuilder:object:generate=true +groupName=vpnaas.openstack.crossplane.io +versionName=v1alpha1
+kubebuilder:object:generate=true +groupName=vpnaas.openstack.crossplane.io +versionName=v1alpha1
cmd
dns
lb
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL