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 AddressScope
- func (in *AddressScope) DeepCopy() *AddressScope
- func (in *AddressScope) DeepCopyInto(out *AddressScope)
- func (in *AddressScope) DeepCopyObject() runtime.Object
- func (i *AddressScope) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
- func (i *AddressScope) GetConditions() []metav1.Condition
- type AddressScopeFilter
- type AddressScopeImport
- type AddressScopeList
- type AddressScopeResourceSpec
- type AddressScopeResourceStatus
- type AddressScopeSpec
- type AddressScopeStatus
- type AllocationPool
- type AllocationPoolStatus
- type AllowedAddressPair
- type AllowedAddressPairStatus
- type ApplicationCredential
- func (in *ApplicationCredential) DeepCopy() *ApplicationCredential
- func (in *ApplicationCredential) DeepCopyInto(out *ApplicationCredential)
- func (in *ApplicationCredential) DeepCopyObject() runtime.Object
- func (i *ApplicationCredential) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
- func (i *ApplicationCredential) GetConditions() []metav1.Condition
- type ApplicationCredentialAccessRule
- type ApplicationCredentialAccessRuleStatus
- type ApplicationCredentialFilter
- type ApplicationCredentialImport
- type ApplicationCredentialList
- type ApplicationCredentialResourceSpec
- type ApplicationCredentialResourceStatus
- type ApplicationCredentialRoleStatus
- type ApplicationCredentialSpec
- type ApplicationCredentialStatus
- 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 Endpoint
- type EndpointFilter
- type EndpointImport
- type EndpointList
- type EndpointResourceSpec
- type EndpointResourceStatus
- type EndpointSpec
- type EndpointStatus
- 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 HTTPMethod
- type HostID
- 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 ServerMetadata
- type ServerMetadataStatus
- 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 Trunk
- type TrunkFilter
- type TrunkImport
- type TrunkList
- type TrunkResourceSpec
- type TrunkResourceStatus
- type TrunkSpec
- type TrunkStatus
- type TrunkSubportSpec
- type TrunkSubportStatus
- type UUID
- type User
- type UserDataSpec
- type UserFilter
- type UserImport
- type UserList
- type UserResourceSpec
- type UserResourceStatus
- type UserSpec
- type UserStatus
- 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 AddressScope ¶ added in v2.5.0
type AddressScope struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +required
Spec AddressScopeSpec `json:"spec,omitzero"`
// status defines the observed state of the resource.
// +optional
Status AddressScopeStatus `json:"status,omitempty"`
}
AddressScope is the Schema for an ORC resource.
func (*AddressScope) DeepCopy ¶ added in v2.5.0
func (in *AddressScope) DeepCopy() *AddressScope
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressScope.
func (*AddressScope) DeepCopyInto ¶ added in v2.5.0
func (in *AddressScope) DeepCopyInto(out *AddressScope)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AddressScope) DeepCopyObject ¶ added in v2.5.0
func (in *AddressScope) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AddressScope) GetCloudCredentialsRef ¶ added in v2.5.0
func (i *AddressScope) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*AddressScope) GetConditions ¶ added in v2.5.0
func (i *AddressScope) GetConditions() []metav1.Condition
type AddressScopeFilter ¶ added in v2.5.0
type AddressScopeFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// projectRef is a reference to the ORC Project which this resource is associated with.
// +optional
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
// ipVersion is the IP protocol version.
// +optional
IPVersion IPVersion `json:"ipVersion,omitempty"`
// projects or not. By default, only admin users can change set
// this value.
// +optional
Shared *bool `json:"shared,omitempty"`
}
AddressScopeFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*AddressScopeFilter) DeepCopy ¶ added in v2.5.0
func (in *AddressScopeFilter) DeepCopy() *AddressScopeFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressScopeFilter.
func (*AddressScopeFilter) DeepCopyInto ¶ added in v2.5.0
func (in *AddressScopeFilter) DeepCopyInto(out *AddressScopeFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AddressScopeImport ¶ added in v2.5.0
type AddressScopeImport 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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 *AddressScopeFilter `json:"filter,omitempty"`
}
AddressScopeImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*AddressScopeImport) DeepCopy ¶ added in v2.5.0
func (in *AddressScopeImport) DeepCopy() *AddressScopeImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressScopeImport.
func (*AddressScopeImport) DeepCopyInto ¶ added in v2.5.0
func (in *AddressScopeImport) DeepCopyInto(out *AddressScopeImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AddressScopeList ¶ added in v2.5.0
type AddressScopeList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of AddressScope.
// +required
Items []AddressScope `json:"items"`
}
AddressScopeList contains a list of AddressScope.
func (*AddressScopeList) DeepCopy ¶ added in v2.5.0
func (in *AddressScopeList) DeepCopy() *AddressScopeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressScopeList.
func (*AddressScopeList) DeepCopyInto ¶ added in v2.5.0
func (in *AddressScopeList) DeepCopyInto(out *AddressScopeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AddressScopeList) DeepCopyObject ¶ added in v2.5.0
func (in *AddressScopeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AddressScopeList) GetItems ¶ added in v2.5.0
func (l *AddressScopeList) GetItems() []AddressScope
type AddressScopeResourceSpec ¶ added in v2.5.0
type AddressScopeResourceSpec 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"`
// projectRef is a reference to the ORC Project which this resource is associated with.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="projectRef is immutable"
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
// ipVersion is the IP protocol version.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ipVersion is immutable"
IPVersion IPVersion `json:"ipVersion"`
// projects or not. By default, only admin users can change set
// this value. We can't unshared a shared address scope; Neutron
// enforces this.
// +optional
// +kubebuilder:validation:XValidation:rule="!(oldSelf && !self)",message="shared address scope can't be unshared"
Shared *bool `json:"shared,omitempty"`
}
AddressScopeResourceSpec contains the desired state of the resource.
func (*AddressScopeResourceSpec) DeepCopy ¶ added in v2.5.0
func (in *AddressScopeResourceSpec) DeepCopy() *AddressScopeResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressScopeResourceSpec.
func (*AddressScopeResourceSpec) DeepCopyInto ¶ added in v2.5.0
func (in *AddressScopeResourceSpec) DeepCopyInto(out *AddressScopeResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AddressScopeResourceStatus ¶ added in v2.5.0
type AddressScopeResourceStatus struct {
// name is a Human-readable name for the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// projectID is the ID of the Project to which the resource is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// ipVersion is the IP protocol version.
// +optional
IPVersion int32 `json:"ipVersion,omitempty"`
// projects or not. By default, only admin users can change set
// this value.
// +optional
Shared *bool `json:"shared,omitempty"`
}
AddressScopeResourceStatus represents the observed state of the resource.
func (*AddressScopeResourceStatus) DeepCopy ¶ added in v2.5.0
func (in *AddressScopeResourceStatus) DeepCopy() *AddressScopeResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressScopeResourceStatus.
func (*AddressScopeResourceStatus) DeepCopyInto ¶ added in v2.5.0
func (in *AddressScopeResourceStatus) DeepCopyInto(out *AddressScopeResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AddressScopeSpec ¶ added in v2.5.0
type AddressScopeSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *AddressScopeImport `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 *AddressScopeResourceSpec `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,omitzero"`
}
AddressScopeSpec 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 (*AddressScopeSpec) DeepCopy ¶ added in v2.5.0
func (in *AddressScopeSpec) DeepCopy() *AddressScopeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressScopeSpec.
func (*AddressScopeSpec) DeepCopyInto ¶ added in v2.5.0
func (in *AddressScopeSpec) DeepCopyInto(out *AddressScopeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AddressScopeStatus ¶ added in v2.5.0
type AddressScopeStatus 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.
// +kubebuilder:validation:MaxLength:=1024
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *AddressScopeResourceStatus `json:"resource,omitempty"`
}
AddressScopeStatus defines the observed state of an ORC resource.
func (*AddressScopeStatus) DeepCopy ¶ added in v2.5.0
func (in *AddressScopeStatus) DeepCopy() *AddressScopeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressScopeStatus.
func (*AddressScopeStatus) DeepCopyInto ¶ added in v2.5.0
func (in *AddressScopeStatus) DeepCopyInto(out *AddressScopeStatus)
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 ApplicationCredential ¶ added in v2.5.0
type ApplicationCredential struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +required
Spec ApplicationCredentialSpec `json:"spec,omitzero"`
// status defines the observed state of the resource.
// +optional
Status ApplicationCredentialStatus `json:"status,omitempty"`
}
ApplicationCredential is the Schema for an ORC resource.
func (*ApplicationCredential) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredential) DeepCopy() *ApplicationCredential
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredential.
func (*ApplicationCredential) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredential) DeepCopyInto(out *ApplicationCredential)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ApplicationCredential) DeepCopyObject ¶ added in v2.5.0
func (in *ApplicationCredential) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ApplicationCredential) GetCloudCredentialsRef ¶ added in v2.5.0
func (i *ApplicationCredential) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*ApplicationCredential) GetConditions ¶ added in v2.5.0
func (i *ApplicationCredential) GetConditions() []metav1.Condition
type ApplicationCredentialAccessRule ¶ added in v2.5.0
type ApplicationCredentialAccessRule struct {
// path that the application credential is permitted to access
// +kubebuilder:validation:MaxLength=1024
// +optional
Path *string `json:"path,omitempty"`
// method that the application credential is permitted to use for a given API endpoint
// +optional
Method *HTTPMethod `json:"method,omitempty"`
// serviceRef identifier for the service that the application credential is permitted to access
// +optional
ServiceRef *KubernetesNameRef `json:"serviceRef,omitempty"`
}
ApplicationCredentialAccessRule defines an access rule +kubebuilder:validation:MinProperties:=1
func (*ApplicationCredentialAccessRule) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredentialAccessRule) DeepCopy() *ApplicationCredentialAccessRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredentialAccessRule.
func (*ApplicationCredentialAccessRule) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredentialAccessRule) DeepCopyInto(out *ApplicationCredentialAccessRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationCredentialAccessRuleStatus ¶ added in v2.5.0
type ApplicationCredentialAccessRuleStatus struct {
// id is the ID of this access rule
// +kubebuilder:validation:MaxLength:=1024
// +optional
ID *string `json:"id,omitempty"`
// path that the application credential is permitted to access
// +kubebuilder:validation:MaxLength:=1024
// +optional
Path *string `json:"path,omitempty"`
// method that the application credential is permitted to use for a given API endpoint
// +kubebuilder:validation:MaxLength=32
// +optional
Method *string `json:"method,omitempty"`
// service type identifier for the service that the application credential is permitted to access
// +kubebuilder:validation:MaxLength:=1024
// +optional
Service *string `json:"service,omitempty"`
}
func (*ApplicationCredentialAccessRuleStatus) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredentialAccessRuleStatus) DeepCopy() *ApplicationCredentialAccessRuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredentialAccessRuleStatus.
func (*ApplicationCredentialAccessRuleStatus) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredentialAccessRuleStatus) DeepCopyInto(out *ApplicationCredentialAccessRuleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationCredentialFilter ¶ added in v2.5.0
type ApplicationCredentialFilter struct {
// userRef is a reference to the ORC User which this resource is associated with.
// Note: Due to the nature of the OpenStack API, managing application credentials for a user different than the one ORC is authenticated against can be computationally expensive. In the worst case, all application credentials of all users have to be queried.
// +required
UserRef KubernetesNameRef `json:"userRef,omitempty"`
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +kubebuilder:validation:MaxLength:=1024
// +optional
Description *string `json:"description,omitempty"`
}
ApplicationCredentialFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=2
func (*ApplicationCredentialFilter) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredentialFilter) DeepCopy() *ApplicationCredentialFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredentialFilter.
func (*ApplicationCredentialFilter) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredentialFilter) DeepCopyInto(out *ApplicationCredentialFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationCredentialImport ¶ added in v2.5.0
type ApplicationCredentialImport 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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 *ApplicationCredentialFilter `json:"filter,omitempty"`
}
ApplicationCredentialImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*ApplicationCredentialImport) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredentialImport) DeepCopy() *ApplicationCredentialImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredentialImport.
func (*ApplicationCredentialImport) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredentialImport) DeepCopyInto(out *ApplicationCredentialImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationCredentialList ¶ added in v2.5.0
type ApplicationCredentialList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of ApplicationCredential.
// +required
Items []ApplicationCredential `json:"items"`
}
ApplicationCredentialList contains a list of ApplicationCredential.
func (*ApplicationCredentialList) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredentialList) DeepCopy() *ApplicationCredentialList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredentialList.
func (*ApplicationCredentialList) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredentialList) DeepCopyInto(out *ApplicationCredentialList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ApplicationCredentialList) DeepCopyObject ¶ added in v2.5.0
func (in *ApplicationCredentialList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ApplicationCredentialList) GetItems ¶ added in v2.5.0
func (l *ApplicationCredentialList) GetItems() []ApplicationCredential
type ApplicationCredentialResourceSpec ¶ added in v2.5.0
type ApplicationCredentialResourceSpec 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"`
// userRef is a reference to the ORC User which this resource is associated with.
// Note: Due to the nature of the OpenStack API, managing application credentials for a user different than the one ORC is authenticated against can be computationally expensive. In the worst case, all application credentials of all users have to be queried.
// +required
UserRef KubernetesNameRef `json:"userRef,omitempty"`
// unrestricted is a flag indicating whether the application credential may be used for creation or destruction of other application credentials or trusts
// +optional
Unrestricted *bool `json:"unrestricted,omitempty"`
// secretRef is a reference to a Secret containing the application credential secret
// +required
SecretRef KubernetesNameRef `json:"secretRef,omitempty"`
// roleRefs may only contain roles that the user has assigned on the project. If not provided, the roles assigned to the application credential will be the same as the roles in the current token.
// +kubebuilder:validation:MaxItems:=256
// +listType=atomic
// +optional
RoleRefs []KubernetesNameRef `json:"roleRefs,omitempty"`
// accessRules is a list of fine grained access control rules
// +kubebuilder:validation:MaxItems:=256
// +listType=atomic
// +optional
AccessRules []ApplicationCredentialAccessRule `json:"accessRules,omitempty"`
// expiresAt is the time of expiration for the application credential. If unset, the application credential does not expire.
// +optional
ExpiresAt *metav1.Time `json:"expiresAt,omitempty"`
}
ApplicationCredentialResourceSpec contains the desired state of the resource. +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ApplicationCredentialResourceSpec is immutable"
func (*ApplicationCredentialResourceSpec) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredentialResourceSpec) DeepCopy() *ApplicationCredentialResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredentialResourceSpec.
func (*ApplicationCredentialResourceSpec) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredentialResourceSpec) DeepCopyInto(out *ApplicationCredentialResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationCredentialResourceStatus ¶ added in v2.5.0
type ApplicationCredentialResourceStatus 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"`
// unrestricted is a flag indicating whether the application credential may be used for creation or destruction of other application credentials or trusts
// +optional
Unrestricted bool `json:"unrestricted,omitempty"`
// projectID of the project the application credential was created for and that authentication requests using this application credential will be scoped to.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// roles is a list of role objects may only contain roles that the user has assigned on the project
// +kubebuilder:validation:MaxItems:=64
// +listType=atomic
// +optional
Roles []ApplicationCredentialRoleStatus `json:"roles"`
// expiresAt is the time of expiration for the application credential. If unset, the application credential does not expire.
// +optional
ExpiresAt *metav1.Time `json:"expiresAt"`
// accessRules is a list of fine grained access control rules
// +kubebuilder:validation:MaxItems:=64
// +listType=atomic
// +optional
AccessRules []ApplicationCredentialAccessRuleStatus `json:"accessRules,omitempty"`
}
ApplicationCredentialResourceStatus represents the observed state of the resource.
func (*ApplicationCredentialResourceStatus) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredentialResourceStatus) DeepCopy() *ApplicationCredentialResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredentialResourceStatus.
func (*ApplicationCredentialResourceStatus) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredentialResourceStatus) DeepCopyInto(out *ApplicationCredentialResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationCredentialRoleStatus ¶ added in v2.5.0
type ApplicationCredentialRoleStatus struct {
// name of an existing role
// +kubebuilder:validation:MaxLength:=1024
// +optional
Name *string `json:"name,omitempty"`
// id is the ID of a role
// +kubebuilder:validation:MaxLength:=1024
// +optional
ID *string `json:"id,omitempty"`
// domainID of the domain of this role
// +kubebuilder:validation:MaxLength:=1024
// +optional
DomainID *string `json:"domainID,omitempty"`
}
func (*ApplicationCredentialRoleStatus) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredentialRoleStatus) DeepCopy() *ApplicationCredentialRoleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredentialRoleStatus.
func (*ApplicationCredentialRoleStatus) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredentialRoleStatus) DeepCopyInto(out *ApplicationCredentialRoleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationCredentialSpec ¶ added in v2.5.0
type ApplicationCredentialSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *ApplicationCredentialImport `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 *ApplicationCredentialResourceSpec `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,omitzero"`
}
ApplicationCredentialSpec 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 (*ApplicationCredentialSpec) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredentialSpec) DeepCopy() *ApplicationCredentialSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredentialSpec.
func (*ApplicationCredentialSpec) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredentialSpec) DeepCopyInto(out *ApplicationCredentialSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationCredentialStatus ¶ added in v2.5.0
type ApplicationCredentialStatus 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.
// +kubebuilder:validation:MaxLength:=1024
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *ApplicationCredentialResourceStatus `json:"resource,omitempty"`
}
ApplicationCredentialStatus defines the observed state of an ORC resource.
func (*ApplicationCredentialStatus) DeepCopy ¶ added in v2.5.0
func (in *ApplicationCredentialStatus) DeepCopy() *ApplicationCredentialStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationCredentialStatus.
func (*ApplicationCredentialStatus) DeepCopyInto ¶ added in v2.5.0
func (in *ApplicationCredentialStatus) DeepCopyInto(out *ApplicationCredentialStatus)
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.
// +required
Spec DomainSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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 Endpoint ¶ added in v2.5.0
type Endpoint struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +required
Spec EndpointSpec `json:"spec,omitzero"`
// status defines the observed state of the resource.
// +optional
Status EndpointStatus `json:"status,omitempty"`
}
Endpoint is the Schema for an ORC resource.
func (*Endpoint) DeepCopy ¶ added in v2.5.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.
func (*Endpoint) DeepCopyInto ¶ added in v2.5.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Endpoint) DeepCopyObject ¶ added in v2.5.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Endpoint) GetCloudCredentialsRef ¶ added in v2.5.0
func (i *Endpoint) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Endpoint) GetConditions ¶ added in v2.5.0
type EndpointFilter ¶ added in v2.5.0
type EndpointFilter struct {
// interface of the existing endpoint.
// +kubebuilder:validation:Enum:=admin;internal;public
// +optional
Interface string `json:"interface,omitempty"`
// serviceRef is a reference to the ORC Service which this resource is associated with.
// +optional
ServiceRef *KubernetesNameRef `json:"serviceRef,omitempty"`
// url is the URL of the existing endpoint.
// +kubebuilder:validation:MaxLength=1024
// +optional
URL string `json:"url,omitempty"`
}
EndpointFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*EndpointFilter) DeepCopy ¶ added in v2.5.0
func (in *EndpointFilter) DeepCopy() *EndpointFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointFilter.
func (*EndpointFilter) DeepCopyInto ¶ added in v2.5.0
func (in *EndpointFilter) DeepCopyInto(out *EndpointFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EndpointImport ¶ added in v2.5.0
type EndpointImport 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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 *EndpointFilter `json:"filter,omitempty"`
}
EndpointImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*EndpointImport) DeepCopy ¶ added in v2.5.0
func (in *EndpointImport) DeepCopy() *EndpointImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointImport.
func (*EndpointImport) DeepCopyInto ¶ added in v2.5.0
func (in *EndpointImport) DeepCopyInto(out *EndpointImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EndpointList ¶ added in v2.5.0
type EndpointList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Endpoint.
// +required
Items []Endpoint `json:"items"`
}
EndpointList contains a list of Endpoint.
func (*EndpointList) DeepCopy ¶ added in v2.5.0
func (in *EndpointList) DeepCopy() *EndpointList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointList.
func (*EndpointList) DeepCopyInto ¶ added in v2.5.0
func (in *EndpointList) DeepCopyInto(out *EndpointList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EndpointList) DeepCopyObject ¶ added in v2.5.0
func (in *EndpointList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*EndpointList) GetItems ¶ added in v2.5.0
func (l *EndpointList) GetItems() []Endpoint
type EndpointResourceSpec ¶ added in v2.5.0
type EndpointResourceSpec struct {
// description is a human-readable description for the resource.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="description is immutable"
Description *string `json:"description,omitempty"`
// enabled indicates whether the endpoint is enabled or not.
// +optional
Enabled *bool `json:"enabled,omitempty"`
// interface indicates the visibility of the endpoint.
// +kubebuilder:validation:Enum:=admin;internal;public
// +required
Interface string `json:"interface,omitempty"`
// url is the endpoint URL.
// +kubebuilder:validation:MaxLength=1024
// +required
URL string `json:"url"`
// serviceRef is a reference to the ORC Service which this resource is associated with.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="serviceRef is immutable"
ServiceRef KubernetesNameRef `json:"serviceRef,omitempty"`
}
EndpointResourceSpec contains the desired state of the resource.
func (*EndpointResourceSpec) DeepCopy ¶ added in v2.5.0
func (in *EndpointResourceSpec) DeepCopy() *EndpointResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointResourceSpec.
func (*EndpointResourceSpec) DeepCopyInto ¶ added in v2.5.0
func (in *EndpointResourceSpec) DeepCopyInto(out *EndpointResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EndpointResourceStatus ¶ added in v2.5.0
type EndpointResourceStatus struct {
// description is a human-readable description for the resource.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +optional
Description string `json:"description,omitempty"`
// enabled indicates whether the endpoint is enabled or not.
// +optional
Enabled *bool `json:"enabled,omitempty"`
// interface indicates the visibility of the endpoint.
// +kubebuilder:validation:MaxLength=128
// +optional
Interface string `json:"interface,omitempty"`
// url is the endpoint URL.
// +kubebuilder:validation:MaxLength=1024
// +optional
URL string `json:"url,omitempty"`
// serviceID is the ID of the Service to which the resource is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
ServiceID string `json:"serviceID,omitempty"`
}
EndpointResourceStatus represents the observed state of the resource.
func (*EndpointResourceStatus) DeepCopy ¶ added in v2.5.0
func (in *EndpointResourceStatus) DeepCopy() *EndpointResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointResourceStatus.
func (*EndpointResourceStatus) DeepCopyInto ¶ added in v2.5.0
func (in *EndpointResourceStatus) DeepCopyInto(out *EndpointResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EndpointSpec ¶ added in v2.5.0
type EndpointSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *EndpointImport `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 *EndpointResourceSpec `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,omitzero"`
}
EndpointSpec 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 (*EndpointSpec) DeepCopy ¶ added in v2.5.0
func (in *EndpointSpec) DeepCopy() *EndpointSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSpec.
func (*EndpointSpec) DeepCopyInto ¶ added in v2.5.0
func (in *EndpointSpec) DeepCopyInto(out *EndpointSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EndpointStatus ¶ added in v2.5.0
type EndpointStatus 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.
// +kubebuilder:validation:MaxLength:=1024
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *EndpointResourceStatus `json:"resource,omitempty"`
}
EndpointStatus defines the observed state of an ORC resource.
func (*EndpointStatus) DeepCopy ¶ added in v2.5.0
func (in *EndpointStatus) DeepCopy() *EndpointStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointStatus.
func (*EndpointStatus) DeepCopyInto ¶ added in v2.5.0
func (in *EndpointStatus) DeepCopyInto(out *EndpointStatus)
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.
// +required
Spec FlavorSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec FloatingIPSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec GroupSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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 HTTPMethod ¶ added in v2.5.0
type HTTPMethod string
+kubebuilder:validation:Enum:=CONNECT;DELETE;GET;HEAD;OPTIONS;PATCH;POST;PUT;TRACE
const ( HTTPMethodCONNECT HTTPMethod = "CONNECT" HTTPMethodDELETE HTTPMethod = "DELETE" HTTPMethodGET HTTPMethod = "GET" HTTPMethodHEAD HTTPMethod = "HEAD" HTTPMethodOPTIONS HTTPMethod = "OPTIONS" HTTPMethodPATCH HTTPMethod = "PATCH" HTTPMethodPOST HTTPMethod = "POST" HTTPMethodPUT HTTPMethod = "PUT" HTTPMethodTRACE HTTPMethod = "TRACE" )
type HostID ¶ added in v2.5.0
type HostID struct {
// id is the literal host ID string to use for binding:host_id.
// This is mutually exclusive with serverRef.
// +kubebuilder:validation:MaxLength=36
// +optional
ID string `json:"id,omitempty"` //nolint:kubeapilinter // intentionally allow raw ID
// serverRef is a reference to an ORC Server resource from which to
// retrieve the hostID for port binding. The hostID will be read from
// the Server's status.resource.hostID field.
// This is mutually exclusive with id.
// +optional
ServerRef KubernetesNameRef `json:"serverRef,omitempty"`
}
HostID specifies how to determine the host ID for port binding. Exactly one of the fields must be set. +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1 +kubebuilder:validation:XValidation:rule="(has(self.id) && size(self.id) > 0) != (has(self.serverRef) && size(self.serverRef) > 0)",message="exactly one of id or serverRef must be set"
func (*HostID) DeepCopy ¶ added in v2.5.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostID.
func (*HostID) DeepCopyInto ¶ added in v2.5.0
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.
// +required
Spec ImageSpec `json:"spec,omitzero"`
// 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
Download *ImageContentSourceDownload `json:"download,omitempty"`
}
func (*ImageContent) DeepCopy ¶
func (in *ImageContent) DeepCopy() *ImageContent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageContent.
func (*ImageContent) DeepCopyInto ¶
func (in *ImageContent) DeepCopyInto(out *ImageContent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageContentSourceDownload ¶
type ImageContentSourceDownload struct {
// url containing image data
// +kubebuilder:validation:Format=uri
// +kubebuilder:validation: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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec KeyPairSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:MaxLength:=1024
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec NetworkSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec PortSpec `json:"spec,omitzero"`
// 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"`
// 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=32
// +optional
MACAddress string `json:"macAddress,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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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"`
// adminStateUp is the administrative state of the port,
// which is up (true) or down (false). The default value is true.
// +kubebuilder:default:=true
// +optional
AdminStateUp *bool `json:"adminStateUp,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"` //nolint:kubeapilinter // https://github.com/k-orc/openstack-resource-controller/issues/438
// 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"`
// macAddress is the MAC address of the port.
// +kubebuilder:validation:MaxLength=32
// +optional
MACAddress string `json:"macAddress,omitempty"`
// hostID specifies the host where the port will be bound.
// Note that when the port is attached to a server, OpenStack may
// rebind the port to the server's actual compute host, which may
// differ from the specified hostID if no matching scheduler hint
// is used. In this case the port's status will reflect the actual
// binding host, not the value specified here.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="hostID is immutable"
HostID *HostID `json:"hostID,omitempty"` //nolint:kubeapilinter // HostID provides both raw ID and ServerRef options
}
+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"`
// hostID is the ID of host where the port resides.
// +kubebuilder:validation:MaxLength=128
// +optional
HostID string `json:"hostID,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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec ProjectSpec `json:"spec,omitzero"`
// 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"`
// domainRef is a reference to the ORC Domain which this resource is associated with.
// +optional
DomainRef *KubernetesNameRef `json:"domainRef,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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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"`
// 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"`
// 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"`
// domainID is the ID of the Domain to which the resource is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
DomainID string `json:"domainID,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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec RoleSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec RouterSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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.
// +required
Spec RouterInterfaceSpec `json:"spec,omitzero"`
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec SecurityGroupSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec ServerSpec `json:"spec,omitzero"`
// 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.
// +required
Spec ServerGroupSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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 ServerMetadata ¶ added in v2.5.0
type ServerMetadata struct {
// key is the metadata key.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=255
// +required
Key string `json:"key,omitempty"`
// value is the metadata value.
// +kubebuilder:validation:MaxLength:=255
// +kubebuilder:validation:MinLength:=1
// +required
Value string `json:"value,omitempty"`
}
ServerMetadata represents a key-value pair for server metadata.
func (*ServerMetadata) DeepCopy ¶ added in v2.5.0
func (in *ServerMetadata) DeepCopy() *ServerMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerMetadata.
func (*ServerMetadata) DeepCopyInto ¶ added in v2.5.0
func (in *ServerMetadata) DeepCopyInto(out *ServerMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerMetadataStatus ¶ added in v2.5.0
type ServerMetadataStatus struct {
// key is the metadata key.
// +kubebuilder:validation:MaxLength:=255
// +optional
Key string `json:"key,omitempty"`
// value is the metadata value.
// +kubebuilder:validation:MaxLength:=255
// +optional
Value string `json:"value,omitempty"`
}
ServerMetadataStatus represents a key-value pair for server metadata in status.
func (*ServerMetadataStatus) DeepCopy ¶ added in v2.5.0
func (in *ServerMetadataStatus) DeepCopy() *ServerMetadataStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerMetadataStatus.
func (*ServerMetadataStatus) DeepCopyInto ¶ added in v2.5.0
func (in *ServerMetadataStatus) DeepCopyInto(out *ServerMetadataStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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"`
// metadata is a list of metadata key-value pairs which will be set on the server.
// +kubebuilder:validation:MaxItems:=128
// +listType=atomic
// +optional
Metadata []ServerMetadata `json:"metadata,omitempty"`
// configDrive specifies whether to attach a config drive to the server.
// When true, configuration data will be available via a special drive
// instead of the metadata service.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="configDrive is immutable"
ConfigDrive *bool `json:"configDrive,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"`
// metadata is the list of metadata key-value pairs on the resource.
// +kubebuilder:validation:MaxItems:=128
// +listType=atomic
// +optional
Metadata []ServerMetadataStatus `json:"metadata,omitempty"`
// configDrive indicates whether the server was booted with a config drive.
// +optional
ConfigDrive bool `json:"configDrive,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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec ServiceSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec SubnetSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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 Trunk ¶ added in v2.5.0
type Trunk struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +required
Spec TrunkSpec `json:"spec,omitzero"`
// status defines the observed state of the resource.
// +optional
Status TrunkStatus `json:"status,omitempty"`
}
Trunk is the Schema for an ORC resource.
func (*Trunk) DeepCopy ¶ added in v2.5.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Trunk.
func (*Trunk) DeepCopyInto ¶ added in v2.5.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Trunk) DeepCopyObject ¶ added in v2.5.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Trunk) GetCloudCredentialsRef ¶ added in v2.5.0
func (i *Trunk) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Trunk) GetConditions ¶ added in v2.5.0
type TrunkFilter ¶ added in v2.5.0
type TrunkFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,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 which this resource is associated with.
// +optional
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
// adminStateUp is the administrative state of the trunk.
// +optional
AdminStateUp *bool `json:"adminStateUp,omitempty"`
FilterByNeutronTags `json:",inline"`
}
TrunkFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*TrunkFilter) DeepCopy ¶ added in v2.5.0
func (in *TrunkFilter) DeepCopy() *TrunkFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrunkFilter.
func (*TrunkFilter) DeepCopyInto ¶ added in v2.5.0
func (in *TrunkFilter) DeepCopyInto(out *TrunkFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TrunkImport ¶ added in v2.5.0
type TrunkImport 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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 *TrunkFilter `json:"filter,omitempty"`
}
TrunkImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*TrunkImport) DeepCopy ¶ added in v2.5.0
func (in *TrunkImport) DeepCopy() *TrunkImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrunkImport.
func (*TrunkImport) DeepCopyInto ¶ added in v2.5.0
func (in *TrunkImport) DeepCopyInto(out *TrunkImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TrunkList ¶ added in v2.5.0
type TrunkList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Trunk.
// +required
Items []Trunk `json:"items"`
}
TrunkList contains a list of Trunk.
func (*TrunkList) DeepCopy ¶ added in v2.5.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrunkList.
func (*TrunkList) DeepCopyInto ¶ added in v2.5.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TrunkList) DeepCopyObject ¶ added in v2.5.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TrunkResourceSpec ¶ added in v2.5.0
type TrunkResourceSpec 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"`
// portRef is a reference to the ORC Port which this resource is associated with.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="portRef is immutable"
PortRef KubernetesNameRef `json:"portRef,omitempty"`
// projectRef is a reference to the ORC Project which this resource is associated with.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="projectRef is immutable"
ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"`
// adminStateUp is the administrative state of the trunk. If false (down),
// the trunk does not forward packets.
// +optional
AdminStateUp *bool `json:"adminStateUp,omitempty"`
// subports is the list of ports to attach to the trunk.
// +optional
// +kubebuilder:validation:MaxItems:=1024
// +listType=atomic
Subports []TrunkSubportSpec `json:"subports,omitempty"`
// tags is a list of Neutron tags to apply to the trunk.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
}
TrunkResourceSpec contains the desired state of the resource.
func (*TrunkResourceSpec) DeepCopy ¶ added in v2.5.0
func (in *TrunkResourceSpec) DeepCopy() *TrunkResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrunkResourceSpec.
func (*TrunkResourceSpec) DeepCopyInto ¶ added in v2.5.0
func (in *TrunkResourceSpec) DeepCopyInto(out *TrunkResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TrunkResourceStatus ¶ added in v2.5.0
type TrunkResourceStatus 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"`
// portID is the ID of the Port to which the resource is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
PortID string `json:"portID,omitempty"`
// projectID is the ID of the Project to which the resource is associated.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// tenantID is the project owner of the trunk (alias of projectID in some deployments).
// +kubebuilder:validation:MaxLength=1024
// +optional
TenantID string `json:"tenantID,omitempty"`
// status indicates whether the trunk is currently operational.
// +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 trunk.
// +optional
AdminStateUp *bool `json:"adminStateUp,omitempty"`
// subports is a list of ports associated with the trunk.
// +kubebuilder:validation:MaxItems=1024
// +listType=atomic
// +optional
Subports []TrunkSubportStatus `json:"subports,omitempty"`
}
TrunkResourceStatus represents the observed state of the resource.
func (*TrunkResourceStatus) DeepCopy ¶ added in v2.5.0
func (in *TrunkResourceStatus) DeepCopy() *TrunkResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrunkResourceStatus.
func (*TrunkResourceStatus) DeepCopyInto ¶ added in v2.5.0
func (in *TrunkResourceStatus) DeepCopyInto(out *TrunkResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TrunkSpec ¶ added in v2.5.0
type TrunkSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *TrunkImport `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 *TrunkResourceSpec `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,omitzero"`
}
TrunkSpec 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 (*TrunkSpec) DeepCopy ¶ added in v2.5.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrunkSpec.
func (*TrunkSpec) DeepCopyInto ¶ added in v2.5.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TrunkStatus ¶ added in v2.5.0
type TrunkStatus 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.
// +kubebuilder:validation:MaxLength:=1024
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *TrunkResourceStatus `json:"resource,omitempty"`
}
TrunkStatus defines the observed state of an ORC resource.
func (*TrunkStatus) DeepCopy ¶ added in v2.5.0
func (in *TrunkStatus) DeepCopy() *TrunkStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrunkStatus.
func (*TrunkStatus) DeepCopyInto ¶ added in v2.5.0
func (in *TrunkStatus) DeepCopyInto(out *TrunkStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TrunkSubportSpec ¶ added in v2.5.0
type TrunkSubportSpec struct {
// portRef is a reference to the ORC Port that will be attached as a subport.
// +required
PortRef KubernetesNameRef `json:"portRef,omitempty"`
// segmentationID is the segmentation ID for the subport (e.g. VLAN ID).
// +required
// +kubebuilder:validation:Minimum:=1
// +kubebuilder:validation:Maximum:=4094
SegmentationID int32 `json:"segmentationID,omitempty"`
// segmentationType is the segmentation type for the subport (e.g. vlan).
// +required
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=32
// +kubebuilder:validation:Enum:=inherit;vlan
SegmentationType string `json:"segmentationType,omitempty"`
}
TrunkSubportSpec represents a subport to attach to a trunk. It maps to gophercloud's trunks.Subport.
func (*TrunkSubportSpec) DeepCopy ¶ added in v2.5.0
func (in *TrunkSubportSpec) DeepCopy() *TrunkSubportSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrunkSubportSpec.
func (*TrunkSubportSpec) DeepCopyInto ¶ added in v2.5.0
func (in *TrunkSubportSpec) DeepCopyInto(out *TrunkSubportSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TrunkSubportStatus ¶ added in v2.5.0
type TrunkSubportStatus struct {
// portID is the OpenStack ID of the Port attached as a subport.
// +kubebuilder:validation:MaxLength=1024
// +optional
PortID string `json:"portID,omitempty"`
// segmentationID is the segmentation ID for the subport (e.g. VLAN ID).
// +optional
SegmentationID int32 `json:"segmentationID,omitempty"`
// segmentationType is the segmentation type for the subport (e.g. vlan).
// +kubebuilder:validation:MaxLength=1024
// +optional
SegmentationType string `json:"segmentationType,omitempty"`
}
TrunkSubportStatus represents an attached subport on a trunk. It maps to gophercloud's trunks.Subport.
func (*TrunkSubportStatus) DeepCopy ¶ added in v2.5.0
func (in *TrunkSubportStatus) DeepCopy() *TrunkSubportStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrunkSubportStatus.
func (*TrunkSubportStatus) DeepCopyInto ¶ added in v2.5.0
func (in *TrunkSubportStatus) DeepCopyInto(out *TrunkSubportStatus)
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 User ¶ added in v2.5.0
type User struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +required
Spec UserSpec `json:"spec,omitzero"`
// status defines the observed state of the resource.
// +optional
Status UserStatus `json:"status,omitempty"`
}
User is the Schema for an ORC resource.
func (*User) DeepCopy ¶ added in v2.5.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new User.
func (*User) DeepCopyInto ¶ added in v2.5.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*User) DeepCopyObject ¶ added in v2.5.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*User) GetCloudCredentialsRef ¶ added in v2.5.0
func (i *User) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*User) GetConditions ¶ added in v2.5.0
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 UserFilter ¶ added in v2.5.0
type UserFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// domainRef is a reference to the ORC Domain which this resource is associated with.
// +optional
DomainRef *KubernetesNameRef `json:"domainRef,omitempty"`
}
UserFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*UserFilter) DeepCopy ¶ added in v2.5.0
func (in *UserFilter) DeepCopy() *UserFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserFilter.
func (*UserFilter) DeepCopyInto ¶ added in v2.5.0
func (in *UserFilter) DeepCopyInto(out *UserFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserImport ¶ added in v2.5.0
type UserImport 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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 *UserFilter `json:"filter,omitempty"`
}
UserImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*UserImport) DeepCopy ¶ added in v2.5.0
func (in *UserImport) DeepCopy() *UserImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserImport.
func (*UserImport) DeepCopyInto ¶ added in v2.5.0
func (in *UserImport) DeepCopyInto(out *UserImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserList ¶ added in v2.5.0
type UserList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of User.
// +required
Items []User `json:"items"`
}
UserList contains a list of User.
func (*UserList) DeepCopy ¶ added in v2.5.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserList.
func (*UserList) DeepCopyInto ¶ added in v2.5.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*UserList) DeepCopyObject ¶ added in v2.5.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type UserResourceSpec ¶ added in v2.5.0
type UserResourceSpec 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"`
// 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"`
// defaultProjectRef is a reference to the Default Project which this resource is associated with.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="defaultProjectRef is immutable"
DefaultProjectRef *KubernetesNameRef `json:"defaultProjectRef,omitempty"`
// enabled defines whether a user is enabled or disabled
// +optional
Enabled *bool `json:"enabled,omitempty"`
// passwordRef is a reference to a Secret containing the password
// for this user. The Secret must contain a key named "password".
// If not specified, the user is created without a password.
// +optional
PasswordRef *KubernetesNameRef `json:"passwordRef,omitempty"`
}
UserResourceSpec contains the desired state of the resource. +kubebuilder:validation:XValidation:rule="!has(oldSelf.passwordRef) || has(self.passwordRef)",message="passwordRef may not be removed once set"
func (*UserResourceSpec) DeepCopy ¶ added in v2.5.0
func (in *UserResourceSpec) DeepCopy() *UserResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserResourceSpec.
func (*UserResourceSpec) DeepCopyInto ¶ added in v2.5.0
func (in *UserResourceSpec) DeepCopyInto(out *UserResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserResourceStatus ¶ added in v2.5.0
type UserResourceStatus 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"`
// defaultProjectID is the ID of the Default Project to which the user is associated with.
// +kubebuilder:validation:MaxLength=1024
// +optional
DefaultProjectID string `json:"defaultProjectID,omitempty"`
// enabled defines whether a user is enabled or disabled
// +optional
Enabled bool `json:"enabled,omitempty"`
// passwordExpiresAt is the timestamp at which the user's password expires.
// +kubebuilder:validation:MaxLength:=1024
// +optional
PasswordExpiresAt string `json:"passwordExpiresAt,omitempty"`
// appliedPasswordRef is the name of the Secret containing the
// password that was last applied to the OpenStack resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
AppliedPasswordRef string `json:"appliedPasswordRef,omitempty"`
}
UserResourceStatus represents the observed state of the resource.
func (*UserResourceStatus) DeepCopy ¶ added in v2.5.0
func (in *UserResourceStatus) DeepCopy() *UserResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserResourceStatus.
func (*UserResourceStatus) DeepCopyInto ¶ added in v2.5.0
func (in *UserResourceStatus) DeepCopyInto(out *UserResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserSpec ¶ added in v2.5.0
type UserSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *UserImport `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 *UserResourceSpec `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,omitzero"`
}
UserSpec 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 (*UserSpec) DeepCopy ¶ added in v2.5.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSpec.
func (*UserSpec) DeepCopyInto ¶ added in v2.5.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserStatus ¶ added in v2.5.0
type UserStatus 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.
// +kubebuilder:validation:MaxLength:=1024
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *UserResourceStatus `json:"resource,omitempty"`
}
UserStatus defines the observed state of an ORC resource.
func (*UserStatus) DeepCopy ¶ added in v2.5.0
func (in *UserStatus) DeepCopy() *UserStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserStatus.
func (*UserStatus) DeepCopyInto ¶ added in v2.5.0
func (in *UserStatus) DeepCopyInto(out *UserStatus)
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.
// +required
Spec VolumeSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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"`
// imageRef is a reference to an ORC Image. If specified, creates a
// bootable volume from this image. The volume size must be >= the
// image's min_disk requirement.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="imageRef is immutable"
ImageRef *KubernetesNameRef `json:"imageRef,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"`
// imageID is the ID of the image this volume was created from, if any.
// +kubebuilder:validation:MaxLength=1024
// +optional
ImageID string `json:"imageID,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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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.
// +required
Spec VolumeTypeSpec `json:"spec,omitzero"`
// 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.
// +kubebuilder:validation:Format:=uuid
// +kubebuilder:validation:MaxLength:=36
// +optional
ID *string `json:"id,omitempty"` //nolint:kubeapilinter
// 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,omitzero"`
}
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.
// +kubebuilder:validation:MaxLength:=1024
// +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
¶
- addressscope_types.go
- applicationcredential_types.go
- common_types.go
- conditions.go
- controller_options.go
- credentials_ref.go
- doc.go
- domain_types.go
- endpoint_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
- trunk_types.go
- user_types.go
- volume_types.go
- volumetype_types.go
- zz_generated.addressscope-resource.go
- zz_generated.applicationcredential-resource.go
- zz_generated.deepcopy.go
- zz_generated.domain-resource.go
- zz_generated.endpoint-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.trunk-resource.go
- zz_generated.user-resource.go
- zz_generated.volume-resource.go
- zz_generated.volumetype-resource.go