v1beta2

package
v0.0.0-...-087c017 Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2025 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package v1beta2 contains API Schema definitions for the osp-director v1beta2 API group +kubebuilder:object:generate=true +groupName=osp-director.openstack.org

Index

Constants

This section is empty.

Variables

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

	// 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
)

Functions

func CreateVIPNetworkList

func CreateVIPNetworkList(
	c client.Client,
	instance *OpenStackControlPlane,
) ([]string, error)

CreateVIPNetworkList - return list of all networks from all VM roles which has vip flag

Types

type ControlPlaneProvisioningReason

type ControlPlaneProvisioningReason string

ControlPlaneProvisioningReason - the reason of the condition for this openstack ctlplane

type CrsForBackup

type CrsForBackup struct {
	// OpenStackBaremetalSets - list of OpenStackBaremetalSets saved in the backup
	OpenStackBaremetalSets ospdirectorv1beta1.OpenStackBaremetalSetList `json:"openStackBaremetalSets,omitempty" optional:"true"`
	// OpenStackClients - list of OpenStackClients saved in the backup
	OpenStackClients ospdirectorv1beta1.OpenStackClientList `json:"openStackClients,omitempty" optional:"true"`
	// OpenStackControlPlanes - list of OpenStackControlPlanes saved in the backup
	OpenStackControlPlanes OpenStackControlPlaneList `json:"openStackControlPlanes,omitempty" optional:"true"`
	// OpenStackMACAddresses - list of OpenStackMACAddresses saved in the backup
	OpenStackMACAddresses ospdirectorv1beta1.OpenStackMACAddressList `json:"openStackMACAddresses,omitempty" optional:"true"`
	// OpenStackNets - list of OpenStackNets saved in the backup
	OpenStackNets ospdirectorv1beta1.OpenStackNetList `json:"openStackNets,omitempty" optional:"true"`
	// OpenStackNetAttachments - list of OpenStackNetAttachments saved in the backup
	OpenStackNetAttachments ospdirectorv1beta1.OpenStackNetAttachmentList `json:"openStackNetAttachments,omitempty" optional:"true"`
	// OpenStackNetConfigs - list of OpenStackNetConfigs saved in the backup
	OpenStackNetConfigs ospdirectorv1beta1.OpenStackNetConfigList `json:"openStackNetConfigs,omitempty" optional:"true"`
	// OpenStackProvisionServers - list of OpenStackProvisionServers saved in the backup
	OpenStackProvisionServers ospdirectorv1beta1.OpenStackProvisionServerList `json:"openStackProvisionServers,omitempty" optional:"true"`
	// OpenStackVMSets - list of OpenStackVMSets saved in the backup
	OpenStackVMSets OpenStackVMSetList `json:"openStackVMSets,omitempty" optional:"true"`
}

CrsForBackup -

func (*CrsForBackup) DeepCopy

func (in *CrsForBackup) DeepCopy() *CrsForBackup

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

func (*CrsForBackup) DeepCopyInto

func (in *CrsForBackup) DeepCopyInto(out *CrsForBackup)

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

type Hash

type Hash struct {
	// Name of hash referencing the parameter
	Name string `json:"name,omitempty"`
	// Hash
	Hash string `json:"hash,omitempty"`
}

Hash - struct to add hashes to status

func (*Hash) DeepCopy

func (in *Hash) DeepCopy() *Hash

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

func (*Hash) DeepCopyInto

func (in *Hash) DeepCopyInto(out *Hash)

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

type Host

type Host struct {
	Hostname          string                                           `json:"hostname"`
	HostRef           string                                           `json:"hostRef"`
	DomainName        string                                           `json:"domainName"`
	DomainNameUniq    string                                           `json:"domainNameUniq"`
	IPAddress         string                                           `json:"ipAddress"`
	NetworkDataSecret string                                           `json:"networkDataSecret"`
	BaseImageName     string                                           `json:"baseImageName"`
	Labels            map[string]string                                `json:"labels"`
	NAD               map[string]networkv1.NetworkAttachmentDefinition `json:"nad"`
}

Host -

func (*Host) DeepCopy

func (in *Host) DeepCopy() *Host

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

func (*Host) DeepCopyInto

func (in *Host) DeepCopyInto(out *Host)

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

type HostStatus

type HostStatus struct {

	// +kubebuilder:validation:Required
	// IPStatus -
	IPStatus `json:",inline"`

	ProvisioningState shared.ProvisioningState `json:"provisioningState"`

	// +kubebuilder:default=false
	// Host annotated for deletion
	AnnotatedForDeletion bool `json:"annotatedForDeletion"`

	UserDataSecretName    string `json:"userDataSecretName"`
	NetworkDataSecretName string `json:"networkDataSecretName"`
}

HostStatus represents the hostname and IP info for a specific host

func SyncIPsetStatus

func SyncIPsetStatus(
	cond *shared.Condition,
	instanceStatus map[string]HostStatus,
	ipsetHostStatus ospdirectorv1beta1.IPStatus,
) HostStatus

SyncIPsetStatus - sync relevant information from IPSet to CR status

func (*HostStatus) DeepCopy

func (in *HostStatus) DeepCopy() *HostStatus

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

func (*HostStatus) DeepCopyInto

func (in *HostStatus) DeepCopyInto(out *HostStatus)

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

type IPStatus

type IPStatus struct {
	Hostname string `json:"hostname"`

	// +kubebuilder:default=unassigned
	HostRef string `json:"hostRef"`

	// +kubebuilder:validation:Optional
	IPAddresses map[string]string `json:"ipaddresses"`
}

IPStatus represents the hostname and IP info for a specific host

func (*IPStatus) DeepCopy

func (in *IPStatus) DeepCopy() *IPStatus

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

func (*IPStatus) DeepCopyInto

func (in *IPStatus) DeepCopyInto(out *IPStatus)

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

type OpenStackBackup

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

	Spec   OpenStackBackupSpec   `json:"spec,omitempty"`
	Status OpenStackBackupStatus `json:"status,omitempty"`
}

OpenStackBackup is used to backup OpenShift resources representing an OSP overcloud

func (*OpenStackBackup) DeepCopy

func (in *OpenStackBackup) DeepCopy() *OpenStackBackup

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

func (*OpenStackBackup) DeepCopyInto

func (in *OpenStackBackup) DeepCopyInto(out *OpenStackBackup)

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

func (*OpenStackBackup) DeepCopyObject

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

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

func (*OpenStackBackup) SetupWebhookWithManager

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

SetupWebhookWithManager - register this webhook with the controller manager

func (*OpenStackBackup) ValidateCreate

func (r *OpenStackBackup) ValidateCreate() error

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

func (*OpenStackBackup) ValidateDelete

func (r *OpenStackBackup) ValidateDelete() error

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

func (*OpenStackBackup) ValidateUpdate

func (r *OpenStackBackup) ValidateUpdate(old runtime.Object) error

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

type OpenStackBackupList

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

OpenStackBackupList contains a list of OpenStackBackup

func (*OpenStackBackupList) DeepCopy

func (in *OpenStackBackupList) DeepCopy() *OpenStackBackupList

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

func (*OpenStackBackupList) DeepCopyInto

func (in *OpenStackBackupList) DeepCopyInto(out *OpenStackBackupList)

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

func (*OpenStackBackupList) DeepCopyObject

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

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

type OpenStackBackupSpec

type OpenStackBackupSpec struct {
	// +kubebuilder:validation:Optional
	// OSP-D-operator-specific resources saved in the backup
	Crs CrsForBackup `json:"crs,omitempty" optional:"true"`

	// +kubebuilder:validation:Optional
	// List of ConfigMaps saved in the backup
	ConfigMaps corev1.ConfigMapList `json:"configMaps,omitempty" optional:"true"`
	// +kubebuilder:validation:Optional
	// List of Secrets saved in the backup
	Secrets corev1.SecretList `json:"secrets,omitempty" optional:"true"`
}

OpenStackBackupSpec defines the desired state of OpenStackBackup

func (*OpenStackBackupSpec) DeepCopy

func (in *OpenStackBackupSpec) DeepCopy() *OpenStackBackupSpec

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

func (*OpenStackBackupSpec) DeepCopyInto

func (in *OpenStackBackupSpec) DeepCopyInto(out *OpenStackBackupSpec)

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

type OpenStackBackupStatus

type OpenStackBackupStatus struct {
}

OpenStackBackupStatus defines the observed state of OpenStackBackup

func (*OpenStackBackupStatus) DeepCopy

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

func (*OpenStackBackupStatus) DeepCopyInto

func (in *OpenStackBackupStatus) DeepCopyInto(out *OpenStackBackupStatus)

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

type OpenStackControlPlane

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

	Spec   OpenStackControlPlaneSpec   `json:"spec,omitempty"`
	Status OpenStackControlPlaneStatus `json:"status,omitempty"`
}

OpenStackControlPlane represents a virtualized OpenStack control plane configuration

func GetControlPlane

func GetControlPlane(
	c client.Client,
	obj metav1.Object,
) (OpenStackControlPlane, reconcile.Result, error)

GetControlPlane - Get OSP ControlPlane CR where e.g. the status information has the OSP version: controlPlane.Status.OSPVersion FIXME: We assume there is only one ControlPlane CR for now (enforced by webhook), but this might need to change

func (*OpenStackControlPlane) DeepCopy

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

func (*OpenStackControlPlane) DeepCopyInto

func (in *OpenStackControlPlane) DeepCopyInto(out *OpenStackControlPlane)

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

func (*OpenStackControlPlane) DeepCopyObject

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

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

func (*OpenStackControlPlane) Default

func (r *OpenStackControlPlane) Default()

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

func (OpenStackControlPlane) GetHostnames

func (instance OpenStackControlPlane) GetHostnames() map[string]string

GetHostnames -

func (*OpenStackControlPlane) IsReady

func (instance *OpenStackControlPlane) IsReady() bool

IsReady - Is this resource in its fully-configured (quiesced) state?

func (*OpenStackControlPlane) SetupWebhookWithManager

func (r *OpenStackControlPlane) SetupWebhookWithManager(mgr ctrl.Manager, defaults shared.OpenStackControlPlaneDefaults) error

SetupWebhookWithManager - register this webhook with the controller manager

func (*OpenStackControlPlane) ValidateCreate

func (r *OpenStackControlPlane) ValidateCreate() error

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

func (*OpenStackControlPlane) ValidateDelete

func (r *OpenStackControlPlane) ValidateDelete() error

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

func (*OpenStackControlPlane) ValidateUpdate

func (r *OpenStackControlPlane) ValidateUpdate(old runtime.Object) error

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

type OpenStackControlPlaneList

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

OpenStackControlPlaneList contains a list of OpenStackControlPlane

func (*OpenStackControlPlaneList) DeepCopy

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

func (*OpenStackControlPlaneList) DeepCopyInto

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

func (*OpenStackControlPlaneList) DeepCopyObject

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

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

type OpenStackControlPlaneProvisioningStatus

type OpenStackControlPlaneProvisioningStatus struct {
	State        shared.ProvisioningState `json:"state,omitempty"`
	Reason       string                   `json:"reason,omitempty"`
	DesiredCount int                      `json:"desiredCount,omitempty"`
	ReadyCount   int                      `json:"readyCount,omitempty"`
	ClientReady  bool                     `json:"clientReady,omitempty"`
}

OpenStackControlPlaneProvisioningStatus represents the overall provisioning state of the OpenStackControlPlane (with an optional explanatory message)

func (*OpenStackControlPlaneProvisioningStatus) DeepCopy

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

func (*OpenStackControlPlaneProvisioningStatus) DeepCopyInto

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

type OpenStackControlPlaneSpec

type OpenStackControlPlaneSpec struct {
	// List of VirtualMachine roles
	VirtualMachineRoles map[string]OpenStackVirtualMachineRoleSpec `json:"virtualMachineRoles"`
	// +kubebuilder:validation:Optional
	// OpenstackClient image. If missing will be set to the configured OPENSTACKCLIENT_IMAGE_URL_DEFAULT in the CSV for the OSP Director Operator.
	OpenStackClientImageURL string `json:"openStackClientImageURL,omitempty"`
	// OpenStackClientStorageClass storage class
	OpenStackClientStorageClass string `json:"openStackClientStorageClass,omitempty"`
	// PasswordSecret used to e.g specify root pwd
	PasswordSecret string `json:"passwordSecret,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default={ctlplane,external}
	// OpenStackClientNetworks the name(s) of the OpenStackClientNetworks used to attach the openstackclient to
	OpenStackClientNetworks []string `json:"openStackClientNetworks"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum={"train","wallaby","16.2","17.0","17.1"}
	// OpenStackRelease to overwrite OSPrelease auto detection from tripleoclient container image
	OpenStackRelease string `json:"openStackRelease"`

	// Idm secret used to register openstack client in IPA
	IdmSecret string `json:"idmSecret,omitempty"`

	// Name of the config map containing custom CA certificates to trust
	CAConfigMap string `json:"caConfigMap,omitempty"`

	// +kubebuilder:validation:Optional
	// AdditionalServiceVIPs - Map of service name <-> subnet nameLower for which a IP should get reserved on
	// These are used to create the <Service>VirtualFixedIPs environment parameters starting wallaby/OSP17.0.
	// Default "Redis":  "internal_api",
	//         "OVNDBs": "internal_api",
	// https://docs.openstack.org/project-deploy-guide/tripleo-docs/latest/deployment/network_v2.html#service-virtual-ips
	// Note: OSP17 networkv2 only
	AdditionalServiceVIPs map[string]string `json:"additionalServiceVIPs,omitempty"`
}

OpenStackControlPlaneSpec defines the desired state of OpenStackControlPlane

func (*OpenStackControlPlaneSpec) DeepCopy

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

func (*OpenStackControlPlaneSpec) DeepCopyInto

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

type OpenStackControlPlaneStatus

type OpenStackControlPlaneStatus struct {
	VIPStatus          map[string]HostStatus                   `json:"vipStatus,omitempty"`
	Conditions         shared.ConditionList                    `json:"conditions,omitempty" optional:"true"`
	ProvisioningStatus OpenStackControlPlaneProvisioningStatus `json:"provisioningStatus,omitempty"`

	// OSPVersion the OpenStack version to render templates files
	OSPVersion shared.OSPVersion `json:"ospVersion"`
}

OpenStackControlPlaneStatus defines the observed state of OpenStackControlPlane

func (*OpenStackControlPlaneStatus) DeepCopy

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

func (*OpenStackControlPlaneStatus) DeepCopyInto

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

type OpenStackVMSet

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

	Spec   OpenStackVMSetSpec   `json:"spec,omitempty"`
	Status OpenStackVMSetStatus `json:"status,omitempty"`
}

OpenStackVMSet represents a set of virtual machines hosts for a specific role within the Overcloud deployment

func (*OpenStackVMSet) DeepCopy

func (in *OpenStackVMSet) DeepCopy() *OpenStackVMSet

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

func (*OpenStackVMSet) DeepCopyInto

func (in *OpenStackVMSet) DeepCopyInto(out *OpenStackVMSet)

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

func (*OpenStackVMSet) DeepCopyObject

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

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

func (*OpenStackVMSet) Default

func (r *OpenStackVMSet) Default()

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

func (OpenStackVMSet) GetHostnames

func (instance OpenStackVMSet) GetHostnames() map[string]string

GetHostnames -

func (*OpenStackVMSet) IsReady

func (instance *OpenStackVMSet) IsReady() bool

IsReady - Is this resource in its fully-configured (quiesced) state?

func (*OpenStackVMSet) SetupWebhookWithManager

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

SetupWebhookWithManager - register this webhook with the controller manager

func (*OpenStackVMSet) ValidateCreate

func (r *OpenStackVMSet) ValidateCreate() error

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

func (*OpenStackVMSet) ValidateDelete

func (r *OpenStackVMSet) ValidateDelete() error

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

func (*OpenStackVMSet) ValidateUpdate

func (r *OpenStackVMSet) ValidateUpdate(old runtime.Object) error

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

type OpenStackVMSetDisk

type OpenStackVMSetDisk struct {
	// Name of the disk, e.g. used to do the PVC request.
	// Must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character
	Name string `json:"name"`
	// Disc size in GB
	DiskSize uint32 `json:"diskSize"`
	// StorageClass to be used for the disk
	StorageClass string `json:"storageClass,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=ReadWriteMany
	// +kubebuilder:validation:Enum=ReadWriteOnce;ReadWriteMany
	// StorageAccessMode - Virtual machines must have a persistent volume claim (PVC)
	// with a shared ReadWriteMany (RWX) access mode to be live migrated.
	StorageAccessMode string `json:"storageAccessMode,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=Filesystem
	// +kubebuilder:validation:Enum=Block;Filesystem
	// StorageVolumeMode - When using OpenShift Virtualization with OpenShift Container Platform Container Storage,
	// specify RBD block mode persistent volume claims (PVCs) when creating virtual machine disks. With virtual machine disks,
	// RBD block mode volumes are more efficient and provide better performance than Ceph FS or RBD filesystem-mode PVCs.
	// To specify RBD block mode PVCs, use the 'ocs-storagecluster-ceph-rbd' storage class and VolumeMode: Block.
	StorageVolumeMode string `json:"storageVolumeMode"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// DedicatedIOThread - Disks with dedicatedIOThread set to true will be allocated an exclusive thread.
	// This is generally useful if a specific Disk is expected to have heavy I/O traffic, e.g. a database spindle.
	DedicatedIOThread bool `json:"dedicatedIOThread"`
	// BaseImageVolumeName used as the base volume for the rootdisk of the VM
	BaseImageVolumeName string `json:"baseImageVolumeName"`
}

OpenStackVMSetDisk defines additional disk properties

func (*OpenStackVMSetDisk) DeepCopy

func (in *OpenStackVMSetDisk) DeepCopy() *OpenStackVMSetDisk

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

func (*OpenStackVMSetDisk) DeepCopyInto

func (in *OpenStackVMSetDisk) DeepCopyInto(out *OpenStackVMSetDisk)

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

type OpenStackVMSetList

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

OpenStackVMSetList contains a list of OpenStackVMSet

func (*OpenStackVMSetList) DeepCopy

func (in *OpenStackVMSetList) DeepCopy() *OpenStackVMSetList

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

func (*OpenStackVMSetList) DeepCopyInto

func (in *OpenStackVMSetList) DeepCopyInto(out *OpenStackVMSetList)

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

func (*OpenStackVMSetList) DeepCopyObject

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

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

type OpenStackVMSetProvisioningStatus

type OpenStackVMSetProvisioningStatus struct {
	State      shared.ProvisioningState `json:"state,omitempty"`
	Reason     string                   `json:"reason,omitempty"`
	ReadyCount int                      `json:"readyCount,omitempty"`
}

OpenStackVMSetProvisioningStatus represents the overall provisioning state of all VMs in the OpenStackVMSet (with an optional explanatory message)

func (*OpenStackVMSetProvisioningStatus) DeepCopy

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

func (*OpenStackVMSetProvisioningStatus) DeepCopyInto

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

type OpenStackVMSetSpec

type OpenStackVMSetSpec struct {
	// Number of VMs to configure, 1 or 3
	VMCount int `json:"vmCount"`
	// number of Cores assigned to the VMs
	Cores uint32 `json:"cores"`
	// amount of Memory in GB used by the VMs
	Memory uint32 `json:"memory"`
	// RootDisk specification of the VM
	RootDisk OpenStackVMSetDisk `json:"rootDisk"`
	// AdditionalDisks additional disks to add to the VM
	AdditionalDisks []OpenStackVMSetDisk `json:"additionalDisks,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=auto;shared
	// IOThreadsPolicy - IO thread policy for the domain. Currently valid policies are shared and auto.
	// However, if any disk requests a dedicated IOThread, ioThreadsPolicy will be enabled and default to shared.
	// When ioThreadsPolicy is set to auto IOThreads will also be "isolated" from the vCPUs and placed on the same physical CPU as the QEMU emulator thread.
	// An ioThreadsPolicy of shared indicates that KubeVirt should use one thread that will be shared by all disk devices.
	IOThreadsPolicy string `json:"ioThreadsPolicy,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Block Multi-Queue is a framework for the Linux block layer that maps Device I/O queries to multiple queues.
	// This splits I/O processing up across multiple threads, and therefor multiple CPUs. libvirt recommends that the
	// number of queues used should match the number of CPUs allocated for optimal performance.
	BlockMultiQueue bool `json:"blockMultiQueue"`

	// name of secret holding the stack-admin ssh keys
	DeploymentSSHSecret string `json:"deploymentSSHSecret"`

	// +kubebuilder:default=enp2s0
	// Interface to use for ctlplane network
	CtlplaneInterface string `json:"ctlplaneInterface"`

	// +kubebuilder:default={ctlplane,external,internalapi,tenant,storage,storagemgmt}
	// Networks the name(s) of the OpenStackNetworks used to generate IPs
	Networks []string `json:"networks"`

	// RoleName the name of the TripleO role this VM Spec is associated with. If it is a TripleO role, the name must match.
	RoleName string `json:"roleName"`
	// in case of external functionality, like 3rd party network controllers, set to false to ignore role in rendered overcloud templates.
	IsTripleoRole bool `json:"isTripleoRole"`
	// PasswordSecret the name of the secret used to optionally set the root pwd by adding
	// NodeRootPassword: <base64 enc pwd>
	// to the secret data
	PasswordSecret string `json:"passwordSecret,omitempty"`

	// BootstrapDNS - initial DNS nameserver values to set on the VM when they are provisioned.
	// Note that subsequent TripleO deployment will overwrite these values
	BootstrapDNS     []string `json:"bootstrapDns,omitempty"`
	DNSSearchDomains []string `json:"dnsSearchDomains,omitempty"`

	// +kubebuilder:validation:Optional
	// NodeSelector to target subset of worker nodes running this VMset
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=Manual
	// +kubebuilder:validation:Enum=Always;Halted;Manual;RerunOnFailure
	// Running state indicates the requested running state of the VirtualMachineInstance
	// mutually exclusive with Running
	RunStrategy virtv1.VirtualMachineRunStrategy `json:"runStrategy,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=None;LiveMigrate
	// EvictionStrategy defines if the VirtualMachineInstance should be
	// migrated instead of shut-off.
	EvictionStrategy *virtv1.EvictionStrategy `json:"evictionStrategy,omitempty"`
}

OpenStackVMSetSpec defines the desired state of an OpenStackVMSet

func (*OpenStackVMSetSpec) DeepCopy

func (in *OpenStackVMSetSpec) DeepCopy() *OpenStackVMSetSpec

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

func (*OpenStackVMSetSpec) DeepCopyInto

func (in *OpenStackVMSetSpec) DeepCopyInto(out *OpenStackVMSetSpec)

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

type OpenStackVMSetStatus

type OpenStackVMSetStatus struct {
	// BaseImageDVReady is the status of the BaseImage DataVolume
	BaseImageDVReady   bool                             `json:"baseImageDVReady,omitempty"`
	Conditions         shared.ConditionList             `json:"conditions,omitempty" optional:"true"`
	ProvisioningStatus OpenStackVMSetProvisioningStatus `json:"provisioningStatus,omitempty"`
	// VMpods are the names of the kubevirt controller vm pods
	VMpods  []string              `json:"vmpods,omitempty"`
	VMHosts map[string]HostStatus `json:"vmHosts,omitempty"`
}

OpenStackVMSetStatus defines the observed state of OpenStackVMSet

func (*OpenStackVMSetStatus) DeepCopy

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

func (*OpenStackVMSetStatus) DeepCopyInto

func (in *OpenStackVMSetStatus) DeepCopyInto(out *OpenStackVMSetStatus)

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

type OpenStackVirtualMachineRoleSpec

type OpenStackVirtualMachineRoleSpec struct {
	// Number of VMs for the role
	RoleCount int `json:"roleCount"`
	// number of Cores assigned to the VM
	Cores uint32 `json:"cores"`
	// amount of Memory in GB used by the VM
	Memory uint32 `json:"memory"`

	// +kubebuilder:validation:Optional
	// (deprecated) root Disc size in GB - use RootDisk.DiskSize instead
	DiskSize uint32 `json:"diskSize,omitempty"`
	// +kubebuilder:validation:Optional
	// (deprecated) StorageClass to be used for the controller disks - use RootDisk.
	StorageClass string `json:"storageClass,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=ReadWriteOnce;ReadWriteMany
	// (deprecated) StorageAccessMode - use RootDisk.StorageAccessMode instead
	// Virtual machines must have a persistent volume claim (PVC) with a shared ReadWriteMany (RWX) access mode to be live migrated.
	StorageAccessMode string `json:"storageAccessMode,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=Block;Filesystem
	// (deprecated) StorageVolumeMode - use RootDisk.StorageVolumeMode instead
	// When using OpenShift Virtualization with OpenShift Container Platform Container Storage,
	// specify RBD block mode persistent volume claims (PVCs) when creating virtual machine disks. With virtual machine disks,
	// RBD block mode volumes are more efficient and provide better performance than Ceph FS or RBD filesystem-mode PVCs.
	// To specify RBD block mode PVCs, use the 'ocs-storagecluster-ceph-rbd' storage class and VolumeMode: Block.
	StorageVolumeMode string `json:"storageVolumeMode,omitempty"`
	// +kubebuilder:validation:Optional
	// (deprecated) BaseImageVolumeName used as the base volume for the VM  - use RootDisk.BaseImageVolumeName instead
	BaseImageVolumeName string `json:"baseImageVolumeName,omitempty"`

	// RootDisk specification of the VM
	RootDisk OpenStackVMSetDisk `json:"rootDisk"`
	// AdditionalDisks additional disks to add to the VM
	AdditionalDisks []OpenStackVMSetDisk `json:"additionalDisks,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=auto;shared
	// IOThreadsPolicy - IO thread policy for the domain. Currently valid policies are shared and auto.
	// However, if any disk requests a dedicated IOThread, ioThreadsPolicy will be enabled and default to shared.
	// When ioThreadsPolicy is set to auto IOThreads will also be "isolated" from the vCPUs and placed on the same physical CPU as the QEMU emulator thread.
	// An ioThreadsPolicy of shared indicates that KubeVirt should use one thread that will be shared by all disk devices.
	IOThreadsPolicy string `json:"ioThreadsPolicy,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Block Multi-Queue is a framework for the Linux block layer that maps Device I/O queries to multiple queues.
	// This splits I/O processing up across multiple threads, and therefor multiple CPUs. libvirt recommends that the
	// number of queues used should match the number of CPUs allocated for optimal performance.
	BlockMultiQueue bool `json:"blockMultiQueue"`

	// +kubebuilder:default=enp2s0
	// Interface to use for ctlplane network
	CtlplaneInterface string `json:"ctlplaneInterface"`

	// +kubebuilder:default={ctlplane,external,internalapi,tenant,storage,storagemgmt}
	// Networks the name(s) of the OpenStackNetworks used to generate IPs
	Networks []string `json:"networks"`

	// RoleName the name of the TripleO role this VM Spec is associated with. If it is a TripleO role, the name must match.
	RoleName string `json:"roleName"`
	// in case of external functionality, like 3rd party network controllers, set to false to ignore role in rendered overcloud templates.
	// +kubebuilder:default=true
	IsTripleoRole bool `json:"isTripleoRole,omitempty"`

	// +kubebuilder:validation:Optional
	// NodeSelector to target subset of worker nodes running this VMset
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=Manual
	// +kubebuilder:validation:Enum=Always;Halted;Manual;RerunOnFailure
	// Running state indicates the requested running state of the VirtualMachineInstance
	// mutually exclusive with Running
	RunStrategy virtv1.VirtualMachineRunStrategy `json:"runStrategy,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=None;LiveMigrate
	// EvictionStrategy defines if the VirtualMachineInstance should be
	// migrated instead of shut-off.
	EvictionStrategy *virtv1.EvictionStrategy `json:"evictionStrategy,omitempty"`
}

OpenStackVirtualMachineRoleSpec - defines the desired state of VMs

func (*OpenStackVirtualMachineRoleSpec) DeepCopy

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

func (*OpenStackVirtualMachineRoleSpec) DeepCopyInto

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