v1beta1

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Jul 5, 2024 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the dataplane v1beta1 API group +kubebuilder:object:generate=true +groupName=dataplane.openstack.org

Index

Constants

View Source
const (
	// DataPlaneNodeSetErrorMessage error
	DataPlaneNodeSetErrorMessage = "DataPlaneNodeSet error occurred %s"

	// ServiceReadyCondition Status=True condition indicates if the
	// service is finished and successful.
	ServiceReadyCondition condition.Type = "ServiceReady"

	// ServiceReadyMessage ready
	ServiceReadyMessage = "%s service ready"

	// ServiceReadyWaitingMessage not yet ready
	ServiceReadyWaitingMessage = "%s service not yet ready"

	// ServiceErrorMessage error
	ServiceErrorMessage = "Service error occurred %s"

	// SetupReadyCondition - Overall setup condition
	SetupReadyCondition condition.Type = "SetupReady"

	// NodeSetReadyMessage - NodeSet Ready
	NodeSetReadyMessage = "NodeSet Ready"

	// NodeSetBareMetalProvisionReadyCondition Status=True condition indicates
	// all baremetal nodes provisioned for the NodeSet.
	NodeSetBareMetalProvisionReadyCondition condition.Type = "NodeSetBaremetalProvisionReady"

	// NodeSetBaremetalProvisionReadyMessage ready
	NodeSetBaremetalProvisionReadyMessage = "NodeSetBaremetalProvisionReady ready"

	// NodeSetBaremetalProvisionReadyWaitingMessage not yet ready
	NodeSetBaremetalProvisionReadyWaitingMessage = "NodeSetBaremetalProvisionReady not yet ready"

	// NodeSetBaremetalProvisionErrorMessage error
	NodeSetBaremetalProvisionErrorMessage = "NodeSetBaremetalProvisionReady error occurred"

	// NodeSetIPReservationReadyCondition Status=True condition indicates
	// IPSets reserved for all nodes in a NodeSet.
	NodeSetIPReservationReadyCondition condition.Type = "NodeSetIPReservationReady"

	// NodeSetIPReservationReadyMessage ready
	NodeSetIPReservationReadyMessage = "NodeSetIPReservationReady ready"

	// NodeSetIPReservationReadyWaitingMessage not yet ready
	NodeSetIPReservationReadyWaitingMessage = "NodeSetIPReservationReady not yet ready"

	// NodeSetIPReservationReadyErrorMessage error
	NodeSetIPReservationReadyErrorMessage = "NodeSetIPReservationReady error occurred"

	// NodeSetDNSDataReadyCondition Status=True condition indicates
	// DNSData created for the NodeSet.
	NodeSetDNSDataReadyCondition condition.Type = "NodeSetDNSDataReady"

	// NodeSetDNSDataReadyMessage ready
	NodeSetDNSDataReadyMessage = "NodeSetDNSDataReady ready"

	// NodeSetDNSDataReadyWaitingMessage not yet ready
	NodeSetDNSDataReadyWaitingMessage = "NodeSetDNSDataReady not yet ready"

	// NodeSetDNSDataReadyErrorMessage error
	NodeSetDNSDataReadyErrorMessage = "NodeSetDNSDataReady error occurred"

	// NodeSetDNSDataMultipleDNSMasqErrorMessage error
	NodeSetDNSDataMultipleDNSMasqErrorMessage = "NodeSet DNSData error occurred. Multiple DNSMasq resources exist."

	// InputReadyWaitingMessage not yet ready
	InputReadyWaitingMessage = "Waiting for input %s, not yet ready"

	// NodeSetDeploymentReadyCondition Status=True condition indicates if the
	// NodeSet Deployment is finished and successful.
	NodeSetDeploymentReadyCondition condition.Type = "NodeSetDeploymentReady"

	// NodeSetDeploymentReadyMessage ready
	NodeSetDeploymentReadyMessage = "Deployment ready for NodeSet"

	// NodeSetDeploymentReadyWaitingMessage not yet ready
	NodeSetDeploymentReadyWaitingMessage = "Deployment not yet ready for NodeSet"

	// NodeSetDeploymentErrorMessage error
	NodeSetDeploymentErrorMessage = "Deployment error occurred %s for NodeSet"

	// NodeSetServiceDeploymentReadyMessage ready
	NodeSetServiceDeploymentReadyMessage = "Deployment ready for %s service"

	// NodeSetServiceDeploymentReadyWaitingMessage not yet ready
	NodeSetServiceDeploymentReadyWaitingMessage = "Deployment not yet ready for %s service"

	// NodeSetServiceDeploymentErrorMessage error
	NodeSetServiceDeploymentErrorMessage = "Deployment error occurred in %s service"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "dataplane.openstack.org", Version: "v1beta1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var ContainerImageDefaults = openstackv1.ContainerImages{
	ContainerTemplate: openstackv1.ContainerTemplate{
		AgentImage:                    getStrPtr("quay.io/openstack-k8s-operators/openstack-baremetal-operator-agent:current-podified"),
		AnsibleeeImage:                getStrPtr("quay.io/openstack-k8s-operators/openstack-ansibleee-runner:latest"),
		ApacheImage:                   getStrPtr("registry.redhat.io/ubi9/httpd-24:latest"),
		EdpmFrrImage:                  getStrPtr("quay.io/podified-antelope-centos9/openstack-frr:current-podified"),
		EdpmIscsidImage:               getStrPtr("quay.io/podified-antelope-centos9/openstack-iscsid:current-podified"),
		EdpmLogrotateCrondImage:       getStrPtr("quay.io/podified-antelope-centos9/openstack-cron:current-podified"),
		EdpmNeutronDhcpAgentImage:     getStrPtr("quay.io/podified-antelope-centos9/openstack-neutron-dhcp-agent:current-podified"),
		EdpmNeutronMetadataAgentImage: getStrPtr("quay.io/podified-antelope-centos9/openstack-neutron-metadata-agent-ovn:current-podified"),
		EdpmNeutronOvnAgentImage:      getStrPtr("quay.io/podified-antelope-centos9/openstack-neutron-ovn-agent:current-podified"),
		EdpmNeutronSriovAgentImage:    getStrPtr("quay.io/podified-antelope-centos9/openstack-neutron-sriov-agent:current-podified"),
		EdpmMultipathdImage:           getStrPtr("quay.io/podified-antelope-centos9/openstack-multipathd:current-podified"),
		NovaComputeImage:              getStrPtr("quay.io/podified-antelope-centos9/openstack-nova-compute:current-podified"),
		OvnControllerImage:            getStrPtr("quay.io/podified-antelope-centos9/openstack-ovn-controller:current-podified"),
		EdpmOvnBgpAgentImage:          getStrPtr("quay.io/podified-antelope-centos9/openstack-ovn-bgp-agent:current-podified"),
		CeilometerComputeImage:        getStrPtr("quay.io/podified-antelope-centos9/openstack-telemetry-ceilometer-compute:current-podified"),
		CeilometerIpmiImage:           getStrPtr("quay.io/podified-antelope-centos9/openstack-telemetry-ceilometer-ipmi:current-podified"),
		EdpmNodeExporterImage:         getStrPtr("quay.io/podified-antelope-centos9/openstack-telemetry-node-exporter:current-podified"),
		OsContainerImage:              getStrPtr("quay.io/podified-antelope-centos9/edpm-hardened-uefi:current-podified"),
	}}

ContainerImageDefaults - the hardcoded defaults which are the last fallback if no values are set elsewhere.

ContainerImages - the values if no OpenStackVersion is used

Functions

func NodeHostNameIsFQDN

func NodeHostNameIsFQDN(hostname string) bool

NodeHostNameIsFQDN Helper to check if a hostname is fqdn

func SetupDefaults

func SetupDefaults()

SetupDefaults - initializes any CRD field defaults based on environment variables called from main.go

Types

type AnsibleEESpec

type AnsibleEESpec struct {
	// ExtraMounts containing files which can be mounted into an Ansible Execution Pod
	ExtraMounts []storage.VolMounts `json:"extraMounts,omitempty"`
	// Env is a list containing the environment variables to pass to the pod
	Env []corev1.EnvVar `json:"env,omitempty"`
	// ExtraVars for ansible execution
	ExtraVars map[string]json.RawMessage `json:"extraVars,omitempty"`
	// DNSConfig for setting dnsservers
	DNSConfig *corev1.PodDNSConfig `json:"dnsConfig,omitempty"`
	// 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
	NetworkAttachments []string `json:"networkAttachments"`
	// OpenStackAnsibleEERunnerImage image to use as the ansibleEE runner image
	OpenStackAnsibleEERunnerImage string `json:"openStackAnsibleEERunnerImage,omitempty"`
	// AnsibleTags for ansible execution
	AnsibleTags string `json:"ansibleTags,omitempty"`
	// AnsibleLimit for ansible execution
	AnsibleLimit string `json:"ansibleLimit,omitempty"`
	// AnsibleSkipTags for ansible execution
	AnsibleSkipTags string `json:"ansibleSkipTags,omitempty"`
	// ServiceAccountName allows to specify what ServiceAccountName do we want
	// the ansible execution run with. Without specifying, it will run with
	// default serviceaccount
	ServiceAccountName string
}

AnsibleEESpec is a specification of the ansible EE attributes

func (*AnsibleEESpec) DeepCopy

func (in *AnsibleEESpec) DeepCopy() *AnsibleEESpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnsibleEESpec.

func (*AnsibleEESpec) DeepCopyInto

func (in *AnsibleEESpec) DeepCopyInto(out *AnsibleEESpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AnsibleOpts

type AnsibleOpts struct {
	// AnsibleUser SSH user for Ansible connection
	// +kubebuilder:validation:Optional
	AnsibleUser string `json:"ansibleUser"`

	// AnsibleHost SSH host for Ansible connection
	// +kubebuilder:validation:Optional
	AnsibleHost string `json:"ansibleHost,omitempty"`

	// AnsibleVars for configuring ansible
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	AnsibleVars map[string]json.RawMessage `json:"ansibleVars,omitempty"`

	// AnsibleVarsFrom is a list of sources to populate ansible variables from.
	// Values defined by an AnsibleVars with a duplicate key take precedence.
	// +kubebuilder:validation:Optional
	AnsibleVarsFrom []DataSource `json:"ansibleVarsFrom,omitempty"`

	// AnsiblePort SSH port for Ansible connection
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	AnsiblePort int `json:"ansiblePort,omitempty"`
}

AnsibleOpts defines a logical grouping of Ansible related configuration options.

func (*AnsibleOpts) DeepCopy

func (in *AnsibleOpts) DeepCopy() *AnsibleOpts

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnsibleOpts.

func (*AnsibleOpts) DeepCopyInto

func (in *AnsibleOpts) DeepCopyInto(out *AnsibleOpts)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConfigMapEnvSource

type ConfigMapEnvSource struct {
	// The ConfigMap to select from.
	LocalObjectReference `json:",inline" yaml:",inline"`
	// Specify whether the ConfigMap must be defined
	// +optional
	Optional *bool `json:"optional,omitempty" yaml:"optional,omitempty"`
}

ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.

The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.

func (*ConfigMapEnvSource) DeepCopy

func (in *ConfigMapEnvSource) DeepCopy() *ConfigMapEnvSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapEnvSource.

func (*ConfigMapEnvSource) DeepCopyInto

func (in *ConfigMapEnvSource) DeepCopyInto(out *ConfigMapEnvSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DataSource

type DataSource struct {
	// An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
	// +optional
	Prefix string `json:"prefix,omitempty" yaml:"prefix,omitempty"`
	// The ConfigMap to select from
	// +optional
	ConfigMapRef *ConfigMapEnvSource `json:"configMapRef,omitempty" yaml:"configMapRef,omitempty"`
	// The Secret to select from
	// +optional
	SecretRef *SecretEnvSource `json:"secretRef,omitempty" yaml:"secretRef,omitempty"`
}

DataSource represents the source of a set of ConfigMaps/Secrets

func (*DataSource) DeepCopy

func (in *DataSource) DeepCopy() *DataSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataSource.

func (*DataSource) DeepCopyInto

func (in *DataSource) DeepCopyInto(out *DataSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LocalObjectReference

type LocalObjectReference struct {
	// Name of the referent.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
	// TODO: Add other useful fields. apiVersion, kind, uid?
	// +optional
	Name string `json:"name,omitempty" yaml:"name,omitempty"`
}

LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. +structType=atomic

func (*LocalObjectReference) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.

func (*LocalObjectReference) DeepCopyInto

func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeSection

type NodeSection struct {
	// ExtraMounts containing files which can be mounted into an Ansible Execution Pod
	// +kubebuilder:validation:Optional
	ExtraMounts []storage.VolMounts `json:"extraMounts,omitempty"`

	// Networks - Instance networks
	// +kubebuilder:validation:Optional
	Networks []infranetworkv1.IPSetNetwork `json:"networks,omitempty"`

	// UserData  node specific user-data
	// +kubebuilder:validation:Optional
	UserData *corev1.SecretReference `json:"userData,omitempty"`

	// NetworkData  node specific network-data
	// +kubebuilder:validation:Optional
	NetworkData *corev1.SecretReference `json:"networkData,omitempty"`

	// Ansible is the group of Ansible related configuration options.
	// +kubebuilder:validation:Optional
	Ansible AnsibleOpts `json:"ansible,omitempty"`

	// HostName - node name
	// +kubebuilder:validation:Optional
	HostName string `json:"hostName,omitempty"`

	// ManagementNetwork - Name of network to use for management (SSH/Ansible)
	// +kubebuilder:validation:Optional
	ManagementNetwork string `json:"managementNetwork,omitempty"`

	// +kubebuilder:validation:Optional
	// PreprovisioningNetworkDataName - NetworkData secret name in the local namespace for pre-provisioing
	PreprovisioningNetworkDataName string `json:"preprovisioningNetworkDataName,omitempty"`
}

NodeSection defines the top level attributes inherited by nodes in the CR.

func (*NodeSection) DeepCopy

func (in *NodeSection) DeepCopy() *NodeSection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSection.

func (*NodeSection) DeepCopyInto

func (in *NodeSection) DeepCopyInto(out *NodeSection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeTemplate

type NodeTemplate struct {
	// ExtraMounts containing files which can be mounted into an Ansible Execution Pod
	// +kubebuilder:validation:Optional
	ExtraMounts []storage.VolMounts `json:"extraMounts,omitempty"`

	// Networks - Instance networks
	// +kubebuilder:validation:Optional
	Networks []infranetworkv1.IPSetNetwork `json:"networks,omitempty"`

	// UserData  node specific user-data
	// +kubebuilder:validation:Optional
	UserData *corev1.SecretReference `json:"userData,omitempty"`

	// NetworkData  node specific network-data
	// +kubebuilder:validation:Optional
	NetworkData *corev1.SecretReference `json:"networkData,omitempty"`

	// 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: <base64 encoded private key contents>
	// <https://kubernetes.io/docs/concepts/configuration/secret/#ssh-authentication-secrets>
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:io.kubernetes:Secret"}
	AnsibleSSHPrivateKeySecret string `json:"ansibleSSHPrivateKeySecret"`
	// ManagementNetwork - Name of network to use for management (SSH/Ansible)
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=ctlplane
	ManagementNetwork string `json:"managementNetwork"`

	// Ansible is the group of Ansible related configuration options.
	// +kubebuilder:validation:Optional
	Ansible AnsibleOpts `json:"ansible,omitempty"`
}

NodeTemplate is a specification of the node attributes that override top level attributes.

func (*NodeTemplate) DeepCopy

func (in *NodeTemplate) DeepCopy() *NodeTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeTemplate.

func (*NodeTemplate) DeepCopyInto

func (in *NodeTemplate) DeepCopyInto(out *NodeTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackDataPlaneDeployment

type OpenStackDataPlaneDeployment struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="OpenStackDataPlaneDeployment Spec is immutable"
	Spec   OpenStackDataPlaneDeploymentSpec   `json:"spec,omitempty"`
	Status OpenStackDataPlaneDeploymentStatus `json:"status,omitempty"`
}

OpenStackDataPlaneDeployment is the Schema for the openstackdataplanedeployments API OpenStackDataPlaneDeployment name must be a valid RFC1123 as it is used in labels

func (*OpenStackDataPlaneDeployment) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneDeployment.

func (*OpenStackDataPlaneDeployment) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackDataPlaneDeployment) DeepCopyObject

func (in *OpenStackDataPlaneDeployment) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackDataPlaneDeployment) Default

func (r *OpenStackDataPlaneDeployment) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*OpenStackDataPlaneDeployment) InitConditions

func (instance *OpenStackDataPlaneDeployment) InitConditions()

InitConditions - Initializes Status Conditons

func (*OpenStackDataPlaneDeployment) InitHashesAndImages

func (instance *OpenStackDataPlaneDeployment) InitHashesAndImages()

InitHashesAndImages - Initialize ConfigHashes and Images

func (OpenStackDataPlaneDeployment) IsReady

func (instance OpenStackDataPlaneDeployment) IsReady() bool

IsReady - returns true if the OpenStackDataPlaneDeployment is ready

func (*OpenStackDataPlaneDeployment) SetupWebhookWithManager

func (r *OpenStackDataPlaneDeployment) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager sets up the webhook with the Manager

func (*OpenStackDataPlaneDeployment) ValidateCreate

func (r *OpenStackDataPlaneDeployment) ValidateCreate() (admission.Warnings, error)

func (*OpenStackDataPlaneDeployment) ValidateDelete

func (r *OpenStackDataPlaneDeployment) ValidateDelete() (admission.Warnings, error)

func (*OpenStackDataPlaneDeployment) ValidateUpdate

func (r *OpenStackDataPlaneDeployment) ValidateUpdate(original runtime.Object) (admission.Warnings, error)

type OpenStackDataPlaneDeploymentList

type OpenStackDataPlaneDeploymentList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OpenStackDataPlaneDeployment `json:"items"`
}

OpenStackDataPlaneDeploymentList contains a list of OpenStackDataPlaneDeployment

func (*OpenStackDataPlaneDeploymentList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneDeploymentList.

func (*OpenStackDataPlaneDeploymentList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackDataPlaneDeploymentList) DeepCopyObject

func (in *OpenStackDataPlaneDeploymentList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OpenStackDataPlaneDeploymentSpec

type OpenStackDataPlaneDeploymentSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems:=1
	// NodeSets is the list of NodeSets deployed
	NodeSets []string `json:"nodeSets"`

	// BackoffLimit allows to define the maximum number of retried executions (defaults to 6).
	// +kubebuilder:default:=6
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	BackoffLimit *int32 `json:"backoffLimit,omitempty"`

	// AnsibleTags for ansible execution
	// +kubebuilder:validation:Optional
	AnsibleTags string `json:"ansibleTags,omitempty"`

	// AnsibleLimit for ansible execution
	// +kubebuilder:validation:Optional
	AnsibleLimit string `json:"ansibleLimit,omitempty"`

	// AnsibleSkipTags for ansible execution
	// +kubebuilder:validation:Optional
	AnsibleSkipTags string `json:"ansibleSkipTags,omitempty"`

	// +kubebuilder:validation:Optional
	// AnsibleExtraVars for ansible execution
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	AnsibleExtraVars map[string]json.RawMessage `json:"ansibleExtraVars,omitempty"`

	// +kubebuilder:validation:Optional
	// ServicesOverride list
	ServicesOverride []string `json:"servicesOverride,omitempty"`

	// Time before the deployment is requeued in seconds
	// +kubebuilder:validation:Minimum:=1
	// +kubebuilder:default:=15
	DeploymentRequeueTime int `json:"deploymentRequeueTime"`
}

OpenStackDataPlaneDeploymentSpec defines the desired state of OpenStackDataPlaneDeployment

func (*OpenStackDataPlaneDeploymentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneDeploymentSpec.

func (*OpenStackDataPlaneDeploymentSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackDataPlaneDeploymentSpec) Default

func (spec *OpenStackDataPlaneDeploymentSpec) Default()

Default - set defaults for this OpenStackDataPlaneDeployment

func (*OpenStackDataPlaneDeploymentSpec) ValidateCreate

func (r *OpenStackDataPlaneDeploymentSpec) ValidateCreate() field.ErrorList

func (*OpenStackDataPlaneDeploymentSpec) ValidateDelete

func (r *OpenStackDataPlaneDeploymentSpec) ValidateDelete() field.ErrorList

func (*OpenStackDataPlaneDeploymentSpec) ValidateUpdate

func (r *OpenStackDataPlaneDeploymentSpec) ValidateUpdate() field.ErrorList

type OpenStackDataPlaneDeploymentStatus

type OpenStackDataPlaneDeploymentStatus struct {
	// NodeSetConditions
	NodeSetConditions map[string]condition.Conditions `json:"nodeSetConditions,omitempty" optional:"true"`

	// ConfigMapHashes
	ConfigMapHashes map[string]string `json:"configMapHashes,omitempty" optional:"true"`

	// SecretHashes
	SecretHashes map[string]string `json:"secretHashes,omitempty" optional:"true"`

	// NodeSetHashes
	NodeSetHashes map[string]string `json:"nodeSetHashes,omitempty" optional:"true"`

	// ContainerImages
	ContainerImages map[string]string `json:"containerImages,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	// Conditions
	Conditions condition.Conditions `json:"conditions,omitempty" optional:"true"`

	//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.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// DeployedVersion
	DeployedVersion string `json:"deployedVersion,omitempty"`
}

OpenStackDataPlaneDeploymentStatus defines the observed state of OpenStackDataPlaneDeployment

func (*OpenStackDataPlaneDeploymentStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneDeploymentStatus.

func (*OpenStackDataPlaneDeploymentStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackDataPlaneNodeSet

type OpenStackDataPlaneNodeSet struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   OpenStackDataPlaneNodeSetSpec   `json:"spec,omitempty"`
	Status OpenStackDataPlaneNodeSetStatus `json:"status,omitempty"`
}

OpenStackDataPlaneNodeSet is the Schema for the openstackdataplanenodesets API OpenStackDataPlaneNodeSet name must be a valid RFC1123 as it is used in labels

func (*OpenStackDataPlaneNodeSet) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneNodeSet.

func (*OpenStackDataPlaneNodeSet) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackDataPlaneNodeSet) DeepCopyObject

func (in *OpenStackDataPlaneNodeSet) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackDataPlaneNodeSet) Default

func (r *OpenStackDataPlaneNodeSet) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (OpenStackDataPlaneNodeSet) GetAnsibleEESpec

func (instance OpenStackDataPlaneNodeSet) GetAnsibleEESpec() AnsibleEESpec

GetAnsibleEESpec - get the fields that will be passed to AEE

func (*OpenStackDataPlaneNodeSet) InitConditions

func (instance *OpenStackDataPlaneNodeSet) InitConditions()

InitConditions - Initializes Status Conditons

func (OpenStackDataPlaneNodeSet) IsReady

func (instance OpenStackDataPlaneNodeSet) IsReady() bool

IsReady - returns true if the DataPlane is ready

func (*OpenStackDataPlaneNodeSet) SetupWebhookWithManager

func (r *OpenStackDataPlaneNodeSet) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager sets up the webhook with the Manager

func (*OpenStackDataPlaneNodeSet) ValidateCreate

func (r *OpenStackDataPlaneNodeSet) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*OpenStackDataPlaneNodeSet) ValidateDelete

func (r *OpenStackDataPlaneNodeSet) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*OpenStackDataPlaneNodeSet) ValidateUpdate

func (r *OpenStackDataPlaneNodeSet) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type OpenStackDataPlaneNodeSetList

type OpenStackDataPlaneNodeSetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OpenStackDataPlaneNodeSet `json:"items"`
}

OpenStackDataPlaneNodeSetList contains a list of OpenStackDataPlaneNodeSets

func (*OpenStackDataPlaneNodeSetList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneNodeSetList.

func (*OpenStackDataPlaneNodeSetList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackDataPlaneNodeSetList) DeepCopyObject

func (in *OpenStackDataPlaneNodeSetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OpenStackDataPlaneNodeSetSpec

type OpenStackDataPlaneNodeSetSpec struct {
	// +kubebuilder:validation:Optional
	// BaremetalSetTemplate Template for BaremetalSet for the NodeSet
	BaremetalSetTemplate baremetalv1.OpenStackBaremetalSetSpec `json:"baremetalSetTemplate,omitempty"`

	// +kubebuilder:validation:Required
	// 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 NodeTemplate `json:"nodeTemplate"`

	// Nodes - Map of Node Names and node specific data. Values here override defaults in the
	// upper level section.
	// +kubebuilder:validation:Required
	Nodes map[string]NodeSection `json:"nodes"`

	// Env is a list containing the environment variables to pass to the pod
	// Variables modifying behavior of AnsibleEE can be specified here.
	// +kubebuilder:validation:Optional
	Env []corev1.EnvVar `json:"env,omitempty"`

	// +kubebuilder:validation:Optional
	// 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
	NetworkAttachments []string `json:"networkAttachments,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default={download-cache,bootstrap,configure-network,validate-network,install-os,configure-os,ssh-known-hosts,run-os,reboot-os,install-certs,ovn,neutron-metadata,libvirt,nova,telemetry}
	// Services list
	Services []string `json:"services"`

	// Tags - Additional tags for NodeSet
	// +kubebuilder:validation:Optional
	Tags []string `json:"tags,omitempty"`

	// SecretMaxSize - Maximum size in bytes of a Kubernetes secret. This size is currently situated around
	// 1 MiB (nearly 1 MB).
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=1048576
	SecretMaxSize int `json:"secretMaxSize" yaml:"secretMaxSize"`

	// +kubebuilder:validation:Optional
	//
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	// PreProvisioned - Set to true if the nodes have been Pre Provisioned.
	PreProvisioned bool `json:"preProvisioned,omitempty"`

	// TLSEnabled - Whether the node set has TLS enabled.
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	TLSEnabled bool `json:"tlsEnabled" yaml:"tlsEnabled"`
}

OpenStackDataPlaneNodeSetSpec defines the desired state of OpenStackDataPlaneNodeSet

func (*OpenStackDataPlaneNodeSetSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneNodeSetSpec.

func (*OpenStackDataPlaneNodeSetSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackDataPlaneNodeSetSpec) Default

func (spec *OpenStackDataPlaneNodeSetSpec) Default()

Default - set defaults for this OpenStackDataPlaneNodeSet Spec

func (*OpenStackDataPlaneNodeSetSpec) ValidateDelete

func (r *OpenStackDataPlaneNodeSetSpec) ValidateDelete() field.ErrorList

func (*OpenStackDataPlaneNodeSetSpec) ValidateUpdate

type OpenStackDataPlaneNodeSetStatus

type OpenStackDataPlaneNodeSetStatus struct {
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	// Conditions
	Conditions condition.Conditions `json:"conditions,omitempty" optional:"true"`

	// DeploymentStatuses
	DeploymentStatuses map[string]condition.Conditions `json:"deploymentStatuses,omitempty" optional:"true"`

	// AllHostnames
	AllHostnames map[string]map[infranetworkv1.NetNameStr]string `json:"allHostnames,omitempty" optional:"true"`

	// AllIPs
	AllIPs map[string]map[infranetworkv1.NetNameStr]string `json:"allIPs,omitempty" optional:"true"`

	// ConfigMapHashes
	ConfigMapHashes map[string]string `json:"configMapHashes,omitempty" optional:"true"`

	// SecretHashes
	SecretHashes map[string]string `json:"secretHashes,omitempty" optional:"true"`

	// DNSClusterAddresses
	DNSClusterAddresses []string `json:"dnsClusterAddresses,omitempty" optional:"true"`

	// ContainerImages
	ContainerImages map[string]string `json:"containerImages,omitempty" optional:"true"`

	// CtlplaneSearchDomain
	CtlplaneSearchDomain string `json:"ctlplaneSearchDomain,omitempty" optional:"true"`

	// 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.
	ConfigHash string `json:"configHash,omitempty"`

	// 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.
	DeployedConfigHash string `json:"deployedConfigHash,omitempty"`

	//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.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// DeployedVersion
	DeployedVersion string `json:"deployedVersion,omitempty"`
}

OpenStackDataPlaneNodeSetStatus defines the observed state of OpenStackDataPlaneNodeSet

func (*OpenStackDataPlaneNodeSetStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneNodeSetStatus.

func (*OpenStackDataPlaneNodeSetStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenStackDataPlaneService

type OpenStackDataPlaneService struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   OpenStackDataPlaneServiceSpec   `json:"spec,omitempty"`
	Status OpenStackDataPlaneServiceStatus `json:"status,omitempty"`
}

OpenStackDataPlaneService is the Schema for the openstackdataplaneservices API OpenStackDataPlaneService name must be a valid RFC1123 as it is used in labels

func (*OpenStackDataPlaneService) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneService.

func (*OpenStackDataPlaneService) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackDataPlaneService) DeepCopyObject

func (in *OpenStackDataPlaneService) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*OpenStackDataPlaneService) Default

func (r *OpenStackDataPlaneService) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*OpenStackDataPlaneService) DefaultLabels

func (r *OpenStackDataPlaneService) DefaultLabels()

DefaultLabel - adding default label to the OpenStackDataPlaneService

func (OpenStackDataPlaneService) InitConditions

func (instance OpenStackDataPlaneService) InitConditions()

InitConditions - Initializes Status Conditons

func (OpenStackDataPlaneService) IsReady

func (instance OpenStackDataPlaneService) IsReady() bool

IsReady - returns true if service is ready to serve requests

func (*OpenStackDataPlaneService) SetupWebhookWithManager

func (r *OpenStackDataPlaneService) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager sets up the webhook with the Manager

func (*OpenStackDataPlaneService) ValidateCreate

func (r *OpenStackDataPlaneService) ValidateCreate() (admission.Warnings, error)

func (*OpenStackDataPlaneService) ValidateDelete

func (r *OpenStackDataPlaneService) ValidateDelete() (admission.Warnings, error)

func (*OpenStackDataPlaneService) ValidateUpdate

func (r *OpenStackDataPlaneService) ValidateUpdate(original runtime.Object) (admission.Warnings, error)

type OpenStackDataPlaneServiceList

type OpenStackDataPlaneServiceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OpenStackDataPlaneService `json:"items"`
}

OpenStackDataPlaneServiceList contains a list of OpenStackDataPlaneService

func (*OpenStackDataPlaneServiceList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneServiceList.

func (*OpenStackDataPlaneServiceList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackDataPlaneServiceList) DeepCopyObject

func (in *OpenStackDataPlaneServiceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OpenStackDataPlaneServiceSpec

type OpenStackDataPlaneServiceSpec struct {
	// DataSources list of DataSource objects to mount as ExtraMounts for the
	// OpenStackAnsibleEE
	DataSources []DataSource `json:"dataSources,omitempty" yaml:"dataSources,omitempty"`

	// TLSCerts tls certs to be generated
	// +kubebuilder:validation:Optional
	TLSCerts map[string]OpenstackDataPlaneServiceCert `json:"tlsCerts,omitempty" yaml:"tlsCerts,omitempty"`

	// PlaybookContents is an inline playbook contents that ansible will run on execution.
	PlaybookContents string `json:"playbookContents,omitempty"`

	// Playbook is a path to the playbook that ansible will run on this execution
	Playbook string `json:"playbook,omitempty"`

	// CACerts - Secret containing the CA certificate chain
	// +kubebuilder:validation:Optional
	CACerts string `json:"caCerts,omitempty" yaml:"caCerts,omitempty"`

	// OpenStackAnsibleEERunnerImage image to use as the ansibleEE runner image
	// +kubebuilder:validation:Optional
	OpenStackAnsibleEERunnerImage string `json:"openStackAnsibleEERunnerImage,omitempty" yaml:"openStackAnsibleEERunnerImage,omitempty"`

	// 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.
	// +kubebuilder:validation:Optional
	CertsFrom string `json:"certsFrom,omitempty" yaml:"certsFrom,omitempty"`

	// AddCertMounts - Whether to add cert mounts
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch"}
	AddCertMounts bool `json:"addCertMounts" yaml:"addCertMounts"`

	// DeployOnAllNodeSets - should the service be deploy across all nodesets
	// This will override default target of a service play, setting it to 'all'.
	// +kubebuilder:validation:Optional
	DeployOnAllNodeSets bool `json:"deployOnAllNodeSets,omitempty" yaml:"deployOnAllNodeSets,omitempty"`

	// 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
	ContainerImageFields []string `json:"containerImageFields,omitempty" yaml:"containerImageFields,omitempty"`

	// 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.
	EDPMServiceType string `json:"edpmServiceType,omitempty" yaml:"edpmServiceType,omitempty"`
}

OpenStackDataPlaneServiceSpec defines the desired state of OpenStackDataPlaneService

func (*OpenStackDataPlaneServiceSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneServiceSpec.

func (*OpenStackDataPlaneServiceSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenStackDataPlaneServiceSpec) Default

func (spec *OpenStackDataPlaneServiceSpec) Default(name string)

Default - set defaults for this OpenStackDataPlaneService

func (*OpenStackDataPlaneServiceSpec) ValidateCreate

func (r *OpenStackDataPlaneServiceSpec) ValidateCreate() field.ErrorList

func (*OpenStackDataPlaneServiceSpec) ValidateDelete

func (r *OpenStackDataPlaneServiceSpec) ValidateDelete() field.ErrorList

func (*OpenStackDataPlaneServiceSpec) ValidateUpdate

func (r *OpenStackDataPlaneServiceSpec) ValidateUpdate() field.ErrorList

type OpenStackDataPlaneServiceStatus

type OpenStackDataPlaneServiceStatus struct {
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
	// Conditions
	Conditions condition.Conditions `json:"conditions,omitempty" optional:"true"`
}

OpenStackDataPlaneServiceStatus defines the observed state of OpenStackDataPlaneService

func (*OpenStackDataPlaneServiceStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackDataPlaneServiceStatus.

func (*OpenStackDataPlaneServiceStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenstackDataPlaneServiceCert

type OpenstackDataPlaneServiceCert struct {
	// Contents of the certificate
	// This is a list of strings for properties that are needed in the cert
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems:=1
	Contents []string `json:"contents"`

	// Networks to include in SNI for the cert
	// +kubebuilder:validation:Optional
	Networks []infranetworkv1.NetNameStr `json:"networks,omitempty"`

	// Issuer is the label for the issuer to issue the cert
	// Only one issuer should have this label
	// +kubebuilder:validation:Optional
	Issuer string `json:"issuer,omitempty"`

	// KeyUsages to be added to the issued cert
	// +kubebuilder:validation:Optional
	KeyUsages []certmgrv1.KeyUsage `json:"keyUsages,omitempty" yaml:"keyUsages,omitempty"`

	// EDPMRoleServiceName is the value of the <role>_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.
	EDPMRoleServiceName string `json:"edpmRoleServiceName,omitempty"`
}

OpenstackDataPlaneServiceCert defines the property of a TLS cert issued for a dataplane service

func (*OpenstackDataPlaneServiceCert) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackDataPlaneServiceCert.

func (*OpenstackDataPlaneServiceCert) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretEnvSource

type SecretEnvSource struct {
	// The Secret to select from.
	LocalObjectReference `json:",inline" yaml:",inline"`
	// Specify whether the Secret must be defined
	// +optional
	Optional *bool `json:"optional,omitempty" yaml:"optional,omitempty"`
}

SecretEnvSource selects a Secret to populate the environment variables with.

The contents of the target Secret's Data field will represent the key-value pairs as environment variables.

func (*SecretEnvSource) DeepCopy

func (in *SecretEnvSource) DeepCopy() *SecretEnvSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretEnvSource.

func (*SecretEnvSource) DeepCopyInto

func (in *SecretEnvSource) DeepCopyInto(out *SecretEnvSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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