Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the openstack v1alpha1 API group +kubebuilder:object:generate=true +groupName=openstack.k-orc.cloud +k8s:openapi-gen=true
+kubebuilder:object:generate=true +groupName=openstack.k-orc.cloud +k8s:openapi-gen=true
Index ¶
- Constants
- Variables
- func GetTerminalError(obj ObjectWithConditions) error
- func IsAvailable(obj ObjectWithConditions) bool
- func IsConditionReasonTerminal(reason string) bool
- func IsReconciliationComplete(obj ObjectWithConditions) bool
- func Resource(resource string) schema.GroupResource
- type Address
- type AllocationPool
- type AllocationPoolStatus
- type AllowedAddressPair
- type AllowedAddressPairStatus
- type AvailabilityZoneHint
- type CIDR
- type CloudCredentialsRefProvider
- type CloudCredentialsReference
- type DNSDomain
- type Domain
- type DomainFilter
- type DomainImport
- type DomainList
- type DomainResourceSpec
- type DomainResourceStatus
- type DomainSpec
- type DomainStatus
- type Ethertype
- type ExternalGateway
- type ExternalGatewayStatus
- type FilterByKeystoneTags
- type FilterByNeutronTags
- type FilterByServerTags
- type FixedIPStatus
- type Flavor
- type FlavorFilter
- type FlavorImport
- type FlavorList
- type FlavorResourceSpec
- type FlavorResourceStatus
- type FlavorSpec
- type FlavorStatus
- type FloatingIP
- type FloatingIPFilter
- type FloatingIPImport
- type FloatingIPList
- type FloatingIPResourceSpec
- type FloatingIPResourceStatus
- type FloatingIPSpec
- type FloatingIPStatus
- type Group
- type GroupFilter
- type GroupImport
- type GroupList
- type GroupResourceSpec
- type GroupResourceStatus
- type GroupSpec
- type GroupStatus
- type HostRoute
- type HostRouteStatus
- type IPVersion
- type IPv6AddressMode
- type IPv6Options
- type IPv6RAMode
- type IPvAny
- type Image
- type ImageCompression
- type ImageContainerFormat
- type ImageContent
- type ImageContentSourceDownload
- type ImageDiskFormat
- type ImageFilter
- type ImageHWBus
- type ImageHash
- type ImageHashAlgorithm
- type ImageImport
- type ImageList
- type ImageProperties
- type ImagePropertiesHardware
- type ImagePropertiesOperatingSystem
- type ImageResourceSpec
- type ImageResourceStatus
- type ImageSpec
- type ImageStatus
- type ImageStatusExtra
- type ImageTag
- type ImageVisibility
- type KeyPair
- type KeyPairFilter
- type KeyPairImport
- type KeyPairList
- type KeyPairResourceSpec
- type KeyPairResourceStatus
- type KeyPairSpec
- type KeyPairStatus
- type KeystoneName
- type KeystoneTag
- type KubernetesNameRef
- type MAC
- type MTU
- type ManagedOptions
- type ManagementPolicy
- type Network
- type NetworkFilter
- type NetworkImport
- type NetworkList
- type NetworkResourceSpec
- type NetworkResourceStatus
- type NetworkSpec
- type NetworkStatus
- type NeutronDescription
- type NeutronStatusMetadata
- type NeutronTag
- type ObjectWithConditions
- type OnDelete
- type OpenStackName
- type Port
- type PortFilter
- type PortImport
- type PortList
- type PortNumber
- type PortRangeSpec
- type PortRangeStatus
- type PortResourceSpec
- type PortResourceStatus
- type PortSecurityState
- type PortSpec
- type PortStatus
- type Project
- type ProjectFilter
- type ProjectImport
- type ProjectList
- type ProjectResourceSpec
- type ProjectResourceStatus
- type ProjectSpec
- type ProjectStatus
- type Protocol
- type ProviderPropertiesStatus
- type Role
- type RoleFilter
- type RoleImport
- type RoleList
- type RoleResourceSpec
- type RoleResourceStatus
- type RoleSpec
- type RoleStatus
- type Router
- type RouterFilter
- type RouterImport
- type RouterInterface
- type RouterInterfaceList
- type RouterInterfaceSpec
- type RouterInterfaceStatus
- type RouterInterfaceType
- type RouterList
- type RouterResourceSpec
- type RouterResourceStatus
- type RouterSpec
- type RouterStatus
- type RuleDirection
- type SecurityGroup
- func (in *SecurityGroup) DeepCopy() *SecurityGroup
- func (in *SecurityGroup) DeepCopyInto(out *SecurityGroup)
- func (in *SecurityGroup) DeepCopyObject() runtime.Object
- func (i *SecurityGroup) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
- func (i *SecurityGroup) GetConditions() []metav1.Condition
- type SecurityGroupFilter
- type SecurityGroupImport
- type SecurityGroupList
- type SecurityGroupResourceSpec
- type SecurityGroupResourceStatus
- type SecurityGroupRule
- type SecurityGroupRuleStatus
- type SecurityGroupSpec
- type SecurityGroupStatus
- type Server
- type ServerFilter
- type ServerGroup
- type ServerGroupFilter
- type ServerGroupImport
- type ServerGroupList
- type ServerGroupPolicy
- type ServerGroupResourceSpec
- type ServerGroupResourceStatus
- type ServerGroupRules
- type ServerGroupRulesStatus
- type ServerGroupSpec
- type ServerGroupStatus
- type ServerImport
- type ServerInterfaceFixedIP
- type ServerInterfaceStatus
- type ServerList
- type ServerPortSpec
- type ServerResourceSpec
- type ServerResourceStatus
- type ServerSpec
- type ServerStatus
- type ServerTag
- type ServerVolumeSpec
- type ServerVolumeStatus
- type Service
- type ServiceFilter
- type ServiceImport
- type ServiceList
- type ServiceResourceSpec
- type ServiceResourceStatus
- type ServiceSpec
- type ServiceStatus
- type Subnet
- type SubnetFilter
- type SubnetGateway
- type SubnetGatewayType
- type SubnetImport
- type SubnetList
- type SubnetResourceSpec
- type SubnetResourceStatus
- type SubnetSpec
- type SubnetStatus
- type UUID
- type UserDataSpec
- type Volume
- type VolumeAttachmentStatus
- type VolumeFilter
- type VolumeImport
- type VolumeList
- type VolumeMetadata
- type VolumeMetadataStatus
- type VolumeResourceSpec
- type VolumeResourceStatus
- type VolumeSpec
- type VolumeStatus
- type VolumeType
- type VolumeTypeExtraSpec
- type VolumeTypeExtraSpecStatus
- type VolumeTypeFilter
- type VolumeTypeImport
- type VolumeTypeList
- type VolumeTypeResourceSpec
- type VolumeTypeResourceStatus
- type VolumeTypeSpec
- type VolumeTypeStatus
Constants ¶
const ( // Normal progress: continue waiting. ConditionReasonProgressing = "Progressing" // The user must fix the configuration before trying again. ConditionReasonInvalidConfiguration = "InvalidConfiguration" // An error occurred which we can't recover from. It must be addressed // before we can continue. ConditionReasonUnrecoverableError = "UnrecoverableError" // An error occurred which may go away eventually if we keep trying. The // user likely wants to know about this if it persists. ConditionReasonTransientError = "TransientError" // The resource is ready for use. ConditionReasonSuccess = "Success" )
const ( ConditionAvailable = "Available" ConditionProgressing = "Progressing" )
const ( // CloudCredentialsConfigSecretKey is the key for the clouds configuration in the cloud credentials secret. CloudCredentialsConfigSecretKey = "clouds.yaml" // CloudCredencialsCASecretKey is the key for the CA certificate in the cloud credentials secret. CloudCredencialsCASecretKey = "cacert" )
const ( IPv6AddressModeSLAAC = "slaac" IPv6AddressModeDHCPv6Stateful = "dhcpv6-stateful" IPv6AddressModeDHCPv6Stateless = "dhcpv6-stateless" )
const ( IPv6RAModeSLAAC = "slaac" IPv6RAModeDHCPv6Stateful = "dhcpv6-stateful" IPv6RAModeDHCPv6Stateless = "dhcpv6-stateless" )
const ( SubnetGatewayTypeNone = "None" SubnetGatewayTypeAutomatic = "Automatic" SubnetGatewayTypeIP = "IP" )
const GlanceTag = "glance"
GlanceTag is the name of the go field tag in properties structs used to specify the Glance property name.
const GroupName = "openstack.k-orc.cloud"
GroupName is the group name use in this package
Variables ¶
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 )
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 ¶
IsConditionReasonTerminal returns true if the given reason represents an error which should prevent further reconciliation.
func IsReconciliationComplete ¶
func IsReconciliationComplete(obj ObjectWithConditions) bool
IsReconciliationComplete returns true if the given set of conditions indicate that reconciliation is complete, either success or failure.
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type Address ¶
type Address struct {
// ip contains a fixed IP address assigned to the port. It must belong
// to the referenced subnet's CIDR. If not specified, OpenStack
// allocates an available IP from the referenced subnet.
// +optional
IP *IPvAny `json:"ip,omitempty"`
// subnetRef references the subnet from which to allocate the IP
// address.
// +required
SubnetRef KubernetesNameRef `json:"subnetRef,omitempty"`
}
func (*Address) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Address.
func (*Address) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AllocationPool ¶
type AllocationPool struct {
// start is the first IP address in the allocation pool.
// +required
Start IPvAny `json:"start,omitempty"`
// end is the last IP address in the allocation pool.
// +required
End IPvAny `json:"end,omitempty"`
}
func (*AllocationPool) DeepCopy ¶
func (in *AllocationPool) DeepCopy() *AllocationPool
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationPool.
func (*AllocationPool) DeepCopyInto ¶
func (in *AllocationPool) DeepCopyInto(out *AllocationPool)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AllocationPoolStatus ¶
type AllocationPoolStatus struct {
// start is the first IP address in the allocation pool.
// +kubebuilder:validation:MaxLength=1024
// +optional
Start string `json:"start,omitempty"`
// end is the last IP address in the allocation pool.
// +kubebuilder:validation:MaxLength=1024
// +optional
End string `json:"end,omitempty"`
}
func (*AllocationPoolStatus) DeepCopy ¶
func (in *AllocationPoolStatus) DeepCopy() *AllocationPoolStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationPoolStatus.
func (*AllocationPoolStatus) DeepCopyInto ¶
func (in *AllocationPoolStatus) DeepCopyInto(out *AllocationPoolStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AllowedAddressPair ¶
type AllowedAddressPair struct {
// ip contains an IP address which a server connected to the port can
// send packets with. It can be an IP Address or a CIDR (if supported
// by the underlying extension plugin).
// +required
IP IPvAny `json:"ip,omitempty"`
// mac contains a MAC address which a server connected to the port can
// send packets with. Defaults to the MAC address of the port.
// +optional
MAC *MAC `json:"mac,omitempty"`
}
func (*AllowedAddressPair) DeepCopy ¶
func (in *AllowedAddressPair) DeepCopy() *AllowedAddressPair
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedAddressPair.
func (*AllowedAddressPair) DeepCopyInto ¶
func (in *AllowedAddressPair) DeepCopyInto(out *AllowedAddressPair)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AllowedAddressPairStatus ¶
type AllowedAddressPairStatus struct {
// ip contains an IP address which a server connected to the port can
// send packets with.
// +kubebuilder:validation:MaxLength=1024
// +optional
IP string `json:"ip,omitempty"`
// mac contains a MAC address which a server connected to the port can
// send packets with.
// +kubebuilder:validation:MaxLength=1024
// +optional
MAC string `json:"mac,omitempty"`
}
func (*AllowedAddressPairStatus) DeepCopy ¶
func (in *AllowedAddressPairStatus) DeepCopy() *AllowedAddressPairStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedAddressPairStatus.
func (*AllowedAddressPairStatus) DeepCopyInto ¶
func (in *AllowedAddressPairStatus) DeepCopyInto(out *AllowedAddressPairStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AvailabilityZoneHint ¶
type AvailabilityZoneHint string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255
type CIDR ¶
type CIDR string
+kubebuilder:validation:Format:=cidr +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=49
type CloudCredentialsRefProvider ¶
type CloudCredentialsRefProvider interface {
GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
}
CloudCredentialsRefProvider is an interface for obtaining OpenStack credentials from an API object +kubebuilder:object:generate:=false
type CloudCredentialsReference ¶
type CloudCredentialsReference struct {
// secretName is the name of a secret in the same namespace as the resource being provisioned.
// The secret must contain a key named `clouds.yaml` which contains an OpenStack clouds.yaml file.
// The secret may optionally contain a key named `cacert` containing a PEM-encoded CA certificate.
// +required
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=253
SecretName string `json:"secretName,omitempty"`
// cloudName specifies the name of the entry in the clouds.yaml file to use.
// +required
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=256
CloudName string `json:"cloudName,omitempty"`
}
CloudCredentialsReference is a reference to a secret containing OpenStack credentials.
func (*CloudCredentialsReference) DeepCopy ¶
func (in *CloudCredentialsReference) DeepCopy() *CloudCredentialsReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudCredentialsReference.
func (*CloudCredentialsReference) DeepCopyInto ¶
func (in *CloudCredentialsReference) DeepCopyInto(out *CloudCredentialsReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DNSDomain ¶
type DNSDomain string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255 +kubebuilder:validation:Pattern:="^[A-Za-z0-9]{1,63}(.[A-Za-z0-9-]{1,63})*(.[A-Za-z]{2,63})*.?$"
type Domain ¶ added in v2.4.0
type Domain struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec DomainSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status DomainStatus `json:"status,omitempty"`
}
Domain is the Schema for an ORC resource.
func (*Domain) DeepCopy ¶ added in v2.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Domain.
func (*Domain) DeepCopyInto ¶ added in v2.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Domain) DeepCopyObject ¶ added in v2.4.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Domain) GetCloudCredentialsRef ¶ added in v2.4.0
func (i *Domain) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Domain) GetConditions ¶ added in v2.4.0
type DomainFilter ¶ added in v2.4.0
type DomainFilter struct {
// name of the existing resource
// +optional
Name *KeystoneName `json:"name,omitempty"`
// enabled defines whether a domain is enabled or not. Default is true.
// Note: Users can only authorize against an enabled domain (and any of its projects).
// +optional
Enabled *bool `json:"enabled,omitempty"`
}
DomainFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*DomainFilter) DeepCopy ¶ added in v2.4.0
func (in *DomainFilter) DeepCopy() *DomainFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainFilter.
func (*DomainFilter) DeepCopyInto ¶ added in v2.4.0
func (in *DomainFilter) DeepCopyInto(out *DomainFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DomainImport ¶ added in v2.4.0
type DomainImport 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 *DomainFilter `json:"filter,omitempty"`
}
DomainImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*DomainImport) DeepCopy ¶ added in v2.4.0
func (in *DomainImport) DeepCopy() *DomainImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainImport.
func (*DomainImport) DeepCopyInto ¶ added in v2.4.0
func (in *DomainImport) DeepCopyInto(out *DomainImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DomainList ¶ added in v2.4.0
type DomainList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Domain.
// +required
Items []Domain `json:"items"`
}
DomainList contains a list of Domain.
func (*DomainList) DeepCopy ¶ added in v2.4.0
func (in *DomainList) DeepCopy() *DomainList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainList.
func (*DomainList) DeepCopyInto ¶ added in v2.4.0
func (in *DomainList) DeepCopyInto(out *DomainList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DomainList) DeepCopyObject ¶ added in v2.4.0
func (in *DomainList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DomainList) GetItems ¶ added in v2.4.0
func (l *DomainList) GetItems() []Domain
type DomainResourceSpec ¶ added in v2.4.0
type DomainResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *KeystoneName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
Description *string `json:"description,omitempty"`
// enabled defines whether a domain is enabled or not. Default is true.
// Note: Users can only authorize against an enabled domain (and any of its projects).
// +optional
Enabled *bool `json:"enabled,omitempty"`
}
DomainResourceSpec contains the desired state of the resource.
func (*DomainResourceSpec) DeepCopy ¶ added in v2.4.0
func (in *DomainResourceSpec) DeepCopy() *DomainResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainResourceSpec.
func (*DomainResourceSpec) DeepCopyInto ¶ added in v2.4.0
func (in *DomainResourceSpec) DeepCopyInto(out *DomainResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DomainResourceStatus ¶ added in v2.4.0
type DomainResourceStatus struct {
// name is a Human-readable name for the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// enabled defines whether a domain is enabled or not. Default is true.
// Note: Users can only authorize against an enabled domain (and any of its projects).
// +optional
Enabled *bool `json:"enabled,omitempty"`
}
DomainResourceStatus represents the observed state of the resource.
func (*DomainResourceStatus) DeepCopy ¶ added in v2.4.0
func (in *DomainResourceStatus) DeepCopy() *DomainResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainResourceStatus.
func (*DomainResourceStatus) DeepCopyInto ¶ added in v2.4.0
func (in *DomainResourceStatus) DeepCopyInto(out *DomainResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DomainSpec ¶ added in v2.4.0
type DomainSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *DomainImport `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 *DomainResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
DomainSpec 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 (*DomainSpec) DeepCopy ¶ added in v2.4.0
func (in *DomainSpec) DeepCopy() *DomainSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainSpec.
func (*DomainSpec) DeepCopyInto ¶ added in v2.4.0
func (in *DomainSpec) DeepCopyInto(out *DomainSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DomainStatus ¶ added in v2.4.0
type DomainStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *DomainResourceStatus `json:"resource,omitempty"`
}
DomainStatus defines the observed state of an ORC resource.
func (*DomainStatus) DeepCopy ¶ added in v2.4.0
func (in *DomainStatus) DeepCopy() *DomainStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainStatus.
func (*DomainStatus) DeepCopyInto ¶ added in v2.4.0
func (in *DomainStatus) DeepCopyInto(out *DomainStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalGateway ¶
type ExternalGateway struct {
// networkRef is a reference to the ORC Network which the external
// gateway is on.
// +required
NetworkRef KubernetesNameRef `json:"networkRef,omitempty"`
}
func (*ExternalGateway) DeepCopy ¶
func (in *ExternalGateway) DeepCopy() *ExternalGateway
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalGateway.
func (*ExternalGateway) DeepCopyInto ¶
func (in *ExternalGateway) DeepCopyInto(out *ExternalGateway)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalGatewayStatus ¶
type ExternalGatewayStatus struct {
// networkID is the ID of the network the gateway is on.
// +kubebuilder:validation:MaxLength=1024
// +optional
NetworkID string `json:"networkID,omitempty"`
}
func (*ExternalGatewayStatus) DeepCopy ¶
func (in *ExternalGatewayStatus) DeepCopy() *ExternalGatewayStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalGatewayStatus.
func (*ExternalGatewayStatus) DeepCopyInto ¶
func (in *ExternalGatewayStatus) DeepCopyInto(out *ExternalGatewayStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FilterByKeystoneTags ¶ added in v2.1.0
type FilterByKeystoneTags struct {
// tags is a list of tags to filter by. If specified, the resource must
// have all of the tags specified to be included in the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=80
Tags []KeystoneTag `json:"tags,omitempty"`
// tagsAny is a list of tags to filter by. If specified, the resource
// must have at least one of the tags specified to be included in the
// result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=80
TagsAny []KeystoneTag `json:"tagsAny,omitempty"`
// notTags is a list of tags to filter by. If specified, resources which
// contain all of the given tags will be excluded from the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=80
NotTags []KeystoneTag `json:"notTags,omitempty"`
// notTagsAny is a list of tags to filter by. If specified, resources
// which contain any of the given tags will be excluded from the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=80
NotTagsAny []KeystoneTag `json:"notTagsAny,omitempty"`
}
func (*FilterByKeystoneTags) DeepCopy ¶ added in v2.1.0
func (in *FilterByKeystoneTags) DeepCopy() *FilterByKeystoneTags
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FilterByKeystoneTags.
func (*FilterByKeystoneTags) DeepCopyInto ¶ added in v2.1.0
func (in *FilterByKeystoneTags) DeepCopyInto(out *FilterByKeystoneTags)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FilterByNeutronTags ¶
type FilterByNeutronTags struct {
// tags is a list of tags to filter by. If specified, the resource must
// have all of the tags specified to be included in the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=64
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:=64
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:=64
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:=64
NotTagsAny []NeutronTag `json:"notTagsAny,omitempty"`
}
func (*FilterByNeutronTags) DeepCopy ¶
func (in *FilterByNeutronTags) DeepCopy() *FilterByNeutronTags
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FilterByNeutronTags.
func (*FilterByNeutronTags) DeepCopyInto ¶
func (in *FilterByNeutronTags) DeepCopyInto(out *FilterByNeutronTags)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FilterByServerTags ¶
type FilterByServerTags struct {
// tags is a list of tags to filter by. If specified, the resource must
// have all of the tags specified to be included in the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=50
Tags []ServerTag `json:"tags,omitempty"`
// tagsAny is a list of tags to filter by. If specified, the resource
// must have at least one of the tags specified to be included in the
// result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=50
TagsAny []ServerTag `json:"tagsAny,omitempty"`
// notTags is a list of tags to filter by. If specified, resources which
// contain all of the given tags will be excluded from the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=50
NotTags []ServerTag `json:"notTags,omitempty"`
// notTagsAny is a list of tags to filter by. If specified, resources
// which contain any of the given tags will be excluded from the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=50
NotTagsAny []ServerTag `json:"notTagsAny,omitempty"`
}
func (*FilterByServerTags) DeepCopy ¶
func (in *FilterByServerTags) DeepCopy() *FilterByServerTags
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FilterByServerTags.
func (*FilterByServerTags) DeepCopyInto ¶
func (in *FilterByServerTags) DeepCopyInto(out *FilterByServerTags)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FixedIPStatus ¶
type FixedIPStatus struct {
// ip contains a fixed IP address assigned to the port.
// +kubebuilder:validation:MaxLength=1024
// +optional
IP string `json:"ip,omitempty"`
// subnetID is the ID of the subnet this IP is allocated from.
// +kubebuilder:validation:MaxLength=1024
// +optional
SubnetID string `json:"subnetID,omitempty"`
}
func (*FixedIPStatus) DeepCopy ¶
func (in *FixedIPStatus) DeepCopy() *FixedIPStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FixedIPStatus.
func (*FixedIPStatus) DeepCopyInto ¶
func (in *FixedIPStatus) DeepCopyInto(out *FixedIPStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Flavor ¶
type Flavor struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec FlavorSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status FlavorStatus `json:"status,omitempty"`
}
Flavor is the Schema for an ORC resource.
func (*Flavor) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Flavor.
func (*Flavor) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Flavor) DeepCopyObject ¶
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 ¶
type FlavorFilter ¶
type FlavorFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// ram is the memory of the flavor, measured in MB.
// +kubebuilder:validation:Minimum=1
// +optional
RAM *int32 `json:"ram,omitempty"`
// vcpus is the number of vcpus for the flavor.
// +kubebuilder:validation:Minimum=1
// +optional
Vcpus *int32 `json:"vcpus,omitempty"`
// disk is the size of the root disk in GiB.
// +kubebuilder:validation:Minimum=0
// +optional
Disk *int32 `json:"disk,omitempty"`
}
FlavorFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*FlavorFilter) DeepCopy ¶
func (in *FlavorFilter) DeepCopy() *FlavorFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorFilter.
func (*FlavorFilter) DeepCopyInto ¶
func (in *FlavorFilter) DeepCopyInto(out *FlavorFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlavorImport ¶
type FlavorImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *FlavorFilter `json:"filter,omitempty"`
}
FlavorImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*FlavorImport) DeepCopy ¶
func (in *FlavorImport) DeepCopy() *FlavorImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorImport.
func (*FlavorImport) DeepCopyInto ¶
func (in *FlavorImport) DeepCopyInto(out *FlavorImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlavorList ¶
type FlavorList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Flavor.
// +required
Items []Flavor `json:"items"`
}
FlavorList contains a list of Flavor.
func (*FlavorList) DeepCopy ¶
func (in *FlavorList) DeepCopy() *FlavorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorList.
func (*FlavorList) DeepCopyInto ¶
func (in *FlavorList) DeepCopyInto(out *FlavorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FlavorList) DeepCopyObject ¶
func (in *FlavorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*FlavorList) GetItems ¶
func (l *FlavorList) GetItems() []Flavor
type FlavorResourceSpec ¶
type FlavorResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description contains a free form description of the flavor.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=65535
// +optional
Description *string `json:"description,omitempty"`
// ram is the memory of the flavor, measured in MB.
// +kubebuilder:validation:Minimum=1
// +required
RAM int32 `json:"ram,omitempty"`
// vcpus is the number of vcpus for the flavor.
// +kubebuilder:validation:Minimum=1
// +required
Vcpus int32 `json:"vcpus,omitempty"`
// disk is the size of the root disk that will be created in GiB. If 0
// the root disk will be set to exactly the size of the image used to
// deploy the instance. However, in this case the scheduler cannot
// select the compute host based on the virtual image size. Therefore,
// 0 should only be used for volume booted instances or for testing
// purposes. Volume-backed instances can be enforced for flavors with
// zero root disk via the
// os_compute_api:servers:create:zero_disk_flavor policy rule.
// +kubebuilder:validation:Minimum=0
// +required
Disk int32 `json:"disk"`
// swap is the size of a dedicated swap disk that will be allocated, in
// MiB. If 0 (the default), no dedicated swap disk will be created.
// +kubebuilder:validation:Minimum=0
// +optional
Swap int32 `json:"swap,omitempty"`
// isPublic flags a flavor as being available to all projects or not.
// +optional
IsPublic *bool `json:"isPublic,omitempty"`
// ephemeral is the size of the ephemeral disk that will be created, in GiB.
// Ephemeral disks may be written over on server state changes. So should only
// be used as a scratch space for applications that are aware of its
// limitations. Defaults to 0.
// +kubebuilder:validation:Minimum=0
// +optional
Ephemeral int32 `json:"ephemeral,omitempty"`
}
FlavorResourceSpec contains the desired state of a flavor +kubebuilder:validation:XValidation:rule="self == oldSelf",message="FlavorResourceSpec is immutable"
func (*FlavorResourceSpec) DeepCopy ¶
func (in *FlavorResourceSpec) DeepCopy() *FlavorResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorResourceSpec.
func (*FlavorResourceSpec) DeepCopyInto ¶
func (in *FlavorResourceSpec) DeepCopyInto(out *FlavorResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlavorResourceStatus ¶
type FlavorResourceStatus struct {
// name is a Human-readable name for the flavor. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength:=65535
// +optional
Description string `json:"description,omitempty"`
// ram is the memory of the flavor, measured in MB.
// +optional
RAM *int32 `json:"ram,omitempty"`
// vcpus is the number of vcpus for the flavor.
// +optional
Vcpus *int32 `json:"vcpus,omitempty"`
// disk is the size of the root disk that will be created in GiB.
// +optional
Disk *int32 `json:"disk,omitempty"`
// swap is the size of a dedicated swap disk that will be allocated, in
// MiB.
// +optional
Swap *int32 `json:"swap,omitempty"`
// isPublic flags a flavor as being available to all projects or not.
// +optional
IsPublic *bool `json:"isPublic,omitempty"`
// ephemeral is the size of the ephemeral disk, in GiB.
// +optional
Ephemeral *int32 `json:"ephemeral,omitempty"`
}
FlavorResourceStatus represents the observed state of the resource.
func (*FlavorResourceStatus) DeepCopy ¶
func (in *FlavorResourceStatus) DeepCopy() *FlavorResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorResourceStatus.
func (*FlavorResourceStatus) DeepCopyInto ¶
func (in *FlavorResourceStatus) DeepCopyInto(out *FlavorResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlavorSpec ¶
type FlavorSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *FlavorImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *FlavorResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
FlavorSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*FlavorSpec) DeepCopy ¶
func (in *FlavorSpec) DeepCopy() *FlavorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorSpec.
func (*FlavorSpec) DeepCopyInto ¶
func (in *FlavorSpec) DeepCopyInto(out *FlavorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlavorStatus ¶
type FlavorStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *FlavorResourceStatus `json:"resource,omitempty"`
}
FlavorStatus defines the observed state of an ORC resource.
func (*FlavorStatus) DeepCopy ¶
func (in *FlavorStatus) DeepCopy() *FlavorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorStatus.
func (*FlavorStatus) DeepCopyInto ¶
func (in *FlavorStatus) DeepCopyInto(out *FlavorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FloatingIP ¶ added in v2.2.0
type FloatingIP struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec FloatingIPSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status FloatingIPStatus `json:"status,omitempty"`
}
FloatingIP is the Schema for an ORC resource.
func (*FloatingIP) DeepCopy ¶ added in v2.2.0
func (in *FloatingIP) DeepCopy() *FloatingIP
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingIP.
func (*FloatingIP) DeepCopyInto ¶ added in v2.2.0
func (in *FloatingIP) DeepCopyInto(out *FloatingIP)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FloatingIP) DeepCopyObject ¶ added in v2.2.0
func (in *FloatingIP) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*FloatingIP) GetCloudCredentialsRef ¶ added in v2.2.0
func (i *FloatingIP) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*FloatingIP) GetConditions ¶ added in v2.2.0
func (i *FloatingIP) GetConditions() []metav1.Condition
type FloatingIPFilter ¶ added in v2.2.0
type FloatingIPFilter struct {
// floatingIP is the floatingip address.
// +optional
FloatingIP *IPvAny `json:"floatingIP,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// floatingNetworkRef is a reference to the ORC Network which this resource is associated with.
// +optional
FloatingNetworkRef *KubernetesNameRef `json:"floatingNetworkRef,omitempty"`
// portRef is a reference to the ORC Port which this resource is associated with.
// +optional
PortRef *KubernetesNameRef `json:"portRef,omitempty"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
// status is the status of the floatingip.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
FilterByNeutronTags `json:",inline"`
}
FloatingIPFilter specifies a query to select an OpenStack floatingip. At least one property must be set. +kubebuilder:validation:MinProperties:=1
func (*FloatingIPFilter) DeepCopy ¶ added in v2.2.0
func (in *FloatingIPFilter) DeepCopy() *FloatingIPFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingIPFilter.
func (*FloatingIPFilter) DeepCopyInto ¶ added in v2.2.0
func (in *FloatingIPFilter) DeepCopyInto(out *FloatingIPFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FloatingIPImport ¶ added in v2.2.0
type FloatingIPImport 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 *FloatingIPFilter `json:"filter,omitempty"`
}
FloatingIPImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*FloatingIPImport) DeepCopy ¶ added in v2.2.0
func (in *FloatingIPImport) DeepCopy() *FloatingIPImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingIPImport.
func (*FloatingIPImport) DeepCopyInto ¶ added in v2.2.0
func (in *FloatingIPImport) DeepCopyInto(out *FloatingIPImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FloatingIPList ¶ added in v2.2.0
type FloatingIPList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of FloatingIP.
// +required
Items []FloatingIP `json:"items"`
}
FloatingIPList contains a list of FloatingIP.
func (*FloatingIPList) DeepCopy ¶ added in v2.2.0
func (in *FloatingIPList) DeepCopy() *FloatingIPList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingIPList.
func (*FloatingIPList) DeepCopyInto ¶ added in v2.2.0
func (in *FloatingIPList) DeepCopyInto(out *FloatingIPList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FloatingIPList) DeepCopyObject ¶ added in v2.2.0
func (in *FloatingIPList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*FloatingIPList) GetItems ¶ added in v2.2.0
func (l *FloatingIPList) GetItems() []FloatingIP
type FloatingIPResourceSpec ¶ added in v2.2.0
type FloatingIPResourceSpec struct {
// description is a human-readable description for the resource.
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// tags is a list of tags which will be applied to the floatingip.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
// floatingNetworkRef references the network to which the floatingip is associated.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="floatingNetworkRef is immutable"
FloatingNetworkRef *KubernetesNameRef `json:"floatingNetworkRef,omitempty"`
// floatingSubnetRef references the subnet to which the floatingip is associated.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="floatingSubnetRef is immutable"
FloatingSubnetRef *KubernetesNameRef `json:"floatingSubnetRef,omitempty"`
// floatingIP is the IP that will be assigned to the floatingip. If not set, it will
// be assigned automatically.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="floatingIP is immutable"
FloatingIP *IPvAny `json:"floatingIP,omitempty"`
// portRef is a reference to the ORC Port which this resource is associated with.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="portRef is immutable"
PortRef *KubernetesNameRef `json:"portRef,omitempty"`
// fixedIP is the IP address of the port to which the floatingip is associated.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="fixedIP is immutable"
FixedIP *IPvAny `json:"fixedIP,omitempty"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="projectRef is immutable"
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
}
FloatingIPResourceSpec contains the desired state of a floating IP +kubebuilder:validation:XValidation:rule="has(self.floatingNetworkRef) != has(self.floatingSubnetRef)",message="Exactly one of 'floatingNetworkRef' or 'floatingSubnetRef' must be set"
func (*FloatingIPResourceSpec) DeepCopy ¶ added in v2.2.0
func (in *FloatingIPResourceSpec) DeepCopy() *FloatingIPResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingIPResourceSpec.
func (*FloatingIPResourceSpec) DeepCopyInto ¶ added in v2.2.0
func (in *FloatingIPResourceSpec) DeepCopyInto(out *FloatingIPResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FloatingIPResourceStatus ¶ added in v2.2.0
type FloatingIPResourceStatus struct {
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// floatingNetworkID is the ID of the network to which the floatingip is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
FloatingNetworkID string `json:"floatingNetworkID,omitempty"`
// floatingIP is the IP address of the floatingip.
// +kubebuilder:validation:MaxLength=1024
// +optional
FloatingIP string `json:"floatingIP,omitempty"`
// portID is the ID of the port to which the floatingip is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
PortID string `json:"portID,omitempty"`
// fixedIP is the IP address of the port to which the floatingip is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
FixedIP string `json:"fixedIP,omitempty"`
// tenantID is the project owner of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
TenantID string `json:"tenantID,omitempty"`
// projectID is the project owner of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// status indicates the current status of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// routerID is the ID of the router to which the floatingip is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
RouterID string `json:"routerID,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems:=64
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
NeutronStatusMetadata `json:",inline"`
}
func (*FloatingIPResourceStatus) DeepCopy ¶ added in v2.2.0
func (in *FloatingIPResourceStatus) DeepCopy() *FloatingIPResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingIPResourceStatus.
func (*FloatingIPResourceStatus) DeepCopyInto ¶ added in v2.2.0
func (in *FloatingIPResourceStatus) DeepCopyInto(out *FloatingIPResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FloatingIPSpec ¶ added in v2.2.0
type FloatingIPSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *FloatingIPImport `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 *FloatingIPResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
FloatingIPSpec 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 (*FloatingIPSpec) DeepCopy ¶ added in v2.2.0
func (in *FloatingIPSpec) DeepCopy() *FloatingIPSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingIPSpec.
func (*FloatingIPSpec) DeepCopyInto ¶ added in v2.2.0
func (in *FloatingIPSpec) DeepCopyInto(out *FloatingIPSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FloatingIPStatus ¶ added in v2.2.0
type FloatingIPStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *FloatingIPResourceStatus `json:"resource,omitempty"`
}
FloatingIPStatus defines the observed state of an ORC resource.
func (*FloatingIPStatus) DeepCopy ¶ added in v2.2.0
func (in *FloatingIPStatus) DeepCopy() *FloatingIPStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingIPStatus.
func (*FloatingIPStatus) DeepCopyInto ¶ added in v2.2.0
func (in *FloatingIPStatus) DeepCopyInto(out *FloatingIPStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Group ¶ added in v2.4.0
type Group struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec GroupSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status GroupStatus `json:"status,omitempty"`
}
Group is the Schema for an ORC resource.
func (*Group) DeepCopy ¶ added in v2.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Group.
func (*Group) DeepCopyInto ¶ added in v2.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Group) DeepCopyObject ¶ added in v2.4.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Group) GetCloudCredentialsRef ¶ added in v2.4.0
func (i *Group) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Group) GetConditions ¶ added in v2.4.0
type GroupFilter ¶ added in v2.4.0
type GroupFilter struct {
// name of the existing resource
// +optional
Name *KeystoneName `json:"name,omitempty"`
// domainRef is a reference to the ORC Domain which this resource is associated with.
// +optional
DomainRef *KubernetesNameRef `json:"domainRef,omitempty"`
}
GroupFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*GroupFilter) DeepCopy ¶ added in v2.4.0
func (in *GroupFilter) DeepCopy() *GroupFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupFilter.
func (*GroupFilter) DeepCopyInto ¶ added in v2.4.0
func (in *GroupFilter) DeepCopyInto(out *GroupFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroupImport ¶ added in v2.4.0
type GroupImport 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 *GroupFilter `json:"filter,omitempty"`
}
GroupImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*GroupImport) DeepCopy ¶ added in v2.4.0
func (in *GroupImport) DeepCopy() *GroupImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupImport.
func (*GroupImport) DeepCopyInto ¶ added in v2.4.0
func (in *GroupImport) DeepCopyInto(out *GroupImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroupList ¶ added in v2.4.0
type GroupList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Group.
// +required
Items []Group `json:"items"`
}
GroupList contains a list of Group.
func (*GroupList) DeepCopy ¶ added in v2.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupList.
func (*GroupList) DeepCopyInto ¶ added in v2.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GroupList) DeepCopyObject ¶ added in v2.4.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GroupResourceSpec ¶ added in v2.4.0
type GroupResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *KeystoneName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
Description *string `json:"description,omitempty"`
// domainRef is a reference to the ORC Domain which this resource is associated with.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="domainRef is immutable"
DomainRef *KubernetesNameRef `json:"domainRef,omitempty"`
}
GroupResourceSpec contains the desired state of the resource.
func (*GroupResourceSpec) DeepCopy ¶ added in v2.4.0
func (in *GroupResourceSpec) DeepCopy() *GroupResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResourceSpec.
func (*GroupResourceSpec) DeepCopyInto ¶ added in v2.4.0
func (in *GroupResourceSpec) DeepCopyInto(out *GroupResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroupResourceStatus ¶ added in v2.4.0
type GroupResourceStatus struct {
// name is a Human-readable name for the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// domainID is the ID of the Domain to which the resource is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
DomainID string `json:"domainID,omitempty"`
}
GroupResourceStatus represents the observed state of the resource.
func (*GroupResourceStatus) DeepCopy ¶ added in v2.4.0
func (in *GroupResourceStatus) DeepCopy() *GroupResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResourceStatus.
func (*GroupResourceStatus) DeepCopyInto ¶ added in v2.4.0
func (in *GroupResourceStatus) DeepCopyInto(out *GroupResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroupSpec ¶ added in v2.4.0
type GroupSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *GroupImport `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 *GroupResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
GroupSpec 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 (*GroupSpec) DeepCopy ¶ added in v2.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupSpec.
func (*GroupSpec) DeepCopyInto ¶ added in v2.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroupStatus ¶ added in v2.4.0
type GroupStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *GroupResourceStatus `json:"resource,omitempty"`
}
GroupStatus defines the observed state of an ORC resource.
func (*GroupStatus) DeepCopy ¶ added in v2.4.0
func (in *GroupStatus) DeepCopy() *GroupStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupStatus.
func (*GroupStatus) DeepCopyInto ¶ added in v2.4.0
func (in *GroupStatus) DeepCopyInto(out *GroupStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostRoute ¶
type HostRoute struct {
// destination for the additional route.
// +required
Destination CIDR `json:"destination,omitempty"`
// nextHop for the additional route.
// +required
NextHop IPvAny `json:"nextHop,omitempty"`
}
func (*HostRoute) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostRoute.
func (*HostRoute) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostRouteStatus ¶
type HostRouteStatus struct {
// destination for the additional route.
// +kubebuilder:validation:MaxLength=1024
// +optional
Destination string `json:"destination,omitempty"`
// nextHop for the additional route.
// +kubebuilder:validation:MaxLength=1024
// +optional
NextHop string `json:"nextHop,omitempty"`
}
func (*HostRouteStatus) DeepCopy ¶
func (in *HostRouteStatus) DeepCopy() *HostRouteStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostRouteStatus.
func (*HostRouteStatus) DeepCopyInto ¶
func (in *HostRouteStatus) DeepCopyInto(out *HostRouteStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IPv6AddressMode ¶
type IPv6AddressMode string
+kubebuilder:validation:Enum:=slaac;dhcpv6-stateful;dhcpv6-stateless
type IPv6Options ¶
type IPv6Options struct {
// addressMode specifies mechanisms for assigning IPv6 IP addresses.
// +optional
AddressMode *IPv6AddressMode `json:"addressMode,omitempty"`
// raMode specifies the IPv6 router advertisement mode. It specifies whether
// the networking service should transmit ICMPv6 packets.
// +optional
RAMode *IPv6RAMode `json:"raMode,omitempty"`
}
+kubebuilder:validation:MinProperties:=1
func (*IPv6Options) DeepCopy ¶
func (in *IPv6Options) DeepCopy() *IPv6Options
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPv6Options.
func (*IPv6Options) DeepCopyInto ¶
func (in *IPv6Options) DeepCopyInto(out *IPv6Options)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IPv6RAMode ¶
type IPv6RAMode string
+kubebuilder:validation:Enum:=slaac;dhcpv6-stateful;dhcpv6-stateless
type IPvAny ¶
type IPvAny string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=45
type Image ¶
type Image struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec ImageSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status ImageStatus `json:"status,omitempty"`
}
Image is the Schema for an ORC resource.
func (*Image) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.
func (*Image) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Image) DeepCopyObject ¶
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 ¶
type ImageCompression ¶
type ImageCompression string
+kubebuilder:validation:Enum:=xz;gz;bz2
const ( ImageCompressionXZ ImageCompression = "xz" ImageCompressionGZ ImageCompression = "gz" ImageCompressionBZ2 ImageCompression = "bz2" )
type ImageContainerFormat ¶
type ImageContainerFormat string
+kubebuilder:validation:Enum:=ami;ari;aki;bare;ovf;ova;docker;compressed
const ( ImageContainerFormatAKI ImageContainerFormat = "aki" ImageContainerFormatAMI ImageContainerFormat = "ami" ImageContainerFormatARI ImageContainerFormat = "ari" ImageContainerFormatBare ImageContainerFormat = "bare" ImageContainerFormatCompressed ImageContainerFormat = "compressed" ImageContainerFormatDocker ImageContainerFormat = "docker" ImageContainerFormatOVA ImageContainerFormat = "ova" ImageContainerFormatOVF ImageContainerFormat = "ovf" )
type ImageContent ¶
type ImageContent struct {
// containerFormat is the format of the image container.
// qcow2 and raw images do not usually have a container. This is specified as "bare", which is also the default.
// Permitted values are ami, ari, aki, bare, compressed, ovf, ova, and docker.
// +kubebuilder:default:=bare
// +optional
ContainerFormat ImageContainerFormat `json:"containerFormat,omitempty"`
// diskFormat is the format of the disk image.
// Normal values are "qcow2", or "raw". Glance may be configured to support others.
// +required
DiskFormat ImageDiskFormat `json:"diskFormat,omitempty"`
// download describes how to obtain image data by downloading it from a URL.
// Must be set when creating a managed image.
// +required
//nolint:kubeapilinter
Download *ImageContentSourceDownload `json:"download"`
}
func (*ImageContent) DeepCopy ¶
func (in *ImageContent) DeepCopy() *ImageContent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageContent.
func (*ImageContent) DeepCopyInto ¶
func (in *ImageContent) DeepCopyInto(out *ImageContent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageContentSourceDownload ¶
type ImageContentSourceDownload struct {
// url containing image data
// +kubebuilder:validation:Format=uri
// +kubebuilder:validation:MaxLength=2048
// +required
URL string `json:"url"`
// decompress specifies that the source data must be decompressed with the
// given compression algorithm before being stored. Specifying Decompress
// will disable the use of Glance's web-download, as web-download cannot
// currently deterministically decompress downloaded content.
// +optional
Decompress *ImageCompression `json:"decompress,omitempty"`
// hash is a hash which will be used to verify downloaded data, i.e.
// before any decompression. If not specified, no hash verification will be
// performed. Specifying a Hash will disable the use of Glance's
// web-download, as web-download cannot currently deterministically verify
// the hash of downloaded content.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="hash is immutable"
// +optional
Hash *ImageHash `json:"hash,omitempty"`
}
func (*ImageContentSourceDownload) DeepCopy ¶
func (in *ImageContentSourceDownload) DeepCopy() *ImageContentSourceDownload
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageContentSourceDownload.
func (*ImageContentSourceDownload) DeepCopyInto ¶
func (in *ImageContentSourceDownload) DeepCopyInto(out *ImageContentSourceDownload)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageDiskFormat ¶
type ImageDiskFormat string
+kubebuilder:validation:Enum:=ami;ari;aki;vhd;vhdx;vmdk;raw;qcow2;vdi;ploop;iso
const ( ImageDiskFormatAMI ImageDiskFormat = "ami" ImageDiskFormatARI ImageDiskFormat = "ari" ImageDiskFormatAKI ImageDiskFormat = "aki" ImageDiskFormatVHD ImageDiskFormat = "vhd" ImageDiskFormatVHDX ImageDiskFormat = "vhdx" ImageDiskFormatVMDK ImageDiskFormat = "vmdk" ImageDiskFormatRaw ImageDiskFormat = "raw" ImageDiskFormatQCOW2 ImageDiskFormat = "qcow2" ImageDiskFormatVDI ImageDiskFormat = "vdi" ImageDiskFormatPLoop ImageDiskFormat = "ploop" ImageDiskFormatISO ImageDiskFormat = "iso" )
type ImageFilter ¶
type ImageFilter struct {
// name specifies the name of a Glance image
// +optional
Name *OpenStackName `json:"name,omitempty"`
// visibility specifies the visibility of a Glance image.
// +optional
Visibility *ImageVisibility `json:"visibility,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
Tags []ImageTag `json:"tags,omitempty"`
}
ImageFilter defines a Glance query +kubebuilder:validation:MinProperties:=1
func (*ImageFilter) DeepCopy ¶
func (in *ImageFilter) DeepCopy() *ImageFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageFilter.
func (*ImageFilter) DeepCopyInto ¶
func (in *ImageFilter) DeepCopyInto(out *ImageFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageHWBus ¶
type ImageHWBus string
ImageHWBus is a type of hardware bus.
Permitted values are scsi, virtio, uml, xen, ide, usb, and lxc. +kubebuilder:validation:Enum:=scsi;virtio;uml;xen;ide;usb;lxc
type ImageHash ¶
type ImageHash struct {
// algorithm is the hash algorithm used to generate value.
// +required
Algorithm ImageHashAlgorithm `json:"algorithm,omitempty"`
// value is the hash of the image data using Algorithm. It must be hex encoded using lowercase letters.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=1024
// +kubebuilder:validation:Pattern:=`^[0-9a-f]+$`
// +required
Value string `json:"value,omitempty"`
}
func (*ImageHash) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageHash.
func (*ImageHash) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageHashAlgorithm ¶
type ImageHashAlgorithm string
+kubebuilder:validation:Enum:=md5;sha1;sha256;sha512
const ( ImageHashAlgorithmMD5 ImageHashAlgorithm = "md5" ImageHashAlgorithmSHA1 ImageHashAlgorithm = "sha1" ImageHashAlgorithmSHA256 ImageHashAlgorithm = "sha256" ImageHashAlgorithmSHA512 ImageHashAlgorithm = "sha512" )
type ImageImport ¶
type ImageImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *ImageFilter `json:"filter,omitempty"`
}
ImageImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*ImageImport) DeepCopy ¶
func (in *ImageImport) DeepCopy() *ImageImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageImport.
func (*ImageImport) DeepCopyInto ¶
func (in *ImageImport) DeepCopyInto(out *ImageImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageList ¶
type ImageList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Image.
// +required
Items []Image `json:"items"`
}
ImageList contains a list of Image.
func (*ImageList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageList.
func (*ImageList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ImageList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ImageProperties ¶
type ImageProperties struct {
// architecture is the CPU architecture that must be supported by the hypervisor.
// +kubebuilder:validation:Enum:=aarch64;alpha;armv7l;cris;i686;ia64;lm32;m68k;microblaze;microblazeel;mips;mipsel;mips64;mips64el;openrisc;parisc;parisc64;ppc;ppc64;ppcemb;s390;s390x;sh4;sh4eb;sparc;sparc64;unicore32;x86_64;xtensa;xtensaeb
// +optional
Architecture *string `json:"architecture,omitempty" glance:"architecture"`
// hypervisorType is the hypervisor type
// +kubebuilder:validation:Enum:=hyperv;ironic;lxc;qemu;uml;vmware;xen
// +optional
HypervisorType *string `json:"hypervisorType,omitempty" glance:"hypervisor_type"`
// minDiskGB is the minimum amount of disk space in GB that is required to boot the image
// +kubebuilder:validation:Minimum:=1
// +optional
MinDiskGB *int32 `json:"minDiskGB,omitempty"`
// minMemoryMB is the minimum amount of RAM in MB that is required to boot the image.
// +kubebuilder:validation:Minimum:=1
// +optional
MinMemoryMB *int32 `json:"minMemoryMB,omitempty"`
// hardware is a set of properties which control the virtual hardware
// created by Nova.
// +optional
Hardware *ImagePropertiesHardware `json:"hardware,omitempty"`
// operatingSystem is a set of properties that specify and influence the behavior
// of the operating system within the virtual machine.
// +optional
OperatingSystem *ImagePropertiesOperatingSystem `json:"operatingSystem,omitempty"`
}
func (*ImageProperties) DeepCopy ¶
func (in *ImageProperties) DeepCopy() *ImageProperties
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageProperties.
func (*ImageProperties) DeepCopyInto ¶
func (in *ImageProperties) DeepCopyInto(out *ImageProperties)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImagePropertiesHardware ¶
type ImagePropertiesHardware struct {
// cpuSockets is the preferred number of sockets to expose to the guest
// +kubebuilder:validation:Minimum:=1
// +optional
CPUSockets *int32 `json:"cpuSockets,omitempty" glance:"hw_cpu_sockets"`
// cpuCores is the preferred number of cores to expose to the guest
// +kubebuilder:validation:Minimum:=1
// +optional
CPUCores *int32 `json:"cpuCores,omitempty" glance:"hw_cpu_cores"`
// cpuThreads is the preferred number of threads to expose to the guest
// +kubebuilder:validation:Minimum:=1
// +optional
CPUThreads *int32 `json:"cpuThreads,omitempty" glance:"hw_cpu_threads"`
// cpuPolicy is used to pin the virtual CPUs (vCPUs) of instances to the
// host's physical CPU cores (pCPUs). Host aggregates should be used to
// separate these pinned instances from unpinned instances as the latter
// will not respect the resourcing requirements of the former.
//
// Permitted values are shared (the default), and dedicated.
//
// shared: The guest vCPUs will be allowed to freely float across host
// pCPUs, albeit potentially constrained by NUMA policy.
//
// dedicated: The guest vCPUs will be strictly pinned to a set of host
// pCPUs. In the absence of an explicit vCPU topology request, the
// drivers typically expose all vCPUs as sockets with one core and one
// thread. When strict CPU pinning is in effect the guest CPU topology
// will be setup to match the topology of the CPUs to which it is
// pinned. This option implies an overcommit ratio of 1.0. For example,
// if a two vCPU guest is pinned to a single host core with two threads,
// then the guest will get a topology of one socket, one core, two
// threads.
// +kubebuilder:validation:Enum:=shared;dedicated
// +optional
CPUPolicy *string `json:"cpuPolicy,omitempty" glance:"hw_cpu_policy"`
// cpuThreadPolicy further refines a CPUPolicy of 'dedicated' by stating
// how hardware CPU threads in a simultaneous multithreading-based (SMT)
// architecture be used. SMT-based architectures include Intel
// processors with Hyper-Threading technology. In these architectures,
// processor cores share a number of components with one or more other
// cores. Cores in such architectures are commonly referred to as
// hardware threads, while the cores that a given core share components
// with are known as thread siblings.
//
// Permitted values are prefer (the default), isolate, and require.
//
// prefer: The host may or may not have an SMT architecture. Where an
// SMT architecture is present, thread siblings are preferred.
//
// isolate: The host must not have an SMT architecture or must emulate a
// non-SMT architecture. If the host does not have an SMT architecture,
// each vCPU is placed on a different core as expected. If the host does
// have an SMT architecture - that is, one or more cores have thread
// siblings - then each vCPU is placed on a different physical core. No
// vCPUs from other guests are placed on the same core. All but one
// thread sibling on each utilized core is therefore guaranteed to be
// unusable.
//
// require: The host must have an SMT architecture. Each vCPU is
// allocated on thread siblings. If the host does not have an SMT
// architecture, then it is not used. If the host has an SMT
// architecture, but not enough cores with free thread siblings are
// available, then scheduling fails.
// +kubebuilder:validation:Enum:=prefer;isolate;require
// +optional
CPUThreadPolicy *string `json:"cpuThreadPolicy,omitempty" glance:"hw_cpu_thread_policy"`
// cdromBus specifies the type of disk controller to attach CD-ROM devices to.
// +optional
CDROMBus *ImageHWBus `json:"cdromBus,omitempty" glance:"hw_cdrom_bus"`
// diskBus specifies the type of disk controller to attach disk devices to.
// +optional
DiskBus *ImageHWBus `json:"diskBus,omitempty" glance:"hw_disk_bus"`
// scsiModel enables the use of VirtIO SCSI (virtio-scsi) to provide
// block device access for compute instances; by default, instances use
// VirtIO Block (virtio-blk). VirtIO SCSI is a para-virtualized SCSI
// controller device that provides improved scalability and performance,
// and supports advanced SCSI hardware.
//
// The only permitted value is virtio-scsi.
// +kubebuilder:validation:Enum:=virtio-scsi
// +optional
SCSIModel *string `json:"scsiModel,omitempty" glance:"hw_scsi_model"`
// vifModel specifies the model of virtual network interface device to use.
//
// Permitted values are e1000, e1000e, ne2k_pci, pcnet, rtl8139, virtio,
// and vmxnet3.
// +kubebuilder:validation:Enum:=e1000;e1000e;ne2k_pci;pcnet;rtl8139;virtio;vmxnet3
// +optional
VIFModel *string `json:"vifModel,omitempty" glance:"hw_vif_model"`
// rngModel adds a random-number generator device to the image’s instances.
// This image property by itself does not guarantee that a hardware RNG will be used;
// it expresses a preference that may or may not be satisfied depending upon Nova configuration.
// +kubebuilder:validation:MaxLength:=255
// +optional
RngModel *string `json:"rngModel,omitempty" glance:"hw_rng_model"`
// qemuGuestAgent enables QEMU guest agent.
// +optional
QemuGuestAgent *bool `json:"qemuGuestAgent,omitempty" glance:"hw_qemu_guest_agent"`
}
func (*ImagePropertiesHardware) DeepCopy ¶
func (in *ImagePropertiesHardware) DeepCopy() *ImagePropertiesHardware
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePropertiesHardware.
func (*ImagePropertiesHardware) DeepCopyInto ¶
func (in *ImagePropertiesHardware) DeepCopyInto(out *ImagePropertiesHardware)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImagePropertiesOperatingSystem ¶ added in v2.1.0
type ImagePropertiesOperatingSystem struct {
// distro is the common name of the operating system distribution in lowercase.
// +kubebuilder:validation:Enum:=arch;centos;debian;fedora;freebsd;gentoo;mandrake;mandriva;mes;msdos;netbsd;netware;openbsd;opensolaris;opensuse;rocky;rhel;sled;ubuntu;windows
// +optional
Distro *string `json:"distro,omitempty" glance:"os_distro"`
// version is the operating system version as specified by the distributor.
// +kubebuilder:validation:MaxLength:=255
// +optional
Version *string `json:"version,omitempty" glance:"os_version"`
}
func (*ImagePropertiesOperatingSystem) DeepCopy ¶ added in v2.1.0
func (in *ImagePropertiesOperatingSystem) DeepCopy() *ImagePropertiesOperatingSystem
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePropertiesOperatingSystem.
func (*ImagePropertiesOperatingSystem) DeepCopyInto ¶ added in v2.1.0
func (in *ImagePropertiesOperatingSystem) DeepCopyInto(out *ImagePropertiesOperatingSystem)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageResourceSpec ¶
type ImageResourceSpec struct {
// name will be the name of the created Glance image. If not specified, the
// name of the Image object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// protected specifies that the image is protected from deletion.
// If not specified, the default is false.
// +optional
Protected *bool `json:"protected,omitempty"`
// tags is a list of tags which will be applied to the image. A tag has a maximum length of 255 characters.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
Tags []ImageTag `json:"tags,omitempty"`
// visibility of the image
// +optional
Visibility *ImageVisibility `json:"visibility,omitempty"`
// properties is metadata available to consumers of the image
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="properties is immutable"
// +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
func (*ImageResourceSpec) DeepCopy ¶
func (in *ImageResourceSpec) DeepCopy() *ImageResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageResourceSpec.
func (*ImageResourceSpec) DeepCopyInto ¶
func (in *ImageResourceSpec) DeepCopyInto(out *ImageResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageResourceStatus ¶
type ImageResourceStatus struct {
// name is a Human-readable name for the image. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// status is the image status as reported by Glance
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// protected specifies that the image is protected from deletion.
// +optional
Protected bool `json:"protected,omitempty"`
// visibility of the image
// +kubebuilder:validation:MaxLength=1024
// +optional
Visibility string `json:"visibility,omitempty"`
// hash is the hash of the image data published by Glance. Note that this is
// a hash of the data stored internally by Glance, which will have been
// decompressed and potentially format converted depending on server-side
// configuration which is not visible to clients. It is expected that this
// hash will usually differ from the download hash.
// +optional
Hash *ImageHash `json:"hash,omitempty"`
// sizeB is the size of the image data, in bytes
// +optional
SizeB *int64 `json:"sizeB,omitempty"`
// virtualSizeB is the size of the disk the image data represents, in bytes
// +optional
VirtualSizeB *int64 `json:"virtualSizeB,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems:=64
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
}
ImageResourceStatus represents the observed state of a Glance image
func (*ImageResourceStatus) DeepCopy ¶
func (in *ImageResourceStatus) DeepCopy() *ImageResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageResourceStatus.
func (*ImageResourceStatus) DeepCopyInto ¶
func (in *ImageResourceStatus) DeepCopyInto(out *ImageResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageSpec ¶
type ImageSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *ImageImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *ImageResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
ImageSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed" +kubebuilder:validation:XValidation:rule="!has(self.__import__) ? has(self.resource.content) : true",message="resource content must be specified when not importing"
func (*ImageSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.
func (*ImageSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageStatus ¶
type ImageStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *ImageResourceStatus `json:"resource,omitempty"`
ImageStatusExtra `json:",inline"`
}
ImageStatus defines the observed state of an ORC resource.
func (*ImageStatus) DeepCopy ¶
func (in *ImageStatus) DeepCopy() *ImageStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStatus.
func (*ImageStatus) DeepCopyInto ¶
func (in *ImageStatus) DeepCopyInto(out *ImageStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageStatusExtra ¶
type ImageStatusExtra struct {
// downloadAttempts is the number of times the controller has attempted to download the image contents
// +optional
DownloadAttempts *int32 `json:"downloadAttempts,omitempty"`
}
func (*ImageStatusExtra) DeepCopy ¶
func (in *ImageStatusExtra) DeepCopy() *ImageStatusExtra
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStatusExtra.
func (*ImageStatusExtra) DeepCopyInto ¶
func (in *ImageStatusExtra) DeepCopyInto(out *ImageStatusExtra)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageTag ¶
type ImageTag string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255
type ImageVisibility ¶
type ImageVisibility string
+kubebuilder:validation:Enum:=public;private;shared;community
const ( ImageVisibilityPublic ImageVisibility = "public" ImageVisibilityPrivate ImageVisibility = "private" ImageVisibilityCommunity ImageVisibility = "community" )
type KeyPair ¶ added in v2.4.0
type KeyPair struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec KeyPairSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status KeyPairStatus `json:"status,omitempty"`
}
KeyPair is the Schema for an ORC resource.
func (*KeyPair) DeepCopy ¶ added in v2.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyPair.
func (*KeyPair) DeepCopyInto ¶ added in v2.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KeyPair) DeepCopyObject ¶ added in v2.4.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*KeyPair) GetCloudCredentialsRef ¶ added in v2.4.0
func (i *KeyPair) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*KeyPair) GetConditions ¶ added in v2.4.0
type KeyPairFilter ¶ added in v2.4.0
type KeyPairFilter struct {
// name of the existing Keypair
// +optional
Name *OpenStackName `json:"name,omitempty"`
}
KeyPairFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*KeyPairFilter) DeepCopy ¶ added in v2.4.0
func (in *KeyPairFilter) DeepCopy() *KeyPairFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyPairFilter.
func (*KeyPairFilter) DeepCopyInto ¶ added in v2.4.0
func (in *KeyPairFilter) DeepCopyInto(out *KeyPairFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KeyPairImport ¶ added in v2.4.0
type KeyPairImport struct {
// id contains the name of an existing resource. Note: This resource uses
// the resource name as the unique identifier, not a UUID.
// 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
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 *KeyPairFilter `json:"filter,omitempty"`
}
KeyPairImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*KeyPairImport) DeepCopy ¶ added in v2.4.0
func (in *KeyPairImport) DeepCopy() *KeyPairImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyPairImport.
func (*KeyPairImport) DeepCopyInto ¶ added in v2.4.0
func (in *KeyPairImport) DeepCopyInto(out *KeyPairImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KeyPairList ¶ added in v2.4.0
type KeyPairList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of KeyPair.
// +required
Items []KeyPair `json:"items"`
}
KeyPairList contains a list of KeyPair.
func (*KeyPairList) DeepCopy ¶ added in v2.4.0
func (in *KeyPairList) DeepCopy() *KeyPairList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyPairList.
func (*KeyPairList) DeepCopyInto ¶ added in v2.4.0
func (in *KeyPairList) DeepCopyInto(out *KeyPairList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KeyPairList) DeepCopyObject ¶ added in v2.4.0
func (in *KeyPairList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*KeyPairList) GetItems ¶ added in v2.4.0
func (l *KeyPairList) GetItems() []KeyPair
type KeyPairResourceSpec ¶ added in v2.4.0
type KeyPairResourceSpec 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"`
// type specifies the type of the Keypair. Allowed values are ssh or x509.
// If not specified, defaults to ssh.
// +kubebuilder:validation:Enum=ssh;x509
// +optional
Type *string `json:"type,omitempty"`
// publicKey is the public key to import.
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=16384
// +required
PublicKey string `json:"publicKey,omitempty"`
}
KeyPairResourceSpec contains the desired state of the resource.
func (*KeyPairResourceSpec) DeepCopy ¶ added in v2.4.0
func (in *KeyPairResourceSpec) DeepCopy() *KeyPairResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyPairResourceSpec.
func (*KeyPairResourceSpec) DeepCopyInto ¶ added in v2.4.0
func (in *KeyPairResourceSpec) DeepCopyInto(out *KeyPairResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KeyPairResourceStatus ¶ added in v2.4.0
type KeyPairResourceStatus struct {
// name is a Human-readable name for the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// fingerprint is the fingerprint of the public key
// +kubebuilder:validation:MaxLength=1024
// +optional
Fingerprint string `json:"fingerprint,omitempty"`
// publicKey is the public key of the Keypair
// +kubebuilder:validation:MaxLength=16384
// +optional
PublicKey string `json:"publicKey,omitempty"`
// type is the type of the Keypair (ssh or x509)
// +kubebuilder:validation:MaxLength=64
// +optional
Type string `json:"type,omitempty"`
}
KeyPairResourceStatus represents the observed state of the resource.
func (*KeyPairResourceStatus) DeepCopy ¶ added in v2.4.0
func (in *KeyPairResourceStatus) DeepCopy() *KeyPairResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyPairResourceStatus.
func (*KeyPairResourceStatus) DeepCopyInto ¶ added in v2.4.0
func (in *KeyPairResourceStatus) DeepCopyInto(out *KeyPairResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KeyPairSpec ¶ added in v2.4.0
type KeyPairSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *KeyPairImport `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 *KeyPairResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
KeyPairSpec 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 (*KeyPairSpec) DeepCopy ¶ added in v2.4.0
func (in *KeyPairSpec) DeepCopy() *KeyPairSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyPairSpec.
func (*KeyPairSpec) DeepCopyInto ¶ added in v2.4.0
func (in *KeyPairSpec) DeepCopyInto(out *KeyPairSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KeyPairStatus ¶ added in v2.4.0
type KeyPairStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *KeyPairResourceStatus `json:"resource,omitempty"`
}
KeyPairStatus defines the observed state of an ORC resource.
func (*KeyPairStatus) DeepCopy ¶ added in v2.4.0
func (in *KeyPairStatus) DeepCopy() *KeyPairStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyPairStatus.
func (*KeyPairStatus) DeepCopyInto ¶ added in v2.4.0
func (in *KeyPairStatus) DeepCopyInto(out *KeyPairStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KeystoneName ¶ added in v2.1.0
type KeystoneName string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=64
type KeystoneTag ¶ added in v2.1.0
type KeystoneTag string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255
type KubernetesNameRef ¶
type KubernetesNameRef string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=253
type MAC ¶
type MAC string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=17
type ManagedOptions ¶
type ManagedOptions struct {
// onDelete specifies the behaviour of the controller when the ORC
// object is deleted. Options are `delete` - delete the OpenStack resource;
// `detach` - do not delete the OpenStack resource. If not specified, the
// default is `delete`.
// +kubebuilder:default:=delete
// +optional
OnDelete OnDelete `json:"onDelete,omitempty"`
}
func (*ManagedOptions) DeepCopy ¶
func (in *ManagedOptions) DeepCopy() *ManagedOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedOptions.
func (*ManagedOptions) DeepCopyInto ¶
func (in *ManagedOptions) DeepCopyInto(out *ManagedOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ManagedOptions) GetOnDelete ¶
func (o *ManagedOptions) GetOnDelete() OnDelete
GetOnDelete returns the delete behaviour from ManagedOptions. If called on a nil receiver it safely returns the default.
type ManagementPolicy ¶
type ManagementPolicy string
+kubebuilder:validation:Enum:=managed;unmanaged
const ( // ManagementPolicyManaged specifies that the controller will reconcile the // state of the referenced OpenStack resource with the state of the ORC // object. ManagementPolicyManaged ManagementPolicy = "managed" // ManagementPolicyUnmanaged specifies that the controller will expect the // resource to either exist already or to be created externally. The // controller will not make any changes to the referenced OpenStack // resource. ManagementPolicyUnmanaged ManagementPolicy = "unmanaged" )
type Network ¶
type Network struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec NetworkSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status NetworkStatus `json:"status,omitempty"`
}
Network is the Schema for an ORC resource.
func (*Network) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network.
func (*Network) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Network) DeepCopyObject ¶
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 ¶
type NetworkFilter ¶
type NetworkFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// external indicates whether the network has an external routing
// facility that’s not managed by the networking service.
// +optional
External *bool `json:"external,omitempty"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
FilterByNeutronTags `json:",inline"`
}
NetworkFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*NetworkFilter) DeepCopy ¶
func (in *NetworkFilter) DeepCopy() *NetworkFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkFilter.
func (*NetworkFilter) DeepCopyInto ¶
func (in *NetworkFilter) DeepCopyInto(out *NetworkFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkImport ¶
type NetworkImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *NetworkFilter `json:"filter,omitempty"`
}
NetworkImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*NetworkImport) DeepCopy ¶
func (in *NetworkImport) DeepCopy() *NetworkImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkImport.
func (*NetworkImport) DeepCopyInto ¶
func (in *NetworkImport) DeepCopyInto(out *NetworkImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkList ¶
type NetworkList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Network.
// +required
Items []Network `json:"items"`
}
NetworkList contains a list of Network.
func (*NetworkList) DeepCopy ¶
func (in *NetworkList) DeepCopy() *NetworkList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkList.
func (*NetworkList) DeepCopyInto ¶
func (in *NetworkList) DeepCopyInto(out *NetworkList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NetworkList) DeepCopyObject ¶
func (in *NetworkList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*NetworkList) GetItems ¶
func (l *NetworkList) GetItems() []Network
type NetworkResourceSpec ¶
type NetworkResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// tags is a list of tags which will be applied to the network.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
// adminStateUp is the administrative state of the network, which is up (true) or down (false)
// +optional
AdminStateUp *bool `json:"adminStateUp,omitempty"`
// dnsDomain is the DNS domain of the network
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="dnsDomain is immutable"
DNSDomain *DNSDomain `json:"dnsDomain,omitempty"`
// mtu is the the maximum transmission unit value to address
// fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6.
// Defaults to 1500.
// +optional
MTU *MTU `json:"mtu,omitempty"`
// portSecurityEnabled is the port security status of the network.
// Valid values are enabled (true) and disabled (false). This value is
// used as the default value of port_security_enabled field of a newly
// created port.
// +optional
PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty"`
// external indicates whether the network has an external routing
// facility that’s not managed by the networking service.
// +optional
External *bool `json:"external,omitempty"`
// projects. By default, only administrative users can change this
// value.
// +optional
Shared *bool `json:"shared,omitempty"`
// availabilityZoneHints is the availability zone candidate for the network.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="availabilityZoneHints is immutable"
AvailabilityZoneHints []AvailabilityZoneHint `json:"availabilityZoneHints,omitempty"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="projectRef is immutable"
ProjectRef *KubernetesNameRef `json:"projectRef,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 {
// name is a Human-readable name for the network. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// projectID is the project owner of the network.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// status indicates whether network is currently operational. Possible values
// include `ACTIVE', `DOWN', `BUILD', or `ERROR'. Plug-ins might define
// additional values.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems=64
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
NeutronStatusMetadata `json:",inline"`
// adminStateUp is the administrative state of the network,
// which is up (true) or down (false).
// +optional
AdminStateUp *bool `json:"adminStateUp"`
// availabilityZoneHints is the availability zone candidate for the
// network.
// +kubebuilder:validation:MaxItems=64
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
AvailabilityZoneHints []string `json:"availabilityZoneHints,omitempty"`
// dnsDomain is the DNS domain of the network
// +kubebuilder:validation:MaxLength=1024
// +optional
DNSDomain string `json:"dnsDomain,omitempty"`
// mtu is the the maximum transmission unit value to address
// fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6.
// +optional
MTU *int32 `json:"mtu,omitempty"`
// portSecurityEnabled is the port security status of the network.
// Valid values are enabled (true) and disabled (false). This value is
// used as the default value of port_security_enabled field of a newly
// created port.
// +optional
PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty"`
// provider contains provider-network properties.
// +optional
Provider *ProviderPropertiesStatus `json:"provider,omitempty"`
// external defines whether the network may be used for creation of
// floating IPs. Only networks with this flag may be an external
// gateway for routers. The network must have an external routing
// facility that is not managed by the networking service. If the
// network is updated from external to internal the unused floating IPs
// of this network are automatically deleted when extension
// floatingip-autodelete-internal is present.
// +optional
External *bool `json:"external,omitempty"`
// tenant.
// +optional
Shared *bool `json:"shared,omitempty"`
// subnets associated with this network.
// +kubebuilder:validation:MaxItems=256
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Subnets []string `json:"subnets,omitempty"`
}
NetworkResourceStatus represents the observed state of the resource.
func (*NetworkResourceStatus) DeepCopy ¶
func (in *NetworkResourceStatus) DeepCopy() *NetworkResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkResourceStatus.
func (*NetworkResourceStatus) DeepCopyInto ¶
func (in *NetworkResourceStatus) DeepCopyInto(out *NetworkResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkSpec ¶
type NetworkSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *NetworkImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *NetworkResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
NetworkSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*NetworkSpec) DeepCopy ¶
func (in *NetworkSpec) DeepCopy() *NetworkSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSpec.
func (*NetworkSpec) DeepCopyInto ¶
func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkStatus ¶
type NetworkStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *NetworkResourceStatus `json:"resource,omitempty"`
}
NetworkStatus defines the observed state of an ORC resource.
func (*NetworkStatus) DeepCopy ¶
func (in *NetworkStatus) DeepCopy() *NetworkStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkStatus.
func (*NetworkStatus) DeepCopyInto ¶
func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NeutronDescription ¶
type NeutronDescription string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255
type NeutronStatusMetadata ¶
type NeutronStatusMetadata struct {
// createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601
// +optional
CreatedAt *metav1.Time `json:"createdAt,omitempty"`
// updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601
// +optional
UpdatedAt *metav1.Time `json:"updatedAt,omitempty"`
// revisionNumber optionally set via extensions/standard-attr-revisions
// +optional
RevisionNumber *int64 `json:"revisionNumber,omitempty"`
}
func (*NeutronStatusMetadata) DeepCopy ¶
func (in *NeutronStatusMetadata) DeepCopy() *NeutronStatusMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NeutronStatusMetadata.
func (*NeutronStatusMetadata) DeepCopyInto ¶
func (in *NeutronStatusMetadata) DeepCopyInto(out *NeutronStatusMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NeutronTag ¶
type NeutronTag string
NeutronTag represents a tag on a Neutron resource. It may not be empty and may not contain commas. +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255
type ObjectWithConditions ¶
ObjectWithConditions is a metav1.Object which also stores conditions in its status. +kubebuilder:object:generate:=false
type OnDelete ¶
type OnDelete string
+kubebuilder:validation:Enum:=delete;detach
const ( // OnDeleteDelete specifies that the OpenStack resource will be deleted // when the managed ORC object is deleted. OnDeleteDelete OnDelete = "delete" // OnDeleteDetach specifies that the OpenStack resource will not be // deleted when the managed ORC object is deleted. OnDeleteDetach OnDelete = "detach" )
type OpenStackName ¶
type OpenStackName string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255 +kubebuilder:validation:Pattern:="^[^,]+$"
type Port ¶
type Port struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec PortSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status PortStatus `json:"status,omitempty"`
}
Port is the Schema for an ORC resource.
func (*Port) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Port.
func (*Port) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Port) DeepCopyObject ¶
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 ¶
type PortFilter ¶
type PortFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// networkRef is a reference to the ORC Network which this port is associated with.
// +optional
NetworkRef KubernetesNameRef `json:"networkRef"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
ProjectRef *KubernetesNameRef `json:"projectRef,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"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Port.
// +required
Items []Port `json:"items"`
}
PortList contains a list of Port.
func (*PortList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortList.
func (*PortList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PortList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PortNumber ¶
type PortNumber int32
+kubebuilder:validation:Minimum:=0 +kubebuilder:validation:Maximum:=65535
type PortRangeSpec ¶
type PortRangeSpec struct {
// min is the minimum port number in the range that is matched by the security group rule.
// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal
// to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type
// +required
Min PortNumber `json:"min"`
// max is the maximum port number in the range that is matched by the security group rule.
// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal
// to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.
// +required
Max PortNumber `json:"max"`
}
func (*PortRangeSpec) DeepCopy ¶
func (in *PortRangeSpec) DeepCopy() *PortRangeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRangeSpec.
func (*PortRangeSpec) DeepCopyInto ¶
func (in *PortRangeSpec) DeepCopyInto(out *PortRangeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortRangeStatus ¶
type PortRangeStatus struct {
// min is the minimum port number in the range that is matched by the security group rule.
// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal
// to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type
// +optional
Min int32 `json:"min"`
// max is the maximum port number in the range that is matched by the security group rule.
// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal
// to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.
// +optional
Max int32 `json:"max"`
}
func (*PortRangeStatus) DeepCopy ¶
func (in *PortRangeStatus) DeepCopy() *PortRangeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRangeStatus.
func (*PortRangeStatus) DeepCopyInto ¶
func (in *PortRangeStatus) DeepCopyInto(out *PortRangeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortResourceSpec ¶
type PortResourceSpec struct {
// name is a human-readable name of the port. If not set, the object's name will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// networkRef is a reference to the ORC Network which this port is associated with.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="networkRef is immutable"
NetworkRef KubernetesNameRef `json:"networkRef,omitempty"`
// tags is a list of tags which will be applied to the port.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
// allowedAddressPairs are allowed addresses associated with this port.
// +kubebuilder:validation:MaxItems:=128
// +listType=atomic
// +optional
AllowedAddressPairs []AllowedAddressPair `json:"allowedAddressPairs,omitempty"`
// addresses are the IP addresses for the port.
// +kubebuilder:validation:MaxItems:=128
// +listType=atomic
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="addresses is immutable"
Addresses []Address `json:"addresses,omitempty"`
// securityGroupRefs are the names of the security groups associated
// with this port.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
SecurityGroupRefs []OpenStackName `json:"securityGroupRefs,omitempty"`
// vnicType specifies the type of vNIC which this port should be
// attached to. This is used to determine which mechanism driver(s) to
// be used to bind the port. The valid values are normal, macvtap,
// direct, baremetal, direct-physical, virtio-forwarder, smart-nic and
// remote-managed, although these values will not be validated in this
// API to ensure compatibility with future neutron changes or custom
// implementations. What type of vNIC is actually available depends on
// deployments. If not specified, the Neutron default value is used.
// +kubebuilder:validation:MaxLength:=64
// +optional
VNICType string `json:"vnicType,omitempty"`
// portSecurity controls port security for this port.
// When set to Enabled, port security is enabled.
// When set to Disabled, port security is disabled and SecurityGroupRefs must be empty.
// When set to Inherit (default), it takes the value from the network level.
// +kubebuilder:default=Inherit
// +optional
// +kubebuilder:validation:XValidation:rule="!(oldSelf != 'Inherit' && self == 'Inherit')",message="portSecurity cannot be changed to Inherit"
PortSecurity PortSecurityState `json:"portSecurity,omitempty"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="projectRef is immutable"
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
}
+kubebuilder:validation:XValidation:rule="has(self.portSecurity) && self.portSecurity == 'Disabled' ? !has(self.securityGroupRefs) : true",message="securityGroupRefs must be empty when portSecurity is set to Disabled" +kubebuilder:validation:XValidation:rule="has(self.portSecurity) && self.portSecurity == 'Disabled' ? !has(self.allowedAddressPairs) : true",message="allowedAddressPairs must be empty when portSecurity is set to Disabled"
func (*PortResourceSpec) DeepCopy ¶
func (in *PortResourceSpec) DeepCopy() *PortResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortResourceSpec.
func (*PortResourceSpec) DeepCopyInto ¶
func (in *PortResourceSpec) DeepCopyInto(out *PortResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortResourceStatus ¶
type PortResourceStatus struct {
// name is the human-readable name of the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// networkID is the ID of the attached network.
// +kubebuilder:validation:MaxLength=1024
// +optional
NetworkID string `json:"networkID,omitempty"`
// projectID is the project owner of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// status indicates the current status of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems=64
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
// adminStateUp is the administrative state of the port,
// which is up (true) or down (false).
// +optional
AdminStateUp *bool `json:"adminStateUp,omitempty"`
// macAddress is the MAC address of the port.
// +kubebuilder:validation:MaxLength=1024
// +optional
MACAddress string `json:"macAddress,omitempty"`
// deviceID is the ID of the device that uses this port.
// +kubebuilder:validation:MaxLength=1024
// +optional
DeviceID string `json:"deviceID,omitempty"`
// deviceOwner is the entity type that uses this port.
// +kubebuilder:validation:MaxLength=1024
// +optional
DeviceOwner string `json:"deviceOwner,omitempty"`
// allowedAddressPairs is a set of zero or more allowed address pair
// objects each where address pair object contains an IP address and
// MAC address.
// +kubebuilder:validation:MaxItems=128
// +listType=atomic
// +optional
AllowedAddressPairs []AllowedAddressPairStatus `json:"allowedAddressPairs,omitempty"`
// fixedIPs is a set of zero or more fixed IP objects each where fixed
// IP object contains an IP address and subnet ID from which the IP
// address is assigned.
// +kubebuilder:validation:MaxItems=128
// +listType=atomic
// +optional
FixedIPs []FixedIPStatus `json:"fixedIPs,omitempty"`
// securityGroups contains the IDs of security groups applied to the port.
// +kubebuilder:validation:MaxItems=64
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
SecurityGroups []string `json:"securityGroups,omitempty"`
// propagateUplinkStatus represents the uplink status propagation of
// the port.
// +optional
PropagateUplinkStatus *bool `json:"propagateUplinkStatus,omitempty"`
// vnicType is the type of vNIC which this port is attached to.
// +kubebuilder:validation:MaxLength:=64
// +optional
VNICType string `json:"vnicType,omitempty"`
// portSecurityEnabled indicates whether port security is enabled or not.
// +optional
PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty"`
NeutronStatusMetadata `json:",inline"`
}
func (*PortResourceStatus) DeepCopy ¶
func (in *PortResourceStatus) DeepCopy() *PortResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortResourceStatus.
func (*PortResourceStatus) DeepCopyInto ¶
func (in *PortResourceStatus) DeepCopyInto(out *PortResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortSecurityState ¶ added in v2.1.0
type PortSecurityState string
PortSecurityState represents the security state of a port +kubebuilder:validation:Enum=Enabled;Disabled;Inherit
const ( // PortSecurityEnabled means port security is enabled PortSecurityEnabled PortSecurityState = "Enabled" // PortSecurityDisabled means port security is disabled PortSecurityDisabled PortSecurityState = "Disabled" // PortSecurityInherit means port security settings are inherited from the network PortSecurityInherit PortSecurityState = "Inherit" )
type PortSpec ¶
type PortSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *PortImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *PortResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
PortSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*PortSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortSpec.
func (*PortSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortStatus ¶
type PortStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *PortResourceStatus `json:"resource,omitempty"`
}
PortStatus defines the observed state of an ORC resource.
func (*PortStatus) DeepCopy ¶
func (in *PortStatus) DeepCopy() *PortStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortStatus.
func (*PortStatus) DeepCopyInto ¶
func (in *PortStatus) DeepCopyInto(out *PortStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Project ¶ added in v2.1.0
type Project struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec ProjectSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status ProjectStatus `json:"status,omitempty"`
}
Project is the Schema for an ORC resource.
func (*Project) DeepCopy ¶ added in v2.1.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Project.
func (*Project) DeepCopyInto ¶ added in v2.1.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Project) DeepCopyObject ¶ added in v2.1.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Project) GetCloudCredentialsRef ¶ added in v2.1.0
func (i *Project) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Project) GetConditions ¶ added in v2.1.0
type ProjectFilter ¶ added in v2.1.0
type ProjectFilter struct {
// name of the existing resource
// +optional
Name *KeystoneName `json:"name,omitempty"`
FilterByKeystoneTags `json:",inline"`
}
ProjectFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*ProjectFilter) DeepCopy ¶ added in v2.1.0
func (in *ProjectFilter) DeepCopy() *ProjectFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectFilter.
func (*ProjectFilter) DeepCopyInto ¶ added in v2.1.0
func (in *ProjectFilter) DeepCopyInto(out *ProjectFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProjectImport ¶ added in v2.1.0
type ProjectImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *ProjectFilter `json:"filter,omitempty"`
}
ProjectImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*ProjectImport) DeepCopy ¶ added in v2.1.0
func (in *ProjectImport) DeepCopy() *ProjectImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectImport.
func (*ProjectImport) DeepCopyInto ¶ added in v2.1.0
func (in *ProjectImport) DeepCopyInto(out *ProjectImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProjectList ¶ added in v2.1.0
type ProjectList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Project.
// +required
Items []Project `json:"items"`
}
ProjectList contains a list of Project.
func (*ProjectList) DeepCopy ¶ added in v2.1.0
func (in *ProjectList) DeepCopy() *ProjectList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectList.
func (*ProjectList) DeepCopyInto ¶ added in v2.1.0
func (in *ProjectList) DeepCopyInto(out *ProjectList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProjectList) DeepCopyObject ¶ added in v2.1.0
func (in *ProjectList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ProjectList) GetItems ¶ added in v2.1.0
func (l *ProjectList) GetItems() []Project
type ProjectResourceSpec ¶ added in v2.1.0
type ProjectResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *KeystoneName `json:"name,omitempty"`
// description contains a free form description of the project.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=65535
// +optional
Description *string `json:"description,omitempty"`
// enabled defines whether a project is enabled or not. Default is true.
// +optional
Enabled *bool `json:"enabled,omitempty"`
// tags is list of simple strings assigned to a project.
// Tags can be used to classify projects into groups.
// +kubebuilder:validation:MaxItems:=80
// +listType=set
// +optional
Tags []KeystoneTag `json:"tags,omitempty"`
}
ProjectResourceSpec contains the desired state of a project
func (*ProjectResourceSpec) DeepCopy ¶ added in v2.1.0
func (in *ProjectResourceSpec) DeepCopy() *ProjectResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectResourceSpec.
func (*ProjectResourceSpec) DeepCopyInto ¶ added in v2.1.0
func (in *ProjectResourceSpec) DeepCopyInto(out *ProjectResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProjectResourceStatus ¶ added in v2.1.0
type ProjectResourceStatus struct {
// name is a Human-readable name for the project. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength:=65535
// +optional
Description string `json:"description,omitempty"`
// enabled represents whether a project is enabled or not.
// +optional
Enabled *bool `json:"enabled,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems=80
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
}
ProjectResourceStatus represents the observed state of the resource.
func (*ProjectResourceStatus) DeepCopy ¶ added in v2.1.0
func (in *ProjectResourceStatus) DeepCopy() *ProjectResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectResourceStatus.
func (*ProjectResourceStatus) DeepCopyInto ¶ added in v2.1.0
func (in *ProjectResourceStatus) DeepCopyInto(out *ProjectResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProjectSpec ¶ added in v2.1.0
type ProjectSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *ProjectImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *ProjectResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
ProjectSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*ProjectSpec) DeepCopy ¶ added in v2.1.0
func (in *ProjectSpec) DeepCopy() *ProjectSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectSpec.
func (*ProjectSpec) DeepCopyInto ¶ added in v2.1.0
func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProjectStatus ¶ added in v2.1.0
type ProjectStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *ProjectResourceStatus `json:"resource,omitempty"`
}
ProjectStatus defines the observed state of an ORC resource.
func (*ProjectStatus) DeepCopy ¶ added in v2.1.0
func (in *ProjectStatus) DeepCopy() *ProjectStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectStatus.
func (*ProjectStatus) DeepCopyInto ¶ added in v2.1.0
func (in *ProjectStatus) DeepCopyInto(out *ProjectStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Protocol ¶
type Protocol string
+kubebuilder:validation:Enum:=ah;dccp;egp;esp;gre;icmp;icmpv6;igmp;ipip;ipv6-encap;ipv6-frag;ipv6-icmp;ipv6-nonxt;ipv6-opts;ipv6-route;ospf;pgm;rsvp;sctp;tcp;udp;udplite;vrrp
const ( ProtocolAH Protocol = "ah" ProtocolDCCP Protocol = "dccp" ProtocolEGP Protocol = "egp" ProtocolESP Protocol = "esp" ProtocolGRE Protocol = "gre" ProtocolICMP Protocol = "icmp" ProtocolICMPV6 Protocol = "icmpv6" ProtocolIGMP Protocol = "igmp" ProtocolIPIP Protocol = "ipip" ProtocolIPV6ENCAP Protocol = "ipv6-encap" ProtocolIPV6FRAG Protocol = "ipv6-frag" ProtocolIPV6ICMP Protocol = "ipv6-icmp" ProtocolIPV6NONXT Protocol = "ipv6-nonxt" ProtocolIPV6OPTS Protocol = "ipv6-opts" ProtocolIPV6ROUTE Protocol = "ipv6-route" ProtocolOSPF Protocol = "ospf" ProtocolPGM Protocol = "pgm" ProtocolRSVP Protocol = "rsvp" ProtocolSCTP Protocol = "sctp" ProtocolTCP Protocol = "tcp" ProtocolUDP Protocol = "udp" ProtocolUDPLITE Protocol = "udplite" ProtocolVRRP Protocol = "vrrp" )
type ProviderPropertiesStatus ¶
type ProviderPropertiesStatus struct {
// networkType is the type of physical network that this
// network should be mapped to. Supported values are flat, vlan, vxlan, and gre.
// Valid values depend on the networking back-end.
// +kubebuilder:validation:MaxLength=1024
// +optional
NetworkType string `json:"networkType,omitempty"`
// physicalNetwork is the physical network where this network
// should be implemented. The Networking API v2.0 does not provide a
// way to list available physical networks. For example, the Open
// vSwitch plug-in configuration file defines a symbolic name that maps
// to specific bridges on each compute host.
// +kubebuilder:validation:MaxLength=1024
// +optional
PhysicalNetwork string `json:"physicalNetwork,omitempty"`
// segmentationID is the ID of the isolated segment on the
// physical network. The network_type attribute defines the
// segmentation model. For example, if the network_type value is vlan,
// this ID is a vlan identifier. If the network_type value is gre, this
// ID is a gre key.
// +optional
SegmentationID *int32 `json:"segmentationID,omitempty"`
}
func (*ProviderPropertiesStatus) DeepCopy ¶
func (in *ProviderPropertiesStatus) DeepCopy() *ProviderPropertiesStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderPropertiesStatus.
func (*ProviderPropertiesStatus) DeepCopyInto ¶
func (in *ProviderPropertiesStatus) DeepCopyInto(out *ProviderPropertiesStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Role ¶ added in v2.4.0
type Role struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec RoleSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status RoleStatus `json:"status,omitempty"`
}
Role is the Schema for an ORC resource.
func (*Role) DeepCopy ¶ added in v2.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Role.
func (*Role) DeepCopyInto ¶ added in v2.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Role) DeepCopyObject ¶ added in v2.4.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Role) GetCloudCredentialsRef ¶ added in v2.4.0
func (i *Role) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Role) GetConditions ¶ added in v2.4.0
type RoleFilter ¶ added in v2.4.0
type RoleFilter struct {
// name of the existing resource
// +optional
Name *KeystoneName `json:"name,omitempty"`
// domainRef is a reference to the ORC Domain which this resource is associated with.
// +optional
DomainRef *KubernetesNameRef `json:"domainRef,omitempty"`
}
RoleFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*RoleFilter) DeepCopy ¶ added in v2.4.0
func (in *RoleFilter) DeepCopy() *RoleFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleFilter.
func (*RoleFilter) DeepCopyInto ¶ added in v2.4.0
func (in *RoleFilter) DeepCopyInto(out *RoleFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleImport ¶ added in v2.4.0
type RoleImport 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 *RoleFilter `json:"filter,omitempty"`
}
RoleImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*RoleImport) DeepCopy ¶ added in v2.4.0
func (in *RoleImport) DeepCopy() *RoleImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleImport.
func (*RoleImport) DeepCopyInto ¶ added in v2.4.0
func (in *RoleImport) DeepCopyInto(out *RoleImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleList ¶ added in v2.4.0
type RoleList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Role.
// +required
Items []Role `json:"items"`
}
RoleList contains a list of Role.
func (*RoleList) DeepCopy ¶ added in v2.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleList.
func (*RoleList) DeepCopyInto ¶ added in v2.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RoleList) DeepCopyObject ¶ added in v2.4.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RoleResourceSpec ¶ added in v2.4.0
type RoleResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *KeystoneName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
Description *string `json:"description,omitempty"`
// domainRef is a reference to the ORC Domain which this resource is associated with.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="domainRef is immutable"
DomainRef *KubernetesNameRef `json:"domainRef,omitempty"`
}
RoleResourceSpec contains the desired state of the resource.
func (*RoleResourceSpec) DeepCopy ¶ added in v2.4.0
func (in *RoleResourceSpec) DeepCopy() *RoleResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleResourceSpec.
func (*RoleResourceSpec) DeepCopyInto ¶ added in v2.4.0
func (in *RoleResourceSpec) DeepCopyInto(out *RoleResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleResourceStatus ¶ added in v2.4.0
type RoleResourceStatus struct {
// name is a Human-readable name for the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// domainID is the ID of the Domain to which the resource is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
DomainID string `json:"domainID,omitempty"`
}
RoleResourceStatus represents the observed state of the resource.
func (*RoleResourceStatus) DeepCopy ¶ added in v2.4.0
func (in *RoleResourceStatus) DeepCopy() *RoleResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleResourceStatus.
func (*RoleResourceStatus) DeepCopyInto ¶ added in v2.4.0
func (in *RoleResourceStatus) DeepCopyInto(out *RoleResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleSpec ¶ added in v2.4.0
type RoleSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *RoleImport `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 *RoleResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
RoleSpec 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 (*RoleSpec) DeepCopy ¶ added in v2.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleSpec.
func (*RoleSpec) DeepCopyInto ¶ added in v2.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleStatus ¶ added in v2.4.0
type RoleStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *RoleResourceStatus `json:"resource,omitempty"`
}
RoleStatus defines the observed state of an ORC resource.
func (*RoleStatus) DeepCopy ¶ added in v2.4.0
func (in *RoleStatus) DeepCopy() *RoleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleStatus.
func (*RoleStatus) DeepCopyInto ¶ added in v2.4.0
func (in *RoleStatus) DeepCopyInto(out *RoleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Router ¶
type Router struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec RouterSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status RouterStatus `json:"status,omitempty"`
}
Router is the Schema for an ORC resource.
func (*Router) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Router.
func (*Router) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Router) DeepCopyObject ¶
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 ¶
type RouterFilter ¶
type RouterFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
FilterByNeutronTags `json:",inline"`
}
RouterFilter specifies a query to select an OpenStack router. At least one property must be set. +kubebuilder:validation:MinProperties:=1
func (*RouterFilter) DeepCopy ¶
func (in *RouterFilter) DeepCopy() *RouterFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterFilter.
func (*RouterFilter) DeepCopyInto ¶
func (in *RouterFilter) DeepCopyInto(out *RouterFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterImport ¶
type RouterImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *RouterFilter `json:"filter,omitempty"`
}
RouterImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*RouterImport) DeepCopy ¶
func (in *RouterImport) DeepCopy() *RouterImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterImport.
func (*RouterImport) DeepCopyInto ¶
func (in *RouterImport) DeepCopyInto(out *RouterImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterInterface ¶
type RouterInterface struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata.
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec RouterInterfaceSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status RouterInterfaceStatus `json:"status,omitempty"`
}
RouterInterface is the Schema for an ORC resource.
func (*RouterInterface) DeepCopy ¶
func (in *RouterInterface) DeepCopy() *RouterInterface
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterface.
func (*RouterInterface) DeepCopyInto ¶
func (in *RouterInterface) DeepCopyInto(out *RouterInterface)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RouterInterface) DeepCopyObject ¶
func (in *RouterInterface) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RouterInterface) GetConditions ¶
func (i *RouterInterface) GetConditions() []metav1.Condition
type RouterInterfaceList ¶
type RouterInterfaceList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata.
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of RouterInterface.
// +kubebuilder:validation:MaxItems:=64
// +required
Items []RouterInterface `json:"items"`
}
RouterInterfaceList contains a list of RouterInterface.
func (*RouterInterfaceList) DeepCopy ¶
func (in *RouterInterfaceList) DeepCopy() *RouterInterfaceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterfaceList.
func (*RouterInterfaceList) DeepCopyInto ¶
func (in *RouterInterfaceList) DeepCopyInto(out *RouterInterfaceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RouterInterfaceList) DeepCopyObject ¶
func (in *RouterInterfaceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RouterInterfaceList) GetItems ¶
func (l *RouterInterfaceList) GetItems() []RouterInterface
type RouterInterfaceSpec ¶
type RouterInterfaceSpec struct {
// type specifies the type of the router interface.
// +required
// +unionDiscriminator
Type RouterInterfaceType `json:"type,omitempty"`
// routerRef references the router to which this interface belongs.
// +required
RouterRef KubernetesNameRef `json:"routerRef,omitempty"`
// subnetRef references the subnet the router interface is created on.
// +unionMember
// +optional
SubnetRef *KubernetesNameRef `json:"subnetRef,omitempty"`
}
+kubebuilder:validation:XValidation:rule="self.type == 'Subnet' ? has(self.subnetRef) : !has(self.subnetRef)",message="subnetRef is required when type is 'Subnet' and not permitted otherwise" +kubebuilder:validation:XValidation:rule="self == oldSelf",message="RouterInterfaceResourceSpec is immutable"
func (*RouterInterfaceSpec) DeepCopy ¶
func (in *RouterInterfaceSpec) DeepCopy() *RouterInterfaceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterfaceSpec.
func (*RouterInterfaceSpec) DeepCopyInto ¶
func (in *RouterInterfaceSpec) DeepCopyInto(out *RouterInterfaceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterInterfaceStatus ¶
type RouterInterfaceStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the port created for the router interface
// +kubebuilder:validation:MaxLength=1024
// +optional
ID *string `json:"id,omitempty"`
}
func (*RouterInterfaceStatus) DeepCopy ¶
func (in *RouterInterfaceStatus) DeepCopy() *RouterInterfaceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterfaceStatus.
func (*RouterInterfaceStatus) DeepCopyInto ¶
func (in *RouterInterfaceStatus) DeepCopyInto(out *RouterInterfaceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterInterfaceType ¶
type RouterInterfaceType string
+kubebuilder:validation:Enum:=Subnet +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=8
const (
RouterInterfaceTypeSubnet RouterInterfaceType = "Subnet"
)
type RouterList ¶
type RouterList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Router.
// +required
Items []Router `json:"items"`
}
RouterList contains a list of Router.
func (*RouterList) DeepCopy ¶
func (in *RouterList) DeepCopy() *RouterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterList.
func (*RouterList) DeepCopyInto ¶
func (in *RouterList) DeepCopyInto(out *RouterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RouterList) DeepCopyObject ¶
func (in *RouterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RouterList) GetItems ¶
func (l *RouterList) GetItems() []Router
type RouterResourceSpec ¶
type RouterResourceSpec struct {
// name is a human-readable name of the router. If not set, the
// object's name will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// tags is a list of tags which will be applied to the router.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
// adminStateUp represents the administrative state of the resource,
// which is up (true) or down (false). Default is true.
// +optional
AdminStateUp *bool `json:"adminStateUp,omitempty"`
// externalGateways is a list of external gateways for the router.
// Multiple gateways are not currently supported by ORC.
// +kubebuilder:validation:MaxItems:=1
// +listType=atomic
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="externalGateways is immutable"
ExternalGateways []ExternalGateway `json:"externalGateways,omitempty"`
// distributed indicates whether the router is distributed or not. It
// is available when dvr extension is enabled.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="distributed is immutable"
Distributed *bool `json:"distributed,omitempty"`
// availabilityZoneHints is the availability zone candidate for the router.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="availabilityZoneHints is immutable"
AvailabilityZoneHints []AvailabilityZoneHint `json:"availabilityZoneHints,omitempty"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="projectRef is immutable"
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
}
func (*RouterResourceSpec) DeepCopy ¶
func (in *RouterResourceSpec) DeepCopy() *RouterResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterResourceSpec.
func (*RouterResourceSpec) DeepCopyInto ¶
func (in *RouterResourceSpec) DeepCopyInto(out *RouterResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterResourceStatus ¶
type RouterResourceStatus struct {
// name is the human-readable name of the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// projectID is the project owner of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// status indicates the current status of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems:=64
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
// adminStateUp is the administrative state of the router,
// which is up (true) or down (false).
// +optional
AdminStateUp *bool `json:"adminStateUp"`
// externalGateways is a list of external gateways for the router.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
ExternalGateways []ExternalGatewayStatus `json:"externalGateways,omitempty"`
// availabilityZoneHints is the availability zone candidate for the
// router.
// +kubebuilder:validation:MaxItems:=64
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
AvailabilityZoneHints []string `json:"availabilityZoneHints,omitempty"`
}
func (*RouterResourceStatus) DeepCopy ¶
func (in *RouterResourceStatus) DeepCopy() *RouterResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterResourceStatus.
func (*RouterResourceStatus) DeepCopyInto ¶
func (in *RouterResourceStatus) DeepCopyInto(out *RouterResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterSpec ¶
type RouterSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *RouterImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *RouterResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
RouterSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*RouterSpec) DeepCopy ¶
func (in *RouterSpec) DeepCopy() *RouterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterSpec.
func (*RouterSpec) DeepCopyInto ¶
func (in *RouterSpec) DeepCopyInto(out *RouterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterStatus ¶
type RouterStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *RouterResourceStatus `json:"resource,omitempty"`
}
RouterStatus defines the observed state of an ORC resource.
func (*RouterStatus) DeepCopy ¶
func (in *RouterStatus) DeepCopy() *RouterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterStatus.
func (*RouterStatus) DeepCopyInto ¶
func (in *RouterStatus) DeepCopyInto(out *RouterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroup ¶
type SecurityGroup struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec SecurityGroupSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status SecurityGroupStatus `json:"status,omitempty"`
}
SecurityGroup is the Schema for an ORC resource.
func (*SecurityGroup) DeepCopy ¶
func (in *SecurityGroup) DeepCopy() *SecurityGroup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroup.
func (*SecurityGroup) DeepCopyInto ¶
func (in *SecurityGroup) DeepCopyInto(out *SecurityGroup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SecurityGroup) DeepCopyObject ¶
func (in *SecurityGroup) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*SecurityGroup) GetCloudCredentialsRef ¶
func (i *SecurityGroup) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*SecurityGroup) GetConditions ¶
func (i *SecurityGroup) GetConditions() []metav1.Condition
type SecurityGroupFilter ¶
type SecurityGroupFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
FilterByNeutronTags `json:",inline"`
}
SecurityGroupFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*SecurityGroupFilter) DeepCopy ¶
func (in *SecurityGroupFilter) DeepCopy() *SecurityGroupFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupFilter.
func (*SecurityGroupFilter) DeepCopyInto ¶
func (in *SecurityGroupFilter) DeepCopyInto(out *SecurityGroupFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupImport ¶
type SecurityGroupImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *SecurityGroupFilter `json:"filter,omitempty"`
}
SecurityGroupImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*SecurityGroupImport) DeepCopy ¶
func (in *SecurityGroupImport) DeepCopy() *SecurityGroupImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupImport.
func (*SecurityGroupImport) DeepCopyInto ¶
func (in *SecurityGroupImport) DeepCopyInto(out *SecurityGroupImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupList ¶
type SecurityGroupList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of SecurityGroup.
// +required
Items []SecurityGroup `json:"items"`
}
SecurityGroupList contains a list of SecurityGroup.
func (*SecurityGroupList) DeepCopy ¶
func (in *SecurityGroupList) DeepCopy() *SecurityGroupList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupList.
func (*SecurityGroupList) DeepCopyInto ¶
func (in *SecurityGroupList) DeepCopyInto(out *SecurityGroupList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SecurityGroupList) DeepCopyObject ¶
func (in *SecurityGroupList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*SecurityGroupList) GetItems ¶
func (l *SecurityGroupList) GetItems() []SecurityGroup
type SecurityGroupResourceSpec ¶
type SecurityGroupResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// tags is a list of tags which will be applied to the security group.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
// stateful indicates if the security group is stateful or stateless.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="stateful is immutable"
Stateful *bool `json:"stateful,omitempty"`
// rules is a list of security group rules belonging to this SG.
// +kubebuilder:validation:MaxItems:=256
// +listType=atomic
// +optional
Rules []SecurityGroupRule `json:"rules,omitempty"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="projectRef is immutable"
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
}
SecurityGroupResourceSpec contains the desired state of a security group
func (*SecurityGroupResourceSpec) DeepCopy ¶
func (in *SecurityGroupResourceSpec) DeepCopy() *SecurityGroupResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupResourceSpec.
func (*SecurityGroupResourceSpec) DeepCopyInto ¶
func (in *SecurityGroupResourceSpec) DeepCopyInto(out *SecurityGroupResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupResourceStatus ¶
type SecurityGroupResourceStatus struct {
// name is a Human-readable name for the security group. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// projectID is the project owner of the security group.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems:=64
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
// stateful indicates if the security group is stateful or stateless.
// +optional
Stateful bool `json:"stateful,omitempty"`
// rules is a list of security group rules belonging to this SG.
// +kubebuilder:validation:MaxItems:=256
// +listType=atomic
// +optional
Rules []SecurityGroupRuleStatus `json:"rules,omitempty"`
NeutronStatusMetadata `json:",inline"`
}
SecurityGroupResourceStatus represents the observed state of the resource.
func (*SecurityGroupResourceStatus) DeepCopy ¶
func (in *SecurityGroupResourceStatus) DeepCopy() *SecurityGroupResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupResourceStatus.
func (*SecurityGroupResourceStatus) DeepCopyInto ¶
func (in *SecurityGroupResourceStatus) DeepCopyInto(out *SecurityGroupResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupRule ¶
type SecurityGroupRule struct {
// description is a human-readable description for the resource.
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// direction represents the direction in which the security group rule
// is applied. Can be ingress or egress.
// +optional
Direction *RuleDirection `json:"direction,omitempty"`
// remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)
// +optional
RemoteIPPrefix *CIDR `json:"remoteIPPrefix,omitempty"`
// protocol is the IP protocol is represented by a string
// +optional
Protocol *Protocol `json:"protocol,omitempty"`
// ethertype must be IPv4 or IPv6, and addresses represented in CIDR
// must match the ingress or egress rules.
// +required
Ethertype Ethertype `json:"ethertype,omitempty"`
// portRange sets the minimum and maximum ports range that the security group rule
// matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than
// or equal to the PortRange.Max attribute value.
// If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max
// should be an ICMP type
// +optional
PortRange *PortRangeSpec `json:"portRange,omitempty"`
}
SecurityGroupRule defines a Security Group rule +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:XValidation:rule="(!has(self.portRange)|| !(self.protocol == 'tcp'|| self.protocol == 'udp' || self.protocol == 'dccp' || self.protocol == 'sctp' || self.protocol == 'udplite') || (self.portRange.min <= self.portRange.max))",message="portRangeMax should be equal or greater than portRange.min" +kubebuilder:validation:XValidation:rule="!(self.protocol == 'icmp' || self.protocol == 'icmpv6') || !has(self.portRange)|| (self.portRange.min >= 0 && self.portRange.min <= 255)",message="When protocol is ICMP or ICMPv6 portRange.min should be between 0 and 255" +kubebuilder:validation:XValidation:rule="!(self.protocol == 'icmp' || self.protocol == 'icmpv6') || !has(self.portRange)|| (self.portRange.max >= 0 && self.portRange.max <= 255)",message="When protocol is ICMP or ICMPv6 portRange.max should be between 0 and 255"
func (*SecurityGroupRule) DeepCopy ¶
func (in *SecurityGroupRule) DeepCopy() *SecurityGroupRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupRule.
func (*SecurityGroupRule) DeepCopyInto ¶
func (in *SecurityGroupRule) DeepCopyInto(out *SecurityGroupRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupRuleStatus ¶
type SecurityGroupRuleStatus struct {
// id is the ID of the security group rule.
// +kubebuilder:validation:MaxLength=1024
// +optional
ID string `json:"id,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// direction represents the direction in which the security group rule
// is applied. Can be ingress or egress.
// +kubebuilder:validation:MaxLength=1024
// +optional
Direction string `json:"direction,omitempty"`
// remoteGroupID is the remote group UUID to associate with this security group rule
// RemoteGroupID
// +kubebuilder:validation:MaxLength=1024
// +optional
RemoteGroupID string `json:"remoteGroupID,omitempty"`
// remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)
// +kubebuilder:validation:MaxLength=1024
// +optional
RemoteIPPrefix string `json:"remoteIPPrefix,omitempty"`
// protocol is the IP protocol can be represented by a string, an
// integer, or null
// +kubebuilder:validation:MaxLength=1024
// +optional
Protocol string `json:"protocol,omitempty"`
// ethertype must be IPv4 or IPv6, and addresses represented in CIDR
// must match the ingress or egress rules.
// +kubebuilder:validation:MaxLength=1024
// +optional
Ethertype string `json:"ethertype,omitempty"`
// portRange sets the minimum and maximum ports range that the security group rule
// matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than
// or equal to the PortRange.Max attribute value.
// If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max
// should be an ICMP type
// +optional
PortRange *PortRangeStatus `json:"portRange,omitempty"`
}
func (*SecurityGroupRuleStatus) DeepCopy ¶
func (in *SecurityGroupRuleStatus) DeepCopy() *SecurityGroupRuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupRuleStatus.
func (*SecurityGroupRuleStatus) DeepCopyInto ¶
func (in *SecurityGroupRuleStatus) DeepCopyInto(out *SecurityGroupRuleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupSpec ¶
type SecurityGroupSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *SecurityGroupImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *SecurityGroupResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
SecurityGroupSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*SecurityGroupSpec) DeepCopy ¶
func (in *SecurityGroupSpec) DeepCopy() *SecurityGroupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupSpec.
func (*SecurityGroupSpec) DeepCopyInto ¶
func (in *SecurityGroupSpec) DeepCopyInto(out *SecurityGroupSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupStatus ¶
type SecurityGroupStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *SecurityGroupResourceStatus `json:"resource,omitempty"`
}
SecurityGroupStatus defines the observed state of an ORC resource.
func (*SecurityGroupStatus) DeepCopy ¶
func (in *SecurityGroupStatus) DeepCopy() *SecurityGroupStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupStatus.
func (*SecurityGroupStatus) DeepCopyInto ¶
func (in *SecurityGroupStatus) DeepCopyInto(out *SecurityGroupStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Server ¶
type Server struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec ServerSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status ServerStatus `json:"status,omitempty"`
}
Server is the Schema for an ORC resource.
func (*Server) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Server.
func (*Server) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Server) DeepCopyObject ¶
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 ¶
type ServerFilter ¶
type ServerFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// availabilityZone is the availability zone of the existing resource
// +kubebuilder:validation:MaxLength=255
// +optional
AvailabilityZone string `json:"availabilityZone,omitempty"`
FilterByServerTags `json:",inline"`
}
ServerFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*ServerFilter) DeepCopy ¶
func (in *ServerFilter) DeepCopy() *ServerFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerFilter.
func (*ServerFilter) DeepCopyInto ¶
func (in *ServerFilter) DeepCopyInto(out *ServerFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerGroup ¶ added in v2.2.0
type ServerGroup struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec ServerGroupSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status ServerGroupStatus `json:"status,omitempty"`
}
ServerGroup is the Schema for an ORC resource.
func (*ServerGroup) DeepCopy ¶ added in v2.2.0
func (in *ServerGroup) DeepCopy() *ServerGroup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroup.
func (*ServerGroup) DeepCopyInto ¶ added in v2.2.0
func (in *ServerGroup) DeepCopyInto(out *ServerGroup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServerGroup) DeepCopyObject ¶ added in v2.2.0
func (in *ServerGroup) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ServerGroup) GetCloudCredentialsRef ¶ added in v2.2.0
func (i *ServerGroup) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*ServerGroup) GetConditions ¶ added in v2.2.0
func (i *ServerGroup) GetConditions() []metav1.Condition
type ServerGroupFilter ¶ added in v2.2.0
type ServerGroupFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
}
ServerGroupFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*ServerGroupFilter) DeepCopy ¶ added in v2.2.0
func (in *ServerGroupFilter) DeepCopy() *ServerGroupFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupFilter.
func (*ServerGroupFilter) DeepCopyInto ¶ added in v2.2.0
func (in *ServerGroupFilter) DeepCopyInto(out *ServerGroupFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerGroupImport ¶ added in v2.2.0
type ServerGroupImport 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 *ServerGroupFilter `json:"filter,omitempty"`
}
ServerGroupImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*ServerGroupImport) DeepCopy ¶ added in v2.2.0
func (in *ServerGroupImport) DeepCopy() *ServerGroupImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupImport.
func (*ServerGroupImport) DeepCopyInto ¶ added in v2.2.0
func (in *ServerGroupImport) DeepCopyInto(out *ServerGroupImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerGroupList ¶ added in v2.2.0
type ServerGroupList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of ServerGroup.
// +required
Items []ServerGroup `json:"items"`
}
ServerGroupList contains a list of ServerGroup.
func (*ServerGroupList) DeepCopy ¶ added in v2.2.0
func (in *ServerGroupList) DeepCopy() *ServerGroupList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupList.
func (*ServerGroupList) DeepCopyInto ¶ added in v2.2.0
func (in *ServerGroupList) DeepCopyInto(out *ServerGroupList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServerGroupList) DeepCopyObject ¶ added in v2.2.0
func (in *ServerGroupList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ServerGroupList) GetItems ¶ added in v2.2.0
func (l *ServerGroupList) GetItems() []ServerGroup
type ServerGroupPolicy ¶ added in v2.2.0
type ServerGroupPolicy string
+kubebuilder:validation:Enum:=affinity;anti-affinity;soft-affinity;soft-anti-affinity
const ( // ServerGroupPolicyAffinity is a server group policy that restricts instances belonging to the server group to the same host. ServerGroupPolicyAffinity ServerGroupPolicy = "affinity" // ServerGroupPolicyAntiAffinity is a server group policy that restricts instances belonging to the server group to separate hosts. ServerGroupPolicyAntiAffinity ServerGroupPolicy = "anti-affinity" // ServerGroupPolicySoftAffinity is a server group policy that attempts to restrict instances belonging to the server group to the same host. // Where it is not possible to schedule all instances on one host, they will be scheduled together on as few hosts as possible. ServerGroupPolicySoftAffinity ServerGroupPolicy = "soft-affinity" // ServerGroupPolicySoftAntiAffinity is a server group policy that attempts to restrict instances belonging to the server group to separate hosts. // Where it is not possible to schedule all instances to separate hosts, they will be scheduled on as many separate hosts as possible. ServerGroupPolicySoftAntiAffinity ServerGroupPolicy = "soft-anti-affinity" )
type ServerGroupResourceSpec ¶ added in v2.2.0
type ServerGroupResourceSpec 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"`
// policy is the policy to use for the server group.
// +required
Policy ServerGroupPolicy `json:"policy,omitempty"`
// rules is the rules to use for the server group.
// +optional
Rules *ServerGroupRules `json:"rules,omitempty"`
}
ServerGroupResourceSpec contains the desired state of a servergroup +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ServerGroupResourceSpec is immutable" +kubebuilder:validation:XValidation:rule="has(self.rules) && self.rules.maxServerPerHost > 0 ? self.policy == 'anti-affinity' : true",message="maxServerPerHost can only be used with the anti-affinity policy"
func (*ServerGroupResourceSpec) DeepCopy ¶ added in v2.2.0
func (in *ServerGroupResourceSpec) DeepCopy() *ServerGroupResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupResourceSpec.
func (*ServerGroupResourceSpec) DeepCopyInto ¶ added in v2.2.0
func (in *ServerGroupResourceSpec) DeepCopyInto(out *ServerGroupResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerGroupResourceStatus ¶ added in v2.2.0
type ServerGroupResourceStatus struct {
// name is a Human-readable name for the servergroup. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// policy is the policy of the servergroup.
// +kubebuilder:validation:MaxLength=1024
// +optional
Policy string `json:"policy,omitempty"`
// projectID is the project owner of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// userID of the server group.
// +kubebuilder:validation:MaxLength=1024
// +optional
UserID string `json:"userID,omitempty"`
// rules is the rules of the server group.
// +optional
Rules *ServerGroupRulesStatus `json:"rules,omitempty"`
}
ServerGroupResourceStatus represents the observed state of the resource.
func (*ServerGroupResourceStatus) DeepCopy ¶ added in v2.2.0
func (in *ServerGroupResourceStatus) DeepCopy() *ServerGroupResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupResourceStatus.
func (*ServerGroupResourceStatus) DeepCopyInto ¶ added in v2.2.0
func (in *ServerGroupResourceStatus) DeepCopyInto(out *ServerGroupResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerGroupRules ¶ added in v2.2.0
type ServerGroupRules struct {
// maxServerPerHost specifies how many servers can reside on a single compute host.
// It can be used only with the "anti-affinity" policy.
// +optional
MaxServerPerHost int32 `json:"maxServerPerHost,omitempty"`
}
func (*ServerGroupRules) DeepCopy ¶ added in v2.2.0
func (in *ServerGroupRules) DeepCopy() *ServerGroupRules
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupRules.
func (*ServerGroupRules) DeepCopyInto ¶ added in v2.2.0
func (in *ServerGroupRules) DeepCopyInto(out *ServerGroupRules)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerGroupRulesStatus ¶ added in v2.2.0
type ServerGroupRulesStatus struct {
// maxServerPerHost specifies how many servers can reside on a single compute host.
// It can be used only with the "anti-affinity" policy.
// +optional
MaxServerPerHost *int32 `json:"maxServerPerHost,omitempty"`
}
func (*ServerGroupRulesStatus) DeepCopy ¶ added in v2.2.0
func (in *ServerGroupRulesStatus) DeepCopy() *ServerGroupRulesStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupRulesStatus.
func (*ServerGroupRulesStatus) DeepCopyInto ¶ added in v2.2.0
func (in *ServerGroupRulesStatus) DeepCopyInto(out *ServerGroupRulesStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerGroupSpec ¶ added in v2.2.0
type ServerGroupSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *ServerGroupImport `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 *ServerGroupResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
ServerGroupSpec 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 (*ServerGroupSpec) DeepCopy ¶ added in v2.2.0
func (in *ServerGroupSpec) DeepCopy() *ServerGroupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpec.
func (*ServerGroupSpec) DeepCopyInto ¶ added in v2.2.0
func (in *ServerGroupSpec) DeepCopyInto(out *ServerGroupSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerGroupStatus ¶ added in v2.2.0
type ServerGroupStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *ServerGroupResourceStatus `json:"resource,omitempty"`
}
ServerGroupStatus defines the observed state of an ORC resource.
func (*ServerGroupStatus) DeepCopy ¶ added in v2.2.0
func (in *ServerGroupStatus) DeepCopy() *ServerGroupStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupStatus.
func (*ServerGroupStatus) DeepCopyInto ¶ added in v2.2.0
func (in *ServerGroupStatus) DeepCopyInto(out *ServerGroupStatus)
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 ServerInterfaceFixedIP ¶ added in v2.3.0
type ServerInterfaceFixedIP struct {
// ipAddress is the IP address assigned to the port.
// +kubebuilder:validation:MaxLength:=1024
// +optional
IPAddress string `json:"ipAddress,omitempty"`
// subnetID is the ID of the subnet from which the IP address is allocated.
// +kubebuilder:validation:MaxLength:=1024
// +optional
SubnetID string `json:"subnetID,omitempty"`
}
func (*ServerInterfaceFixedIP) DeepCopy ¶ added in v2.3.0
func (in *ServerInterfaceFixedIP) DeepCopy() *ServerInterfaceFixedIP
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerInterfaceFixedIP.
func (*ServerInterfaceFixedIP) DeepCopyInto ¶ added in v2.3.0
func (in *ServerInterfaceFixedIP) DeepCopyInto(out *ServerInterfaceFixedIP)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerInterfaceStatus ¶ added in v2.3.0
type ServerInterfaceStatus struct {
// portID is the ID of a port attached to the server.
// +kubebuilder:validation:MaxLength:=1024
// +optional
PortID string `json:"portID,omitempty"`
// netID is the ID of the network to which the interface is attached.
// +kubebuilder:validation:MaxLength:=1024
// +optional
NetID string `json:"netID,omitempty"`
// macAddr is the MAC address of the interface.
// +kubebuilder:validation:MaxLength:=1024
// +optional
MACAddr string `json:"macAddr,omitempty"`
// portState is the state of the port (e.g., ACTIVE, DOWN).
// +kubebuilder:validation:MaxLength:=1024
// +optional
PortState string `json:"portState,omitempty"`
// fixedIPs is the list of fixed IP addresses assigned to the interface.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
FixedIPs []ServerInterfaceFixedIP `json:"fixedIPs,omitempty"`
}
func (*ServerInterfaceStatus) DeepCopy ¶ added in v2.3.0
func (in *ServerInterfaceStatus) DeepCopy() *ServerInterfaceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerInterfaceStatus.
func (*ServerInterfaceStatus) DeepCopyInto ¶ added in v2.3.0
func (in *ServerInterfaceStatus) DeepCopyInto(out *ServerInterfaceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerList ¶
type ServerList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Server.
// +required
Items []Server `json:"items"`
}
ServerList contains a list of Server.
func (*ServerList) DeepCopy ¶
func (in *ServerList) DeepCopy() *ServerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerList.
func (*ServerList) DeepCopyInto ¶
func (in *ServerList) DeepCopyInto(out *ServerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServerList) DeepCopyObject ¶
func (in *ServerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ServerList) GetItems ¶
func (l *ServerList) GetItems() []Server
type ServerPortSpec ¶
type ServerPortSpec struct {
// portRef is a reference to a Port object. Server creation will wait for
// this port to be created and available.
// +optional
PortRef *KubernetesNameRef `json:"portRef,omitempty"`
}
+kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*ServerPortSpec) DeepCopy ¶
func (in *ServerPortSpec) DeepCopy() *ServerPortSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerPortSpec.
func (*ServerPortSpec) DeepCopyInto ¶
func (in *ServerPortSpec) DeepCopyInto(out *ServerPortSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerResourceSpec ¶
type ServerResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// imageRef references the image to use for the server instance.
// NOTE: This is not required in case of boot from volume.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="imageRef is immutable"
ImageRef KubernetesNameRef `json:"imageRef,omitempty"`
// flavorRef references the flavor to use for the server instance.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="flavorRef is immutable"
FlavorRef KubernetesNameRef `json:"flavorRef,omitempty"`
// userData specifies data which will be made available to the server at
// boot time, either via the metadata service or a config drive. It is
// typically read by a configuration service such as cloud-init or ignition.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="userData is immutable"
UserData *UserDataSpec `json:"userData,omitempty"`
// ports defines a list of ports which will be attached to the server.
// +kubebuilder:validation:MaxItems:=64
// +listType=atomic
// +required
Ports []ServerPortSpec `json:"ports,omitempty"`
// volumes is a list of volumes attached to the server.
// +kubebuilder:validation:MaxItems:=64
// +listType=atomic
// +optional
Volumes []ServerVolumeSpec `json:"volumes,omitempty"`
// serverGroupRef is a reference to a ServerGroup object. The server
// will be created in the server group.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="serverGroupRef is immutable"
ServerGroupRef *KubernetesNameRef `json:"serverGroupRef,omitempty"`
// availabilityZone is the availability zone in which to create the server.
// +kubebuilder:validation:MaxLength=255
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="availabilityZone is immutable"
AvailabilityZone string `json:"availabilityZone,omitempty"`
// keypairRef is a reference to a KeyPair object. The server will be
// created with this keypair for SSH access.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="keypairRef is immutable"
KeypairRef *KubernetesNameRef `json:"keypairRef,omitempty"`
// tags is a list of tags which will be applied to the server.
// +kubebuilder:validation:MaxItems:=50
// +listType=set
// +optional
Tags []ServerTag `json:"tags,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.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// hostID is the host where the server is located in the cloud.
// +kubebuilder:validation:MaxLength=1024
// +optional
HostID string `json:"hostID,omitempty"`
// status contains the current operational status of the server,
// such as IN_PROGRESS or ACTIVE.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// imageID indicates the OS image used to deploy the server.
// +kubebuilder:validation:MaxLength=1024
// +optional
ImageID string `json:"imageID,omitempty"`
// availabilityZone is the availability zone where the server is located.
// +kubebuilder:validation:MaxLength=1024
// +optional
AvailabilityZone string `json:"availabilityZone,omitempty"`
// serverGroups is a slice of strings containing the UUIDs of the
// server groups to which the server belongs. Currently this can
// contain at most one entry.
// +kubebuilder:validation:MaxItems:=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
ServerGroups []string `json:"serverGroups,omitempty"`
// volumes contains the volumes attached to the server.
// +kubebuilder:validation:MaxItems:=64
// +listType=atomic
// +optional
Volumes []ServerVolumeStatus `json:"volumes,omitempty"`
// interfaces contains the list of interfaces attached to the server.
// +kubebuilder:validation:MaxItems:=64
// +listType=atomic
// +optional
Interfaces []ServerInterfaceStatus `json:"interfaces,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems:=50
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
}
ServerResourceStatus represents the observed state of the resource.
func (*ServerResourceStatus) DeepCopy ¶
func (in *ServerResourceStatus) DeepCopy() *ServerResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerResourceStatus.
func (*ServerResourceStatus) DeepCopyInto ¶
func (in *ServerResourceStatus) DeepCopyInto(out *ServerResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerSpec ¶
type ServerSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *ServerImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *ServerResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
ServerSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*ServerSpec) DeepCopy ¶
func (in *ServerSpec) DeepCopy() *ServerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerSpec.
func (*ServerSpec) DeepCopyInto ¶
func (in *ServerSpec) DeepCopyInto(out *ServerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerStatus ¶
type ServerStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *ServerResourceStatus `json:"resource,omitempty"`
}
ServerStatus defines the observed state of an ORC resource.
func (*ServerStatus) DeepCopy ¶
func (in *ServerStatus) DeepCopy() *ServerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerStatus.
func (*ServerStatus) DeepCopyInto ¶
func (in *ServerStatus) DeepCopyInto(out *ServerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerTag ¶
type ServerTag string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=80
type ServerVolumeSpec ¶ added in v2.3.0
type ServerVolumeSpec struct {
// volumeRef is a reference to a Volume object. Server creation will wait for
// this volume to be created and available.
// +required
VolumeRef KubernetesNameRef `json:"volumeRef,omitempty"`
// device is the name of the device, such as `/dev/vdb`.
// Omit for auto-assignment
// +kubebuilder:validation:MaxLength:=255
// +optional
Device *string `json:"device,omitempty"`
}
+kubebuilder:validation:MinProperties:=1
func (*ServerVolumeSpec) DeepCopy ¶ added in v2.3.0
func (in *ServerVolumeSpec) DeepCopy() *ServerVolumeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerVolumeSpec.
func (*ServerVolumeSpec) DeepCopyInto ¶ added in v2.3.0
func (in *ServerVolumeSpec) DeepCopyInto(out *ServerVolumeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerVolumeStatus ¶ added in v2.3.0
type ServerVolumeStatus struct {
// id is the ID of a volume attached to the server.
// +kubebuilder:validation:MaxLength:=1024
// +optional
ID string `json:"id,omitempty"`
}
func (*ServerVolumeStatus) DeepCopy ¶ added in v2.3.0
func (in *ServerVolumeStatus) DeepCopy() *ServerVolumeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerVolumeStatus.
func (*ServerVolumeStatus) DeepCopyInto ¶ added in v2.3.0
func (in *ServerVolumeStatus) DeepCopyInto(out *ServerVolumeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Service ¶ added in v2.4.0
type Service struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec ServiceSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status ServiceStatus `json:"status,omitempty"`
}
Service is the Schema for an ORC resource.
func (*Service) DeepCopy ¶ added in v2.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.
func (*Service) DeepCopyInto ¶ added in v2.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Service) DeepCopyObject ¶ added in v2.4.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Service) GetCloudCredentialsRef ¶ added in v2.4.0
func (i *Service) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Service) GetConditions ¶ added in v2.4.0
type ServiceFilter ¶ added in v2.4.0
type ServiceFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// type of the existing resource
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
Type *string `json:"type,omitempty"`
}
ServiceFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*ServiceFilter) DeepCopy ¶ added in v2.4.0
func (in *ServiceFilter) DeepCopy() *ServiceFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceFilter.
func (*ServiceFilter) DeepCopyInto ¶ added in v2.4.0
func (in *ServiceFilter) DeepCopyInto(out *ServiceFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceImport ¶ added in v2.4.0
type ServiceImport 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 *ServiceFilter `json:"filter,omitempty"`
}
ServiceImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*ServiceImport) DeepCopy ¶ added in v2.4.0
func (in *ServiceImport) DeepCopy() *ServiceImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceImport.
func (*ServiceImport) DeepCopyInto ¶ added in v2.4.0
func (in *ServiceImport) DeepCopyInto(out *ServiceImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceList ¶ added in v2.4.0
type ServiceList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Service.
// +required
Items []Service `json:"items"`
}
ServiceList contains a list of Service.
func (*ServiceList) DeepCopy ¶ added in v2.4.0
func (in *ServiceList) DeepCopy() *ServiceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceList.
func (*ServiceList) DeepCopyInto ¶ added in v2.4.0
func (in *ServiceList) DeepCopyInto(out *ServiceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServiceList) DeepCopyObject ¶ added in v2.4.0
func (in *ServiceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ServiceList) GetItems ¶ added in v2.4.0
func (l *ServiceList) GetItems() []Service
type ServiceResourceSpec ¶ added in v2.4.0
type ServiceResourceSpec struct {
// name indicates the name of service. If not specified, the name of the ORC
// resource will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description indicates the description of service.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
Description *string `json:"description,omitempty"`
// type indicates which resource the service is responsible for.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +required
Type string `json:"type,omitempty"`
// enabled indicates whether the service is enabled or not.
// +kubebuilder:default=true
// +optional
Enabled *bool `json:"enabled,omitempty"`
}
ServiceResourceSpec contains the desired state of the resource.
func (*ServiceResourceSpec) DeepCopy ¶ added in v2.4.0
func (in *ServiceResourceSpec) DeepCopy() *ServiceResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResourceSpec.
func (*ServiceResourceSpec) DeepCopyInto ¶ added in v2.4.0
func (in *ServiceResourceSpec) DeepCopyInto(out *ServiceResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceResourceStatus ¶ added in v2.4.0
type ServiceResourceStatus struct {
// name indicates the name of service.
// +kubebuilder:validation:MaxLength:=255
// +optional
Name string `json:"name,omitempty"`
// description indicates the description of service.
// +kubebuilder:validation:MaxLength:=255
// +optional
Description string `json:"description,omitempty"`
// type indicates which resource the service is responsible for.
// +kubebuilder:validation:MaxLength:=255
// +optional
Type string `json:"type,omitempty"`
// enabled indicates whether the service is enabled or not.
// +optional
Enabled *bool `json:"enabled,omitempty"`
}
ServiceResourceStatus represents the observed state of the resource.
func (*ServiceResourceStatus) DeepCopy ¶ added in v2.4.0
func (in *ServiceResourceStatus) DeepCopy() *ServiceResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResourceStatus.
func (*ServiceResourceStatus) DeepCopyInto ¶ added in v2.4.0
func (in *ServiceResourceStatus) DeepCopyInto(out *ServiceResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceSpec ¶ added in v2.4.0
type ServiceSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *ServiceImport `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 *ServiceResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
ServiceSpec 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 (*ServiceSpec) DeepCopy ¶ added in v2.4.0
func (in *ServiceSpec) DeepCopy() *ServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.
func (*ServiceSpec) DeepCopyInto ¶ added in v2.4.0
func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceStatus ¶ added in v2.4.0
type ServiceStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *ServiceResourceStatus `json:"resource,omitempty"`
}
ServiceStatus defines the observed state of an ORC resource.
func (*ServiceStatus) DeepCopy ¶ added in v2.4.0
func (in *ServiceStatus) DeepCopy() *ServiceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceStatus.
func (*ServiceStatus) DeepCopyInto ¶ added in v2.4.0
func (in *ServiceStatus) DeepCopyInto(out *ServiceStatus)
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"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec SubnetSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status SubnetStatus `json:"status,omitempty"`
}
Subnet is the Schema for an ORC resource.
func (*Subnet) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subnet.
func (*Subnet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Subnet) DeepCopyObject ¶
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 ¶
type SubnetFilter ¶
type SubnetFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// ipVersion of the existing resource
// +optional
IPVersion *IPVersion `json:"ipVersion,omitempty"`
// gatewayIP is the IP address of the gateway of the existing resource
// +optional
GatewayIP *IPvAny `json:"gatewayIP,omitempty"`
// cidr of the existing resource
// +optional
CIDR *CIDR `json:"cidr,omitempty"`
// ipv6 options of the existing resource
// +optional
IPv6 *IPv6Options `json:"ipv6,omitempty"`
// networkRef is a reference to the ORC Network which this subnet is associated with.
// +optional
NetworkRef KubernetesNameRef `json:"networkRef"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
ProjectRef *KubernetesNameRef `json:"projectRef,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,omitempty"`
// ip is the IP address of the default gateway, which must be specified if
// Type is `IP`. It must be a valid IP address, either IPv4 or IPv6,
// matching the IPVersion in SubnetResourceSpec.
// +optional
IP *IPvAny `json:"ip,omitempty"`
}
func (*SubnetGateway) DeepCopy ¶
func (in *SubnetGateway) DeepCopy() *SubnetGateway
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetGateway.
func (*SubnetGateway) DeepCopyInto ¶
func (in *SubnetGateway) DeepCopyInto(out *SubnetGateway)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetGatewayType ¶
type SubnetGatewayType string
type SubnetImport ¶
type SubnetImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *SubnetFilter `json:"filter,omitempty"`
}
SubnetImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*SubnetImport) DeepCopy ¶
func (in *SubnetImport) DeepCopy() *SubnetImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetImport.
func (*SubnetImport) DeepCopyInto ¶
func (in *SubnetImport) DeepCopyInto(out *SubnetImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetList ¶
type SubnetList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Subnet.
// +required
Items []Subnet `json:"items"`
}
SubnetList contains a list of Subnet.
func (*SubnetList) DeepCopy ¶
func (in *SubnetList) DeepCopy() *SubnetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetList.
func (*SubnetList) DeepCopyInto ¶
func (in *SubnetList) DeepCopyInto(out *SubnetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SubnetList) DeepCopyObject ¶
func (in *SubnetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*SubnetList) GetItems ¶
func (l *SubnetList) GetItems() []Subnet
type SubnetResourceSpec ¶
type SubnetResourceSpec struct {
// name is a human-readable name of the subnet. If not set, the object's name will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// networkRef is a reference to the ORC Network which this subnet is associated with.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="networkRef is immutable"
NetworkRef KubernetesNameRef `json:"networkRef,omitempty"`
// tags is a list of tags which will be applied to the subnet.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
// ipVersion is the IP version for the subnet.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ipVersion is immutable"
IPVersion IPVersion `json:"ipVersion"`
// cidr is the address CIDR of the subnet. It must match the IP version specified in IPVersion.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="cidr is immutable"
CIDR CIDR `json:"cidr,omitempty"`
// allocationPools are IP Address pools that will be available for DHCP. IP
// addresses must be in CIDR.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
AllocationPools []AllocationPool `json:"allocationPools,omitempty"`
// gateway specifies the default gateway of the subnet. If not specified,
// neutron will add one automatically. To disable this behaviour, specify a
// gateway with a type of None.
// +optional
Gateway *SubnetGateway `json:"gateway,omitempty"`
// enableDHCP will either enable to disable the DHCP service.
// +optional
EnableDHCP *bool `json:"enableDHCP,omitempty"`
// dnsNameservers are the nameservers to be set via DHCP.
// +kubebuilder:validation:MaxItems:=16
// +listType=set
// +optional
DNSNameservers []IPvAny `json:"dnsNameservers,omitempty"`
// dnsPublishFixedIP will either enable or disable the publication of
// fixed IPs to the DNS. Defaults to false.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="dnsPublishFixedIP is immutable"
DNSPublishFixedIP *bool `json:"dnsPublishFixedIP,omitempty"`
// hostRoutes are any static host routes to be set via DHCP.
// +kubebuilder:validation:MaxItems:=256
// +listType=atomic
// +optional
HostRoutes []HostRoute `json:"hostRoutes,omitempty"`
// ipv6 contains IPv6-specific options. It may only be set if IPVersion is 6.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ipv6 is immutable"
IPv6 *IPv6Options `json:"ipv6,omitempty"`
// routerRef specifies a router to attach the subnet to
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="routerRef is immutable"
RouterRef *KubernetesNameRef `json:"routerRef,omitempty"`
// projectRef is a reference to the ORC Project this resource is associated with.
// Typically, only used by admin.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="projectRef is immutable"
ProjectRef *KubernetesNameRef `json:"projectRef,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.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// ipVersion specifies IP version, either `4' or `6'.
// +optional
IPVersion *int32 `json:"ipVersion,omitempty"`
// cidr representing IP range for this subnet, based on IP version.
// +kubebuilder:validation:MaxLength=1024
// +optional
CIDR string `json:"cidr,omitempty"`
// gatewayIP is the default gateway used by devices in this subnet, if any.
// +kubebuilder:validation:MaxLength=1024
// +optional
GatewayIP string `json:"gatewayIP,omitempty"`
// dnsNameservers is a list of name servers used by hosts in this subnet.
// +kubebuilder:validation:MaxItems:=16
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
DNSNameservers []string `json:"dnsNameservers,omitempty"`
// dnsPublishFixedIP specifies whether the fixed IP addresses are published to the DNS.
// +optional
DNSPublishFixedIP *bool `json:"dnsPublishFixedIP,omitempty"`
// allocationPools is a list of sub-ranges within CIDR available for dynamic
// allocation to ports.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
AllocationPools []AllocationPoolStatus `json:"allocationPools,omitempty"`
// hostRoutes is a list of routes that should be used by devices with IPs
// from this subnet (not including local subnet route).
// +kubebuilder:validation:MaxItems:=256
// +listType=atomic
// +optional
HostRoutes []HostRouteStatus `json:"hostRoutes,omitempty"`
// enableDHCP specifies whether DHCP is enabled for this subnet or not.
// +optional
EnableDHCP *bool `json:"enableDHCP,omitempty"`
// networkID is the ID of the network to which the subnet belongs.
// +kubebuilder:validation:MaxLength=1024
// +optional
NetworkID string `json:"networkID,omitempty"`
// projectID is the project owner of the subnet.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// ipv6AddressMode specifies mechanisms for assigning IPv6 IP addresses.
// +kubebuilder:validation:MaxLength=1024
// +optional
IPv6AddressMode string `json:"ipv6AddressMode,omitempty"`
// ipv6RAMode is the IPv6 router advertisement mode. It specifies
// whether the networking service should transmit ICMPv6 packets.
// +kubebuilder:validation:MaxLength=1024
// +optional
IPv6RAMode string `json:"ipv6RAMode,omitempty"`
// subnetPoolID is the id of the subnet pool associated with the subnet.
// +kubebuilder:validation:MaxLength=1024
// +optional
SubnetPoolID string `json:"subnetPoolID,omitempty"`
// tags optionally set via extensions/attributestags
// +kubebuilder:validation:MaxItems:=64
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
NeutronStatusMetadata `json:",inline"`
}
func (*SubnetResourceStatus) DeepCopy ¶
func (in *SubnetResourceStatus) DeepCopy() *SubnetResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetResourceStatus.
func (*SubnetResourceStatus) DeepCopyInto ¶
func (in *SubnetResourceStatus) DeepCopyInto(out *SubnetResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetSpec ¶
type SubnetSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *SubnetImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *SubnetResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
SubnetSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*SubnetSpec) DeepCopy ¶
func (in *SubnetSpec) DeepCopy() *SubnetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetSpec.
func (*SubnetSpec) DeepCopyInto ¶
func (in *SubnetSpec) DeepCopyInto(out *SubnetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetStatus ¶
type SubnetStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *SubnetResourceStatus `json:"resource,omitempty"`
}
SubnetStatus defines the observed state of an ORC resource.
func (*SubnetStatus) DeepCopy ¶
func (in *SubnetStatus) DeepCopy() *SubnetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetStatus.
func (*SubnetStatus) DeepCopyInto ¶
func (in *SubnetStatus) DeepCopyInto(out *SubnetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UUID ¶
type UUID string
+kubebuilder:validation:Format:=uuid +kubebuilder:validation:MaxLength:=36
type UserDataSpec ¶
type UserDataSpec struct {
// secretRef is a reference to a Secret containing the user data for this server.
// +optional
SecretRef *KubernetesNameRef `json:"secretRef,omitempty"`
}
+kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*UserDataSpec) DeepCopy ¶
func (in *UserDataSpec) DeepCopy() *UserDataSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserDataSpec.
func (*UserDataSpec) DeepCopyInto ¶
func (in *UserDataSpec) DeepCopyInto(out *UserDataSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Volume ¶ added in v2.3.0
type Volume struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec VolumeSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status VolumeStatus `json:"status,omitempty"`
}
Volume is the Schema for an ORC resource.
func (*Volume) DeepCopy ¶ added in v2.3.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.
func (*Volume) DeepCopyInto ¶ added in v2.3.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Volume) DeepCopyObject ¶ added in v2.3.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Volume) GetCloudCredentialsRef ¶ added in v2.3.0
func (i *Volume) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Volume) GetConditions ¶ added in v2.3.0
type VolumeAttachmentStatus ¶ added in v2.3.0
type VolumeAttachmentStatus struct {
// attachmentID represents the attachment UUID.
// +kubebuilder:validation:MaxLength=1024
// +optional
AttachmentID string `json:"attachmentID"`
// serverID is the UUID of the server to which the volume is attached.
// +kubebuilder:validation:MaxLength=1024
// +optional
ServerID string `json:"serverID"`
// device is the name of the device in the instance.
// +kubebuilder:validation:MaxLength=1024
// +optional
Device string `json:"device"`
// attachedAt shows the date and time when the resource was attached. The date and time stamp format is ISO 8601.
// +optional
AttachedAt *metav1.Time `json:"attachedAt"`
}
func (*VolumeAttachmentStatus) DeepCopy ¶ added in v2.3.0
func (in *VolumeAttachmentStatus) DeepCopy() *VolumeAttachmentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentStatus.
func (*VolumeAttachmentStatus) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeFilter ¶ added in v2.3.0
type VolumeFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
Description *string `json:"description,omitempty"`
// size is the size of the volume in GiB.
// +kubebuilder:validation:Minimum=1
// +optional
Size *int32 `json:"size,omitempty"`
// availabilityZone is the availability zone of the existing resource
// +kubebuilder:validation:MaxLength:=255
// +optional
AvailabilityZone string `json:"availabilityZone,omitempty"`
}
VolumeFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*VolumeFilter) DeepCopy ¶ added in v2.3.0
func (in *VolumeFilter) DeepCopy() *VolumeFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeFilter.
func (*VolumeFilter) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeFilter) DeepCopyInto(out *VolumeFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeImport ¶ added in v2.3.0
type VolumeImport 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 *VolumeFilter `json:"filter,omitempty"`
}
VolumeImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*VolumeImport) DeepCopy ¶ added in v2.3.0
func (in *VolumeImport) DeepCopy() *VolumeImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeImport.
func (*VolumeImport) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeImport) DeepCopyInto(out *VolumeImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeList ¶ added in v2.3.0
type VolumeList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Volume.
// +required
Items []Volume `json:"items"`
}
VolumeList contains a list of Volume.
func (*VolumeList) DeepCopy ¶ added in v2.3.0
func (in *VolumeList) DeepCopy() *VolumeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeList.
func (*VolumeList) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeList) DeepCopyInto(out *VolumeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VolumeList) DeepCopyObject ¶ added in v2.3.0
func (in *VolumeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*VolumeList) GetItems ¶ added in v2.3.0
func (l *VolumeList) GetItems() []Volume
type VolumeMetadata ¶ added in v2.3.0
type VolumeMetadata struct {
// name is the name of the metadata
// +kubebuilder:validation:MaxLength:=255
// +required
Name string `json:"name"`
// value is the value of the metadata
// +kubebuilder:validation:MaxLength:=255
// +required
Value string `json:"value"`
}
func (*VolumeMetadata) DeepCopy ¶ added in v2.3.0
func (in *VolumeMetadata) DeepCopy() *VolumeMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeMetadata.
func (*VolumeMetadata) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeMetadata) DeepCopyInto(out *VolumeMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeMetadataStatus ¶ added in v2.3.0
type VolumeMetadataStatus struct {
// name is the name of the metadata
// +kubebuilder:validation:MaxLength:=255
// +optional
Name string `json:"name,omitempty"`
// value is the value of the metadata
// +kubebuilder:validation:MaxLength:=255
// +optional
Value string `json:"value,omitempty"`
}
func (*VolumeMetadataStatus) DeepCopy ¶ added in v2.3.0
func (in *VolumeMetadataStatus) DeepCopy() *VolumeMetadataStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeMetadataStatus.
func (*VolumeMetadataStatus) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeMetadataStatus) DeepCopyInto(out *VolumeMetadataStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeResourceSpec ¶ added in v2.3.0
type VolumeResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
Description *string `json:"description,omitempty"`
// size is the size of the volume, in gibibytes (GiB).
// +kubebuilder:validation:Minimum=1
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="size is immutable"
Size int32 `json:"size,omitempty"`
// volumeTypeRef is a reference to the ORC VolumeType which this resource is associated with.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeTypeRef is immutable"
VolumeTypeRef *KubernetesNameRef `json:"volumeTypeRef,omitempty"`
// availabilityZone is the availability zone in which to create the volume.
// +kubebuilder:validation:MaxLength:=255
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="availabilityZone is immutable"
AvailabilityZone string `json:"availabilityZone,omitempty"`
// metadata key and value pairs to be associated with the volume.
// NOTE(mandre): gophercloud can't clear all metadata at the moment, we thus can't allow
// mutability for metadata as we might end up in a state that is not reconciliable
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="metadata is immutable"
// +kubebuilder:validation:MaxItems:=64
// +listType=atomic
// +optional
Metadata []VolumeMetadata `json:"metadata,omitempty"`
}
VolumeResourceSpec contains the desired state of the resource.
func (*VolumeResourceSpec) DeepCopy ¶ added in v2.3.0
func (in *VolumeResourceSpec) DeepCopy() *VolumeResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeResourceSpec.
func (*VolumeResourceSpec) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeResourceSpec) DeepCopyInto(out *VolumeResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeResourceStatus ¶ added in v2.3.0
type VolumeResourceStatus struct {
// name is a Human-readable name for the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// size is the size of the volume in GiB.
// +optional
Size *int32 `json:"size,omitempty"`
// status represents the current status of the volume.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// availabilityZone is which availability zone the volume is in.
// +kubebuilder:validation:MaxLength=1024
// +optional
AvailabilityZone string `json:"availabilityZone,omitempty"`
// attachments is a list of attachments for the volume.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
Attachments []VolumeAttachmentStatus `json:"attachments"`
// volumeType is the name of associated the volume type.
// +kubebuilder:validation:MaxLength=1024
// +optional
VolumeType string `json:"volumeType,omitempty"`
// snapshotID is the ID of the snapshot from which the volume was created
// +kubebuilder:validation:MaxLength=1024
// +optional
SnapshotID string `json:"snapshotID,omitempty"`
// sourceVolID is the ID of another block storage volume from which the current volume was created
// +kubebuilder:validation:MaxLength=1024
// +optional
SourceVolID string `json:"sourceVolID,omitempty"`
// backupID is the ID of the backup from which the volume was restored
// +kubebuilder:validation:MaxLength=1024
// +optional
BackupID string `json:"backupID,omitempty"`
// metadata key and value pairs to be associated with the volume.
// +kubebuilder:validation:MaxItems:=64
// +listType=atomic
// +optional
Metadata []VolumeMetadataStatus `json:"metadata,omitempty"`
// userID is the ID of the user who created the volume.
// +kubebuilder:validation:MaxLength=1024
// +optional
UserID string `json:"userID,omitempty"`
// bootable indicates whether this is a bootable volume.
// +optional
Bootable *bool `json:"bootable,omitempty"`
// encrypted denotes if the volume is encrypted.
// +optional
Encrypted *bool `json:"encrypted,omitempty"`
// replicationStatus is the status of replication.
// +kubebuilder:validation:MaxLength=1024
// +optional
ReplicationStatus string `json:"replicationStatus,omitempty"`
// consistencyGroupID is the consistency group ID.
// +kubebuilder:validation:MaxLength=1024
// +optional
ConsistencyGroupID string `json:"consistencyGroupID,omitempty"`
// multiattach denotes if the volume is multi-attach capable.
// +optional
Multiattach *bool `json:"multiattach,omitempty"`
// host is the identifier of the host holding the volume.
// +kubebuilder:validation:MaxLength=1024
// +optional
Host string `json:"host,omitempty"`
// tenantID is the ID of the project that owns the volume.
// +kubebuilder:validation:MaxLength=1024
// +optional
TenantID string `json:"tenantID,omitempty"`
// createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601
// +optional
CreatedAt *metav1.Time `json:"createdAt,omitempty"`
// updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601
// +optional
UpdatedAt *metav1.Time `json:"updatedAt,omitempty"`
}
VolumeResourceStatus represents the observed state of the resource.
func (*VolumeResourceStatus) DeepCopy ¶ added in v2.3.0
func (in *VolumeResourceStatus) DeepCopy() *VolumeResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeResourceStatus.
func (*VolumeResourceStatus) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeResourceStatus) DeepCopyInto(out *VolumeResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeSpec ¶ added in v2.3.0
type VolumeSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *VolumeImport `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 *VolumeResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
VolumeSpec 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 (*VolumeSpec) DeepCopy ¶ added in v2.3.0
func (in *VolumeSpec) DeepCopy() *VolumeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSpec.
func (*VolumeSpec) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeSpec) DeepCopyInto(out *VolumeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeStatus ¶ added in v2.3.0
type VolumeStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *VolumeResourceStatus `json:"resource,omitempty"`
}
VolumeStatus defines the observed state of an ORC resource.
func (*VolumeStatus) DeepCopy ¶ added in v2.3.0
func (in *VolumeStatus) DeepCopy() *VolumeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeStatus.
func (*VolumeStatus) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeStatus) DeepCopyInto(out *VolumeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeType ¶ added in v2.3.0
type VolumeType struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec VolumeTypeSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status VolumeTypeStatus `json:"status,omitempty"`
}
VolumeType is the Schema for an ORC resource.
func (*VolumeType) DeepCopy ¶ added in v2.3.0
func (in *VolumeType) DeepCopy() *VolumeType
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeType.
func (*VolumeType) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeType) DeepCopyInto(out *VolumeType)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VolumeType) DeepCopyObject ¶ added in v2.3.0
func (in *VolumeType) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*VolumeType) GetCloudCredentialsRef ¶ added in v2.3.0
func (i *VolumeType) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*VolumeType) GetConditions ¶ added in v2.3.0
func (i *VolumeType) GetConditions() []metav1.Condition
type VolumeTypeExtraSpec ¶ added in v2.3.0
type VolumeTypeExtraSpec struct {
// name is the name of the extraspec
// +kubebuilder:validation:MaxLength:=255
// +required
Name string `json:"name"`
// value is the value of the extraspec
// +kubebuilder:validation:MaxLength:=255
// +required
Value string `json:"value"`
}
func (*VolumeTypeExtraSpec) DeepCopy ¶ added in v2.3.0
func (in *VolumeTypeExtraSpec) DeepCopy() *VolumeTypeExtraSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeTypeExtraSpec.
func (*VolumeTypeExtraSpec) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeTypeExtraSpec) DeepCopyInto(out *VolumeTypeExtraSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeTypeExtraSpecStatus ¶ added in v2.3.0
type VolumeTypeExtraSpecStatus struct {
// name is the name of the extraspec
// +kubebuilder:validation:MaxLength:=255
// +optional
Name string `json:"name,omitempty"`
// value is the value of the extraspec
// +kubebuilder:validation:MaxLength:=255
// +optional
Value string `json:"value,omitempty"`
}
func (*VolumeTypeExtraSpecStatus) DeepCopy ¶ added in v2.3.0
func (in *VolumeTypeExtraSpecStatus) DeepCopy() *VolumeTypeExtraSpecStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeTypeExtraSpecStatus.
func (*VolumeTypeExtraSpecStatus) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeTypeExtraSpecStatus) DeepCopyInto(out *VolumeTypeExtraSpecStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeTypeFilter ¶ added in v2.3.0
type VolumeTypeFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
Description *string `json:"description,omitempty"`
// isPublic indicates whether the VolumeType is public.
// +optional
IsPublic *bool `json:"isPublic,omitempty"`
}
VolumeTypeFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*VolumeTypeFilter) DeepCopy ¶ added in v2.3.0
func (in *VolumeTypeFilter) DeepCopy() *VolumeTypeFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeTypeFilter.
func (*VolumeTypeFilter) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeTypeFilter) DeepCopyInto(out *VolumeTypeFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeTypeImport ¶ added in v2.3.0
type VolumeTypeImport 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 *VolumeTypeFilter `json:"filter,omitempty"`
}
VolumeTypeImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*VolumeTypeImport) DeepCopy ¶ added in v2.3.0
func (in *VolumeTypeImport) DeepCopy() *VolumeTypeImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeTypeImport.
func (*VolumeTypeImport) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeTypeImport) DeepCopyInto(out *VolumeTypeImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeTypeList ¶ added in v2.3.0
type VolumeTypeList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of VolumeType.
// +required
Items []VolumeType `json:"items"`
}
VolumeTypeList contains a list of VolumeType.
func (*VolumeTypeList) DeepCopy ¶ added in v2.3.0
func (in *VolumeTypeList) DeepCopy() *VolumeTypeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeTypeList.
func (*VolumeTypeList) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeTypeList) DeepCopyInto(out *VolumeTypeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VolumeTypeList) DeepCopyObject ¶ added in v2.3.0
func (in *VolumeTypeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*VolumeTypeList) GetItems ¶ added in v2.3.0
func (l *VolumeTypeList) GetItems() []VolumeType
type VolumeTypeResourceSpec ¶ added in v2.3.0
type VolumeTypeResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
Description *string `json:"description,omitempty"`
// extraSpecs is a map of key-value pairs that define extra specifications for the volume type.
// +kubebuilder:validation:MaxItems:=64
// +listType=atomic
// +optional
ExtraSpecs []VolumeTypeExtraSpec `json:"extraSpecs,omitempty"`
// isPublic indicates whether the volume type is public.
// +optional
IsPublic *bool `json:"isPublic,omitempty"`
}
VolumeTypeResourceSpec contains the desired state of the resource.
func (*VolumeTypeResourceSpec) DeepCopy ¶ added in v2.3.0
func (in *VolumeTypeResourceSpec) DeepCopy() *VolumeTypeResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeTypeResourceSpec.
func (*VolumeTypeResourceSpec) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeTypeResourceSpec) DeepCopyInto(out *VolumeTypeResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeTypeResourceStatus ¶ added in v2.3.0
type VolumeTypeResourceStatus struct {
// name is a Human-readable name for the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// extraSpecs is a map of key-value pairs that define extra specifications for the volume type.
// +kubebuilder:validation:MaxItems:=64
// +listType=atomic
// +optional
ExtraSpecs []VolumeTypeExtraSpecStatus `json:"extraSpecs"`
// isPublic indicates whether the VolumeType is public.
// +optional
IsPublic *bool `json:"isPublic"`
}
VolumeTypeResourceStatus represents the observed state of the resource.
func (*VolumeTypeResourceStatus) DeepCopy ¶ added in v2.3.0
func (in *VolumeTypeResourceStatus) DeepCopy() *VolumeTypeResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeTypeResourceStatus.
func (*VolumeTypeResourceStatus) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeTypeResourceStatus) DeepCopyInto(out *VolumeTypeResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeTypeSpec ¶ added in v2.3.0
type VolumeTypeSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *VolumeTypeImport `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 *VolumeTypeResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
VolumeTypeSpec 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 (*VolumeTypeSpec) DeepCopy ¶ added in v2.3.0
func (in *VolumeTypeSpec) DeepCopy() *VolumeTypeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeTypeSpec.
func (*VolumeTypeSpec) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeTypeSpec) DeepCopyInto(out *VolumeTypeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeTypeStatus ¶ added in v2.3.0
type VolumeTypeStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *VolumeTypeResourceStatus `json:"resource,omitempty"`
}
VolumeTypeStatus defines the observed state of an ORC resource.
func (*VolumeTypeStatus) DeepCopy ¶ added in v2.3.0
func (in *VolumeTypeStatus) DeepCopy() *VolumeTypeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeTypeStatus.
func (*VolumeTypeStatus) DeepCopyInto ¶ added in v2.3.0
func (in *VolumeTypeStatus) DeepCopyInto(out *VolumeTypeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files
¶
- common_types.go
- conditions.go
- controller_options.go
- credentials_ref.go
- doc.go
- domain_types.go
- flavor_types.go
- floatingip_types.go
- group_types.go
- groupversion_info.go
- image_types.go
- keypair_types.go
- network_types.go
- openstack_types.go
- port_types.go
- project_types.go
- role_types.go
- router_interface_types.go
- router_types.go
- securitygroup_types.go
- server_types.go
- servergroup_types.go
- service_types.go
- subnet_types.go
- volume_types.go
- volumetype_types.go
- zz_generated.deepcopy.go
- zz_generated.domain-resource.go
- zz_generated.flavor-resource.go
- zz_generated.floatingip-resource.go
- zz_generated.group-resource.go
- zz_generated.image-resource.go
- zz_generated.keypair-resource.go
- zz_generated.network-resource.go
- zz_generated.port-resource.go
- zz_generated.project-resource.go
- zz_generated.role-resource.go
- zz_generated.router-resource.go
- zz_generated.securitygroup-resource.go
- zz_generated.server-resource.go
- zz_generated.servergroup-resource.go
- zz_generated.service-resource.go
- zz_generated.subnet-resource.go
- zz_generated.volume-resource.go
- zz_generated.volumetype-resource.go