v1alpha1

package
v2.1.0 Latest Latest
Warning

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

Go to latest
Published: May 2, 2025 License: Apache-2.0 Imports: 7 Imported by: 4

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the openstack v1alpha1 API group +kubebuilder:object:generate=true +groupName=openstack.k-orc.cloud +k8s:openapi-gen=true

+kubebuilder:object:generate=true +groupName=openstack.k-orc.cloud +k8s:openapi-gen=true

Index

Constants

View Source
const (

	// Normal progress: continue waiting.
	ConditionReasonProgressing = "Progressing"

	// The user must fix the configuration before trying again.
	ConditionReasonInvalidConfiguration = "InvalidConfiguration"

	// An error occurred which we can't recover from. It must be addressed
	// before we can continue.
	ConditionReasonUnrecoverableError = "UnrecoverableError"

	// An error occurred which may go away eventually if we keep trying. The
	// user likely wants to know about this if it persists.
	ConditionReasonTransientError = "TransientError"

	// The resource is ready for use.
	ConditionReasonSuccess = "Success"
)
View Source
const (
	ConditionAvailable   = "Available"
	ConditionProgressing = "Progressing"
)
View Source
const (
	IPv6AddressModeSLAAC           = "slaac"
	IPv6AddressModeDHCPv6Stateful  = "dhcpv6-stateful"
	IPv6AddressModeDHCPv6Stateless = "dhcpv6-stateless"
)
View Source
const (
	IPv6RAModeSLAAC           = "slaac"
	IPv6RAModeDHCPv6Stateful  = "dhcpv6-stateful"
	IPv6RAModeDHCPv6Stateless = "dhcpv6-stateless"
)
View Source
const (
	SubnetGatewayTypeNone      = "None"
	SubnetGatewayTypeAutomatic = "Automatic"
	SubnetGatewayTypeIP        = "IP"
)
View Source
const GlanceTag = "glance"

GlanceTag is the name of the go field tag in properties structs used to specify the Glance property name.

View Source
const GroupName = "openstack.k-orc.cloud"

GroupName is the group name use in this package

Variables

View Source
var (
	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects

Functions

func GetTerminalError

func GetTerminalError(obj ObjectWithConditions) error

GetTerminalError returns an error containing a descriptive message if reconciliation has failed terminally, or nil otherwise.

func IsAvailable

func IsAvailable(obj ObjectWithConditions) bool

func IsConditionReasonTerminal

func IsConditionReasonTerminal(reason string) bool

IsConditionReasonTerminal returns true if the given reason represents an error which should prevent further reconciliation.

func IsReconciliationComplete

func IsReconciliationComplete(obj ObjectWithConditions) bool

IsReconciliationComplete returns true if the given set of conditions indicate that reconciliation is complete, either success or failure.

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type Address

type Address struct {
	// ip contains a fixed IP address assigned to the port. It must belong
	// to the referenced subnet's CIDR. If not specified, OpenStack
	// allocates an available IP from the referenced subnet.
	// +optional
	IP *IPvAny `json:"ip,omitempty"`

	// subnetRef references the subnet from which to allocate the IP
	// address.
	// +required
	SubnetRef KubernetesNameRef `json:"subnetRef"`
}

func (*Address) DeepCopy

func (in *Address) DeepCopy() *Address

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

func (*Address) DeepCopyInto

func (in *Address) DeepCopyInto(out *Address)

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

type AllocationPool

type AllocationPool struct {
	// start is the first IP address in the allocation pool.
	// +required
	Start IPvAny `json:"start"`

	// end is the last IP address in the allocation pool.
	// +required
	End IPvAny `json:"end"`
}

func (*AllocationPool) DeepCopy

func (in *AllocationPool) DeepCopy() *AllocationPool

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

func (*AllocationPool) DeepCopyInto

func (in *AllocationPool) DeepCopyInto(out *AllocationPool)

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

type AllocationPoolStatus

type AllocationPoolStatus struct {
	// start is the first IP address in the allocation pool.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Start string `json:"start,omitempty"`

	// end is the last IP address in the allocation pool.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	End string `json:"end,omitempty"`
}

func (*AllocationPoolStatus) DeepCopy

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

func (*AllocationPoolStatus) DeepCopyInto

func (in *AllocationPoolStatus) DeepCopyInto(out *AllocationPoolStatus)

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

type AllowedAddressPair

type AllowedAddressPair struct {
	// ip contains an IP address which a server connected to the port can
	// send packets with. It can be an IP Address or a CIDR (if supported
	// by the underlying extension plugin).
	// +required
	IP IPvAny `json:"ip"`

	// mac contains a MAC address which a server connected to the port can
	// send packets with. Defaults to the MAC address of the port.
	// +optional
	MAC *MAC `json:"mac,omitempty"`
}

func (*AllowedAddressPair) DeepCopy

func (in *AllowedAddressPair) DeepCopy() *AllowedAddressPair

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

func (*AllowedAddressPair) DeepCopyInto

func (in *AllowedAddressPair) DeepCopyInto(out *AllowedAddressPair)

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

type AllowedAddressPairStatus

type AllowedAddressPairStatus struct {
	// ip contains an IP address which a server connected to the port can
	// send packets with.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	IP string `json:"ip,omitempty"`

	// mac contains a MAC address which a server connected to the port can
	// send packets with.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	MAC string `json:"mac,omitempty"`
}

func (*AllowedAddressPairStatus) DeepCopy

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

func (*AllowedAddressPairStatus) DeepCopyInto

func (in *AllowedAddressPairStatus) DeepCopyInto(out *AllowedAddressPairStatus)

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

type AvailabilityZoneHint

type AvailabilityZoneHint string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255

type CIDR

type CIDR string

+kubebuilder:validation:Format:=cidr +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=49

type CloudCredentialsRefProvider

type CloudCredentialsRefProvider interface {
	GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
}

CloudCredentialsRefProvider is an interface for obtaining OpenStack credentials from an API object +kubebuilder:object:generate:=false

type CloudCredentialsReference

type CloudCredentialsReference struct {
	// secretName is the name of a secret in the same namespace as the resource being provisioned.
	// The secret must contain a key named `clouds.yaml` which contains an OpenStack clouds.yaml file.
	// The secret may optionally contain a key named `cacert` containing a PEM-encoded CA certificate.
	// +required
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=253
	SecretName string `json:"secretName"`

	// cloudName specifies the name of the entry in the clouds.yaml file to use.
	// +required
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=256
	CloudName string `json:"cloudName"`
}

CloudCredentialsReference is a reference to a secret containing OpenStack credentials.

func (*CloudCredentialsReference) DeepCopy

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

func (*CloudCredentialsReference) DeepCopyInto

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

type DNSDomain

type DNSDomain string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255 +kubebuilder:validation:Pattern:="^[A-Za-z0-9]{1,63}(.[A-Za-z0-9-]{1,63})*(.[A-Za-z]{2,63})*.?$"

type Ethertype

type Ethertype string

+kubebuilder:validation:Enum:=IPv4;IPv6 +required

const (
	EthertypeIPv4 Ethertype = "IPv4"
	EthertypeIPv6 Ethertype = "IPv6"
)

type ExternalGateway

type ExternalGateway struct {
	// networkRef is a reference to the ORC Network which the external
	// gateway is on.
	// +required
	NetworkRef KubernetesNameRef `json:"networkRef"`
}

func (*ExternalGateway) DeepCopy

func (in *ExternalGateway) DeepCopy() *ExternalGateway

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

func (*ExternalGateway) DeepCopyInto

func (in *ExternalGateway) DeepCopyInto(out *ExternalGateway)

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

type ExternalGatewayStatus

type ExternalGatewayStatus struct {
	// networkID is the ID of the network the gateway is on.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	NetworkID string `json:"networkID,omitempty"`
}

func (*ExternalGatewayStatus) DeepCopy

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

func (*ExternalGatewayStatus) DeepCopyInto

func (in *ExternalGatewayStatus) DeepCopyInto(out *ExternalGatewayStatus)

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

type FilterByKeystoneTags added in v2.1.0

type FilterByKeystoneTags struct {
	// tags is a list of tags to filter by. If specified, the resource must
	// have all of the tags specified to be included in the result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=80
	Tags []KeystoneTag `json:"tags,omitempty"`

	// tagsAny is a list of tags to filter by. If specified, the resource
	// must have at least one of the tags specified to be included in the
	// result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=80
	TagsAny []KeystoneTag `json:"tagsAny,omitempty"`

	// notTags is a list of tags to filter by. If specified, resources which
	// contain all of the given tags will be excluded from the result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=80
	NotTags []KeystoneTag `json:"notTags,omitempty"`

	// notTagsAny is a list of tags to filter by. If specified, resources
	// which contain any of the given tags will be excluded from the result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=80
	NotTagsAny []KeystoneTag `json:"notTagsAny,omitempty"`
}

func (*FilterByKeystoneTags) DeepCopy added in v2.1.0

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

func (*FilterByKeystoneTags) DeepCopyInto added in v2.1.0

func (in *FilterByKeystoneTags) DeepCopyInto(out *FilterByKeystoneTags)

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

type FilterByNeutronTags

type FilterByNeutronTags struct {
	// tags is a list of tags to filter by. If specified, the resource must
	// have all of the tags specified to be included in the result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=32
	Tags []NeutronTag `json:"tags,omitempty"`

	// tagsAny is a list of tags to filter by. If specified, the resource
	// must have at least one of the tags specified to be included in the
	// result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=32
	TagsAny []NeutronTag `json:"tagsAny,omitempty"`

	// notTags is a list of tags to filter by. If specified, resources which
	// contain all of the given tags will be excluded from the result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=32
	NotTags []NeutronTag `json:"notTags,omitempty"`

	// notTagsAny is a list of tags to filter by. If specified, resources
	// which contain any of the given tags will be excluded from the result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=32
	NotTagsAny []NeutronTag `json:"notTagsAny,omitempty"`
}

func (*FilterByNeutronTags) DeepCopy

func (in *FilterByNeutronTags) DeepCopy() *FilterByNeutronTags

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

func (*FilterByNeutronTags) DeepCopyInto

func (in *FilterByNeutronTags) DeepCopyInto(out *FilterByNeutronTags)

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

type FilterByServerTags

type FilterByServerTags struct {
	// tags is a list of tags to filter by. If specified, the resource must
	// have all of the tags specified to be included in the result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=32
	Tags []ServerTag `json:"tags,omitempty"`

	// tagsAny is a list of tags to filter by. If specified, the resource
	// must have at least one of the tags specified to be included in the
	// result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=32
	TagsAny []ServerTag `json:"tagsAny,omitempty"`

	// notTags is a list of tags to filter by. If specified, resources which
	// contain all of the given tags will be excluded from the result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=32
	NotTags []ServerTag `json:"notTags,omitempty"`

	// notTagsAny is a list of tags to filter by. If specified, resources
	// which contain any of the given tags will be excluded from the result.
	// +listType=set
	// +optional
	// +kubebuilder:validation:MaxItems:=32
	NotTagsAny []ServerTag `json:"notTagsAny,omitempty"`
}

func (*FilterByServerTags) DeepCopy

func (in *FilterByServerTags) DeepCopy() *FilterByServerTags

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

func (*FilterByServerTags) DeepCopyInto

func (in *FilterByServerTags) DeepCopyInto(out *FilterByServerTags)

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

type FixedIPStatus

type FixedIPStatus struct {
	// ip contains a fixed IP address assigned to the port.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	IP string `json:"ip,omitempty"`

	// subnetID is the ID of the subnet this IP is allocated from.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	SubnetID string `json:"subnetID,omitempty"`
}

func (*FixedIPStatus) DeepCopy

func (in *FixedIPStatus) DeepCopy() *FixedIPStatus

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

func (*FixedIPStatus) DeepCopyInto

func (in *FixedIPStatus) DeepCopyInto(out *FixedIPStatus)

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

type Flavor

type Flavor struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec specifies the desired state of the resource.
	// +optional
	Spec FlavorSpec `json:"spec,omitempty"`

	// status defines the observed state of the resource.
	// +optional
	Status FlavorStatus `json:"status,omitempty"`
}

Flavor is the Schema for an ORC resource.

func (*Flavor) DeepCopy

func (in *Flavor) DeepCopy() *Flavor

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

func (*Flavor) DeepCopyInto

func (in *Flavor) DeepCopyInto(out *Flavor)

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

func (*Flavor) DeepCopyObject

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

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

func (*Flavor) GetCloudCredentialsRef

func (i *Flavor) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)

func (*Flavor) GetConditions

func (i *Flavor) GetConditions() []metav1.Condition

type FlavorFilter

type FlavorFilter struct {
	// name of the existing resource
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// ram is the memory of the flavor, measured in MB.
	// +kubebuilder:validation:Minimum=1
	// +optional
	RAM *int32 `json:"ram,omitempty"`

	// vcpus is the number of vcpus for the flavor.
	// +kubebuilder:validation:Minimum=1
	// +optional
	Vcpus *int32 `json:"vcpus,omitempty"`

	// disk is the size of the root disk in GiB.
	// +kubebuilder:validation:Minimum=0
	// +optional
	Disk *int32 `json:"disk,omitempty"`
}

FlavorFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1

func (*FlavorFilter) DeepCopy

func (in *FlavorFilter) DeepCopy() *FlavorFilter

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

func (*FlavorFilter) DeepCopyInto

func (in *FlavorFilter) DeepCopyInto(out *FlavorFilter)

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

type FlavorImport

type FlavorImport struct {
	// id contains the unique identifier of an existing OpenStack resource. Note
	// that when specifying an import by ID, the resource MUST already exist.
	// The ORC object will enter an error state if the resource does not exist.
	// +optional
	// +kubebuilder:validation:Format:=uuid
	ID *string `json:"id,omitempty"`

	// filter contains a resource query which is expected to return a single
	// result. The controller will continue to retry if filter returns no
	// results. If filter returns multiple results the controller will set an
	// error state and will not continue to retry.
	// +optional
	Filter *FlavorFilter `json:"filter,omitempty"`
}

FlavorImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*FlavorImport) DeepCopy

func (in *FlavorImport) DeepCopy() *FlavorImport

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

func (*FlavorImport) DeepCopyInto

func (in *FlavorImport) DeepCopyInto(out *FlavorImport)

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

type FlavorList

type FlavorList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the list metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// items contains a list of Flavor.
	// +required
	Items []Flavor `json:"items"`
}

FlavorList contains a list of Flavor.

func (*FlavorList) DeepCopy

func (in *FlavorList) DeepCopy() *FlavorList

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

func (*FlavorList) DeepCopyInto

func (in *FlavorList) DeepCopyInto(out *FlavorList)

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

func (*FlavorList) DeepCopyObject

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

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

func (*FlavorList) GetItems

func (l *FlavorList) GetItems() []Flavor

type FlavorResourceSpec

type FlavorResourceSpec struct {
	// name will be the name of the created resource. If not specified, the
	// name of the ORC object will be used.
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// description contains a free form description of the flavor.
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=65535
	// +optional
	Description *string `json:"description,omitempty"`

	// ram is the memory of the flavor, measured in MB.
	// +kubebuilder:validation:Minimum=1
	// +required
	RAM int32 `json:"ram"`

	// vcpus is the number of vcpus for the flavor.
	// +kubebuilder:validation:Minimum=1
	// +required
	Vcpus int32 `json:"vcpus"`

	// disk is the size of the root disk that will be created in GiB. If 0
	// the root disk will be set to exactly the size of the image used to
	// deploy the instance. However, in this case the scheduler cannot
	// select the compute host based on the virtual image size. Therefore,
	// 0 should only be used for volume booted instances or for testing
	// purposes. Volume-backed instances can be enforced for flavors with
	// zero root disk via the
	// os_compute_api:servers:create:zero_disk_flavor policy rule.
	// +kubebuilder:validation:Minimum=0
	// +required
	Disk int32 `json:"disk"`

	// swap is the size of a dedicated swap disk that will be allocated, in
	// MiB. If 0 (the default), no dedicated swap disk will be created.
	// +kubebuilder:validation:Minimum=0
	// +optional
	Swap int32 `json:"swap,omitempty"`

	// isPublic flags a flavor as being available to all projects or not.
	// +optional
	IsPublic *bool `json:"isPublic,omitempty"`

	// ephemeral is the size of the ephemeral disk that will be created, in GiB.
	// Ephemeral disks may be written over on server state changes. So should only
	// be used as a scratch space for applications that are aware of its
	// limitations. Defaults to 0.
	// +kubebuilder:validation:Minimum=0
	// +optional
	Ephemeral int32 `json:"ephemeral,omitempty"`
}

FlavorResourceSpec contains the desired state of a flavor +kubebuilder:validation:XValidation:rule="self == oldSelf",message="FlavorResourceSpec is immutable"

func (*FlavorResourceSpec) DeepCopy

func (in *FlavorResourceSpec) DeepCopy() *FlavorResourceSpec

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

func (*FlavorResourceSpec) DeepCopyInto

func (in *FlavorResourceSpec) DeepCopyInto(out *FlavorResourceSpec)

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

type FlavorResourceStatus

type FlavorResourceStatus struct {
	// name is a Human-readable name for the flavor. Might not be unique.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Name string `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +kubebuilder:validation:MaxLength:=65535
	// +optional
	Description string `json:"description,omitempty"`

	// ram is the memory of the flavor, measured in MB.
	// +optional
	RAM *int32 `json:"ram,omitempty"`

	// vcpus is the number of vcpus for the flavor.
	// +optional
	Vcpus *int32 `json:"vcpus,omitempty"`

	// disk is the size of the root disk that will be created in GiB.
	// +optional
	Disk *int32 `json:"disk,omitempty"`

	// swap is the size of a dedicated swap disk that will be allocated, in
	// MiB.
	// +optional
	Swap *int32 `json:"swap,omitempty"`

	// isPublic flags a flavor as being available to all projects or not.
	// +optional
	IsPublic *bool `json:"isPublic,omitempty"`

	// ephemeral is the size of the ephemeral disk, in GiB.
	// +optional
	Ephemeral *int32 `json:"ephemeral,omitempty"`
}

FlavorResourceStatus represents the observed state of the resource.

func (*FlavorResourceStatus) DeepCopy

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

func (*FlavorResourceStatus) DeepCopyInto

func (in *FlavorResourceStatus) DeepCopyInto(out *FlavorResourceStatus)

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

type FlavorSpec

type FlavorSpec struct {
	// import refers to an existing OpenStack resource which will be imported instead of
	// creating a new one.
	// +optional
	Import *FlavorImport `json:"import,omitempty"`

	// resource specifies the desired state of the resource.
	//
	// resource may not be specified if the management policy is `unmanaged`.
	//
	// resource must be specified if the management policy is `managed`.
	// +optional
	Resource *FlavorResourceSpec `json:"resource,omitempty"`

	// managementPolicy defines how ORC will treat the object. Valid values are
	// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
	// ORC will import an existing resource, and will not apply updates to it or
	// delete it.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
	// +kubebuilder:default:=managed
	// +optional
	ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`

	// managedOptions specifies options which may be applied to managed objects.
	// +optional
	ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`

	// cloudCredentialsRef points to a secret containing OpenStack credentials
	// +required
	CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}

FlavorSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"

func (*FlavorSpec) DeepCopy

func (in *FlavorSpec) DeepCopy() *FlavorSpec

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

func (*FlavorSpec) DeepCopyInto

func (in *FlavorSpec) DeepCopyInto(out *FlavorSpec)

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

type FlavorStatus

type FlavorStatus struct {
	// conditions represents the observed status of the object.
	// Known .status.conditions.type are: "Available", "Progressing"
	//
	// Available represents the availability of the OpenStack resource. If it is
	// true then the resource is ready for use.
	//
	// Progressing indicates whether the controller is still attempting to
	// reconcile the current state of the OpenStack resource to the desired
	// state. Progressing will be False either because the desired state has
	// been achieved, or because some terminal error prevents it from ever being
	// achieved and the controller is no longer attempting to reconcile. If
	// Progressing is True, an observer waiting on the resource should continue
	// to wait.
	//
	// +kubebuilder:validation:MaxItems:=32
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// id is the unique identifier of the OpenStack resource.
	// +optional
	ID *string `json:"id,omitempty"`

	// resource contains the observed state of the OpenStack resource.
	// +optional
	Resource *FlavorResourceStatus `json:"resource,omitempty"`
}

FlavorStatus defines the observed state of an ORC resource.

func (*FlavorStatus) DeepCopy

func (in *FlavorStatus) DeepCopy() *FlavorStatus

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

func (*FlavorStatus) DeepCopyInto

func (in *FlavorStatus) DeepCopyInto(out *FlavorStatus)

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

type HostRoute

type HostRoute struct {
	// destination for the additional route.
	// +required
	Destination CIDR `json:"destination"`

	// nextHop for the additional route.
	// +required
	NextHop IPvAny `json:"nextHop"`
}

func (*HostRoute) DeepCopy

func (in *HostRoute) DeepCopy() *HostRoute

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

func (*HostRoute) DeepCopyInto

func (in *HostRoute) DeepCopyInto(out *HostRoute)

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

type HostRouteStatus

type HostRouteStatus struct {
	// destination for the additional route.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Destination string `json:"destination,omitempty"`

	// nextHop for the additional route.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	NextHop string `json:"nextHop,omitempty"`
}

func (*HostRouteStatus) DeepCopy

func (in *HostRouteStatus) DeepCopy() *HostRouteStatus

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

func (*HostRouteStatus) DeepCopyInto

func (in *HostRouteStatus) DeepCopyInto(out *HostRouteStatus)

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

type IPVersion

type IPVersion int32

+kubebuilder:validation:Enum:=4;6

type IPv6AddressMode

type IPv6AddressMode string

+kubebuilder:validation:Enum:=slaac;dhcpv6-stateful;dhcpv6-stateless

type IPv6Options

type IPv6Options struct {
	// addressMode specifies mechanisms for assigning IPv6 IP addresses.
	// +optional
	AddressMode *IPv6AddressMode `json:"addressMode,omitempty"`

	// raMode specifies the IPv6 router advertisement mode. It specifies whether
	// the networking service should transmit ICMPv6 packets.
	// +optional
	RAMode *IPv6RAMode `json:"raMode,omitempty"`
}

+kubebuilder:validation:MinProperties:=1

func (*IPv6Options) DeepCopy

func (in *IPv6Options) DeepCopy() *IPv6Options

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

func (*IPv6Options) DeepCopyInto

func (in *IPv6Options) DeepCopyInto(out *IPv6Options)

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

type IPv6RAMode

type IPv6RAMode string

+kubebuilder:validation:Enum:=slaac;dhcpv6-stateful;dhcpv6-stateless

type IPvAny

type IPvAny string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=45

type Image

type Image struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec specifies the desired state of the resource.
	// +optional
	Spec ImageSpec `json:"spec,omitempty"`

	// status defines the observed state of the resource.
	// +optional
	Status ImageStatus `json:"status,omitempty"`
}

Image is the Schema for an ORC resource.

func (*Image) DeepCopy

func (in *Image) DeepCopy() *Image

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

func (*Image) DeepCopyInto

func (in *Image) DeepCopyInto(out *Image)

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

func (*Image) DeepCopyObject

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

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

func (*Image) GetCloudCredentialsRef

func (i *Image) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)

func (*Image) GetConditions

func (i *Image) GetConditions() []metav1.Condition

type ImageCompression

type ImageCompression string

+kubebuilder:validation:Enum:=xz;gz;bz2

const (
	ImageCompressionXZ  ImageCompression = "xz"
	ImageCompressionGZ  ImageCompression = "gz"
	ImageCompressionBZ2 ImageCompression = "bz2"
)

type ImageContainerFormat

type ImageContainerFormat string

+kubebuilder:validation:Enum:=ami;ari;aki;bare;ovf;ova;docker;compressed

const (
	ImageContainerFormatAKI        ImageContainerFormat = "aki"
	ImageContainerFormatAMI        ImageContainerFormat = "ami"
	ImageContainerFormatARI        ImageContainerFormat = "ari"
	ImageContainerFormatBare       ImageContainerFormat = "bare"
	ImageContainerFormatCompressed ImageContainerFormat = "compressed"
	ImageContainerFormatDocker     ImageContainerFormat = "docker"
	ImageContainerFormatOVA        ImageContainerFormat = "ova"
	ImageContainerFormatOVF        ImageContainerFormat = "ovf"
)

type ImageContent

type ImageContent struct {
	// containerFormat is the format of the image container.
	// qcow2 and raw images do not usually have a container. This is specified as "bare", which is also the default.
	// Permitted values are ami, ari, aki, bare, compressed, ovf, ova, and docker.
	// +kubebuilder:default:=bare
	// +optional
	ContainerFormat ImageContainerFormat `json:"containerFormat,omitempty"`

	// diskFormat is the format of the disk image.
	// Normal values are "qcow2", or "raw". Glance may be configured to support others.
	// +required
	DiskFormat ImageDiskFormat `json:"diskFormat"`

	// download describes how to obtain image data by downloading it from a URL.
	// Must be set when creating a managed image.
	// +required
	//nolint:kal
	Download *ImageContentSourceDownload `json:"download"`
}

func (*ImageContent) DeepCopy

func (in *ImageContent) DeepCopy() *ImageContent

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

func (*ImageContent) DeepCopyInto

func (in *ImageContent) DeepCopyInto(out *ImageContent)

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

type ImageContentSourceDownload

type ImageContentSourceDownload struct {
	// url containing image data
	// +kubebuilder:validation:Format=uri
	// +kubebuilder:validation:MaxLength=2048
	// +required
	URL string `json:"url"`

	// decompress specifies that the source data must be decompressed with the
	// given compression algorithm before being stored. Specifying Decompress
	// will disable the use of Glance's web-download, as web-download cannot
	// currently deterministically decompress downloaded content.
	// +optional
	Decompress *ImageCompression `json:"decompress,omitempty"`

	// hash is a hash which will be used to verify downloaded data, i.e.
	// before any decompression. If not specified, no hash verification will be
	// performed. Specifying a Hash will disable the use of Glance's
	// web-download, as web-download cannot currently deterministically verify
	// the hash of downloaded content.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="hash is immutable"
	// +optional
	Hash *ImageHash `json:"hash,omitempty"`
}

func (*ImageContentSourceDownload) DeepCopy

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

func (*ImageContentSourceDownload) DeepCopyInto

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

type ImageDiskFormat

type ImageDiskFormat string

+kubebuilder:validation:Enum:=ami;ari;aki;vhd;vhdx;vmdk;raw;qcow2;vdi;ploop;iso

const (
	ImageDiskFormatAMI   ImageDiskFormat = "ami"
	ImageDiskFormatARI   ImageDiskFormat = "ari"
	ImageDiskFormatAKI   ImageDiskFormat = "aki"
	ImageDiskFormatVHD   ImageDiskFormat = "vhd"
	ImageDiskFormatVHDX  ImageDiskFormat = "vhdx"
	ImageDiskFormatVMDK  ImageDiskFormat = "vmdk"
	ImageDiskFormatRaw   ImageDiskFormat = "raw"
	ImageDiskFormatQCOW2 ImageDiskFormat = "qcow2"
	ImageDiskFormatVDI   ImageDiskFormat = "vdi"
	ImageDiskFormatPLoop ImageDiskFormat = "ploop"
	ImageDiskFormatISO   ImageDiskFormat = "iso"
)

type ImageFilter

type ImageFilter struct {
	// name specifies the name of a Glance image
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// tags is the list of tags on the resource.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	// +optional
	Tags []ImageTag `json:"tags,omitempty"`
}

ImageFilter defines a Glance query +kubebuilder:validation:MinProperties:=1

func (*ImageFilter) DeepCopy

func (in *ImageFilter) DeepCopy() *ImageFilter

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

func (*ImageFilter) DeepCopyInto

func (in *ImageFilter) DeepCopyInto(out *ImageFilter)

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

type ImageHWBus

type ImageHWBus string

ImageHWBus is a type of hardware bus.

Permitted values are scsi, virtio, uml, xen, ide, usb, and lxc. +kubebuilder:validation:Enum:=scsi;virtio;uml;xen;ide;usb;lxc

type ImageHash

type ImageHash struct {
	// algorithm is the hash algorithm used to generate value.
	// +required
	Algorithm ImageHashAlgorithm `json:"algorithm"`

	// value is the hash of the image data using Algorithm. It must be hex encoded using lowercase letters.
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=1024
	// +kubebuilder:validation:Pattern:=`^[0-9a-f]+$`
	// +required
	Value string `json:"value"`
}

func (*ImageHash) DeepCopy

func (in *ImageHash) DeepCopy() *ImageHash

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

func (*ImageHash) DeepCopyInto

func (in *ImageHash) DeepCopyInto(out *ImageHash)

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

type ImageHashAlgorithm

type ImageHashAlgorithm string

+kubebuilder:validation:Enum:=md5;sha1;sha256;sha512

const (
	ImageHashAlgorithmMD5    ImageHashAlgorithm = "md5"
	ImageHashAlgorithmSHA1   ImageHashAlgorithm = "sha1"
	ImageHashAlgorithmSHA256 ImageHashAlgorithm = "sha256"
	ImageHashAlgorithmSHA512 ImageHashAlgorithm = "sha512"
)

type ImageImport

type ImageImport struct {
	// id contains the unique identifier of an existing OpenStack resource. Note
	// that when specifying an import by ID, the resource MUST already exist.
	// The ORC object will enter an error state if the resource does not exist.
	// +optional
	// +kubebuilder:validation:Format:=uuid
	ID *string `json:"id,omitempty"`

	// filter contains a resource query which is expected to return a single
	// result. The controller will continue to retry if filter returns no
	// results. If filter returns multiple results the controller will set an
	// error state and will not continue to retry.
	// +optional
	Filter *ImageFilter `json:"filter,omitempty"`
}

ImageImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*ImageImport) DeepCopy

func (in *ImageImport) DeepCopy() *ImageImport

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

func (*ImageImport) DeepCopyInto

func (in *ImageImport) DeepCopyInto(out *ImageImport)

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

type ImageList

type ImageList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the list metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// items contains a list of Image.
	// +required
	Items []Image `json:"items"`
}

ImageList contains a list of Image.

func (*ImageList) DeepCopy

func (in *ImageList) DeepCopy() *ImageList

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

func (*ImageList) DeepCopyInto

func (in *ImageList) DeepCopyInto(out *ImageList)

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

func (*ImageList) DeepCopyObject

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

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

func (*ImageList) GetItems

func (l *ImageList) GetItems() []Image

type ImageProperties

type ImageProperties struct {
	// architecture is the CPU architecture that must be supported by the hypervisor.
	// +kubebuilder:validation:Enum:=aarch64;alpha;armv7l;cris;i686;ia64;lm32;m68k;microblaze;microblazeel;mips;mipsel;mips64;mips64el;openrisc;parisc;parisc64;ppc;ppc64;ppcemb;s390;s390x;sh4;sh4eb;sparc;sparc64;unicore32;x86_64;xtensa;xtensaeb
	// +optional
	Architecture *string `json:"architecture,omitempty" glance:"architecture"`

	// hypervisorType is the hypervisor type
	// +kubebuilder:validation:Enum:=hyperv;ironic;lxc;qemu;uml;vmware;xen
	// +optional
	HypervisorType *string `json:"hypervisorType,omitempty" glance:"hypervisor_type"`

	// minDiskGB is the minimum amount of disk space in GB that is required to boot the image
	// +kubebuilder:validation:Minimum:=1
	// +optional
	MinDiskGB *int32 `json:"minDiskGB,omitempty"`

	// minMemoryMB is the minimum amount of RAM in MB that is required to boot the image.
	// +kubebuilder:validation:Minimum:=1
	// +optional
	MinMemoryMB *int32 `json:"minMemoryMB,omitempty"`

	// hardware is a set of properties which control the virtual hardware
	// created by Nova.
	// +optional
	Hardware *ImagePropertiesHardware `json:"hardware,omitempty"`

	// operatingSystem is a set of properties that specify and influence the behavior
	// of the operating system within the virtual machine.
	// +optional
	OperatingSystem *ImagePropertiesOperatingSystem `json:"operatingSystem,omitempty"`
}

func (*ImageProperties) DeepCopy

func (in *ImageProperties) DeepCopy() *ImageProperties

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

func (*ImageProperties) DeepCopyInto

func (in *ImageProperties) DeepCopyInto(out *ImageProperties)

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

type ImagePropertiesHardware

type ImagePropertiesHardware struct {
	// cpuSockets is the preferred number of sockets to expose to the guest
	// +kubebuilder:validation:Minimum:=1
	// +optional
	CPUSockets *int32 `json:"cpuSockets,omitempty" glance:"hw_cpu_sockets"`

	// cpuCores is the preferred number of cores to expose to the guest
	// +kubebuilder:validation:Minimum:=1
	// +optional
	CPUCores *int32 `json:"cpuCores,omitempty" glance:"hw_cpu_cores"`

	// cpuThreads is the preferred number of threads to expose to the guest
	// +kubebuilder:validation:Minimum:=1
	// +optional
	CPUThreads *int32 `json:"cpuThreads,omitempty" glance:"hw_cpu_threads"`

	// cpuPolicy is used to pin the virtual CPUs (vCPUs) of instances to the
	// host's physical CPU cores (pCPUs). Host aggregates should be used to
	// separate these pinned instances from unpinned instances as the latter
	// will not respect the resourcing requirements of the former.
	//
	// Permitted values are shared (the default), and dedicated.
	//
	// shared: The guest vCPUs will be allowed to freely float across host
	// pCPUs, albeit potentially constrained by NUMA policy.
	//
	// dedicated: The guest vCPUs will be strictly pinned to a set of host
	// pCPUs. In the absence of an explicit vCPU topology request, the
	// drivers typically expose all vCPUs as sockets with one core and one
	// thread. When strict CPU pinning is in effect the guest CPU topology
	// will be setup to match the topology of the CPUs to which it is
	// pinned. This option implies an overcommit ratio of 1.0. For example,
	// if a two vCPU guest is pinned to a single host core with two threads,
	// then the guest will get a topology of one socket, one core, two
	// threads.
	// +kubebuilder:validation:Enum:=shared;dedicated
	// +optional
	CPUPolicy *string `json:"cpuPolicy,omitempty" glance:"hw_cpu_policy"`

	// cpuThreadPolicy further refines a CPUPolicy of 'dedicated' by stating
	// how hardware CPU threads in a simultaneous multithreading-based (SMT)
	// architecture be used. SMT-based architectures include Intel
	// processors with Hyper-Threading technology. In these architectures,
	// processor cores share a number of components with one or more other
	// cores. Cores in such architectures are commonly referred to as
	// hardware threads, while the cores that a given core share components
	// with are known as thread siblings.
	//
	// Permitted values are prefer (the default), isolate, and require.
	//
	// prefer: The host may or may not have an SMT architecture. Where an
	// SMT architecture is present, thread siblings are preferred.
	//
	// isolate: The host must not have an SMT architecture or must emulate a
	// non-SMT architecture. If the host does not have an SMT architecture,
	// each vCPU is placed on a different core as expected. If the host does
	// have an SMT architecture - that is, one or more cores have thread
	// siblings - then each vCPU is placed on a different physical core. No
	// vCPUs from other guests are placed on the same core. All but one
	// thread sibling on each utilized core is therefore guaranteed to be
	// unusable.
	//
	// require: The host must have an SMT architecture. Each vCPU is
	// allocated on thread siblings. If the host does not have an SMT
	// architecture, then it is not used. If the host has an SMT
	// architecture, but not enough cores with free thread siblings are
	// available, then scheduling fails.
	// +kubebuilder:validation:Enum:=prefer;isolate;require
	// +optional
	CPUThreadPolicy *string `json:"cpuThreadPolicy,omitempty" glance:"hw_cpu_thread_policy"`

	// cdromBus specifies the type of disk controller to attach CD-ROM devices to.
	// +optional
	CDROMBus *ImageHWBus `json:"cdromBus,omitempty" glance:"hw_cdrom_bus"`

	// diskBus specifies the type of disk controller to attach disk devices to.
	// +optional
	DiskBus *ImageHWBus `json:"diskBus,omitempty" glance:"hw_disk_bus"`

	// scsiModel enables the use of VirtIO SCSI (virtio-scsi) to provide
	// block device access for compute instances; by default, instances use
	// VirtIO Block (virtio-blk). VirtIO SCSI is a para-virtualized SCSI
	// controller device that provides improved scalability and performance,
	// and supports advanced SCSI hardware.
	//
	// The only permitted value is virtio-scsi.
	// +kubebuilder:validation:Enum:=virtio-scsi
	// +optional
	SCSIModel *string `json:"scsiModel,omitempty" glance:"hw_scsi_model"`

	// vifModel specifies the model of virtual network interface device to use.
	//
	// Permitted values are e1000, e1000e, ne2k_pci, pcnet, rtl8139, virtio,
	// and vmxnet3.
	// +kubebuilder:validation:Enum:=e1000;e1000e;ne2k_pci;pcnet;rtl8139;virtio;vmxnet3
	// +optional
	VIFModel *string `json:"vifModel,omitempty" glance:"hw_vif_model"`

	// rngModel adds a random-number generator device to the image’s instances.
	// This image property by itself does not guarantee that a hardware RNG will be used;
	// it expresses a preference that may or may not be satisfied depending upon Nova configuration.
	// +kubebuilder:validation:MaxLength:=255
	// +optional
	RngModel *string `json:"rngModel,omitempty" glance:"hw_rng_model"`

	// qemuGuestAgent enables QEMU guest agent.
	// +optional
	QemuGuestAgent *bool `json:"qemuGuestAgent,omitempty" glance:"hw_qemu_guest_agent"`
}

func (*ImagePropertiesHardware) DeepCopy

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

func (*ImagePropertiesHardware) DeepCopyInto

func (in *ImagePropertiesHardware) DeepCopyInto(out *ImagePropertiesHardware)

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

type ImagePropertiesOperatingSystem added in v2.1.0

type ImagePropertiesOperatingSystem struct {
	// distro is the common name of the operating system distribution in lowercase.
	// +kubebuilder:validation:Enum:=arch;centos;debian;fedora;freebsd;gentoo;mandrake;mandriva;mes;msdos;netbsd;netware;openbsd;opensolaris;opensuse;rocky;rhel;sled;ubuntu;windows
	// +optional
	Distro *string `json:"distro,omitempty" glance:"os_distro"`
	// version is the operating system version as specified by the distributor.
	// +kubebuilder:validation:MaxLength:=255
	// +optional
	Version *string `json:"version,omitempty" glance:"os_version"`
}

func (*ImagePropertiesOperatingSystem) DeepCopy added in v2.1.0

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

func (*ImagePropertiesOperatingSystem) DeepCopyInto added in v2.1.0

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

type ImageResourceSpec

type ImageResourceSpec struct {
	// name will be the name of the created Glance image. If not specified, the
	// name of the Image object will be used.
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// protected specifies that the image is protected from deletion.
	// If not specified, the default is false.
	// +optional
	Protected *bool `json:"protected,omitempty"`

	// tags is a list of tags which will be applied to the image. A tag has a maximum length of 255 characters.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	// +optional
	Tags []ImageTag `json:"tags,omitempty"`

	// visibility of the image
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="visibility is immutable"
	// +optional
	Visibility *ImageVisibility `json:"visibility,omitempty"`

	// properties is metadata available to consumers of the image
	// +optional
	Properties *ImageProperties `json:"properties,omitempty"`

	// content specifies how to obtain the image content.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="content is immutable"
	// +optional
	Content *ImageContent `json:"content,omitempty"`
}

ImageResourceSpec contains the desired state of a Glance image +kubebuilder:validation:XValidation:rule="has(self.name) ? self.name == oldSelf.name : !has(oldSelf.name)",message="name is immutable" +kubebuilder:validation:XValidation:rule="has(self.protected) ? self.protected == oldSelf.protected : !has(oldSelf.protected)",message="name is immutable" +kubebuilder:validation:XValidation:rule="has(self.tags) ? self.tags == oldSelf.tags : !has(oldSelf.tags)",message="tags is immutable" +kubebuilder:validation:XValidation:rule="has(self.visibility) ? self.visibility == oldSelf.visibility : !has(oldSelf.visibility)",message="visibility is immutable" +kubebuilder:validation:XValidation:rule="has(self.properties) ? self.properties == oldSelf.properties : !has(oldSelf.properties)",message="properties is immutable" +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ImageResourceSpec is immutable"

func (*ImageResourceSpec) DeepCopy

func (in *ImageResourceSpec) DeepCopy() *ImageResourceSpec

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

func (*ImageResourceSpec) DeepCopyInto

func (in *ImageResourceSpec) DeepCopyInto(out *ImageResourceSpec)

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

type ImageResourceStatus

type ImageResourceStatus struct {
	// name is a Human-readable name for the image. Might not be unique.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Name string `json:"name,omitempty"`

	// status is the image status as reported by Glance
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Status string `json:"status,omitempty"`

	// protected specifies that the image is protected from deletion.
	// +optional
	Protected bool `json:"protected,omitempty"`

	// visibility of the image
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Visibility string `json:"visibility,omitempty"`

	// hash is the hash of the image data published by Glance. Note that this is
	// a hash of the data stored internally by Glance, which will have been
	// decompressed and potentially format converted depending on server-side
	// configuration which is not visible to clients. It is expected that this
	// hash will usually differ from the download hash.
	// +optional
	Hash *ImageHash `json:"hash,omitempty"`

	// sizeB is the size of the image data, in bytes
	// +optional
	SizeB *int64 `json:"sizeB,omitempty"`

	// virtualSizeB is the size of the disk the image data represents, in bytes
	// +optional
	VirtualSizeB *int64 `json:"virtualSizeB,omitempty"`

	// tags is the list of tags on the resource.
	// +kubebuilder:validation:MaxItems:=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	Tags []string `json:"tags,omitempty"`
}

ImageResourceStatus represents the observed state of a Glance image

func (*ImageResourceStatus) DeepCopy

func (in *ImageResourceStatus) DeepCopy() *ImageResourceStatus

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

func (*ImageResourceStatus) DeepCopyInto

func (in *ImageResourceStatus) DeepCopyInto(out *ImageResourceStatus)

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

type ImageSpec

type ImageSpec struct {
	// import refers to an existing OpenStack resource which will be imported instead of
	// creating a new one.
	// +optional
	Import *ImageImport `json:"import,omitempty"`

	// resource specifies the desired state of the resource.
	//
	// resource may not be specified if the management policy is `unmanaged`.
	//
	// resource must be specified if the management policy is `managed`.
	// +optional
	Resource *ImageResourceSpec `json:"resource,omitempty"`

	// managementPolicy defines how ORC will treat the object. Valid values are
	// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
	// ORC will import an existing resource, and will not apply updates to it or
	// delete it.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
	// +kubebuilder:default:=managed
	// +optional
	ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`

	// managedOptions specifies options which may be applied to managed objects.
	// +optional
	ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`

	// cloudCredentialsRef points to a secret containing OpenStack credentials
	// +required
	CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}

ImageSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed" +kubebuilder:validation:XValidation:rule="!has(self.__import__) ? has(self.resource.content) : true",message="resource content must be specified when not importing"

func (*ImageSpec) DeepCopy

func (in *ImageSpec) DeepCopy() *ImageSpec

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

func (*ImageSpec) DeepCopyInto

func (in *ImageSpec) DeepCopyInto(out *ImageSpec)

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

type ImageStatus

type ImageStatus struct {
	// conditions represents the observed status of the object.
	// Known .status.conditions.type are: "Available", "Progressing"
	//
	// Available represents the availability of the OpenStack resource. If it is
	// true then the resource is ready for use.
	//
	// Progressing indicates whether the controller is still attempting to
	// reconcile the current state of the OpenStack resource to the desired
	// state. Progressing will be False either because the desired state has
	// been achieved, or because some terminal error prevents it from ever being
	// achieved and the controller is no longer attempting to reconcile. If
	// Progressing is True, an observer waiting on the resource should continue
	// to wait.
	//
	// +kubebuilder:validation:MaxItems:=32
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// id is the unique identifier of the OpenStack resource.
	// +optional
	ID *string `json:"id,omitempty"`

	// resource contains the observed state of the OpenStack resource.
	// +optional
	Resource *ImageResourceStatus `json:"resource,omitempty"`

	ImageStatusExtra `json:",inline"`
}

ImageStatus defines the observed state of an ORC resource.

func (*ImageStatus) DeepCopy

func (in *ImageStatus) DeepCopy() *ImageStatus

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

func (*ImageStatus) DeepCopyInto

func (in *ImageStatus) DeepCopyInto(out *ImageStatus)

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

type ImageStatusExtra

type ImageStatusExtra struct {
	// downloadAttempts is the number of times the controller has attempted to download the image contents
	// +optional
	DownloadAttempts *int32 `json:"downloadAttempts,omitempty"`
}

func (*ImageStatusExtra) DeepCopy

func (in *ImageStatusExtra) DeepCopy() *ImageStatusExtra

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

func (*ImageStatusExtra) DeepCopyInto

func (in *ImageStatusExtra) DeepCopyInto(out *ImageStatusExtra)

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

type ImageTag

type ImageTag string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255

type ImageVisibility

type ImageVisibility string

+kubebuilder:validation:Enum:=public;private;shared;community

const (
	ImageVisibilityPublic    ImageVisibility = "public"
	ImageVisibilityPrivate   ImageVisibility = "private"
	ImageVisibilityShared    ImageVisibility = "shared"
	ImageVisibilityCommunity ImageVisibility = "community"
)

type KeystoneName added in v2.1.0

type KeystoneName string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=64

type KeystoneTag added in v2.1.0

type KeystoneTag string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255

type KubernetesNameRef

type KubernetesNameRef string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=253

type MAC

type MAC string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=17

type MTU

type MTU int32

+kubebuilder:validation:Minimum:=68 +kubebuilder:validation:Maximum:=9216

type ManagedOptions

type ManagedOptions struct {
	// onDelete specifies the behaviour of the controller when the ORC
	// object is deleted. Options are `delete` - delete the OpenStack resource;
	// `detach` - do not delete the OpenStack resource. If not specified, the
	// default is `delete`.
	// +kubebuilder:default:=delete
	// +optional
	OnDelete OnDelete `json:"onDelete,omitempty"`
}

func (*ManagedOptions) DeepCopy

func (in *ManagedOptions) DeepCopy() *ManagedOptions

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

func (*ManagedOptions) DeepCopyInto

func (in *ManagedOptions) DeepCopyInto(out *ManagedOptions)

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

func (*ManagedOptions) GetOnDelete

func (o *ManagedOptions) GetOnDelete() OnDelete

GetOnDelete returns the delete behaviour from ManagedOptions. If called on a nil receiver it safely returns the default.

type ManagementPolicy

type ManagementPolicy string

+kubebuilder:validation:Enum:=managed;unmanaged

const (
	// ManagementPolicyManaged specifies that the controller will reconcile the
	// state of the referenced OpenStack resource with the state of the ORC
	// object.
	ManagementPolicyManaged ManagementPolicy = "managed"

	// ManagementPolicyUnmanaged specifies that the controller will expect the
	// resource to either exist already or to be created externally. The
	// controller will not make any changes to the referenced OpenStack
	// resource.
	ManagementPolicyUnmanaged ManagementPolicy = "unmanaged"
)

type Network

type Network struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec specifies the desired state of the resource.
	// +optional
	Spec NetworkSpec `json:"spec,omitempty"`

	// status defines the observed state of the resource.
	// +optional
	Status NetworkStatus `json:"status,omitempty"`
}

Network is the Schema for an ORC resource.

func (*Network) DeepCopy

func (in *Network) DeepCopy() *Network

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

func (*Network) DeepCopyInto

func (in *Network) DeepCopyInto(out *Network)

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

func (*Network) DeepCopyObject

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

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

func (*Network) GetCloudCredentialsRef

func (i *Network) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)

func (*Network) GetConditions

func (i *Network) GetConditions() []metav1.Condition

type NetworkFilter

type NetworkFilter struct {
	// name of the existing resource
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// description of the existing resource
	// +optional
	Description *NeutronDescription `json:"description,omitempty"`

	// external indicates whether the network has an external routing
	// facility that’s not managed by the networking service.
	// +optional
	External *bool `json:"external,omitempty"`

	FilterByNeutronTags `json:",inline"`
}

NetworkFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1

func (*NetworkFilter) DeepCopy

func (in *NetworkFilter) DeepCopy() *NetworkFilter

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

func (*NetworkFilter) DeepCopyInto

func (in *NetworkFilter) DeepCopyInto(out *NetworkFilter)

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

type NetworkImport

type NetworkImport struct {
	// id contains the unique identifier of an existing OpenStack resource. Note
	// that when specifying an import by ID, the resource MUST already exist.
	// The ORC object will enter an error state if the resource does not exist.
	// +optional
	// +kubebuilder:validation:Format:=uuid
	ID *string `json:"id,omitempty"`

	// filter contains a resource query which is expected to return a single
	// result. The controller will continue to retry if filter returns no
	// results. If filter returns multiple results the controller will set an
	// error state and will not continue to retry.
	// +optional
	Filter *NetworkFilter `json:"filter,omitempty"`
}

NetworkImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*NetworkImport) DeepCopy

func (in *NetworkImport) DeepCopy() *NetworkImport

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

func (*NetworkImport) DeepCopyInto

func (in *NetworkImport) DeepCopyInto(out *NetworkImport)

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

type NetworkList

type NetworkList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the list metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// items contains a list of Network.
	// +required
	Items []Network `json:"items"`
}

NetworkList contains a list of Network.

func (*NetworkList) DeepCopy

func (in *NetworkList) DeepCopy() *NetworkList

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

func (*NetworkList) DeepCopyInto

func (in *NetworkList) DeepCopyInto(out *NetworkList)

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

func (*NetworkList) DeepCopyObject

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

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

func (*NetworkList) GetItems

func (l *NetworkList) GetItems() []Network

type NetworkResourceSpec

type NetworkResourceSpec struct {
	// name will be the name of the created resource. If not specified, the
	// name of the ORC object will be used.
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +optional
	Description *NeutronDescription `json:"description,omitempty"`

	// tags is a list of tags which will be applied to the network.
	// +kubebuilder:validation:MaxItems:=64
	// +listType=set
	// +optional
	Tags []NeutronTag `json:"tags,omitempty"`

	// adminStateUp is the administrative state of the network, which is up (true) or down (false)
	// +optional
	AdminStateUp *bool `json:"adminStateUp,omitempty"`

	// dnsDomain is the DNS domain of the network
	// +optional
	DNSDomain *DNSDomain `json:"dnsDomain,omitempty"`

	// mtu is the the maximum transmission unit value to address
	// fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6.
	// Defaults to 1500.
	// +optional
	MTU *MTU `json:"mtu,omitempty"`

	// portSecurityEnabled is the port security status of the network.
	// Valid values are enabled (true) and disabled (false). This value is
	// used as the default value of port_security_enabled field of a newly
	// created port.
	// +optional
	PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty"`

	// external indicates whether the network has an external routing
	// facility that’s not managed by the networking service.
	// +optional
	External *bool `json:"external,omitempty"`

	// shared indicates whether this resource is shared across all
	// projects. By default, only administrative users can change this
	// value.
	// +optional
	Shared *bool `json:"shared,omitempty"`

	// availabilityZoneHints is the availability zone candidate for the network.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	// +optional
	AvailabilityZoneHints []AvailabilityZoneHint `json:"availabilityZoneHints,omitempty"`
}

NetworkResourceSpec contains the desired state of a network +kubebuilder:validation:XValidation:rule="self == oldSelf",message="NetworkResourceSpec is immutable"

func (*NetworkResourceSpec) DeepCopy

func (in *NetworkResourceSpec) DeepCopy() *NetworkResourceSpec

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

func (*NetworkResourceSpec) DeepCopyInto

func (in *NetworkResourceSpec) DeepCopyInto(out *NetworkResourceSpec)

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

type NetworkResourceStatus

type NetworkResourceStatus struct {
	// name is a Human-readable name for the network. Might not be unique.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Name string `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Description string `json:"description,omitempty"`

	// projectID is the project owner of the network.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	ProjectID string `json:"projectID,omitempty"`

	// status indicates whether network is currently operational. Possible values
	// include `ACTIVE', `DOWN', `BUILD', or `ERROR'. Plug-ins might define
	// additional values.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Status string `json:"status,omitempty"`

	// tags is the list of tags on the resource.
	// +kubebuilder:validation:MaxItems=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	Tags []string `json:"tags,omitempty"`

	NeutronStatusMetadata `json:",inline"`

	// adminStateUp is the administrative state of the network,
	// which is up (true) or down (false).
	// +optional
	AdminStateUp *bool `json:"adminStateUp"`

	// availabilityZoneHints is the availability zone candidate for the
	// network.
	// +kubebuilder:validation:MaxItems=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	AvailabilityZoneHints []string `json:"availabilityZoneHints,omitempty"`

	// dnsDomain is the DNS domain of the network
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	DNSDomain string `json:"dnsDomain,omitempty"`

	// mtu is the the maximum transmission unit value to address
	// fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6.
	// +optional
	MTU *int32 `json:"mtu,omitempty"`

	// portSecurityEnabled is the port security status of the network.
	// Valid values are enabled (true) and disabled (false). This value is
	// used as the default value of port_security_enabled field of a newly
	// created port.
	// +optional
	PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty"`

	// provider contains provider-network properties.
	// +optional
	Provider *ProviderPropertiesStatus `json:"provider,omitempty"`

	// external defines whether the network may be used for creation of
	// floating IPs. Only networks with this flag may be an external
	// gateway for routers. The network must have an external routing
	// facility that is not managed by the networking service. If the
	// network is updated from external to internal the unused floating IPs
	// of this network are automatically deleted when extension
	// floatingip-autodelete-internal is present.
	// +optional
	External *bool `json:"external,omitempty"`

	// shared specifies whether the network resource can be accessed by any
	// tenant.
	// +optional
	Shared *bool `json:"shared,omitempty"`

	// subnets associated with this network.
	// +kubebuilder:validation:MaxItems=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	Subnets []string `json:"subnets,omitempty"`
}

NetworkResourceStatus represents the observed state of the resource.

func (*NetworkResourceStatus) DeepCopy

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

func (*NetworkResourceStatus) DeepCopyInto

func (in *NetworkResourceStatus) DeepCopyInto(out *NetworkResourceStatus)

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

type NetworkSpec

type NetworkSpec struct {
	// import refers to an existing OpenStack resource which will be imported instead of
	// creating a new one.
	// +optional
	Import *NetworkImport `json:"import,omitempty"`

	// resource specifies the desired state of the resource.
	//
	// resource may not be specified if the management policy is `unmanaged`.
	//
	// resource must be specified if the management policy is `managed`.
	// +optional
	Resource *NetworkResourceSpec `json:"resource,omitempty"`

	// managementPolicy defines how ORC will treat the object. Valid values are
	// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
	// ORC will import an existing resource, and will not apply updates to it or
	// delete it.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
	// +kubebuilder:default:=managed
	// +optional
	ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`

	// managedOptions specifies options which may be applied to managed objects.
	// +optional
	ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`

	// cloudCredentialsRef points to a secret containing OpenStack credentials
	// +required
	CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}

NetworkSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"

func (*NetworkSpec) DeepCopy

func (in *NetworkSpec) DeepCopy() *NetworkSpec

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

func (*NetworkSpec) DeepCopyInto

func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)

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

type NetworkStatus

type NetworkStatus struct {
	// conditions represents the observed status of the object.
	// Known .status.conditions.type are: "Available", "Progressing"
	//
	// Available represents the availability of the OpenStack resource. If it is
	// true then the resource is ready for use.
	//
	// Progressing indicates whether the controller is still attempting to
	// reconcile the current state of the OpenStack resource to the desired
	// state. Progressing will be False either because the desired state has
	// been achieved, or because some terminal error prevents it from ever being
	// achieved and the controller is no longer attempting to reconcile. If
	// Progressing is True, an observer waiting on the resource should continue
	// to wait.
	//
	// +kubebuilder:validation:MaxItems:=32
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// id is the unique identifier of the OpenStack resource.
	// +optional
	ID *string `json:"id,omitempty"`

	// resource contains the observed state of the OpenStack resource.
	// +optional
	Resource *NetworkResourceStatus `json:"resource,omitempty"`
}

NetworkStatus defines the observed state of an ORC resource.

func (*NetworkStatus) DeepCopy

func (in *NetworkStatus) DeepCopy() *NetworkStatus

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

func (*NetworkStatus) DeepCopyInto

func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus)

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

type NeutronDescription

type NeutronDescription string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255

type NeutronStatusMetadata

type NeutronStatusMetadata struct {
	// createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601
	// +optional
	CreatedAt *metav1.Time `json:"createdAt,omitempty"`
	// updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601
	// +optional
	UpdatedAt *metav1.Time `json:"updatedAt,omitempty"`

	// revisionNumber optionally set via extensions/standard-attr-revisions
	// +optional
	RevisionNumber *int64 `json:"revisionNumber,omitempty"`
}

func (*NeutronStatusMetadata) DeepCopy

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

func (*NeutronStatusMetadata) DeepCopyInto

func (in *NeutronStatusMetadata) DeepCopyInto(out *NeutronStatusMetadata)

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

type NeutronTag

type NeutronTag string

NeutronTag represents a tag on a Neutron resource. It may not be empty and may not contain commas. +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255

type ObjectWithConditions

type ObjectWithConditions interface {
	metav1.Object
	GetConditions() []metav1.Condition
}

ObjectWithConditions is a metav1.Object which also stores conditions in its status. +kubebuilder:object:generate:=false

type OnDelete

type OnDelete string

+kubebuilder:validation:Enum:=delete;detach

const (
	// OnDeleteDelete specifies that the OpenStack resource will be deleted
	// when the managed ORC object is deleted.
	OnDeleteDelete OnDelete = "delete"

	// OnDeleteDetach specifies that the OpenStack resource will not be
	// deleted when the managed ORC object is deleted.
	OnDeleteDetach OnDelete = "detach"
)

type OpenStackName

type OpenStackName string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255 +kubebuilder:validation:Pattern:="^[^,]+$"

type Port

type Port struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec specifies the desired state of the resource.
	// +optional
	Spec PortSpec `json:"spec,omitempty"`

	// status defines the observed state of the resource.
	// +optional
	Status PortStatus `json:"status,omitempty"`
}

Port is the Schema for an ORC resource.

func (*Port) DeepCopy

func (in *Port) DeepCopy() *Port

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

func (*Port) DeepCopyInto

func (in *Port) DeepCopyInto(out *Port)

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

func (*Port) DeepCopyObject

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

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

func (*Port) GetCloudCredentialsRef

func (i *Port) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)

func (*Port) GetConditions

func (i *Port) GetConditions() []metav1.Condition

type PortFilter

type PortFilter struct {
	// name of the existing resource
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// description of the existing resource
	// +optional
	Description *NeutronDescription `json:"description,omitempty"`

	// networkRef is a reference to the ORC Network which this port is associated with.
	// +optional
	NetworkRef KubernetesNameRef `json:"networkRef"`

	FilterByNeutronTags `json:",inline"`
}

PortFilter specifies a filter to select a port. At least one parameter must be specified. +kubebuilder:validation:MinProperties:=1

func (*PortFilter) DeepCopy

func (in *PortFilter) DeepCopy() *PortFilter

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

func (*PortFilter) DeepCopyInto

func (in *PortFilter) DeepCopyInto(out *PortFilter)

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

type PortImport

type PortImport struct {
	// id contains the unique identifier of an existing OpenStack resource. Note
	// that when specifying an import by ID, the resource MUST already exist.
	// The ORC object will enter an error state if the resource does not exist.
	// +optional
	// +kubebuilder:validation:Format:=uuid
	ID *string `json:"id,omitempty"`

	// filter contains a resource query which is expected to return a single
	// result. The controller will continue to retry if filter returns no
	// results. If filter returns multiple results the controller will set an
	// error state and will not continue to retry.
	// +optional
	Filter *PortFilter `json:"filter,omitempty"`
}

PortImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*PortImport) DeepCopy

func (in *PortImport) DeepCopy() *PortImport

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

func (*PortImport) DeepCopyInto

func (in *PortImport) DeepCopyInto(out *PortImport)

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

type PortList

type PortList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the list metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// items contains a list of Port.
	// +required
	Items []Port `json:"items"`
}

PortList contains a list of Port.

func (*PortList) DeepCopy

func (in *PortList) DeepCopy() *PortList

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

func (*PortList) DeepCopyInto

func (in *PortList) DeepCopyInto(out *PortList)

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

func (*PortList) DeepCopyObject

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

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

func (*PortList) GetItems

func (l *PortList) GetItems() []Port

type PortNumber

type PortNumber int32

+kubebuilder:validation:Minimum:=0 +kubebuilder:validation:Maximum:=65535

type PortRangeSpec

type PortRangeSpec struct {
	// min is the minimum port number in the range that is matched by the security group rule.
	// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal
	// to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type
	// +required
	Min PortNumber `json:"min"`
	// max is the maximum port number in the range that is matched by the security group rule.
	// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal
	// to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.
	// +required
	Max PortNumber `json:"max"`
}

func (*PortRangeSpec) DeepCopy

func (in *PortRangeSpec) DeepCopy() *PortRangeSpec

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

func (*PortRangeSpec) DeepCopyInto

func (in *PortRangeSpec) DeepCopyInto(out *PortRangeSpec)

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

type PortRangeStatus

type PortRangeStatus struct {
	// min is the minimum port number in the range that is matched by the security group rule.
	// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal
	// to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type
	// +optional
	Min int32 `json:"min"`
	// max is the maximum port number in the range that is matched by the security group rule.
	// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal
	// to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.
	// +optional
	Max int32 `json:"max"`
}

func (*PortRangeStatus) DeepCopy

func (in *PortRangeStatus) DeepCopy() *PortRangeStatus

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

func (*PortRangeStatus) DeepCopyInto

func (in *PortRangeStatus) DeepCopyInto(out *PortRangeStatus)

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

type PortResourceSpec

type PortResourceSpec struct {
	// name is a human-readable name of the port. If not set, the object's name will be used.
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +optional
	Description *NeutronDescription `json:"description,omitempty"`

	// networkRef is a reference to the ORC Network which this port is associated with.
	// +required
	NetworkRef KubernetesNameRef `json:"networkRef"`

	// tags is a list of tags which will be applied to the port.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	// +optional
	Tags []NeutronTag `json:"tags,omitempty"`

	// allowedAddressPairs are allowed addresses associated with this port.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=atomic
	// +optional
	AllowedAddressPairs []AllowedAddressPair `json:"allowedAddressPairs,omitempty"`

	// addresses are the IP addresses for the port.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=atomic
	// +optional
	Addresses []Address `json:"addresses,omitempty"`

	// securityGroupRefs are the names of the security groups associated
	// with this port.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	// +optional
	SecurityGroupRefs []OpenStackName `json:"securityGroupRefs,omitempty"`

	// vnicType specifies the type of vNIC which this port should be
	// attached to. This is used to determine which mechanism driver(s) to
	// be used to bind the port. The valid values are normal, macvtap,
	// direct, baremetal, direct-physical, virtio-forwarder, smart-nic and
	// remote-managed, although these values will not be validated in this
	// API to ensure compatibility with future neutron changes or custom
	// implementations. What type of vNIC is actually available depends on
	// deployments. If not specified, the Neutron default value is used.
	// +kubebuilder:validation:MaxLength:=64
	// +optional
	VNICType string `json:"vnicType,omitempty"`

	// portSecurity controls port security for this port.
	// When set to Enabled, port security is enabled.
	// When set to Disabled, port security is disabled and SecurityGroupRefs must be empty.
	// When set to Inherit (default), it takes the value from the network level.
	// +kubebuilder:default=Inherit
	// +optional
	PortSecurity PortSecurityState `json:"portSecurity,omitempty"`
}

+kubebuilder:validation:XValidation:rule="self == oldSelf",message="PortResourceSpec is immutable" +kubebuilder:validation:XValidation:rule="has(self.portSecurity) && self.portSecurity == 'Disabled' ? !has(self.securityGroupRefs) : true",message="securityGroupRefs must be empty when portSecurity is set to Disabled" +kubebuilder:validation:XValidation:rule="has(self.portSecurity) && self.portSecurity == 'Disabled' ? !has(self.allowedAddressPairs) : true",message="allowedAddressPairs must be empty when portSecurity is set to Disabled"

func (*PortResourceSpec) DeepCopy

func (in *PortResourceSpec) DeepCopy() *PortResourceSpec

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

func (*PortResourceSpec) DeepCopyInto

func (in *PortResourceSpec) DeepCopyInto(out *PortResourceSpec)

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

type PortResourceStatus

type PortResourceStatus struct {
	// name is the human-readable name of the resource. Might not be unique.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Name string `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Description string `json:"description,omitempty"`

	// networkID is the ID of the attached network.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	NetworkID string `json:"networkID,omitempty"`

	// projectID is the project owner of the resource.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	ProjectID string `json:"projectID,omitempty"`

	// status indicates the current status of the resource.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Status string `json:"status,omitempty"`

	// tags is the list of tags on the resource.
	// +kubebuilder:validation:MaxItems=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	Tags []string `json:"tags,omitempty"`

	// adminStateUp is the administrative state of the port,
	// which is up (true) or down (false).
	// +optional
	AdminStateUp *bool `json:"adminStateUp,omitempty"`

	// macAddress is the MAC address of the port.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	MACAddress string `json:"macAddress,omitempty"`

	// deviceID is the ID of the device that uses this port.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	DeviceID string `json:"deviceID,omitempty"`

	// deviceOwner is the entity type that uses this port.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	DeviceOwner string `json:"deviceOwner,omitempty"`

	// allowedAddressPairs is a set of zero or more allowed address pair
	// objects each where address pair object contains an IP address and
	// MAC address.
	// +kubebuilder:validation:MaxItems=32
	// +listType=atomic
	// +optional
	AllowedAddressPairs []AllowedAddressPairStatus `json:"allowedAddressPairs,omitempty"`

	// fixedIPs is a set of zero or more fixed IP objects each where fixed
	// IP object contains an IP address and subnet ID from which the IP
	// address is assigned.
	// +kubebuilder:validation:MaxItems=32
	// +listType=atomic
	// +optional
	FixedIPs []FixedIPStatus `json:"fixedIPs,omitempty"`

	// securityGroups contains the IDs of security groups applied to the port.
	// +kubebuilder:validation:MaxItems=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	SecurityGroups []string `json:"securityGroups,omitempty"`

	// propagateUplinkStatus represents the uplink status propagation of
	// the port.
	// +optional
	PropagateUplinkStatus *bool `json:"propagateUplinkStatus,omitempty"`

	// vnicType is the type of vNIC which this port is attached to.
	// +kubebuilder:validation:MaxLength:=64
	// +optional
	VNICType string `json:"vnicType,omitempty"`

	// portSecurityEnabled indicates whether port security is enabled or not.
	// +optional
	PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty"`

	NeutronStatusMetadata `json:",inline"`
}

func (*PortResourceStatus) DeepCopy

func (in *PortResourceStatus) DeepCopy() *PortResourceStatus

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

func (*PortResourceStatus) DeepCopyInto

func (in *PortResourceStatus) DeepCopyInto(out *PortResourceStatus)

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

type PortSecurityState added in v2.1.0

type PortSecurityState string

PortSecurityState represents the security state of a port +kubebuilder:validation:Enum=Enabled;Disabled;Inherit

const (
	// PortSecurityEnabled means port security is enabled
	PortSecurityEnabled PortSecurityState = "Enabled"
	// PortSecurityDisabled means port security is disabled
	PortSecurityDisabled PortSecurityState = "Disabled"
	// PortSecurityInherit means port security settings are inherited from the network
	PortSecurityInherit PortSecurityState = "Inherit"
)

type PortSpec

type PortSpec struct {
	// import refers to an existing OpenStack resource which will be imported instead of
	// creating a new one.
	// +optional
	Import *PortImport `json:"import,omitempty"`

	// resource specifies the desired state of the resource.
	//
	// resource may not be specified if the management policy is `unmanaged`.
	//
	// resource must be specified if the management policy is `managed`.
	// +optional
	Resource *PortResourceSpec `json:"resource,omitempty"`

	// managementPolicy defines how ORC will treat the object. Valid values are
	// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
	// ORC will import an existing resource, and will not apply updates to it or
	// delete it.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
	// +kubebuilder:default:=managed
	// +optional
	ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`

	// managedOptions specifies options which may be applied to managed objects.
	// +optional
	ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`

	// cloudCredentialsRef points to a secret containing OpenStack credentials
	// +required
	CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}

PortSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"

func (*PortSpec) DeepCopy

func (in *PortSpec) DeepCopy() *PortSpec

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

func (*PortSpec) DeepCopyInto

func (in *PortSpec) DeepCopyInto(out *PortSpec)

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

type PortStatus

type PortStatus struct {
	// conditions represents the observed status of the object.
	// Known .status.conditions.type are: "Available", "Progressing"
	//
	// Available represents the availability of the OpenStack resource. If it is
	// true then the resource is ready for use.
	//
	// Progressing indicates whether the controller is still attempting to
	// reconcile the current state of the OpenStack resource to the desired
	// state. Progressing will be False either because the desired state has
	// been achieved, or because some terminal error prevents it from ever being
	// achieved and the controller is no longer attempting to reconcile. If
	// Progressing is True, an observer waiting on the resource should continue
	// to wait.
	//
	// +kubebuilder:validation:MaxItems:=32
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// id is the unique identifier of the OpenStack resource.
	// +optional
	ID *string `json:"id,omitempty"`

	// resource contains the observed state of the OpenStack resource.
	// +optional
	Resource *PortResourceStatus `json:"resource,omitempty"`
}

PortStatus defines the observed state of an ORC resource.

func (*PortStatus) DeepCopy

func (in *PortStatus) DeepCopy() *PortStatus

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

func (*PortStatus) DeepCopyInto

func (in *PortStatus) DeepCopyInto(out *PortStatus)

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

type Project added in v2.1.0

type Project struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec specifies the desired state of the resource.
	// +optional
	Spec ProjectSpec `json:"spec,omitempty"`

	// status defines the observed state of the resource.
	// +optional
	Status ProjectStatus `json:"status,omitempty"`
}

Project is the Schema for an ORC resource.

func (*Project) DeepCopy added in v2.1.0

func (in *Project) DeepCopy() *Project

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

func (*Project) DeepCopyInto added in v2.1.0

func (in *Project) DeepCopyInto(out *Project)

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

func (*Project) DeepCopyObject added in v2.1.0

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

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

func (*Project) GetCloudCredentialsRef added in v2.1.0

func (i *Project) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)

func (*Project) GetConditions added in v2.1.0

func (i *Project) GetConditions() []metav1.Condition

type ProjectFilter added in v2.1.0

type ProjectFilter struct {
	// name of the existing resource
	// +optional
	Name *KeystoneName `json:"name,omitempty"`

	FilterByKeystoneTags `json:",inline"`
}

ProjectFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1

func (*ProjectFilter) DeepCopy added in v2.1.0

func (in *ProjectFilter) DeepCopy() *ProjectFilter

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

func (*ProjectFilter) DeepCopyInto added in v2.1.0

func (in *ProjectFilter) DeepCopyInto(out *ProjectFilter)

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

type ProjectImport added in v2.1.0

type ProjectImport struct {
	// id contains the unique identifier of an existing OpenStack resource. Note
	// that when specifying an import by ID, the resource MUST already exist.
	// The ORC object will enter an error state if the resource does not exist.
	// +optional
	// +kubebuilder:validation:Format:=uuid
	ID *string `json:"id,omitempty"`

	// filter contains a resource query which is expected to return a single
	// result. The controller will continue to retry if filter returns no
	// results. If filter returns multiple results the controller will set an
	// error state and will not continue to retry.
	// +optional
	Filter *ProjectFilter `json:"filter,omitempty"`
}

ProjectImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*ProjectImport) DeepCopy added in v2.1.0

func (in *ProjectImport) DeepCopy() *ProjectImport

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

func (*ProjectImport) DeepCopyInto added in v2.1.0

func (in *ProjectImport) DeepCopyInto(out *ProjectImport)

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

type ProjectList added in v2.1.0

type ProjectList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the list metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// items contains a list of Project.
	// +required
	Items []Project `json:"items"`
}

ProjectList contains a list of Project.

func (*ProjectList) DeepCopy added in v2.1.0

func (in *ProjectList) DeepCopy() *ProjectList

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

func (*ProjectList) DeepCopyInto added in v2.1.0

func (in *ProjectList) DeepCopyInto(out *ProjectList)

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

func (*ProjectList) DeepCopyObject added in v2.1.0

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

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

func (*ProjectList) GetItems added in v2.1.0

func (l *ProjectList) GetItems() []Project

type ProjectResourceSpec added in v2.1.0

type ProjectResourceSpec struct {
	// name will be the name of the created resource. If not specified, the
	// name of the ORC object will be used.
	// +optional
	Name *KeystoneName `json:"name,omitempty"`

	// description contains a free form description of the project.
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=65535
	// +optional
	Description *string `json:"description,omitempty"`

	// enabled defines whether a project is enabled or not. Default is true.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// tags is list of simple strings assigned to a project.
	// Tags can be used to classify projects into groups.
	// +kubebuilder:validation:MaxItems:=80
	// +listType=set
	// +optional
	Tags []KeystoneTag `json:"tags,omitempty"`
}

ProjectResourceSpec contains the desired state of a project +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ProjectResourceSpec is immutable"

func (*ProjectResourceSpec) DeepCopy added in v2.1.0

func (in *ProjectResourceSpec) DeepCopy() *ProjectResourceSpec

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

func (*ProjectResourceSpec) DeepCopyInto added in v2.1.0

func (in *ProjectResourceSpec) DeepCopyInto(out *ProjectResourceSpec)

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

type ProjectResourceStatus added in v2.1.0

type ProjectResourceStatus struct {
	// name is a Human-readable name for the project. Might not be unique.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Name string `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +kubebuilder:validation:MaxLength:=65535
	// +optional
	Description string `json:"description,omitempty"`

	// enabled represents whether a project is enabled or not.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// tags is the list of tags on the resource.
	// +kubebuilder:validation:MaxItems=80
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	Tags []string `json:"tags,omitempty"`
}

ProjectResourceStatus represents the observed state of the resource.

func (*ProjectResourceStatus) DeepCopy added in v2.1.0

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

func (*ProjectResourceStatus) DeepCopyInto added in v2.1.0

func (in *ProjectResourceStatus) DeepCopyInto(out *ProjectResourceStatus)

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

type ProjectSpec added in v2.1.0

type ProjectSpec struct {
	// import refers to an existing OpenStack resource which will be imported instead of
	// creating a new one.
	// +optional
	Import *ProjectImport `json:"import,omitempty"`

	// resource specifies the desired state of the resource.
	//
	// resource may not be specified if the management policy is `unmanaged`.
	//
	// resource must be specified if the management policy is `managed`.
	// +optional
	Resource *ProjectResourceSpec `json:"resource,omitempty"`

	// managementPolicy defines how ORC will treat the object. Valid values are
	// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
	// ORC will import an existing resource, and will not apply updates to it or
	// delete it.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
	// +kubebuilder:default:=managed
	// +optional
	ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`

	// managedOptions specifies options which may be applied to managed objects.
	// +optional
	ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`

	// cloudCredentialsRef points to a secret containing OpenStack credentials
	// +required
	CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}

ProjectSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"

func (*ProjectSpec) DeepCopy added in v2.1.0

func (in *ProjectSpec) DeepCopy() *ProjectSpec

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

func (*ProjectSpec) DeepCopyInto added in v2.1.0

func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec)

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

type ProjectStatus added in v2.1.0

type ProjectStatus struct {
	// conditions represents the observed status of the object.
	// Known .status.conditions.type are: "Available", "Progressing"
	//
	// Available represents the availability of the OpenStack resource. If it is
	// true then the resource is ready for use.
	//
	// Progressing indicates whether the controller is still attempting to
	// reconcile the current state of the OpenStack resource to the desired
	// state. Progressing will be False either because the desired state has
	// been achieved, or because some terminal error prevents it from ever being
	// achieved and the controller is no longer attempting to reconcile. If
	// Progressing is True, an observer waiting on the resource should continue
	// to wait.
	//
	// +kubebuilder:validation:MaxItems:=32
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// id is the unique identifier of the OpenStack resource.
	// +optional
	ID *string `json:"id,omitempty"`

	// resource contains the observed state of the OpenStack resource.
	// +optional
	Resource *ProjectResourceStatus `json:"resource,omitempty"`
}

ProjectStatus defines the observed state of an ORC resource.

func (*ProjectStatus) DeepCopy added in v2.1.0

func (in *ProjectStatus) DeepCopy() *ProjectStatus

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

func (*ProjectStatus) DeepCopyInto added in v2.1.0

func (in *ProjectStatus) DeepCopyInto(out *ProjectStatus)

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

type Protocol

type Protocol string

+kubebuilder:validation:Enum:=ah;dccp;egp;esp;gre;icmp;icmpv6;igmp;ipip;ipv6-encap;ipv6-frag;ipv6-icmp;ipv6-nonxt;ipv6-opts;ipv6-route;ospf;pgm;rsvp;sctp;tcp;udp;udplite;vrrp

const (
	ProtocolAH        Protocol = "ah"
	ProtocolDCCP      Protocol = "dccp"
	ProtocolEGP       Protocol = "egp"
	ProtocolESP       Protocol = "esp"
	ProtocolGRE       Protocol = "gre"
	ProtocolICMP      Protocol = "icmp"
	ProtocolICMPV6    Protocol = "icmpv6"
	ProtocolIGMP      Protocol = "igmp"
	ProtocolIPIP      Protocol = "ipip"
	ProtocolIPV6ENCAP Protocol = "ipv6-encap"
	ProtocolIPV6FRAG  Protocol = "ipv6-frag"
	ProtocolIPV6ICMP  Protocol = "ipv6-icmp"
	ProtocolIPV6NONXT Protocol = "ipv6-nonxt"
	ProtocolIPV6OPTS  Protocol = "ipv6-opts"
	ProtocolIPV6ROUTE Protocol = "ipv6-route"
	ProtocolOSPF      Protocol = "ospf"
	ProtocolPGM       Protocol = "pgm"
	ProtocolRSVP      Protocol = "rsvp"
	ProtocolSCTP      Protocol = "sctp"
	ProtocolTCP       Protocol = "tcp"
	ProtocolUDP       Protocol = "udp"
	ProtocolUDPLITE   Protocol = "udplite"
	ProtocolVRRP      Protocol = "vrrp"
)

type ProviderPropertiesStatus

type ProviderPropertiesStatus struct {
	// networkType is the type of physical network that this
	// network should be mapped to. Supported values are flat, vlan, vxlan, and gre.
	// Valid values depend on the networking back-end.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	NetworkType string `json:"networkType,omitempty"`

	// physicalNetwork is the physical network where this network
	// should be implemented. The Networking API v2.0 does not provide a
	// way to list available physical networks. For example, the Open
	// vSwitch plug-in configuration file defines a symbolic name that maps
	// to specific bridges on each compute host.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	PhysicalNetwork string `json:"physicalNetwork,omitempty"`

	// segmentationID is the ID of the isolated segment on the
	// physical network. The network_type attribute defines the
	// segmentation model. For example, if the network_type value is vlan,
	// this ID is a vlan identifier. If the network_type value is gre, this
	// ID is a gre key.
	// +optional
	SegmentationID *int32 `json:"segmentationID,omitempty"`
}

func (*ProviderPropertiesStatus) DeepCopy

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

func (*ProviderPropertiesStatus) DeepCopyInto

func (in *ProviderPropertiesStatus) DeepCopyInto(out *ProviderPropertiesStatus)

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

type Router

type Router struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec specifies the desired state of the resource.
	// +optional
	Spec RouterSpec `json:"spec,omitempty"`

	// status defines the observed state of the resource.
	// +optional
	Status RouterStatus `json:"status,omitempty"`
}

Router is the Schema for an ORC resource.

func (*Router) DeepCopy

func (in *Router) DeepCopy() *Router

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

func (*Router) DeepCopyInto

func (in *Router) DeepCopyInto(out *Router)

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

func (*Router) DeepCopyObject

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

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

func (*Router) GetCloudCredentialsRef

func (i *Router) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)

func (*Router) GetConditions

func (i *Router) GetConditions() []metav1.Condition

type RouterFilter

type RouterFilter struct {
	// name of the existing resource
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// description of the existing resource
	// +optional
	Description *NeutronDescription `json:"description,omitempty"`

	FilterByNeutronTags `json:",inline"`
}

RouterFilter specifies a query to select an OpenStack router. At least one property must be set. +kubebuilder:validation:MinProperties:=1

func (*RouterFilter) DeepCopy

func (in *RouterFilter) DeepCopy() *RouterFilter

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

func (*RouterFilter) DeepCopyInto

func (in *RouterFilter) DeepCopyInto(out *RouterFilter)

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

type RouterImport

type RouterImport struct {
	// id contains the unique identifier of an existing OpenStack resource. Note
	// that when specifying an import by ID, the resource MUST already exist.
	// The ORC object will enter an error state if the resource does not exist.
	// +optional
	// +kubebuilder:validation:Format:=uuid
	ID *string `json:"id,omitempty"`

	// filter contains a resource query which is expected to return a single
	// result. The controller will continue to retry if filter returns no
	// results. If filter returns multiple results the controller will set an
	// error state and will not continue to retry.
	// +optional
	Filter *RouterFilter `json:"filter,omitempty"`
}

RouterImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*RouterImport) DeepCopy

func (in *RouterImport) DeepCopy() *RouterImport

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

func (*RouterImport) DeepCopyInto

func (in *RouterImport) DeepCopyInto(out *RouterImport)

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

type RouterInterface

type RouterInterface struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the object metadata.
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec specifies the desired state of the resource.
	// +optional
	Spec RouterInterfaceSpec `json:"spec,omitempty"`

	// status defines the observed state of the resource.
	// +optional
	Status RouterInterfaceStatus `json:"status,omitempty"`
}

RouterInterface is the Schema for an ORC resource.

func (*RouterInterface) DeepCopy

func (in *RouterInterface) DeepCopy() *RouterInterface

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

func (*RouterInterface) DeepCopyInto

func (in *RouterInterface) DeepCopyInto(out *RouterInterface)

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

func (*RouterInterface) DeepCopyObject

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

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

func (*RouterInterface) GetConditions

func (i *RouterInterface) GetConditions() []metav1.Condition

type RouterInterfaceList

type RouterInterfaceList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the list metadata.
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// items contains a list of RouterInterface.
	// +kubebuilder:validation:MaxItems:=32
	// +required
	Items []RouterInterface `json:"items"`
}

RouterInterfaceList contains a list of RouterInterface.

func (*RouterInterfaceList) DeepCopy

func (in *RouterInterfaceList) DeepCopy() *RouterInterfaceList

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

func (*RouterInterfaceList) DeepCopyInto

func (in *RouterInterfaceList) DeepCopyInto(out *RouterInterfaceList)

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

func (*RouterInterfaceList) DeepCopyObject

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

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

func (*RouterInterfaceList) GetItems

func (l *RouterInterfaceList) GetItems() []RouterInterface

type RouterInterfaceSpec

type RouterInterfaceSpec struct {
	// type specifies the type of the router interface.
	// +required
	// +unionDiscriminator
	Type RouterInterfaceType `json:"type"`

	// routerRef references the router to which this interface belongs.
	// +required
	RouterRef KubernetesNameRef `json:"routerRef"`

	// subnetRef references the subnet the router interface is created on.
	// +unionMember
	// +optional
	SubnetRef *KubernetesNameRef `json:"subnetRef,omitempty"`
}

+kubebuilder:validation:XValidation:rule="self.type == 'Subnet' ? has(self.subnetRef) : !has(self.subnetRef)",message="subnetRef is required when type is 'Subnet' and not permitted otherwise" +kubebuilder:validation:XValidation:rule="self == oldSelf",message="RouterInterfaceResourceSpec is immutable"

func (*RouterInterfaceSpec) DeepCopy

func (in *RouterInterfaceSpec) DeepCopy() *RouterInterfaceSpec

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

func (*RouterInterfaceSpec) DeepCopyInto

func (in *RouterInterfaceSpec) DeepCopyInto(out *RouterInterfaceSpec)

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

type RouterInterfaceStatus

type RouterInterfaceStatus struct {
	// conditions represents the observed status of the object.
	// Known .status.conditions.type are: "Available", "Progressing"
	//
	// Available represents the availability of the OpenStack resource. If it is
	// true then the resource is ready for use.
	//
	// Progressing indicates whether the controller is still attempting to
	// reconcile the current state of the OpenStack resource to the desired
	// state. Progressing will be False either because the desired state has
	// been achieved, or because some terminal error prevents it from ever being
	// achieved and the controller is no longer attempting to reconcile. If
	// Progressing is True, an observer waiting on the resource should continue
	// to wait.
	//
	// +kubebuilder:validation:MaxItems:=32
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// id is the unique identifier of the port created for the router interface
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	ID *string `json:"id,omitempty"`
}

func (*RouterInterfaceStatus) DeepCopy

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

func (*RouterInterfaceStatus) DeepCopyInto

func (in *RouterInterfaceStatus) DeepCopyInto(out *RouterInterfaceStatus)

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

type RouterInterfaceType

type RouterInterfaceType string

+kubebuilder:validation:Enum:=Subnet +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=8

const (
	RouterInterfaceTypeSubnet RouterInterfaceType = "Subnet"
)

type RouterList

type RouterList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the list metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// items contains a list of Router.
	// +required
	Items []Router `json:"items"`
}

RouterList contains a list of Router.

func (*RouterList) DeepCopy

func (in *RouterList) DeepCopy() *RouterList

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

func (*RouterList) DeepCopyInto

func (in *RouterList) DeepCopyInto(out *RouterList)

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

func (*RouterList) DeepCopyObject

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

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

func (*RouterList) GetItems

func (l *RouterList) GetItems() []Router

type RouterResourceSpec

type RouterResourceSpec struct {
	// name is a human-readable name of the router. If not set, the
	// object's name will be used.
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +optional
	Description *NeutronDescription `json:"description,omitempty"`

	// tags is a list of tags which will be applied to the router.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	// +optional
	Tags []NeutronTag `json:"tags,omitempty"`

	// adminStateUp represents the administrative state of the resource,
	// which is up (true) or down (false). Default is true.
	// +optional
	AdminStateUp *bool `json:"adminStateUp,omitempty"`

	// externalGateways is a list of external gateways for the router.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=atomic
	// +optional
	ExternalGateways []ExternalGateway `json:"externalGateways,omitempty"`

	// distributed indicates whether the router is distributed or not. It
	// is available when dvr extension is enabled.
	// +optional
	Distributed *bool `json:"distributed,omitempty"`

	// availabilityZoneHints is the availability zone candidate for the router.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	// +optional
	AvailabilityZoneHints []AvailabilityZoneHint `json:"availabilityZoneHints,omitempty"`
}

+kubebuilder:validation:XValidation:rule="self == oldSelf",message="RouterResourceSpec is immutable"

func (*RouterResourceSpec) DeepCopy

func (in *RouterResourceSpec) DeepCopy() *RouterResourceSpec

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

func (*RouterResourceSpec) DeepCopyInto

func (in *RouterResourceSpec) DeepCopyInto(out *RouterResourceSpec)

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

type RouterResourceStatus

type RouterResourceStatus struct {
	// name is the human-readable name of the resource. Might not be unique.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Name string `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Description string `json:"description,omitempty"`

	// projectID is the project owner of the resource.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	ProjectID string `json:"projectID,omitempty"`

	// status indicates the current status of the resource.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Status string `json:"status,omitempty"`

	// tags is the list of tags on the resource.
	// +kubebuilder:validation:MaxItems:=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	Tags []string `json:"tags,omitempty"`

	// adminStateUp is the administrative state of the router,
	// which is up (true) or down (false).
	// +optional
	AdminStateUp *bool `json:"adminStateUp"`

	// externalGateways is a list of external gateways for the router.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=atomic
	// +optional
	ExternalGateways []ExternalGatewayStatus `json:"externalGateways,omitempty"`

	// availabilityZoneHints is the availability zone candidate for the
	// router.
	// +kubebuilder:validation:MaxItems:=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	AvailabilityZoneHints []string `json:"availabilityZoneHints,omitempty"`
}

func (*RouterResourceStatus) DeepCopy

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

func (*RouterResourceStatus) DeepCopyInto

func (in *RouterResourceStatus) DeepCopyInto(out *RouterResourceStatus)

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

type RouterSpec

type RouterSpec struct {
	// import refers to an existing OpenStack resource which will be imported instead of
	// creating a new one.
	// +optional
	Import *RouterImport `json:"import,omitempty"`

	// resource specifies the desired state of the resource.
	//
	// resource may not be specified if the management policy is `unmanaged`.
	//
	// resource must be specified if the management policy is `managed`.
	// +optional
	Resource *RouterResourceSpec `json:"resource,omitempty"`

	// managementPolicy defines how ORC will treat the object. Valid values are
	// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
	// ORC will import an existing resource, and will not apply updates to it or
	// delete it.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
	// +kubebuilder:default:=managed
	// +optional
	ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`

	// managedOptions specifies options which may be applied to managed objects.
	// +optional
	ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`

	// cloudCredentialsRef points to a secret containing OpenStack credentials
	// +required
	CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}

RouterSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"

func (*RouterSpec) DeepCopy

func (in *RouterSpec) DeepCopy() *RouterSpec

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

func (*RouterSpec) DeepCopyInto

func (in *RouterSpec) DeepCopyInto(out *RouterSpec)

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

type RouterStatus

type RouterStatus struct {
	// conditions represents the observed status of the object.
	// Known .status.conditions.type are: "Available", "Progressing"
	//
	// Available represents the availability of the OpenStack resource. If it is
	// true then the resource is ready for use.
	//
	// Progressing indicates whether the controller is still attempting to
	// reconcile the current state of the OpenStack resource to the desired
	// state. Progressing will be False either because the desired state has
	// been achieved, or because some terminal error prevents it from ever being
	// achieved and the controller is no longer attempting to reconcile. If
	// Progressing is True, an observer waiting on the resource should continue
	// to wait.
	//
	// +kubebuilder:validation:MaxItems:=32
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// id is the unique identifier of the OpenStack resource.
	// +optional
	ID *string `json:"id,omitempty"`

	// resource contains the observed state of the OpenStack resource.
	// +optional
	Resource *RouterResourceStatus `json:"resource,omitempty"`
}

RouterStatus defines the observed state of an ORC resource.

func (*RouterStatus) DeepCopy

func (in *RouterStatus) DeepCopy() *RouterStatus

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

func (*RouterStatus) DeepCopyInto

func (in *RouterStatus) DeepCopyInto(out *RouterStatus)

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

type RuleDirection

type RuleDirection string

+kubebuilder:validation:Enum:=ingress;egress

type SecurityGroup

type SecurityGroup struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec specifies the desired state of the resource.
	// +optional
	Spec SecurityGroupSpec `json:"spec,omitempty"`

	// status defines the observed state of the resource.
	// +optional
	Status SecurityGroupStatus `json:"status,omitempty"`
}

SecurityGroup is the Schema for an ORC resource.

func (*SecurityGroup) DeepCopy

func (in *SecurityGroup) DeepCopy() *SecurityGroup

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

func (*SecurityGroup) DeepCopyInto

func (in *SecurityGroup) DeepCopyInto(out *SecurityGroup)

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

func (*SecurityGroup) DeepCopyObject

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

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

func (*SecurityGroup) GetCloudCredentialsRef

func (i *SecurityGroup) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)

func (*SecurityGroup) GetConditions

func (i *SecurityGroup) GetConditions() []metav1.Condition

type SecurityGroupFilter

type SecurityGroupFilter struct {
	// name of the existing resource
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// description of the existing resource
	// +optional
	Description *NeutronDescription `json:"description,omitempty"`

	FilterByNeutronTags `json:",inline"`
}

SecurityGroupFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1

func (*SecurityGroupFilter) DeepCopy

func (in *SecurityGroupFilter) DeepCopy() *SecurityGroupFilter

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

func (*SecurityGroupFilter) DeepCopyInto

func (in *SecurityGroupFilter) DeepCopyInto(out *SecurityGroupFilter)

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

type SecurityGroupImport

type SecurityGroupImport struct {
	// id contains the unique identifier of an existing OpenStack resource. Note
	// that when specifying an import by ID, the resource MUST already exist.
	// The ORC object will enter an error state if the resource does not exist.
	// +optional
	// +kubebuilder:validation:Format:=uuid
	ID *string `json:"id,omitempty"`

	// filter contains a resource query which is expected to return a single
	// result. The controller will continue to retry if filter returns no
	// results. If filter returns multiple results the controller will set an
	// error state and will not continue to retry.
	// +optional
	Filter *SecurityGroupFilter `json:"filter,omitempty"`
}

SecurityGroupImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*SecurityGroupImport) DeepCopy

func (in *SecurityGroupImport) DeepCopy() *SecurityGroupImport

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

func (*SecurityGroupImport) DeepCopyInto

func (in *SecurityGroupImport) DeepCopyInto(out *SecurityGroupImport)

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

type SecurityGroupList

type SecurityGroupList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the list metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// items contains a list of SecurityGroup.
	// +required
	Items []SecurityGroup `json:"items"`
}

SecurityGroupList contains a list of SecurityGroup.

func (*SecurityGroupList) DeepCopy

func (in *SecurityGroupList) DeepCopy() *SecurityGroupList

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

func (*SecurityGroupList) DeepCopyInto

func (in *SecurityGroupList) DeepCopyInto(out *SecurityGroupList)

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

func (*SecurityGroupList) DeepCopyObject

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

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

func (*SecurityGroupList) GetItems

func (l *SecurityGroupList) GetItems() []SecurityGroup

type SecurityGroupResourceSpec

type SecurityGroupResourceSpec struct {
	// name will be the name of the created resource. If not specified, the
	// name of the ORC object will be used.
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Property is immutable"
	Name *OpenStackName `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Property is immutable"
	Description *NeutronDescription `json:"description,omitempty"`

	// tags is a list of tags which will be applied to the security group.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Property is immutable"
	Tags []NeutronTag `json:"tags,omitempty"`

	// stateful indicates if the security group is stateful or stateless.
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Property is immutable"
	Stateful *bool `json:"stateful,omitempty"`

	// rules is a list of security group rules belonging to this SG.
	// +kubebuilder:validation:MaxItems:=256
	// +listType=atomic
	// +optional
	Rules []SecurityGroupRule `json:"rules,omitempty"`
}

SecurityGroupResourceSpec contains the desired state of a security group

func (*SecurityGroupResourceSpec) DeepCopy

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

func (*SecurityGroupResourceSpec) DeepCopyInto

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

type SecurityGroupResourceStatus

type SecurityGroupResourceStatus struct {
	// name is a Human-readable name for the security group. Might not be unique.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Name string `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Description string `json:"description,omitempty"`

	// projectID is the project owner of the security group.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	ProjectID string `json:"projectID,omitempty"`

	// tags is the list of tags on the resource.
	// +kubebuilder:validation:MaxItems:=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	Tags []string `json:"tags,omitempty"`

	// stateful indicates if the security group is stateful or stateless.
	// +optional
	Stateful bool `json:"stateful,omitempty"`

	// rules is a list of security group rules belonging to this SG.
	// +kubebuilder:validation:MaxItems:=256
	// +listType=atomic
	// +optional
	Rules []SecurityGroupRuleStatus `json:"rules,omitempty"`

	NeutronStatusMetadata `json:",inline"`
}

SecurityGroupResourceStatus represents the observed state of the resource.

func (*SecurityGroupResourceStatus) DeepCopy

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

func (*SecurityGroupResourceStatus) DeepCopyInto

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

type SecurityGroupRule

type SecurityGroupRule struct {
	// description is a human-readable description for the resource.
	// +optional
	Description *NeutronDescription `json:"description,omitempty"`

	// direction represents the direction in which the security group rule
	// is applied. Can be ingress or egress.
	// +optional
	Direction *RuleDirection `json:"direction,omitempty"`

	// remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)
	// +optional
	RemoteIPPrefix *CIDR `json:"remoteIPPrefix,omitempty"`

	// protocol is the IP protocol is represented by a string
	// +optional
	Protocol *Protocol `json:"protocol,omitempty"`

	// ethertype must be IPv4 or IPv6, and addresses represented in CIDR
	// must match the ingress or egress rules.
	// +required
	Ethertype Ethertype `json:"ethertype"`

	// portRange sets the minimum and maximum ports range that the security group rule
	// matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than
	// or equal to the PortRange.Max attribute value.
	// If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max
	// should be an ICMP type
	// +optional
	PortRange *PortRangeSpec `json:"portRange,omitempty"`
}

SecurityGroupRule defines a Security Group rule +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:XValidation:rule="(!has(self.portRange)|| !(self.protocol == 'tcp'|| self.protocol == 'udp' || self.protocol == 'dccp' || self.protocol == 'sctp' || self.protocol == 'udplite') || (self.portRange.min <= self.portRange.max))",message="portRangeMax should be equal or greater than portRange.min" +kubebuilder:validation:XValidation:rule="!(self.protocol == 'icmp' || self.protocol == 'icmpv6') || !has(self.portRange)|| (self.portRange.min >= 0 && self.portRange.min <= 255)",message="When protocol is ICMP or ICMPv6 portRange.min should be between 0 and 255" +kubebuilder:validation:XValidation:rule="!(self.protocol == 'icmp' || self.protocol == 'icmpv6') || !has(self.portRange)|| (self.portRange.max >= 0 && self.portRange.max <= 255)",message="When protocol is ICMP or ICMPv6 portRange.max should be between 0 and 255"

func (*SecurityGroupRule) DeepCopy

func (in *SecurityGroupRule) DeepCopy() *SecurityGroupRule

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

func (*SecurityGroupRule) DeepCopyInto

func (in *SecurityGroupRule) DeepCopyInto(out *SecurityGroupRule)

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

type SecurityGroupRuleStatus

type SecurityGroupRuleStatus struct {
	// id is the ID of the security group rule.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	ID string `json:"id,omitempty"`

	// description is a human-readable description for the resource.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Description string `json:"description,omitempty"`

	// direction represents the direction in which the security group rule
	// is applied. Can be ingress or egress.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Direction string `json:"direction,omitempty"`

	// remoteGroupID is the remote group UUID to associate with this security group rule
	// RemoteGroupID
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	RemoteGroupID string `json:"remoteGroupID,omitempty"`

	// remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	RemoteIPPrefix string `json:"remoteIPPrefix,omitempty"`

	// protocol is the IP protocol can be represented by a string, an
	// integer, or null
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Protocol string `json:"protocol,omitempty"`

	// ethertype must be IPv4 or IPv6, and addresses represented in CIDR
	// must match the ingress or egress rules.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Ethertype string `json:"ethertype,omitempty"`

	// portRange sets the minimum and maximum ports range that the security group rule
	// matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than
	// or equal to the PortRange.Max attribute value.
	// If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max
	// should be an ICMP type
	// +optional
	PortRange *PortRangeStatus `json:"portRange,omitempty"`
}

func (*SecurityGroupRuleStatus) DeepCopy

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

func (*SecurityGroupRuleStatus) DeepCopyInto

func (in *SecurityGroupRuleStatus) DeepCopyInto(out *SecurityGroupRuleStatus)

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

type SecurityGroupSpec

type SecurityGroupSpec struct {
	// import refers to an existing OpenStack resource which will be imported instead of
	// creating a new one.
	// +optional
	Import *SecurityGroupImport `json:"import,omitempty"`

	// resource specifies the desired state of the resource.
	//
	// resource may not be specified if the management policy is `unmanaged`.
	//
	// resource must be specified if the management policy is `managed`.
	// +optional
	Resource *SecurityGroupResourceSpec `json:"resource,omitempty"`

	// managementPolicy defines how ORC will treat the object. Valid values are
	// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
	// ORC will import an existing resource, and will not apply updates to it or
	// delete it.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
	// +kubebuilder:default:=managed
	// +optional
	ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`

	// managedOptions specifies options which may be applied to managed objects.
	// +optional
	ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`

	// cloudCredentialsRef points to a secret containing OpenStack credentials
	// +required
	CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}

SecurityGroupSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"

func (*SecurityGroupSpec) DeepCopy

func (in *SecurityGroupSpec) DeepCopy() *SecurityGroupSpec

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

func (*SecurityGroupSpec) DeepCopyInto

func (in *SecurityGroupSpec) DeepCopyInto(out *SecurityGroupSpec)

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

type SecurityGroupStatus

type SecurityGroupStatus struct {
	// conditions represents the observed status of the object.
	// Known .status.conditions.type are: "Available", "Progressing"
	//
	// Available represents the availability of the OpenStack resource. If it is
	// true then the resource is ready for use.
	//
	// Progressing indicates whether the controller is still attempting to
	// reconcile the current state of the OpenStack resource to the desired
	// state. Progressing will be False either because the desired state has
	// been achieved, or because some terminal error prevents it from ever being
	// achieved and the controller is no longer attempting to reconcile. If
	// Progressing is True, an observer waiting on the resource should continue
	// to wait.
	//
	// +kubebuilder:validation:MaxItems:=32
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// id is the unique identifier of the OpenStack resource.
	// +optional
	ID *string `json:"id,omitempty"`

	// resource contains the observed state of the OpenStack resource.
	// +optional
	Resource *SecurityGroupResourceStatus `json:"resource,omitempty"`
}

SecurityGroupStatus defines the observed state of an ORC resource.

func (*SecurityGroupStatus) DeepCopy

func (in *SecurityGroupStatus) DeepCopy() *SecurityGroupStatus

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

func (*SecurityGroupStatus) DeepCopyInto

func (in *SecurityGroupStatus) DeepCopyInto(out *SecurityGroupStatus)

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

type Server

type Server struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec specifies the desired state of the resource.
	// +optional
	Spec ServerSpec `json:"spec,omitempty"`

	// status defines the observed state of the resource.
	// +optional
	Status ServerStatus `json:"status,omitempty"`
}

Server is the Schema for an ORC resource.

func (*Server) DeepCopy

func (in *Server) DeepCopy() *Server

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

func (*Server) DeepCopyInto

func (in *Server) DeepCopyInto(out *Server)

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

func (*Server) DeepCopyObject

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

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

func (*Server) GetCloudCredentialsRef

func (i *Server) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)

func (*Server) GetConditions

func (i *Server) GetConditions() []metav1.Condition

type ServerFilter

type ServerFilter struct {
	// name of the existing resource
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	FilterByServerTags `json:",inline"`
}

ServerFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1

func (*ServerFilter) DeepCopy

func (in *ServerFilter) DeepCopy() *ServerFilter

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

func (*ServerFilter) DeepCopyInto

func (in *ServerFilter) DeepCopyInto(out *ServerFilter)

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

type ServerImport

type ServerImport struct {
	// id contains the unique identifier of an existing OpenStack resource. Note
	// that when specifying an import by ID, the resource MUST already exist.
	// The ORC object will enter an error state if the resource does not exist.
	// +optional
	// +kubebuilder:validation:Format:=uuid
	ID *string `json:"id,omitempty"`

	// filter contains a resource query which is expected to return a single
	// result. The controller will continue to retry if filter returns no
	// results. If filter returns multiple results the controller will set an
	// error state and will not continue to retry.
	// +optional
	Filter *ServerFilter `json:"filter,omitempty"`
}

ServerImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*ServerImport) DeepCopy

func (in *ServerImport) DeepCopy() *ServerImport

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

func (*ServerImport) DeepCopyInto

func (in *ServerImport) DeepCopyInto(out *ServerImport)

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

type ServerList

type ServerList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the list metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// items contains a list of Server.
	// +required
	Items []Server `json:"items"`
}

ServerList contains a list of Server.

func (*ServerList) DeepCopy

func (in *ServerList) DeepCopy() *ServerList

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

func (*ServerList) DeepCopyInto

func (in *ServerList) DeepCopyInto(out *ServerList)

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

func (*ServerList) DeepCopyObject

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

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

func (*ServerList) GetItems

func (l *ServerList) GetItems() []Server

type ServerPortSpec

type ServerPortSpec struct {
	// portRef is a reference to a Port object. Server creation will wait for
	// this port to be created and available.
	// +optional
	PortRef *KubernetesNameRef `json:"portRef,omitempty"`
}

+kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*ServerPortSpec) DeepCopy

func (in *ServerPortSpec) DeepCopy() *ServerPortSpec

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

func (*ServerPortSpec) DeepCopyInto

func (in *ServerPortSpec) DeepCopyInto(out *ServerPortSpec)

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

type ServerResourceSpec

type ServerResourceSpec struct {
	// name will be the name of the created resource. If not specified, the
	// name of the ORC object will be used.
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// imageRef references the image to use for the server instance.
	// NOTE: This is not required in case of boot from volume.
	// +required
	ImageRef KubernetesNameRef `json:"imageRef"`

	// flavorRef references the flavor to use for the server instance.
	// +required
	FlavorRef KubernetesNameRef `json:"flavorRef"`

	// userData specifies data which will be made available to the server at
	// boot time, either via the metadata service or a config drive. It is
	// typically read by a configuration service such as cloud-init or ignition.
	// +optional
	UserData *UserDataSpec `json:"userData,omitempty"`

	// ports defines a list of ports which will be attached to the server.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=atomic
	// +required
	Ports []ServerPortSpec `json:"ports"`

	// tags is a list of tags which will be applied to the server.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	// +optional
	Tags []ServerTag `json:"tags,omitempty"`
}

ServerResourceSpec contains the desired state of a server +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ServerResourceSpec is immutable"

func (*ServerResourceSpec) DeepCopy

func (in *ServerResourceSpec) DeepCopy() *ServerResourceSpec

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

func (*ServerResourceSpec) DeepCopyInto

func (in *ServerResourceSpec) DeepCopyInto(out *ServerResourceSpec)

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

type ServerResourceStatus

type ServerResourceStatus struct {
	// name is the human-readable name of the resource. Might not be unique.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Name string `json:"name,omitempty"`

	// hostID is the host where the server is located in the cloud.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	HostID string `json:"hostID,omitempty"`

	// status contains the current operational status of the server,
	// such as IN_PROGRESS or ACTIVE.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Status string `json:"status,omitempty"`

	// imageID indicates the OS image used to deploy the server.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	ImageID string `json:"imageID,omitempty"`

	// tags is the list of tags on the resource.
	// +kubebuilder:validation:MaxItems:=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	Tags []string `json:"tags,omitempty"`
}

ServerResourceStatus represents the observed state of the resource.

func (*ServerResourceStatus) DeepCopy

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

func (*ServerResourceStatus) DeepCopyInto

func (in *ServerResourceStatus) DeepCopyInto(out *ServerResourceStatus)

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

type ServerSpec

type ServerSpec struct {
	// import refers to an existing OpenStack resource which will be imported instead of
	// creating a new one.
	// +optional
	Import *ServerImport `json:"import,omitempty"`

	// resource specifies the desired state of the resource.
	//
	// resource may not be specified if the management policy is `unmanaged`.
	//
	// resource must be specified if the management policy is `managed`.
	// +optional
	Resource *ServerResourceSpec `json:"resource,omitempty"`

	// managementPolicy defines how ORC will treat the object. Valid values are
	// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
	// ORC will import an existing resource, and will not apply updates to it or
	// delete it.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
	// +kubebuilder:default:=managed
	// +optional
	ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`

	// managedOptions specifies options which may be applied to managed objects.
	// +optional
	ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`

	// cloudCredentialsRef points to a secret containing OpenStack credentials
	// +required
	CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}

ServerSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"

func (*ServerSpec) DeepCopy

func (in *ServerSpec) DeepCopy() *ServerSpec

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

func (*ServerSpec) DeepCopyInto

func (in *ServerSpec) DeepCopyInto(out *ServerSpec)

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

type ServerStatus

type ServerStatus struct {
	// conditions represents the observed status of the object.
	// Known .status.conditions.type are: "Available", "Progressing"
	//
	// Available represents the availability of the OpenStack resource. If it is
	// true then the resource is ready for use.
	//
	// Progressing indicates whether the controller is still attempting to
	// reconcile the current state of the OpenStack resource to the desired
	// state. Progressing will be False either because the desired state has
	// been achieved, or because some terminal error prevents it from ever being
	// achieved and the controller is no longer attempting to reconcile. If
	// Progressing is True, an observer waiting on the resource should continue
	// to wait.
	//
	// +kubebuilder:validation:MaxItems:=32
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// id is the unique identifier of the OpenStack resource.
	// +optional
	ID *string `json:"id,omitempty"`

	// resource contains the observed state of the OpenStack resource.
	// +optional
	Resource *ServerResourceStatus `json:"resource,omitempty"`
}

ServerStatus defines the observed state of an ORC resource.

func (*ServerStatus) DeepCopy

func (in *ServerStatus) DeepCopy() *ServerStatus

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

func (*ServerStatus) DeepCopyInto

func (in *ServerStatus) DeepCopyInto(out *ServerStatus)

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

type ServerTag

type ServerTag string

+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=80

type Subnet

type Subnet struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec specifies the desired state of the resource.
	// +optional
	Spec SubnetSpec `json:"spec,omitempty"`

	// status defines the observed state of the resource.
	// +optional
	Status SubnetStatus `json:"status,omitempty"`
}

Subnet is the Schema for an ORC resource.

func (*Subnet) DeepCopy

func (in *Subnet) DeepCopy() *Subnet

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

func (*Subnet) DeepCopyInto

func (in *Subnet) DeepCopyInto(out *Subnet)

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

func (*Subnet) DeepCopyObject

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

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

func (*Subnet) GetCloudCredentialsRef

func (i *Subnet) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)

func (*Subnet) GetConditions

func (i *Subnet) GetConditions() []metav1.Condition

type SubnetFilter

type SubnetFilter struct {
	// name of the existing resource
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// description of the existing resource
	// +optional
	Description *NeutronDescription `json:"description,omitempty"`

	// ipVersion of the existing resource
	// +optional
	IPVersion *IPVersion `json:"ipVersion,omitempty"`

	// gatewayIP is the IP address of the gateway of the existing resource
	// +optional
	GatewayIP *IPvAny `json:"gatewayIP,omitempty"`

	// cidr of the existing resource
	// +optional
	CIDR *CIDR `json:"cidr,omitempty"`

	// ipv6 options of the existing resource
	// +optional
	IPv6 *IPv6Options `json:"ipv6,omitempty"`

	// networkRef is a reference to the ORC Network which this subnet is associated with.
	// +optional
	NetworkRef KubernetesNameRef `json:"networkRef"`

	FilterByNeutronTags `json:",inline"`
}

SubnetFilter specifies a filter to select a subnet. At least one parameter must be specified. +kubebuilder:validation:MinProperties:=1

func (*SubnetFilter) DeepCopy

func (in *SubnetFilter) DeepCopy() *SubnetFilter

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

func (*SubnetFilter) DeepCopyInto

func (in *SubnetFilter) DeepCopyInto(out *SubnetFilter)

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

type SubnetGateway

type SubnetGateway struct {
	// type specifies how the default gateway will be created. `Automatic`
	// specifies that neutron will automatically add a default gateway. This is
	// also the default if no Gateway is specified. `None` specifies that the
	// subnet will not have a default gateway. `IP` specifies that the subnet
	// will use a specific address as the default gateway, which must be
	// specified in `IP`.
	// +kubebuilder:validation:Enum:=None;Automatic;IP
	// +required
	Type SubnetGatewayType `json:"type"`

	// ip is the IP address of the default gateway, which must be specified if
	// Type is `IP`. It must be a valid IP address, either IPv4 or IPv6,
	// matching the IPVersion in SubnetResourceSpec.
	// +optional
	IP *IPvAny `json:"ip,omitempty"`
}

func (*SubnetGateway) DeepCopy

func (in *SubnetGateway) DeepCopy() *SubnetGateway

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

func (*SubnetGateway) DeepCopyInto

func (in *SubnetGateway) DeepCopyInto(out *SubnetGateway)

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

type SubnetGatewayType

type SubnetGatewayType string

type SubnetImport

type SubnetImport struct {
	// id contains the unique identifier of an existing OpenStack resource. Note
	// that when specifying an import by ID, the resource MUST already exist.
	// The ORC object will enter an error state if the resource does not exist.
	// +optional
	// +kubebuilder:validation:Format:=uuid
	ID *string `json:"id,omitempty"`

	// filter contains a resource query which is expected to return a single
	// result. The controller will continue to retry if filter returns no
	// results. If filter returns multiple results the controller will set an
	// error state and will not continue to retry.
	// +optional
	Filter *SubnetFilter `json:"filter,omitempty"`
}

SubnetImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*SubnetImport) DeepCopy

func (in *SubnetImport) DeepCopy() *SubnetImport

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

func (*SubnetImport) DeepCopyInto

func (in *SubnetImport) DeepCopyInto(out *SubnetImport)

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

type SubnetList

type SubnetList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata contains the list metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// items contains a list of Subnet.
	// +required
	Items []Subnet `json:"items"`
}

SubnetList contains a list of Subnet.

func (*SubnetList) DeepCopy

func (in *SubnetList) DeepCopy() *SubnetList

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

func (*SubnetList) DeepCopyInto

func (in *SubnetList) DeepCopyInto(out *SubnetList)

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

func (*SubnetList) DeepCopyObject

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

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

func (*SubnetList) GetItems

func (l *SubnetList) GetItems() []Subnet

type SubnetResourceSpec

type SubnetResourceSpec struct {
	// name is a human-readable name of the subnet. If not set, the object's name will be used.
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +optional
	Description *NeutronDescription `json:"description,omitempty"`

	// networkRef is a reference to the ORC Network which this subnet is associated with.
	// +required
	NetworkRef KubernetesNameRef `json:"networkRef"`

	// tags is a list of tags which will be applied to the subnet.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	// +optional
	Tags []NeutronTag `json:"tags,omitempty"`

	// ipVersion is the IP version for the subnet.
	// +required
	IPVersion IPVersion `json:"ipVersion"`

	// cidr is the address CIDR of the subnet. It must match the IP version specified in IPVersion.
	// +required
	CIDR CIDR `json:"cidr"`

	// allocationPools are IP Address pools that will be available for DHCP. IP
	// addresses must be in CIDR.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=atomic
	// +optional
	AllocationPools []AllocationPool `json:"allocationPools,omitempty"`

	// gateway specifies the default gateway of the subnet. If not specified,
	// neutron will add one automatically. To disable this behaviour, specify a
	// gateway with a type of None.
	// +optional
	Gateway *SubnetGateway `json:"gateway,omitempty"`

	// enableDHCP will either enable to disable the DHCP service.
	// +optional
	EnableDHCP *bool `json:"enableDHCP,omitempty"`

	// dnsNameservers are the nameservers to be set via DHCP.
	// +kubebuilder:validation:MaxItems:=16
	// +listType=set
	// +optional
	DNSNameservers []IPvAny `json:"dnsNameservers,omitempty"`

	// dnsPublishFixedIP will either enable or disable the publication of
	// fixed IPs to the DNS. Defaults to false.
	// +optional
	DNSPublishFixedIP *bool `json:"dnsPublishFixedIP,omitempty"`

	// hostRoutes are any static host routes to be set via DHCP.
	// +kubebuilder:validation:MaxItems:=256
	// +listType=atomic
	// +optional
	HostRoutes []HostRoute `json:"hostRoutes,omitempty"`

	// ipv6 contains IPv6-specific options. It may only be set if IPVersion is 6.
	// +optional
	IPv6 *IPv6Options `json:"ipv6,omitempty"`

	// routerRef specifies a router to attach the subnet to
	// +optional
	RouterRef *KubernetesNameRef `json:"routerRef,omitempty"`
}

+kubebuilder:validation:XValidation:rule="self == oldSelf",message="SubnetResourceSpec is immutable"

func (*SubnetResourceSpec) DeepCopy

func (in *SubnetResourceSpec) DeepCopy() *SubnetResourceSpec

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

func (*SubnetResourceSpec) DeepCopyInto

func (in *SubnetResourceSpec) DeepCopyInto(out *SubnetResourceSpec)

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

type SubnetResourceStatus

type SubnetResourceStatus struct {
	// name is the human-readable name of the subnet. Might not be unique.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Name string `json:"name,omitempty"`

	// description is a human-readable description for the resource.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	Description string `json:"description,omitempty"`

	// ipVersion specifies IP version, either `4' or `6'.
	// +optional
	IPVersion *int32 `json:"ipVersion,omitempty"`

	// cidr representing IP range for this subnet, based on IP version.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	CIDR string `json:"cidr,omitempty"`

	// gatewayIP is the default gateway used by devices in this subnet, if any.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	GatewayIP string `json:"gatewayIP,omitempty"`

	// dnsNameservers is a list of name servers used by hosts in this subnet.
	// +kubebuilder:validation:MaxItems:=16
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	DNSNameservers []string `json:"dnsNameservers,omitempty"`

	// dnsPublishFixedIP specifies whether the fixed IP addresses are published to the DNS.
	// +optional
	DNSPublishFixedIP *bool `json:"dnsPublishFixedIP,omitempty"`

	// allocationPools is a list of sub-ranges within CIDR available for dynamic
	// allocation to ports.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=atomic
	// +optional
	AllocationPools []AllocationPoolStatus `json:"allocationPools,omitempty"`

	// hostRoutes is a list of routes that should be used by devices with IPs
	// from this subnet (not including local subnet route).
	// +kubebuilder:validation:MaxItems:=256
	// +listType=atomic
	// +optional
	HostRoutes []HostRouteStatus `json:"hostRoutes,omitempty"`

	// enableDHCP specifies whether DHCP is enabled for this subnet or not.
	// +optional
	EnableDHCP *bool `json:"enableDHCP,omitempty"`

	// networkID is the ID of the network to which the subnet belongs.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	NetworkID string `json:"networkID,omitempty"`

	// projectID is the project owner of the subnet.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	ProjectID string `json:"projectID,omitempty"`

	// ipv6AddressMode specifies mechanisms for assigning IPv6 IP addresses.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	IPv6AddressMode string `json:"ipv6AddressMode,omitempty"`

	// ipv6RAMode is the IPv6 router advertisement mode. It specifies
	// whether the networking service should transmit ICMPv6 packets.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	IPv6RAMode string `json:"ipv6RAMode,omitempty"`

	// subnetPoolID is the id of the subnet pool associated with the subnet.
	// +kubebuilder:validation:MaxLength=1024
	// +optional
	SubnetPoolID string `json:"subnetPoolID,omitempty"`

	// tags optionally set via extensions/attributestags
	// +kubebuilder:validation:MaxItems:=32
	// +kubebuilder:validation:items:MaxLength=1024
	// +listType=atomic
	// +optional
	Tags []string `json:"tags,omitempty"`

	NeutronStatusMetadata `json:",inline"`
}

func (*SubnetResourceStatus) DeepCopy

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

func (*SubnetResourceStatus) DeepCopyInto

func (in *SubnetResourceStatus) DeepCopyInto(out *SubnetResourceStatus)

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

type SubnetSpec

type SubnetSpec struct {
	// import refers to an existing OpenStack resource which will be imported instead of
	// creating a new one.
	// +optional
	Import *SubnetImport `json:"import,omitempty"`

	// resource specifies the desired state of the resource.
	//
	// resource may not be specified if the management policy is `unmanaged`.
	//
	// resource must be specified if the management policy is `managed`.
	// +optional
	Resource *SubnetResourceSpec `json:"resource,omitempty"`

	// managementPolicy defines how ORC will treat the object. Valid values are
	// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
	// ORC will import an existing resource, and will not apply updates to it or
	// delete it.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
	// +kubebuilder:default:=managed
	// +optional
	ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`

	// managedOptions specifies options which may be applied to managed objects.
	// +optional
	ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`

	// cloudCredentialsRef points to a secret containing OpenStack credentials
	// +required
	CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}

SubnetSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"

func (*SubnetSpec) DeepCopy

func (in *SubnetSpec) DeepCopy() *SubnetSpec

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

func (*SubnetSpec) DeepCopyInto

func (in *SubnetSpec) DeepCopyInto(out *SubnetSpec)

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

type SubnetStatus

type SubnetStatus struct {
	// conditions represents the observed status of the object.
	// Known .status.conditions.type are: "Available", "Progressing"
	//
	// Available represents the availability of the OpenStack resource. If it is
	// true then the resource is ready for use.
	//
	// Progressing indicates whether the controller is still attempting to
	// reconcile the current state of the OpenStack resource to the desired
	// state. Progressing will be False either because the desired state has
	// been achieved, or because some terminal error prevents it from ever being
	// achieved and the controller is no longer attempting to reconcile. If
	// Progressing is True, an observer waiting on the resource should continue
	// to wait.
	//
	// +kubebuilder:validation:MaxItems:=32
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// id is the unique identifier of the OpenStack resource.
	// +optional
	ID *string `json:"id,omitempty"`

	// resource contains the observed state of the OpenStack resource.
	// +optional
	Resource *SubnetResourceStatus `json:"resource,omitempty"`
}

SubnetStatus defines the observed state of an ORC resource.

func (*SubnetStatus) DeepCopy

func (in *SubnetStatus) DeepCopy() *SubnetStatus

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

func (*SubnetStatus) DeepCopyInto

func (in *SubnetStatus) DeepCopyInto(out *SubnetStatus)

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

type UUID

type UUID string

+kubebuilder:validation:Format:=uuid +kubebuilder:validation:MaxLength:=36

type UserDataSpec

type UserDataSpec struct {
	// secretRef is a reference to a Secret containing the user data for this server.
	// +optional
	SecretRef *KubernetesNameRef `json:"secretRef,omitempty"`
}

+kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1

func (*UserDataSpec) DeepCopy

func (in *UserDataSpec) DeepCopy() *UserDataSpec

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

func (*UserDataSpec) DeepCopyInto

func (in *UserDataSpec) DeepCopyInto(out *UserDataSpec)

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