v1alpha1

package
v0.0.0-...-2294006 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2024 License: Apache-2.0 Imports: 7 Imported by: 6

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

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

Index

Constants

View Source
const (

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

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

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

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

	// The resource is ready for use.
	OpenStackConditionReasonSuccess = "Success"
)
View Source
const (
	OpenStackConditionAvailable   = "Available"
	OpenStackConditionProgressing = "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        *IPvAny        `json:"ip,omitempty"`
	SubnetRef *OpenStackName `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 {
	// +required
	Start IPvAny `json:"start"`

	// +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 string `json:"start"`
	End   string `json:"end"`
}

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  *IPvAny `json:"ip"`
	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  string `json:"ip"`
	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:=128

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.
	// +kubebuilder:validation: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.
	// +kubebuilder:validation: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:=265

type Ethertype

type Ethertype string

+kubebuilder:validation:Enum:=IPv4;IPv6 +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=16

type ExternalGateway

type ExternalGateway struct {
	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 string `json:"networkID"`
}

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 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 FixedIPStatus

type FixedIPStatus struct {
	IP       string `json:"ip"`
	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"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FlavorSpec   `json:"spec,omitempty"`
	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.
	// +optional
	RAM *int32 `json:"ram,omitempty"`

	// Disk is the size of the root disk in GiB.
	// +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"`
	metav1.ListMeta `json:"metadata,omitempty"`
	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"`

	// +optional
	Description *OpenStackDescription `json:"description,omitempty"`

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

	// Vcpus is the number of vcpus for the flavor.
	// +kubebuilder:validation:Minimum=1
	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.
	Disk int32 `json:"disk,omitempty"`

	// 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.
	Swap int32 `json:"swap,omitempty"`

	// IsPublic flags a flavor as being available to all projects or not.
	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.
	Ephemeral int32 `json:"ephemeral,omitempty"`
}

NetworkResourceSpec contains the desired state of a network

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 {
	// Human-readable name for the flavor. Might not be unique.
	// +optional
	Name string `json:"name,omitempty"`

	// Description is a human-readable description for the resource.
	// +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
	// +kubebuilder:validation: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.
	//
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	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 CIDR   `json:"destination"`
	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 string `json:"destination"`
	NextHop     string `json:"nextHop"`
}

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 int8

+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.
	AddressMode *IPv6AddressMode `json:"addressMode,omitempty"`

	// RAMode specifies the IPv6 router advertisement mode. It specifies whether
	// the networking service should transmit ICMPv6 packets.
	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"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ImageSpec   `json:"spec,omitempty"`
	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

const (
	ImageContainerFormatAKI    ImageContainerFormat = "aki"
	ImageContainerFormatAMI    ImageContainerFormat = "ami"
	ImageContainerFormatARI    ImageContainerFormat = "ari"
	ImageContainerFormatBare   ImageContainerFormat = "bare"
	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, 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.
	// +kubebuilder:validation: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.
	// +kubebuilder:validation:Required
	Download *ImageContentSourceDownload `json:"download,omitempty"`
}

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: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
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=1000
	Name *string `json:"name,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.
	// +kubebuilder:validation: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]+$`
	// +kubebuilder:validation: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"`
	metav1.ListMeta `json:"metadata,omitempty"`
	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 {
	// MinDisk is the minimum amount of disk space in GB that is required to boot the image
	// +kubebuilder:validation:Minimum:=1
	// +optional
	MinDiskGB *int `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 *int `json:"minMemoryMB,omitempty"`

	// Hardware is a set of properties which control the virtual hardware
	// created by Nova.
	// +optional
	Hardware *ImagePropertiesHardware `json:"hardware,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
	// +optional
	CPUSockets *int `json:"cpuSockets,omitempty" glance:"hw_cpu_sockets"`

	// CPUCores is the preferred number of cores to expose to the guest
	// +optional
	CPUCores *int `json:"cpuCores,omitempty" glance:"hw_cpu_cores"`

	// CPUThreads is the preferred number of threads to expose to the guest
	// +optional
	CPUThreads *int `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"`
}

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 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.
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=1000
	// +optional
	Name string `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.
	// +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"

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 {
	// Status is the image status as reported by Glance
	// +optional
	Status *string `json:"status,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"`
}

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
	// +kubebuilder:validation: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.
	//
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	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 *int `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 KubernetesNameRef

type KubernetesNameRef string

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

type MAC

type MAC string

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

type MTU

type MTU int32

+kubebuilder:validation:Minimum:=68

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"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   NetworkSpec   `json:"spec,omitempty"`
	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 *OpenStackDescription `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"`

	// ProjectID specifies the ID of the project which owns the network.
	// +optional
	ProjectID *UUID `json:"projectID,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"`
	metav1.ListMeta `json:"metadata,omitempty"`
	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"`

	// +optional
	Description *OpenStackDescription `json:"description,omitempty"`

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

	// +optional
	AdminStateUp *bool `json:"adminStateUp,omitempty"`

	// +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.
	// +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.
	// +listType=set
	// +optional
	AvailabilityZoneHints []AvailabilityZoneHint `json:"availabilityZoneHints,omitempty"`
}

NetworkResourceSpec contains the desired state of a network

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 {
	// Human-readable name for the network. Might not be unique.
	// +optional
	Name string `json:"name,omitempty"`

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

	// ProjectID is the project owner of the network.
	// +optional
	ProjectID string `json:"projectID,omitempty"`

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

	// Tags is the list of tags on the resource.
	// +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).
	AdminStateUp bool `json:"adminStateUp"`

	// AvailabilityZoneHints is the availability zone candidate for the
	// network.
	// +listType=atomic
	// +optional
	AvailabilityZoneHints []string `json:"availabilityZoneHints,omitempty"`

	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"`

	// +optional
	Provider *ProviderProperties `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"`

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

	// Subnets associated with this network.
	// +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
	// +kubebuilder:validation: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.
	//
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	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 NeutronStatusMetadata

type NeutronStatusMetadata struct {
	CreatedAt *metav1.Time `json:"createdAt,omitempty"`
	UpdatedAt *metav1.Time `json:"updatedAt,omitempty"`

	// RevisionNumber optionally set via extensions/standard-attr-revisions
	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:=60

type ORCNameRef

type ORCNameRef string

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

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 OpenStackDescription

type OpenStackDescription string

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

type OpenStackName

type OpenStackName string

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

type PhysicalNetwork

type PhysicalNetwork string

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

type Port

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

	Spec   PortSpec   `json:"spec,omitempty"`
	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        *OpenStackName        `json:"name,omitempty"`
	Description *OpenStackDescription `json:"description,omitempty"`
	ProjectID   *UUID                 `json:"projectID,omitempty"`

	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"`
	metav1.ListMeta `json:"metadata,omitempty"`
	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 PortRefs

type PortRefs struct {
	// NetworkRef is a reference to the ORC Network which this port is associated with.
	// +required
	NetworkRef ORCNameRef `json:"networkRef"`
}

func (*PortRefs) DeepCopy

func (in *PortRefs) DeepCopy() *PortRefs

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

func (*PortRefs) DeepCopyInto

func (in *PortRefs) DeepCopyInto(out *PortRefs)

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 of the port.
	// +optional
	Description *OpenStackDescription `json:"description,omitempty"`

	// 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"`

	// ProjectID is the unique ID of the project which owns the Port. Only
	// administrative users can specify a project UUID other than their own.
	// +optional
	ProjectID *UUID `json:"projectID,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.
	// +listType=atomic
	SecurityGroupRefs []OpenStackName `json:"securityGroupRefs,omitempty"`
}

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.
	// +optional
	Name string `json:"name,omitempty"`

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

	// ProjectID is the project owner of the resource.
	// +optional
	ProjectID string `json:"projectID,omitempty"`

	// Status indicates the current status of the resource.
	// +optional
	Status string `json:"status,omitempty"`

	// Tags is the list of tags on the resource.
	// +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.
	// +optional
	MACAddress string `json:"macAddress,omitempty"`

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

	// DeviceOwner is the entity type that uses this port.
	// +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.
	// +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.
	// +listType=atomic
	// +optional
	FixedIPs []FixedIPStatus `json:"fixedIPs,omitempty"`

	// SecurityGroups contains the IDs of security groups applied to the port.
	// +listType=atomic
	// +optional
	SecurityGroups []string `json:"securityGroups,omitempty"`

	// PropagateUplinkStatus represents the uplink status propagation of
	// the port.
	// +optional
	PropagateUplinkStatus bool `json:"propagateUplinkStatus,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 PortSpec

type PortSpec struct {
	PortRefs `json:",inline"`

	// 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
	// +kubebuilder:validation: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.
	//
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	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 Protocol

type Protocol string

+kubebuilder:validation:Pattern:=\b([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\b|any|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 +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=16

type ProviderNetworkType

type ProviderNetworkType string

+kubebuilder:validation:Enum:=flat;vlan;vxlan;gre +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=16

type ProviderProperties

type ProviderProperties 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.
	NetworkType *ProviderNetworkType `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.
	PhysicalNetwork *PhysicalNetwork `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.
	SegmentationID *int32 `json:"segmentationID,omitempty"`
}

ProviderProperties contains provider-network properties. Currently only available in status.

func (*ProviderProperties) DeepCopy

func (in *ProviderProperties) DeepCopy() *ProviderProperties

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

func (*ProviderProperties) DeepCopyInto

func (in *ProviderProperties) DeepCopyInto(out *ProviderProperties)

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"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RouterSpec   `json:"spec,omitempty"`
	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        OpenStackName        `json:"name,omitempty"`
	Description OpenStackDescription `json:"description,omitempty"`
	ProjectID   UUID                 `json:"projectID,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"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RouterInterfaceSpec   `json:"spec,omitempty"`
	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"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []RouterInterface `json:"items"`
}

RouterInterfaceList contains a list of Router.

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.

type RouterInterfaceSpec

type RouterInterfaceSpec struct {
	// +required
	// +unionDiscriminator
	Type RouterInterfaceType `json:"type"`

	// +required
	RouterRef ORCNameRef `json:"routerRef"`

	// +unionMember,optional
	SubnetRef *ORCNameRef `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"

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.
	//
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// ID is the unique identifier of the port created for the router interface
	// +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"`
	metav1.ListMeta `json:"metadata,omitempty"`
	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 the human-readable name of the subnet. Might not be unique.
	// +optional
	Name *OpenStackName `json:"name,omitempty"`

	// Description for the subnet.
	// +optional
	Description OpenStackDescription `json:"description,omitempty"`

	// Tags optionally set via extensions/attributestags
	// +listType=set
	Tags []NeutronTag `json:"tags,omitempty"`

	AdminStateUp *bool `json:"adminStateUp,omitempty"`

	// +listType=atomic
	// +optional
	ExternalGateways []ExternalGateway `json:"externalGateways,omitempty"`

	Distributed *bool `json:"distributed,omitempty"`

	// +listType=set
	// +optional
	AvailabilityZoneHints []AvailabilityZoneHint `json:"availabilityZoneHints,omitempty"`

	NeutronStatusMetadata `json:",inline"`
}

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.
	// +optional
	Name string `json:"name,omitempty"`

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

	// ProjectID is the project owner of the resource.
	// +optional
	ProjectID string `json:"projectID,omitempty"`

	// Status indicates the current status of the resource.
	// +optional
	Status string `json:"status,omitempty"`

	// Tags is the list of tags on the resource.
	// +listType=atomic
	// +optional
	Tags []string `json:"tags,omitempty"`

	AdminStateUp bool `json:"adminStateUp"`

	// +listType=atomic
	// +optional
	ExternalGateways []ExternalGatewayStatus `json:"externalGateways,omitempty"`

	// +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
	// +kubebuilder:validation: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.
	//
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	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 +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=16

type SecurityGroup

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

	Spec   SecurityGroupSpec   `json:"spec,omitempty"`
	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 *OpenStackDescription `json:"description,omitempty"`

	// ProjectID specifies the ID of the project which owns the security group.
	// +optional
	ProjectID *UUID `json:"projectID,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"`
	metav1.ListMeta `json:"metadata,omitempty"`
	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
	Name *OpenStackName `json:"name,omitempty"`

	// +optional
	Description *OpenStackDescription `json:"description,omitempty"`

	// Tags is a list of tags which will be applied to the security group.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	Tags []NeutronTag `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
	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 {
	// Human-readable name for the security group. Might not be unique.
	// +optional
	Name string `json:"name,omitempty"`

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

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

	// Tags is the list of tags on the resource.
	// +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.
	// +listType=atomic
	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 of the existing resource
	// +optional
	Description *OpenStackDescription `json:"description,omitempty"`

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

	// RemoteGroupID
	RemoteGroupID *UUID `json:"remoteGroupID,omitempty"`

	// RemoteIPPrefix
	RemoteIPPrefix *CIDR `json:"remoteIPPrefix,omitempty"`

	// Protocol is the IP protocol can be represented by a string, an
	// integer, or null
	Protocol *Protocol `json:"protocol,omitempty"`

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

	PortRangeMin *int32 `json:"portRangeMin,omitempty"`
	PortRangeMax *int32 `json:"portRangeMax,omitempty"`
}

SecurityGroupRule defines a Security Group rule +kubebuilder:validation:MinProperties:=1

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.
	ID string `json:"id,omitempty"`

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

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

	// RemoteGroupID
	RemoteGroupID string `json:"remoteGroupID,omitempty"`

	// RemoteIPPrefix
	RemoteIPPrefix string `json:"remoteIPPrefix,omitempty"`

	// Protocol is the IP protocol can be represented by a string, an
	// integer, or null
	Protocol string `json:"protocol,omitempty"`

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

	PortRangeMin int `json:"portRangeMin,omitempty"`
	PortRangeMax int `json:"portRangeMax,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
	// +kubebuilder:validation: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.
	//
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	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"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ServerSpec   `json:"spec,omitempty"`
	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"`
}

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"`
	metav1.ListMeta `json:"metadata,omitempty"`
	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.
	PortRef *ORCNameRef `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 ORCNameRef `json:"imageRef"`

	FlavorRef ORCNameRef `json:"flavorRef"`

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

ServerResourceSpec contains the desired state of a server

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.
	// +optional
	Name string `json:"name,omitempty"`

	// HostID is the host where the server is located in the cloud.
	HostID string `json:"hostID,omitempty"`

	// Status contains the current operational status of the server,
	// such as IN_PROGRESS or ACTIVE.
	Status string `json:"status,omitempty"`

	// AccessIPv4 contains the IPv4 addresses of the server, suitable for
	// remote access for administration.
	AccessIPv4 string `json:"accessIPv4,omitempty"`

	// AccessIPv6 contains the IPv6 addresses of the server, suitable for
	// remote access for administration.
	AccessIPv6 string `json:"accessIPv6,omitempty"`

	// ImageID indicates the OS image used to deploy the server.
	ImageID string `json:"imageID,omitempty"`

	// KeyName indicates which public key was injected into the server on launch.
	KeyName string `json:"keyName,omitempty"`

	// SecurityGroups includes the security groups that this instance has
	// applied to it.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	SecurityGroups []string `json:"securityGroups,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
	// +kubebuilder:validation: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.
	//
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	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 Subnet

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

	Spec   SubnetSpec   `json:"spec,omitempty"`
	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        *OpenStackName        `json:"name,omitempty"`
	Description *OpenStackDescription `json:"description,omitempty"`
	ProjectID   *UUID                 `json:"projectID,omitempty"`
	IPVersion   *IPVersion            `json:"ipVersion,omitempty"`
	GatewayIP   *IPvAny               `json:"gatewayIP,omitempty"`
	CIDR        *CIDR                 `json:"cidr,omitempty"`
	IPv6        *IPv6Options          `json:"ipv6,omitempty"`

	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"`
	metav1.ListMeta `json:"metadata,omitempty"`
	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 SubnetRefs

type SubnetRefs struct {
	// NetworkRef is a reference to the ORC Network which this subnet is associated with.
	// +required
	NetworkRef ORCNameRef `json:"networkRef"`
}

func (*SubnetRefs) DeepCopy

func (in *SubnetRefs) DeepCopy() *SubnetRefs

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

func (*SubnetRefs) DeepCopyInto

func (in *SubnetRefs) DeepCopyInto(out *SubnetRefs)

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

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 of the subnet.
	// +optional
	Description *OpenStackDescription `json:"description,omitempty"`

	// Tags is a list of tags which will be applied to the subnet.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=set
	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"`

	// ProjectID is the unique ID of the project which owns the Subnet. Only
	// administrative users can specify a project UUID other than their own.
	// +optional
	ProjectID *UUID `json:"projectID,omitempty"`

	// AllocationPools are IP Address pools that will be available for DHCP. IP
	// addresses must be in CIDR.
	// +kubebuilder:validation:MaxItems:=32
	// +listType=atomic
	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
	DNSNameservers []IPvAny `json:"dnsNameservers,omitempty"`

	// DNSPublishFixedIP will either enable or disable the publication of fixed IPs to the DNS
	// +optional
	DNSPublishFixedIP *bool `json:"dnsPublishFixedIP,omitempty"`

	// HostRoutes are any static host routes to be set via DHCP.
	// +kubebuilder:validation:MaxItems:=256
	// +listType=atomic
	HostRoutes []HostRoute `json:"hostRoutes,omitempty"`

	// IPv6 contains IPv6-specific options. It may only be set if IPVersion is 6.
	IPv6 *IPv6Options `json:"ipv6,omitempty"`

	// RouterRef specifies a router to attach the subnet to
	// +optional
	RouterRef *ORCNameRef `json:"routerRef,omitempty"`
}

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.
	Name string `json:"name"`

	// Description for the subnet.
	// +optional
	Description string `json:"description,omitempty"`

	// IPVersion specifies IP version, either `4' or `6'.
	IPVersion int `json:"ipVersion"`

	// CIDR representing IP range for this subnet, based on IP version.
	CIDR string `json:"cidr"`

	// GatewayIP is the default gateway used by devices in this subnet, if any.
	// +optional
	GatewayIP string `json:"gatewayIP,omitempty"`

	// DNSNameservers is a list of name servers used by hosts in this subnet.
	// +listType=atomic
	DNSNameservers []string `json:"dnsNameservers,omitempty"`

	// DNSPublishFixedIP specifies whether the fixed IP addresses are published to the DNS.
	DNSPublishFixedIP bool `json:"dnsPublishFixedIP,omitempty"`

	// AllocationPools is a list of sub-ranges within CIDR available for dynamic
	// allocation to ports.
	// +listType=atomic
	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).
	// +listType=atomic
	HostRoutes []HostRouteStatus `json:"hostRoutes,omitempty"`

	// Specifies whether DHCP is enabled for this subnet or not.
	EnableDHCP bool `json:"enableDHCP"`

	// ProjectID is the project owner of the subnet.
	ProjectID string `json:"projectID"`

	// The IPv6 address modes specifies mechanisms for assigning IPv6 IP addresses.
	// +optional
	IPv6AddressMode string `json:"ipv6AddressMode,omitempty"`

	// The IPv6 router advertisement specifies whether the networking service
	// should transmit ICMPv6 packets.
	// +optional
	IPv6RAMode string `json:"ipv6RAMode,omitempty"`

	// SubnetPoolID is the id of the subnet pool associated with the subnet.
	// +optional
	SubnetPoolID string `json:"subnetPoolID,omitempty"`

	// Tags optionally set via extensions/attributestags
	// +listType=atomic
	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 {
	SubnetRefs `json:",inline"`

	// 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
	// +kubebuilder:validation: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.
	//
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	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

Jump to

Keyboard shortcuts

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