From 58107e242174c04b19cdf9b3547d0fdfc84f27e7 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 19 Dec 2024 15:49:28 +0000 Subject: [PATCH] Rendered docs --- ctlplane/index.html | 30677 +++++++++++++++++++++++++++++++++++++++++ dataplane/index.html | 6000 ++++++++ index.html | 57 + 3 files changed, 36734 insertions(+) create mode 100644 ctlplane/index.html create mode 100644 dataplane/index.html create mode 100644 index.html diff --git a/ctlplane/index.html b/ctlplane/index.html new file mode 100644 index 000000000..5924916d0 --- /dev/null +++ b/ctlplane/index.html @@ -0,0 +1,30677 @@ + + + + + + + +OpenStack Operator + + + + + + + +
+
+
+
+

This is the primary operator for OpenStack. It is a "meta" operator, meaning it +serves to coordinate the other operators for OpenStack by watching and configuring +their CustomResources (CRs). Additionally installing this operator will automatically +install all required operator dependencies for installing/managing OpenStack.

+
+
+
+
+

Description

+
+
+

This project is built, modeled, and maintained with operator-sdk.

+
+
+
+
+

Getting Started

+
+
+

You’ll need a Kubernetes cluster to run against. You can use KIND to get a local cluster for testing, or run against a remote cluster. +Note: Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster kubectl cluster-info shows).

+
+
+

Running on the cluster

+
+
    +
  1. +

    Install Instances of Custom Resources:

    +
  2. +
+
+
+
+
kubectl apply -f config/samples/
+
+
+
+
    +
  1. +

    Build and push your image to the location specified by IMG:

    +
  2. +
+
+
+
+
make docker-build docker-push IMG=<some-registry>/openstack-operator:tag
+
+
+
+
    +
  1. +

    Deploy the controller to the cluster with the image specified by IMG:

    +
  2. +
+
+
+
+
make deploy IMG=<some-registry>/openstack-operator:tag
+
+
+
+
+

Uninstall CRDs

+
+

To delete the CRDs from the cluster:

+
+
+
+
make uninstall
+
+
+
+
+

Undeploy controller

+
+

UnDeploy the controller to the cluster:

+
+
+
+
make undeploy
+
+
+
+
+

Building your own bundle, index images

+
+

The OpenStack operator uses multiple bundles to minimize the number of +deployment artifacts we have in the OLM catalog while also providing enough +space for our CRs (this is a big project). As such the build order for local +bundles is a bit different than normal.

+
+
+
    +
  1. +

    Run make:bundle. This pins down dependencies to version used in the go.mod and +and also string replaces the URL for any dependant bundles (storage, etc) that +we will build below. Additionally a dependency.yaml is added to the generated bundle +so that we require any dependencies. This sets the stage for everything below.

    +
  2. +
+
+
+
+
make bundle
+
+
+
+
    +
  1. +

    Run dep-bundle-build-push. This creates any dependency bundles required by this project. +It builds and pushes them to a registry as this is required to be able to build the main +bundle.

    +
  2. +
+
+
+
+
make dep-bundle-build-push
+
+
+
+
    +
  1. +

    Run bundle-build. This will execute podman to build the custom-bundle.Dockerfile.

    +
  2. +
+
+
+
+
make bundle-build
+
+
+
+
    +
  1. +

    Run bundle-push. This pushes the resulting bundle image to the registry.

    +
  2. +
+
+
+
+
make bundle-push
+
+
+
+
    +
  1. +

    Run catalog-build. At this point you can generate your index image so that it contains both of the above bundle images. Because we use dependencies in the openstack-operator’s main bundle it will +automatically install the CSV contained in the dependant (storage, etc) bundle.

    +
  2. +
+
+
+
+
make catalog-build
+
+
+
+
    +
  1. +

    Run catalog-push. Push the catalog to your registry.

    +
  2. +
+
+
+
+
make catalog-push
+
+
+
+
+

Uninstall CRDs

+
+

To delete the CRDs from the cluster:

+
+
+
+
make uninstall
+
+
+
+
+

Undeploy controller

+
+

UnDeploy the controller to the cluster:

+
+
+
+
make undeploy
+
+
+
+
+
+

Custom Resources

+ +
+

Sub Resources

+
+
+ +
+
+

OpenStackClient

+
+

OpenStackClient is the Schema for the openstackclients API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OpenStackClientSpec

false

status

OpenStackClientStatus

false

+ +
+
+

OpenStackClientList

+
+

OpenStackClientList contains a list of OpenStackClient

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OpenStackClient

true

+ +
+
+

OpenStackClientSpec

+
+

OpenStackClientSpec defines the desired state of OpenStackClient

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage for the the OpenstackClient container (will be set to environmental default if empty)

string

true

+ +
+
+

OpenStackClientSpecCore

+
+

OpenStackClientSpecCore defines the desired state of OpenStackClient

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

openStackConfigMap

OpenStackConfigMap is the name of the ConfigMap containing the clouds.yaml

*string

true

openStackConfigSecret

OpenStackConfigSecret is the name of the Secret containing the secure.yaml

*string

true

nodeSelector

NodeSelector to target subset of worker nodes

*map[string]string

false

+ +
+
+

OpenStackClientStatus

+
+

OpenStackClientStatus defines the observed state of OpenStackClient

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

podName

PodName

string

false

conditions

Conditions

condition.Conditions

false

observedGeneration

ObservedGeneration - the most recent generation observed for this object.

int64

false

hash

Map of hashes to track e.g. pod spec

map[string]string

false

+ +
+
+

BarbicanSection

+
+

BarbicanSection defines the desired state of Barbican service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Barbican service should be deployed and managed

bool

true

template

Template - Overrides to use when creating the Barbican Service

*barbicanv1.BarbicanSpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

CACertConfig

+
+

CACertConfig defines details for ca cert configs

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

duration

The requested duration (i.e. lifetime) of the Certificate. The Certificate will be renewed either 2/3 through its duration or renewBefore period before its expiry, whichever is later. Minimum accepted duration is 1 hour. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration

*metav1.Duration

true

renewBefore

How long before the currently issued certificate’s expiry cert-manager should renew the certificate. The default is 2/3 of the issued certificate’s duration. Minimum accepted value is 5 minutes. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration

*metav1.Duration

false

customIssuer

CustomIssuer - use pre-created issue for this CA. No CA and issure is being created the CA cert and chain needs to be added using the CaBundleSecretName.

*string

false

+ +
+
+

CertConfig

+
+

CertConfig defines details for cert configs

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

duration

The requested duration (i.e. lifetime) of the Certificate. The Certificate will be renewed either 2/3 through its duration or renewBefore period before its expiry, whichever is later. Minimum accepted duration is 1 hour. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration

*metav1.Duration

true

renewBefore

How long before the currently issued certificate’s expiry cert-manager should renew the certificate. The default is 2/3 of the issued certificate’s duration. Minimum accepted value is 5 minutes. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration

*metav1.Duration

false

+ +
+
+

CertSection

+
+

CertSection defines details for CA config and its certs

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cert

Cert - defines details for cert config

CertConfig

true

ca

Ca - defines details for CA cert config

CACertConfig

true

+ +
+
+

CinderSection

+
+

CinderSection defines the desired state of Cinder service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Cinder service should be deployed and managed

bool

true

template

Template - Overrides to use when creating Cinder Resources

*cinderv1.CinderSpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

uniquePodNames

UniquePodNames - Use a unique prefix for cinder CRs to have unique pod names. Convenient to avoid podname (and thus hostname) collision between different deployments. Useful for CI jobs as well as preproduction and production environments that use the same storage backend, etc.

bool

true

+ +
+
+

DNSMasqSection

+
+

DNSMasqSection defines the desired state of DNSMasq service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether DNSMasq service should be deployed and managed

bool

true

template

Template - Overrides to use when creating the DNSMasq service

*networkv1.DNSMasqSpec

false

+ +
+
+

DesignateSection

+
+

DesignateSection defines the desired state of the Designate service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether the Designate service should be deployed and managed

bool

true

template

Template - Overrides to use when creating Designate Resources

*designatev1.DesignateSpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

GaleraSection

+
+

GaleraSection defines the desired state of Galera services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Galera services should be deployed and managed

bool

true

templates

Templates - Overrides to use when creating the Galera databases

*map[string]mariadbv1.GaleraSpecCore

false

+ +
+
+

GlanceSection

+
+

GlanceSection defines the desired state of Glance service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Glance service should be deployed and managed

bool

true

template

Template - Overrides to use when creating the Glance Service

*glancev1.GlanceSpecCore

false

apiOverrides

APIOverride, provides the ability to override the generated manifest of several child resources.

map[string]Override

false

uniquePodNames

UniquePodNames - Use a unique prefix for glance CRs to have unique pod names. Convenient to avoid podname (and thus hostname) collision between different deployments. Useful for CI jobs as well as preproduction and production environments that use the same storage backend, etc.

bool

true

+ +
+
+

HeatSection

+
+

HeatSection defines the desired state of Heat services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Heat services should be deployed and managed

bool

true

template

Template - Overrides to use when creating the Heat services

*heatv1.HeatSpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

cnfAPIOverride

CnfAPIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

HorizonSection

+
+

HorizonSection defines the desired state of Horizon services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Horizon services should be deployed and managed

bool

true

template

Template - Overrides to use when creating the Horizon services

*horizonv1.HorizonSpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

IronicSection

+
+

IronicSection defines the desired state of Ironic services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Ironic services should be deployed and managed

bool

true

template

Template - Overrides to use when creating the Ironic services

*ironicv1.IronicSpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

inspectorOverride

InspectorOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

KeystoneSection

+
+

KeystoneSection defines the desired state of Keystone service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Keystone service should be deployed and managed

bool

true

template

Template - Overrides to use when creating the Keystone service

*keystonev1.KeystoneAPISpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

ManilaSection

+
+

ManilaSection defines the desired state of Manila service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Manila service should be deployed and managed

bool

true

template

Template - Overrides to use when creating Manila Resources

*manilav1.ManilaSpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

MemcachedSection

+
+

MemcachedSection defines the desired state of Memcached services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Memcached services should be deployed and managed

bool

true

templates

Templates - Overrides to use when creating the Memcached databases

*map[string]memcachedv1.MemcachedSpecCore

false

+ +
+
+

NeutronSection

+
+

NeutronSection defines the desired state of Neutron service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Neutron service should be deployed and managed

bool

true

template

Template - Overrides to use when creating the Neutron Service

*neutronv1.NeutronAPISpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

NovaCellOverrideSpec

+
+

NovaCellOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

noVNCProxy

Override

false

+ +
+
+

NovaSection

+
+

NovaSection defines the desired state of Nova services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Nova services should be deployed and managed

bool

true

template

Template - Overrides to use when creating the Nova services

*novav1.NovaSpec

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

cellOverride

CellOverride, provides the ability to override the generated manifest of several child resources for a nova cell. cell0 never have compute nodes and therefore it won’t have a noVNCProxy deployed. Providing an override for cell0 noVNCProxy does not have an effect.

map[string]NovaCellOverrideSpec

false

+ +
+
+

OctaviaSection

+
+

OctaviaSection defines the desired state of the Octavia service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether the Octavia service should be deployed and managed

bool

true

template

Template - Overrides to use when creating Octavia Resources

*octaviav1.OctaviaSpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

OpenStackClientSection

+
+

OpenStackClientSection defines the desired state of the OpenStackClient

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

template

Template - Overrides to use when creating the OpenStackClient Resource

v1beta1.OpenStackClientSpecCore

false

+ +
+
+

OpenStackControlPlane

+
+

OpenStackControlPlane is the Schema for the openstackcontrolplanes API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OpenStackControlPlaneSpec

false

status

OpenStackControlPlaneStatus

false

+ +
+
+

OpenStackControlPlaneList

+
+

OpenStackControlPlaneList contains a list of OpenStackControlPlane

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OpenStackControlPlane

true

+ +
+
+

OpenStackControlPlaneSpec

+
+

OpenStackControlPlaneSpec defines the desired state of OpenStackControlPlane

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

secret

Secret - FIXME: make this optional

string

true

storageClass

StorageClass -

string

true

nodeSelector

NodeSelector to target subset of worker nodes running control plane services

map[string]string

false

tls

TLS - Parameters related to the TLS

TLSSection

true

dns

DNS - Parameters related to the DNSMasq service

DNSMasqSection

false

keystone

Keystone - Parameters related to the Keystone service

KeystoneSection

false

placement

Placement - Parameters related to the Placement service

PlacementSection

false

glance

Glance - Parameters related to the Glance service

GlanceSection

false

cinder

Cinder - Parameters related to the Cinder service

CinderSection

false

galera

Galera - Parameters related to the Galera services

GaleraSection

false

rabbitmq

Rabbitmq - Parameters related to the Rabbitmq service

RabbitmqSection

false

memcached

Memcached - Parameters related to the Memcached service

MemcachedSection

false

ovn

Ovn - Overrides to use when creating the OVN Services

OvnSection

false

neutron

Neutron - Overrides to use when creating the Neutron Service

NeutronSection

false

nova

Nova - Parameters related to the Nova services

NovaSection

false

heat

Heat - Parameters related to the Heat services

HeatSection

false

ironic

Ironic - Parameters related to the Ironic services

IronicSection

false

manila

Manila - Parameters related to the Manila service

ManilaSection

false

horizon

Horizon - Parameters related to the Horizon services

HorizonSection

false

telemetry

Telemetry - Parameters related to the OpenStack Telemetry services

TelemetrySection

false

swift

Swift - Parameters related to the Swift service

SwiftSection

false

octavia

Octavia - Parameters related to the Octavia service

OctaviaSection

false

designate

Designate - Parameters related to the Designate service

DesignateSection

false

barbican

Barbican - Parameters related to the Barbican service

BarbicanSection

false

redis

Redis - Parameters related to the Redis service

RedisSection

false

openstackclient

OpenStackClient - Parameters related to the OpenStackClient

OpenStackClientSection

false

extraMounts

ExtraMounts containing conf files and credentials that should be provided to the underlying operators. This struct can be defined in the top level CR and propagated to the underlying operators that accept it in their API (e.g., cinder/glance). However, if extraVolumes are specified within the single operator template Section, the globally defined ExtraMounts are ignored and overridden for the operator which has this section already.

[]OpenStackExtraVolMounts

false

+ +
+
+

OpenStackControlPlaneStatus

+
+

OpenStackControlPlaneStatus defines the observed state of OpenStackControlPlane

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

tls

TLS

TLSStatus

false

deployedVersion

DeployedVersion

*string

false

deployedOVNVersion

DeployedOVNVersion

*string

false

containerImages

ContainerImages

ContainerImages

false

observedGeneration

ObservedGeneration - the most recent generation observed for this object.

int64

false

+ +
+
+

OpenStackExtraVolMounts

+
+

OpenStackExtraVolMounts exposes additional parameters processed by the openstack-operator and defines the common VolMounts structure provided by the main storage module

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

string

false

region

string

false

extraVol

[]storage.VolMounts

true

+ +
+
+

Override

+
+

Override to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

route

Route overrides to use when creating the public service endpoint

*route.OverrideSpec

false

tls

TLS - overrides tls parameters for public endpoint

*TLSServiceOverride

false

+ +
+
+

OvnResources

+
+

OvnResources defines the desired state of OVN services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

ovnDBCluster

OVNDBCluster - Overrides to use when creating the OVNDBCluster services

map[string]ovnv1.OVNDBClusterSpecCore

false

ovnNorthd

OVNNorthd - Overrides to use when creating the OVNNorthd service

ovnv1.OVNNorthdSpecCore

false

ovnController

OVNController - Overrides to use when creating the OVNController service

ovnv1.OVNControllerSpecCore

false

+ +
+
+

OvnSection

+
+

OvnSection defines the desired state of OVN services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether OVN services should be deployed and managed

bool

true

template

Template - Overrides to use when creating the OVN services

*OvnResources

false

+ +
+
+

PlacementSection

+
+

PlacementSection defines the desired state of Placement service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Placement service should be deployed and managed

bool

true

template

Template - Overrides to use when creating the Placement API

*placementv1.PlacementAPISpecCore

false

apiOverride

APIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

RabbitmqSection

+
+

RabbitmqSection defines the desired state of RabbitMQ service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether RabbitMQ services should be deployed and managed

bool

true

templates

Templates - Overrides to use when creating the Rabbitmq clusters

*map[string]RabbitmqTemplate

true

+ +
+
+

RabbitmqTemplate

+
+

RabbitmqTemplate definition

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

+ +
+
+

RedisSection

+
+

RedisSection defines the desired state of the Redis service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether the Redis service should be deployed and managed

bool

true

templates

Templates - Overrides to use when creating the Redis Resources

*map[string]redisv1.RedisSpecCore

false

+ +
+
+

SwiftSection

+
+

SwiftSection defines the desired state of Swift service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether Swift service should be deployed and managed

bool

true

template

Template - Overrides to use when creating Swift Resources

*swiftv1.SwiftSpecCore

false

proxyOverride

ProxyOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

TLSCAStatus

+
+

TLSCAStatus defines the observed state of TLS

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

string

true

expires

string

true

+ +
+
+

TLSIngressConfig

+
+

TLSIngressConfig defines the desired state of the TLS configuration for the ingress configuration (route)

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether TLS should be enabled for endpoint type

bool

true

+ +
+
+

TLSPodLevelConfig

+
+

TLSPodLevelConfig defines the desired state of the TLS configuration for TLS termination at the pod level

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether TLS should be enabled for endpoint type

bool

true

internal

Internal - default CA used for all OpenStackControlPlane and OpenStackDataplane endpoints, except OVN related CA and certs

CertSection

true

libvirt

Libvirt - CA used for libvirt/qemu services on OpenStackControlPlane and OpenStackDataplane

CertSection

true

ovn

Ovn - CA used for all OVN services on OpenStackControlPlane and OpenStackDataplane

CertSection

true

+ +
+
+

TLSSection

+
+

TLSSection defines the desired state of TLS configuration

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

ingress

TLSIngressConfig

false

podLevel

TLSPodLevelConfig

false

+ +
+
+

TLSServiceOverride

+
+

TLSServiceOverride overrides tls parameters for public endpoint

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

secretName

Name of a Secret in the same Namespace as the service, containing the server’s private key, public certificate and CA certificate for TLS. The Secret must store these as tls.key, tls.crt and ca.crt respectively.

string

false

+ +
+
+

TLSStatus

+
+

TLSStatus defines the observed state of TLS

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

caList

[]TLSCAStatus

false

+ +
+
+

TelemetrySection

+
+

TelemetrySection defines the desired state of OpenStack Telemetry services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether OpenStack Telemetry services should be deployed and managed

bool

true

template

Template - Overrides to use when creating the OpenStack Telemetry services

*telemetryv1.TelemetrySpecCore

false

aodhApiOverride

AodhAPIOverride, provides the ability to override the generated manifest of several child resources.

Override

false

prometheusOverride

PrometheusOverride, provides the ability to override the generated manifest of several child resources.

Override

false

alertmanagerOverride

AlertmanagerOverride, provides the ability to override the generated manifest of several child resources.

Override

false

+ +
+
+

ContainerDefaults

+
+

ContainerDefaults - struct that contains container image default URLs for each service (internal use only)

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cinderVolumeImage

*string

false

manilaShareImage

*string

false

+ +
+
+

ContainerImages

+
+

ContainerImages - struct acts as the source of truth for container image URLs to be deployed

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

octaviaApacheImage

*string

false

ceilometerProxyImage

*string

false

cinderVolumeImages

CinderVolumeImages custom Cinder Volume images for each backend (default Cinder volume image is stored default key)

map[string]*string

false

manilaShareImages

ManilaShareImages custom Manila Share images for each backend (default Manila share image is stored default key)

map[string]*string

false

+ +
+
+

ContainerTemplate

+
+

ContainerTemplate - struct that contains container image URLs for each service in OpenStackControlplane

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

agentImage

*string

false

ansibleeeImage

*string

false

aodhAPIImage

*string

false

aodhEvaluatorImage

*string

false

aodhListenerImage

*string

false

aodhNotifierImage

*string

false

apacheImage

this is shared by BaremetalOperator, OctaviaOperator, and TelemetryOperator

*string

false

barbicanAPIImage

*string

false

barbicanKeystoneListenerImage

*string

false

barbicanWorkerImage

*string

false

ceilometerCentralImage

*string

false

ceilometerComputeImage

*string

false

ceilometerIpmiImage

*string

false

ceilometerNotificationImage

*string

false

ceilometerSgcoreImage

*string

false

cinderAPIImage

*string

false

cinderBackupImage

*string

false

cinderSchedulerImage

*string

false

designateAPIImage

*string

false

designateBackendbind9Image

*string

false

designateCentralImage

*string

false

designateMdnsImage

*string

false

designateProducerImage

*string

false

designateUnboundImage

*string

false

designateWorkerImage

*string

false

edpmFrrImage

*string

false

edpmIscsidImage

*string

false

edpmLogrotateCrondImage

*string

false

edpmMultipathdImage

*string

false

edpmNeutronDhcpAgentImage

*string

false

edpmNeutronMetadataAgentImage

*string

false

edpmNeutronOvnAgentImage

*string

false

edpmNeutronSriovAgentImage

*string

false

edpmOvnBgpAgentImage

*string

false

edpmNodeExporterImage

*string

false

edpmKeplerImage

*string

false

glanceAPIImage

*string

false

heatAPIImage

*string

false

heatCfnapiImage

*string

false

heatEngineImage

*string

false

horizonImage

*string

false

infraDnsmasqImage

*string

false

infraMemcachedImage

*string

false

infraRedisImage

*string

false

ironicAPIImage

*string

false

ironicConductorImage

*string

false

ironicInspectorImage

*string

false

ironicNeutronAgentImage

*string

false

ironicPxeImage

*string

false

ironicPythonAgentImage

*string

false

keystoneAPIImage

*string

false

manilaAPIImage

*string

false

manilaSchedulerImage

*string

false

mariadbImage

*string

false

neutronAPIImage

*string

false

novaAPIImage

*string

false

novaComputeImage

*string

false

novaConductorImage

*string

false

novaNovncImage

*string

false

novaSchedulerImage

*string

false

octaviaAPIImage

*string

false

octaviaHealthmanagerImage

*string

false

octaviaHousekeepingImage

*string

false

octaviaWorkerImage

*string

false

openstackClientImage

*string

false

osContainerImage

*string

false

ovnControllerImage

*string

false

ovnControllerOvsImage

*string

false

ovnNbDbclusterImage

*string

false

ovnNorthdImage

*string

false

ovnSbDbclusterImage

*string

false

placementAPIImage

*string

false

rabbitmqImage

*string

false

swiftAccountImage

*string

false

swiftContainerImage

*string

false

swiftObjectImage

*string

false

swiftProxyImage

*string

false

telemetryNodeExporterImage

*string

false

testTempestImage

*string

false

testTobikoImage

*string

false

testHorizontestImage

*string

false

testAnsibletestImage

*string

false

+ +
+
+
+
+

CustomContainerImages

+
+
+

CustomContainerImages - struct for custom container images

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cinderVolumeImages

map[string]*string

false

manilaShareImages

map[string]*string

false

+ +
+

OpenStackVersion

+
+

OpenStackVersion is the Schema for the openstackversionupdates API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OpenStackVersionSpec

false

status

OpenStackVersionStatus

false

+ +
+
+

OpenStackVersionList

+
+

OpenStackVersionList contains a list of OpenStackVersion

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OpenStackVersion

true

+ +
+
+

OpenStackVersionSpec

+
+

OpenStackVersionSpec - defines the desired state of OpenStackVersion

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

targetVersion

TargetVersion is the version of OpenStack to install (based on the availableVersion in the OpenStackVersion CR status)

string

true

customContainerImages

CustomContainerImages is a list of containerImages to customize for deployment

CustomContainerImages

false

+ +
+
+

OpenStackVersionStatus

+
+

OpenStackVersionStatus defines the observed state of OpenStackVersion

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

deployedVersion

*string

false

availableVersion

*string

false

containerImages

This is the source of truth for the container images to be deployed.

ContainerImages

false

containerImageVersionDefaults

where we keep track of the container images for previous versions

map[string]*ContainerDefaults

false

observedGeneration

ObservedGeneration - the most recent generation observed for this object.

int64

false

+ +
+
+

Barbican

+
+

Barbican is the Schema for the barbicans API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

BarbicanSpec

false

status

BarbicanStatus

false

+ +
+
+

BarbicanList

+
+

BarbicanList contains a list of Barbican

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Barbican

true

+ +
+
+

BarbicanSpec

+
+

BarbicanSpec defines the desired state of Barbican

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

barbicanAPI

BarbicanAPI - Spec definition for the API services of this Barbican deployment

BarbicanAPITemplate

true

barbicanWorker

BarbicanWorker - Spec definition for the Worker service of this Barbican deployment

BarbicanWorkerTemplate

true

barbicanKeystoneListener

BarbicanKeystoneListener - Spec definition for the KeystoneListener service of this Barbican deployment

BarbicanKeystoneListenerTemplate

true

+ +
+
+

BarbicanSpecBase

+
+

BarbicanSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

nodeSelector

NodeSelector to target subset of worker nodes running this component. Setting here overrides any global NodeSelector settings within the Barbican CR.

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf or policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

+ +
+
+

BarbicanSpecCore

+
+

BarbicanSpecCore defines the desired state of Barbican, for use with the OpenStackControlplane CR (no containerImages)

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

barbicanAPI

BarbicanAPI - Spec definition for the API services of this Barbican deployment

BarbicanAPITemplateCore

true

barbicanWorker

BarbicanWorker - Spec definition for the Worker service of this Barbican deployment

BarbicanWorkerTemplateCore

true

barbicanKeystoneListener

BarbicanKeystoneListener - Spec definition for the KeystoneListener service of this Barbican deployment

BarbicanKeystoneListenerTemplateCore

true

+ +
+
+

BarbicanStatus

+
+

BarbicanStatus defines the observed state of Barbican

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

serviceID

ServiceID

string

false

conditions

Conditions

condition.Conditions

false

barbicanAPIReadyCount

ReadyCount of Barbican API instances

int32

false

barbicanWorkerReadyCount

ReadyCount of Barbican Worker instances

int32

false

barbicanKeystoneListenerReadyCount

ReadyCount of Barbican KeystoneListener instances

int32

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

databaseHostname

Barbican Database Hostname

string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

BarbicanAPI

+
+

BarbicanAPI is the Schema for the barbicanapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

BarbicanAPISpec

false

status

BarbicanAPIStatus

false

+ +
+
+

BarbicanAPIList

+
+

BarbicanAPIList contains a list of BarbicanAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]BarbicanAPI

true

+ +
+
+

BarbicanAPISpec

+
+

BarbicanAPISpec defines the desired state of BarbicanAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - Barbican Database Hostname

string

true

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

+ +
+
+

BarbicanAPIStatus

+
+

BarbicanAPIStatus defines the observed state of BarbicanAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of barbican API instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

apiEndpoint

API endpoint

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

databaseHostname

Barbican Database Hostname

string

false

+ +
+
+

BarbicanAPITemplate

+
+

BarbicanAPITemplate defines the input parameters for the Barbican API service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Barbican Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

BarbicanAPITemplateCore

+
+

BarbicanAPITemplateCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enableSecureRBAC

EnableSecureRBAC - Enable Consistent and Secure RBAC policies

bool

true

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

BarbicanKeystoneListener

+
+

BarbicanKeystoneListener is the Schema for the barbicankeystonelistener API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

BarbicanKeystoneListenerSpec

false

status

BarbicanKeystoneListenerStatus

false

+ +
+
+

BarbicanKeystoneListenerList

+
+

BarbicanKeystoneListenerList contains a list of BarbicanKeystoneListener

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]BarbicanKeystoneListener

true

+ +
+
+

BarbicanKeystoneListenerSpec

+
+

BarbicanKeystoneListenerSpec defines the desired state of BarbicanKeystoneListener

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

string

true

transportURLSecret

string

false

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

BarbicanKeystoneListenerStatus

+
+

BarbicanKeystoneListenerStatus defines the observed state of BarbicanKeystoneListener

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run "make" to regenerate code after modifying this file ReadyCount of barbican API instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

databaseHostname

Barbican Database Hostname

string

false

+ +
+
+

BarbicanKeystoneListenerTemplate

+
+

BarbicanKeystoneListenerTemplate defines common Spec elements for the KeystoneListener process

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Barbican Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

BarbicanWorker

+
+

BarbicanWorker is the Schema for the barbicanworkers API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

BarbicanWorkerSpec

false

status

BarbicanWorkerStatus

false

+ +
+
+

BarbicanWorkerList

+
+

BarbicanWorkerList contains a list of BarbicanWorker

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]BarbicanWorker

true

+ +
+
+

BarbicanWorkerSpec

+
+

BarbicanWorkerSpec defines the desired state of BarbicanWorker

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

string

true

transportURLSecret

string

false

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

BarbicanWorkerStatus

+
+

BarbicanWorkerStatus defines the observed state of BarbicanWorker

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run "make" to regenerate code after modifying this file ReadyCount of barbican API instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

databaseHostname

Barbican Database Hostname

string

false

+ +
+
+

BarbicanWorkerTemplate

+
+

BarbicanWorkerTemplate defines common Spec elements for the Worker process

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Barbican Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

BarbicanComponentTemplate

+
+

BarbicanComponentTemplate - Variables used by every sub-component of Barbican (e.g. API, Worker, Listener)

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

nodeSelector

NodeSelector to target subset of worker nodes running this component. Setting here overrides any global NodeSelector settings within the Barbican CR.

*map[string]string

false

replicas

Replicas of Barbican API to run

*int32

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as a custom config file.

string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

customServiceConfigSecrets

CustomServiceConfigSecrets - customize the service config using this parameter to specify Secrets that contain sensitive service config data. The content of each Secret gets added to the /etc//.conf.d directory as a custom config file.

[]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

+ +
+
+

BarbicanPKCS11Template

+
+

BarbicanPKCS11Template - Includes all common HSM properties

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

type

A string containing the HSM type (currently supported: "luna").

string

true

libraryPath

Path to vendor’s PKCS11 library

string

true

tokenSerialNumber

Token serial number used to identify the token to be used. One of TokenSerialNumber, TokenLabels or SlotId must be defined. TokenSerialNumber takes priority over TokenLabels and SlotId

string

false

tokenLabels

Token labels used to identify the token to be used. One of TokenSerialNumber, TokenLabels or SlotId must be specified. TokenLabels takes priority over SlotId. This can be a comma separated string of labels

string

false

slotId

One of TokenSerialNumber, TokenLabels or SlotId must be defined. SlotId is used if none of the others is defined

string

false

MKEKLabel

Label to identify master KEK in the HSM (must not be the same as HMAC label)

string

true

MKEKLength

Length in bytes of master KEK

int

true

HMACLabel

Label to identify HMAC key in the HSM (must not be the same as MKEK label)

string

true

HMACKeyType

HMAC Key Type

string

true

HMACKeygenMechanism

HMAC Keygen Mechanism

string

true

HMACMechanism

HMAC Mechanism. This replaces hsm_keywrap_mechanism

string

true

loggingLevel

Level of logging, where 0 means "no logging" and 7 means "debug".

int

true

serverAddress

The HSM’s IPv4 address (X.Y.Z.K)

string

true

clientAddress

The IP address of the client connecting to the HSM (X.Y.Z.K)

string

false

loginSecret

OpenShift secret that stores the password to login to the PKCS11 session

string

true

certificatesSecret

The OpenShift secret that stores the HSM certificates.

string

false

certificatesMountPoint

The mounting point where the certificates will be copied to (e.g., /usr/local/luna/config/certs).

string

false

encryptionMechanism

Secret encryption mechanism

string

true

keyWrapMechanism

Key wrap mechanism

string

true

keyWrapGenerateIV

Generate IVs for the key wrap mechanism

bool

true

AESGCMGenerateIV

Generate IVs for CKM_AES_GCM mechanism

bool

true

alwaysSetCKASensitive

Always set cka_sensitive

bool

true

OSLockingOK

Set os_locking_ok

bool

true

+ +
+
+

BarbicanTemplate

+
+

BarbicanTemplate defines common Spec elements for all Barbican components including the top level CR

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

databaseAccount

DatabaseAccount - optional MariaDBAccount CR name used for barbican DB, defaults to barbican

string

true

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Barbican

string

true

simpleCryptoBackendSecret

Secret containing the Key Encryption Key (KEK) used for the Simple Crypto backend

string

true

secret

Secret containing all passwords / keys needed

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the ServiceUser password from the Secret

PasswordSelector

true

serviceAccount

ServiceAccount - service account name used internally to provide Barbican services the default SA name

string

true

pkcs11

*BarbicanPKCS11Template

false

enabledSecretStores

[]SecretStore

false

globalDefaultSecretStore

SecretStore

true

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the DB and AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the barbican service user password from the Secret

string

true

simplecryptokek

string

true

+ +
+
+

Cinder

+
+

Cinder is the Schema for the cinders API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

CinderSpec

false

status

CinderStatus

false

+ +
+
+

CinderExtraVolMounts

+
+

CinderExtraVolMounts exposes additional parameters processed by the cinder-operator and defines the common VolMounts structure provided by the main storage module

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

string

false

region

string

false

extraVol

[]storage.VolMounts

true

+ +
+
+

CinderList

+
+

CinderList contains a list of Cinder

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Cinder

true

+ +
+
+

CinderSpec

+
+

CinderSpec defines the desired state of Cinder

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cinderAPI

CinderAPI - Spec definition for the API service of this Cinder deployment

CinderAPITemplate

true

cinderScheduler

CinderScheduler - Spec definition for the Scheduler service of this Cinder deployment

CinderSchedulerTemplate

true

cinderBackup

CinderBackup - Spec definition for the Backup service of this Cinder deployment

CinderBackupTemplate

true

cinderVolumes

CinderVolumes - Map of chosen names to spec definitions for the Volume(s) service(s) of this Cinder deployment

map[string]CinderVolumeTemplate

false

+ +
+
+

CinderSpecBase

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Cinder

string

true

memcachedInstance

Memcached instance name.

string

true

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

customServiceConfig

CustomServiceConfig - customize the service config for all Cinder services using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as a custom config file.

string

false

extraMounts

ExtraMounts containing conf files and credentials

[]CinderExtraVolMounts

false

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting NodeSelector here acts as a default value and can be overridden by service specific NodeSelector Settings.

*map[string]string

false

dbPurge

DBPurge parameters -

DBPurge

false

apiTimeout

APITimeout for HAProxy, Apache, and rpc_response_timeout

int

true

+ +
+
+

CinderSpecCore

+
+

CinderSpecCore the same as CinderSpec without ContainerImage references

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cinderAPI

CinderAPI - Spec definition for the API service of this Cinder deployment

CinderAPITemplateCore

true

cinderScheduler

CinderScheduler - Spec definition for the Scheduler service of this Cinder deployment

CinderSchedulerTemplateCore

true

cinderBackup

CinderBackup - Spec definition for the Backup service of this Cinder deployment

CinderBackupTemplateCore

true

cinderVolumes

CinderVolumes - Map of chosen names to spec definitions for the Volume(s) service(s) of this Cinder deployment

map[string]CinderVolumeTemplateCore

false

+ +
+
+

CinderStatus

+
+

CinderStatus defines the observed state of Cinder

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

databaseHostname

Cinder Database Hostname

string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

apiEndpoints

API endpoints

map[string]map[string]string

false

serviceIDs

ServiceIDs

map[string]string

false

cinderAPIReadyCount

ReadyCount of Cinder API instance

int32

true

cinderBackupReadyCount

ReadyCount of Cinder Backup instance

int32

true

cinderSchedulerReadyCount

ReadyCount of Cinder Scheduler instance

int32

true

cinderVolumesReadyCounts

ReadyCounts of Cinder Volume instances

map[string]int32

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is different than the spec generation, then the controller has not started processing the latest changes, and the status and its conditions are likely stale.

int64

false

+ +
+
+

DBPurge

+
+

DBPurge struct is used to model the parameters exposed to the Cinder cronJob

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

age

Age is the DBPurgeAge parameter and indicates the number of days of purging DB records

int

true

schedule

Schedule defines the crontab format string to schedule the DBPurge cronJob

string

true

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

CinderAPI

+
+

CinderAPI is the Schema for the cinderapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

CinderAPISpec

false

status

CinderAPIStatus

false

+ +
+
+

CinderAPIList

+
+

CinderAPIList contains a list of CinderAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]CinderAPI

true

+ +
+
+

CinderAPISpec

+
+

CinderAPISpec defines the desired state of CinderAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - Cinder Database Hostname

string

true

transportURLSecret

Secret containing RabbitMq transport URL

string

true

extraMounts

ExtraMounts containing conf files and credentials

[]CinderExtraVolMounts

false

serviceAccount

ServiceAccount - service account name used internally to provide Cinder services the default SA name

string

true

+ +
+
+

CinderAPIStatus

+
+

CinderAPIStatus defines the observed state of CinderAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

apiEndpoints

API endpoints

map[string]map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of Cinder API instances

int32

true

serviceIDs

ServiceIDs

map[string]string

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is different than the spec generation, then the controller has not started processing the latest changes, and the status and its conditions are likely stale.

int64

false

+ +
+
+

CinderAPITemplate

+
+

CinderAPITemplate defines the input parameters for the Cinder API service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Cinder Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

CinderAPITemplateCore

+
+

CinderAPITemplate defines the input parameters for the Cinder API service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Cinder API Replicas

*int32

true

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

CinderBackup

+
+

CinderBackup is the Schema for the cinderbackups API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

CinderBackupSpec

false

status

CinderBackupStatus

false

+ +
+
+

CinderBackupList

+
+

CinderBackupList contains a list of CinderBackup

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]CinderBackup

true

+ +
+
+

CinderBackupSpec

+
+

CinderBackupSpec defines the desired state of CinderBackup

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - Cinder Database Hostname

string

true

transportURLSecret

Secret containing RabbitMq transport URL

string

true

extraMounts

ExtraMounts containing conf files and credentials

[]CinderExtraVolMounts

false

serviceAccount

ServiceAccount - service account name used internally to provide Cinder services the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

CinderBackupStatus

+
+

CinderBackupStatus defines the observed state of CinderBackup

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of Cinder Backup instances

int32

true

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is different than the spec generation, then the controller has not started processing the latest changes, and the status and its conditions are likely stale.

int64

false

+ +
+
+

CinderBackupTemplate

+
+

CinderBackupTemplate defines the input parameters for the Cinder Backup service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Cinder Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

CinderBackupTemplateCore

+
+

CinderBackupTemplate defines the input parameters for the Cinder Backup service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Cinder Backup Replicas

*int32

true

+ +
+
+

CinderScheduler

+
+

CinderScheduler is the Schema for the cinderschedulers API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

CinderSchedulerSpec

false

status

CinderSchedulerStatus

false

+ +
+
+

CinderSchedulerList

+
+

CinderSchedulerList contains a list of CinderScheduler

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]CinderScheduler

true

+ +
+
+

CinderSchedulerSpec

+
+

CinderSchedulerSpec defines the desired state of CinderScheduler

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - Cinder Database Hostname

string

true

transportURLSecret

Secret containing RabbitMq transport URL

string

true

extraMounts

ExtraMounts containing conf files and credentials

[]CinderExtraVolMounts

false

serviceAccount

ServiceAccount - service account name used internally to provide Cinder services the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

CinderSchedulerStatus

+
+

CinderSchedulerStatus defines the observed state of CinderScheduler

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of Cinder Scheduler instances

int32

true

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is different than the spec generation, then the controller has not started processing the latest changes, and the status and its conditions are likely stale.

int64

false

+ +
+
+

CinderSchedulerTemplate

+
+

CinderSchedulerTemplate defines the input parameters for the Cinder Scheduler service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Cinder Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

CinderSchedulerTemplateCore

+
+

CinderSchedulerTemplate defines the input parameters for the Cinder Scheduler service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Cinder Scheduler Replicas

*int32

true

+ +
+
+

CinderVolume

+
+

CinderVolume is the Schema for the cindervolumes API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

CinderVolumeSpec

false

status

CinderVolumeStatus

false

+ +
+
+

CinderVolumeList

+
+

CinderVolumeList contains a list of CinderVolume

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]CinderVolume

true

+ +
+
+

CinderVolumeSpec

+
+

CinderVolumeSpec defines the desired state of CinderVolume

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - Cinder Database Hostname

string

true

transportURLSecret

Secret containing RabbitMq transport URL

string

true

extraMounts

ExtraMounts containing conf files and credentials

[]CinderExtraVolMounts

false

serviceAccount

ServiceAccount - service account name used internally to provide Cinder services the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

CinderVolumeStatus

+
+

CinderVolumeStatus defines the observed state of CinderVolume

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of Cinder Volume instances

int32

true

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is different than the spec generation, then the controller has not started processing the latest changes, and the status and its conditions are likely stale.

int64

false

+ +
+
+

CinderVolumeTemplate

+
+

CinderVolumeTemplate defines the input parameters for the Cinder Volume service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Cinder Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

CinderVolumeTemplateCore

+
+

CinderVolumeTemplate defines the input parameters for the Cinder Volume service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Cinder Volume Replicas

*int32

true

+ +
+
+

CinderServiceTemplate

+
+

CinderServiceTemplate defines the input parameters that can be defined for a given Cinder service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting here overrides any global NodeSelector settings within the Cinder CR.

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as a custom config file.

string

false

customServiceConfigSecrets

CustomServiceConfigSecrets - customize the service config using this parameter to specify Secrets that contain sensitive service config data. The content of each Secret gets added to the /etc//.conf.d directory as a custom config file.

[]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

+ +
+
+

CinderTemplate

+
+

CinderTemplate defines common input parameters used by all Cinder services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceUser

ServiceUser - optional username used for this service to register in cinder

string

true

databaseAccount

DatabaseAccount - optional MariaDBAccount used for cinder DB, defaults to cinder

string

true

secret

Secret containing OpenStack password information

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the ServiceUser password from the Secret

PasswordSelector

true

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the DB and AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the cinder service password from the Secret

string

true

+ +
+
+

DesignateServiceTemplate

+
+

DesignateServiceTemplate defines the input parameters that can be defined for a given Designate service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Designate Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

DesignateServiceTemplateCore

+
+

DesignateServiceTemplate defines the input parameters that can be defined for a given Designate service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting here overrides any global NodeSelector settings within the Designate CR.

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as a custom config file.

string

false

customServiceConfigSecrets

CustomServiceConfigSecrets - customize the service config using this parameter to specify Secrets that contain sensitive service config data. The content of each Secret gets added to the /etc//.conf.d directory as a custom config file.

[]string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

+ +
+
+

DesignateTemplate

+
+

DesignateTemplate defines common input parameters used by all Designate services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceUser

ServiceUser - optional username used for this service to register in designate

string

true

databaseAccount

DatabaseAccount - name of MariaDBAccount which will be used to connect.

string

true

secret

Secret containing OpenStack password information for DesignatePassword

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the DB and ServiceUser password from the Secret

PasswordSelector

true

backendType

BackendType - Defines the backend service/configuration we are using, i.e. bind9, PowerDNS, BYO, etc.. Helps maintain a single init container/init.sh to do container setup

string

true

backendWorkerServerProtocol

BackendTypeProtocol - Defines the backend protocol to be used between the designate-worker & designate_mdns to/from the DNS server. Acceptable values are: "UDP", "TCP" Please Note: this MUST match what is in the /etc/designate.conf [service:worker]

string

true

backendMdnsServerProtocol

BackendTypeProtocol - Defines the backend protocol to be used between the designate-worker & designate_mdns to/from the DNS server. Acceptable values are: "UDP", "TCP" Please Note: this MUST match what is in the /etc/designate.conf [service:mdns]

string

true

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the DB and AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the designate service password from the Secret

string

true

+ +
+
+

Designate

+
+

Designate is the Schema for the designates API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

DesignateSpec

false

status

DesignateStatus

false

+ +
+
+

DesignateExtraVolMounts

+
+

DesignateExtraVolMounts exposes additional parameters processed by the designate-operator and defines the common VolMounts structure provided by the main storage module

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

string

false

region

string

false

extraVol

[]storage.VolMounts

true

+ +
+
+

DesignateList

+
+

DesignateList contains a list of Designate

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Designate

true

+ +
+
+

DesignateSpec

+
+

DesignateAPISpec defines the desired state of DesignateAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

designateAPI

DesignateAPI - Spec definition for the API service of this Designate deployment

DesignateAPISpec

true

designateCentral

DesignateCentral - Spec definition for the Central service of this Designate deployment

DesignateCentralSpec

true

designateWorker

DesignateWorker - Spec definition for the Worker service of this Designate deployment

DesignateWorkerSpec

true

designateMdns

DesignateMdns - Spec definition for the Mdns service of this Designate deployment

DesignateMdnsSpec

true

designateProducer

DesignateProducer - Spec definition for the Producer service of this Designate deployment

DesignateProducerSpec

true

designateBackendbind9

DesignateBackendbind9 - Spec definition for the Backendbind9 service of this Designate deployment

DesignateBackendbind9Spec

true

designateUnbound

DesignateUnbound - Spec definition for the Unbound Resolver service of this Designate deployment

DesignateUnboundSpec

true

+ +
+
+

DesignateSpecBase

+
+

DesignateSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceUser

ServiceUser - optional username used for this service to register in designate

string

true

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

databaseAccount

DatabaseAccount - name of MariaDBAccount which will be used to connect.

string

true

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Designate

string

true

secret

Secret containing OpenStack password information for designate AdminPassword

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the DB and AdminUser password from the Secret

PasswordSelector

true

backendType

BackendType - Defines the backend service/configuration we are using, i.e. bind9, unhbound, PowerDNS, BYO, etc.. Helps maintain a single init container/init.sh to do container setup

string

true

backendWorkerServerProtocol

BackendTypeProtocol - Defines the backend protocol to be used between the designate-worker & designate_mdns to/from the DNS server. Acceptable values are: "UDP", "TCP" Please Note: this MUST match what is in the /etc/designate.conf [service:worker]

string

true

backendMdnsServerProtocol

BackendTypeProtocol - Defines the backend protocol to be used between the designate-worker & designate_mdns to/from the DNS server. Acceptable values are: "UDP", "TCP" Please Note: this MUST match what is in the /etc/designate.conf [service:mdns]

string

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf or policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

designateNetworkAttachment

DesignateNetworkAttachment is a NetworkAttachment resource name for the Designate Control Network

string

true

redisServiceName

RedisServiceName is the name of the Redis instance to be used (must be in the same namespace as designate)

string

true

+ +
+
+

DesignateSpecCore

+
+

DesignateAPISpecCore - this version has no containerImage for use with the OpenStackControlplane

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

designateAPI

DesignateAPI - Spec definition for the API service of this Designate deployment

DesignateAPISpecCore

true

designateCentral

DesignateCentral - Spec definition for the Central service of this Designate deployment

DesignateCentralSpecCore

true

designateWorker

DesignateWorker - Spec definition for the Worker service of this Designate deployment

DesignateWorkerSpecCore

true

designateMdns

DesignateMdns - Spec definition for the Mdns service of this Designate deployment

DesignateMdnsSpecCore

true

designateProducer

DesignateProducer - Spec definition for the Producer service of this Designate deployment

DesignateProducerSpecCore

true

designateBackendbind9

DesignateBackendbind9 - Spec definition for the Backendbind9 service of this Designate deployment

DesignateBackendbind9SpecCore

true

designateUnbound

DesignateUnbound - Spec definition for the Unbound Resolver service of this Designate deployment

DesignateUnboundSpecCore

true

+ +
+
+

DesignateStatus

+
+

DesignateStatus defines the observed state of Designate

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

apiEndpoint

API endpoint

map[string]string

false

conditions

Conditions

condition.Conditions

false

databaseHostname

DatabaseHostname - Designate Database Hostname

string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

designateAPIReadyCount

ReadyCount of Designate API instance

int32

false

designateCentralReadyCount

ReadyCount of Designate Central instance

int32

false

designateWorkerReadyCount

ReadyCount of Designate Worker instance

int32

false

designateMdnsReadyCount

ReadyCount of Designate Mdns instance

int32

false

designateProducerReadyCount

ReadyCount of Designate Producer instance

int32

false

designateBackendbind9ReadyCount

ReadyCount of Designate Backendbind9 instance

int32

false

designateUnboundReadyCount

ReadyCount of Designate Unbound instance

int32

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

redisHostIPs

List of Redis Host IP addresses

[]string

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

DesignateAPI

+
+

DesignateAPI is the Schema for the designateapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

DesignateAPISpec

false

status

DesignateAPIStatus

false

+ +
+
+

DesignateAPIList

+
+

DesignateAPIList contains a list of DesignateAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]DesignateAPI

true

+ +
+
+

DesignateAPISpecBase

+
+

DesignateAPISpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Designate API Replicas

*int32

true

databaseHostname

DatabaseHostname - Designate Database Hostname

string

false

transportURLSecret

Secret containing RabbitMq transport URL

string

false

serviceAccount

ServiceAccount - service account name used internally to provide Designate services the default SA name

string

true

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

DesignateAPIStatus

+
+

DesignateAPIStatus defines the observed state of DesignateAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

apiEndpoints

API endpoints

map[string]map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of designate API instances

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

DesignateBackendbind9

+
+

DesignateBackendbind9 is the Schema for the designatebackendbind9

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

DesignateBackendbind9Spec

false

status

DesignateBackendbind9Status

false

+ +
+
+

DesignateBackendbind9List

+
+

DesignateBackendbind9List contains a list of DesignateBackendbind9

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]DesignateBackendbind9

true

+ +
+
+

DesignateBackendbind9SpecBase

+
+

DesignateBackendbind9SpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Designate Backendbind9 Replicas

*int32

true

databaseHostname

DatabaseHostname - Designate Database Hostname

string

false

transportURLSecret

Secret containing RabbitMq transport URL

string

false

serviceAccount

ServiceAccount - service account name used internally to provide Designate services the default SA name

string

true

customBindOptions

CustomBindOptions - custom bind9 options

[]string

false

controlNetworkName

ControlNetworkName - specify which network attachment is to be used for control, notifys and zone transfers.

string

true

storageClass

StorageClass

string

false

storageRequest

StorageRequest

string

true

+ +
+
+

DesignateBackendbind9Status

+
+

DesignateBackendbind9Status defines the observed state of DesignateBackendbind9

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of designate backendbind9 instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

DesignateCentral

+
+

DesignateCentral is the Schema for the designatecentral API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

DesignateCentralSpec

false

status

DesignateCentralStatus

false

+ +
+
+

DesignateCentralList

+
+

DesignateCentralList contains a list of DesignateCentral

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]DesignateCentral

true

+ +
+
+

DesignateCentralSpecBase

+
+

DesignateCentralSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Designate Central Replicas

*int32

true

databaseHostname

DatabaseHostname - Designate Database Hostname

string

false

transportURLSecret

Secret containing RabbitMq transport URL

string

false

serviceAccount

ServiceAccount - service account name used internally to provide Designate services the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

redisHostIPs

List of Redis Host IP addresses

[]string

false

+ +
+
+

DesignateCentralStatus

+
+

DesignateCentralStatus defines the observed state of DesignateCentral

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of designate central instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

DesignateMdns

+
+

DesignateMdns is the Schema for the designatemdnses API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

DesignateMdnsSpec

false

status

DesignateMdnsStatus

false

+ +
+
+

DesignateMdnsList

+
+

DesignateMdnsList contains a list of DesignateMdns

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]DesignateMdns

true

+ +
+
+

DesignateMdnsSpecBase

+
+

DesignateMdnsSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Designate Mdns Replicas

*int32

true

databaseHostname

DatabaseHostname - Designate Database Hostname

string

false

transportURLSecret

Secret containing RabbitMq transport URL

string

false

serviceAccount

ServiceAccount - service account name used internally to provide Designate services the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

controlNetworkName

ControlNetworkName - specify which network attachment is to be used for control, notifys and zone transfers.

string

true

+ +
+
+

DesignateMdnsStatus

+
+

DesignateMdnsStatus defines the observed state of DesignateMdns

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of designate MDNS instances

int32

false

desiredNumberScheduled

DesiredNumberScheduled - total number of the nodes which should be running Daemon

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

DesignateProducer

+
+

DesignateProducer is the Schema for the designateproducer API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

DesignateProducerSpec

false

status

DesignateProducerStatus

false

+ +
+
+

DesignateProducerList

+
+

DesignateProducerList contains a list of DesignateProducer

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]DesignateProducer

true

+ +
+
+

DesignateProducerSpecBase

+
+

DesignateProducerSpec defines the desired state of DesignateProducer

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Designate Producer Replicas

*int32

true

databaseHostname

DatabaseHostname - Designate Database Hostname

string

false

transportURLSecret

Secret containing RabbitMq transport URL

string

false

serviceAccount

ServiceAccount - service account name used internally to provide Designate services the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

redisHostIPs

List of Redis Host IP addresses

[]string

false

+ +
+
+

DesignateProducerStatus

+
+

DesignateProducerStatus defines the observed state of DesignateProducer

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of designate Producer instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

DesignateUnbound

+
+

DesignateUnbound is the Schema for the designateworker API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

DesignateUnboundSpec

false

status

DesignateUnboundStatus

false

+ +
+
+

DesignateUnboundList

+
+

DesignateUnboundList contains a list of DesignateUnbound

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]DesignateUnbound

true

+ +
+
+

DesignateUnboundSpecBase

+
+

DesignateUnboundSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceAccount

ServiceAccount - service account name used internally to provide Designate services the default SA name

string

true

replicas

Replicas - Designate Unbound Replicas

*int32

true

+ +
+
+

DesignateUnboundStatus

+
+

DesignateUnboundStatus defines the observed state of DesignateUnbound

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of designate central instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

DesignateWorker

+
+

DesignateWorker is the Schema for the designateworker API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

DesignateWorkerSpec

false

status

DesignateWorkerStatus

false

+ +
+
+

DesignateWorkerList

+
+

DesignateWorkerList contains a list of DesignateWorker

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]DesignateWorker

true

+ +
+
+

DesignateWorkerSpecBase

+
+

DesignateWorkerSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Designate Worker Replicas

*int32

true

databaseHostname

DatabaseHostname - Designate Database Hostname

string

false

transportURLSecret

Secret containing RabbitMq transport URL

string

false

serviceAccount

ServiceAccount - service account name used internally to provide Designate services the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

DesignateWorkerStatus

+
+

DesignateWorkerStatus defines the observed state of DesignateWorker

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of designate central instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

GlanceAPITemplate

+
+

GlanceAPITemplate defines the desired state of GlanceAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas of glance API to run

*int32

true

containerImage

Glance Container Image URL (will be set to environmental default if empty)

string

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

customServiceConfigSecrets

CustomServiceConfigSecrets - customize the service config using this parameter to specify Secrets that contain sensitive service config data. The content of each Secret gets added to the /etc//.conf.d directory as a custom config file.

[]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

storage

Storage -

Storage

false

type

Type - represents the layout of the glanceAPI deployment.

string

false

tls

TLS - Parameters related to the TLS

tls.API

false

imageCache

ImageCache - It represents the struct to expose the ImageCache related parameters (size of the PVC and cronJob schedule)

ImageCache

false

apiTimeout

APITimeout for HAProxy and Apache defaults to GlanceSpecCore APITimeout

int

false

+ +
+
+

ImageCache

+
+

ImageCache - struct where the exposed imageCache params are defined

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

size

Size - Local storage request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)

string

true

cleanerScheduler

Schedule defines the crontab format string to schedule the Cleaner cronJob

string

true

prunerScheduler

Schedule defines the crontab format string to schedule the Pruner cronJob

string

true

+ +
+
+

Storage

+
+

Storage -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

storageClass

StorageClass -

string

false

storageRequest

StorageRequest -

string

false

external

External -

bool

false

+ +
+
+

DBPurge

+
+

DBPurge struct is used to model the parameters exposed to the Glance API CronJob

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

age

Age is the DBPurgeAge parameter and indicates the number of days of purging DB records

int

true

schedule

Schedule defines the crontab format string to schedule the DBPurge cronJob

string

true

+ +
+
+

Glance

+
+

Glance is the Schema for the glances API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

GlanceSpec

false

status

GlanceStatus

false

+ +
+
+

GlanceExtraVolMounts

+
+

GlanceExtraVolMounts exposes additional parameters processed by the glance-operator and defines the common VolMounts structure provided by the main storage module

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

string

false

region

string

false

extraVol

[]storage.VolMounts

true

+ +
+
+

GlanceList

+
+

GlanceList contains a list of Glance

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Glance

true

+ +
+
+

GlanceSpec

+
+

GlanceSpec defines the desired state of Glance

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

Glance Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

GlanceSpecCore

+
+

GlanceSpecCore defines the desired state of Glance

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceUser

ServiceUser - optional username used for this service to register in glance

string

true

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

databaseAccount

DatabaseAccount - name of MariaDBAccount which will be used to connect.

string

true

memcachedInstance

Memcached instance name.

string

true

secret

Secret containing OpenStack password information for glance’s keystone password; no longer used for database password

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the DB and ServiceUser password from the Secret

PasswordSelector

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

customServiceConfigSecrets

CustomServiceConfigSecrets - customize the service config using this parameter to specify Secrets that contain sensitive service config data. The content of each Secret gets added to the /etc//.conf.d directory as a custom config file.

[]string

false

storage

Storage -

Storage

false

glanceAPIs

GlanceAPIs - Spec definition for the API service of this Glance deployment

map[string]GlanceAPITemplate

true

extraMounts

ExtraMounts containing conf files and credentials

[]GlanceExtraVolMounts

false

quotas

Quotas is defined, per-tenant quotas are enforced according to the registered keystone limits

QuotaLimits

false

imageCache

ImageCache -

ImageCache

true

keystoneEndpoint

KeystoneEndpoint - indicates which glanceAPI should be registered in the keystone catalog, and it acts as a selector for the underlying glanceAPI(s) that can be specified by name

string

true

dbPurge

DBPurge parameters -

DBPurge

false

apiTimeout

Default APITimeout for HAProxy and Apache, defaults to 60 seconds

int

true

+ +
+
+

GlanceStatus

+
+

GlanceStatus defines the observed state of Glance

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

apiEndpoint

API endpoint

map[string]string

false

serviceID

ServiceID

string

false

conditions

Conditions

condition.Conditions

false

databaseHostname

Glance Database Hostname

string

false

glanceAPIReadyCounts

GlanceAPIReadyCounts -

map[string]int32

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the DB and AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the glance service password from the Secret

string

true

+ +
+
+

QuotaLimits

+
+

QuotaLimits - The parameters exposed to the top level glance CR that represents the limits we set in keystone

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

imageSizeTotal

int

true

imageStageTotal

int

true

imageCountTotal

int

true

imageCountUpload

int

true

+ +
+
+

GlanceAPI

+
+

GlanceAPI is the Schema for the glanceapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

GlanceAPISpec

false

status

GlanceAPIStatus

false

+ +
+
+

GlanceAPIList

+
+

GlanceAPIList contains a list of GlanceAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]GlanceAPI

true

+ +
+
+

GlanceAPISpec

+
+

GlanceAPISpec defines the desired state of GlanceAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

apiType

string

true

serviceUser

ServiceUser - optional username used for this service to register in glance

string

true

serviceAccount

ServiceAccount - service account name used internally to provide GlanceAPI the default SA name

string

true

databaseHostname

DatabaseHostname - Glance Database Hostname

string

true

databaseAccount

DatabaseAccount - name of MariaDBAccount which will be used to connect.

string

true

secret

Secret containing OpenStack password information for glance AdminPassword

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the DB and ServiceUser password from the Secret

PasswordSelector

true

extraMounts

ExtraMounts containing conf files and credentials

[]GlanceExtraVolMounts

false

quota

QuotaEnforce if true, per-tenant quotas are enforced according to the registered keystone limits

bool

true

memcachedInstance

Memcached instance name.

string

true

+ +
+
+

GlanceAPIStatus

+
+

GlanceAPIStatus defines the observed state of GlanceAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of glance API instances

int32

true

hash

Map of hashes to track e.g. job status

map[string]string

false

apiEndpoint

API endpoint

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

domain

Domain is a parameter used by each glanceAPI replicas to setup a worker and set the worker_self_reference_url config option. It’s requierd when distributed image import is enabled and it enables pod to pod communication via the associated hostnames

string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

HeatServiceTemplate

+
+

HeatServiceTemplate -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas -

*int32

true

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

nodeSelector

NodeSelector to target subset of worker nodes for running the service

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc/heat/heat.conf.d directory as 02-custom-service.conf file.

string

false

customServiceConfigSecrets

CustomServiceConfigSecrets - customize the service config using this parameter to specify Secrets that contain sensitive service config data. The content of each Secret gets added to the /etc/heat/heat.conf.d directory as a custom config file.

[]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

+ +
+
+

HeatTemplate

+
+

HeatTemplate -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceUser

ServiceUser - optional username used for this service to register in heat

string

true

databaseAccount

DatabaseAccount - optional MariaDBAccount used for heat DB, defaults to heat.

string

true

secret

Secret containing OpenStack password information for heat HeatDatabasePassword, HeatPassword and HeatAuthEncryptionKey

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the DB and ServiceUser password from the Secret

PasswordSelector

true

+ +
+
+

PasswordSelector

+
+

PasswordSelector ..

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the heat service password from the Secret

string

true

authEncryptionKey

AuthEncryptionKey - Selector to get the heat auth encryption key from the Secret

string

true

stackDomainAdminPassword

StackDomainAdminPassword - Selector to get the heat stack domain admin password from the Secret

string

true

+ +
+
+

Heat

+
+

Heat is the Schema for the heats API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

HeatSpec

false

status

HeatStatus

false

+ +
+
+

HeatList

+
+

HeatList contains a list of Heat

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Heat

true

+ +
+
+

HeatSpec

+
+

HeatSpec defines the desired state of Heat

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

heatAPI

HeatAPI - Spec definition for the API service of this Heat deployment

HeatAPITemplate

true

heatCfnAPI

HeatCfnAPI - Spec definition for the CfnAPI service of this Heat deployment

HeatCfnAPITemplate

true

heatEngine

HeatEngine - Spec definition for the Engine service of this Heat deployment

HeatEngineTemplate

true

+ +
+
+

HeatSpecBase

+
+

HeatSpec defines the desired state of Heat

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseInstance

MariaDB instance name. Right now required by the maridb-operator to get the credentials from the instance to create the DB. Might not be required in future.

string

true

memcachedInstance

Memcached instance name.

string

true

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Heat

string

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc/heat/heat.conf.d directory as 01-custom.conf file.

string

false

customServiceConfigSecrets

CustomServiceConfigSecrets - customize the service config using this parameter to specify Secrets that contain sensitive service config data. The content of each Secret gets added to the /etc/heat/heat.conf.d directory as a custom config file.

[]string

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

nodeSelector

NodeSelector to target subset of worker nodes for running the Heat services

*map[string]string

false

apiTimeout

APITimeout for Route and Apache

int

true

+ +
+
+

HeatSpecCore

+
+

HeatSpecCore defines the desired state of Heat, for use with OpenStackControlplane (no containerImages)

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

heatAPI

HeatAPI - Spec definition for the API service of this Heat deployment

HeatAPITemplateCore

true

heatCfnAPI

HeatCfnAPI - Spec definition for the CfnAPI service of this Heat deployment

HeatCfnAPITemplateCore

true

heatEngine

HeatEngine - Spec definition for the Engine service of this Heat deployment

HeatEngineTemplateCore

true

+ +
+
+

HeatStatus

+
+

HeatStatus defines the observed state of Heat

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

hash

Map of hashes to track e.g. job status

map[string]string

false

databaseHostname

Heat Database Hostname

string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

heatApiReadyCount

ReadyCount of Heat API instance

int32

false

heatCfnApiReadyCount

ReadyCount of Heat CfnAPI instance

int32

false

heatEngineReadyCount

ReadyCount of Heat Engine instance

int32

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

HeatAPI

+
+

HeatAPI …​

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

HeatAPISpec

false

status

HeatAPIStatus

false

+ +
+
+

HeatAPIList

+
+

HeatAPIList contains a list of HeatAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]HeatAPI

true

+ +
+
+

HeatAPISpec

+
+

HeatAPISpec defines the desired state of HeatAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - Heat Database Hostname

string

true

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

true

serviceAccount

ServiceAccount - service account name used internally to provide Heat services the default SA name

string

true

+ +
+
+

HeatAPIStatus

+
+

HeatAPIStatus defines the observed state of HeatAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of HeatAPI instances

int32

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

HeatAPITemplate

+
+

HeatAPITemplate defines the input parameters for the Heat API service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Container Image URL

string

true

+ +
+
+

HeatAPITemplateCore

+
+

HeatAPITemplateCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

HeatCfnAPI

+
+

HeatCfnAPI …​

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

HeatCfnAPISpec

false

status

HeatCfnAPIStatus

false

+ +
+
+

HeatCfnAPIList

+
+

HeatCfnAPIList contains a list of HeatCfnAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]HeatCfnAPI

true

+ +
+
+

HeatCfnAPISpec

+
+

HeatCfnAPISpec defines the desired state of HeatCfnAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - Heat Database Hostname

string

true

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

true

serviceAccount

ServiceAccount - service account name used internally to provide Heat services the default SA name

string

true

+ +
+
+

HeatCfnAPIStatus

+
+

HeatCfnAPIStatus defines the observed state of HeatCfnAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of HeatCfnAPI instances

int32

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

HeatCfnAPITemplate

+
+

HeatCfnAPITemplate defines the input parameters for the Heat Cfn API service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Container Image URL

string

true

+ +
+
+

HeatCfnAPITemplateCore

+
+

HeatCfnAPITemplateCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

HeatEngine

+
+

HeatEngine defined.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

HeatEngineSpec

false

status

HeatEngineStatus

false

+ +
+
+

HeatEngineList

+
+

HeatEngineList contains a list of HeatEngine

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]HeatEngine

true

+ +
+
+

HeatEngineSpec

+
+

HeatEngineSpec defines the desired state of HeatEngine

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - Heat Database Hostname

string

true

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

true

serviceAccount

ServiceAccount - service account name used internally to provide Heat services the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

HeatEngineStatus

+
+

HeatEngineStatus defines the observed state of HeatEngine

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of HeatEngine instances

int32

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

HeatEngineTemplate

+
+

HeatEngineTemplate defines the input parameters for the Heat Engine service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Container Image URL

string

true

+ +
+
+

HorizionOverrideSpec

+
+

HorizionOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster.

*service.RoutedOverrideSpec

false

+ +
+
+

Horizon

+
+

Horizon is the Schema for the horizons API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

HorizonSpec

false

status

HorizonStatus

false

+ +
+
+

HorizonExtraVolMounts

+
+

HorizonExtraVolMounts exposes additional parameters processed by the horizon-operator and defines the common VolMounts structure provided by the main storage module

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

string

false

region

string

false

extraVol

[]storage.VolMounts

true

+ +
+
+

HorizonList

+
+

HorizonList contains a list of Horizon

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Horizon

true

+ +
+
+

HorizonSpec

+
+

HorizonSpec defines the desired state of Horizon

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

horizon Container Image URL

string

true

+ +
+
+

HorizonSpecCore

+
+

HorizonSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf or policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

override

Override, provides the ability to override the generated manifest of several child resources.

HorizionOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.SimpleService

false

replicas

Replicas of horizon API to run

*int32

true

secret

Secret containing OpenStack password information for Horizon Secret Key

string

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc/openstack-dashboard/local_settings.d directory as 9999_custom_settings.py file.

string

true

memcachedInstance

Memcached instance name.

string

true

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

extraMounts

ExtraMounts containing conf files

[]HorizonExtraVolMounts

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

+ +
+
+

HorizonStatus

+
+

HorizonStatus defines the observed state of Horizon

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

endpoint

Endpoint url to access OpenStack Dashboard

string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of Horizon instances

int32

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

+ +
+
+

IronicServiceTemplate

+
+

IronicServiceTemplate defines the common input parameters for Ironic services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas -

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting here overrides any global NodeSelector settings within the Ironic CR

*map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

+ +
+
+

KeystoneEndpoints

+
+

KeystoneEndpoints defines keystone endpoint parameters for service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

internal

Internal endpoint URL

string

true

public

Public endpoint URL

string

true

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the ironic service password from the Secret

string

true

+ +
+
+

DHCPRange

+
+

DHCPRange to define address range for DHCP requestes

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

Name - Name of the DHCPRange (used for tagging in dnsmasq)

string

false

cidr

Cidr - IP address prefix (CIDR) representing an IP network.

string

true

start

Start - Start of DHCP range

string

true

end

End - End of DHCP range

string

true

gateway

Gateway - IP address for the router

string

false

mtu

MTU - Maximum Transmission Unit

int

false

podIndex

PodIndex - Maps the DHCPRange to a specific statefulset pod index

int

false

+ +
+
+

Ironic

+
+

Ironic is the Schema for the ironics API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

IronicSpec

false

status

IronicStatus

false

+ +
+
+

IronicImages

+
+

IronicImages to specify container images required by all ironic services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

api

API - Ironic API Container Image (will be set to environmental default if empty)

string

true

conductor

Conductor - Ironic Conductor Container Image (will be set to environmental default if empty)

string

true

inspector

Inspector - Ironic Inspector Container Image (will be set to environmental default if empty)

string

true

neutronAgent

NeutronAgent - ML2 baremtal - Ironic Neutron Agent Image (will be set to environmental default if empty)

string

true

pxe

Pxe- Ironic DHCP/TFTP/HTTP Container Image URL (will be set to environmental default if empty)

string

true

ironicPythonAgent

IronicPythonAgent - Image containing the ironic-python-agent kernel and ramdisk

string

true

+ +
+
+

IronicList

+
+

IronicList contains a list of Ironic

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Ironic

true

+ +
+
+

IronicSpec

+
+

IronicSpec defines the desired state of Ironic

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

images

Images - Container images for all ironic services

IronicImages

true

+ +
+
+

IronicSpecCore

+
+

IronicSpec defines the desired state of Ironic

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

standalone

Whether to deploy a standalone Ironic.

bool

true

serviceUser

ServiceUser - optional username used for this service to register in ironic

string

true

databaseInstance

MariaDB instance name. Right now required by the maridb-operator to get the credentials from the instance to create the DB. Might not be required in future.

string

true

databaseAccount

DatabaseAccount - optional MariaDBAccount used for ironic DB, defaults to ironic.

string

true

secret

Secret containing OpenStack password information for ironic IronicPassword

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the DB and ServiceUser password from the Secret

PasswordSelector

true

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

ironicAPI

IronicAPI - Spec definition for the API service of this Ironic deployment

IronicAPITemplate

true

ironicConductors

IronicConductors - Spec definitions for the conductor service of this Ironic deployment

[]IronicConductorTemplate

false

ironicInspector

IronicInspector - Spec definition for the inspector service of this Ironic deployment

IronicInspectorTemplate

true

ironicNeutronAgent

IronicNeutronAgent - Spec definition for the ML2 baremetal ironic-neutron-agent service of this Ironic deployment

IronicNeutronAgentTemplate

true

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Ironic

string

true

rpcTransport

RPC transport type - Which RPC transport implementation to use between conductor and API services. oslo to use oslo.messaging transport or json-rpc to use JSON RPC transport. NOTE -> ironic and ironic-inspector require oslo.messaging transport when not in standalone mode.

string

true

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting NodeSelector here acts as a default value and can be overridden by service specific NodeSelector Settings.

*map[string]string

false

storageClass

Storage class to host data. This is passed to IronicConductors unless storageClass is explicitly set for the conductor.

string

true

+ +
+
+

IronicStatus

+
+

IronicStatus defines the observed state of Ironic

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

databaseHostname

Ironic Database Hostname

string

false

apiEndpoints

API endpoint

map[string]map[string]string

false

ironicAPIReadyCount

ReadyCount of Ironic API instance

int32

false

ironicConductorReadyCount

ReadyCount of Ironic Conductor instance

map[string]int32

false

ironicInspectorReadyCount

ReadyCount of Ironic Inspector instance

int32

false

ironicNeutronAgentReadyCount

ReadyCount of Ironic Neutron Agent instance

int32

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

IronicAPI

+
+

IronicAPI is the Schema for the ironicapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

IronicAPISpec

false

status

IronicAPIStatus

false

+ +
+
+

IronicAPIList

+
+

IronicAPIList contains a list of IronicAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]IronicAPI

true

+ +
+
+

IronicAPISpec

+
+

IronicAPISpec defines the desired state of IronicAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Ironic API Container Image

string

true

standalone

Whether to deploy a standalone Ironic.

bool

true

serviceUser

ServiceUser - optional username used for this service to register in ironic

string

true

secret

Secret containing OpenStack password information for AdminPassword

string

false

passwordSelectors

PasswordSelectors - Selectors to identify the DB and ServiceUser password from the Secret

PasswordSelector

true

databaseHostname

DatabaseHostname - Ironic Database Hostname

string

true

databaseAccount

DatabaseAccount - optional MariaDBAccount used for ironic DB, defaults to ironic.

string

true

transportURLSecret

Secret containing RabbitMq transport URL

string

false

rpcTransport

RPC transport type - Which RPC transport implementation to use between conductor and API services. oslo to use oslo.messaging transport or json-rpc to use JSON RPC transport. NOTE -> ironic requires oslo.messaging transport when not in standalone mode.

string

true

keystoneEndpoints

KeystoneEndpoints - Internally used Keystone API endpoints

KeystoneEndpoints

true

+ +
+
+

IronicAPIStatus

+
+

IronicAPIStatus defines the observed state of IronicAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

apiEndpoints

API endpoint

map[string]map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of ironic API instances

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

IronicAPITemplate

+
+

IronicAPITemplate defines the input parameters for Ironic API service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

IronicConductor

+
+

IronicConductor is the Schema for the ironicconductors Conductor

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

IronicConductorSpec

false

status

IronicConductorStatus

false

+ +
+
+

IronicConductorList

+
+

IronicConductorList contains a list of IronicConductor

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]IronicConductor

true

+ +
+
+

IronicConductorSpec

+
+

IronicConductorSpec defines the desired state of IronicConductor

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Ironic Conductor Container Image

string

true

standalone

Whether to deploy a standalone Ironic.

bool

true

pxeContainerImage

PxeContainerImage - Ironic DHCP/TFTP/HTTP Container Image

string

true

ironicPythonAgentImage

IronicPythonAgentImage - Image containing the ironic-python-agent kernel and ramdisk

string

true

serviceUser

ServiceUser - optional username used for this service to register in ironic

string

true

secret

Secret containing OpenStack password information for AdminPassword

string

false

passwordSelectors

PasswordSelectors - Selectors to identify the ServiceUser password from the Secret

PasswordSelector

true

databaseHostname

DatabaseHostname - Ironic Database Hostname

string

true

databaseAccount

DatabaseAccount - optional MariaDBAccount used for ironic DB, defaults to ironic.

string

true

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

rpcTransport

RPC transport type - Which RPC transport implementation to use between conductor and API services. oslo to use oslo.messaging transport or json-rpc to use JSON RPC transport. NOTE -> ironic requires oslo.messaging transport when not in standalone mode.

string

true

keystoneEndpoints

KeystoneEndpoints - Internally used Keystone API endpoints

KeystoneEndpoints

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

IronicConductorStatus

+
+

IronicConductorStatus defines the observed state of IronicConductor

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of ironic Conductor instances

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

IronicConductorTemplate

+
+

IronicConductorTemplate defines the input parameters for Ironic Conductor service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conductorGroup

ConductorGroup - Ironic Conductor conductor group.

string

true

storageClass

StorageClass

string

true

storageRequest

StorageRequest

string

true

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

provisionNetwork

ProvisionNetwork - Additional network to attach to expose boot DHCP, TFTP, HTTP services.

string

false

dhcpRanges

DHCPRanges - List of DHCP ranges to use for provisioning

[]DHCPRange

false

+ +
+
+

InspectorOverrideSpec

+
+

InspectorOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

IronicInspector

+
+

IronicInspector is the Schema for the IronicInspector

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

IronicInspectorSpec

false

status

IronicInspectorStatus

false

+ +
+
+

IronicInspectorList

+
+

IronicInspectorList contains a list of IronicInspector

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]IronicInspector

true

+ +
+
+

IronicInspectorPasswordSelector

+
+

IronicInspectorPasswordSelector to identify the AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the ironic-inspector service password from the Secret

string

true

+ +
+
+

IronicInspectorSpec

+
+

IronicInspectorSpec defines the desired state of IronicInspector

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

standalone

Standalone - Whether to deploy a standalone Ironic Inspector.

bool

true

containerImage

ContainerImage - Ironic Inspector Container Image

string

true

pxeContainerImage

PxeContainerImage - Ironic Inspector DHCP/TFTP/HTTP Container Image

string

true

ironicPythonAgentImage

IronicPythonAgentImage - Image containing the ironic-python-agent kernel and ramdisk

string

true

databaseInstance

MariaDB instance name. Right now required by the maridb-operator to get the credentials from the instance to create the DB. Might not be required in future.

string

true

secret

Secret containing OpenStack password information for AdminPassword

string

false

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Ironic Inspector

string

true

rpcTransport

RPC transport type - Which RPC transport implementation to use between conductor and API services. oslo to use oslo.messaging transport or json-rpc to use JSON RPC transport. NOTE -> ironic-inspector requires oslo.messaging transport when not in standalone mode.

string

true

+ +
+
+

IronicInspectorStatus

+
+

IronicInspectorStatus defines the observed state of IronicInspector

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

apiEndpoints

API endpoint

map[string]map[string]string

false

conditions

Conditions

condition.Conditions

false

databaseHostname

IronicInspector Database Hostname

string

false

readyCount

ReadyCount of Ironic Inspector instances

int32

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

IronicInspectorTemplate

+
+

IronicInspectorTemplate defines the input parameters for Ironic Inspector service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceUser

ServiceUser - optional username used for this service to register in ironic-inspector

string

true

replicas

Replicas - Ironic Inspector Replicas

*int32

true

databaseAccount

DatabaseAccount - optional MariaDBAccount used for ironic DB, defaults to ironic-inspector. this is separate from the account used for ironic, as a MariaDBAccount can only refer to a single MariaDBDatabase and it appears that ironic inspector uses its own MariaDBDatabase.

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the ServiceUser password from the Secret

IronicInspectorPasswordSelector

true

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting here overrides any global NodeSelector settings within the Ironic CR

*map[string]string

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

storageClass

StorageClass

string

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

inspectionNetwork

InspectionNetwork - Additional network to attach to expose boot DHCP, TFTP, HTTP services.

string

false

dhcpRanges

DHCPRanges - List of DHCP ranges to use for provisioning

[]DHCPRange

false

override

Override, provides the ability to override the generated manifest of several child resources.

InspectorOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

IronicNeutronAgent

+
+

IronicNeutronAgent is the Schema for the ML2 baremetal - ironic-neutron-agent agents

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

IronicNeutronAgentSpec

false

status

IronicNeutronAgentStatus

false

+ +
+
+

IronicNeutronAgentList

+
+

IronicNeutronAgentList contains a list of IronicConductor

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]IronicNeutronAgent

true

+ +
+
+

IronicNeutronAgentSpec

+
+

IronicNeutronAgentSpec defines the desired state of ML2 baremetal - ironic-neutron-agent agents

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - ML2 baremtal - Ironic Neutron Agent Image

string

true

serviceUser

ServiceUser - optional username used for this service to register in ironic

string

true

secret

Secret containing OpenStack password information for IronicPassword

string

false

passwordSelectors

PasswordSelectors - Selectors to identify the ServiceUser password from the Secret

PasswordSelector

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

IronicNeutronAgentStatus

+
+

IronicNeutronAgentStatus defines the observed state of ML2 baremetal - ironic-neutron-agent

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of ironic Conductor instances

int32

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

IronicNeutronAgentTemplate

+
+

IronicNeutronAgentTemplate defines the input parameters for ML2 baremetal - ironic-neutron-agent agents

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Ironic

string

true

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

HttpdCustomization

+
+

HttpdCustomization - customize the httpd service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

processNumber

ProcessNumber - Number of processes running in keystone API

*int32

true

+ +
+
+

KeystoneAPI

+
+

KeystoneAPI is the Schema for the keystoneapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

KeystoneAPISpec

false

status

KeystoneAPIStatus

false

+ +
+
+

KeystoneAPIList

+
+

KeystoneAPIList contains a list of KeystoneAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]KeystoneAPI

true

+ +
+
+

KeystoneAPISpec

+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

Keystone Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

KeystoneAPISpecCore

+
+

KeystoneAPISpec defines the desired state of KeystoneAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

databaseAccount

DatabaseAccount - name of MariaDBAccount which will be used to connect.

string

true

memcachedInstance

Memcached instance name.

string

true

region

Region - optional region name for the keystone service

string

true

adminProject

AdminProject - admin project name

string

true

adminUser

AdminUser - admin user name

string

true

replicas

Replicas of keystone API to run

*int32

true

secret

Secret containing OpenStack password information for keystone AdminPassword

string

true

enableSecureRBAC

EnableSecureRBAC - Enable Consistent and Secure RBAC policies

bool

true

trustFlushArgs

TrustFlushArgs - Arguments added to keystone-manage trust_flush command

string

true

trustFlushSchedule

TrustFlushSchedule - Schedule to purge expired or soft-deleted trusts from database

string

true

trustFlushSuspend

TrustFlushSuspend - Suspend the cron job to purge trusts

bool

true

fernetRotationDays

FernetRotationDays - Rotate fernet token keys every X days

*int32

true

fernetMaxActiveKeys

FernetMaxActiveKeys - Maximum number of fernet token keys after rotation

*int32

true

passwordSelectors

PasswordSelectors - Selectors to identify the AdminUser password from the Secret

PasswordSelector

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

httpdCustomization

HttpdCustomization - customize the httpd service

HttpdCustomization

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Keystone

string

true

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

KeystoneAPIStatus

+
+

KeystoneAPIStatus defines the observed state of KeystoneAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of keystone API instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

apiEndpoints

API endpoint

map[string]string

false

conditions

Conditions

condition.Conditions

false

databaseHostname

Keystone Database Hostname

string

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes.

int64

false

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the DB and AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

admin

Admin - Selector to get the keystone Admin password from the Secret

string

true

+ +
+
+

KeystoneEndpoint

+
+

KeystoneEndpoint is the Schema for the keystoneendpoints API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

KeystoneEndpointSpec

false

status

KeystoneEndpointStatus

false

+ +
+
+

KeystoneEndpointList

+
+

KeystoneEndpointList contains a list of KeystoneEndpoint

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]KeystoneEndpoint

true

+ +
+
+

KeystoneEndpointSpec

+
+

KeystoneEndpointSpec defines the desired state of KeystoneEndpoint

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceName

ServiceName - Name of the service to create the endpoint for

string

true

endpoints

Endpoints - map with service api endpoint URLs with the endpoint type as index

map[string]string

true

+ +
+
+

KeystoneEndpointStatus

+
+

KeystoneEndpointStatus defines the observed state of KeystoneEndpoint

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

endpointIDs

map[string]string

false

serviceID

string

false

conditions

Conditions

condition.Conditions

false

+ +
+
+

KeystoneService

+
+

KeystoneService is the Schema for the keystoneservices API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

KeystoneServiceSpec

false

status

KeystoneServiceStatus

false

+ +
+
+

KeystoneServiceList

+
+

KeystoneServiceList contains a list of KeystoneService

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]KeystoneService

true

+ +
+
+

KeystoneServiceSpec

+
+

KeystoneServiceSpec defines the desired state of KeystoneService

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceType

ServiceType - Type is the type of the service.

string

true

serviceName

ServiceName - Name of the service.

string

true

serviceDescription

ServiceDescription - Description for the service.

string

false

enabled

Enabled - whether or not the service is enabled.

bool

true

serviceUser

ServiceUser - optional username used for this service

string

true

secret

Secret containing OpenStack password information for the ServiceUser

string

true

passwordSelector

PasswordSelector - Selector to get the ServiceUser password from the Secret, e.g. PlacementPassword

string

true

+ +
+
+

KeystoneServiceStatus

+
+

KeystoneServiceStatus defines the observed state of KeystoneService

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceID

string

false

conditions

Conditions

condition.Conditions

false

+ +
+
+

ManilaServiceTemplate

+
+

ManilaServiceTemplate defines the input parameters that can be defined for a given Manila service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting here overrides any global NodeSelector settings within the Manila CR.

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory a custom config file.

string

false

customServiceConfigSecrets

CustomServiceConfigSecrets - customize the service config using this parameter to specify Secrets that contain sensitive service config data. The content of each Secret gets added to the /etc//.conf.d directory as a custom config file.

[]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

+ +
+
+

ManilaTemplate

+
+

ManilaTemplate defines common input parameters used by all Manila services

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceUser

ServiceUser - optional username used for this service to register in manila

string

true

databaseAccount

DatabaseAccount - optional MariaDBAccount CR name used for manila DB, defaults to manila

string

true

secret

Secret containing OpenStack password information for AdminPassword

string

false

passwordSelectors

PasswordSelectors - Selectors to identify the ServiceUser password from the Secret

PasswordSelector

false

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the DB and AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the manila service password from the Secret

string

false

+ +
+
+

DBPurge

+
+

DBPurge struct is used to model the parameters exposed to the Manila API CronJob

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

age

Age is the DBPurgeAge parameter and indicates the number of days of purging DB records

int

true

schedule

Schedule defines the crontab format string to schedule the DBPurge cronJob

string

true

+ +
+
+

Manila

+
+

Manila is the Schema for the manilas API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

ManilaSpec

false

status

ManilaStatus

false

+ +
+
+

ManilaDebug

+
+

ManilaDebug contains flags related to multiple debug activities. See the individual comments for what this means for each flag.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

dbPurge

DBPurge increases log verbosity by executing the db_purge command with "--debug".

bool

false

+ +
+
+

ManilaExtraVolMounts

+
+

ManilaExtraVolMounts exposes additional parameters processed by the manila-operator and defines the common VolMounts structure provided by the main storage module

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

string

false

region

string

false

extraVol

[]storage.VolMounts

true

+ +
+
+

ManilaList

+
+

ManilaList contains a list of Manila

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Manila

true

+ +
+
+

ManilaSpec

+
+

ManilaSpec defines the desired state of Manila

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

manilaAPI

ManilaAPI - Spec definition for the API service of this Manila deployment

ManilaAPITemplate

true

manilaScheduler

ManilaScheduler - Spec definition for the Scheduler service of this Manila deployment

ManilaSchedulerTemplate

true

manilaShares

ManilaShares - Map of chosen names to spec definitions for the Share(s) service(s) of this Manila deployment

map[string]ManilaShareTemplate

false

+ +
+
+

ManilaSpecBase

+
+

ManilaSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

false

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Manila

string

true

memcachedInstance

Memcached instance name.

string

true

debug

Debug - enable debug for different deploy stages. If an init container is used, it runs and the actual action pod gets started with sleep infinity

ManilaDebug

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

false

customServiceConfig

CustomServiceConfig - customize the service config for all Manila services using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory a custom config file.

string

false

extraMounts

ExtraMounts containing conf files and credentials

[]ManilaExtraVolMounts

false

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting NodeSelector here acts as a default value and can be overridden by service specific NodeSelector Settings.

*map[string]string

false

dbPurge

DBPurge parameters -

DBPurge

false

apiTimeout

APITimeout for HAProxy, Apache, and rpc_response_timeout

int

true

+ +
+
+

ManilaSpecCore

+
+

ManilaSpecCore defines the desired state of Manila. This version is used by OpenStackControlplane

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

manilaAPI

ManilaAPI - Spec definition for the API service of this Manila deployment

ManilaAPITemplateCore

true

manilaScheduler

ManilaScheduler - Spec definition for the Scheduler service of this Manila deployment

ManilaSchedulerTemplateCore

true

manilaShares

ManilaShares - Map of chosen names to spec definitions for the Share(s) service(s) of this Manila deployment

map[string]ManilaShareTemplateCore

false

+ +
+
+

ManilaStatus

+
+

ManilaStatus defines the observed state of Manila

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

databaseHostname

Manila Database Hostname

string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

manilaAPIReadyCount

ReadyCount of Manila API instance

int32

false

manilaSchedulerReadyCount

ReadyCount of Manila Scheduler instance

int32

false

manilaSharesReadyCounts

ReadyCounts of Manila Share instances

map[string]int32

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

ManilaAPI

+
+

ManilaAPI is the Schema for the manilaapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

ManilaAPISpec

false

status

ManilaAPIStatus

false

+ +
+
+

ManilaAPIList

+
+

ManilaAPIList contains a list of ManilaAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]ManilaAPI

true

+ +
+
+

ManilaAPISpec

+
+

ManilaAPISpec defines the desired state of ManilaAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - Manila Database Hostname

string

false

transportURLSecret

Secret containing RabbitMq transport URL

string

false

extraMounts

ExtraMounts containing conf files and credentials

[]ManilaExtraVolMounts

false

serviceAccount

ServiceAccount - service account name used internally to provide the default SA name

string

true

+ +
+
+

ManilaAPIStatus

+
+

ManilaAPIStatus defines the observed state of ManilaAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of Manila API instances

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

ManilaAPITemplate

+
+

ManilaAPITemplate defines the input parameter for the ManilaAPI service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Manila API Container Image URL

string

true

+ +
+
+

ManilaAPITemplateCore

+
+

ManilaAPITemplateCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Manila API Replicas

*int32

true

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

ManilaScheduler

+
+

ManilaScheduler is the Schema for the manilaschedulers API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

ManilaSchedulerSpec

false

status

ManilaSchedulerStatus

false

+ +
+
+

ManilaSchedulerList

+
+

ManilaSchedulerList contains a list of ManilaScheduler

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]ManilaScheduler

true

+ +
+
+

ManilaSchedulerSpec

+
+

ManilaSchedulerSpec defines the desired state of ManilaScheduler

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - manila Database Hostname

string

false

transportURLSecret

Secret containing RabbitMq transport URL

string

false

extraMounts

ExtraMounts containing conf files and credentials

[]ManilaExtraVolMounts

false

serviceAccount

ServiceAccount - service account name used internally to provide the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

ManilaSchedulerStatus

+
+

ManilaSchedulerStatus defines the observed state of ManilaScheduler

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of Manila Scheduler instances

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

ManilaSchedulerTemplate

+
+

ManilaSchedulerTemplate defines the input parameter for the ManilaScheduler service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Manila API Container Image URL

string

true

+ +
+
+

ManilaSchedulerTemplateCore

+
+

ManilaSchedulerTemplateCore -

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Manila API Replicas

*int32

true

+ +
+
+

ManilaShare

+
+

ManilaShare is the Schema for the manilashares API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

ManilaShareSpec

false

status

ManilaShareStatus

false

+ +
+
+

ManilaShareList

+
+

ManilaShareList contains a list of ManilaShare

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]ManilaShare

true

+ +
+
+

ManilaShareSpec

+
+

ManilaShareSpec defines the desired state of ManilaShare

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseHostname

DatabaseHostname - manila Database Hostname

string

false

transportURLSecret

Secret containing RabbitMq transport URL

string

false

extraMounts

ExtraMounts containing conf files and credentials

[]ManilaExtraVolMounts

false

serviceAccount

ServiceAccount - service account name used internally to provide the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

+ +
+
+

ManilaShareStatus

+
+

ManilaShareStatus defines the observed state of ManilaShare

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount of ManilaShare instances

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

ManilaShareTemplate

+
+

ManilaShareTemplate defines the input parameter for the ManilaShare service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Manila API Container Image URL

string

true

+ +
+
+

ManilaShareTemplateCore

+
+

ManilaShareTemplateCore -

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - Manila API Replicas

*int32

true

+ +
+
+

Galera

+
+

Galera is the Schema for the galeras API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

GaleraSpec

false

status

GaleraStatus

false

+ +
+
+

GaleraAttributes

+
+

GaleraAttributes holds startup information for a Galera host

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

uuid

UUID of the partition that is seen by the galera node

string

false

seqno

Last recorded replication sequence number in the DB

string

true

safe_to_bootstrap

This galera node can bootstrap a galera cluster

bool

false

no_grastate

This galera node has its state recovered from the DB

bool

false

gcomm

Gcomm URI used to connect to the galera cluster

string

false

containerID

Identifier of the container at the time the gcomm URI was injected

string

false

+ +
+
+

GaleraList

+
+

GaleraList contains a list of Galera

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Galera

true

+ +
+
+

GaleraSpec

+
+

GaleraSpec defines the desired state of Galera

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

Name of the galera container image to run (will be set to environmental default if empty)

string

true

+ +
+
+

GaleraSpecCore

+
+

GaleraSpec defines the desired state of Galera

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

secret

Name of the secret to look for password keys

string

true

storageClass

Storage class to host the mariadb databases

string

true

storageRequest

Storage size allocated for the mariadb databases

string

true

replicas

Size of the galera cluster deployment

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

customServiceConfig

Customize config using this parameter to change service defaults, or overwrite rendered information using raw MariaDB config format. The content gets added to /etc/my.cnf.d/galera_custom.cnf

string

false

tls

TLS settings for MySQL service and internal Galera replication

tls.SimpleService

false

disableNonTLSListeners

When TLS is configured, only allow connections to the DB over TLS

bool

false

logToDisk

Log Galera pod’s output to disk

bool

true

+ +
+
+

GaleraStatus

+
+

GaleraStatus defines the observed state of Galera

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

attributes

A map of database node attributes for each pod

map[string]GaleraAttributes

false

safeToBootstrap

Name of the node that can safely bootstrap a cluster

string

false

bootstrapped

Is the galera cluster currently running

bool

true

stopRequired

Does the galera cluster requires to be stopped globally

bool

true

clusterProperties

Map of properties that require full cluster restart if changed

map[string]string

false

hash

Map of hashes to track input changes

map[string]string

false

conditions

Deployment Conditions

condition.Conditions

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

MariaDBAccount

+
+

MariaDBAccount is the Schema for the mariadbaccounts API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

MariaDBAccountSpec

false

status

MariaDBAccountStatus

false

+ +
+
+

MariaDBAccountList

+
+

MariaDBAccountList contains a list of MariaDBAccount

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]MariaDBAccount

true

+ +
+
+

MariaDBAccountSpec

+
+

MariaDBAccountSpec defines the desired state of MariaDBAccount

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

userName

UserName for new account

string

true

secret

Name of secret which contains DatabasePassword

string

true

requireTLS

Account must use TLS to connect to the database

bool

true

+ +
+
+

MariaDBAccountStatus

+
+

MariaDBAccountStatus defines the observed state of MariaDBAccount

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Deployment Conditions

condition.Conditions

false

hash

Map of hashes to track e.g. job status

map[string]string

false

+ +
+
+

MariaDBDatabase

+
+

MariaDBDatabase is the Schema for the mariadbdatabases API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

MariaDBDatabaseSpec

false

status

MariaDBDatabaseStatus

false

+ +
+
+

MariaDBDatabaseList

+
+

MariaDBDatabaseList contains a list of MariaDBDatabase

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]MariaDBDatabase

true

+ +
+
+

MariaDBDatabaseSpec

+
+

MariaDBDatabaseSpec defines the desired state of MariaDBDatabase

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

secret

Name of secret which contains DatabasePassword (deprecated)

*string

false

name

Name of the database in MariaDB

string

false

defaultCharacterSet

Default character set for this database

string

false

defaultCollation

Default collation for this database

string

false

+ +
+
+

MariaDBDatabaseStatus

+
+

MariaDBDatabaseStatus defines the observed state of MariaDBDatabase

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Deployment Conditions

condition.Conditions

false

completed

bool

false

hash

Map of hashes to track e.g. job status

map[string]string

false

tlsSupport

Whether TLS is supported by the DB instance

bool

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

NeutronAPI

+
+

NeutronAPI is the Schema for the neutronapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

NeutronAPISpec

false

status

NeutronAPIStatus

false

+ +
+
+

NeutronAPIList

+
+

NeutronAPIList contains a list of NeutronAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]NeutronAPI

true

+ +
+
+

NeutronAPISpec

+
+

NeutronAPISpec defines the desired state of NeutronAPI

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

NeutronAPI Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

NeutronAPISpecCore

+
+

NeutronAPISpecCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

apiTimeout

APITimeout for HAProxy, Apache

int

true

serviceUser

ServiceUser - optional username used for this service to register in neutron

string

true

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

databaseAccount

DatabaseAccount - optional MariaDBAccount CR name used for neutron DB, defaults to neutron

string

true

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Neutron

string

true

memcachedInstance

Memcached instance name.

string

true

replicas

Replicas of neutron API to run

*int32

true

secret

Secret containing OpenStack password information for NeutronPassword

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the ServiceUser password from the Secret

PasswordSelector

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

corePlugin

CorePlugin - Neutron core plugin to use. Using "ml2" if not set.

string

true

ml2MechanismDrivers

Ml2MechanismDrivers - list of ml2 drivers to enable. Using {"ovn"} if not set.

[]string

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

defaultConfigOverwrite

DefaultConfigOverwrite - interface to overwrite default config files like policy.yaml

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

extraMounts

ExtraMounts containing conf files

[]NeutronExtraVolMounts

false

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

tls

TLS - Parameters related to the TLS

NeutronApiTLS

false

+ +
+
+

NeutronAPIStatus

+
+

NeutronAPIStatus defines the observed state of NeutronAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of neutron API instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

databaseHostname

Neutron Database Hostname

string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

NeutronApiTLS

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

api

API tls type which encapsulates for API services

tls.APIService

false

ovn

Ovn GenericService - holds the secret for the OvnDb client cert

tls.GenericService

false

+ +
+
+

NeutronExtraVolMounts

+
+

NeutronExtraVolMounts exposes additional parameters processed by the neutron-operator and defines the common VolMounts structure provided by the main storage module

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

string

false

region

string

false

extraVol

[]storage.VolMounts

true

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the DB and AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Database - Selector to get the neutron service password from the Secret

string

true

+ +
+
+

NovaCellImages

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conductorContainerImageURL

ConductorContainerImageURL

string

true

metadataContainerImageURL

MetadataContainerImageURL

string

true

novncproxyContainerImageURL

NoVNCContainerImageURL

string

true

computeContainerImageURL

NovaComputeContainerImageURL

string

true

+ +
+
+

NovaImages

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

apiContainerImageURL

APIContainerImageURL

string

true

schedulerContainerImageURL

SchedulerContainerImageURL

string

true

+ +
+
+

NovaServiceBase

+
+

NovaServiceBase contains the fields that are needed for each nova service CRD

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

The service specific Container Image URL (will be set to environmental default if empty)

string

true

replicas

Replicas of the service to run

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the DB and AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the keystone service user password from the Secret

string

true

metadataSecret

MetadataSecret - the name of the field to get the metadata secret from the Secret

string

true

prefixMetadataCellsSecret

prefixMetadataCellsSecret - the prefix name of the field to get the metadata secret from the Secret for cells. Vale of metadata_proxy_shared_secret information for the nova-metadata service. This secret is shared between nova and neutron ovn-metadata inside selected cell and if this is not defined the global metadata_proxy_shared_secret secret will be used

string

true

+ +
+
+

Nova

+
+

Nova is the Schema for the nova API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

NovaSpec

false

status

NovaStatus

false

+ +
+
+

NovaList

+
+

NovaList contains a list of Nova

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Nova

true

+ +
+
+

NovaSpecCore

+
+

NovaSpecCore defines the template for NovaSpec used in OpenStackControlPlane

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

keystoneInstance

KeystoneInstance to name of the KeystoneAPI CR to select the Service instance used by the Nova services to authenticate.

string

true

apiDatabaseInstance

APIDatabaseInstance is the name of the MariaDB CR to select the DB Service instance used for the Nova API DB.

string

true

apiMessageBusInstance

APIMessageBusInstance is the name of the RabbitMqCluster CR to select the Message Bus Service instance used by the Nova top level services to communicate.

string

true

cellTemplates

Cells is a mapping of cell names to NovaCellTemplate objects defining the cells in the deployment. The "cell0" cell is a mandatory cell in every deployment. Moreover any real deployment needs at least one additional normal cell as "cell0" cannot have any computes.

map[string]NovaCellTemplate

true

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

apiDatabaseAccount

APIDatabaseAccount - MariaDBAccount to use when accessing the API DB

string

true

secret

Secret is the name of the Secret instance containing password information for nova like the keystone service password and DB passwords

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the DB and ServiceUser passwords from the Secret

PasswordSelector

true

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting NodeSelector here acts as a default value and can be overridden by service specific NodeSelector Settings.

*map[string]string

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

apiServiceTemplate

APIServiceTemplate - define the nova-api service

NovaAPITemplate

true

schedulerServiceTemplate

SchedulerServiceTemplate- define the nova-scheduler service

NovaSchedulerTemplate

true

metadataServiceTemplate

MetadataServiceTemplate - defines the metadata service that is global for the deployment serving all the cells. Note that if you want to deploy metadata per cell then the metadata service should be disabled here and enabled in the cellTemplates instead.

NovaMetadataTemplate

true

memcachedInstance

MemcachedInstance is the name of the Memcached CR that all nova service will use.

string

true

+ +
+
+

NovaStatus

+
+

NovaStatus defines the observed state of Nova

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

apiServiceReadyCount

APIServiceReadyCount defines the number or replicas ready from nova-api

int32

false

schedulerServiceReadyCount

SchedulerServiceReadyCount defines the number or replicas ready from nova-scheduler

int32

false

metadataServiceReadyCount

MetadataReadyCount defines the number of replicas ready from nova-metadata service

int32

false

registeredCells

RegisteredCells is a map keyed by cell names that are registered in the nova_api database with a value that is the hash of the given cell configuration.

map[string]string

false

discoveredCells

DiscoveredCells is a map keyed by cell names that have discovered all kubernetes managed computes in cell value is a hash of config from all kubernetes managed computes in cell

map[string]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes.

int64

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

NovaAPI

+
+

NovaAPI is the Schema for the novaapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

NovaAPISpec

false

status

NovaAPIStatus

false

+ +
+
+

NovaAPIList

+
+

NovaAPIList contains a list of NovaAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]NovaAPI

true

+ +
+
+

NovaAPISpec

+
+

NovaAPISpec defines the desired state of NovaAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

secret

Secret is the name of the Secret instance containing password information for the nova-api service. This secret is expected to be generated by the nova-operator based on the information passed to the Nova CR.

string

true

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

keystoneAuthURL

KeystoneAuthURL configures the keystone API endpoint to be used by the service for authentication and authorization

string

true

keystonePublicAuthURL

KeystonePublicAuthURL configures the public keystone API endpoint. This can be different from KeystoneAuthURL. The service uses this value to redirect unauthenticated users.

string

true

apiDatabaseAccount

APIDatabaseAccount - MariaDBAccount to use when accessing the API DB

string

true

apiDatabaseHostname

APIDatabaseHostname - hostname to use when accessing the API DB

string

true

cell0DatabaseAccount

APIDatabaseAccount - MariaDBAccount to use when accessing the cell0 DB

string

true

cell0DatabaseHostname

APIDatabaseHostname - hostname to use when accessing the cell0 DB

string

true

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

serviceAccount

ServiceAccount - service account name used internally to provide Nova services the default SA name

string

true

registeredCells

RegisteredCells is a map keyed by cell names that are registered in the nova_api database with a value that is the hash of the given cell configuration. This is used to detect when a new cell is added or an existing cell is reconfigured to trigger refresh of the in memory cell caches of the service.

map[string]string

true

tls

TLS - Parameters related to the TLS

tls.API

false

defaultConfigOverwrite

DefaultConfigOverwrite - interface to overwrite default config files like e.g. api-paste.ini or policy.yaml.

map[string]string

false

memcachedInstance

MemcachedInstance is the name of the Memcached CR that all nova service will use.

string

true

+ +
+
+

NovaAPIStatus

+
+

NovaAPIStatus defines the observed state of NovaAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount defines the number of replicas ready from nova-api

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

NovaAPITemplate

+
+

NovaAPITemplate defines the input parameters specified by the user to create a NovaAPI via higher level CRDs. NOTE(gibi): NovaAPITemplate has the same structure than NovaServiceBase BUT we want to default ContainerImage for the template, therefore the structs are duplicated.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas of the service to run

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting here overrides any global NodeSelector settings within the Nova CR.

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

defaultConfigOverwrite

DefaultConfigOverwrite - interface to overwrite default config files like e.g. api-paste.ini or policy.yaml.

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

NovaCell

+
+

NovaCell is the Schema for the novacells API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

NovaCellSpec

false

status

NovaCellStatus

false

+ +
+
+

NovaCellDBPurge

+
+

NovaCellDBPurge defines the parameters for the DB archiving and purging cron job

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

schedule

Schedule defines when to run the DB maintenance job in a cron format. By default it runs every midnight.

*string

true

archiveAge

ArchiveAge defines the minimum age of the records in days that can be moved to the shadow tables.

*int

true

purgeAge

PurgeAge defines the minimum age of the records in days that can be deleted from the shadow tables

*int

true

+ +
+
+

NovaCellList

+
+

NovaCellList contains a list of NovaCell

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]NovaCell

true

+ +
+
+

NovaCellSpec

+
+

NovaCellSpec defines the desired state of NovaCell

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cellName

CellName is the name of the Nova Cell. The value "cell0" has a special meaning. The "cell0" Cell cannot have compute nodes associated and the conductor in this cell acts as the super conductor for all the cells in the deployment.

string

true

secret

Secret is the name of the Secret instance containing password information for the nova cell. This secret is expected to be generated by the nova-operator based on the information passed to the Nova CR.

string

true

nodeSelector

NodeSelector to target subset of worker nodes running this services.

*map[string]string

false

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

keystoneAuthURL

KeystoneAuthURL - the URL that the service in the cell can use to talk to keystone

string

true

apiDatabaseAccount

APIDatabaseAccount - MariaDBAccount to use when accessing the API DB

string

true

apiDatabaseHostname

APIDatabaseHostname - hostname to use when accessing the API DB. If not provided then up-calls will be disabled. This filed is Required for cell0.

string

true

cellDatabaseAccount

CellDatabaseAccount - MariaDBAccount to use when accessing the cell DB

string

true

cellDatabaseHostname

CellDatabaseHostname - hostname to use when accessing the cell DB

string

true

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

conductorServiceTemplate

ConductorServiceTemplate - defines the cell conductor deployment for the cell

NovaConductorTemplate

true

metadataServiceTemplate

MetadataServiceTemplate - defines the metadata service dedicated for the cell.

NovaMetadataTemplate

true

noVNCProxyServiceTemplate

NoVNCProxyServiceTemplate - defines the novncproxy service dedicated for the cell.

NovaNoVNCProxyTemplate

true

novaComputeTemplates

NovaComputeTemplates - map of nova computes template with selected drivers in format compute_name: compute_template. Key from map is arbitrary name for the compute. because of that there is a 20 character limit on the compute name.

map[string]NovaComputeTemplate

false

serviceAccount

ServiceAccount - service account name used internally to provide Nova services the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

memcachedInstance

MemcachedInstance is the name of the Memcached CR that all nova service will use.

string

true

dbPurge

DBPurge defines the parameters for the DB archiving and purging cron job

NovaCellDBPurge

true

+ +
+
+

NovaCellStatus

+
+

NovaCellStatus defines the observed state of NovaCell

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run "make" to regenerate code after modifying this file Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

conductorServiceReadyCount

ConductorServiceReadyCount defines the number of replicas ready from nova-conductor service in the cell

int32

false

metadataServiceReadyCount

MetadataServiceReadyCount defines the number of replicas ready from nova-metadata service in the cell

int32

false

noVNCProxyServiceReadyCount

NoVNCPRoxyServiceReadyCount defines the number of replicas ready from nova-novncproxy service in the cell

int32

false

novaComputesStatus

NovaComputesStatus is a map with format cell_name: NovaComputeCellStatus where NovaComputeCellStatus tell if compute with selected name deployed successfully and indicates if the compute is successfully mapped to the cell in the nova_api database. When a compute is removed from the Spec the operator will delete the related NovaCompute CR and then remove the compute from this Status field.

map[string]NovaComputeCellStatus

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

NovaCellTemplate

+
+

NovaCellTemplate defines the input parameters specified by the user to create a NovaCell via higher level CRDs.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cellDatabaseInstance

CellDatabaseInstance is the name of the MariaDB CR to select the DB Service instance used as the DB of this cell.

string

true

cellDatabaseAccount

CellDatabaseAccount - MariaDBAccount to use when accessing the give cell DB

string

true

cellMessageBusInstance

CellMessageBusInstance is the name of the RabbitMqCluster CR to select the Message Bus Service instance used by the nova services to communicate in this cell. For cell0 it is unused.

string

true

hasAPIAccess

HasAPIAccess defines if this Cell is configured to have access to the API DB and message bus.

bool

true

nodeSelector

NodeSelector to target subset of worker nodes running cell.

*map[string]string

false

conductorServiceTemplate

ConductorServiceTemplate - defines the cell conductor deployment for the cell.

NovaConductorTemplate

true

metadataServiceTemplate

MetadataServiceTemplate - defines the metadata service dedicated for the cell. Note that for cell0 metadata service should not be deployed. Also if metadata service needs to be deployed per cell here then it should not be enabled to be deployed on the top level via the Nova CR at the same time. By default Nova CR deploys the metadata service at the top level and disables it on the cell level.

NovaMetadataTemplate

true

noVNCProxyServiceTemplate

NoVNCProxyServiceTemplate - defines the novncproxy service dedicated for the cell. Note that for cell0 novncproxy should not be deployed so the enabled field of this template is defaulted to false in cell0 but defaulted to true in other cells.

NovaNoVNCProxyTemplate

true

novaComputeTemplates

NovaComputeTemplates - map of nova computes template with selected drivers in format compute_name: compute_template. Key from map is arbitrary name for the compute with a limit of 20 characters.

map[string]NovaComputeTemplate

false

memcachedInstance

MemcachedInstance is the name of the Memcached CR that the services in the cell will use. If defined then this takes precedence over Nova.Spec.MemcachedInstance for this cel

string

true

dbPurge

DBPurge defines the parameters for the DB archiving and purging cron job

NovaCellDBPurge

true

+ +
+
+

NovaCompute

+
+

NovaCompute is the Schema for the NovaCompute

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

NovaComputeSpec

false

status

NovaComputeStatus

false

+ +
+
+

NovaComputeCellStatus

+
+

NovaComputeCellStatus defines state of NovaCompute in cell

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

deployed

Deployed value: true means that the compute is deployed but can still be undiscovered

bool

true

errors

Errors value True means that during deployment, errors appear, and the user needs to check the compute for problems

bool

true

+ +
+
+

NovaComputeList

+
+

NovaComputeList contains a list of NovaCompute

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]NovaCompute

true

+ +
+
+

NovaComputeSpec

+
+

NovaComputeSpec defines the desired state of NovaCompute

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cellName

CellName is the name of the Nova Cell this NovaCompute belongs to.

string

true

computeName

ComputeName - compute name.

string

true

secret

Secret is the name of the Secret instance containing password information for the NovaCompute service. This secret is expected to be generated by the nova-operator based on the information passed to the Nova CR.

string

true

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

keystoneAuthURL

string

true

serviceAccount

ServiceAccount - service account name used internally to provide Nova services the default SA name

string

true

computeDriver

ComputeDriver defines which driver to use for controlling virtualization

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

defaultConfigOverwrite

DefaultConfigOverwrite - interface to overwrite default config files like e.g. provider.yaml

map[string]string

false

+ +
+
+

NovaComputeStatus

+
+

NovaComputeStatus defines the observed state of NovaCompute

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount defines the number of replicas ready from NovaCompute

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

NovaComputeTemplate

+
+

NovaComputeTemplate defines the input parameters specified by the user to create a NovaCompute via higher level CRDs.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas of the service to run. For ironic.IronicDriver the max replica is 1

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting here overrides any global NodeSelector settings within the Nova CR.

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

defaultConfigOverwrite

DefaultConfigOverwrite - interface to overwrite default config files like e.g. provider.yaml

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

computeDriver

ComputeDriver - defines which driver to use for controlling virtualization

string

true

+ +
+
+

NovaConductor

+
+

NovaConductor is the Schema for the novaconductors API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

NovaConductorSpec

false

status

NovaConductorStatus

false

+ +
+
+

NovaConductorList

+
+

NovaConductorList contains a list of NovaConductor

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]NovaConductor

true

+ +
+
+

NovaConductorSpec

+
+

NovaConductorSpec defines the desired state of NovaConductor

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cellName

CellName is the name of the Nova Cell this conductor belongs to.

string

true

secret

Secret is the name of the Secret instance containing password information for the nova-conductor service. This secret is expected to be generated by the nova-operator based on the information passed to the Nova CR.

string

true

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

keystoneAuthURL

KeystoneAuthURL - the URL that the nova-conductor service can use to talk to keystone

string

true

apiDatabaseAccount

APIDatabaseAccount - MariaDBAccount to use when accessing the API DB

string

true

apiDatabaseHostname

APIDatabaseHostname - hostname to use when accessing the API DB. If not provided then up-calls will be disabled. This filed is Required for cell0.

string

true

cellDatabaseAccount

CellDatabaseAccount - MariaDBAccount to use when accessing the cell DB

string

true

cellDatabaseHostname

NOTE(gibi): This should be Required, see notes in KeystoneAuthURL CellDatabaseHostname - hostname to use when accessing the cell DB

string

true

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

serviceAccount

ServiceAccount - service account name used internally to provide Nova services the default SA name

string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

memcachedInstance

MemcachedInstance is the name of the Memcached CR that all nova service will use.

string

true

dbPurge

DBPurge defines the parameters for the DB archiving and purging cron job

NovaCellDBPurge

true

+ +
+
+

NovaConductorStatus

+
+

NovaConductorStatus defines the observed state of NovaConductor

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount defines the number of replicas ready from nova-conductor

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

NovaConductorTemplate

+
+

NovaConductorTemplate defines the input parameters specified by the user to create a NovaConductor via higher level CRDs.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas of the service to run

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting here overrides any global NodeSelector settings within the Nova CR.

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

+ +
+
+

MetadataOverrideSpec

+
+

MetadataOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster for internal communication.

*service.OverrideSpec

false

+ +
+
+

NovaMetadata

+
+

NovaMetadata is the Schema for the novametadata API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

NovaMetadataSpec

false

status

NovaMetadataStatus

false

+ +
+
+

NovaMetadataList

+
+

NovaMetadataList contains a list of NovaMetadata

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]NovaMetadata

true

+ +
+
+

NovaMetadataSpec

+
+

NovaMetadataSpec defines the desired state of NovaMetadata

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cellName

CellName is the name of the Nova Cell this metadata service belongs to. If not provided then the metadata serving every cells in the deployment

string

false

secret

Secret is the name of the Secret instance containing password information for the nova-conductor service. This secret is expected to be generated by the nova-operator based on the information passed to the Nova CR.

string

true

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

keystoneAuthURL

KeystoneAuthURL - the URL that the nova-metadata service can use to talk to keystone

string

true

apiDatabaseAccount

APIDatabaseAccount - MariaDBAccount to use when accessing the API DB

string

true

apiDatabaseHostname

APIDatabaseHostname - hostname to use when accessing the API DB. This filed is Required if the CellName is not provided

string

true

cellDatabaseAccount

CellDatabaseAccount - MariaDBAccount to use when accessing the cell DB

string

true

cellDatabaseHostname

CellDatabaseHostname - hostname to use when accessing the cell DB This is unused if CellName is not provided. But if it is provided then CellDatabaseHostName is also Required.

string

true

override

Override, provides the ability to override the generated manifest of several child resources.

MetadataOverrideSpec

false

serviceAccount

ServiceAccount - service account name used internally to provide Nova services the default SA name

string

true

registeredCells

RegisteredCells is a map keyed by cell names that are registered in the nova_api database with a value that is the hash of the given cell configuration. This is used to detect when a new cell is added or an existing cell is reconfigured to trigger refresh of the in memory cell caches of the service. This is empty for the case when nova-metadata runs within the cell.

map[string]string

false

tls

TLS - Parameters related to the TLS

tls.SimpleService

false

defaultConfigOverwrite

DefaultConfigOverwrite - interface to overwrite default config files like e.g. api-paste.ini.

map[string]string

false

memcachedInstance

MemcachedInstance is the name of the Memcached CR that all nova service will use.

string

true

+ +
+
+

NovaMetadataStatus

+
+

NovaMetadataStatus defines the observed state of NovaMetadata

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount defines the number of replicas ready from nova-metadata

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

NovaMetadataTemplate

+
+

NovaMetadataTemplate defines the input parameters specified by the user to create a NovaMetadata via higher level CRDs.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether NovaMetadata services should be deployed and managed. If it is set to false then the related NovaMetadata CR will be deleted if exists and owned by a higher level nova CR (Nova or NovaCell). If it exist but not owned by a higher level nova CR then the NovaMetadata CR will not be touched. If it is set to true the a NovaMetadata CR will be created. If there is already a manually created NovaMetadata CR with the relevant name then this operator will not try to update that CR, instead the higher level nova CR will be in error state until the manually create NovaMetadata CR is deleted manually.

*bool

true

replicas

Replicas of the service to run

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting here overrides any global NodeSelector settings within the Nova CR.

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

defaultConfigOverwrite

DefaultConfigOverwrite - interface to overwrite default config files like e.g. api-paste.ini.

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

override

Override, provides the ability to override the generated manifest of several child resources.

MetadataOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.SimpleService

false

+ +
+
+

NovaNoVNCProxy

+
+

NovaNoVNCProxy is the Schema for the novanovncproxies API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

NovaNoVNCProxySpec

false

status

NovaNoVNCProxyStatus

false

+ +
+
+

NovaNoVNCProxyList

+
+

NovaNoVNCProxyList contains a list of NovaNoVNCProxy

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]NovaNoVNCProxy

true

+ +
+
+

NovaNoVNCProxySpec

+
+

NovaNoVNCProxySpec defines the desired state of NovaNoVNCProxy

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cellName

CellName is the name of the Nova Cell this novncproxy belongs to.

string

true

secret

Secret is the name of the Secret instance containing password information for the nova-novncproxy service. This secret is expected to be generated by the nova-operator based on the information passed to the Nova CR.

string

true

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

keystoneAuthURL

KeystoneAuthURL - the URL that the nova-novncproxy service can use to talk to keystone

string

true

cellDatabaseAccount

CellDatabaseAccount - MariaDBAccount to use when accessing the cell DB

string

true

cellDatabaseHostname

CellDatabaseHostname - hostname to use when accessing the cell DB

string

true

override

Override, provides the ability to override the generated manifest of several child resources.

VNCProxyOverrideSpec

false

serviceAccount

ServiceAccount - service account name used internally to provide Nova services the default SA name

string

true

tls

TLS - Parameters related to the TLS

TLSSection

true

memcachedInstance

MemcachedInstance is the name of the Memcached CR that all nova service will use.

string

true

+ +
+
+

NovaNoVNCProxyStatus

+
+

NovaNoVNCProxyStatus defines the observed state of NovaNoVNCProxy

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount defines the number of replicas ready from nova-novncproxy

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

NovaNoVNCProxyTemplate

+
+

NovaNoVNCProxyTemplate defines the input parameters specified by the user to create a NovaNoVNCProxy via higher level CRDs.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether NovaNoVNCProxy services should be deployed and managed. If it is set to false then the related NovaNoVNCProxy CR will be deleted if exists and owned by the NovaCell. If it exist but not owned by the NovaCell then the NovaNoVNCProxy will not be touched. If it is set to true the a NovaNoVNCProxy CR will be created. If there is already a manually created NovaNoVNCProxy CR with the relevant name then the cell will not try to update that CR, instead the NovaCell be in error state until the manually create NovaNoVNCProxy CR is deleted by the operator.

*bool

true

replicas

Replicas of the service to run

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

override

Override, provides the ability to override the generated manifest of several child resources.

VNCProxyOverrideSpec

false

tls

TLS - Parameters related to the TLS

TLSSection

true

+ +
+
+

TLSSection

+
+

TLSSection defines the desired state of TLS configuration

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Cert secret used for the nova novnc service endpoint

tls.GenericService

false

vencrypt

Vencrypt - cert secret containing the x509 certificate to be presented to the VNC server. The CommonName field should match the primary hostname of the controller node. If using a HA deployment, the Organization field can also be configured to a value that is common across all console proxy instances in the deployment. https://docs.openstack.org/nova/latest/admin/remote-console-access.html#novnc-proxy-server-configuration

tls.GenericService

false

+ +
+
+

VNCProxyOverrideSpec

+
+

VNCProxyOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster.

*service.RoutedOverrideSpec

false

+ +
+
+

NovaScheduler

+
+

NovaScheduler is the Schema for the novaschedulers API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

NovaSchedulerSpec

false

status

NovaSchedulerStatus

false

+ +
+
+

NovaSchedulerList

+
+

NovaSchedulerList contains a list of NovaScheduler

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]NovaScheduler

true

+ +
+
+

NovaSchedulerSpec

+
+

NovaSchedulerSpec defines the desired state of NovaScheduler

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

secret

Secret is the name of the Secret instance containing password information for the nova-scheduler service. This secret is expected to be generated by the nova-operator based on the information passed to the Nova CR.

string

true

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

keystoneAuthURL

KeystoneAuthURL - the URL that the nova-scheduler service can use to talk to keystone

string

true

apiDatabaseAccount

APIDatabaseAccount - MariaDBAccount to use when accessing the API DB

string

true

apiDatabaseHostname

APIDatabaseHostname - hostname to use when accessing the API DB

string

true

cell0DatabaseAccount

Cell0DatabaseAccount - MariaDBAccount to use when accessing the cell0 DB

string

true

cell0DatabaseHostname

Cell0DatabaseHostname - hostname to use when accessing the cell0 DB

string

true

serviceAccount

ServiceAccount - service account name used internally to provide Nova services the default SA name

string

true

registeredCells

RegisteredCells is a map keyed by cell names that are registered in the nova_api database with a value that is the hash of the given cell configuration. This is used to detect when a new cell is added or an existing cell is reconfigured to trigger refresh of the in memory cell caches of the service.

map[string]string

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

memcachedInstance

MemcachedInstance is the name of the Memcached CR that all nova service will use.

string

true

+ +
+
+

NovaSchedulerStatus

+
+

NovaSchedulerStatus defines the observed state of NovaScheduler

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run "make" to regenerate code after modifying this file Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

readyCount

ReadyCount defines the number of replicas ready from nova-scheduler

int32

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

NovaSchedulerTemplate

+
+

NovaSchedulerTemplate defines the input parameters specified by the user to create a NovaScheduler via higher level CRDs.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas of the service to run

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting here overrides any global NodeSelector settings within the Nova CR.

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

+ +
+
+

OctaviaAmphoraController

+
+

OctaviaAmphoraController is the Schema for the octaviaworkers API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OctaviaAmphoraControllerSpec

false

status

OctaviaAmphoraControllerStatus

false

+ +
+
+

OctaviaAmphoraControllerList

+
+

OctaviaAmphoraControllerList contains a list of OctaviaWorker

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OctaviaAmphoraController

true

+ +
+
+

OctaviaAmphoraControllerSpec

+
+

OctaviaAmphoraControllerSpec defines common state for all Octavia Amphora Controllers

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Amphora Controller Container Image URL

string

false

+ +
+
+

OctaviaAmphoraControllerSpecCore

+
+

OctaviaAmphoraControllerSpecCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

databaseAccount

DatabaseAccount - name of MariaDBAccount which will be used to connect for the main octavia database

string

true

persistenceDatabaseAccount

PersistenceDatabaseAccount - name of MariaDBAccount which will be used to connect for the persistence database

string

true

databaseHostname

DatabaseHostname - Octavia DB hostname

string

false

serviceUser

ServiceUser - service user name (TODO: beagles, do we need this at all)

string

true

serviceAccount

ServiceAccount - service account name used internally to provide Octavia services the default SA name

string

true

role

Role - the role for the controller (one of worker, housekeeping, healthmanager)

string

true

secret

Secret containing OpenStack password information for octavia OctaviaDatabasePassword, AdminPassword

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the AdminUser password from the Secret

PasswordSelector

false

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf or policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

tenantName

TenantName - the name of the OpenStack tenant that controls the Octavia resources

string

true

lbMgmtNetworkID

string

true

lbSecurityGroupID

string

true

amphoraCustomFlavors

AmphoraCustomFlavors - User-defined flavors for Octavia

[]OctaviaAmphoraFlavor

false

amphoraImageOwnerID

string

false

tls

TLS - Parameters related to the TLS

tls.Ca

false

octaviaProviderSubnetGateway

OctaviaProviderSubnetGateway -

string

true

octaviaProviderSubnetCIDR

OctaviaProviderSubnetCIDR -

string

true

octaviaProviderSubnetExtraCIDRs

OctaviaProviderSubnetExtraCIDRs -

[]string

false

+ +
+
+

OctaviaAmphoraControllerStatus

+
+

OctaviaAmphoraControllerStatus defines the observed state of the Octavia Amphora Controller

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of Octavia Amphora Controllers

int32

false

desiredNumberScheduled

DesiredNumberScheduled - total number of the nodes which should be running Daemon

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachment status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

Octavia

+
+

Octavia is the Schema for the octavia API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OctaviaSpec

false

status

OctaviaStatus

false

+ +
+
+

OctaviaAmphoraFlavor

+
+

OctaviaAmphoraFlavor Settings for custom Amphora flavors

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

string

true

description

string

true

VCPUs

int

true

RAM

int

true

disk

int

true

RxTxFactor

string

true

+ +
+
+

OctaviaLbMgmtNetworks

+
+

OctaviaLbMgmtNetworks Settings for Octavia management networks

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

manageLbMgmtNetworks

ManageLbMgmtNetworks - when True, octavia-operator creates the Neutron resources needed for its Management Network

bool

true

createDefaultLbMgmtNetwork

CreateDefaultLbMgmtNetwork - when True, octavia-operator creates a Management Network for the default Availability Zone of the control plane. Can be set to false when deploying OpenStack in DCN mode.

bool

true

lbMgmtRouterGateway

LbMgmtRouterGateway is the IP address of the Octavia router on the Provider network, it’s optional and used only when the routing informations are not passed through the Network Attachment Definition

string

false

availabilityZones

Availability zones for the octavia management network resources

[]string

false

availabilityZoneCIDRs

AvailabilityZoneCIDRs are the CIDRs of each management network associated with an Availability Zone (ex: {"az":"172.34.0.0/24", …​})

map[string]string

false

+ +
+
+

OctaviaList

+
+

OctaviaList contains a list of Octavia

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Octavia

true

+ +
+
+

OctaviaSpec

+
+

OctaviaSpec defines the desired state of Octavia

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

octaviaAPI

OctaviaAPI - Spec definition for the API service of the Octavia deployment

OctaviaAPISpec

true

octaviaHousekeeping

OctaviaHousekeeping - Spec definition for the Octavia Housekeeping agent for the Octavia deployment

OctaviaAmphoraControllerSpec

true

octaviaHealthManager

OctaviaHousekeeping - Spec definition for the Octavia Housekeeping agent for the Octavia deployment

OctaviaAmphoraControllerSpec

true

octaviaWorker

OctaviaHousekeeping - Spec definition for the Octavia Housekeeping agent for the Octavia deployment

OctaviaAmphoraControllerSpec

true

octaviaRsyslog

OctaviaRsyslog - Spec definition for the Octavia Rsyslog agent for the Octavia deployment

OctaviaRsyslogSpec

true

+ +
+
+

OctaviaSpecBase

+
+

OctaviaSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

databaseAccount

DatabaseAccount - name of MariaDBAccount which will be used to connect for the main octavia database

string

true

persistenceDatabaseAccount

PersistenceDatabaseAccount - name of MariaDBAccount which will be used to connect for the persistence database

string

true

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Octavia

string

true

serviceUser

ServiceUser - service user name

string

true

secret

Secret containing OpenStack password information for octavia’s keystone password; no longer used for database password

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the DB and ServiceUser password from the Secret

PasswordSelector

false

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf or policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

tenantName

TenantName - the name of the OpenStack tenant that controls the Octavia resources

string

true

lbMgmtNetwork

OctaviaLbMgmtNetworks

true

sshPubkey

LoadBalancerSSHPubKey - The name of the ConfigMap containing the pubilc key for connecting to the amphorae via SSH

string

false

sshPrivkeySecret

LoadBalancerSSHPrivKey - The name of the secret that will be used to store the private key for connecting to amphorae via SSH

string

false

amphoraCustomFlavors

AmphoraCustomFlavors - User-defined flavors for Octavia

[]OctaviaAmphoraFlavor

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

amphoraImageContainerImage

Octavia Container Image URL

string

true

apacheContainerImage

Apache Container Image URL

string

true

apiTimeout

Octavia API timeout

int

true

octaviaNetworkAttachment

OctaviaNetworkAttachment is a NetworkAttachment resource name for the Octavia Management Network

string

true

+ +
+
+

OctaviaSpecCore

+
+

OctaviaSpecCore - this version has no containerImages and is used by OpenStackControlplane

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

octaviaAPI

OctaviaAPI - Spec definition for the API service of the Octavia deployment

OctaviaAPISpecCore

true

octaviaHousekeeping

OctaviaHousekeeping - Spec definition for the Octavia Housekeeping agent for the Octavia deployment

OctaviaAmphoraControllerSpecCore

true

octaviaHealthManager

OctaviaHousekeeping - Spec definition for the Octavia Housekeeping agent for the Octavia deployment

OctaviaAmphoraControllerSpecCore

true

octaviaWorker

OctaviaHousekeeping - Spec definition for the Octavia Housekeeping agent for the Octavia deployment

OctaviaAmphoraControllerSpecCore

true

octaviaRsyslog

OctaviaRsyslog - Spec definition for the Octavia Rsyslog agent for the Octavia deployment

OctaviaRsyslogSpecCore

true

+ +
+
+

OctaviaStatus

+
+

OctaviaStatus defines the observed state of Octavia

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

databaseHostname

Octavia Database Hostname

string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

apireadyCount

ReadyCount of octavia API instances

int32

false

workerreadyCount

ReadyCount of octavia Worker instances

int32

false

housekeepingreadyCount

ReadyCount of octavia Housekeeping instances

int32

false

healthmanagerreadyCount

ReadyCount of octavia HealthManager instances

int32

false

rsyslogreadyCount

ReadyCount of octavia Rsyslog instances

int32

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the DB and AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

database

Database - Selector to get the octavia Database user password from the Secret

string

false

service

Service - Selector to get the service user password from the Secret

string

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

OctaviaAPI

+
+

OctaviaAPI is the Schema for the octaviaapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OctaviaAPISpec

false

status

OctaviaAPIStatus

false

+ +
+
+

OctaviaAPIList

+
+

OctaviaAPIList contains a list of OctaviaAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OctaviaAPI

true

+ +
+
+

OctaviaAPISpec

+
+

OctaviaAPISpec defines the desired state of OctaviaAPI

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

Octavia Container Image URL

string

true

+ +
+
+

OctaviaAPISpecCore

+
+

OctaviaAPISpecCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

databaseAccount

DatabaseAccount - name of MariaDBAccount which will be used to connect for the main octavia database

string

true

persistenceDatabaseAccount

PersistenceDatabaseAccount - name of MariaDBAccount which will be used to connect for the persistence database

string

true

databaseHostname

DatabaseHostname - Octavia DB hostname

string

false

serviceUser

ServiceUser - service user name

string

true

serviceAccount

ServiceAccount - service account name used internally to provide Octavia services the default SA name

string

true

replicas

Replicas of octavia API to run

*int32

true

secret

Secret containing OpenStack password information for octavia OctaviaDatabasePassword, AdminPassword

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the DB and ServiceUser password from the Secret

PasswordSelector

false

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

false

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf or policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

tenantName

TenantName - the name of the OpenStack tenant that controls the Octavia resources

string

true

tls

TLS - Parameters related to the TLS

OctaviaApiTLS

false

apiTimeout

APITimeout for HAProxy and Apache defaults to OctaviaSpecCore APITimeout (seconds)

int

true

+ +
+
+

OctaviaAPIStatus

+
+

OctaviaAPIStatus defines the observed state of OctaviaAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of octavia API instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachment status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

OctaviaApiTLS

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

api

API tls type which encapsulates for API services

tls.APIService

false

ovn

Ovn GenericService - holds the secret for the OvnDb client cert

tls.GenericService

false

+ +
+
+

OctaviaRsyslog

+
+

OctaviaRsyslog is the Schema for the octaviaworkers API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OctaviaRsyslogSpec

false

status

OctaviaRsyslogStatus

false

+ +
+
+

OctaviaRsyslogList

+
+

OctaviaRsyslogList contains a list of OctaviaWorker

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OctaviaRsyslog

true

+ +
+
+

OctaviaRsyslogSpec

+
+

OctaviaRsyslogSpec defines common state for all Octavia Amphora Controllers

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Amphora Controller Container Image URL

string

false

+ +
+
+

OctaviaRsyslogSpecCore

+
+

OctaviaRsyslogSpecCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceUser

ServiceUser - service user name (TODO: beagles, do we need this at all)

string

true

serviceAccount

ServiceAccount - service account name used internally to provide Octavia services the default SA name

string

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf or policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

adminLogTargets

AdminLogTargets is a list of OctaviaRsyslogTarget, the admin logs are forwarded to those targets. Use only when forwarding to an external Rsyslog server.

[]OctaviaRsyslogTarget

false

tenantLogTargets

TenantLogTargets is a list of OctaviaRsyslogTarget, the tenant logs are forwarded to those targets. Use only when forwarding to an external Rsyslog server.

[]OctaviaRsyslogTarget

false

+ +
+
+

OctaviaRsyslogStatus

+
+

OctaviaRsyslogStatus defines the observed state of the Octavia Amphora Controller

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of Octavia Amphora Controllers

int32

false

desiredNumberScheduled

DesiredNumberScheduled - total number of the nodes which should be running Daemon

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachment status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

OctaviaRsyslogTarget

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

host

string

true

port

int

true

protocol

string

true

+ +
+
+

CPUCountReq

+
+

CPUCountReq defines a specific hardware request for CPU core count

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

count

int

false

exactMatch

If ExactMatch == false, actual count > Count will match

bool

false

+ +
+
+

CPUMhzReq

+
+

CPUMhzReq defines a specific hardware request for CPU clock speed

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

mhz

int

false

exactMatch

If ExactMatch == false, actual mhz > Mhz will match

bool

false

+ +
+
+

CPUReqs

+
+

CPUReqs defines specific CPU hardware requests

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

arch

Arch is a scalar (string) because it wouldn’t make sense to give it an "exact-match" option Can be either "x86_64" or "ppc64le" if included

string

false

countReq

CPUCountReq

false

mhzReq

CPUMhzReq

false

+ +
+
+

DiskGbReq

+
+

DiskGbReq defines a specific hardware request for disk size

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

gb

int

false

exactMatch

If ExactMatch == false, actual GB > Gb will match

bool

false

+ +
+
+

DiskReqs

+
+

DiskReqs defines specific disk hardware requests

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

gbReq

DiskGbReq

false

ssdReq

SSD is scalar (bool) because it wouldn’t make sense to give it an "exact-match" option

DiskSSDReq

false

+ +
+
+

DiskSSDReq

+
+

DiskSSDReq defines a specific hardware request for disk of type SSD (true) or rotational (false)

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

ssd

bool

false

exactMatch

We only actually care about SSD flag if it is true or ExactMatch is set to true. This second flag is necessary as SSD’s bool zero-value (false) is indistinguishable from it being explicitly set to false

bool

false

+ +
+
+

HardwareReqs

+
+

HardwareReqs defines request hardware attributes for the BaremetalHost replicas

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

cpuReqs

CPUReqs

false

memReqs

MemReqs

false

diskReqs

DiskReqs

false

+ +
+
+

HostStatus

+
+

HostStatus represents the IPStatus and provisioning state + deployment information

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

provisioningState

ProvisioningState

true

annotatedForDeletion

Host annotated for deletion

bool

true

userDataSecretName

string

true

networkDataSecretName

string

true

+ +
+
+

IPStatus

+
+

IPStatus represents the hostname and IP info for a specific host

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hostname

string

true

bmhRef

string

true

ipAddresses

map[string]string

true

+ +
+
+

InstanceSpec

+
+

InstanceSpec Instance specific attributes

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

bmhLabelSelector

BmhLabelSelector allows for the selection of a particular BaremetalHost based on arbitrary labels

map[string]string

false

ctlPlaneIP

CtlPlaneIP - Control Plane IP in CIDR notation

string

false

userData

UserData - Host User Data

*corev1.SecretReference

false

networkData

NetworkData - Host Network Data

*corev1.SecretReference

false

+ +
+
+

MemGbReq

+
+

MemGbReq defines a specific hardware request for memory size

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

gb

int

false

exactMatch

If ExactMatch == false, actual GB > Gb will match

bool

false

+ +
+
+

MemReqs

+
+

MemReqs defines specific memory hardware requests

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

gbReq

MemGbReq

false

+ +
+
+

OpenStackBaremetalSet

+
+

OpenStackBaremetalSet is the Schema for the openstackbaremetalsets API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OpenStackBaremetalSetSpec

false

status

OpenStackBaremetalSetStatus

false

+ +
+
+

OpenStackBaremetalSetList

+
+

OpenStackBaremetalSetList contains a list of OpenStackBaremetalSet

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OpenStackBaremetalSet

true

+ +
+
+

OpenStackBaremetalSetSpec

+
+

OpenStackBaremetalSetSpec defines the desired state of OpenStackBaremetalSet

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

baremetalHosts

BaremetalHosts - Map of hostname to Instance Spec for all nodes to provision

map[string]InstanceSpec

false

osImage

OSImage - OS qcow2 image Name

string

false

osContainerImageUrl

OSContainerImageURL - Container image URL for init with the OS qcow2 image (osImage)

string

false

apacheImageUrl

ApacheImageURL - Container image URL for the main container that serves the downloaded OS qcow2 image (osImage)

string

false

agentImageUrl

AgentImageURL - Container image URL for the sidecar container that discovers provisioning network IPs

string

false

automatedCleaningMode

When set to disabled, automated cleaning will be avoided during provisioning and deprovisioning.

AutomatedCleaningMode

false

provisionServerName

ProvisionServerName - Optional. Existing OpenStackProvisionServer to use, else one would be created.

string

false

provisionServerNodeSelector

ProvisonServerNodeSelector to target subset of worker nodes running provision server

map[string]string

false

provisioningInterface

ProvisioningInterface - Optional. If not provided along with ProvisionServerName, it would be discovered from CBO. This is the provisioning interface on the OCP masters/workers.

string

false

deploymentSSHSecret

DeploymentSSHSecret - Name of secret holding the cloud-admin ssh keys

string

true

ctlplaneInterface

CtlplaneInterface - Interface on the provisioned nodes to use for ctlplane network

string

true

ctlplaneGateway

CtlplaneGateway - IP of gateway for ctrlplane network (TODO: acquire this is another manner?)

string

false

ctlplaneNetmask

CtlplaneNetmask - Netmask to use for ctlplane network (TODO: acquire this is another manner?)

string

false

bmhNamespace

BmhNamespace Namespace to look for BaremetalHosts(default: openshift-machine-api)

string

false

bmhLabelSelector

BmhLabelSelector allows for a sub-selection of BaremetalHosts based on arbitrary labels

map[string]string

false

hardwareReqs

Hardware requests for sub-selection of BaremetalHosts with certain hardware specs

HardwareReqs

false

passwordSecret

PasswordSecret the name of the secret used to optionally set the root pwd by adding NodeRootPassword: to the secret data

*corev1.SecretReference

false

cloudUserName

CloudUser to be configured for remote access

string

true

domainName

DomainName is the domain name that will be set on the underlying Metal3 BaremetalHosts (TODO: acquire this is another manner?)

string

false

bootstrapDns

BootstrapDNS - initial DNS nameserver values to set on the BaremetalHosts when they are provisioned. Note that subsequent deployment will overwrite these values

[]string

false

dnsSearchDomains

DNSSearchDomains - initial DNS nameserver values to set on the BaremetalHosts when they are provisioned. Note that subsequent deployment will overwrite these values

[]string

false

+ +
+
+

OpenStackBaremetalSetStatus

+
+

OpenStackBaremetalSetStatus defines the observed state of OpenStackBaremetalSet

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

hash

Map of hashes to track e.g. job status

map[string]string

false

baremetalHosts

BaremetalHosts that are being processed or have been processed for this OpenStackBaremetalSet

map[string]HostStatus

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

OpenStackProvisionServer

+
+

OpenStackProvisionServer used to serve custom images for baremetal provisioning with Metal3

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OpenStackProvisionServerSpec

false

status

OpenStackProvisionServerStatus

false

+ +
+
+

OpenStackProvisionServerDefaults

+
+

OpenStackProvisionServerDefaults -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

OSContainerImageURL

string

false

AgentImageURL

string

false

ApacheImageURL

string

false

OSImage

string

false

+ +
+
+

OpenStackProvisionServerList

+
+

OpenStackProvisionServerList contains a list of OpenStackProvisionServer

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OpenStackProvisionServer

true

+ +
+
+

OpenStackProvisionServerSpec

+
+

OpenStackProvisionServerSpec defines the desired state of OpenStackProvisionServer

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

port

Port - The port on which the Apache server should listen

int32

false

interface

Interface - An optional interface to use instead of the cluster’s default provisioning interface (if any)

string

false

osImage

OSImage - OS qcow2 image (compressed as gz, or uncompressed)

string

true

osImageDir

OSImageDir - Directory on the container which holds the OS qcow2 image and checksum

*string

true

osContainerImageUrl

OSContainerImageURL - Container image URL for init with the OS qcow2 image (osImage)

string

true

apacheImageUrl

ApacheImageURL - Container image URL for the main container that serves the downloaded OS qcow2 image (osImage)

string

true

agentImageUrl

AgentImageURL - Container image URL for the sidecar container that discovers provisioning network IPs

string

true

nodeSelector

NodeSelector to target subset of worker nodes running this provision server

map[string]string

false

resources

Resources - Compute Resources required by this provision server (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

+ +
+
+

OpenStackProvisionServerStatus

+
+

OpenStackProvisionServerStatus defines the observed state of OpenStackProvisionServer

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of provision server Apache instances

int32

false

conditions

Conditions

condition.Conditions

false

hash

Map of hashes to track e.g. job status

map[string]string

false

provisionIp

IP of the provisioning interface on the node running the ProvisionServer pod

string

false

localImageUrl

URL of provisioning image on underlying Apache web server

string

false

osImageChecksumFilename

Filename of OSImage checksum

string

false

osImageChecksumType

OSImage checksum type

metal3v1.ChecksumType

false

localImageChecksumUrl

URL of provisioning image checksum on underlying Apache web server

string

false

+ +
+
+

OVNController

+
+

OVNController is the Schema for the ovncontrollers API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OVNControllerSpec

false

status

OVNControllerStatus

false

+ +
+
+

OVNControllerList

+
+

OVNControllerList contains a list of OVNController

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OVNController

true

+ +
+
+

OVNControllerSpec

+
+

OVNControllerSpec defines the desired state of OVNController

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

ovsContainerImage

Image used for the ovsdb-server and ovs-vswitchd containers (will be set to environmental default if empty)

string

true

ovnContainerImage

Image used for the ovn-controller container (will be set to environmental default if empty)

string

true

+ +
+
+

OVNControllerSpecCore

+
+

OVNControllerSpecCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

external-ids

OVSExternalIDs

true

nicMappings

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

networkAttachment

NetworkAttachment is a NetworkAttachment resource name to expose the service to the given network. If specified the IP address of this network is used as the OVNEncapIP.

string

true

tls

TLS - Parameters related to TLS

tls.SimpleService

false

+ +
+
+

OVNControllerStatus

+
+

OVNControllerStatus defines the observed state of OVNController

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

numberReady

NumberReady of the OVNController instances

int32

false

ovsNumberReady

ovsNumberReady of ovs instances

int32

false

desiredNumberScheduled

DesiredNumberScheduled - total number of the nodes which should be running Daemon

int32

false

conditions

Conditions

condition.Conditions

false

hash

Map of hashes to track e.g. job status

map[string]string

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes.

int64

false

+ +
+
+

OVSExternalIDs

+
+

OVSExternalIDs is a set of configuration options for OVS external-ids table

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

system-id

string

false

ovn-bridge

string

false

ovn-encap-type

string

false

availability-zones

[]string

false

enable-chassis-as-gateway

*bool

true

+ +
+
+

OVNDBCluster

+
+

OVNDBCluster is the Schema for the ovndbclusters API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OVNDBClusterSpec

false

status

OVNDBClusterStatus

false

+ +
+
+

OVNDBClusterList

+
+

OVNDBClusterList contains a list of OVNDBCluster

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OVNDBCluster

true

+ +
+
+

OVNDBClusterOverrideSpec

+
+

OVNDBClusterOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster.

*service.OverrideSpec

false

+ +
+
+

OVNDBClusterSpec

+
+

OVNDBClusterSpec defines the desired state of OVNDBCluster

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

OVNDBClusterSpecCore

+
+

OVNDBClusterSpecCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

dbType

DBType - NB or SB

string

true

replicas

Replicas of OVN DBCluster to run

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

logLevel

LogLevel - Set log level info, dbg, emer etc

string

false

electionTimer

OVN Northbound and Southbound RAFT db election timer to use on db creation (in milliseconds)

int32

true

inactivityProbe

Probe interval for the OVSDB session (in milliseconds)

int32

true

probeIntervalToActive

Active probe interval from standby to active ovsdb-server remote

int32

true

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

storageClass

StorageClass

string

false

storageRequest

StorageRequest

string

true

networkAttachment

NetworkAttachment is a NetworkAttachment resource name to expose the service to the given network. If specified the IP address of this network is used as the dbAddress connection.

string

true

tls

TLS - Parameters related to TLS

tls.SimpleService

false

override

Override, provides the ability to override the generated manifest of several child resources.

OVNDBClusterOverrideSpec

false

+ +
+
+

OVNDBClusterStatus

+
+

OVNDBClusterStatus defines the observed state of OVNDBCluster

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of OVN DBCluster instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

dbAddress

DBAddress - DB IP address used by external nodes

string

false

internalDbAddress

InternalDBAddress - DB IP address used by other Pods in the cluster

string

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes.

int64

false

+ +
+
+

OVNNorthd

+
+

OVNNorthd is the Schema for the ovnnorthds API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OVNNorthdSpec

false

status

OVNNorthdStatus

false

+ +
+
+

OVNNorthdList

+
+

OVNNorthdList contains a list of OVNNorthd

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OVNNorthd

true

+ +
+
+

OVNNorthdSpec

+
+

OVNNorthdSpec defines the desired state of OVNNorthd

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

ContainerImage - Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

OVNNorthdSpecCore

+
+

OVNNorthdSpecCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas of OVN Northd to run

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

logLevel

LogLevel - Set log level info, dbg, emer etc

string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

tls

TLS - Parameters related to TLS

tls.SimpleService

false

nThreads

NThreads sets number of threads used for building logical flows

*int32

true

+ +
+
+

OVNNorthdStatus

+
+

OVNNorthdStatus defines the observed state of OVNNorthd

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of OVN Northd instances

int32

false

conditions

Conditions

condition.Conditions

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes.

int64

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the DB and AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the service user password from the Secret

string

true

+ +
+
+

PlacementAPI

+
+

PlacementAPI is the Schema for the placementapis API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

PlacementAPISpec

false

status

PlacementAPIStatus

false

+ +
+
+

PlacementAPIList

+
+

PlacementAPIList contains a list of PlacementAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]PlacementAPI

true

+ +
+
+

PlacementAPISpec

+
+

PlacementAPISpec defines the desired state of PlacementAPI

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

PlacementAPI Container Image URL (will be set to environmental default if empty)

string

true

+ +
+
+

PlacementAPISpecCore

+
+

PlacementAPISpecCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

databaseAccount

DatabaseAccount - name of MariaDBAccount which will be used to connect.

string

true

replicas

Replicas of placement API to run

*int32

true

secret

Secret containing OpenStack password information for placement PlacementPassword

string

true

passwordSelectors

PasswordSelectors - Selectors to identify the DB and ServiceUser password from the Secret

PasswordSelector

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

true

defaultConfigOverwrite

DefaultConfigOverwrite - interface to overwrite default config files like policy.yaml.

map[string]string

false

resources

Resources - Compute Resources required by this service (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

corev1.ResourceRequirements

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

tls

TLS - Parameters related to the TLS

tls.API

false

+ +
+
+

PlacementAPIStatus

+
+

PlacementAPIStatus defines the observed state of PlacementAPI

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of placement API instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

databaseHostname

Placement Database Hostname

string

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes.

int64

false

+ +
+
+

Swift

+
+

Swift is the Schema for the swifts API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

SwiftSpec

false

status

SwiftStatus

false

+ +
+
+

SwiftList

+
+

SwiftList contains a list of Swift

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Swift

true

+ +
+
+

SwiftSpec

+
+

SwiftSpec defines the desired state of Swift

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

swiftRing

SwiftRing - Spec definition for the Ring service of this Swift deployment

SwiftRingSpec

true

swiftStorage

SwiftStorage - Spec definition for the Storage service of this Swift deployment

SwiftStorageSpec

true

swiftProxy

SwiftProxy - Spec definition for the Proxy service of this Swift deployment

SwiftProxySpec

true

+ +
+
+

SwiftSpecBase

+
+

SwiftSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

storageClass

Storage class. This is passed to SwiftStorage unless storageClass is explicitly set for the SwiftStorage.

string

true

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

memcachedInstance

Memcached instance name.

string

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

+ +
+
+

SwiftSpecCore

+
+

SwiftSpecCore defines the desired state of Swift (this version is used by OpenStackControlplane)

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

swiftRing

SwiftRing - Spec definition for the Ring service of this Swift deployment

SwiftRingSpecCore

true

swiftStorage

SwiftStorage - Spec definition for the Storage service of this Swift deployment

SwiftStorageSpecCore

true

swiftProxy

SwiftProxy - Spec definition for the Proxy service of this Swift deployment

SwiftProxySpecCore

true

+ +
+
+

SwiftStatus

+
+

SwiftStatus defines the observed state of Swift

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

PasswordSelector

+
+

PasswordSelector to identify the AdminUser password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Service - Selector to get the Swift service password from the Secret

string

true

+ +
+
+

ProxyOverrideSpec

+
+

ProxyOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

SwiftProxy

+
+

SwiftProxy is the Schema for the swiftproxies API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

SwiftProxySpec

false

status

SwiftProxyStatus

false

+ +
+
+

SwiftProxyList

+
+

SwiftProxyList contains a list of SwiftProxy

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]SwiftProxy

true

+ +
+
+

SwiftProxySpec

+
+

SwiftProxySpec defines the desired state of SwiftProxy

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImageProxy

Swift Proxy Container Image URL

string

true

+ +
+
+

SwiftProxySpecCore

+
+

SwiftProxySpecCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas of Swift Proxy

*int32

true

serviceUser

ServiceUser - optional username used for this service to register in Swift

string

true

secret

Secret containing OpenStack password information for Swift service user password

string

true

passwordSelectors

PasswordSelector - Selector to choose the Swift user password from the Secret

PasswordSelector

true

override

Override, provides the ability to override the generated manifest of several child resources.

ProxyOverrideSpec

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

memcachedInstance

Memcached instance name.

string

true

rabbitMqClusterName

RabbitMQ instance name to request a transportURL for Ceilometer middleware

string

true

tls

TLS - Parameters related to the TLS

tls.API

false

defaultConfigOverwrite

DefaultConfigOverwrite - can be used to add additionalfiles. Those get added to the service config dir in /etc/-conf.d

map[string]string

false

encryptionEnabled

Encrypts new objects at rest

bool

true

ceilometerEnabled

Enables ceilometer in the swift proxy and creates required resources

bool

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

+ +
+
+

SwiftProxyStatus

+
+

SwiftProxyStatus defines the observed state of SwiftProxy

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of SwiftProxy instances

int32

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

hash

Map of hashes to track e.g. job status

map[string]string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

SwiftDisk

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

device

string

true

path

string

true

weight

int32

true

region

int32

true

zone

int32

true

+ +
+
+

SwiftRing

+
+

SwiftRing is the Schema for the swiftrings API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

SwiftRingSpec

false

status

SwiftRingStatus

false

+ +
+
+

SwiftRingList

+
+

SwiftRingList contains a list of SwiftRing

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]SwiftRing

true

+ +
+
+

SwiftRingSpec

+
+

SwiftRingSpec defines the desired state of SwiftRing

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

Image URL for Swift proxy service

string

true

+ +
+
+

SwiftRingSpecCore

+
+

SwiftRingSpec defines the desired state of SwiftRing

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

ringReplicas

Number of Swift data replicas (=copies)

*int64

true

partPower

Partition power of the Swift rings

*int64

true

minPartHours

Minimum number of hours to restrict moving a partition more than once

*int64

true

tls

TLS - Parameters related to the TLS

tls.Ca

false

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

+ +
+
+

SwiftRingStatus

+
+

SwiftRingStatus defines the observed state of SwiftRing

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

hash

Map of hashes to track e.g. job status

map[string]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

SwiftStorage

+
+

SwiftStorage is the Schema for the swiftstorages API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

SwiftStorageSpec

false

status

SwiftStorageStatus

false

+ +
+
+

SwiftStorageList

+
+

SwiftStorageList contains a list of SwiftStorage

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]SwiftStorage

true

+ +
+
+

SwiftStorageSpec

+
+

SwiftStorageSpec defines the desired state of SwiftStorage

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImageAccount

Image URL for Swift account service

string

true

containerImageContainer

Image URL for Swift container service

string

true

containerImageObject

Image URL for Swift object service

string

true

containerImageProxy

Image URL for Swift proxy service

string

true

+ +
+
+

SwiftStorageSpecCore

+
+

SwiftStorageSpecCore -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

*int32

true

storageClass

Name of StorageClass to use for Swift PVs

string

true

storageRequest

Minimum size for Swift PVs

string

true

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to expose the services to the given network

[]string

false

memcachedInstance

Memcached instance name.

string

true

containerSharderEnabled

If the container sharder daemon is enabled.

bool

true

defaultConfigOverwrite

DefaultConfigOverwrite - can be used to add additionalfiles. Those get added to the service config dir in /etc/-conf.d

map[string]string

false

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

+ +
+
+

SwiftStorageStatus

+
+

SwiftStorageStatus defines the observed state of SwiftStorage

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of SwiftStorage instances

int32

false

conditions

Conditions

condition.Conditions

false

networkAttachments

NetworkAttachments status of the deployment pods

map[string][]string

false

hash

Map of hashes to track e.g. job status

map[string]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

APIOverrideSpec

+
+

APIOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster. The key must be the endpoint type (public, internal)

map[service.Endpoint]service.RoutedOverrideSpec

false

+ +
+
+

Aodh

+
+

Aodh defines the aodh component spec

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

apiImage

string

true

evaluatorImage

string

true

notifierImage

string

true

listenerImage

string

true

+ +
+
+

AodhCore

+
+

Aodh defines the aodh component spec

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

apiTimeout

APITimeout for Route and Apache

int

true

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Aodh

string

false

databaseInstance

MariaDB instance name Right now required by the maridb-operator to get the credentials from the instance to create the DB Might not be required in future

string

true

databaseAccount

DatabaseAccount - optional MariaDBAccount CR name used for aodh DB, defaults to aodh

string

true

passwordSelector

PasswordSelectors - Selectors to identify the service from the Secret

PasswordsSelector

false

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

secret

Secret containing OpenStack password information for aodh

string

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf or policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

networkAttachmentDefinitions

NetworkAttachmentDefinitions list of network attachment definitions the service pod gets attached to

[]string

false

override

Override, provides the ability to override the generated manifest of several child resources.

APIOverrideSpec

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs

bool

true

memcachedInstance

Memcached instance name.

string

true

tls

TLS - Parameters related to the TLS

tls.API

false

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

+ +
+
+

Autoscaling

+
+

Autoscaling is the Schema for the autoscalings API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

AutoscalingSpec

false

status

AutoscalingStatus

false

+ +
+
+

AutoscalingList

+
+

AutoscalingList contains a list of Autoscaling

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Autoscaling

true

+ +
+
+

AutoscalingSpec

+
+

AutoscalingSpec defines the desired state of Autoscaling

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

aodh

Aodh spec

Aodh

false

+ +
+
+

AutoscalingSpecBase

+
+

AutoscalingSpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

prometheusHost

Host of user deployed prometheus

string

false

prometheusPort

Port of user deployed prometheus

int32

false

prometheusTLSCaCertSecret

If defined, specifies which CA certificate to use for user deployed prometheus

*corev1.SecretKeySelector

false

heatInstance

Heat instance name.

string

true

+ +
+
+

AutoscalingSpecCore

+
+

AutoscalingSpecCore defines the desired state of Autoscaling (this version is used by the OpenStackControlplane no image parameters)

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

aodh

Aodh spec

AodhCore

false

+ +
+
+

AutoscalingStatus

+
+

AutoscalingStatus defines the observed state of Autoscaling

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of autoscaling instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

networks

Networks in addtion to the cluster network, the service is attached to

[]string

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

databaseHostname

DatabaseHostname - Hostname for the database

string

false

prometheusHostname

PrometheusHost - Hostname for prometheus used for autoscaling

string

false

prometheusPort

PrometheusPort - Port for prometheus used for autoscaling

int32

false

prometheusTLS

PrometheusTLS - Determines if TLS should be used for accessing prometheus

bool

false

apiEndpoint

API endpoint

map[string]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

Ceilometer

+
+

Ceilometer is the Schema for the ceilometers API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

CeilometerSpec

false

status

CeilometerStatus

false

ksmStatus

KSMStatus

false

+ +
+
+

CeilometerList

+
+

CeilometerList contains a list of Ceilometer

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Ceilometer

true

+ +
+
+

CeilometerSpec

+
+

CeilometerSpec defines the desired state of Ceilometer

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

centralImage

string

true

notificationImage

string

true

sgCoreImage

string

true

computeImage

string

true

ipmiImage

string

true

proxyImage

string

true

ksmImage

string

true

mysqldExporterImage

string

true

+ +
+
+

CeilometerSpecCore

+
+

CeilometerSpecCore defines the desired state of Ceilometer. This version is used by the OpenStackControlplane (no image parameters)

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

apiTimeout

APITimeout for Apache

int

true

rabbitMqClusterName

RabbitMQ instance name Needed to request a transportURL that is created and used in Telemetry

string

false

passwordSelector

PasswordSelectors - Selectors to identify the service from the Secret

PasswordsSelector

false

serviceUser

ServiceUser - optional username used for this service to register in keystone

string

true

secret

Secret containing OpenStack password information for ceilometer

string

true

customServiceConfig

CustomServiceConfig - customize the service config using this parameter to change service defaults, or overwrite rendered information using raw OpenStack config format. The content gets added to to /etc//.conf.d directory as custom.conf file.

string

false

defaultConfigOverwrite

ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf or policy.json. But can also be used to add additional files. Those get added to the service config dir in /etc/.

map[string]string

false

networkAttachmentDefinitions

NetworkAttachmentDefinitions list of network attachment definitions the service pod gets attached to

[]string

false

mysqldExporterEnabled

Whether mysqld_exporter should be deployed

*bool

false

mysqldExporterDatabaseAccountPrefix

MysqldExporterDatabaseAccountPrefix - Database account prefix for the mysqld-exporter. A mariadbaccount CR named "-\" for each galera instance needs to be either created by the user or if it’s missing, it’ll be created by the telemetry-operator automatically.

string

false

tls

TLS - Parameters related to the TLS

tls.SimpleService

false

ksmTls

KSMTLS - Parameters related to the TLS for kube-state-metrics

tls.SimpleService

false

mysqldExporterTLS

MysqldExporterTLS - Parameters related to the TLS for mysqld_exporter

tls.SimpleService

false

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

+ +
+
+

CeilometerStatus

+
+

CeilometerStatus defines the observed state of Ceilometer

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of ceilometer instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

transportURLSecret

TransportURLSecret - Secret containing RabbitMQ transportURL

string

false

networks

Networks in addtion to the cluster network, the service is attached to

[]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

mysqldExporterReadyCount

ReadyCount of mysqld_exporter instances

int32

false

mysqldExporterHash

Map of hashes to track e.g. job status

map[string]string

false

mysqldExporterExportedGaleras

List of galera CRs, which are being exported with mysqld_exporter

[]string

false

+ +
+
+

KSMStatus

+
+

KSMStatus defines the observed state of kube-state-metrics

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

readyCount

ReadyCount of ksm instances

int32

false

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

Logging

+
+

Logging is the Schema for the loggings API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

LoggingSpec

false

status

LoggingStatus

false

+ +
+
+

LoggingList

+
+

LoggingList contains a list of Logging

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Logging

true

+ +
+
+

LoggingSpec

+
+

LoggingSpec defines the desired state of Logging

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

port

Port is the port where the service will listen on

int32

true

targetPort

TargetPort is the port where the logging syslog receiver is listening

int

true

cloNamespace

CLONamespace points to the namespace where the cluster-logging-operator is deployed

string

true

annotations

Annotations is a way to configure certain LoadBalancers, like MetalLB

map[string]string

true

rsyslogRetries

The number of retries rsyslog will attempt before abandoning

int32

true

rsyslogQueueType

The type of the local queue of logs

string

true

rsyslogQueueSize

The size of the local queue of logs

int32

true

+ +
+
+

LoggingStatus

+
+

LoggingStatus defines the observed state of Logging

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

MetricStorage

+
+

MetricStorage is the Schema for the metricstorages API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

MetricStorageSpec

false

status

MetricStorageStatus

false

+ +
+
+

MetricStorageList

+
+

MetricStorageList contains a list of MetricStorage

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]MetricStorage

true

+ +
+
+

MetricStorageSpec

+
+

MetricStorageSpec defines the desired state of MetricStorage

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

dashboardsEnabled

DashboardsEnabled allows to enable or disable dashboards and related artifacts

bool

true

dataplaneNetwork

DataplaneNetwork defines the network that will be used to scrape dataplane node_exporter endpoints

*infranetworkv1.NetNameStr

true

monitoringStack

MonitoringStack allows to define a metric storage with options supported by Red Hat

*MonitoringStack

false

customMonitoringStack

CustomMonitoringStack allows to deploy a custom monitoring stack when the options in "MonitoringStack" aren’t enough

*obov1.MonitoringStackSpec

false

prometheusTls

TLS - Parameters related to the TLS

tls.SimpleService

false

+ +
+
+

MetricStorageStatus

+
+

MetricStorageStatus defines the observed state of MetricStorage

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

condition.Conditions

false

prometheusTLSPatched

bool

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

MonitoringStack

+
+

MonitoringStack defines the options for a Red Hat supported metric storage

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

alertingEnabled

AlertingEnabled allows to enable or disable alertmanager

bool

true

scrapeInterval

ScrapeInterval sets the interval between scrapes

string

true

storage

Storage allows to define options for how to store metrics

Storage

true

+ +
+
+

PersistentStorage

+
+

PersistentStorage defines storage options used for persistent storage

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

pvcStorageRequest

PvcStorageRequest The amount of storage to request in PVC

string

true

pvcStorageSelector

PvcStorageSelector The Label selector to specify in PVCs

metav1.LabelSelector

false

pvcStorageClass

PvcStorageClass The storage class to use for storing metrics

string

false

+ +
+
+

Storage

+
+

Storage defines the options used for storage of metrics

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

strategy

Strategy to use for storage. Can be "persistent", "ephemeral" or empty, in which case a COO default is used

string

true

retention

Retention time for metrics

string

true

persistent

Used to specify the options of persistent storage when strategy = "persistent"

*PersistentStorage

false

+ +
+
+

AutoscalingSection

+
+

AutoscalingSection defines the desired state of the autoscaling service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether OpenStack autoscaling service should be deployed and managed

*bool

true

+ +
+
+

AutoscalingSectionCore

+
+

AutoscalingSectionCore defines the desired state of the autoscaling service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether OpenStack autoscaling service should be deployed and managed

*bool

true

+ +
+
+

CeilometerSection

+
+

CeilometerSection defines the desired state of the ceilometer service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether OpenStack Ceilometer service should be deployed and managed

*bool

true

+ +
+
+

CeilometerSectionCore

+
+

CeilometerSectionCore defines the desired state of the ceilometer service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether OpenStack Ceilometer service should be deployed and managed

*bool

true

+ +
+
+

LoggingSection

+
+

LoggingSection defines the desired state of the logging service

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether OpenStack logging service should be deployed and managed

*bool

true

+ +
+
+

MetricStorageSection

+
+

MetricStorageSection defines the desired state of the MetricStorage

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

enabled

Enabled - Whether a MetricStorage should be deployed and managed

*bool

true

+ +
+
+

PasswordsSelector

+
+

PasswordsSelector to identify the Service password from the Secret

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

ceilometerService

CeilometerService - Selector to get the ceilometer service password from the Secret

string

true

aodhService

AodhService - Selector to get the aodh service password from the Secret

string

true

+ +
+
+

Telemetry

+
+

Telemetry is the Schema for the telemetry API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

TelemetrySpec

false

status

TelemetryStatus

false

+ +
+
+

TelemetryList

+
+

TelemetryList contains a list of Telemetry

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Telemetry

true

+ +
+
+

TelemetrySpec

+
+

TelemetrySpec defines the desired state of Telemetry

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

autoscaling

Autoscaling - Parameters related to the autoscaling service

AutoscalingSection

false

ceilometer

Ceilometer - Parameters related to the ceilometer service

CeilometerSection

false

+ +
+
+

TelemetrySpecBase

+
+

TelemetrySpecBase -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metricStorage

MetricStorage - Parameters related to the metricStorage

MetricStorageSection

false

logging

Logging - Parameters related to the logging

LoggingSection

false

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

+ +
+
+

TelemetrySpecCore

+
+

TelemetrySpecCore defines the desired state of Telemetry. This version has no image parameters and is used by OpenStackControlplane

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

autoscaling

Autoscaling - Parameters related to the autoscaling service

AutoscalingSectionCore

false

ceilometer

Ceilometer - Parameters related to the ceilometer service

CeilometerSectionCore

false

+ +
+
+

TelemetryStatus

+
+

TelemetryStatus defines the observed state of Telemetry

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track e.g. job status

map[string]string

false

conditions

Conditions

condition.Conditions

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the openstack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

Memcached

+
+

Memcached is the Schema for the memcacheds API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

MemcachedSpec

false

status

MemcachedStatus

false

+ +
+
+

MemcachedList

+
+

MemcachedList contains a list of Memcached

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Memcached

true

+ +
+
+

MemcachedSpec

+
+

MemcachedSpec defines the desired state of Memcached

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

Name of the memcached container image to run (will be set to environmental default if empty)

string

true

+ +
+
+

MemcachedSpecCore

+
+

MemcachedSpecCore - this version is used by the OpenStackControlplane CR (no container images)

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Size of the memcached cluster

*int32

true

nodeSelector

NodeSelector to target subset of worker nodes running this service

*map[string]string

false

tls

TLS settings for memcached service

tls.SimpleService

false

+ +
+
+

MemcachedStatus

+
+

MemcachedStatus defines the observed state of Memcached

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hash

Map of hashes to track input changes

map[string]string

false

readyCount

ReadyCount of Memcached instances

int32

false

conditions

Conditions

condition.Conditions

false

serverList

ServerList - List of memcached endpoints without inet(6) prefix

[]string

false

serverListWithInet

ServerListWithInet - List of memcached endpoints with inet(6) prefix

[]string

false

tlsSupport

Whether TLS is supported by the memcached instance

bool

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

BGPConfiguration

+
+

BGPConfiguration is the Schema for the bgpconfigurations API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

BGPConfigurationSpec

false

status

BGPConfigurationStatus

false

+ +
+
+

BGPConfigurationList

+
+

BGPConfigurationList contains a list of BGPConfiguration

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]BGPConfiguration

true

+ +
+
+

BGPConfigurationSpec

+
+

BGPConfigurationSpec defines the desired state of BGPConfiguration

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

frrConfigurationNamespace

FRRConfigurationNamespace - namespace where to create the FRRConfiguration. Defaults to metallb-system.

string

true

frrNodeConfigurationSelector

FRRNodeConfigurationSelector - per default the FRRConfiguration per node within the FRRConfigurationNamespace gets queried using the FRRConfiguration.spec.NodeSelector kubernetes.io/hostname: worker-0. In case a more specific

[]FRRNodeConfigurationSelectorType

false

+ +
+
+

BGPConfigurationStatus

+
+

BGPConfigurationStatus defines the observed state of BGPConfiguration

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

+ +
+
+

FRRNodeConfigurationSelectorType

+
+

FRRNodeConfigurationSelectorType -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

frrConfigurationNamespace

NodeName - name of the node object as seen by running the oc get nodes command

string

false

nodeSelector

NodeSelector to identify the correct FRRConfiguration from spec.nodeSelector

metav1.LabelSelector

false

+ +
+
+

DNSData

+
+

DNSData is the Schema for the dnsdata API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

DNSDataSpec

false

status

DNSDataStatus

false

+ +
+
+

DNSDataList

+
+

DNSDataList contains a list of DNSData

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]DNSData

true

+ +
+
+

DNSDataSpec

+
+

DNSDataSpec defines the desired state of DNSData

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

hosts

[]DNSHost

false

dnsDataLabelSelectorValue

Value of the DNSDataLabelSelector to set on the created configmaps containing hosts information

string

true

+ +
+
+

DNSDataStatus

+
+

DNSDataStatus defines the observed state of DNSData

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

hash

Map of the dns data configmap

string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

DNSHost

+
+

DNSHost holds the mapping between IP and hostnames that will be added to dnsmasq hosts file.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

ip

IP address of the host file entry.

string

true

hostnames

Hostnames for the IP address.

[]string

true

+ +
+
+

DNSMasq

+
+

DNSMasq is the Schema for the dnsmasqs API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

DNSMasqSpec

false

status

DNSMasqStatus

false

+ +
+
+

DNSMasqList

+
+

DNSMasqList contains a list of DNSMasq

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]DNSMasq

true

+ +
+
+

DNSMasqOption

+
+

DNSMasqOption defines allowed options for dnsmasq

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

key

string

true

values

[]string

true

+ +
+
+

DNSMasqOverrideSpec

+
+

DNSMasqOverrideSpec to override the generated manifest of several child resources.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

service

Override configuration for the Service created to serve traffic to the cluster.

*service.OverrideSpec

false

+ +
+
+

DNSMasqSpec

+
+

DNSMasqSpec defines the desired state of DNSMasq

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

containerImage

DNSMasq Container Image URL

string

true

+ +
+
+

DNSMasqSpecCore

+
+

DNSMasqSpecCore - this version is used by the OpenStackControlplane CR (no container images)

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

replicas

Replicas - DNSMasq Replicas

*int32

true

options

Options allows to customize the dnsmasq instance

[]DNSMasqOption

false

nodeSelector

NodeSelector to target subset of worker nodes running this service. Setting NodeSelector here acts as a default value and can be overridden by service specific NodeSelector Settings.

*map[string]string

false

dnsDataLabelSelectorValue

Value of the DNSDataLabelSelectorKey which was set on the configmaps containing hosts information

string

true

override

Override, provides the ability to override the generated manifest of several child resources.

DNSMasqOverrideSpec

false

+ +
+
+

DNSMasqStatus

+
+

DNSMasqStatus defines the observed state of DNSMasq

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

hash

Map of hashes to track e.g. job status

map[string]string

false

readyCount

ReadyCount of dnsmasq deployment

int32

false

dnsAddresses

DNSServer Addresses

[]string

false

dnsClusterAddresses

DNSServer Cluster Addresses

[]string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

IPSet

+
+

IPSet is the Schema for the ipsets API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

IPSetSpec

false

status

IPSetStatus

false

+ +
+
+

IPSetList

+
+

IPSetList contains a list of IPSet

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]IPSet

true

+ +
+
+

IPSetNetwork

+
+

IPSetNetwork Type

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

Network Name

NetNameStr

true

subnetName

Subnet Name

NetNameStr

true

fixedIP

Fixed Ip

*string

false

defaultRoute

Use gateway from subnet as default route. There can only be one default route defined per IPSet.

*bool

false

+ +
+
+

IPSetReservation

+
+

IPSetReservation defines reservation status per requested network

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

network

Network name

NetNameStr

true

subnet

Subnet name

NetNameStr

true

address

Address contains the IP address

string

true

mtu

MTU of the network

int

false

cidr

Cidr the cidr to use for this network

string

false

vlan

Vlan ID

*int

false

gateway

Gateway optional gateway for the network

*string

false

routes

Routes, list of networks that should be routed via network gateway.

[]Route

false

dnsDomain

DNSDomain of the subnet

string

true

serviceNetwork

ServiceNetwork mapping

ServiceNetNameStr

true

+ +
+
+

IPSetSpec

+
+

IPSetSpec defines the desired state of IPSet

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

immutable

Immutable, if true the validation webhook will block any update to the Spec, except of Spec.Immutable. This allows the caller to add safety mechanism to the object. If a change is required to the object, an extra update needs to be done to make updates possible.

bool

true

networks

Networks used to request IPs for

[]IPSetNetwork

true

+ +
+
+

IPSetStatus

+
+

IPSetStatus defines the observed state of IPSet

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

reservations

Reservation

[]IPSetReservation

false

conditions

Conditions

condition.Conditions

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+

AllocationRange

+
+

AllocationRange definition

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

start

Start IP for the AllocationRange

string

true

end

End IP for the AllocationRange

string

true

+ +
+
+

NetConfig

+
+

NetConfig is the Schema for the netconfigs API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

NetConfigSpec

false

status

NetConfigStatus

false

+ +
+
+

NetConfigList

+
+

NetConfigList contains a list of NetConfig

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]NetConfig

true

+ +
+
+

NetConfigSpec

+
+

NetConfigSpec defines the desired state of NetConfig

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

networks

Networks, list of all networks of the deployment

[]Network

true

+ +
+
+

Network

+
+

Network definition

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

Name of the network, e.g. External, InternalApi, …​

NetNameStr

true

dnsDomain

DNSDomain name of the Network

string

true

mtu

MTU of the network

int

true

subnets

Subnets of the network

[]Subnet

true

serviceNetwork

Service network mapping

ServiceNetNameStr

false

+ +
+
+

Route

+
+

Route definition

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

destination

Destination, network CIDR

string

true

nexthop

Nexthop, gateway for the destination

string

true

+ +
+
+

Subnet

+
+

Subnet definition

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

Name of the subnet

NetNameStr

true

cidr

Cidr the cidr to use for this network

string

true

dnsDomain

DNSDomain name of the subnet, allows to overwrite the DNSDomain of the Network

*string

false

vlan

Vlan ID

*int

false

allocationRanges

AllocationRanges a list of AllocationRange for assignment. Allocation will start from first range, first address.

[]AllocationRange

true

excludeAddresses

ExcludeAddresses a set of IPs that should be excluded from used as reservation, for both dynamic and static via IPSet FixedIP parameter

[]string

false

gateway

Gateway optional gateway for the network

*string

false

routes

Routes, list of networks that should be routed via network gateway.

[]Route

false

+ +
+
+

IPAddress

+
+

IPAddress -

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

network

Network name

NetNameStr

true

subnet

Subnet name

NetNameStr

true

address

Address contains the IP address

string

true

+ +
+
+

Reservation

+
+

Reservation is the Schema for the reservations API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

ReservationSpec

false

status

ReservationStatus

false

+ +
+
+

ReservationList

+
+

ReservationList contains a list of Reservation

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]Reservation

true

+ +
+
+

ReservationSpec

+
+

ReservationSpec defines the desired state of Reservation

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

ipSetRef

IPSetRef points to the IPSet object the IPs were created for.

corev1.ObjectReference

true

reservation

Reservation, map (index network name) with reservation

map[string]IPAddress

true

+ +
+
+

TransportURL

+
+

TransportURL is the Schema for the transporturls API

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

TransportURLSpec

false

status

TransportURLStatus

false

+ +
+
+

TransportURLList

+
+

TransportURLList contains a list of TransportURL

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]TransportURL

true

+ +
+
+

TransportURLSpec

+
+

TransportURLSpec defines the desired state of TransportURL

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

rabbitmqClusterName

RabbitmqClusterName the name of the Rabbitmq cluster which to configure the transport URL

string

true

+ +
+
+

TransportURLStatus

+
+

TransportURLStatus defines the observed state of TransportURL

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

secretName

SecretName - name of the secret containing the rabbitmq transport URL

string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this service. If the observed generation is less than the spec generation, then the controller has not processed the latest changes injected by the opentack-operator in the top-level CR (e.g. the ContainerImage)

int64

false

+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/dataplane/index.html b/dataplane/index.html new file mode 100644 index 000000000..76ddbfcd2 --- /dev/null +++ b/dataplane/index.html @@ -0,0 +1,6000 @@ + + + + + + + +OpenStack Data Plane Operator + + + + + + + +
+
+
+
+

The openstack-operator automates the deployment of an OpenStack dataplane. A +dataplane is a collection of nodes that will be used for hosting OpenStack +workloads. The openstack-operator prepares the nodes with enough operating +system configuration so that they are ready for hosting other required +OpenStack services and workloads.

+
+
+

See contributing for notes for developers and +contributors, running the operator, building the documentation, etc.

+
+
+

See design for details about the dataplane design.

+
+
+

Creating a DataPlane documents how to create a dataplane.

+
+
+

The documentation source is kept within the openstack-operator repo in the +docs directory. The full +generated documentation from that source is available at +https://openstack-k8s-operators.github.io/openstack-operator/.

+
+
+
+
+

Data Plane Design

+
+
+

The openstack-operator provisions and configures nodes that make up the +OpenStack data plane. The data plane consists of nodes that host end-user +workloads and applications. Depending on the OpenStack deployment, these data +plane nodes are often compute nodes, but may also be storage nodes, networker +nodes, or other types of nodes.

+
+
+

The openstack-operator provides a Kubernetes like abstraction and API for +deploying the data plane. It uses the +openstack-baremetal-operator +to optionally provision baremetal. It then uses the +openstack-ansibleee-operator +to execute Ansible to deploy, configure, and orchestrate software on the nodes. +The software is typically RPM or container based using the podman container +runtime.

+
+
+

External Data Plane Management (EDPM) is the concept of using Ansible in this +manner to configure software on data plane nodes. Ansible is used instead of +using native Kubernetes Workload API’s (Deployment, Job, Pod, etc) and kubelet. +While the Ansible executions themselves run on the Kubernetes cluster as native +Kubernetes workloads, they communicate using SSH with data plane nodes and use +various Ansible modules to deploy software on data plane nodes.

+
+
+

CRD Design and Resources

+
+

The openstack-operator exposes the concepts of OpenStackDataPlaneNodeSets, +OpenStackDataPlaneServices, and OpenStackDataPlaneDeployments as CRD’s:

+
+ +
+

The OpenStackDataPlaneNodeSet CRD is used to describe a logical grouping of +nodes of a similar type. A node can only be defined in one NodeSet. This is +analogous to the concept of "roles" in TripleO. An OpenStack data plane is +likely to consist of multiple OpenStackDataPlaneNodeSet resources to describe +groups of nodes that are configured differently.

+
+
+

Similarities within a OpenStackDataPlaneNodeSet are defined by the user, and +could be of a small scope (ansible port), or a large scope (same network +config, nova config, provisioning config, etc). The properties that all nodes +in a OpenStackDataPlaneNodeSet share are set in the nodeTemplate field of +the OpenStackDataPlaneNodeSet spec. Node specific parameters are then defined +under the nodeTemplate.nodes section specific to that node. Options defined +here will override the inherited values from the NodeSet.

+
+
+

Dividing and assigning nodes to different OpenStackDataPlaneNodeSets is a +design decision by the user. Nodes that are configured mostly the same, are of +the same hardware, and serving the same purpose are likely candidates for being +in the same OpenStackDataPlaneNodeSet. While hardware differences or +differences in purposes (compute vs. netwoker) would lend themselves to nodes +being in different OpenStackDataPlaneNodeSets.

+
+
+

OpenStackDataPlaneNodeSet implements a baremetal provisioning interface to +provision the nodes if requested. The baremetalSetTemplate field is used to +describe the baremetal configuration of the nodes and is used to provision the +initial OS on the set of nodes.

+
+
+

The OpenStackDataPlaneService CRD for is an abstraction which combines +Ansible content and configuration from Kubernetes ConfigMaps and Secrets. The +Ansible content is typically a playbook from +edpm-ansible, but can +be any Ansible play content. The ConfigMaps and Secrets are typically generated +from OpenStack control plane operators, but could be any configuration data +that needs to be consumed by the Ansible content.

+
+
+

An OpenStackDataPlaneNodeSet has a list of services that contain the +OpenStackDataPlaneService resources for the nodes in that +OpenStackDataPlaneNodeSet. Using the services list, users can customize the +software that is deployed on the OpenStackDataPlaneNodeSet nodes.

+
+
+

The OpenStackDataPlaneDeployment CRD is used to start an Ansible execution +for the list of OpenStackDataPlaneNodeSets on the +OpenStackDataPlaneDeployment. Each OpenStackDataPlaneDeployment models a +single Ansible execution, and once the execution is successful, the +OpenStackDataPlaneDeployment does not automatically execute Ansible again, +even if the OpenStackDataPlaneDeployment or related +OpenStackDataPlaneNodeSet resources are changed. In order to start another +Ansible execution, another OpenStackDataPlaneDeployment resource needs to be +created. In this manner, the user maintains explicit control over when Ansible +actually executes through the creation of OpenStackDataPlaneDeployment +resources.

+
+
+
+
+
+

Creating the data plane

+
+
+

The OpenStack DataPlane consists of CentOS nodes. Use the OpenStackDataPlaneNodeSet custom resource definition (CRD) to create the custom resources (CRs) that define the nodes and the layout of the data plane. You can use pre-provisioned nodes, or provision bare metal nodes as part of the data plane creation and deployment process.

+
+
+

To create and deploy a data plane, you must perform the following tasks:

+
+
+
    +
  1. +

    Create a Secret CR for Ansible to use to execute commands on the data plane nodes.

    +
  2. +
  3. +

    Create the OpenStackDataPlaneNodeSet CRs that define the nodes and layout of the data plane.

    +
  4. +
  5. +

    Create the OpenStackDataPlaneDeployment CRs that trigger the Ansible execution to deploy and configure software.

    +
  6. +
+
+
+

Prerequisites

+
+
    +
  • +

    A functional control plane, created with the OpenStack Operator.

    +
  • +
  • +

    Pre-provisioned nodes must be configured with an SSH public key in the $HOME/.ssh/authorized_keys file for a user with passwordless sudo privileges.

    +
  • +
  • +

    For bare metal nodes that are not pre-provisioned and must be provisioned when creating the OpenStackDataPlaneNodeSet resource:

    +
    +
      +
    • +

      CBO is installed and configured for provisioning.

      +
    • +
    • +

      BareMetalHosts registered, inspected, and have the label app:openstack.

      +
    • +
    +
    +
  • +
  • +

    You are logged on to a workstation that has access to the RHOCP cluster as a user with cluster-admin privileges.

    +
  • +
  • +

    OpenShift CLI (oc) 4.14 or higher

    +
  • +
+
+
+
+

Creating the SSH key secrets

+
+

You must generate SSH keys and create an SSH key Secret custom resource (CR) for each key to enable the following functionality:

+
+
+
    +
  • +

    You must generate an SSH key to enable Ansible to manage the CentOS nodes on the data plane. Ansible executes commands with this user and key.

    +
  • +
  • +

    You must generate an SSH key to enable migration of instances between Compute nodes.

    +
  • +
+
+
+

The Secret CRs are used by the data plane nodes to enable secure access between nodes.

+
+
+
Procedure
+
    +
  1. +

    Create the SSH key pair for Ansible:

    +
    +
    +
    $ KEY_FILE_NAME=<key_file_name>
    +$ ssh-keygen -f $KEY_FILE_NAME -N "" -t rsa -b 4096
    +
    +
    +
    +
      +
    • +

      Replace <key_file_name> with the name to use for the key pair.

      +
    • +
    +
    +
  2. +
  3. +

    Create the Secret CR for Ansible and apply it to the cluster:

    +
    +
    +
    $ SECRET_NAME=<secret_name>
    +$ oc create secret generic $SECRET_NAME \
    +--save-config \
    +--dry-run=client \
    +[--from-file=authorized_keys=$KEY_FILE_NAME.pub \]
    +--from-file=ssh-privatekey=$KEY_FILE_NAME \
    +--from-file=ssh-publickey=$KEY_FILE_NAME.pub \
    +-n openstack \
    +-o yaml | oc apply -f-
    +
    +
    +
    +
      +
    • +

      Replace <secret_name> with the name you want to use for the Secret resource.

      +
    • +
    • +

      Include the --from-file=authorized_keys option for bare metal nodes that must be provisioned when creating the data plane.

      +
    • +
    +
    +
  4. +
  5. +

    Create the SSH key pair for instance migration:

    +
    +
    +
    $ ssh-keygen -f ./id -t ecdsa-sha2-nistp521 -N ''
    +
    +
    +
  6. +
  7. +

    Create the Secret CR for migration and apply it to the cluster:

    +
    +
    +
    $ oc create secret generic nova-migration-ssh-key \
    +--from-file=ssh-privatekey=id \
    +--from-file=ssh-publickey=id.pub \
    +-n openstack \
    +-o yaml | oc apply -f-
    +
    +
    +
  8. +
  9. +

    Verify that the Secret CRs are created:

    +
    +
    +
    $ oc describe secret $SECRET_NAME`
    +
    +
    +
  10. +
+
+
+
+

Creating a set of data plane nodes

+
+

You use the OpenStackDataPlaneNodeSet CRD to define the data plane and the data plane nodes. An OpenStackDataPlaneNodeSet custom resource (CR) represents a set of nodes of the same type that have similar configuration, comparable to the concept of a "role" in a director-deployed Red Hat OpenStack Platform (RHOSP) environment.

+
+
+

Create an OpenStackDataPlaneNodeSet CR for each logical grouping of nodes in your data plane, for example, nodes grouped by hardware, location, or networking. You can define as many node sets as necessary for your deployment. Each node can be included in only one OpenStackDataPlaneNodeSet CR. Each node set can be connected to only one Compute cell. By default, node sets are connected to cell1. If your control plane includes additional Compute cells, you must specify the cell to which the node set is connected.

+
+
+
Procedure
+
    +
  1. +

    Create an OpenStackDataPlaneNodeSet CR and save it to a file named openstack-edpm.yaml on your workstation:

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneNodeSet
    +metadata:
    +  name: openstack-edpm-ipam
    +spec:
    +  ...
    +
    +
    + +
  2. +
  3. +

    The sample OpenStackDataPlaneNodeSet CR is connected to cell1 by default. If you added additional Compute cells to the control plane and you want to connect the node set to one of the other cells, then you must create a custom service for the node set that includes the Secret CR for the cell:

    +
    +
      +
    1. +

      Create a custom nova service that includes the Secret CR for the cell to connect to:

      +
      +
      +
      apiVersion: dataplane.openstack.org/v1beta1
      +kind: OpenStackDataPlaneService
      +metadata:
      +  name: nova-cell-custom
      +  spec:
      +    label: dataplane-deployment-custom-service
      +       playbook: osp.edpm.nova
      +    ...
      +    secrets:
      +      - nova-cell2-compute-config (1)
      +
      +
      +
      + + + + + +
      1The Secret CR generated by the control plane for the cell. +
      +

      For information about how to create a custom service, see Creating a custom service.

      +
      +
      +
    2. +
    3. +

      Replace the nova service in your OpenStackDataPlaneNodeSet CR with your custom nova service:

      +
      +
      +
      apiVersion: dataplane.openstack.org/v1beta1
      +kind: OpenStackDataPlaneNodeSet
      +metadata:
      +  name: openstack-edpm-ipam
      +spec:
      +  services:
      +    - configure-network
      +    - validate-network
      +    - install-os
      +    - configure-os
      +    - run-os
      +    - ovn
      +    - libvirt
      +    - nova-cell-custom
      +    - telemetry
      +
      +
      +
      + + + + + +
      + + +Do not change the order of the default services. +
      +
      +
    4. +
    +
    +
  4. +
  5. +

    Update the Secret to the SSH key secret that you created to enable Ansible to connect to the data plane nodes:

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneNodeSet
    +metadata:
    +  name: openstack-edpm-ipam
    +spec:
    +  nodeTemplate:
    +    ansibleSSHPrivateKeySecret: <secret-key>
    +
    +
    +
    +
      +
    • +

      Replace <secret-key> with the name of the SSH key Secret CR you created in Creating the SSH key secrets, for example, dataplane-ansible-ssh-private-key-secret.

      +
    • +
    +
    +
  6. +
  7. +

    Optional: Configure the node set for a Compute feature or workload. For more information, see Configuring a node set for a Compute feature or workload.

    +
  8. +
  9. +

    Optional: The sample OpenStackDataPlaneNodeSet CR that you copied includes the minimum common configuration required for a set of nodes in this group under the nodeTemplate section. Each node in this OpenStackDataPlaneNodeSet inherits this configuration. You can edit the configured values as required, and you can add additional configuration.

    +
    +

    For information about the properties you can use to configure common node attributes, see OpenStackDataPlaneNodeSet CR properties.

    +
    +
    +

    For example OpenStackDataPlaneNodeSet CR nodeTemplate definitions, see Example OpenStackDataPlaneNodeSet CR for pre-provisioned nodes or Example OpenStackDataPlaneNodeSet CR for bare metal nodes.

    +
    +
  10. +
  11. +

    Optional: The sample OpenStackDataPlaneNodeSet CR you copied applies the single NIC VLANs network configuration by default to the data plane nodes. You can edit the template that is applied. For example, to configure the data plane for multiple NICS, copy the contents of the roles/edpm_network_config/templates/multiple_nics/multiple_nics.j2 file and add it to your openstack-edpm.yaml file:

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneNodeSet
    +metadata:
    +  name: openstack-edpm-ipam
    +spec:
    +  ...
    +  nodeTemplate:
    +    ...
    +    ansible:
    +      ansibleVars:
    +        edpm_network_config_template: |
    +              ---
    +              network_config:
    +              - type: interface
    +                name: nic1
    +                mtu: {{ ctlplane_mtu }}
    +                dns_servers: {{ ctlplane_dns_nameservers }}
    +                domain: {{ dns_search_domains }}
    +                routes: {{ ctlplane_host_routes }}
    +                use_dhcp: false
    +                addresses:
    +                - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }}
    +                {% for network in nodeset_networks %}
    +                {% if network not in ["external", "tenant"] %}
    +                - type: interface
    +                  name: nic{{ loop.index +1 }}
    +                  mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
    +                  use_dhcp: false
    +                  addresses:
    +                  - ip_netmask:
    +                    {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
    +                  routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
    +                {% elif 'external_bridge' in nodeset_tags|default([]) %}
    +                - type: ovs_bridge
    +                {% if network == 'external' %}
    +                  name: {{ neutron_physical_bridge_name }}
    +                {% else %}
    +                  name: {{ 'br-' ~ networks_lower[network] }}
    +                {% endif %}
    +                  mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
    +                  dns_servers: {{ ctlplane_dns_nameservers }}
    +                  use_dhcp: false
    +                  addresses:
    +                  - ip_netmask:
    +                    {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
    +                  routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
    +                  members:
    +                  - type: interface
    +                    name: nic{{loop.index + 1}}
    +                    mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
    +                    use_dhcp: false
    +                    primary: true
    +                {% endif %}
    +                {% endfor %}
    +
    +
    + +
  12. +
  13. +

    If your nodes are bare metal, you must configure the bare metal template, see Provisioning bare metal data plane nodes.

    +
  14. +
  15. +

    Optional: The sample OpenStackDataPlaneNodeSet CR you copied includes default node configurations under the nodes section. You can add additional nodes, and edit the configured values as required. For example, to add node-specific Ansible variables that customize the node, add the following configuration to your openstack-edpm.yaml file:

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneNodeSet
    +metadata:
    +  name: openstack-edpm-ipam
    +spec:
    +  ...
    +  nodeTemplate:
    +    ...
    +    ansible:
    +      ...
    +      ansibleVars:
    +        rhc_release: 9.2
    +        rhc_repositories:
    +            - {name: "*", state: disabled}
    +            - {name: "rhel-9-for-x86_64-baseos-eus-rpms", state: enabled}
    +            - {name: "rhel-9-for-x86_64-appstream-eus-rpms", state: enabled}
    +            - {name: "rhel-9-for-x86_64-highavailability-eus-rpms", state: enabled}
    +            - {name: "openstack-17.1-for-rhel-9-x86_64-rpms", state: enabled}
    +            - {name: "fast-datapath-for-rhel-9-x86_64-rpms", state: enabled}
    +            - {name: "openstack-dev-preview-for-rhel-9-x86_64-rpms", state: enabled}
    +  ...
    +  nodes:
    +    edpm-compute-0: (1)
    +      hostName: edpm-compute-0
    +      ansible:
    +        ansibleHost: 192.168.122.100
    +        ansibleVars: (2)
    +          ctlplane_ip: 192.168.122.100
    +          internalapi_ip: 172.17.0.100
    +          storage_ip: 172.18.0.100
    +          tenant_ip: 172.19.0.100
    +          fqdn_internalapi: edpm-compute-0.example.com
    +    edpm-compute-1:
    +      hostName: edpm-compute-1
    +      ansible:
    +        ansibleHost: 192.168.122.101
    +        ansibleVars:
    +          ctlplane_ip: 192.168.122.101
    +          internalapi_ip: 172.17.0.101
    +          storage_ip: 172.18.0.101
    +          tenant_ip: 172.19.0.101
    +          fqdn_internalapi: edpm-compute-1.example.com
    +
    +
    +
    + + + + + + + + + +
    1The node definition reference, for example, edpm-compute-0. Each node in the node set must have a node definition.
    2Node-specific Ansible variables that customize the node.
    +
    +
    + + + + + +
    + + +
    +
      +
    • +

      Nodes defined within the nodes section can configure the same Ansible variables that are configured in the nodeTemplate section. Where an Ansible variable is configured for both a specific node and within the nodeTemplate section, the node-specific values override those from the nodeTemplate section.

      +
    • +
    • +

      You do not need to replicate all the nodeTemplate Ansible variables for a node to override the default and set some node-specific values. You only need to configure the Ansible variables you want to override for the node.

      +
    • +
    +
    +
    +
    +
    +

    For information about the properties you can use to configure node attributes, see OpenStackDataPlaneNodeSet CR properties. For example OpenStackDataPlaneNodeSet CR nodes definitions, see Example OpenStackDataPlaneNodeSet CR for pre-provisioned nodes or Example OpenStackDataPlaneNodeSet CR for bare metal nodes.

    +
    +
  16. +
  17. +

    Optional: Customize the container images used by the edpm-ansible roles. The following example shows the default images:

    +
    +
    +
    spec:
    +  ...
    +  nodeTemplate:
    +    ...
    +    ansible:
    +      ...
    +      ansibleVars:
    +        edpm_iscsid_image: "quay.io/podified-antelope-centos9/openstack-iscsid:current-podified"
    +        edpm_logrotate_crond_image: "quay.io/podified-antelope-centos9/openstack-cron:current-podified"
    +        edpm_ovn_controller_agent_image: "quay.io/podified-antelope-centos9/openstack-frr:current-podified"
    +        edpm_ovn_metadata_agent_image: "quay.io/podified-antelope-centos9/openstack-neutron-metadata-agent-ovn:current-podified"
    +        edpm_frr_image: "quay.io/podified-antelope-centos9/openstack-frr:current-podified"
    +        edpm_ovn_bgp_agent_image: "quay.io/podified-antelope-centos9/openstack-ovn-bgp-agent:current-podified"
    +        telemetry_node_exporter_image: "quay.io/prometheus/node-exporter:v1.5.0"
    +        edpm_telemetry_kepler_image: "quay.io/sustainable_computing_io/kepler"
    +        edpm_libvirt_image: "quay.io/podified-antelope-centos9/openstack-nova-libvirt:current-podified"
    +        edpm_nova_compute_image: "quay.io/podified-antelope-centos9/openstack-nova-compute:current-podified"
    +        edpm_neutron_sriov_image: "quay.io/podified-antelope-centos9/openstack-neutron-sriov-agent:current-podified"
    +        edpm_multipathd_image: "quay.io/podified-antelope-centos9/openstack-multipathd:current-podified"
    +
    +
    +
  18. +
  19. +

    Save the openstack-edpm.yaml definition file.

    +
  20. +
  21. +

    Create the data plane resources:

    +
    +
    +
    $ oc create -f openstack-edpm.yaml
    +
    +
    +
  22. +
  23. +

    Verify that the data plane resources have been created:

    +
    +
    +
    $ oc get openstackdataplanenodeset
    +NAME           		STATUS MESSAGE
    +openstack-edpm-ipam 	False  Deployment not started
    +
    +
    +
  24. +
  25. +

    Verify that the Secret resource was created for the node set:

    +
    +
    +
    $ oc get secret | grep openstack-edpm-ipam
    +dataplanenodeset-openstack-edpm-ipam Opaque 1 3m50s
    +
    +
    +
  26. +
  27. +

    Verify the services were created:

    +
    +
    +
    $ oc get openstackdataplaneservice
    +NAME                AGE
    +configure-network   6d7h
    +configure-os        6d6h
    +install-os          6d6h
    +run-os              6d6h
    +validate-network    6d6h
    +ovn                 6d6h
    +libvirt             6d6h
    +nova                6d6h
    +telemetry           6d6h
    +
    +
    +
  28. +
+
+
+
+

Composable services

+
+

Composable services with openstack-operator provide a way for users to +customize services that are deployed on dataplane nodes. It is possible to +"compose" a set of services such that the dataplane deployment can be +customized in whichever ways are needed.

+
+
+

Composing services can take different forms. The interfaces in +openstack-operator allow for:

+
+
+
    +
  • +

    Enabling/disabling services

    +
  • +
  • +

    Ordering services

    +
  • +
  • +

    Developing custom services

    +
  • +
+
+
+

For the purposes of the interfaces in openstack-operator, a service is an +ansible execution that manages a software deployment (installation, +configuration, execution, etc) on dataplane nodes. The ansible content that +makes up each service is defined by the service itself. Each service is a +resource instance of the +OpenStackDataPlaneService CRD.

+
+
+

openstack-operator provided services

+
+

openstack-operator provides a default list of services that will be deployed on +dataplane nodes. The services list is set on the +OpenStackDataPlaneNodeSet CRD.

+
+
+

The default list of services as they will appear on the services field on an +OpenStackDataPlaneNodeSet spec is:

+
+
+
+
services:
+  - redhat
+  - download-cache
+  - bootstrap
+  - configure-network
+  - validate-network
+  - install-os
+  - configure-os
+  - run-os
+  - libvirt
+  - nova
+  - ovn
+  - neutron-metadata
+  - telemetry
+
+
+
+

If the services field is omitted from the OpenStackDataPlaneNodeSet spec, +then the above list will be used.

+
+
+

The associated OpenStackDataPlaneService resources are reconciled during +OpenStackDataPlaneNodeSet reconciliation if the service is in the NodeSets' +service list.

+
+
+

The DataPlane Operator also includes the following services that are not enabled by default:

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ServiceDescription
+

ceph-client

+
+

Include this service to configure data plane nodes as clients of a Red Hat Ceph Storage server. Include between the install-os and configure-os services. The OpenStackDataPlaneNodeSet CR must include the following configuration to access the Red Hat Ceph Storage secrets:

+
+
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneNodeSet
+spec:
+  ...
+  nodeTemplate:
+    extraMounts:
+    - extraVolType: Ceph
+      volumes:
+      - name: ceph
+        secret:
+          secretName: ceph-conf-files
+      mounts:
+      - name: ceph
+        mountPath: "/etc/ceph"
+        readOnly: true
+
+
+

ceph-hci-pre

+
+

Include this service to prepare data plane nodes to host Red Hat Ceph Storage in an HCI configuration. For more information, see Configuring a Hyperconverged Infrastructure environment.

+
+

configure-ovs-dpdk

+
+

Include this service to configure OvS DPDK configuration on EDPM nodes. This service is needed to enable OvS DPDK on the compute nodes.

+
+

neutron-sriov

+
+

Include this service to run a Neutron SR-IOV NIC agent on the data plane nodes.

+
+

neutron-metadata

+
+

Include this service to run the Neutron OVN Metadata agent on the data plane nodes. This agent is required to provide metadata services to the Compute nodes.

+
+

neutron-ovn

+
+

Include this service to run the Neutron OVN agent on the data plane nodes. This agent is required to provide QoS to hardware offloaded ports on the Compute nodes.

+
+

neutron-dhcp

+
+

Include this service to run a Neutron DHCP agent on the data plane nodes.

+
+
+

For more information about the available default services, see https://github.com/openstack-k8s-operators/openstack-operator/tree/main/config/services.

+
+
+

You can enable and disable services for an OpenStackDataPlaneNodeSet resource.

+
+
+ + + + + +
+ + +Do not change the order of the default service deployments. +
+
+
+

You can use the OpenStackDataPlaneService CRD to create custom services that you can deploy on your data plane nodes. You add your custom services to the default list of services where the service must be executed. For more information, see Creating a custom service.

+
+
+

You can view the details of a service by viewing the YAML representation of the resource:

+
+
+
+
$ oc get openstackdataplaneservice configure-network -o yaml
+
+
+
+
+

Overriding services for the deployment

+
+

The list of services that will be deployed when an +OpenStackDataPlaneDeployment is created is set on each +OpenStackDataPlaneNodeSet that is included in the nodeSets list on the +OpenStackDataPlaneDeployment.

+
+
+

This allows for deploying a different set of services on different +OpenStackDataPlaneNodeSets using the same OpenStackDataPlaneDeployment +resource simultaneously. It also maintains the association between services and +nodeSets on the nodeSet itself. This association is important when nodeSets are +used to group nodes with hardware and configuration differences that require +the need for deploying different services on different nodeSets.

+
+
+

In some specific cases, it may be needed to override what services are deployed +on all nodeSets included in an OpenStackDataPlaneDeployment. These cases can +vary, but are often related to day 2 workflows such as update, upgrade, and +scale out. In these cases, it may be needed to execute a smaller subset of +services, or just a single service, across all nodeSets in the +OpenStackDataPlaneDeployment.

+
+
+

The servicesOverride field on OpenStackDataPlaneDeployment allow for this +behavior. Setting this field changes what services are deployed when the +OpenStackDataPlaneDeployment is created. If the field is set, only the +services listed in the field will be deployed on all nodeSets.

+
+
+

If deployment has been configured with tlsEnabled set to True in the +original OpenStackDataPlaneNodeSet CR, it is recommended to add also +install-certs to the list of services in servicesOverride list. That will +install certificates potentially required by the other services in +the destination nodes.

+
+
+

The following example OpenStackDataPlaneDeployment resource illustrates using +servicesOverride to perform a pre-upgrade task of executing just the ovn +service.

+
+
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneDeployment
+metadata:
+  name: openstack-edpm-pre-upgrade-ovn
+spec:
+
+  nodeSets:
+    - openstack-edpm
+
+  // Only the services here will be executed. Overriding any services value
+  // on the openstack-edpm nodeSet.
+  // Service install-certs is added here to install certificates
+  // potentially required by the ovn service
+  servicesOverride:
+    - install-certs
+    - ovn
+
+
+
+
+

Creating a custom service

+
+

You can use the OpenStackDataPlaneService CRD to create custom services to deploy on your data plane nodes.

+
+
+ + + + + +
+ + +Do not create a custom service with the same name as one of the default services. If a custom service name matches a default service name, the default service values overwrite the custom service values during OpenStackDataPlaneNodeSet reconciliation. +
+
+
+

You specify the Ansible execution for your service with either an Ansible playbook or by including the free-form play contents directly in the spec section of the service.

+
+
+ + + + + +
+ + +You cannot use both an Ansible playbook and an Ansible play in the same service. +
+
+
+
Procedure
+
    +
  1. +

    Create an OpenStackDataPlaneService CR and save it to a YAML file on your workstation, for example custom-service.yaml:

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneService
    +metadata:
    +  name: custom-service
    +spec:
    +  label: dataplane-deployment-custom-service
    +
    +
    +
  2. +
  3. +

    Specify the Ansible commands to create the custom service, by referencing an Ansible playbook or by including the Ansible play in the spec:

    +
    +
      +
    • +

      Specify the Ansible playbook to use:

      +
      +
      +
      apiVersion: dataplane.openstack.org/v1beta1
      +kind: OpenStackDataPlaneService
      +metadata:
      +  name: custom-service
      +spec:
      +  label: dataplane-deployment-custom-service
      +  playbook: osp.edpm.configure_os
      +
      +
      +
    • +
    +
    +
    +

    For information about how to create an Ansible playbook, see Creating a playbook.

    +
    +
    +
      +
    • +

      Specify the Ansible play as a string that uses Ansible playbook syntax:

      +
      +
      +
      apiVersion: dataplane.openstack.org/v1beta1
      +kind: OpenStackDataPlaneService
      +metadata:
      +  name: custom-service
      +spec:
      +  label: dataplane-deployment-custom-service
      +  playbookContents: |
      +    hosts: all
      +    tasks:
      +      - name: Hello World!
      +        shell: "echo Hello World!"
      +        register: output
      +      - name: Show output
      +        debug:
      +          msg: "{{ output.stdout }}"
      +      - name: Hello World role
      +        import_role: hello_world
      +
      +
      +
    • +
    +
    +
  4. +
  5. +

    Optional: To override the default container image used by the ansible-runner execution environment with a custom image that uses additional Ansible content for a custom service, build and include a custom ansible-runner image. For information, see Building a custom ansible-runner image.

    +
  6. +
  7. +

    Optional: Designate and configure a node set for a Compute feature or workload. For more information, see Configuring a node set for a Compute feature or workload.

    +
  8. +
  9. +

    Optional: Specify DataSource resources to use to pass ConfigMaps or Secrets into the OpenStackAnsibleEE job. When the optional field is true on a DataSource configMapRef or secretRef, the resource is optional, and an error won’t occur when it doesn’t exist.

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneService
    +metadata:
    +  name: custom-service
    +spec:
    +  ...
    +  playbookContents: |
    +    ...
    +  dataSources:
    +	  - configMapRef:
    +		    name: hello-world-cm-0
    +    - secretRef:
    +	      name: hello-world-secret-0
    +    - secretRef:
    +        name: hello-world-secret-1
    +		    # This secret is optional, it does not need to exist.
    +        optional: true
    +
    +
    +
    +

    A mount is created for each ConfigMap and Secret in the OpenStackAnsibleEE pod with a filename that matches the resource value. The mounts are created under /var/lib/openstack/configs/<service name>.

    +
    +
  10. +
  11. +

    Optional: It may be necessary to run some services on all nodesets at the same time. These services need to have their deployOnAllNodeSets field set to true. If these services are repated in multiple nodeset specs included in a deployment, they would be ignored from subsequent nodeset services and would be run only once.

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneService
    +metadata:
    +  name: custom-global-service
    +spec:
    +  label: custom-global-service
    +  playbookContents: |
    +    - hosts: localhost
    +      gather_facts: no
    +      name: global play
    +      tasks:
    +        - name: Sleep
    +          command: sleep 1
    +          delegate_to: localhost
    +  deployOnAllNodeSets: true
    +
    +
    +
  12. +
  13. +

    Optional: Specify the edpmServiceType field for the service. Different custom services may use the same ansible content to manage the same EDPM service (such as ovn or nova). The DataSources, TLS certificates, and CA certificates need to be mounted at the same locations so they can be found by the ansible content even when using a custom service. edpmServiceType is used to create this association. The value is the name of the default service that uses the same ansible content as the custom service. If there are multiple services with the same edpmServiceType listed in a nodeset or deployment spec, latter ones would be ignored.

    +
    +

    For example, a custom service that uses the edpm_ovn ansible content from edpm-ansible would set edpmServiceType to ovn, which matches the default ovn service name provided by openstack-operator.

    +
    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneService
    +metadata:
    +  name: custom-ovn-service
    +spec:
    +  edpmServiceType: ovn
    +
    +
    +
  14. +
  15. +

    Create the custom service:

    +
    +
    +
    $ oc apply -f custom-service.yaml
    +
    +
    +
  16. +
  17. +

    Verify that the custom service is created:

    +
    +
    +
    $ oc get openstackdataplaneservice <custom_service_name> -o yaml
    +
    +
    +
  18. +
+
+
+
Enabling a custom service
+
+

To add a custom service to be executed as part of an OpenStackDataPlaneNodeSet +deployment, add the service name to the services field list on the NodeSet. Add +the service name in the order that it should be executed relative to the other +services. This example shows adding the hello-world service as the first +service to execute for the edpm-compute NodeSet.

+
+
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneNodeSet
+metadata:
+  name: openstack-edpm
+spec:
+  services:
+    - hello-world
+    - redhat
+    - download-cache
+    - bootstrap
+    - configure-network
+    - validate-network
+    - install-os
+    - configure-os
+    - run-os
+    - ovn
+    - neutron-metadata
+    - libvirt
+    - nova
+  nodes:
+    edpm-compute:
+      ansible:
+        ansibleHost: 172.20.12.67
+        ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret
+        ansibleUser: cloud-admin
+        ansibleVars:
+          ansible_ssh_transfer_method: scp
+          ctlplane_ip: 172.20.12.67
+          external_ip: 172.20.12.76
+          fqdn_internalapi: edpm-compute-1.example.com
+          internalapi_ip: 172.17.0.101
+          storage_ip: 172.18.0.101
+          tenant_ip: 172.10.0.101
+      hostName: edpm-compute-0
+      networkConfig: {}
+      nova:
+        cellName: cell1
+        deploy: true
+        novaInstance: nova
+  nodeTemplate: {}
+
+
+
+

When customizing the services list, the default list of services must be +reproduced and then customized if the intent is to still deploy those services. +If just the hello-world service was listed in the list, then that is the only +service that would be deployed.

+
+
+ + + + + +
+ + +
+

Exercise caution when including a service that is meant to be exectured on every NodeSet in the list. +Some services may behave in unexpected ways when executed multiple times on the same node.

+
+
+
+
+
+
+

Configuring a node set for a Compute feature or workload

+
+

You can designate a node set for a particular Compute feature or workload. To designate and configure a node set for a feature, complete the following tasks:

+
+
+
    +
  1. +

    Create a ConfigMap CR to configure the Compute nodes.

    +
  2. +
  3. +

    Create a custom nova service for the feature that runs the osp.edpm.nova playbook.

    +
  4. +
  5. +

    Include the ConfigMap CR in the custom nova service.

    +
  6. +
+
+
+
Procedure
+
    +
  1. +

    Create ConfigMap CR to configure the Compute nodes. For example, to enable CPU pinning on the Compute nodes, create the following ConfigMap object:

    +
    +
    +
    apiVersion: v1
    +kind: ConfigMap
    +metadata:
    +  name: nova-cpu-pinning-configmap
    +  namespace: openstack
    +data:
    +  25-nova-cpu-pinning.conf: |
    +    [compute]
    +    cpu_shared_set = 2,6
    +    cpu_dedicated_set = 1,3,5,7
    +
    +
    +
    +

    When the service is deployed it adds the configuration to etc/nova/nova.conf.d/ in the nova_compute container.

    +
    +
    +

    For more information on creating ConfigMap objects, see Creating and using config maps.

    +
    +
    + + + + + +
    + + +You can use a Secret to create the custom configuration instead if the configuration includes sensitive information, such as passwords or certificates that are required for certification. +
    +
    +
  2. +
  3. +

    Create a custom nova service for the feature. For information about how to create a custom service, see Creating a custom service.

    +
  4. +
  5. +

    Add the ConfigMap CR to the custom nova service:

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneService
    +metadata:
    +  name: nova-cpu-pinning-service
    +spec:
    +  label: dataplane-deployment-custom-service
    +    playbook: osp.edpm.nova
    +  configMaps:
    +    - nova-cpu-pinning-configmap
    +
    +
    +
  6. +
  7. +

    Specify the Secret CR for the cell that the node set that runs this service connects to:

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneService
    +metadata:
    +  name: nova-cpu-pinning-service
    +spec:
    +  label: dataplane-deployment-custom-service
    +    playbook: osp.edpm.nova
    +  configMaps:
    +    - nova-cpu-pinning-configmap
    +  secrets:
    +    - nova-cell1-compute-config
    +
    +
    +
  8. +
+
+
+
+

Building a custom ansible-runner image

+
+

You can override the default container image used by the ansible-runner execution environment with your own custom image when you need additional Ansible content for a custom service.

+
+
+
Procedure
+
    +
  1. +

    Create a Containerfile that adds the custom content to the default image:

    +
    +
    +
    FROM quay.io/openstack-k8s-operators/openstack-ansibleee-runner:latest
    +COPY my_custom_role /usr/share/ansible/roles/my_custom_role
    +
    +
    +
  2. +
  3. +

    Build and push the image to a container registry:

    +
    +
    +
    $ podman build -t quay.io/example_user/my_custom_image:latest .
    +$ podman push quay.io/example_user/my_custom_role:latest
    +
    +
    +
  4. +
  5. +

    Specify your new container image as the image that the ansible-runner execution environment must use to add the additional Ansible content that your custom service requires, such as Ansible roles or modules:

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneService
    +metadata:
    +  name: custom-service
    +spec:
    +  label: dataplane-deployment-custom-service
    +  openStackAnsibleEERunnerImage: quay.io/openstack-k8s-operators/openstack-ansibleee-runner:latest (1)
    +  playbookContents: |
    +
    +
    +
    + + + + + +
    1Your container image that the ansible-runner execution environment uses to execute Ansible.
    +
    +
  6. +
+
+
+
+
+

Example OpenStackDataPlaneNodeSet CR for pre-provisioned nodes

+
+

The following example OpenStackDataPlaneNodeSet CR creates a set of generic Compute nodes with some node-specific configuration.

+
+
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneNodeSet
+metadata:
+  name: openstack-edpm-ipam
+  namespace: openstack
+spec:
+  env: (1)
+    - name: ANSIBLE_FORCE_COLOR
+      value: "True"
+  networkAttachments: (2)
+    - ctlplane
+  nodeTemplate: (3)
+    ansible:
+      ansibleUser: cloud-admin (4)
+      ansibleVars: (5)
+        edpm_network_config_template: | (6)
+          ---
+          {% set mtu_list = [ctlplane_mtu] %}
+          {% for network in nodeset_networks %}
+          {{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
+          {%- endfor %}
+          {% set min_viable_mtu = mtu_list | max %}
+          network_config:
+          - type: ovs_bridge
+            name: {{ neutron_physical_bridge_name }}
+            mtu: {{ min_viable_mtu }}
+            use_dhcp: false
+            dns_servers: {{ ctlplane_dns_nameservers }}
+            domain: {{ dns_search_domains }}
+            addresses:
+            - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
+            routes: {{ ctlplane_host_routes }}
+            members:
+            - type: interface
+              name: nic1
+              mtu: {{ min_viable_mtu }}
+              # force the MAC address of the bridge to this interface
+              primary: true
+          {% for network in nodeset_networks %}
+            - type: vlan
+              mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
+              vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
+              addresses:
+              - ip_netmask:
+                  {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
+              routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
+          {% endfor %}
+        edpm_nodes_validation_validate_controllers_icmp: false
+        edpm_nodes_validation_validate_gateway_icmp: false
+        edpm_sshd_allowed_ranges:
+          - 192.168.122.0/24
+        enable_debug: false
+        gather_facts: false
+        neutron_physical_bridge_name: br-ex
+        neutron_public_interface_name: eth0
+    ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret (7)
+  nodes:
+    edpm-compute-0: (8)
+      ansible:
+        ansibleHost: 192.168.122.100
+      hostName: edpm-compute-0
+      networks:
+        - defaultRoute: true
+          fixedIP: 192.168.122.100
+          name: ctlplane
+          subnetName: subnet1
+        - name: internalapi
+          subnetName: subnet1
+        - name: storage
+          subnetName: subnet1
+        - name: tenant
+          subnetName: subnet1
+  preProvisioned: true (9)
+  services: (10)
+    - bootstrap
+    - download-cache
+    - configure-network
+    - validate-network
+    - install-os
+    - configure-os
+    - ssh-known-hosts
+    - run-os
+    - reboot-os
+    - install-certs
+    - ovn
+    - neutron-metadata
+    - libvirt
+    - nova
+    - telemetry
+  tlsEnabled: true
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1Optional: A list of environment variables to pass to the pod.
2The networks the ansibleee-runner connects to, specified as a list of netattach resource names.
3The common configuration to apply to all nodes in this set of nodes.
4The user associated with the secret you created in Creating the SSH key secrets.
5The Ansible variables that customize the set of nodes. For a complete list of Ansible variables, see https://openstack-k8s-operators.github.io/edpm-ansible/.
6The network configuration template to apply to nodes in the set. For sample templates, see https://github.com/openstack-k8s-operators/edpm-ansible/tree/main/roles/edpm_network_config/templates.
7The name of the secret that you created in Creating the SSH key secrets.
8The node definition reference, for example, edpm-compute-0. Each node in the node set must have a node definition.
9Specify if the nodes in this set are pre-provisioned, or if they must be provisioned when creating the resource.
10The services that are deployed on the data plane nodes in this OpenStackDataPlaneNodeSet CR.
+
+
+
+

Example OpenStackDataPlaneNodeSet CR for bare metal nodes

+
+

The following example OpenStackDataPlaneNodeSet CR creates a set of generic Compute nodes with some node-specific configuration.

+
+
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneNodeSet
+metadata:
+  name: openstack-edpm-ipam
+  namespace: openstack
+spec:
+  baremetalSetTemplate: (1)
+    bmhLabelSelector:
+      app: openstack
+    cloudUserName: cloud-admin
+    ctlplaneInterface: enp1s0
+  env: (2)
+    - name: ANSIBLE_FORCE_COLOR
+      value: "True"
+  networkAttachments: (3)
+    - ctlplane
+  nodeTemplate: (4)
+    ansible:
+      ansibleUser: cloud-admin (5)
+      ansibleVars: (6)
+        edpm_network_config_template: | (7)
+          ---
+          {% set mtu_list = [ctlplane_mtu] %}
+          {% for network in nodeset_networks %}
+          {{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
+          {%- endfor %}
+          {% set min_viable_mtu = mtu_list | max %}
+          network_config:
+          - type: ovs_bridge
+            name: {{ neutron_physical_bridge_name }}
+            mtu: {{ min_viable_mtu }}
+            use_dhcp: false
+            dns_servers: {{ ctlplane_dns_nameservers }}
+            domain: {{ dns_search_domains }}
+            addresses:
+            - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
+            routes: {{ ctlplane_host_routes }}
+            members:
+            - type: interface
+              name: nic1
+              mtu: {{ min_viable_mtu }}
+              # force the MAC address of the bridge to this interface
+              primary: true
+          {% for network in nodeset_networks %}
+            - type: vlan
+              mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
+              vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
+              addresses:
+              - ip_netmask:
+                  {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
+              routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
+          {% endfor %}
+        edpm_nodes_validation_validate_controllers_icmp: false
+        edpm_nodes_validation_validate_gateway_icmp: false
+        edpm_sshd_allowed_ranges:
+          - 192.168.111.0/24
+        enable_debug: false
+        gather_facts: false
+        neutron_physical_bridge_name: br-ex
+        neutron_public_interface_name: eth0
+    ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret (8)
+    networks: (9)
+      - defaultRoute: true
+        name: ctlplane
+        subnetName: subnet1
+      - name: internalapi
+        subnetName: subnet1
+      - name: storage
+        subnetName: subnet1
+      - name: tenant
+        subnetName: subnet1
+  nodes:
+    edpm-compute-0: (10)
+      hostName: edpm-compute-0
+  preProvisioned: false
+  services: (11)
+    - bootstrap
+    - download-cache
+    - configure-network
+    - validate-network
+    - install-os
+    - configure-os
+    - ssh-known-hosts
+    - run-os
+    - reboot-os
+    - install-certs
+    - ovn
+    - neutron-metadata
+    - libvirt
+    - nova
+    - telemetry
+  tlsEnabled: true
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1Configure the bare metal template for bare metal nodes that must be provisioned when creating the resource.
2Optional: A list of environment variables to pass to the pod.
3The networks the ansibleee-runner connects to, specified as a list of netattach resource names.
4The common configuration to apply to all nodes in this set of nodes.
5The user associated with the secret you created in Creating the SSH key secrets.
6The Ansible variables that customize the set of nodes. For a complete list of Ansible variables, see https://openstack-k8s-operators.github.io/edpm-ansible/.
7The network configuration template to apply to nodes in the set. For sample templates, see https://github.com/openstack-k8s-operators/edpm-ansible/tree/main/roles/edpm_network_config/templates.
8The name of the secret that you created in Creating the SSH key secrets.
9Networks for the bare metal nodes.
10The node definition reference, for example, edpm-compute-0. Each node in the node set must have a node definition.
11The services that are deployed on the data plane nodes in this OpenStackDataPlaneNodeSet CR.
+
+
+
+

Data plane conditions and states

+
+

Each data plane resource has a series of conditions within their status subresource that indicates the overall state of the resource, including its deployment progress.

+
+
+

For an OpenStackDataPlaneNodeSet, until an OpenStackDataPlaneDeployment has been started and finished successfully, the Ready condition is False. When the deployment succeeds, the Ready condition is set to True. A subsequent deployment sets the Ready condition to False until the deployment succeeds, when the Ready condition is set to True.

+
+ + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1. OpenStackDataPlaneNodeSet CR conditions
ConditionDescription
+

Ready

+
+
    +
  • +

    "True": The OpenStackDataPlaneNodeSet CR is successfully deployed.

    +
  • +
  • +

    "False": The deployment is not yet requested or has failed, or there are other failed conditions.

    +
  • +
+
+

SetupReady

+
+

"True": All setup tasks for a resource are complete. Setup tasks include verifying the SSH key secret, verifying other fields on the resource, and creating the Ansible inventory for each resource. Each service-specific condition is set to "True" when that service completes deployment. You can check the service conditions to see which services have completed their deployment, or which services failed.

+
+

DeploymentReady

+
+

"True": The NodeSet has been successfully deployed.

+
+

InputReady

+
+

"True": The required inputs are available and ready.

+
+

NodeSetDNSDataReady

+
+

"True": DNSData resources are ready.

+
+

NodeSetIPReservationReady

+
+

"True": The IPSet resources are ready.

+
+

NodeSetBaremetalProvisionReady

+
+

"True": Bare metal nodes are provisioned and ready.

+
+ + ++++ + + + + + + + + + + + + + + + + + + + + +
Table 2. OpenStackDataPlaneNodeSet status fields
Status fieldDescription
+

Deployed

+
+
    +
  • +

    "True": The OpenStackDataPlaneNodeSet CR is successfully deployed.

    +
  • +
  • +

    "False": The deployment is not yet requested or has failed, or there are other failed conditions.

    +
  • +
+
+

DNSClusterAddresses

+
+

CtlplaneSearchDomain

+
+ + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 3. OpenStackDataPlaneDeployment CR conditions
ConditionDescription
+

Ready

+
+
    +
  • +

    "True": The data plane is successfully deployed.

    +
  • +
  • +

    "False": The data plane deployment failed, or there are other failed conditions.

    +
  • +
+
+

DeploymentReady

+
+

"True": The data plane is successfully deployed.

+
+

InputReady

+
+

"True": The required inputs are available and ready.

+
+

<NodeSet> Deployment Ready

+
+

"True": The deployment has succeeded for the named NodeSet, indicating all services for the NodeSet have succeeded.

+
+

<NodeSet> <Service> Deployment Ready

+
+

"True": The deployment has succeeded for the named NodeSet and Service. Each <NodeSet> <Service> Deployment Ready specific condition is set to "True" as that service completes successfully for the named NodeSet. Once all services are complete for a NodeSet, the <NodeSet> Deployment Ready condition is set to "True". The service conditions indicate which services have completed their deployment, or which services failed and for which NodeSets.

+
+ + ++++ + + + + + + + + + + + + +
Table 4. OpenStackDataPlaneDeployment status fields
Status fieldDescription
+

Deployed

+
+
    +
  • +

    "True": The data plane is successfully deployed. All Services for all NodeSets have succeeded.

    +
  • +
  • +

    "False": The deployment is not yet requested or has failed, or there are other failed conditions.

    +
  • +
+
+ + ++++ + + + + + + + + + + + + +
Table 5. OpenStackDataPlaneService CR conditions
ConditionDescription
+

Ready

+
+

"True": The service has been created and is ready for use. +"False": The service has failed to be created.

+
+
+
+

Provisioning bare metal data plane nodes

+
+

Provisioning bare metal nodes on the data plane is supported with the Red Hat OpenShift +Container Platform (RHOCP) Cluster Baremetal Operator (CBO). The CBO is a RHOCP Operator +responsible for deploying all the components that are required to provision bare metal +nodes within the RHOCP cluster, including the Bare Metal Operator (BMO) and Ironic +containers.

+
+
+

Installer-Provisioned Infrastructure

+
+

CBO is enabled by default on RHOCP clusters that are installed with the baremetal +installer-provisioned infrastructure. You can configure installer-provisioned clusters +with a provisioning network to enable both virtual media and network boot installations. +You can alternatively configure an installer-provisioned cluster without a provisioning +network so that only virtual media provisioning is possible.

+
+
+
+

Assisted Installer Provisioned Infrastructure

+
+

You can enable CBO on clusters installed with the Assisted Installer, and you can manually +add the provisioning network to the Assisted Installer cluster after installation.

+
+
+
+

User Provisioned Infrastructure

+
+

You can activate CBO on RHOCP clusters installed with user-provisioned infrastructure by +creating a Provisioning CR. You cannot add a provisioning network to a user-provisioned +cluster.

+
+
+

For user-provisioned insfrastructure a provisioning CR has to be created manually as below:

+
+
+
+
apiVersion: metal3.io/v1alpha1
+kind: Provisioning
+metadata:
+  name: provisioning-configuration
+spec:
+  provisioningNetwork: "Disabled"
+  watchAllNamespaces: false
+
+
+
+

BMO manages the available hosts on clusters and performs the following operations:

+
+
+
    +
  • +

    Inspects node hardware details and reports them to the corresponding BareMetalHost CR. +This includes information about CPUs, RAM, disks and NICs.

    +
  • +
  • +

    Provisions nodes with a specific image.

    +
  • +
  • +

    Cleans node disk contents before and after provisioning.

    +
  • +
+
+
+
+

Provisioning Nodes with OpenStackDataPlaneNodeSet

+
+

Before deploying dataplane nodes on baremetal, ensure that CBO has been enabled/activated +with clusters installed with the different installers mentioned above.

+
+
+

Sufficient number of edpm node BareMetalHost(BMH) CRs should be created and be in +Available state (after inspection).By default baremetal-operator would be looking +for BMHs in the openshift-machine-api namespace.

+
+
+

Provisioning resource should be patched to watch all namespaces with watchAllNamespaces: true +as the secrets would be created in openstack namespace, in spite of BMHs in openshift-machine-api +namespace.

+
+
+
+
$ oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'
+
+
+
+

Sample BMH spec:

+
+
+
+
apiVersion: metal3.io/v1alpha1
+kind: BareMetalHost
+metadata:
+  name: edpm-compute-01
+  namespace: openstack
+  labels:
+    app: openstack
+    workload: compute
+spec:
+  bmc:
+    address: redfish+http://192.168.111.1:8000/redfish/v1/Systems/e8efd888-f844-4fe0-9e2e-498f4ab7806d
+    credentialsName: node-bmc-secret
+  bootMACAddress: 00:c7:e4:a7:e7:f3
+  bootMode: UEFI
+  online: false
+
+
+
+

BMH labels should be set appropriately for the desired nodes so that it can be used +by the bmhLabelSelector in the OpenStackDataPlaneNodeSet spec.

+
+
+

For virtual-media provisioning BMC address should use virtual-media as below.

+
+
+
+
bmc:
+  address: redfish-virtualmedia+http://192.168.111.1:8000/redfish/v1/Systems/e8efd888-f844-4fe0-9e2e-498f4ab7806d
+
+
+
+

To provision the baremetal nodes for edpm, OpenStackDataPlaneNodeSet spec should have the +baremetalSetTemplate section as show below. Other than bmhLabelSelector, hardwareReqs +field can also be provided for appropriate BMH selection. To select a particular BMH for a +node, bmhLabelSelector can be provided in the node section of the OpenStackDataPlaneNodeSet +spec. These labels would be used in addition to the labels set in baremetalSetTemplate to +select BMHs for the node.

+
+
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneNodeSet
+metadata:
+  name: openstack-edpm
+spec:
+  baremetalSetTemplate:
+    bmhLabelSelector:
+      app: openstack
+      workload: compute
+    ctlplaneInterface: enp1s0
+    cloudUserName: cloud-admin
+  nodes:
+    edpm-compute-0
+      hostName: edpm-compute-0
+      ansible:
+        ansibleHost: 192.168.122.100
+      bmhLabelSelector:
+        nodeName: edpm-compute-01
+
+
+
+
Relevant Status Condition
+
+

NodeSetBaremetalProvisionReady condition in status condtions reflects the status of +baremetal provisioning as shown below.

+
+
+
+
$ oc get openstackdataplanenodeset openstack-edpm-ipam -o json | jq '.status.conditions[] | select(.type=="NodeSetBaremetalProvisionReady")'
+{
+  "lastTransitionTime": "2024-02-01T04:41:58Z",
+  "message": "NodeSetBaremetalProvisionReady ready",
+  "reason": "Ready",
+  "status": "True",
+  "type": "NodeSetBaremetalProvisionReady"
+}
+
+
+
+
+
+
+

Deploying the data plane

+
+

You use the OpenStackDataPlaneDeployment CRD to configure the services on the data plane nodes and deploy the data plane. Create an OpenStackDataPlaneDeployment custom resource (CR) that deploys each of your OpenStackDataPlaneNodeSet CRs.

+
+
+
Procedure
+
    +
  1. +

    Create an OpenStackDataPlaneDeployment CR and save it to a file named openstack-edpm-deploy.yaml on your workstation.

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneDeployment
    +metadata:
    +  name: edpm-deployment-ipam
    +spec:
    +  nodeSets:
    +    - openstack-edpm-ipam
    +    - <nodeSet_name>
    +    - ...
    +    - <nodeSet_name>
    +
    +
    +
    +
      +
    • +

      Replace <nodeSet_name> with the names of the OpenStackDataPlaneNodeSet CRs that you want to include in your data plane deployment.

      +
    • +
    • +

      You can optionally provide ansibleJobNodeSelector to run the ansible jobs on specific set of OCP worker nodes. For example, worker nodes with ctlplane network, as ansible jobs require ctlplane NAD.

      +
      +
      +
      apiVersion: dataplane.openstack.org/v1beta1
      +kind: OpenStackDataPlaneDeployment
      +metadata:
      +  name: edpm-deployment-ipam
      +spec:
      +  nodeSets:
      +    - openstack-edpm-ipam
      +    - <nodeSet_name>
      +    - ...
      +    - <nodeSet_name>
      +  ansibleJobNodeSelector:
      +    nodeWith: ctlplane
      +
      +
      +
    • +
    +
    +
  2. +
  3. +

    Save the openstack-edpm-deploy.yaml deployment file.

    +
  4. +
  5. +

    Deploy the data plane:

    +
    +
    +
    $ oc create -f openstack-edpm-deploy.yaml
    +
    +
    +
    +

    You can view the Ansible logs while the deployment executes:

    +
    +
    +
    +
    $ oc get pod -l app=openstackansibleee -w
    +$ oc logs -l app=openstackansibleee -f --max-log-requests 20
    +
    +
    +
  6. +
  7. +

    Verify that the data plane is deployed:

    +
    +
    +
    $ oc get openstackdataplanedeployment
    +NAME             	STATUS   MESSAGE
    +edpm-deployment-ipam   True     Setup Complete
    +
    +
    +$ oc get openstackdataplanenodeset
    +NAME             	STATUS   MESSAGE
    +openstack-edpm-ipam   True     NodeSet Ready
    +
    +
    +
    +

    For information on the meaning of the returned status, see Data plane conditions and states.

    +
    +
    +

    If the status indicates that the data plane has not been deployed, then troubleshoot the deployment. For information, see Troubleshooting the data plane creation and deployment.

    +
    +
  8. +
  9. +

    Map the Compute nodes to the Compute cell that they are connected to:

    +
    +
    +
    $ oc rsh nova-cell0-conductor-0 nova-manage cell_v2 discover_hosts --verbose
    +
    +
    +
    +

    If you did not create additional cells, this command maps the Compute nodes to cell1.

    +
    +
  10. +
  11. +

    Access the remote shell for the openstackclient pod and verify that the deployed Compute nodes are visible on the control plane:

    +
    +
    +
    $ oc rsh -n openstack openstackclient
    +$ openstack hypervisor list
    +
    +
    +
  12. +
+
+
+
+

Persistent logs

+
+

For enabling persistent logging:

+
+
+
    +
  1. +

    Create a PersistentVolume and a PersistentVolumeClaim

    +
  2. +
  3. +

    Mount /runner/artifacts into the PersistentVolume through extraMounts field

    +
  4. +
+
+
Example:
+
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneNodeSet
+spec:
+  ...
+  nodeTemplate:
+    extraMounts:
+      - extraVolType: Logs
+        volumes:
+        - name: ansible-logs
+          persistentVolumeClaim:
+            claimName: <PersistentVolumeClaim name>
+        mounts:
+        - name: ansible-logs
+          mountPath: "/runner/artifacts"
+
+
+
+

Accessing the logs

+
+
    +
  1. +

    Query for pods with the OpenStackAnsibleEE label

    +
    +
    +
    oc get pods -l app=openstackansibleee
    +
    +
    +
    +

    Sample output:

    +
    +
    +
    +
    configure-network-edpm-compute-j6r4l   0/1     Completed           0          3m36s
    +validate-network-edpm-compute-6g7n9    0/1     Pending             0          0s
    +validate-network-edpm-compute-6g7n9    0/1     ContainerCreating   0          11s
    +validate-network-edpm-compute-6g7n9    1/1     Running             0          13s
    +
    +
    +
  2. +
  3. +

    SSH into a pod

    +
    +

    When a pod is running:

    +
    +
    +
    +
    oc rsh validate-network-edpm-compute-6g7n9
    +
    +
    +
    +

    When a pod is not running:

    +
    +
    +
    +
    oc debug configure-network-edpm-compute-j6r4l
    +
    +
    +
  4. +
  5. +

    List the directories under /runner/artifacts

    +
    +
    +
    ls /runner/artifacts
    +
    +
    +
    +

    Sample output:

    +
    +
    +
    +
    configure-network-edpm-compute
    +validate-network-edpm-compute
    +
    +
    +
  6. +
  7. +

    Get the stdout of the desired artifact

    +
    +
    +
    cat /runner/artifacts/configure-network-edpm-compute/stdout
    +
    +
    +
  8. +
+
+
+
+
+

Troubleshooting data plane creation and deployment

+
+

Each data plane deployment in the environment has associated services. Each of these services have a job condition message that matches to the current status of the AnsibleEE job executing for that service. This information can be used to troubleshoot deployments when services are not deploying or operating correctly.

+
+
+
Procedure
+
    +
  1. +

    Determine the name and status of all deployments:

    +
    +
    +
    $ oc get openstackdataplanedeployment
    +
    +
    +
    +

    The following example output shows two deployments currently in progress:

    +
    +
    +
    +
    $ oc get openstackdataplanedeployment
    +
    +NAME                   NODESETS             STATUS   MESSAGE
    +openstack-edpm-ipam1   ["openstack-edpm"]   False    Deployment in progress
    +openstack-edpm-ipam2   ["openstack-edpm"]   False    Deployment in progress
    +
    +
    +
  2. +
  3. +

    Determine the name and status of all services and their job condition:

    +
    +
    +
    $ oc get openstackansibleee
    +
    +
    +
    +

    The following example output shows all services and their job condition for all current deployments:

    +
    +
    +
    +
    $ oc get openstackansibleee
    +
    +NAME                             NETWORKATTACHMENTS   STATUS   MESSAGE
    +bootstrap-openstack-edpm         ["ctlplane"]         True     Job completed
    +download-cache-openstack-edpm    ["ctlplane"]         False    Job in progress
    +repo-setup-openstack-edpm        ["ctlplane"]         True     Job completed
    +validate-network-another-osdpd   ["ctlplane"]         False    Job in progress
    +
    +
    +
  4. +
  5. +

    Filter for the name and service for a specific deployment:

    +
    +
    +
    $ oc get openstackansibleee -l openstackdataplanedeployment=<deployment_name>
    +
    +
    +
    +
      +
    • +

      Replace <deployment_name> with the name of the deployment to use to filter the services list.

      +
      +

      The following example filters the list to only show services and their job condition for the openstack-edpm-ipam1 deployment:

      +
      +
      +
      +
      $ oc get openstackansibleee -l openstackdataplanedeployment=openstack-edpm-ipam1
      +
      +NAME                            NETWORKATTACHMENTS   STATUS   MESSAGE
      +bootstrap-openstack-edpm        ["ctlplane"]         True     Job completed
      +download-cache-openstack-edpm   ["ctlplane"]         False    Job in progress
      +repo-setup-openstack-edpm       ["ctlplane"]         True     Job completed
      +
      +
      +
    • +
    +
    +
  6. +
+
+
+
Job Condition Messages
+

AnsibleEE jobs have an associated condition message that indicates the current state of the service job. This condition message is displayed in the MESSAGE field of the oc get openstackansibleee command output. Jobs return one of the following conditions when queried:

+
+
+
    +
  • +

    Job not started: The job has not started.

    +
  • +
  • +

    Job in progress: The job is currently running.

    +
  • +
  • +

    Job completed: The job execution is complete.

    +
  • +
  • +

    Job error occured <error_message>: The job execution stopped unexpectedly. The <error_message> is replaced with a specific error message.

    +
  • +
+
+
+

To further investigate a service displaying a particular job condition message, use the command oc logs job/<service> to display the logs associated with that service. For example, to display the logs for the repo-setup-openstack-edpm service, use the command oc logs job/repo-setup-openstack-edpm.

+
+
+
Check service pod status reports
+

During reconciliation of OpenStackDataPlaneDeployment resources, Kubernetes Pods associated with OpenStackAnsibleEE jobs are marked with label openstackdataplanedeployment=<OpenStackDataPlaneDeployment.Name>. +This allows selection and monitoring of these pods using CLI commands.

+
+
+

When encountering failures within OpenStackAnsibleEE jobs, the resulting Kubernetes Pod reports will be formatted with an error message in the following manner: openstackansibleee job <POD_NAME> failed due to <ERROR> with message: <ERROR_MSG>.

+
+
+

These reports can provide valuable insights into the cause of the failure and aid in resolving related issues.

+
+
+
+

Deploying an OpenStackDataPlaneNodeSet with Internal TLS Enabled

+
+

When an OpenStackDataPlaneNodeSet is deployed with TLS Enabled, communications +between dataplane services and with control plane services can be encrypted using +TLS connections.

+
+
+

Functionality has been added to the openstack-operator to generate the needed +certificates for all compute nodes in the nodeset. The details on how to enable +this functionality and how dataplane services (including custom services) can take +advantage of this functionality is provided here.

+
+
+

In addtion, an attribute has been added to the OpenStackDataplaneService spec to +allow a CACert TLS bundle to be provided.

+
+
+

Prerequisites

+
+

Certificates for dataplane services are generated by certmanager issuers, which are +referenced in the OpenStackDataplaneService attributes below. These issuers must be +created beforehand.

+
+
+

In addition, OpenStackDataplaneService contains an attribute that allows the deployer +to specify a secret containing a TLS CA bundle. This secret should also be created +beforehand.

+
+
+
+

Basic deloyment steps

+
+
    +
  1. +

    Create the issuers and cacert bundle secrets as described in the pre-requisites above. +These were likely created as part of the control plane deployment. +(TODO - link to issuer/cacert docs when available)

    +
  2. +
  3. +

    Enable TLS on the OpenStackDataPlaneNodeSet and create the nodeset. Ensure that the +install-certs or similar service (described below) is in the list of services before +any services that require certs.

    +
  4. +
  5. +

    Deploy the OpenStackDataPlane. Certs should be created and copied to the compute nodes +in the nodeset.

    +
  6. +
+
+
+
+

Enabling TLS on an OpenStackDataPlaneNodeSet

+
+

The OpenstackDataPlaneNodeSet has an attribute tlsEnabled, which defaults to false. +The certficate generation code will be executed only if this attribute is set to true.

+
+
+
+

OpenStackDataplaneService attributes

+
+

Certificate generation is controlled by several attributes in the OpenstackDataplaneService +specification. An example is provided below.

+
+
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneService
+metadata:
+  name: libvirt
+spec:
+  label: libvirt
+  playbook: osp.edpm.libvirt
+  tlsCerts:
+    default:
+      contents:
+        - dnsnames
+        - ips
+      networks:
+        - CtlPlane
+      keyUsages:
+        - digital signature
+        - key encipherment
+        - server auth
+        - client auth
+      issuer: osp-rootca-issuer-internal
+  caCerts: combined-ca-bundle
+
+
+
+

A more minimal configuration is provided below:

+
+
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneService
+metadata:
+  name: service1
+spec:
+  label: service1
+  playbook: osp.edpm.service1
+  tlsCerts:
+    default:
+      contents:
+        - dnsnames
+  caCerts: combined-ca-bundle
+
+
+
+
caCerts
+
+

This optional attribute is a string pointing to the secret containing the TLS CA certificate +bundle to be mounted for the dataplane service. This secret is expected to be created in +the same namespace (default: openstack) beforehand.

+
+
+
+
tlsCerts
+
+

Not all dataplane services will require TLS certificates. For example, dataplane services +that install the OS or download caches do not need TLS certificates.

+
+
+

tlsCerts is a map of certificates to be generated for the service. By convention, the +default pre-defined services use "default" as the hash key if only one service is needed, but this +is not required. Ultimately, the hash key will be part of the path where the cert is located.

+
+
+

Most services will only require one certificate. Some though, like libvirt, may require +more than one certificate.

+
+
+

If tlsCerts is defined (and tlsEnabled is set on the nodeset), certs will be generated as +prescribed by the following attributes:

+
+
+
contents
+
+

This attribute describes what information is included in the subject alternative names (SAN) +in the certificate. At this time, only two values are possible ("dnsnames" and "ips"). +In the libvirt example, both attributes are added. This attribute is required.

+
+
+
+
networks
+
+

This attribute describes which networks will be added to the SAN. For instance, in the libvirt +example configuration, the DNSName and IPAdress for the node on the Ctlplane will be added to the SAN. +If networks is not defined, the relevant contents for all networks will be added to the SAN. +So, in the configuration for service1 above, dns names for all networks on the node are added +to the SAN.

+
+
+
+
issuer
+
+

This attribute corresponds to the label for the certmanager issuer that is used to issue the certificate. +The label can be different from the name of the issuer. There can be only one issuer with the specified label. +If more than one issuer has the label, an error is generated. If the issuers attribute is not set, as in the +configuration for service1, the certificates are issued with the default root CA for internal TLS as defined +in lib-common, which is set to the label "osp-rootca-issuer-internal" for the rootca-internal issuer.

+
+
+
+
keyUsages
+
+

This attribute is a list of key uages to be included as key usage extensions in the certificate. The +strings that correspond to valid usages are provided by the certmanage api. +If this attribute is not provided, the default set of key usages as defined in lib-common. +will be used. These are "key encipherment", "digital signature" and "server auth". In the above examples, we +see that libvirt defines this attribute because the "client auth" key usage is also needed.

+
+
+
+
+
addCertMounts
+
+

This attribute specifies whether or not to mount the certificates and keys generated for all +dataplane services (for all nodes in the nodeset) in the ansible EE pod for the service. +This attribute defaults to false.

+
+
+

The current design has a special dataplane service "install-certs" that is expected to run before +any services that need certificates, and which has this attribute set to true. The purpose of this +dataplane service is to copy the certs to the correct place on the compute nodes. This dataplane +service is described in more detail below.

+
+
+
+
+

The gritty details

+
+
How the certificates are generated
+
+

When tlsEnabled is set to True on the nodeset, and tlsCerts is defined for the dataplane +service, certificates will be requested from the certmanager issuer designated in the issuer attribute +(or a default) as described above.

+
+
+

The contents of the certificate (subject name, subject alternative names, etc.) are defined using the +contents and issuer attributes as described above.

+
+
+

The certficates are generated when an OpenstackDataplaneDeployment is created, but before any ansible EE +pods are created.

+
+
+

When the certificates are created, certmanager stores the certificates in secrets which are named +"cert-<service_name>-<hash_key>-<node_name>-#". The # symbol represents the secret number, beginning with 0. +Kubernetes distributions, such as Red Hat Openshift Platform, have a maximum secret size of 1 MiB. If the size +of the created certificates and keys is larger than the maximum size of a single secret, then multiple secrets +are created. Each secret receives its number and contains the certificate, key and cacert.

+
+
+

The certificates for all the nodes in the node set for a given service are collected in secrets named +"<nodeset>-<service_name>-<hash_key>-certs-#", where the # symbol represents the generated secret +number that starts at 0. These secrets are mounted in the ansibleEE when addCertMounts is enabled.

+
+
+
+
How the certificates are transferred to the compute nodes
+
+

A dataplane service ("install-certs") has been added to added to copy over the certificates to the +compute nodes. As noted above, this service has the addCertMounts attribute set to True. It is expected +that this service will be executed before any other services that require TLS certs.

+
+
+

The service:

+
+
+
    +
  • +

    Mounts the <nodeset>-<service_name>-<hash_key>-certs-# secrets for all services that have tlsCertsEnabled` set to "true".

    +
  • +
  • +

    For each node, calls the osp.edpm.install_certs role which copies all the certificates and keys for that node to +/var/lib/openstack/certs/<service_name>/<hash_key>. The cacert bundles are copied to /var/lib/openstack/cacerts/<service_name>.

    +
  • +
+
+
+

Code should then be added to each service’s ansible role to use the certs as needed. For example, in +libvirt’s role, we move the certs and keys to standard locations on the compute host. Other roles may +mount the certs and keys into their containers using kolla or otherwise. The certs and keys for all the +services are available as needed for all services.

+
+
+
+
Whats happens when the certificates are renewed?
+
+

The secrets that store the certificates and keys that are generated by certmanager (which are named +cert-<service_name>-<hash_key>_<node_name>) are owned by certmanager. When they are created, they are labelled +using "osdp-service", "osdp-service-cert-key" and "osdpns" to indicate the dataplane service, hash key and nodeset +accordingly.

+
+
+

At the end of the deployment, these secrets are hashed and the values are stored in the secretHashes +status field of the nodeset and deployment. In this way, these cert secrets are treated in exactly the +same way as any other dataplane service related secrets.

+
+
+

Certmanager will automatically renew certificates prior to their expiration, which will result in +modifications to the secrets.

+
+
+

The deployer can periodically review the hashes for these secrets to determine if any of them have +changed - this is currently expected to be a manual process - and then may choose to invoke a new +deployment to update the certificates and keys.

+
+
+
+
How to enable cert generation for your dataplane service
+
+

Based on the above description, the steps are pretty straightforward.

+
+
+
    +
  1. +

    Add a tlsCerts attribute to your dataplane service. Set the contents, networks and issuer according +to your needs. The service1 configuration is a minimal specification and will provide a cert +with dnsNames for all the interfaces of the compute node in the SAN, issued by the internal TLS CA. +This is probably sufficient for most use cases.

    +
  2. +
  3. +

    Add a specification for a CACertBundle. This attribute can be added to mount a CACert bundle even +if no cert generation is needed.

    +
  4. +
  5. +

    The "install-certs: service should run before your service. It will copy the certs and cacerts +to a standard location. See the section above.

    +
  6. +
  7. +

    Modify your role to do something with the generated certs.

    +
  8. +
+
+
+
+
+
+

Scaling DataPlane

+
+

Scaling Out

+
+

Scale out of an existing dataplane with more edpm nodes can be achieved by adding new +nodes to the nodes section of the OpenStackDataPlaneNodeSet spec. Ensure that +there are enough BMHs in Available state in the required namespace with the desired +labels for baremetal nodes.

+
+
+
Pre-Provisioned:
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneNodeSet
+metadata:
+  name: openstack-edpm-ipam
+spec:
+  preProvisioned: True
+  nodes:
+  ...
+    edpm-compute-2:
+      hostName: edpm-compute-2
+      ansible:
+        ansibleHost: 192.168.122.102
+      networks:
+      - name: CtlPlane
+        subnetName: subnet1
+        defaultRoute: true
+        fixedIP: 192.168.122.102
+      - name: InternalApi
+        subnetName: subnet1
+      - name: Storage
+        subnetName: subnet1
+      - name: Tenant
+        subnetName: subnet1
+  ...
+
+
+
+
Baremetal:
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneNodeSet
+metadata:
+  name: openstack-edpm-ipam
+spec:
+  nodes:
+  ...
+    edpm-compute-2:
+      hostName: edpm-compute-2
+  ...
+
+
+
+ + + + + +
+ + +To deploy on the additional nodes, a new OpenStackDataPlaneDeployment CR should be +created with the OpenStackDataPlaneNodeSet in the nodeSets section. +
+
+
+
New OpenStackDataPlaneDeployment:
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneDeployment
+metadata:
+  name: new-deployment # Do not re-use the name from previous OpenStackDataPlaneDeployment
+spec:
+ nodeSets:
+   - openstack-edpm-ipam # scaled out nodeset name
+
+
+
+ + + + + +
+ + +Before applying the new OpenStackDataPlaneDeployment CR, verify +if the OpenStackDataPlaneNodeSet in the nodeSets section has reached the SetupReady status. +
+
+
+
+
$ oc wait openstackdataplanenodeset openstack-edpm-ipam --for condition=SetupReady --timeout=10m
+
+
+
+

Once deployment completes OpenStackDataPlaneNodeSet would be ready as shown below.

+
+
+
+
$ oc get openstackdataplanenodeset openstack-edpm-ipam
+NAME                  STATUS   MESSAGE
+openstack-edpm-ipam   True     NodeSet Ready
+
+
+
+

If the scaled out nodes are compute nodes, once the OpenStackDataPlaneNodeSet reaches +NodeSet Ready, nova-manage cell_v2 discover_hosts should be run to make the new +compute nodes show-up in hypervisor list and become usable.

+
+
+
+
$ oc rsh nova-cell0-conductor-0 nova-manage cell_v2 discover_hosts --verbose
+Found 2 cell mappings.
+Skipping cell0 since it does not contain hosts.
+Getting computes from cell 'cell1': 75f666d2-922d-45af-8bdb-d897a1bc9b1c
+Checking host mapping for compute host 'edpm-compute-2': 6afda7af-2953-4400-842c-a327a0e43a74
+Creating host mapping for compute host 'edpm-compute-2': 6afda7af-2953-4400-842c-a327a0e43a74
+Found 1 unmapped computes in cell: 75f666d2-922d-45af-8bdb-d897a1bc9b1c
+
+$ oc rsh openstackclient openstack hypervisor list
++--------------------------------------+-------------------------------------+-----------------+-----------------+-------+
+| ID                                   | Hypervisor Hostname                 | Hypervisor Type | Host IP         | State |
++--------------------------------------+-------------------------------------+-----------------+-----------------+-------+
+| cc05372a-27bd-4b33-985e-b0009c9e515e | edpm-compute-1.ctlplane.example.com | QEMU            | 192.168.221.101 | up    |
+| 5e3f7b5d-39fd-430c-80d1-084086bdccde | edpm-compute-0.ctlplane.example.com | QEMU            | 192.168.221.100 | up    |
+| 6afda7af-2953-4400-842c-a327a0e43a74 | edpm-compute-2.ctlplane.example.com | QEMU            | 192.168.221.102 | up    |
++--------------------------------------+-------------------------------------+-----------------+-----------------+-------+
+
+
+
+
+

Scaling Out with different configuration

+
+

If the deployment needs to be scaled out to nodes that require different +configuration (e.g. different kernel args, network config, or openstack config) +compared to the configuration in the current OpenStackDataPlaneNodeSet +then the new nodes cannot be added to the existing OpenStackDataPlaneNodeSet +but a new OpenStackDataPlaneNodeSet needs to be created that contains the +new nodes and the new configuration for those nodes. Then a new +OpenStackDataPlaneDeployment needs to be created that points to both the +existing and the new OpenStackDataPlaneNodeSets to trigger the scale out.

+
+
+ + + + + +
+ + +If only the new OpenStackDataPlaneNodeSet is included into the new +OpenStackDataPlaneDeployment then the scale out seems to succeed but will +be incomplete causing that VM move operations will fail between nodes +in the different OpenStackDataPlaneNodeSets. +
+
+
+
+

Scaling In

+
+

The procedure for removing edpm nodes from dataplane involves some manual cleanup steps +after evacuation of workload.

+
+
+

For edpm compute nodes removal following steps should be performed.

+
+
+
Disable nova-compute service
+
+
+
$ oc rsh openstackclient openstack compute service list
++--------------------------------------+----------------+------------------------+----------+---------+-------+----------------------------+
+| ID                                   | Binary         | Host                   | Zone     | Status  | State | Updated At                 |
++--------------------------------------+----------------+------------------------+----------+---------+-------+----------------------------+
+| 11105d9b-9ef7-4d6f-8d17-6eb8db175d76 | nova-conductor | nova-cell1-conductor-0 | internal | enabled | up    | 2024-02-01T03:59:42.000000 |
+| 31e2ee14-a124-4e02-b11d-87c2cdca3c56 | nova-compute   | edpm-compute-1         | nova     | enabled | up    | 2024-02-01T03:59:38.000000 |
+| bd031e6e-89d8-4839-b345-5f124ec4c07e | nova-compute   | edpm-compute-0         | nova     | enabled | up    | 2024-02-01T03:59:37.000000 |
+| f70912f9-eaaa-4caa-906f-a38e20667af4 | nova-compute   | edpm-compute-2         | nova     | enabled | up    | 2024-02-01T03:59:38.000000 |
+| 8a4622c3-0fb8-498a-81d8-a9c23c0be5fc | nova-conductor | nova-cell0-conductor-0 | internal | enabled | up    | 2024-02-01T03:59:37.000000 |
+| 5ad386ec-ac2d-4238-a671-d9402432d326 | nova-scheduler | nova-scheduler-0       | internal | enabled | up    | 2024-02-01T03:59:38.000000 |
++--------------------------------------+----------------+------------------------+----------+---------+-------+----------------------------+
+
+$ oc rsh openstackclient openstack compute service set edpm-compute-2 nova-compute --disable
+
+
+
+
+
Stop ovn and nova-compute containers
+
+

ssh to the edpm node to be removed and stop the containers.

+
+
+
+
$ ssh -i out/edpm/ansibleee-ssh-key-id_rsa cloud-admin@192.168.221.102
+
+[cloud-admin@edpm-compute-2 ~]$ sudo systemctl stop edpm_ovn_controller
+
+[cloud-admin@edpm-compute-2 ~]$ sudo systemctl stop edpm_ovn_metadata_agent
+
+[cloud-admin@edpm-compute-2 ~]$ sudo systemctl stop edpm_nova_compute
+
+
+
+
+
Delete network agents
+
+

Delete the agents for the compute nodes to be removed.

+
+
+
+
$ oc rsh openstackclient openstack network agent list
+
++--------------------------------------+------------------------------+----------------+-------------------+-------+-------+----------------+
+| ID                                   | Agent Type                   | Host           | Availability Zone | Alive | State | Binary         |
++--------------------------------------+------------------------------+----------------+-------------------+-------+-------+----------------+
+| d2b9e5d0-a406-41c2-9bc3-e74aaf113450 | OVN Controller Gateway agent | worker-0       |                   | :-)   | UP    | ovn-controller |
+| 9529e28e-522e-48f6-82e2-c5caf1cf5a14 | OVN Controller Gateway agent | worker-1       |                   | :-)   | UP    | ovn-controller |
+| 91bd4981-1e81-4fe8-b628-8581add36f13 | OVN Controller agent         | edpm-compute-1 |                   | :-)   | UP    | ovn-controller |
+| bdc1dd13-586f-4553-90d6-14348f6be150 | OVN Controller agent         | edpm-compute-0 |                   | :-)   | UP    | ovn-controller |
+| f7bb5520-27df-470b-9566-0aa7e5fef583 | OVN Controller agent         | edpm-compute-2 |                   | :-)   | UP    | ovn-controller |
++--------------------------------------+------------------------------+----------------+-------------------+-------+-------+----------------+
+
+$ oc rsh openstackclient openstack network agent delete f7bb5520-27df-470b-9566-0aa7e5fef583
+
+
+
+
+
Delete nova-compute service
+
+

Delete nova-compute service for the removed node.

+
+
+
+
$ oc rsh openstackclient openstack compute service delete f70912f9-eaaa-4caa-906f-a38e20667af4
+
+$ oc rsh openstackclient openstack hypervisor list
++--------------------------------------+-------------------------------------+-----------------+-----------------+-------+
+| ID                                   | Hypervisor Hostname                 | Hypervisor Type | Host IP         | State |
++--------------------------------------+-------------------------------------+-----------------+-----------------+-------+
+| cc05372a-27bd-4b33-985e-b0009c9e515e | edpm-compute-1.ctlplane.example.com | QEMU            | 192.168.221.101 | up    |
+| 5e3f7b5d-39fd-430c-80d1-084086bdccde | edpm-compute-0.ctlplane.example.com | QEMU            | 192.168.221.100 | up    |
++--------------------------------------+-------------------------------------+-----------------+-----------------+-------+
+
+
+
+
+
Patch OpenStackDataPlaneNodeSet to remove node
+
+

Once the cleanup is complete, patch OpenStackDataPlaneNodeSet CR to remove the +nodes from the nodes section.

+
+
+
+
$ oc patch openstackdataplanenodeset/openstack-edpm --type json --patch '[{ "op": "remove", "path": "/spec/nodes/edpm-compute-2" }]'
+openstackdataplanenodeset.dataplane.openstack.org/openstack-edpm patched
+
+
+
+

For baremetal provisioned node this would start de-provisioning the removed node.

+
+
+
+
$ oc get bmh
+NAME         STATE            CONSUMER              ONLINE   ERROR   AGE
+compute-01   provisioned      openstack-edpm        true             2d21h
+compute-02   provisioned      openstack-edpm        true             2d21h
+compute-03   deprovisioning                         false            43h
+
+
+
+
+
+

Scaling In by removing a NodeSet

+
+

If a full OpenStackDataPlaneNodeSet has to be removed, steps mentioned +above to disable nova-compute services, stop the ovn and nova-compute +containers on nodes, delete network agents and delete nova-compute services +should be done for each compute. Finally the OpenStackDataPlaneNodeSet CR can +be deleted. If this OpenStackDataPlaneNodeSet is the only one listing the +ssh-known-hosts service, then this service needs to be added to one or more +of the remaining OpenStackDataPlaneNodeSets. To remove the ssh host keys of +the removed nodes of this OpenStackDataPlaneNodeSet from other nodes a new +OpenStackDataPlaneDeployment needs to be created that points to all the +remaining OpenStackDataPlaneNodeSets.

+
+
+
+
+

AnsibleEE runner variables

+
+

Number of variables can be used to modify behavior of the AnsibleEE runner +executing given job, such as timeouts and caching. +These are expanded in the env/settings file. +And further documented in Ansible Runner docs.

+
+
+

All of these variables are left set to sensible defaults, nevertheless, some changes may be necessary, +depending on particulars of individual deployments.

+
+
+
+

Ansible variables

+
+

The list of ansible variables that can be set under ansibleVars is extensive. +To understand what variables are available for each service, see the +documentation in the Create +OpenStackDataPlaneServices section.

+
+
+

Common configurations that can be enabled with ansibleVars are also +documented at Common Configurations.

+
+
+ + + + + +
+ + +
+

In the case of ansibleVars, the value is merged with that of the value from +the nodeTemplate. This makes it so that the entire value of ansibleVars from +the nodeTemplate does not need to be reproduced for each node just to set a few +node specific values.

+
+
+
+
+

Importing ansible variables

+
+

ansibleVarsFrom allows you to set ansible variables for an OpenStackDataPlaneNodeSet by +referencing either a ConfigMap or a Secret. When you use ansibleVarsFrom, all the key-value +pairs in the referenced ConfigMap or Secret are set as environment variables for the OpenStackDataPlaneNodeSet. +You can also specify a common prefix string.

+
+
+
Example:
+

Adding ansible variables from ConfigMap:

+
+
+
    +
  1. +

    Create a ConfigMap containing the ansible variables

    +
    +
    +
    apiVersion: v1
    +kind: ConfigMap
    +metadata:
    +  name: common-edpm-vars
    +data:
    +  edpm_config_var1: value1
    +  edpm_config_var2: value2
    +
    +
    +
  2. +
  3. +

    Update the ansibleVarsFrom with the ConfigMap name

    +
    +
    +
    ansibleVarsFrom:
    +  - configMapRef:
    +        name: common-edpm-vars
    +
    +
    +
  4. +
+
+
+
Example:
+

Execute subscription-manager register from corresponding Secret

+
+
+
    +
  1. +

    Create a Secret containing the credentials

    +
    +
    +
    apiVersion: v1
    +kind: Secret
    +metadata:
    +  name: subscription-manager
    +data:
    +  username: <base64 encoded username>
    +  password: <base64 encoded password>
    +
    +
    +
  2. +
  3. +

    Update the ansibleVarsFrom with the Secret name, and ansibleVars with the variables generated from the Secret

    +
    +
    +
    ansibleVarsFrom:
    +  - prefix: subscription_manager_
    +    secretRef:
    +      name: subscription-manager
    +ansibleVars:
    +    edpm_bootstrap_command: |
    +      subscription-manager register --username {{ subscription_manager_username }} --password {{ subscription_manager_password }}
    +
    +
    +
    + + + + + +
    + + +
    +

    Values defined by an ansibleVars with a duplicate key take precedence

    +
    +
    +
    +
  4. +
+
+
+
+
+

Common Configurations

+
+

This page documents some of the common configurations that can be enabled +through ansible variables. The ansible variables that affect the configuration +of the ansible executions are set in the ansibleVars field on the dataplane +resources.

+
+
+

The full set of ansible variables available for configuration are documented +within each role in the +edpm-ansible +repository.

+
+
+

Initial bootstrap command

+
+

Variable: edpm_bootstrap_command +Type: string +Role: edpm_bootstrap

+
+
+

The edpm_bootstrap_command variable can be used to pass a shell command(s) that +will be executed as early as possible in the deployment as part of the +configure-network service. If the services list is customized with services +that execute prior to configure-network then the command(s) specified by +edpm_bootstrap_command would run after the custom services.

+
+
+

The string value for edpm_bootstrap_command is passed directly to the ansible +shell. +As such, when using multiple shell commands, the | character must be used to +preserve new lines in the YAML value:

+
+
+
+
edpm_bootstrap_command: |
+    command 1
+    command 2
+    etc.
+
+
+
+
Using edpm_bootstrap_command for system registration
+
+

edpm_bootstrap_command can be used to perform system registration in order to +enable needed package repositories. Choose a registration method (either Portal +or Satellite) and refer to the provided links below for instructions to create +the registration commands.

+
+
+
Red Hat Customer Portal registration
+
+

The registration commands for the Red Hat Customer Portal are documented at +https://access.redhat.com/solutions/253273.

+
+
+
+
Red Hat Satellite registration
+ +
+

If not using Satellite version 6.13, then refer to the specific version of the +documentation for the version of Satellite that is in use.

+
+
+
+
+
Customizing container image locations
+
+

The container images used by the various roles from edpm-ansible can pull from +customized locations. The ansible variables used to set the locations and their +default values are:

+
+
+
+
edpm_iscsid_image: "quay.io/podified-antelope-centos9/openstack-iscsid
+edpm_logrotate_crond_image: "quay.io/podified-antelope-centos9/openstack-cron
+edpm_ovn_controller_agent_image: "quay.io/podified-antelope-centos9/openstack-ovn-controller
+edpm_frr_image: "quay.io/podified-antelope-centos9/openstack-frr
+edpm_ovn_bgp_agent_image: "quay.io/podified-antelope-centos9/openstack-ovn-bgp-agent
+edpm_ovn_bgp_agent_local_ovn_nb_db_image: "quay.io/podified-antelope-centos9/openstack-ovn-nb-db-server
+edpm_ovn_bgp_agent_local_ovn_sb_db_image: "quay.io/podified-antelope-centos9/openstack-ovn-sb-db-server
+edpm_ovn_bgp_agent_local_ovn_northd_image: "quay.io/podified-antelope-centos9/openstack-ovn-northd
+edpm_ovn_bgp_agent_local_ovn_controller_image: "quay.io/podified-antelope-centos9/openstack-ovn-controller
+edpm_telemetry_node_exporter_image: quay.io/prometheus/node-exporter
+edpm_telemetry_kepler_image: "quay.io/sustainable_computing_io/kepler"
+edpm_telemetry_ceilometer_compute_image: quay.io/podified-antelope-centos9/openstack-ceilometer-compute
+edpm_telemetry_ceilometer_ipmi_image: quay.io/podified-antelope-centos9/openstack-ceilometer-ipmi
+edpm_nova_compute_image: "quay.io/podified-antelope-centos9/openstack-nova-compute
+edpm_neutron_sriov_image: "quay.io/podified-antelope-centos9/openstack-neutron-sriov-agent
+edpm_multipathd_image: "quay.io/podified-antelope-centos9/openstack-multipathd
+edpm_neutron_dhcp_image: "quay.io/podified-antelope-centos9/openstack-neutron-dhcp-agent
+edpm_neutron_metadata_agent_image: "quay.io/podified-antelope-centos9/openstack-neutron-metadata-agent-ovn
+edpm_neutron_ovn_agent_image: "quay.io/podified-antelope-centos9/openstack-neutron-ovn-agent
+edpm_swift_proxy_image: "quay.io/podified-antelope-centos9/openstack-swift-proxy-server
+edpm_swift_account_image: "quay.io/podified-antelope-centos9/openstack-swift-account
+edpm_swift_container_image: "quay.io/podified-antelope-centos9/openstack-swift-container
+edpm_swift_object_image: "quay.io/podified-antelope-centos9/openstack-swift-object
+
+
+
+

Set any of the above ansible variables within the ansibleVars sections of +OpenStackDataPlaneNodeSet to customize the container image locations.

+
+
+
+
+

Network Isolation

+
+

Network Isolation refers to the practice of separating network traffic by +function, and configuring the networks on dataplane nodes. Nodes will need +connectivity to various control plane services running on OCP. These services +may be bound to different networks. Each of those networks needs to be +configured as required on dataplane nodes.

+
+
+

For further details on the network architecture of the control plane, see +https://github.com/openstack-k8s-operators/docs/blob/main/networking.md.

+
+
+
Configuring networking with edpm_network_config
+
+

The +edpm_network_config +ansible role is responsible for configuring networking on dataplane nodes.

+
+
+

The edpm_network_config_template variable specifies the contents of a jinja2 +template that describes the networking configuration to be applied. The +template itself also contains variables that can be used to customize the +networking configuration for a specific node (IP addresses, interface names, +routes, etc). See template examples provided in the nic-config-samples directory: +https://github.com/openstack-k8s-operators/openstack-operator/tree/main/config/samples/nic-config-samples.

+
+
+

These samples can be used inline within the OpenStackDataPlaneNodeSet CR +under then ansibleVars section (see our current sample files for examples +of the inline implementation).

+
+
+

The following is an example +ansibleVars +field that shows defining the variables that configure the +edpm_network_config role.

+
+
+
+
ansibleVars:
+  ctlplane_ip: 192.168.122.100
+  internalapi_ip: 172.17.0.100
+  storage_ip: 172.18.0.100
+  tenant_ip: 172.19.0.100
+  fqdn_internalapi: edpm-compute-0.example.com
+  edpm_network_config_template: |
+	 ---
+	 {% set mtu_list = [ctlplane_mtu] %}
+	 {% for network in nodeset_networks %}
+	 {{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
+	 {%- endfor %}
+	 {% set min_viable_mtu = mtu_list | max %}
+	 network_config:
+	 - type: ovs_bridge
+	 name: {{ neutron_physical_bridge_name }}
+	 mtu: {{ min_viable_mtu }}
+	 use_dhcp: false
+	 dns_servers: {{ ctlplane_dns_nameservers }}
+	 domain: {{ dns_search_domains }}
+	 addresses:
+	 - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
+	 routes: {{ ctlplane_host_routes }}
+	 members:
+	 - type: interface
+	 	name: nic1
+	 	mtu: {{ min_viable_mtu }}
+	 	# force the MAC address of the bridge to this interface
+	 	primary: true
+	 {% for network in nodeset_networks %}
+	 - type: vlan
+	 	mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
+	 	vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
+	 	addresses:
+	 	- ip_netmask:
+	 		{{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
+	 	routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
+	 {% endfor %}
+
+
+
+

This configuration would be applied by the +configure-network service when +it’s executed.

+
+
+
+
Network attachment definitions
+
+

The +NetworkAttachmentDefinition +resource is used to describe how pods can be attached to different networks. +Network attachment definitions can be specified on the +OpenStackDataPlaneNodeSet resource using the +NetworkAttachments field.

+
+
+

The network attachments are used to describe which networks will be connected +to the pod that is running ansible-runner. They do not enable networks on the +dataplane nodes themselves. For example, adding the internalapi network +attachment to NetworkAttachments means the ansible-runner pod will be +connected to the internalapi network. This can enable scenarios where ansible +needs to connect to different networks.

+
+
+
+
+
+

Interacting with Ansible

+
+

When a dataplane service is executed during a role deployment, a corresponding +OpenStackAnsibleEE +resource is created. The OpenStackAnsibleEE resource is the associated ansible +execution with the service.

+
+
+

OpenStackAnsibleEE resources are reconciled by +openstack-ansibleee-operator. +During reconciliation a +Job +resource is created which in turn creates a +Pod resource. The pod is started with an Ansible Execution Environment image, and runs ansible-runner.

+
+
+

Retrieving and inspecting OpenStackAnsibleEE resources

+
+

During (or after) a deployment the instances of OpenStackAnsibleEE can be +retrieved from the API.

+
+
+
+
oc get openstackansibleee
+
+
+
+

Sample output when the default list of services:

+
+
+
+
NAME                                                  NETWORKATTACHMENTS   STATUS   MESSAGE
+configure-network-edpm-compute                        True     Job completed
+configure-os-edpm-compute                             True     Job completed
+install-os-edpm-compute                               True     Job completed
+libvirt-edpm-compute                                  True     Job completed
+nova-edpm-compute                                     True     Job completed
+run-os-edpm-compute                                   True     Job completed
+telemetry-edpm-compute                                True     Job completed
+validate-network-edpm-compute                         True     Job completed
+
+
+
+

Querying for pods with the OpenStackAnsibleEE label

+
+
+
+
oc get pods -l app=openstackansibleee
+
+
+
+

Sample output:

+
+
+
+
configure-network-edpm-compute-j6r4l   0/1     Completed           0          3m36s
+validate-network-edpm-compute-6g7n9    0/1     Pending             0          0s
+validate-network-edpm-compute-6g7n9    0/1     ContainerCreating   0          11s
+validate-network-edpm-compute-6g7n9    1/1     Running             0          13s
+
+
+
+

Querying for jobs, shows the corresponding job for each OpenStackAnsibleEE resource:

+
+
+
+
oc get jobs -l app=openstackansibleee
+
+
+
+

Sample output:

+
+
+
+
NAME                             COMPLETIONS   DURATION   AGE
+configure-network-edpm-compute   1/1           8s         2m51s
+configure-os-edpm-compute        1/1           8s         2m27s
+install-os-edpm-compute          1/1           8s         2m35s
+libvirt-edpm-compute             1/1           8s         2m35s
+nova-edpm-compute                1/1           8s         2m35s
+run-os-edpm-compute              1/1           8s         2m19s
+telemetry-edpm-compute           1/1           8s         2m35s
+validate-network-edpm-compute    1/1           8s         2m43s
+
+
+
+

Using the job name, the corresponding pod can be retrieved:

+
+
+
+
oc get pods | grep configure-network-edpm-compute
+
+
+
+

Sample output:

+
+
+
+
configure-network-edpm-compute-2hshp   0/1     Completed            0                5m45s
+
+
+
+

Using the job name, the ansible logs can be retrieved:

+
+
+
+
oc logs job.batch/configure-network-edpm-compute
+
+
+
+
+

Controlling the Ansible execution

+
+

For specifying the +ansible tags, skip-tags, +and limit

+
+
+

The fields in OpenStackDataPlaneDeployment that correspond to these options are:

+
+
+
+
ansibleTags
+ansibleSkipTags
+ansibleLimit
+
+
+
+

The syntax for these fields match the syntax that ansible accepts on the +command line for ansible-playbook and ansible-runner for each of these +fields.

+
+
+

Example usage of these fields:

+
+
+
+
apiVersion: dataplane.openstack.org/v1beta1
+kind: OpenStackDataPlaneDeployment
+metadata:
+  name: openstack-edpm
+spec:
+  ansibleTags: containers
+  ansibleSkipTags: packages
+  ansibleLimit: compute1*,compute2*
+
+
+
+

The above example translates to an ansible command with the following +arguments:

+
+
+
+
--tags containers --skip-tags packages --limit compute1*,compute2*
+
+
+
+
+
+

Hashes

+
+

NodeSet Config Changes

+
+

We create a Hash of the inputs located in the OpenStackDataPlaneNodeSet Spec Nodes and NodeTemplate sections. +This hash is then stored in the status.configHash field. If the current value of the configHash is different +to the deployedConfigHash, then it is necessary to recreate the OpenStackDataPlaneDeployment to roll out +the new changes:

+
+
+
+
$ oc get osdpns -o yaml | yq '.items[0].status.configHash'
+"n648hd6h88hc7h86hc7h568h585h79h5"
+
+
+
+

This field can be used to inform user decisions around when a new deploy is needed to reconclie the changes to the NodeSet.

+
+
+
+

OpenStackDataPlaneNodeSet deployment hashes

+
+

Each OpenStackDataPlaneService can optionally have an associated list of +ConfigMaps and Secrets that are mounted as file data into the +OpenStackAnsibleEE job started to deploy that service. The ansible content +then is able to consume those files as necessary. See Configuring a custom +service for more details.

+
+
+

When an OpenStackDataPlaneDeployment succeeds, the computed hash of each +ConfigMap and Secret for each OpenStackDataPlaneService that was deployed +is saved on the status of each OpenStackDataPlaneNodeSet referenced by the +OpenStackDataPlaneDeployment.

+
+
+

These hashes can be compared against the current hash of the ConfigMap or +Secret to see if there is newer input data that has not been deployed to the +OpenStackDataPlaneNodeSet. For example if the hash of +nova-cell1-compute-config Secret in the OpenStackDataPlaneNodeSet status +is different from the hash of nova-cell1-compute-config in the +novacell/nova-cell1 status, then there is nova-compute control plane configuration +data the needs to be deployed to the EDPM compute nodes.

+
+
+

For example, the following hashes are saved on the OpenStackDataPlaneNodeSet +status after a typical deployment:

+
+
+
+
$ oc get openstackdataplanenodeset openstack-edpm -o yaml
+
+<snip>
+status:
+  conditions:
+	<snip>
+  configMapHashes:
+    ovncontroller-config: n655h5...
+  secretHashes:
+    neutron-dhcp-agent-neutron-config: n9ch5...
+    neutron-ovn-metadata-agent-neutron-config: n588h...
+    neutron-sriov-agent-neutron-config: n648h...
+    nova-cell1-compute-config: n576h...
+    nova-metadata-neutron-config: n56fh...
+
+
+
+
+
+

Using IPAM and Internal DNS Service

+
+

To use IPAM and DNS Service with dataplane a NetConfig CR should exist with the +required networks, subnets and their allocation pools and dns service should be +enabled in OpenStackControlPlane CR.

+
+
+

When using IPAM, networks for the Node/NodeSet can be defined in the +OpenStackDataPlaneNodeSet CR either in the nodes or nodeTemplate section.

+
+
+

For predictable IP, networks should be added in the nodes section with desired +predictable IP as fixedIP.

+
+
+
+
<snip>
+    nodes:
+      edpm-compute-0:
+        hostName: edpm-compute-0
+        ansible:
+          ansibleHost: 192.168.122.100
+        networks:
+        - name: ctlplane
+          subnetName: subnet1
+          defaultRoute: true
+          fixedIP: 192.168.122.100
+        - name: internalapi
+          subnetName: subnet1
+        - name: storage
+          subnetName: subnet1
+        - name: tenant
+          subnetName: subnet1
+<snip>
+-------
+<snip>
+    nodeTemplate:
+      networks:
+      - name: ctlplane
+        subnetName: subnet1
+        defaultRoute: true
+      - name: internalapi
+        subnetName: subnet1
+      - name: storage
+        subnetName: subnet1
+      - name: tenant
+        subnetName: subnet1
+<snip>
+
+
+
+

Relevant Status Conditions

+
+

NodeSetIPReservationReady and NodeSetDNSDataReady conditions in status condtions reflects the status of +IPReservation and DNSData as shown below.

+
+
+
+
$ oc get openstackdataplanenodeset openstack-edpm -o json | jq '.status.conditions[] | select(.type=="NodeSetIPReservationReady")'
+{
+  "lastTransitionTime": "2024-01-31T12:16:21Z",
+  "message": "NodeSetIPReservationReady ready",
+  "reason": "Ready",
+  "status": "True",
+  "type": "NodeSetIPReservationReady"
+}
+
+$ oc get openstackdataplanenodeset openstack-edpm-ipam -o json | jq '.status.conditions[] | select(.type=="NodeSetDNSDataReady")'
+{
+  "lastTransitionTime": "2024-01-31T12:16:21Z",
+  "message": "NodeSetDNSDataReady ready",
+  "reason": "Ready",
+  "status": "True",
+  "type": "NodeSetDNSDataReady"
+}
+
+
+
+
+
+

Hotfixing the data plane

+
+

You can update the OpenStack data plane when hotfix content is available. Hotfix content +can be delivered as RPM packages or container images.

+
+
+

You apply a container hotfix to the data plane nodes by updating any running +containers to run from container images where the hotfix content has been +applied. Container hotfix content can be delivered as either RPM’s or already +updated container images.

+
+
+

How the software is installed on the data plane nodes determines which of the +following methods you need to use to apply the hotfix content:

+
+
+
    +
  • +

    Node software was installed by using RPMs: Apply the hotfix to the RPM content.

    +
  • +
  • +

    Node software was installed by using container images: Apply the hotfix to the container content with either RPMs or container images.

    +
  • +
+
+
+

Hotfixing the data plane RPM content

+
+

You install RPM hotfix content directly on to the data plane nodes.

+
+
+
Procedure
+
    +
  1. +

    Obtain the RPM hotfix content from the source and store it locally:

    +
    +
    +
    $ mkdir -p <hotfix_id>/rpms
    +$ cp /path/to/hotfix/*.rpm <hotfix_id>/rpms
    +
    +
    +
    +
      +
    • +

      Replace <hotfix_id> with a hotfix identifier such as a Jira issue, for example osprh-0000.

      +
    • +
    +
    +
  2. +
  3. +

    Copy the RPM hotfix content to the affected data plane nodes:

    +
    +
    +
    $ ssh <ssh_user>@<data_plane_node> mkdir -p /tmp/<hotfix_id>/rpms
    +$ scp <hotfix_id>/rpms/*.rpm <ssh_user>@<data_plane_node>:/tmp/<hotfix_id>/rpms
    +
    +
    +
    +
      +
    • +

      Replace <ssh_user> with the SSH user name.

      +
    • +
    • +

      Replace <data_plane_node> with the hostname or IP for the data plane node.

      +
    • +
    • +

      Replace <hotfix_id> with a hotfix identifier such as a Jira issue, for example osprh-0000.

      +
    • +
    +
    +
    +

    Repeat this step for each data plane node that the hotfix must be applied to.

    +
    +
  4. +
  5. +

    Update the RPM hotfix content on the affected data plane nodes.

    +
    +
    +
    $ ssh <ssh_user>@<data_plane_node>
    +$ sudo dnf in -y /tmp/<hotfix_id>/rpms/*.rpm
    +
    +
    +
    +
      +
    • +

      Replace <ssh_user> with the SSH user name.

      +
    • +
    • +

      Replace <data_plane_node> with the hostname or IP for the data plane node.

      +
    • +
    • +

      Replace <hotfix_id> with a hotfix identifier such as a Jira issue, for example osprh-0000.

      +
    • +
    +
    +
  6. +
  7. +

    Perform any additional custom steps that are detailed in the hotfix instructions to complete the application of the RPM hotfix content.

    +
  8. +
+
+
+
+

Hotfixing the data plane container content with RPM’s

+
+

When container hotfix content is delivered as RPM’s, you must update the container images manually.

+
+
+
Procedure
+
    +
  1. +

    From a RHEL workstation, server, or virtual machine, ensure the following packages are installed:

    +
    +
      +
    • +

      buildah

      +
    • +
    • +

      podman

      +
    • +
    +
    +
  2. +
  3. +

    From a RHEL workstation, server, or virtual machine, collect the hotfix RPMs into a new directory:

    +
    +
    +
    $ mkdir -p <hotfix_id>/rpms
    +$ cp /path/to/hotfix/*.rpm <hotfix_id>/rpms
    +
    +
    +
    +
      +
    • +

      Replace <hotfix_id> with a hotfix identifier such as a Jira issue, for example osprh-0000.

      +
    • +
    +
    +
  4. +
  5. +

    Create a container image tagged with your registry account details and a hotfix identifier:

    +
    +
    +
    $ updated_container="<updated_container_registry>/<updated_container_project>/<container_image>:<hotfix_id>"
    +$ container=$(buildah from <container_registry>/<container_project>/<container_image>:<container_tag>)
    +$ buildah run --user root $container mkdir -p /<hotfix_id>/rpms
    +$ buildah copy --user root $container <hotfix_id>/rpms/*.rpm /hotfix_id/rpms
    +$ buildah run --user root rpm -F /<hotfix_id/rpms/*.rpm
    +$ buildah commit $container $updated_container
    +$ buildah push $updated_container
    +
    +
    +
    +
      +
    • +

      Replace <hotfix_id> with a hotfix identifier such as a Jira issue, for example osprh-0000.

      +
    • +
    • +

      Replace <updated_container_registry> with a container registry to serve the updated container image. The OCP internal container image registry can be used.

      +
    • +
    • +

      Replace <updated_container_project> with a container project to use for the updated container image.

      +
    • +
    • +

      Replace <container_project> with the container project for the container being updated.

      +
    • +
    • +

      Replace <container_registry> with the container registry for the container being updated.

      +
    • +
    • +

      Replace <container_image> with the container image being updated.

      +
    • +
    • +

      Replace <container_tag> with the container tag being updated.

      +
      + + + + + +
      + + +The values for <updated_container_registry> and <container_registry> can be the same. The values for <updated_container_project> and <container_project> can be the same. The container images will be differentiated based on the value of their tags. +
      +
      +
    • +
    +
    +
  6. +
  7. +

    Hotfix the updated container image on the affected data plane nodes. Use the Hotfixing the data plane container content with images procedure to apply the hotfixed container image.

    +
  8. +
+
+
+
+

Hotfixing the data plane container content with images

+
+

When container hotfix content is delivered as images, the container processes need to be restarted to use the new images. This will be accomplished by creating a new OpenStackDataPlaneDeployment.

+
+
+
Procedure
+
    +
  1. +

    Optional: Prepare the container hotfix image in a container registry where the image can be pulled by affected data plane nodes:

    +
    +
    +
    $ podman pull <container_registry>/<container_project>/<container_image>:<container_tag>
    +$ podman tag <container_registry>/<container_project>/<container_image>:<container_tag> <updated_container_registry>/<updated_container_project>/<container_image>:<container_tag>
    +$ podman push <updated_container_registry>/<updated_container_project>/<container_image>:<container_tag>
    +
    +
    +
    +
      +
    • +

      Replace <container_registry> with the source registry for the hotfixed container image.

      +
    • +
    • +

      Replace <container_project> with the source project for the hotfixed container image.

      +
    • +
    • +

      Replace <container_image> with the hotfixed container image.

      +
    • +
    • +

      Replace <container_tag> with the tag for the hotfixed container image.

      +
    • +
    • +

      Replace <updated_container_registry> with a container registry to serve the hotfixed container image. You can use the OpenShift internal container image registry.

      +
    • +
    • +

      Replace <updated_container_project> with a container project to use for the hotfixed container image.

      +
    • +
    +
    +
  2. +
  3. +

    Update the affected OpenStackDataPlaneNodeSet resources by customizing the container locations to the hotfixed container locations. For more information about how to set the hotfixed container locations, see Customizing container image locations.

    +
  4. +
  5. +

    Create a new OpenStackDataPlaneDeployment resource that deploys the affected OpenStackDataPlaneNodeSet resources. For more information about how to create OpenStackDataPlaneDeployment resources, see Deploying the data plane.

    +
    + + + + + +
    + + +You can restrict the list of services for the OpenStackDataPlaneDeployment to only those affected by the hotfix by using the servicesOverride field. For more information, see Overriding services for the deployment. +
    +
    +
  6. +
+
+
+
+
+

Updating the data plane

+
+

You can perform a minor update of your OpenStack data plane environment to keep +it updated with the latest packages and containers.

+
+
+

You must coordinate the minor update of the OpenStack data plane environment +with a minor update of the control plane. OVN containers on the data plane +nodes should not be updated until OVN containers on the control plane have been +updated.

+
+
+

See +OpenStackVersion +and +Open +vSwitch update for more information.

+
+
+

Updating OVN on the data plane

+
+

You update OVN content (containers) on the data plane once OVN on the control +plane has been updated.

+
+
+
Procedure
+
    +
  1. +

    Validate that OVN has been updated on the control plane.

    +
    +
    +
    $ oc wait openstackversion <openstack_ctlplane_name> --for=condition=MinorUpdateOVNControlplane
    +
    +
    +
    +
      +
    • +

      Replace <openstack_ctlplane_name> with the name of the OpenStack control plane resource.

      +
      +

      The following example output shows the condition has been met:

      +
      +
      +
      +
      openstackversion.core.openstack.org/openstack-galera-network-isolation condition met
      +
      +
      +
    • +
    +
    +
  2. +
  3. +

    Create an OpenStackDataPlaneDeployment CR and save it to a file named openstack-edpm-update.yaml on your workstation.

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneDeployment
    +metadata:
    +  name: edpm-deployment-ipam-update
    +spec:
    +  nodeSets:
    +    - openstack-edpm-ipam
    +    - <nodeSet_name>
    +    - ...
    +    - <nodeSet_name>
    +  servicesOverride:
    +    - ovn
    +
    +
    +
    +
      +
    • +

      Replace <nodeSet_name> with the names of the OpenStackDataPlaneNodeSet CRs that you want to include in your data plane minor update.

      +
      + + + + + +
      + + +The servicesOverride field is set to include only ovn as the ovn service must be updated first in isolation. If using a custom service to manage ovn, then use that custom service name instead of ovn in servicesOverride. Additionally if other custom services must be updated at the same time as ovn, then they can be included in servicesOverride as well. +
      +
      +
    • +
    +
    +
  4. +
  5. +

    Save the openstack-edpm-update.yaml deployment file.

    +
  6. +
  7. +

    Update the data plane:

    +
    +
    +
    $ oc create -f openstack-edpm-update.yaml
    +
    +
    +
  8. +
  9. +

    Verify that the data plane update deployment succeeded:

    +
    +
    +
    $ oc get openstackdataplanedeployment
    +NAME             			STATUS   MESSAGE
    +edpm-deployment-ipam   		True     Setup Complete
    +edpm-deployment-ipam-update True     Setup Complete
    +
    +
    +
  10. +
+
+
+

Once OVN has been updated on the data plane, the rest of the control plane minor update will automatically proceed. Once the control plane minor update is finished, the rest of the data plane can be updated.

+
+
+
Troubleshooting
+

See Troubleshooting data plane creation and deployment for troubleshooting any deployment failures.

+
+
+
+

Updating other services on the data plane

+
+

Once OVN has been updated on the control plane and data plane, and the rest of the control plane has completed updating, you update the rest of the services on the data plane.

+
+
+
Procedure
+
    +
  1. +

    Validate that the rest of the minor update has completed on the control plane.

    +
    +
    +
    $ oc wait openstackversion <openstack_ctlplane_name> --for=condition=MinorUpdateControlplane
    +
    +
    +
    +
      +
    • +

      Replace <openstack_ctlplane_name> with the name of the OpenStack control plane resource.

      +
      +

      The following example output shows the condition has been met:

      +
      +
      +
      +
      openstackversion.core.openstack.org/openstack-galera-network-isolation condition met
      +
      +
      +
    • +
    +
    +
  2. +
  3. +

    Create an OpenStackDataPlaneDeployment CR and save it to a file named openstack-edpm-update-services.yaml on your workstation.

    +
    +
    +
    apiVersion: dataplane.openstack.org/v1beta1
    +kind: OpenStackDataPlaneDeployment
    +metadata:
    +  name: edpm-deployment-ipam-update-services
    +spec:
    +  nodeSets:
    +    - openstack-edpm-ipam
    +    - <nodeSet_name>
    +    - ...
    +    - <nodeSet_name>
    +  servicesOverride:
    +    - update
    +
    +
    +
    +
      +
    • +

      Replace <nodeSet_name> with the names of the OpenStackDataPlaneNodeSet CRs that you want to include in your data plane minor update.

      +
      + + + + + +
      + + +The servicesOverride field is set to include only update. The update service applies only the tasks needed to update the packages and containers on the EDPM nodes. When using custom services, include those here as well, or their equivalent custom services that apply the needed update tasks. +
      +
      +
    • +
    +
    +
  4. +
  5. +

    Save the openstack-edpm-update-services.yaml deployment file.

    +
  6. +
  7. +

    Update the data plane:

    +
    +
    +
    $ oc create -f openstack-edpm-update-services.yaml
    +
    +
    +
  8. +
  9. +

    Verify that the data plane update deployment succeeded:

    +
    +
    +
    $ oc get openstackdataplanedeployment
    +NAME             						STATUS   MESSAGE
    +edpm-deployment-ipam   					True     Setup Complete
    +edpm-deployment-ipam-update 			True     Setup Complete
    +edpm-deployment-ipam-update-services 	True     Setup Complete
    +
    +
    +
  10. +
+
+
+
Troubleshooting
+

See Troubleshooting data plane creation and deployment for troubleshooting any deployment failures.

+
+
+
+
+
+

Custom Resources

+ +
+

Sub Resources

+
+ +
+

OpenStackDataPlaneDeployment

+
+

OpenStackDataPlaneDeployment is the Schema for the openstackdataplanedeployments API OpenStackDataPlaneDeployment name must be a valid RFC1123 as it is used in labels

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OpenStackDataPlaneDeploymentSpec

false

status

OpenStackDataPlaneDeploymentStatus

false

+ +
+
+

OpenStackDataPlaneDeploymentList

+
+

OpenStackDataPlaneDeploymentList contains a list of OpenStackDataPlaneDeployment

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OpenStackDataPlaneDeployment

true

+ +
+
+

OpenStackDataPlaneDeploymentSpec

+
+

OpenStackDataPlaneDeploymentSpec defines the desired state of OpenStackDataPlaneDeployment

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

nodeSets

NodeSets is the list of NodeSets deployed

[]string

true

backoffLimit

BackoffLimit allows to define the maximum number of retried executions (defaults to 6).

*int32

false

preserveJobs

PreserveJobs - do not delete jobs after they finished e.g. to check logs PreserveJobs default: true

bool

false

ansibleTags

AnsibleTags for ansible execution

string

false

ansibleLimit

AnsibleLimit for ansible execution

string

false

ansibleSkipTags

AnsibleSkipTags for ansible execution

string

false

ansibleExtraVars

AnsibleExtraVars for ansible execution

map[string]json.RawMessage

false

servicesOverride

ServicesOverride list

[]string

false

deploymentRequeueTime

Time before the deployment is requeued in seconds

int

true

ansibleJobNodeSelector

AnsibleJobNodeSelector to target subset of worker nodes running the ansible jobs

map[string]string

false

+ +
+
+

OpenStackDataPlaneDeploymentStatus

+
+

OpenStackDataPlaneDeploymentStatus defines the observed state of OpenStackDataPlaneDeployment

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

nodeSetConditions

NodeSetConditions

map[string]condition.Conditions

false

ansibleEEHashes

AnsibleEEHashes

map[string]string

false

configMapHashes

ConfigMapHashes

map[string]string

false

secretHashes

SecretHashes

map[string]string

false

nodeSetHashes

NodeSetHashes

map[string]string

false

containerImages

ContainerImages

map[string]string

false

conditions

Conditions

condition.Conditions

false

observedGeneration

ObservedGeneration - the most recent generation observed for this Deployment. If the observed generation is less than the spec generation, then the controller has not processed the latest changes.

int64

false

deployedVersion

DeployedVersion

string

false

deployed

Deployed

bool

false

+ +
+
+

OpenStackDataPlaneNodeSet

+
+

OpenStackDataPlaneNodeSet is the Schema for the openstackdataplanenodesets API OpenStackDataPlaneNodeSet name must be a valid RFC1123 as it is used in labels

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OpenStackDataPlaneNodeSetSpec

false

status

OpenStackDataPlaneNodeSetStatus

false

+ +
+
+

OpenStackDataPlaneNodeSetList

+
+

OpenStackDataPlaneNodeSetList contains a list of OpenStackDataPlaneNodeSets

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OpenStackDataPlaneNodeSet

true

+ +
+
+

OpenStackDataPlaneNodeSetSpec

+
+

OpenStackDataPlaneNodeSetSpec defines the desired state of OpenStackDataPlaneNodeSet

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

baremetalSetTemplate

BaremetalSetTemplate Template for BaremetalSet for the NodeSet

baremetalv1.OpenStackBaremetalSetSpec

false

nodeTemplate

NodeTemplate - node attributes specific to nodes defined by this resource. These attributes can be overriden at the individual node level, else take their defaults from valus in this section.

NodeTemplate

true

nodes

Nodes - Map of Node Names and node specific data. Values here override defaults in the upper level section.

map[string]NodeSection

true

env

Env is a list containing the environment variables to pass to the pod Variables modifying behavior of AnsibleEE can be specified here.

[]corev1.EnvVar

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to pass to the ansibleee resource which allows to connect the ansibleee runner to the given network

[]string

false

services

Services list

[]string

true

tags

Tags - Additional tags for NodeSet

[]string

false

secretMaxSize

SecretMaxSize - Maximum size in bytes of a Kubernetes secret. This size is currently situated around 1 MiB (nearly 1 MB).

int

true

preProvisioned

\n\nPreProvisioned - Set to true if the nodes have been Pre Provisioned.

bool

false

tlsEnabled

TLSEnabled - Whether the node set has TLS enabled.

bool

true

+ +
+
+

OpenStackDataPlaneNodeSetStatus

+
+

OpenStackDataPlaneNodeSetStatus defines the observed state of OpenStackDataPlaneNodeSet

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

deploymentStatuses

DeploymentStatuses

map[string]condition.Conditions

false

allHostnames

AllHostnames

map[string]map[infranetworkv1.NetNameStr]string

false

allIPs

AllIPs

map[string]map[infranetworkv1.NetNameStr]string

false

configMapHashes

ConfigMapHashes

map[string]string

false

secretHashes

SecretHashes

map[string]string

false

dnsClusterAddresses

DNSClusterAddresses

[]string

false

containerImages

ContainerImages

map[string]string

false

ctlplaneSearchDomain

CtlplaneSearchDomain

string

false

configHash

ConfigHash - holds the curret hash of the NodeTemplate and Node sections of the struct. This hash is used to determine when new Ansible executions are required to roll out config changes.

string

false

deployedConfigHash

DeployedConfigHash - holds the hash of the NodeTemplate and Node sections of the struct that was last deployed. This hash is used to determine when new Ansible executions are required to roll out config changes.

string

false

inventorySecretName

InventorySecretName Name of a secret containing the ansible inventory

string

false

observedGeneration

ObservedGeneration - the most recent generation observed for this NodeSet. If the observed generation is less than the spec generation, then the controller has not processed the latest changes.

int64

false

deployedVersion

DeployedVersion

string

false

+ +
+
+

OpenStackDataPlaneService

+
+

OpenStackDataPlaneService is the Schema for the openstackdataplaneservices API OpenStackDataPlaneService name must be a valid RFC1123 as it is used in labels

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ObjectMeta

false

spec

OpenStackDataPlaneServiceSpec

false

status

OpenStackDataPlaneServiceStatus

false

+ +
+
+

OpenStackDataPlaneServiceList

+
+

OpenStackDataPlaneServiceList contains a list of OpenStackDataPlaneService

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

metadata

metav1.ListMeta

false

items

[]OpenStackDataPlaneService

true

+ +
+
+

OpenStackDataPlaneServiceSpec

+
+

OpenStackDataPlaneServiceSpec defines the desired state of OpenStackDataPlaneService

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

dataSources

DataSources list of DataSource objects to mount as ExtraMounts for the OpenStackAnsibleEE

[]DataSource

false

tlsCerts

TLSCerts tls certs to be generated

map[string]OpenstackDataPlaneServiceCert

false

playbookContents

PlaybookContents is an inline playbook contents that ansible will run on execution.

string

false

playbook

Playbook is a path to the playbook that ansible will run on this execution

string

false

caCerts

CACerts - Secret containing the CA certificate chain

string

true

openStackAnsibleEERunnerImage

OpenStackAnsibleEERunnerImage image to use as the ansibleEE runner image

string

false

certsFrom

CertsFrom - Service name used to obtain TLSCert and CACerts data. If both CertsFrom and either TLSCert or CACerts is set, then those fields take precedence.

string

false

addCertMounts

AddCertMounts - Whether to add cert mounts

bool

true

deployOnAllNodeSets

DeployOnAllNodeSets - should the service be deploy across all nodesets This will override default target of a service play, setting it to all.

bool

false

containerImageFields

ContainerImageFields - list of container image fields names that this service deploys. The field names should match the ContainerImages struct field names from github.com/openstack-k8s-operators/openstack-operator/apis/core/v1beta1

[]string

false

edpmServiceType

EDPMServiceType - service type, which typically corresponds to one of the default service names (such as nova, ovn, etc). Also typically corresponds to the ansible role name (without the "edpm_" prefix) used to manage the service. If not set, will default to the OpenStackDataPlaneService name.

string

false

+ +
+
+

OpenStackDataPlaneServiceStatus

+
+

OpenStackDataPlaneServiceStatus defines the observed state of OpenStackDataPlaneService

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

conditions

Conditions

condition.Conditions

false

+ +
+
+

OpenstackDataPlaneServiceCert

+
+

OpenstackDataPlaneServiceCert defines the property of a TLS cert issued for a dataplane service

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

contents

Contents of the certificate This is a list of strings for properties that are needed in the cert

[]string

true

networks

Networks to include in SNI for the cert

[]infranetworkv1.NetNameStr

false

issuer

Issuer is the label for the issuer to issue the cert Only one issuer should have this label

string

false

keyUsages

KeyUsages to be added to the issued cert

[]certmgrv1.KeyUsage

false

edpmRoleServiceName

EDPMRoleServiceName is the value of the _service_name variable from the edpm-ansible role where this certificate is used. For example if the certificate is for edpm_ovn from edpm-ansible, EDPMRoleServiceName must be ovn, which matches the edpm_ovn_service_name variable from the role. If not set, OpenStackDataPlaneService.Spec.EDPMServiceType is used. If OpenStackDataPlaneService.Spec.EDPMServiceType is not set, then OpenStackDataPlaneService.Name is used.

string

false

+ +
+
+

AnsibleEESpec

+
+

AnsibleEESpec is a specification of the ansible EE attributes

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

extraMounts

ExtraMounts containing files which can be mounted into an Ansible Execution Pod

[]storage.VolMounts

false

env

Env is a list containing the environment variables to pass to the pod

[]corev1.EnvVar

false

extraVars

ExtraVars for ansible execution

map[string]json.RawMessage

false

dnsConfig

DNSConfig for setting dnsservers

*corev1.PodDNSConfig

false

networkAttachments

NetworkAttachments is a list of NetworkAttachment resource names to pass to the ansibleee resource which allows to connect the ansibleee runner to the given network

[]string

true

openStackAnsibleEERunnerImage

OpenStackAnsibleEERunnerImage image to use as the ansibleEE runner image

string

false

ansibleTags

AnsibleTags for ansible execution

string

false

ansibleLimit

AnsibleLimit for ansible execution

string

false

ansibleSkipTags

AnsibleSkipTags for ansible execution

string

false

ServiceAccountName

ServiceAccountName allows to specify what ServiceAccountName do we want the ansible execution run with. Without specifying, it will run with default serviceaccount

string

false

+ +
+
+

AnsibleOpts

+
+

AnsibleOpts defines a logical grouping of Ansible related configuration options.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

ansibleUser

AnsibleUser SSH user for Ansible connection

string

true

ansibleHost

AnsibleHost SSH host for Ansible connection

string

false

ansibleVars

AnsibleVars for configuring ansible

map[string]json.RawMessage

false

ansibleVarsFrom

AnsibleVarsFrom is a list of sources to populate ansible variables from. Values defined by an AnsibleVars with a duplicate key take precedence.

[]DataSource

false

ansiblePort

AnsiblePort SSH port for Ansible connection

int

false

+ +
+
+

ConfigMapEnvSource

+
+

ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap’s Data field will represent the key-value pairs as environment variables.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

optional

Specify whether the ConfigMap must be defined

*bool

false

+ +
+
+

DataSource

+
+

DataSource represents the source of a set of ConfigMaps/Secrets

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

prefix

An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.

string

false

configMapRef

The ConfigMap to select from

*ConfigMapEnvSource

false

secretRef

The Secret to select from

*SecretEnvSource

false

+ +
+
+

LocalObjectReference

+
+

LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

string

false

+ +
+
+

NodeSection

+
+

NodeSection defines the top level attributes inherited by nodes in the CR.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

networks

Networks - Instance networks

[]infranetworkv1.IPSetNetwork

false

bmhLabelSelector

BmhLabelSelector allows for a sub-selection of BaremetalHosts based on arbitrary labels for a node.

map[string]string

false

userData

UserData node specific user-data

*corev1.SecretReference

false

networkData

NetworkData node specific network-data

*corev1.SecretReference

false

ansible

Ansible is the group of Ansible related configuration options.

AnsibleOpts

false

hostName

HostName - node name

string

false

managementNetwork

ManagementNetwork - Name of network to use for management (SSH/Ansible)

string

false

+ +
+
+

NodeTemplate

+
+

NodeTemplate is a specification of the node attributes that override top level attributes.

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

extraMounts

ExtraMounts containing files which can be mounted into an Ansible Execution Pod

[]storage.VolMounts

false

networks

Networks - Instance networks

[]infranetworkv1.IPSetNetwork

false

userData

UserData node specific user-data

*corev1.SecretReference

false

networkData

NetworkData node specific network-data

*corev1.SecretReference

false

ansibleSSHPrivateKeySecret

AnsibleSSHPrivateKeySecret Name of a private SSH key secret containing private SSH key for connecting to node. The named secret must be of the form: Secret.data.ssh-privatekey: https://kubernetes.io/docs/concepts/configuration/secret/#ssh-authentication-secrets

string

true

managementNetwork

ManagementNetwork - Name of network to use for management (SSH/Ansible)

string

true

ansible

Ansible is the group of Ansible related configuration options.

AnsibleOpts

false

+ +
+
+

SecretEnvSource

+
+

SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret’s Data field will represent the key-value pairs as environment variables.

+
+ ++++++ + + + + + + + + + + + + + + + + +
FieldDescriptionSchemeRequired

optional

Specify whether the Secret must be defined

*bool

false

+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 000000000..52b94dd31 --- /dev/null +++ b/index.html @@ -0,0 +1,57 @@ + + + + + + + + + + +
+ ControlPlane + DataPlane +
+ +
+ +
+ + + +