Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the openstack v1alpha1 API group +kubebuilder:object:generate=true +groupName=openstack.k-orc.cloud +k8s:openapi-gen=true
Package v1alpha1 contains API Schema definitions for the openstack v1alpha1 API group +kubebuilder:object:generate=true +groupName=openstack.k-orc.cloud +k8s:openapi-gen=true
Index ¶
- Constants
- Variables
- func GetTerminalError(obj ObjectWithConditions) error
- func IsAvailable(obj ObjectWithConditions) bool
- func IsConditionReasonTerminal(reason string) bool
- func IsReconciliationComplete(obj ObjectWithConditions) bool
- func Resource(resource string) schema.GroupResource
- type Address
- type AllocationPool
- type AllocationPoolStatus
- type AllowedAddressPair
- type AllowedAddressPairStatus
- type AvailabilityZoneHint
- type CIDR
- type CloudCredentialsRefProvider
- type CloudCredentialsReference
- type DNSDomain
- type Ethertype
- type ExternalGateway
- type ExternalGatewayStatus
- type FilterByNeutronTags
- type FilterByServerTags
- type FixedIPStatus
- type Flavor
- type FlavorFilter
- type FlavorImport
- type FlavorList
- type FlavorResourceSpec
- type FlavorResourceStatus
- type FlavorSpec
- type FlavorStatus
- 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 ImageResourceSpec
- type ImageResourceStatus
- type ImageSpec
- type ImageStatus
- type ImageStatusExtra
- type ImageTag
- type ImageVisibility
- 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 PortSpec
- type PortStatus
- type Protocol
- type ProviderPropertiesStatus
- 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 ServerImport
- type ServerList
- type ServerPortSpec
- type ServerResourceSpec
- type ServerResourceStatus
- type ServerSpec
- type ServerStatus
- type ServerTag
- type Subnet
- type SubnetFilter
- type SubnetGateway
- type SubnetGatewayType
- type SubnetImport
- type SubnetList
- type SubnetResourceSpec
- type SubnetResourceStatus
- type SubnetSpec
- type SubnetStatus
- type UUID
- type UserDataSpec
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 ( 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"`
}
func (*Address) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Address.
func (*Address) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AllocationPool ¶
type AllocationPool struct {
// start is the first IP address in the allocation pool.
// +required
Start IPvAny `json:"start"`
// end is the last IP address in the allocation pool.
// +required
End IPvAny `json:"end"`
}
func (*AllocationPool) DeepCopy ¶
func (in *AllocationPool) DeepCopy() *AllocationPool
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationPool.
func (*AllocationPool) DeepCopyInto ¶
func (in *AllocationPool) DeepCopyInto(out *AllocationPool)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AllocationPoolStatus ¶
type AllocationPoolStatus struct {
// start is the first IP address in the allocation pool.
// +kubebuilder:validation:MaxLength=1024
// +optional
Start string `json:"start,omitempty"`
// end is the last IP address in the allocation pool.
// +kubebuilder:validation:MaxLength=1024
// +optional
End string `json:"end,omitempty"`
}
func (*AllocationPoolStatus) DeepCopy ¶
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"`
// mac contains a MAC address which a server connected to the port can
// send packets with. Defaults to the MAC address of the port.
// +optional
MAC *MAC `json:"mac,omitempty"`
}
func (*AllowedAddressPair) DeepCopy ¶
func (in *AllowedAddressPair) DeepCopy() *AllowedAddressPair
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedAddressPair.
func (*AllowedAddressPair) DeepCopyInto ¶
func (in *AllowedAddressPair) DeepCopyInto(out *AllowedAddressPair)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AllowedAddressPairStatus ¶
type AllowedAddressPairStatus struct {
// ip contains an IP address which a server connected to the port can
// send packets with.
// +kubebuilder:validation:MaxLength=1024
// +optional
IP string `json:"ip,omitempty"`
// mac contains a MAC address which a server connected to the port can
// send packets with.
// +kubebuilder:validation:MaxLength=1024
// +optional
MAC string `json:"mac,omitempty"`
}
func (*AllowedAddressPairStatus) DeepCopy ¶
func (in *AllowedAddressPairStatus) DeepCopy() *AllowedAddressPairStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedAddressPairStatus.
func (*AllowedAddressPairStatus) DeepCopyInto ¶
func (in *AllowedAddressPairStatus) DeepCopyInto(out *AllowedAddressPairStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AvailabilityZoneHint ¶
type AvailabilityZoneHint string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255
type CIDR ¶
type CIDR string
+kubebuilder:validation:Format:=cidr +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=49
type CloudCredentialsRefProvider ¶
type CloudCredentialsRefProvider interface {
GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
}
CloudCredentialsRefProvider is an interface for obtaining OpenStack credentials from an API object +kubebuilder:object:generate:=false
type CloudCredentialsReference ¶
type CloudCredentialsReference struct {
// secretName is the name of a secret in the same namespace as the resource being provisioned.
// The secret must contain a key named `clouds.yaml` which contains an OpenStack clouds.yaml file.
// The secret may optionally contain a key named `cacert` containing a PEM-encoded CA certificate.
// +required
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=253
SecretName string `json:"secretName"`
// cloudName specifies the name of the entry in the clouds.yaml file to use.
// +required
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=256
CloudName string `json:"cloudName"`
}
CloudCredentialsReference is a reference to a secret containing OpenStack credentials.
func (*CloudCredentialsReference) DeepCopy ¶
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 ExternalGateway ¶
type ExternalGateway struct {
// networkRef is a reference to the ORC Network which the external
// gateway is on.
// +required
NetworkRef KubernetesNameRef `json:"networkRef"`
}
func (*ExternalGateway) DeepCopy ¶
func (in *ExternalGateway) DeepCopy() *ExternalGateway
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalGateway.
func (*ExternalGateway) DeepCopyInto ¶
func (in *ExternalGateway) DeepCopyInto(out *ExternalGateway)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalGatewayStatus ¶
type ExternalGatewayStatus struct {
// networkID is the ID of the network the gateway is on.
// +kubebuilder:validation:MaxLength=1024
// +optional
NetworkID string `json:"networkID,omitempty"`
}
func (*ExternalGatewayStatus) DeepCopy ¶
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 FilterByNeutronTags ¶
type FilterByNeutronTags struct {
// tags is a list of tags to filter by. If specified, the resource must
// have all of the tags specified to be included in the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=32
Tags []NeutronTag `json:"tags,omitempty"`
// tagsAny is a list of tags to filter by. If specified, the resource
// must have at least one of the tags specified to be included in the
// result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=32
TagsAny []NeutronTag `json:"tagsAny,omitempty"`
// notTags is a list of tags to filter by. If specified, resources which
// contain all of the given tags will be excluded from the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=32
NotTags []NeutronTag `json:"notTags,omitempty"`
// notTagsAny is a list of tags to filter by. If specified, resources
// which contain any of the given tags will be excluded from the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=32
NotTagsAny []NeutronTag `json:"notTagsAny,omitempty"`
}
func (*FilterByNeutronTags) DeepCopy ¶
func (in *FilterByNeutronTags) DeepCopy() *FilterByNeutronTags
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FilterByNeutronTags.
func (*FilterByNeutronTags) DeepCopyInto ¶
func (in *FilterByNeutronTags) DeepCopyInto(out *FilterByNeutronTags)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FilterByServerTags ¶
type FilterByServerTags struct {
// tags is a list of tags to filter by. If specified, the resource must
// have all of the tags specified to be included in the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=32
Tags []ServerTag `json:"tags,omitempty"`
// tagsAny is a list of tags to filter by. If specified, the resource
// must have at least one of the tags specified to be included in the
// result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=32
TagsAny []ServerTag `json:"tagsAny,omitempty"`
// notTags is a list of tags to filter by. If specified, resources which
// contain all of the given tags will be excluded from the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=32
NotTags []ServerTag `json:"notTags,omitempty"`
// notTagsAny is a list of tags to filter by. If specified, resources
// which contain any of the given tags will be excluded from the result.
// +listType=set
// +optional
// +kubebuilder:validation:MaxItems:=32
NotTagsAny []ServerTag `json:"notTagsAny,omitempty"`
}
func (*FilterByServerTags) DeepCopy ¶
func (in *FilterByServerTags) DeepCopy() *FilterByServerTags
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FilterByServerTags.
func (*FilterByServerTags) DeepCopyInto ¶
func (in *FilterByServerTags) DeepCopyInto(out *FilterByServerTags)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FixedIPStatus ¶
type FixedIPStatus struct {
// ip contains a fixed IP address assigned to the port.
// +kubebuilder:validation:MaxLength=1024
// +optional
IP string `json:"ip,omitempty"`
// subnetID is the ID of the subnet this IP is allocated from.
// +kubebuilder:validation:MaxLength=1024
// +optional
SubnetID string `json:"subnetID,omitempty"`
}
func (*FixedIPStatus) DeepCopy ¶
func (in *FixedIPStatus) DeepCopy() *FixedIPStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FixedIPStatus.
func (*FixedIPStatus) DeepCopyInto ¶
func (in *FixedIPStatus) DeepCopyInto(out *FixedIPStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Flavor ¶
type Flavor struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec FlavorSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status FlavorStatus `json:"status,omitempty"`
}
Flavor is the Schema for an ORC resource.
func (*Flavor) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Flavor.
func (*Flavor) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Flavor) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Flavor) GetCloudCredentialsRef ¶
func (i *Flavor) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Flavor) GetConditions ¶
type FlavorFilter ¶
type FlavorFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// ram is the memory of the flavor, measured in MB.
// +kubebuilder:validation:Minimum=1
// +optional
RAM *int32 `json:"ram,omitempty"`
// vcpus is the number of vcpus for the flavor.
// +kubebuilder:validation:Minimum=1
// +optional
Vcpus *int32 `json:"vcpus,omitempty"`
// disk is the size of the root disk in GiB.
// +kubebuilder:validation:Minimum=0
// +optional
Disk *int32 `json:"disk,omitempty"`
}
FlavorFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*FlavorFilter) DeepCopy ¶
func (in *FlavorFilter) DeepCopy() *FlavorFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorFilter.
func (*FlavorFilter) DeepCopyInto ¶
func (in *FlavorFilter) DeepCopyInto(out *FlavorFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlavorImport ¶
type FlavorImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *FlavorFilter `json:"filter,omitempty"`
}
FlavorImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*FlavorImport) DeepCopy ¶
func (in *FlavorImport) DeepCopy() *FlavorImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorImport.
func (*FlavorImport) DeepCopyInto ¶
func (in *FlavorImport) DeepCopyInto(out *FlavorImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlavorList ¶
type FlavorList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Flavor.
// +required
Items []Flavor `json:"items"`
}
FlavorList contains a list of Flavor.
func (*FlavorList) DeepCopy ¶
func (in *FlavorList) DeepCopy() *FlavorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorList.
func (*FlavorList) DeepCopyInto ¶
func (in *FlavorList) DeepCopyInto(out *FlavorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FlavorList) DeepCopyObject ¶
func (in *FlavorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*FlavorList) GetItems ¶
func (l *FlavorList) GetItems() []Flavor
type FlavorResourceSpec ¶
type FlavorResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description contains a free form description of the flavor.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=65535
// +optional
Description *string `json:"description,omitempty"`
// ram is the memory of the flavor, measured in MB.
// +kubebuilder:validation:Minimum=1
// +required
RAM int32 `json:"ram"`
// vcpus is the number of vcpus for the flavor.
// +kubebuilder:validation:Minimum=1
// +required
Vcpus int32 `json:"vcpus"`
// disk is the size of the root disk that will be created in GiB. If 0
// the root disk will be set to exactly the size of the image used to
// deploy the instance. However, in this case the scheduler cannot
// select the compute host based on the virtual image size. Therefore,
// 0 should only be used for volume booted instances or for testing
// purposes. Volume-backed instances can be enforced for flavors with
// zero root disk via the
// os_compute_api:servers:create:zero_disk_flavor policy rule.
// +kubebuilder:validation:Minimum=0
// +required
Disk int32 `json:"disk"`
// swap is the size of a dedicated swap disk that will be allocated, in
// MiB. If 0 (the default), no dedicated swap disk will be created.
// +kubebuilder:validation:Minimum=0
// +optional
Swap int32 `json:"swap,omitempty"`
// isPublic flags a flavor as being available to all projects or not.
// +optional
IsPublic *bool `json:"isPublic,omitempty"`
// ephemeral is the size of the ephemeral disk that will be created, in GiB.
// Ephemeral disks may be written over on server state changes. So should only
// be used as a scratch space for applications that are aware of its
// limitations. Defaults to 0.
// +kubebuilder:validation:Minimum=0
// +optional
Ephemeral int32 `json:"ephemeral,omitempty"`
}
NetworkResourceSpec contains the desired state of a network +kubebuilder:validation:XValidation:rule="self == oldSelf",message="FlavorResourceSpec is immutable"
func (*FlavorResourceSpec) DeepCopy ¶
func (in *FlavorResourceSpec) DeepCopy() *FlavorResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorResourceSpec.
func (*FlavorResourceSpec) DeepCopyInto ¶
func (in *FlavorResourceSpec) DeepCopyInto(out *FlavorResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlavorResourceStatus ¶
type FlavorResourceStatus struct {
// name is a Human-readable name for the flavor. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength:=65535
// +optional
Description string `json:"description,omitempty"`
// ram is the memory of the flavor, measured in MB.
// +optional
RAM *int32 `json:"ram,omitempty"`
// vcpus is the number of vcpus for the flavor.
// +optional
Vcpus *int32 `json:"vcpus,omitempty"`
// disk is the size of the root disk that will be created in GiB.
// +optional
Disk *int32 `json:"disk,omitempty"`
// swap is the size of a dedicated swap disk that will be allocated, in
// MiB.
// +optional
Swap *int32 `json:"swap,omitempty"`
// isPublic flags a flavor as being available to all projects or not.
// +optional
IsPublic *bool `json:"isPublic,omitempty"`
// ephemeral is the size of the ephemeral disk, in GiB.
// +optional
Ephemeral *int32 `json:"ephemeral,omitempty"`
}
FlavorResourceStatus represents the observed state of the resource.
func (*FlavorResourceStatus) DeepCopy ¶
func (in *FlavorResourceStatus) DeepCopy() *FlavorResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorResourceStatus.
func (*FlavorResourceStatus) DeepCopyInto ¶
func (in *FlavorResourceStatus) DeepCopyInto(out *FlavorResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlavorSpec ¶
type FlavorSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *FlavorImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *FlavorResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
FlavorSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*FlavorSpec) DeepCopy ¶
func (in *FlavorSpec) DeepCopy() *FlavorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorSpec.
func (*FlavorSpec) DeepCopyInto ¶
func (in *FlavorSpec) DeepCopyInto(out *FlavorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FlavorStatus ¶
type FlavorStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *FlavorResourceStatus `json:"resource,omitempty"`
}
FlavorStatus defines the observed state of an ORC resource.
func (*FlavorStatus) DeepCopy ¶
func (in *FlavorStatus) DeepCopy() *FlavorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlavorStatus.
func (*FlavorStatus) DeepCopyInto ¶
func (in *FlavorStatus) DeepCopyInto(out *FlavorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostRoute ¶
type HostRoute struct {
// destination for the additional route.
// +required
Destination CIDR `json:"destination"`
// nextHop for the additional route.
// +required
NextHop IPvAny `json:"nextHop"`
}
func (*HostRoute) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostRoute.
func (*HostRoute) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostRouteStatus ¶
type HostRouteStatus struct {
// destination for the additional route.
// +kubebuilder:validation:MaxLength=1024
// +optional
Destination string `json:"destination,omitempty"`
// nextHop for the additional route.
// +kubebuilder:validation:MaxLength=1024
// +optional
NextHop string `json:"nextHop,omitempty"`
}
func (*HostRouteStatus) DeepCopy ¶
func (in *HostRouteStatus) DeepCopy() *HostRouteStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostRouteStatus.
func (*HostRouteStatus) DeepCopyInto ¶
func (in *HostRouteStatus) DeepCopyInto(out *HostRouteStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IPv6AddressMode ¶
type IPv6AddressMode string
+kubebuilder:validation:Enum:=slaac;dhcpv6-stateful;dhcpv6-stateless
type IPv6Options ¶
type IPv6Options struct {
// addressMode specifies mechanisms for assigning IPv6 IP addresses.
// +optional
AddressMode *IPv6AddressMode `json:"addressMode,omitempty"`
// raMode specifies the IPv6 router advertisement mode. It specifies whether
// the networking service should transmit ICMPv6 packets.
// +optional
RAMode *IPv6RAMode `json:"raMode,omitempty"`
}
+kubebuilder:validation:MinProperties:=1
func (*IPv6Options) DeepCopy ¶
func (in *IPv6Options) DeepCopy() *IPv6Options
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPv6Options.
func (*IPv6Options) DeepCopyInto ¶
func (in *IPv6Options) DeepCopyInto(out *IPv6Options)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IPv6RAMode ¶
type IPv6RAMode string
+kubebuilder:validation:Enum:=slaac;dhcpv6-stateful;dhcpv6-stateless
type IPvAny ¶
type IPvAny string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=45
type Image ¶
type Image struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec ImageSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status ImageStatus `json:"status,omitempty"`
}
Image is the Schema for an ORC resource.
func (*Image) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.
func (*Image) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Image) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Image) GetCloudCredentialsRef ¶
func (i *Image) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Image) GetConditions ¶
type ImageCompression ¶
type ImageCompression string
+kubebuilder:validation:Enum:=xz;gz;bz2
const ( ImageCompressionXZ ImageCompression = "xz" ImageCompressionGZ ImageCompression = "gz" ImageCompressionBZ2 ImageCompression = "bz2" )
type ImageContainerFormat ¶
type ImageContainerFormat string
+kubebuilder:validation:Enum:=ami;ari;aki;bare;ovf;ova;docker;compressed
const ( ImageContainerFormatAKI ImageContainerFormat = "aki" ImageContainerFormatAMI ImageContainerFormat = "ami" ImageContainerFormatARI ImageContainerFormat = "ari" ImageContainerFormatBare ImageContainerFormat = "bare" ImageContainerFormatCompressed ImageContainerFormat = "compressed" ImageContainerFormatDocker ImageContainerFormat = "docker" ImageContainerFormatOVA ImageContainerFormat = "ova" ImageContainerFormatOVF ImageContainerFormat = "ovf" )
type ImageContent ¶
type ImageContent struct {
// containerFormat is the format of the image container.
// qcow2 and raw images do not usually have a container. This is specified as "bare", which is also the default.
// Permitted values are ami, ari, aki, bare, compressed, ovf, ova, and docker.
// +kubebuilder:default:=bare
// +optional
ContainerFormat ImageContainerFormat `json:"containerFormat,omitempty"`
// diskFormat is the format of the disk image.
// Normal values are "qcow2", or "raw". Glance may be configured to support others.
// +required
DiskFormat ImageDiskFormat `json:"diskFormat"`
// download describes how to obtain image data by downloading it from a URL.
// Must be set when creating a managed image.
// +required
//nolint:kal
Download *ImageContentSourceDownload `json:"download"`
}
func (*ImageContent) DeepCopy ¶
func (in *ImageContent) DeepCopy() *ImageContent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageContent.
func (*ImageContent) DeepCopyInto ¶
func (in *ImageContent) DeepCopyInto(out *ImageContent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageContentSourceDownload ¶
type ImageContentSourceDownload struct {
// url containing image data
// +kubebuilder:validation:Format=uri
// +kubebuilder:validation:MaxLength=2048
// +required
URL string `json:"url"`
// decompress specifies that the source data must be decompressed with the
// given compression algorithm before being stored. Specifying Decompress
// will disable the use of Glance's web-download, as web-download cannot
// currently deterministically decompress downloaded content.
// +optional
Decompress *ImageCompression `json:"decompress,omitempty"`
// hash is a hash which will be used to verify downloaded data, i.e.
// before any decompression. If not specified, no hash verification will be
// performed. Specifying a Hash will disable the use of Glance's
// web-download, as web-download cannot currently deterministically verify
// the hash of downloaded content.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="hash is immutable"
// +optional
Hash *ImageHash `json:"hash,omitempty"`
}
func (*ImageContentSourceDownload) DeepCopy ¶
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"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems:=32
// +listType=set
// +optional
Tags []ImageTag `json:"tags,omitempty"`
}
ImageFilter defines a Glance query +kubebuilder:validation:MinProperties:=1
func (*ImageFilter) DeepCopy ¶
func (in *ImageFilter) DeepCopy() *ImageFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageFilter.
func (*ImageFilter) DeepCopyInto ¶
func (in *ImageFilter) DeepCopyInto(out *ImageFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageHWBus ¶
type ImageHWBus string
ImageHWBus is a type of hardware bus.
Permitted values are scsi, virtio, uml, xen, ide, usb, and lxc. +kubebuilder:validation:Enum:=scsi;virtio;uml;xen;ide;usb;lxc
type ImageHash ¶
type ImageHash struct {
// algorithm is the hash algorithm used to generate value.
// +required
Algorithm ImageHashAlgorithm `json:"algorithm"`
// value is the hash of the image data using Algorithm. It must be hex encoded using lowercase letters.
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=1024
// +kubebuilder:validation:Pattern:=`^[0-9a-f]+$`
// +required
Value string `json:"value"`
}
func (*ImageHash) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageHash.
func (*ImageHash) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageHashAlgorithm ¶
type ImageHashAlgorithm string
+kubebuilder:validation:Enum:=md5;sha1;sha256;sha512
const ( ImageHashAlgorithmMD5 ImageHashAlgorithm = "md5" ImageHashAlgorithmSHA1 ImageHashAlgorithm = "sha1" ImageHashAlgorithmSHA256 ImageHashAlgorithm = "sha256" ImageHashAlgorithmSHA512 ImageHashAlgorithm = "sha512" )
type ImageImport ¶
type ImageImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *ImageFilter `json:"filter,omitempty"`
}
ImageImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*ImageImport) DeepCopy ¶
func (in *ImageImport) DeepCopy() *ImageImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageImport.
func (*ImageImport) DeepCopyInto ¶
func (in *ImageImport) DeepCopyInto(out *ImageImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageList ¶
type ImageList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Image.
// +required
Items []Image `json:"items"`
}
ImageList contains a list of Image.
func (*ImageList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageList.
func (*ImageList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ImageList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ImageProperties ¶
type ImageProperties struct {
// 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"`
}
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"`
}
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 ImageResourceSpec ¶
type ImageResourceSpec struct {
// name will be the name of the created Glance image. If not specified, the
// name of the Image object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// protected specifies that the image is protected from deletion.
// If not specified, the default is false.
// +optional
Protected *bool `json:"protected,omitempty"`
// tags is a list of tags which will be applied to the image. A tag has a maximum length of 255 characters.
// +kubebuilder:validation:MaxItems:=32
// +listType=set
// +optional
Tags []ImageTag `json:"tags,omitempty"`
// visibility of the image
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="visibility is immutable"
// +optional
Visibility *ImageVisibility `json:"visibility,omitempty"`
// properties is metadata available to consumers of the image
// +optional
Properties *ImageProperties `json:"properties,omitempty"`
// content specifies how to obtain the image content.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="content is immutable"
// +optional
Content *ImageContent `json:"content,omitempty"`
}
ImageResourceSpec contains the desired state of a Glance image +kubebuilder:validation:XValidation:rule="has(self.name) ? self.name == oldSelf.name : !has(oldSelf.name)",message="name is immutable" +kubebuilder:validation:XValidation:rule="has(self.protected) ? self.protected == oldSelf.protected : !has(oldSelf.protected)",message="name is immutable" +kubebuilder:validation:XValidation:rule="has(self.tags) ? self.tags == oldSelf.tags : !has(oldSelf.tags)",message="tags is immutable" +kubebuilder:validation:XValidation:rule="has(self.visibility) ? self.visibility == oldSelf.visibility : !has(oldSelf.visibility)",message="visibility is immutable" +kubebuilder:validation:XValidation:rule="has(self.properties) ? self.properties == oldSelf.properties : !has(oldSelf.properties)",message="properties is immutable" +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ImageResourceSpec is immutable"
func (*ImageResourceSpec) DeepCopy ¶
func (in *ImageResourceSpec) DeepCopy() *ImageResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageResourceSpec.
func (*ImageResourceSpec) DeepCopyInto ¶
func (in *ImageResourceSpec) DeepCopyInto(out *ImageResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageResourceStatus ¶
type ImageResourceStatus struct {
// name is a Human-readable name for the image. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// status is the image status as reported by Glance
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// protected specifies that the image is protected from deletion.
// +optional
Protected bool `json:"protected,omitempty"`
// visibility of the image
// +kubebuilder:validation:MaxLength=1024
// +optional
Visibility string `json:"visibility,omitempty"`
// hash is the hash of the image data published by Glance. Note that this is
// a hash of the data stored internally by Glance, which will have been
// decompressed and potentially format converted depending on server-side
// configuration which is not visible to clients. It is expected that this
// hash will usually differ from the download hash.
// +optional
Hash *ImageHash `json:"hash,omitempty"`
// sizeB is the size of the image data, in bytes
// +optional
SizeB *int64 `json:"sizeB,omitempty"`
// virtualSizeB is the size of the disk the image data represents, in bytes
// +optional
VirtualSizeB *int64 `json:"virtualSizeB,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems:=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
}
ImageResourceStatus represents the observed state of a Glance image
func (*ImageResourceStatus) DeepCopy ¶
func (in *ImageResourceStatus) DeepCopy() *ImageResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageResourceStatus.
func (*ImageResourceStatus) DeepCopyInto ¶
func (in *ImageResourceStatus) DeepCopyInto(out *ImageResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageSpec ¶
type ImageSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *ImageImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *ImageResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
ImageSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed" +kubebuilder:validation:XValidation:rule="!has(self.__import__) ? has(self.resource.content) : true",message="resource content must be specified when not importing"
func (*ImageSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.
func (*ImageSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageStatus ¶
type ImageStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *ImageResourceStatus `json:"resource,omitempty"`
ImageStatusExtra `json:",inline"`
}
ImageStatus defines the observed state of an ORC resource.
func (*ImageStatus) DeepCopy ¶
func (in *ImageStatus) DeepCopy() *ImageStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStatus.
func (*ImageStatus) DeepCopyInto ¶
func (in *ImageStatus) DeepCopyInto(out *ImageStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageStatusExtra ¶
type ImageStatusExtra struct {
// downloadAttempts is the number of times the controller has attempted to download the image contents
// +optional
DownloadAttempts *int32 `json:"downloadAttempts,omitempty"`
}
func (*ImageStatusExtra) DeepCopy ¶
func (in *ImageStatusExtra) DeepCopy() *ImageStatusExtra
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStatusExtra.
func (*ImageStatusExtra) DeepCopyInto ¶
func (in *ImageStatusExtra) DeepCopyInto(out *ImageStatusExtra)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageTag ¶
type ImageTag string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255
type ImageVisibility ¶
type ImageVisibility string
+kubebuilder:validation:Enum:=public;private;shared;community
const ( ImageVisibilityPublic ImageVisibility = "public" ImageVisibilityPrivate ImageVisibility = "private" ImageVisibilityCommunity ImageVisibility = "community" )
type KubernetesNameRef ¶
type KubernetesNameRef string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=253
type MAC ¶
type MAC string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=17
type ManagedOptions ¶
type ManagedOptions struct {
// onDelete specifies the behaviour of the controller when the ORC
// object is deleted. Options are `delete` - delete the OpenStack resource;
// `detach` - do not delete the OpenStack resource. If not specified, the
// default is `delete`.
// +kubebuilder:default:=delete
// +optional
OnDelete OnDelete `json:"onDelete,omitempty"`
}
func (*ManagedOptions) DeepCopy ¶
func (in *ManagedOptions) DeepCopy() *ManagedOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedOptions.
func (*ManagedOptions) DeepCopyInto ¶
func (in *ManagedOptions) DeepCopyInto(out *ManagedOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ManagedOptions) GetOnDelete ¶
func (o *ManagedOptions) GetOnDelete() OnDelete
GetOnDelete returns the delete behaviour from ManagedOptions. If called on a nil receiver it safely returns the default.
type ManagementPolicy ¶
type ManagementPolicy string
+kubebuilder:validation:Enum:=managed;unmanaged
const ( // ManagementPolicyManaged specifies that the controller will reconcile the // state of the referenced OpenStack resource with the state of the ORC // object. ManagementPolicyManaged ManagementPolicy = "managed" // ManagementPolicyUnmanaged specifies that the controller will expect the // resource to either exist already or to be created externally. The // controller will not make any changes to the referenced OpenStack // resource. ManagementPolicyUnmanaged ManagementPolicy = "unmanaged" )
type Network ¶
type Network struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec NetworkSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status NetworkStatus `json:"status,omitempty"`
}
Network is the Schema for an ORC resource.
func (*Network) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network.
func (*Network) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Network) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Network) GetCloudCredentialsRef ¶
func (i *Network) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Network) GetConditions ¶
type NetworkFilter ¶
type NetworkFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// external indicates whether the network has an external routing
// facility that’s not managed by the networking service.
// +optional
External *bool `json:"external,omitempty"`
FilterByNeutronTags `json:",inline"`
}
NetworkFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*NetworkFilter) DeepCopy ¶
func (in *NetworkFilter) DeepCopy() *NetworkFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkFilter.
func (*NetworkFilter) DeepCopyInto ¶
func (in *NetworkFilter) DeepCopyInto(out *NetworkFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkImport ¶
type NetworkImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *NetworkFilter `json:"filter,omitempty"`
}
NetworkImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*NetworkImport) DeepCopy ¶
func (in *NetworkImport) DeepCopy() *NetworkImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkImport.
func (*NetworkImport) DeepCopyInto ¶
func (in *NetworkImport) DeepCopyInto(out *NetworkImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkList ¶
type NetworkList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Network.
// +required
Items []Network `json:"items"`
}
NetworkList contains a list of Network.
func (*NetworkList) DeepCopy ¶
func (in *NetworkList) DeepCopy() *NetworkList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkList.
func (*NetworkList) DeepCopyInto ¶
func (in *NetworkList) DeepCopyInto(out *NetworkList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NetworkList) DeepCopyObject ¶
func (in *NetworkList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*NetworkList) GetItems ¶
func (l *NetworkList) GetItems() []Network
type NetworkResourceSpec ¶
type NetworkResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// tags is a list of tags which will be applied to the network.
// +kubebuilder:validation:MaxItems:=64
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
// adminStateUp is the administrative state of the network, which is up (true) or down (false)
// +optional
AdminStateUp *bool `json:"adminStateUp,omitempty"`
// dnsDomain is the DNS domain of the network
// +optional
DNSDomain *DNSDomain `json:"dnsDomain,omitempty"`
// mtu is the the maximum transmission unit value to address
// fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6.
// Defaults to 1500.
// +optional
MTU *MTU `json:"mtu,omitempty"`
// portSecurityEnabled is the port security status of the network.
// Valid values are enabled (true) and disabled (false). This value is
// used as the default value of port_security_enabled field of a newly
// created port.
// +optional
PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty"`
// external indicates whether the network has an external routing
// facility that’s not managed by the networking service.
// +optional
External *bool `json:"external,omitempty"`
// projects. By default, only administrative users can change this
// value.
// +optional
Shared *bool `json:"shared,omitempty"`
// availabilityZoneHints is the availability zone candidate for the network.
// +kubebuilder:validation:MaxItems:=32
// +listType=set
// +optional
AvailabilityZoneHints []AvailabilityZoneHint `json:"availabilityZoneHints,omitempty"`
}
NetworkResourceSpec contains the desired state of a network +kubebuilder:validation:XValidation:rule="self == oldSelf",message="NetworkResourceSpec is immutable"
func (*NetworkResourceSpec) DeepCopy ¶
func (in *NetworkResourceSpec) DeepCopy() *NetworkResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkResourceSpec.
func (*NetworkResourceSpec) DeepCopyInto ¶
func (in *NetworkResourceSpec) DeepCopyInto(out *NetworkResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkResourceStatus ¶
type NetworkResourceStatus struct {
// name is a Human-readable name for the network. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// projectID is the project owner of the network.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// status indicates whether network is currently operational. Possible values
// include `ACTIVE', `DOWN', `BUILD', or `ERROR'. Plug-ins might define
// additional values.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
NeutronStatusMetadata `json:",inline"`
// adminStateUp is the administrative state of the network,
// which is up (true) or down (false).
// +optional
AdminStateUp *bool `json:"adminStateUp"`
// availabilityZoneHints is the availability zone candidate for the
// network.
// +kubebuilder:validation:MaxItems=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
AvailabilityZoneHints []string `json:"availabilityZoneHints,omitempty"`
// dnsDomain is the DNS domain of the network
// +kubebuilder:validation:MaxLength=1024
// +optional
DNSDomain string `json:"dnsDomain,omitempty"`
// mtu is the the maximum transmission unit value to address
// fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6.
// +optional
MTU *int32 `json:"mtu,omitempty"`
// portSecurityEnabled is the port security status of the network.
// Valid values are enabled (true) and disabled (false). This value is
// used as the default value of port_security_enabled field of a newly
// created port.
// +optional
PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty"`
// provider contains provider-network properties.
// +optional
Provider *ProviderPropertiesStatus `json:"provider,omitempty"`
// external defines whether the network may be used for creation of
// floating IPs. Only networks with this flag may be an external
// gateway for routers. The network must have an external routing
// facility that is not managed by the networking service. If the
// network is updated from external to internal the unused floating IPs
// of this network are automatically deleted when extension
// floatingip-autodelete-internal is present.
// +optional
External *bool `json:"external,omitempty"`
// tenant.
// +optional
Shared *bool `json:"shared,omitempty"`
// subnets associated with this network.
// +kubebuilder:validation:MaxItems=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Subnets []string `json:"subnets,omitempty"`
}
NetworkResourceStatus represents the observed state of the resource.
func (*NetworkResourceStatus) DeepCopy ¶
func (in *NetworkResourceStatus) DeepCopy() *NetworkResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkResourceStatus.
func (*NetworkResourceStatus) DeepCopyInto ¶
func (in *NetworkResourceStatus) DeepCopyInto(out *NetworkResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkSpec ¶
type NetworkSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *NetworkImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *NetworkResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
NetworkSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*NetworkSpec) DeepCopy ¶
func (in *NetworkSpec) DeepCopy() *NetworkSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSpec.
func (*NetworkSpec) DeepCopyInto ¶
func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkStatus ¶
type NetworkStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *NetworkResourceStatus `json:"resource,omitempty"`
}
NetworkStatus defines the observed state of an ORC resource.
func (*NetworkStatus) DeepCopy ¶
func (in *NetworkStatus) DeepCopy() *NetworkStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkStatus.
func (*NetworkStatus) DeepCopyInto ¶
func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NeutronDescription ¶
type NeutronDescription string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255
type NeutronStatusMetadata ¶
type NeutronStatusMetadata struct {
// createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601
// +optional
CreatedAt *metav1.Time `json:"createdAt,omitempty"`
// updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601
// +optional
UpdatedAt *metav1.Time `json:"updatedAt,omitempty"`
// revisionNumber optionally set via extensions/standard-attr-revisions
// +optional
RevisionNumber *int64 `json:"revisionNumber,omitempty"`
}
func (*NeutronStatusMetadata) DeepCopy ¶
func (in *NeutronStatusMetadata) DeepCopy() *NeutronStatusMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NeutronStatusMetadata.
func (*NeutronStatusMetadata) DeepCopyInto ¶
func (in *NeutronStatusMetadata) DeepCopyInto(out *NeutronStatusMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NeutronTag ¶
type NeutronTag string
NeutronTag represents a tag on a Neutron resource. It may not be empty and may not contain commas. +kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255
type ObjectWithConditions ¶
ObjectWithConditions is a metav1.Object which also stores conditions in its status. +kubebuilder:object:generate:=false
type OnDelete ¶
type OnDelete string
+kubebuilder:validation:Enum:=delete;detach
const ( // OnDeleteDelete specifies that the OpenStack resource will be deleted // when the managed ORC object is deleted. OnDeleteDelete OnDelete = "delete" // OnDeleteDetach specifies that the OpenStack resource will not be // deleted when the managed ORC object is deleted. OnDeleteDetach OnDelete = "detach" )
type OpenStackName ¶
type OpenStackName string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=255 +kubebuilder:validation:Pattern:="^[^,]+$"
type Port ¶
type Port struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec PortSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status PortStatus `json:"status,omitempty"`
}
Port is the Schema for an ORC resource.
func (*Port) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Port.
func (*Port) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Port) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Port) GetCloudCredentialsRef ¶
func (i *Port) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Port) GetConditions ¶
type PortFilter ¶
type PortFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// networkRef is a reference to the ORC Network which this port is associated with.
// +optional
NetworkRef KubernetesNameRef `json:"networkRef"`
FilterByNeutronTags `json:",inline"`
}
PortFilter specifies a filter to select a port. At least one parameter must be specified. +kubebuilder:validation:MinProperties:=1
func (*PortFilter) DeepCopy ¶
func (in *PortFilter) DeepCopy() *PortFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortFilter.
func (*PortFilter) DeepCopyInto ¶
func (in *PortFilter) DeepCopyInto(out *PortFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortImport ¶
type PortImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *PortFilter `json:"filter,omitempty"`
}
PortImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*PortImport) DeepCopy ¶
func (in *PortImport) DeepCopy() *PortImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortImport.
func (*PortImport) DeepCopyInto ¶
func (in *PortImport) DeepCopyInto(out *PortImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortList ¶
type PortList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Port.
// +required
Items []Port `json:"items"`
}
PortList contains a list of Port.
func (*PortList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortList.
func (*PortList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PortList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PortNumber ¶
type PortNumber int32
+kubebuilder:validation:Minimum:=0 +kubebuilder:validation:Maximum:=65535
type PortRangeSpec ¶
type PortRangeSpec struct {
// min is the minimum port number in the range that is matched by the security group rule.
// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal
// to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type
// +required
Min PortNumber `json:"min"`
// max is the maximum port number in the range that is matched by the security group rule.
// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal
// to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.
// +required
Max PortNumber `json:"max"`
}
func (*PortRangeSpec) DeepCopy ¶
func (in *PortRangeSpec) DeepCopy() *PortRangeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRangeSpec.
func (*PortRangeSpec) DeepCopyInto ¶
func (in *PortRangeSpec) DeepCopyInto(out *PortRangeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortRangeStatus ¶
type PortRangeStatus struct {
// min is the minimum port number in the range that is matched by the security group rule.
// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal
// to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type
// +optional
Min int32 `json:"min"`
// max is the maximum port number in the range that is matched by the security group rule.
// If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal
// to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.
// +optional
Max int32 `json:"max"`
}
func (*PortRangeStatus) DeepCopy ¶
func (in *PortRangeStatus) DeepCopy() *PortRangeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRangeStatus.
func (*PortRangeStatus) DeepCopyInto ¶
func (in *PortRangeStatus) DeepCopyInto(out *PortRangeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortResourceSpec ¶
type PortResourceSpec struct {
// name is a human-readable name of the port. If not set, the object's name will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// networkRef is a reference to the ORC Network which this port is associated with.
// +required
NetworkRef KubernetesNameRef `json:"networkRef"`
// tags is a list of tags which will be applied to the port.
// +kubebuilder:validation:MaxItems:=32
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
// allowedAddressPairs are allowed addresses associated with this port.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
AllowedAddressPairs []AllowedAddressPair `json:"allowedAddressPairs,omitempty"`
// addresses are the IP addresses for the port.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
Addresses []Address `json:"addresses,omitempty"`
// securityGroupRefs are the names of the security groups associated
// with this port.
// +kubebuilder:validation:MaxItems:=32
// +listType=set
// +optional
SecurityGroupRefs []OpenStackName `json:"securityGroupRefs,omitempty"`
}
+kubebuilder:validation:XValidation:rule="self == oldSelf",message="PortResourceSpec is immutable"
func (*PortResourceSpec) DeepCopy ¶
func (in *PortResourceSpec) DeepCopy() *PortResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortResourceSpec.
func (*PortResourceSpec) DeepCopyInto ¶
func (in *PortResourceSpec) DeepCopyInto(out *PortResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortResourceStatus ¶
type PortResourceStatus struct {
// name is the human-readable name of the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// networkID is the ID of the attached network.
// +kubebuilder:validation:MaxLength=1024
// +optional
NetworkID string `json:"networkID,omitempty"`
// projectID is the project owner of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// status indicates the current status of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
// adminStateUp is the administrative state of the port,
// which is up (true) or down (false).
// +optional
AdminStateUp *bool `json:"adminStateUp,omitempty"`
// macAddress is the MAC address of the port.
// +kubebuilder:validation:MaxLength=1024
// +optional
MACAddress string `json:"macAddress,omitempty"`
// deviceID is the ID of the device that uses this port.
// +kubebuilder:validation:MaxLength=1024
// +optional
DeviceID string `json:"deviceID,omitempty"`
// deviceOwner is the entity type that uses this port.
// +kubebuilder:validation:MaxLength=1024
// +optional
DeviceOwner string `json:"deviceOwner,omitempty"`
// allowedAddressPairs is a set of zero or more allowed address pair
// objects each where address pair object contains an IP address and
// MAC address.
// +kubebuilder:validation:MaxItems=32
// +listType=atomic
// +optional
AllowedAddressPairs []AllowedAddressPairStatus `json:"allowedAddressPairs,omitempty"`
// fixedIPs is a set of zero or more fixed IP objects each where fixed
// IP object contains an IP address and subnet ID from which the IP
// address is assigned.
// +kubebuilder:validation:MaxItems=32
// +listType=atomic
// +optional
FixedIPs []FixedIPStatus `json:"fixedIPs,omitempty"`
// securityGroups contains the IDs of security groups applied to the port.
// +kubebuilder:validation:MaxItems=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
SecurityGroups []string `json:"securityGroups,omitempty"`
// propagateUplinkStatus represents the uplink status propagation of
// the port.
// +optional
PropagateUplinkStatus *bool `json:"propagateUplinkStatus,omitempty"`
NeutronStatusMetadata `json:",inline"`
}
func (*PortResourceStatus) DeepCopy ¶
func (in *PortResourceStatus) DeepCopy() *PortResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortResourceStatus.
func (*PortResourceStatus) DeepCopyInto ¶
func (in *PortResourceStatus) DeepCopyInto(out *PortResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortSpec ¶
type PortSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *PortImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *PortResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
PortSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*PortSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortSpec.
func (*PortSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortStatus ¶
type PortStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *PortResourceStatus `json:"resource,omitempty"`
}
PortStatus defines the observed state of an ORC resource.
func (*PortStatus) DeepCopy ¶
func (in *PortStatus) DeepCopy() *PortStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortStatus.
func (*PortStatus) DeepCopyInto ¶
func (in *PortStatus) DeepCopyInto(out *PortStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type 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 Router ¶
type Router struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec RouterSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status RouterStatus `json:"status,omitempty"`
}
Router is the Schema for an ORC resource.
func (*Router) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Router.
func (*Router) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Router) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Router) GetCloudCredentialsRef ¶
func (i *Router) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Router) GetConditions ¶
type RouterFilter ¶
type RouterFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
FilterByNeutronTags `json:",inline"`
}
RouterFilter specifies a query to select an OpenStack router. At least one property must be set. +kubebuilder:validation:MinProperties:=1
func (*RouterFilter) DeepCopy ¶
func (in *RouterFilter) DeepCopy() *RouterFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterFilter.
func (*RouterFilter) DeepCopyInto ¶
func (in *RouterFilter) DeepCopyInto(out *RouterFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterImport ¶
type RouterImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *RouterFilter `json:"filter,omitempty"`
}
RouterImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*RouterImport) DeepCopy ¶
func (in *RouterImport) DeepCopy() *RouterImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterImport.
func (*RouterImport) DeepCopyInto ¶
func (in *RouterImport) DeepCopyInto(out *RouterImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterInterface ¶
type RouterInterface struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata.
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec RouterInterfaceSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status RouterInterfaceStatus `json:"status,omitempty"`
}
RouterInterface is the Schema for an ORC resource.
func (*RouterInterface) DeepCopy ¶
func (in *RouterInterface) DeepCopy() *RouterInterface
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterface.
func (*RouterInterface) DeepCopyInto ¶
func (in *RouterInterface) DeepCopyInto(out *RouterInterface)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RouterInterface) DeepCopyObject ¶
func (in *RouterInterface) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RouterInterface) GetConditions ¶
func (i *RouterInterface) GetConditions() []metav1.Condition
type RouterInterfaceList ¶
type RouterInterfaceList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata.
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of RouterInterface.
// +kubebuilder:validation:MaxItems:=32
// +required
Items []RouterInterface `json:"items"`
}
RouterInterfaceList contains a list of RouterInterface.
func (*RouterInterfaceList) DeepCopy ¶
func (in *RouterInterfaceList) DeepCopy() *RouterInterfaceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterfaceList.
func (*RouterInterfaceList) DeepCopyInto ¶
func (in *RouterInterfaceList) DeepCopyInto(out *RouterInterfaceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RouterInterfaceList) DeepCopyObject ¶
func (in *RouterInterfaceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RouterInterfaceList) GetItems ¶
func (l *RouterInterfaceList) GetItems() []RouterInterface
type RouterInterfaceSpec ¶
type RouterInterfaceSpec struct {
// type specifies the type of the router interface.
// +required
// +unionDiscriminator
Type RouterInterfaceType `json:"type"`
// routerRef references the router to which this interface belongs.
// +required
RouterRef KubernetesNameRef `json:"routerRef"`
// subnetRef references the subnet the router interface is created on.
// +unionMember
// +optional
SubnetRef *KubernetesNameRef `json:"subnetRef,omitempty"`
}
+kubebuilder:validation:XValidation:rule="self.type == 'Subnet' ? has(self.subnetRef) : !has(self.subnetRef)",message="subnetRef is required when type is 'Subnet' and not permitted otherwise" +kubebuilder:validation:XValidation:rule="self == oldSelf",message="RouterInterfaceResourceSpec is immutable"
func (*RouterInterfaceSpec) DeepCopy ¶
func (in *RouterInterfaceSpec) DeepCopy() *RouterInterfaceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterfaceSpec.
func (*RouterInterfaceSpec) DeepCopyInto ¶
func (in *RouterInterfaceSpec) DeepCopyInto(out *RouterInterfaceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterInterfaceStatus ¶
type RouterInterfaceStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the port created for the router interface
// +kubebuilder:validation:MaxLength=1024
// +optional
ID *string `json:"id,omitempty"`
}
func (*RouterInterfaceStatus) DeepCopy ¶
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:=32
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
// adminStateUp represents the administrative state of the resource,
// which is up (true) or down (false). Default is true.
// +optional
AdminStateUp *bool `json:"adminStateUp,omitempty"`
// externalGateways is a list of external gateways for the router.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
ExternalGateways []ExternalGateway `json:"externalGateways,omitempty"`
// distributed indicates whether the router is distributed or not. It
// is available when dvr extension is enabled.
// +optional
Distributed *bool `json:"distributed,omitempty"`
// availabilityZoneHints is the availability zone candidate for the router.
// +kubebuilder:validation:MaxItems:=32
// +listType=set
// +optional
AvailabilityZoneHints []AvailabilityZoneHint `json:"availabilityZoneHints,omitempty"`
}
+kubebuilder:validation:XValidation:rule="self == oldSelf",message="RouterResourceSpec is immutable"
func (*RouterResourceSpec) DeepCopy ¶
func (in *RouterResourceSpec) DeepCopy() *RouterResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterResourceSpec.
func (*RouterResourceSpec) DeepCopyInto ¶
func (in *RouterResourceSpec) DeepCopyInto(out *RouterResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterResourceStatus ¶
type RouterResourceStatus struct {
// name is the human-readable name of the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// projectID is the project owner of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// status indicates the current status of the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems:=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
// adminStateUp is the administrative state of the router,
// which is up (true) or down (false).
// +optional
AdminStateUp *bool `json:"adminStateUp"`
// externalGateways is a list of external gateways for the router.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
ExternalGateways []ExternalGatewayStatus `json:"externalGateways,omitempty"`
// availabilityZoneHints is the availability zone candidate for the
// router.
// +kubebuilder:validation:MaxItems:=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
AvailabilityZoneHints []string `json:"availabilityZoneHints,omitempty"`
}
func (*RouterResourceStatus) DeepCopy ¶
func (in *RouterResourceStatus) DeepCopy() *RouterResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterResourceStatus.
func (*RouterResourceStatus) DeepCopyInto ¶
func (in *RouterResourceStatus) DeepCopyInto(out *RouterResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterSpec ¶
type RouterSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *RouterImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *RouterResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
RouterSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*RouterSpec) DeepCopy ¶
func (in *RouterSpec) DeepCopy() *RouterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterSpec.
func (*RouterSpec) DeepCopyInto ¶
func (in *RouterSpec) DeepCopyInto(out *RouterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouterStatus ¶
type RouterStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *RouterResourceStatus `json:"resource,omitempty"`
}
RouterStatus defines the observed state of an ORC resource.
func (*RouterStatus) DeepCopy ¶
func (in *RouterStatus) DeepCopy() *RouterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterStatus.
func (*RouterStatus) DeepCopyInto ¶
func (in *RouterStatus) DeepCopyInto(out *RouterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroup ¶
type SecurityGroup struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec SecurityGroupSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status SecurityGroupStatus `json:"status,omitempty"`
}
SecurityGroup is the Schema for an ORC resource.
func (*SecurityGroup) DeepCopy ¶
func (in *SecurityGroup) DeepCopy() *SecurityGroup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroup.
func (*SecurityGroup) DeepCopyInto ¶
func (in *SecurityGroup) DeepCopyInto(out *SecurityGroup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SecurityGroup) DeepCopyObject ¶
func (in *SecurityGroup) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*SecurityGroup) GetCloudCredentialsRef ¶
func (i *SecurityGroup) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*SecurityGroup) GetConditions ¶
func (i *SecurityGroup) GetConditions() []metav1.Condition
type SecurityGroupFilter ¶
type SecurityGroupFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
FilterByNeutronTags `json:",inline"`
}
SecurityGroupFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*SecurityGroupFilter) DeepCopy ¶
func (in *SecurityGroupFilter) DeepCopy() *SecurityGroupFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupFilter.
func (*SecurityGroupFilter) DeepCopyInto ¶
func (in *SecurityGroupFilter) DeepCopyInto(out *SecurityGroupFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupImport ¶
type SecurityGroupImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *SecurityGroupFilter `json:"filter,omitempty"`
}
SecurityGroupImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*SecurityGroupImport) DeepCopy ¶
func (in *SecurityGroupImport) DeepCopy() *SecurityGroupImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupImport.
func (*SecurityGroupImport) DeepCopyInto ¶
func (in *SecurityGroupImport) DeepCopyInto(out *SecurityGroupImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupList ¶
type SecurityGroupList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of SecurityGroup.
// +required
Items []SecurityGroup `json:"items"`
}
SecurityGroupList contains a list of SecurityGroup.
func (*SecurityGroupList) DeepCopy ¶
func (in *SecurityGroupList) DeepCopy() *SecurityGroupList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupList.
func (*SecurityGroupList) DeepCopyInto ¶
func (in *SecurityGroupList) DeepCopyInto(out *SecurityGroupList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SecurityGroupList) DeepCopyObject ¶
func (in *SecurityGroupList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*SecurityGroupList) GetItems ¶
func (l *SecurityGroupList) GetItems() []SecurityGroup
type SecurityGroupResourceSpec ¶
type SecurityGroupResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Property is immutable"
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Property is immutable"
Description *NeutronDescription `json:"description,omitempty"`
// tags is a list of tags which will be applied to the security group.
// +kubebuilder:validation:MaxItems:=32
// +listType=set
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Property is immutable"
Tags []NeutronTag `json:"tags,omitempty"`
// stateful indicates if the security group is stateful or stateless.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Property is immutable"
Stateful *bool `json:"stateful,omitempty"`
// rules is a list of security group rules belonging to this SG.
// +kubebuilder:validation:MaxItems:=256
// +listType=atomic
// +optional
Rules []SecurityGroupRule `json:"rules,omitempty"`
}
SecurityGroupResourceSpec contains the desired state of a security group
func (*SecurityGroupResourceSpec) DeepCopy ¶
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:=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
// stateful indicates if the security group is stateful or stateless.
// +optional
Stateful bool `json:"stateful,omitempty"`
// rules is a list of security group rules belonging to this SG.
// +kubebuilder:validation:MaxItems:=256
// +listType=atomic
// +optional
Rules []SecurityGroupRuleStatus `json:"rules,omitempty"`
NeutronStatusMetadata `json:",inline"`
}
SecurityGroupResourceStatus represents the observed state of the resource.
func (*SecurityGroupResourceStatus) DeepCopy ¶
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"`
// portRange sets the minimum and maximum ports range that the security group rule
// matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than
// or equal to the PortRange.Max attribute value.
// If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max
// should be an ICMP type
// +optional
PortRange *PortRangeSpec `json:"portRange,omitempty"`
}
SecurityGroupRule defines a Security Group rule +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:XValidation:rule="(!has(self.portRange)|| !(self.protocol == 'tcp'|| self.protocol == 'udp' || self.protocol == 'dccp' || self.protocol == 'sctp' || self.protocol == 'udplite') || (self.portRange.min <= self.portRange.max))",message="portRangeMax should be equal or greater than portRange.min" +kubebuilder:validation:XValidation:rule="!(self.protocol == 'icmp' || self.protocol == 'icmpv6') || !has(self.portRange)|| (self.portRange.min >= 0 && self.portRange.min <= 255)",message="When protocol is ICMP or ICMPv6 portRange.min should be between 0 and 255" +kubebuilder:validation:XValidation:rule="!(self.protocol == 'icmp' || self.protocol == 'icmpv6') || !has(self.portRange)|| (self.portRange.max >= 0 && self.portRange.max <= 255)",message="When protocol is ICMP or ICMPv6 portRange.max should be between 0 and 255"
func (*SecurityGroupRule) DeepCopy ¶
func (in *SecurityGroupRule) DeepCopy() *SecurityGroupRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupRule.
func (*SecurityGroupRule) DeepCopyInto ¶
func (in *SecurityGroupRule) DeepCopyInto(out *SecurityGroupRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupRuleStatus ¶
type SecurityGroupRuleStatus struct {
// id is the ID of the security group rule.
// +kubebuilder:validation:MaxLength=1024
// +optional
ID string `json:"id,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// direction represents the direction in which the security group rule
// is applied. Can be ingress or egress.
// +kubebuilder:validation:MaxLength=1024
// +optional
Direction string `json:"direction,omitempty"`
// remoteGroupID is the remote group UUID to associate with this security group rule
// RemoteGroupID
// +kubebuilder:validation:MaxLength=1024
// +optional
RemoteGroupID string `json:"remoteGroupID,omitempty"`
// remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)
// +kubebuilder:validation:MaxLength=1024
// +optional
RemoteIPPrefix string `json:"remoteIPPrefix,omitempty"`
// protocol is the IP protocol can be represented by a string, an
// integer, or null
// +kubebuilder:validation:MaxLength=1024
// +optional
Protocol string `json:"protocol,omitempty"`
// ethertype must be IPv4 or IPv6, and addresses represented in CIDR
// must match the ingress or egress rules.
// +kubebuilder:validation:MaxLength=1024
// +optional
Ethertype string `json:"ethertype,omitempty"`
// portRange sets the minimum and maximum ports range that the security group rule
// matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than
// or equal to the PortRange.Max attribute value.
// If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max
// should be an ICMP type
// +optional
PortRange *PortRangeStatus `json:"portRange,omitempty"`
}
func (*SecurityGroupRuleStatus) DeepCopy ¶
func (in *SecurityGroupRuleStatus) DeepCopy() *SecurityGroupRuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupRuleStatus.
func (*SecurityGroupRuleStatus) DeepCopyInto ¶
func (in *SecurityGroupRuleStatus) DeepCopyInto(out *SecurityGroupRuleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupSpec ¶
type SecurityGroupSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *SecurityGroupImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *SecurityGroupResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
SecurityGroupSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*SecurityGroupSpec) DeepCopy ¶
func (in *SecurityGroupSpec) DeepCopy() *SecurityGroupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupSpec.
func (*SecurityGroupSpec) DeepCopyInto ¶
func (in *SecurityGroupSpec) DeepCopyInto(out *SecurityGroupSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroupStatus ¶
type SecurityGroupStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *SecurityGroupResourceStatus `json:"resource,omitempty"`
}
SecurityGroupStatus defines the observed state of an ORC resource.
func (*SecurityGroupStatus) DeepCopy ¶
func (in *SecurityGroupStatus) DeepCopy() *SecurityGroupStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupStatus.
func (*SecurityGroupStatus) DeepCopyInto ¶
func (in *SecurityGroupStatus) DeepCopyInto(out *SecurityGroupStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Server ¶
type Server struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec ServerSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status ServerStatus `json:"status,omitempty"`
}
Server is the Schema for an ORC resource.
func (*Server) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Server.
func (*Server) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Server) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Server) GetCloudCredentialsRef ¶
func (i *Server) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Server) GetConditions ¶
type ServerFilter ¶
type ServerFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
FilterByServerTags `json:",inline"`
}
ServerFilter defines an existing resource by its properties +kubebuilder:validation:MinProperties:=1
func (*ServerFilter) DeepCopy ¶
func (in *ServerFilter) DeepCopy() *ServerFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerFilter.
func (*ServerFilter) DeepCopyInto ¶
func (in *ServerFilter) DeepCopyInto(out *ServerFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerImport ¶
type ServerImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *ServerFilter `json:"filter,omitempty"`
}
ServerImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*ServerImport) DeepCopy ¶
func (in *ServerImport) DeepCopy() *ServerImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerImport.
func (*ServerImport) DeepCopyInto ¶
func (in *ServerImport) DeepCopyInto(out *ServerImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerList ¶
type ServerList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Server.
// +required
Items []Server `json:"items"`
}
ServerList contains a list of Server.
func (*ServerList) DeepCopy ¶
func (in *ServerList) DeepCopy() *ServerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerList.
func (*ServerList) DeepCopyInto ¶
func (in *ServerList) DeepCopyInto(out *ServerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServerList) DeepCopyObject ¶
func (in *ServerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ServerList) GetItems ¶
func (l *ServerList) GetItems() []Server
type ServerPortSpec ¶
type ServerPortSpec struct {
// portRef is a reference to a Port object. Server creation will wait for
// this port to be created and available.
// +optional
PortRef *KubernetesNameRef `json:"portRef,omitempty"`
}
+kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*ServerPortSpec) DeepCopy ¶
func (in *ServerPortSpec) DeepCopy() *ServerPortSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerPortSpec.
func (*ServerPortSpec) DeepCopyInto ¶
func (in *ServerPortSpec) DeepCopyInto(out *ServerPortSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerResourceSpec ¶
type ServerResourceSpec struct {
// name will be the name of the created resource. If not specified, the
// name of the ORC object will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// imageRef references the image to use for the server instance.
// NOTE: This is not required in case of boot from volume.
// +required
ImageRef KubernetesNameRef `json:"imageRef"`
// flavorRef references the flavor to use for the server instance.
// +required
FlavorRef KubernetesNameRef `json:"flavorRef"`
// userData specifies data which will be made available to the server at
// boot time, either via the metadata service or a config drive. It is
// typically read by a configuration service such as cloud-init or ignition.
// +optional
UserData *UserDataSpec `json:"userData,omitempty"`
// ports defines a list of ports which will be attached to the server.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +required
Ports []ServerPortSpec `json:"ports"`
// tags is a list of tags which will be applied to the server.
// +kubebuilder:validation:MaxItems:=32
// +listType=set
// +optional
Tags []ServerTag `json:"tags,omitempty"`
}
ServerResourceSpec contains the desired state of a server +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ServerResourceSpec is immutable"
func (*ServerResourceSpec) DeepCopy ¶
func (in *ServerResourceSpec) DeepCopy() *ServerResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerResourceSpec.
func (*ServerResourceSpec) DeepCopyInto ¶
func (in *ServerResourceSpec) DeepCopyInto(out *ServerResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerResourceStatus ¶
type ServerResourceStatus struct {
// name is the human-readable name of the resource. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// hostID is the host where the server is located in the cloud.
// +kubebuilder:validation:MaxLength=1024
// +optional
HostID string `json:"hostID,omitempty"`
// status contains the current operational status of the server,
// such as IN_PROGRESS or ACTIVE.
// +kubebuilder:validation:MaxLength=1024
// +optional
Status string `json:"status,omitempty"`
// imageID indicates the OS image used to deploy the server.
// +kubebuilder:validation:MaxLength=1024
// +optional
ImageID string `json:"imageID,omitempty"`
// tags is the list of tags on the resource.
// +kubebuilder:validation:MaxItems:=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
}
ServerResourceStatus represents the observed state of the resource.
func (*ServerResourceStatus) DeepCopy ¶
func (in *ServerResourceStatus) DeepCopy() *ServerResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerResourceStatus.
func (*ServerResourceStatus) DeepCopyInto ¶
func (in *ServerResourceStatus) DeepCopyInto(out *ServerResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerSpec ¶
type ServerSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *ServerImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *ServerResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
ServerSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*ServerSpec) DeepCopy ¶
func (in *ServerSpec) DeepCopy() *ServerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerSpec.
func (*ServerSpec) DeepCopyInto ¶
func (in *ServerSpec) DeepCopyInto(out *ServerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerStatus ¶
type ServerStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *ServerResourceStatus `json:"resource,omitempty"`
}
ServerStatus defines the observed state of an ORC resource.
func (*ServerStatus) DeepCopy ¶
func (in *ServerStatus) DeepCopy() *ServerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerStatus.
func (*ServerStatus) DeepCopyInto ¶
func (in *ServerStatus) DeepCopyInto(out *ServerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServerTag ¶
type ServerTag string
+kubebuilder:validation:MinLength:=1 +kubebuilder:validation:MaxLength:=80
type Subnet ¶
type Subnet struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec specifies the desired state of the resource.
// +optional
Spec SubnetSpec `json:"spec,omitempty"`
// status defines the observed state of the resource.
// +optional
Status SubnetStatus `json:"status,omitempty"`
}
Subnet is the Schema for an ORC resource.
func (*Subnet) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subnet.
func (*Subnet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Subnet) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Subnet) GetCloudCredentialsRef ¶
func (i *Subnet) GetCloudCredentialsRef() (*string, *CloudCredentialsReference)
func (*Subnet) GetConditions ¶
type SubnetFilter ¶
type SubnetFilter struct {
// name of the existing resource
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description of the existing resource
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// ipVersion of the existing resource
// +optional
IPVersion *IPVersion `json:"ipVersion,omitempty"`
// gatewayIP is the IP address of the gateway of the existing resource
// +optional
GatewayIP *IPvAny `json:"gatewayIP,omitempty"`
// cidr of the existing resource
// +optional
CIDR *CIDR `json:"cidr,omitempty"`
// ipv6 options of the existing resource
// +optional
IPv6 *IPv6Options `json:"ipv6,omitempty"`
// networkRef is a reference to the ORC Network which this subnet is associated with.
// +optional
NetworkRef KubernetesNameRef `json:"networkRef"`
FilterByNeutronTags `json:",inline"`
}
SubnetFilter specifies a filter to select a subnet. At least one parameter must be specified. +kubebuilder:validation:MinProperties:=1
func (*SubnetFilter) DeepCopy ¶
func (in *SubnetFilter) DeepCopy() *SubnetFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetFilter.
func (*SubnetFilter) DeepCopyInto ¶
func (in *SubnetFilter) DeepCopyInto(out *SubnetFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetGateway ¶
type SubnetGateway struct {
// type specifies how the default gateway will be created. `Automatic`
// specifies that neutron will automatically add a default gateway. This is
// also the default if no Gateway is specified. `None` specifies that the
// subnet will not have a default gateway. `IP` specifies that the subnet
// will use a specific address as the default gateway, which must be
// specified in `IP`.
// +kubebuilder:validation:Enum:=None;Automatic;IP
// +required
Type SubnetGatewayType `json:"type"`
// ip is the IP address of the default gateway, which must be specified if
// Type is `IP`. It must be a valid IP address, either IPv4 or IPv6,
// matching the IPVersion in SubnetResourceSpec.
// +optional
IP *IPvAny `json:"ip,omitempty"`
}
func (*SubnetGateway) DeepCopy ¶
func (in *SubnetGateway) DeepCopy() *SubnetGateway
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetGateway.
func (*SubnetGateway) DeepCopyInto ¶
func (in *SubnetGateway) DeepCopyInto(out *SubnetGateway)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetGatewayType ¶
type SubnetGatewayType string
type SubnetImport ¶
type SubnetImport struct {
// id contains the unique identifier of an existing OpenStack resource. Note
// that when specifying an import by ID, the resource MUST already exist.
// The ORC object will enter an error state if the resource does not exist.
// +optional
// +kubebuilder:validation:Format:=uuid
ID *string `json:"id,omitempty"`
// filter contains a resource query which is expected to return a single
// result. The controller will continue to retry if filter returns no
// results. If filter returns multiple results the controller will set an
// error state and will not continue to retry.
// +optional
Filter *SubnetFilter `json:"filter,omitempty"`
}
SubnetImport specifies an existing resource which will be imported instead of creating a new one +kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*SubnetImport) DeepCopy ¶
func (in *SubnetImport) DeepCopy() *SubnetImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetImport.
func (*SubnetImport) DeepCopyInto ¶
func (in *SubnetImport) DeepCopyInto(out *SubnetImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetList ¶
type SubnetList struct {
metav1.TypeMeta `json:",inline"`
// metadata contains the list metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a list of Subnet.
// +required
Items []Subnet `json:"items"`
}
SubnetList contains a list of Subnet.
func (*SubnetList) DeepCopy ¶
func (in *SubnetList) DeepCopy() *SubnetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetList.
func (*SubnetList) DeepCopyInto ¶
func (in *SubnetList) DeepCopyInto(out *SubnetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SubnetList) DeepCopyObject ¶
func (in *SubnetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*SubnetList) GetItems ¶
func (l *SubnetList) GetItems() []Subnet
type SubnetResourceSpec ¶
type SubnetResourceSpec struct {
// name is a human-readable name of the subnet. If not set, the object's name will be used.
// +optional
Name *OpenStackName `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +optional
Description *NeutronDescription `json:"description,omitempty"`
// networkRef is a reference to the ORC Network which this subnet is associated with.
// +required
NetworkRef KubernetesNameRef `json:"networkRef"`
// tags is a list of tags which will be applied to the subnet.
// +kubebuilder:validation:MaxItems:=32
// +listType=set
// +optional
Tags []NeutronTag `json:"tags,omitempty"`
// ipVersion is the IP version for the subnet.
// +required
IPVersion IPVersion `json:"ipVersion"`
// cidr is the address CIDR of the subnet. It must match the IP version specified in IPVersion.
// +required
CIDR CIDR `json:"cidr"`
// allocationPools are IP Address pools that will be available for DHCP. IP
// addresses must be in CIDR.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
AllocationPools []AllocationPool `json:"allocationPools,omitempty"`
// gateway specifies the default gateway of the subnet. If not specified,
// neutron will add one automatically. To disable this behaviour, specify a
// gateway with a type of None.
// +optional
Gateway *SubnetGateway `json:"gateway,omitempty"`
// enableDHCP will either enable to disable the DHCP service.
// +optional
EnableDHCP *bool `json:"enableDHCP,omitempty"`
// dnsNameservers are the nameservers to be set via DHCP.
// +kubebuilder:validation:MaxItems:=16
// +listType=set
// +optional
DNSNameservers []IPvAny `json:"dnsNameservers,omitempty"`
// dnsPublishFixedIP will either enable or disable the publication of
// fixed IPs to the DNS. Defaults to false.
// +optional
DNSPublishFixedIP *bool `json:"dnsPublishFixedIP,omitempty"`
// hostRoutes are any static host routes to be set via DHCP.
// +kubebuilder:validation:MaxItems:=256
// +listType=atomic
// +optional
HostRoutes []HostRoute `json:"hostRoutes,omitempty"`
// ipv6 contains IPv6-specific options. It may only be set if IPVersion is 6.
// +optional
IPv6 *IPv6Options `json:"ipv6,omitempty"`
// routerRef specifies a router to attach the subnet to
// +optional
RouterRef *KubernetesNameRef `json:"routerRef,omitempty"`
}
+kubebuilder:validation:XValidation:rule="self == oldSelf",message="SubnetResourceSpec is immutable"
func (*SubnetResourceSpec) DeepCopy ¶
func (in *SubnetResourceSpec) DeepCopy() *SubnetResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetResourceSpec.
func (*SubnetResourceSpec) DeepCopyInto ¶
func (in *SubnetResourceSpec) DeepCopyInto(out *SubnetResourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetResourceStatus ¶
type SubnetResourceStatus struct {
// name is the human-readable name of the subnet. Might not be unique.
// +kubebuilder:validation:MaxLength=1024
// +optional
Name string `json:"name,omitempty"`
// description is a human-readable description for the resource.
// +kubebuilder:validation:MaxLength=1024
// +optional
Description string `json:"description,omitempty"`
// ipVersion specifies IP version, either `4' or `6'.
// +optional
IPVersion *int32 `json:"ipVersion,omitempty"`
// cidr representing IP range for this subnet, based on IP version.
// +kubebuilder:validation:MaxLength=1024
// +optional
CIDR string `json:"cidr,omitempty"`
// gatewayIP is the default gateway used by devices in this subnet, if any.
// +kubebuilder:validation:MaxLength=1024
// +optional
GatewayIP string `json:"gatewayIP,omitempty"`
// dnsNameservers is a list of name servers used by hosts in this subnet.
// +kubebuilder:validation:MaxItems:=16
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
DNSNameservers []string `json:"dnsNameservers,omitempty"`
// dnsPublishFixedIP specifies whether the fixed IP addresses are published to the DNS.
// +optional
DNSPublishFixedIP *bool `json:"dnsPublishFixedIP,omitempty"`
// allocationPools is a list of sub-ranges within CIDR available for dynamic
// allocation to ports.
// +kubebuilder:validation:MaxItems:=32
// +listType=atomic
// +optional
AllocationPools []AllocationPoolStatus `json:"allocationPools,omitempty"`
// hostRoutes is a list of routes that should be used by devices with IPs
// from this subnet (not including local subnet route).
// +kubebuilder:validation:MaxItems:=256
// +listType=atomic
// +optional
HostRoutes []HostRouteStatus `json:"hostRoutes,omitempty"`
// enableDHCP specifies whether DHCP is enabled for this subnet or not.
// +optional
EnableDHCP *bool `json:"enableDHCP,omitempty"`
// networkID is the ID of the network to which the subnet belongs.
// +kubebuilder:validation:MaxLength=1024
// +optional
NetworkID string `json:"networkID,omitempty"`
// projectID is the project owner of the subnet.
// +kubebuilder:validation:MaxLength=1024
// +optional
ProjectID string `json:"projectID,omitempty"`
// ipv6AddressMode specifies mechanisms for assigning IPv6 IP addresses.
// +kubebuilder:validation:MaxLength=1024
// +optional
IPv6AddressMode string `json:"ipv6AddressMode,omitempty"`
// ipv6RAMode is the IPv6 router advertisement mode. It specifies
// whether the networking service should transmit ICMPv6 packets.
// +kubebuilder:validation:MaxLength=1024
// +optional
IPv6RAMode string `json:"ipv6RAMode,omitempty"`
// subnetPoolID is the id of the subnet pool associated with the subnet.
// +kubebuilder:validation:MaxLength=1024
// +optional
SubnetPoolID string `json:"subnetPoolID,omitempty"`
// tags optionally set via extensions/attributestags
// +kubebuilder:validation:MaxItems:=32
// +kubebuilder:validation:items:MaxLength=1024
// +listType=atomic
// +optional
Tags []string `json:"tags,omitempty"`
NeutronStatusMetadata `json:",inline"`
}
func (*SubnetResourceStatus) DeepCopy ¶
func (in *SubnetResourceStatus) DeepCopy() *SubnetResourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetResourceStatus.
func (*SubnetResourceStatus) DeepCopyInto ¶
func (in *SubnetResourceStatus) DeepCopyInto(out *SubnetResourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetSpec ¶
type SubnetSpec struct {
// import refers to an existing OpenStack resource which will be imported instead of
// creating a new one.
// +optional
Import *SubnetImport `json:"import,omitempty"`
// resource specifies the desired state of the resource.
//
// resource may not be specified if the management policy is `unmanaged`.
//
// resource must be specified if the management policy is `managed`.
// +optional
Resource *SubnetResourceSpec `json:"resource,omitempty"`
// managementPolicy defines how ORC will treat the object. Valid values are
// `managed`: ORC will create, update, and delete the resource; `unmanaged`:
// ORC will import an existing resource, and will not apply updates to it or
// delete it.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable"
// +kubebuilder:default:=managed
// +optional
ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`
// managedOptions specifies options which may be applied to managed objects.
// +optional
ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"`
// cloudCredentialsRef points to a secret containing OpenStack credentials
// +required
CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef"`
}
SubnetSpec defines the desired state of an ORC object. +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed"
func (*SubnetSpec) DeepCopy ¶
func (in *SubnetSpec) DeepCopy() *SubnetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetSpec.
func (*SubnetSpec) DeepCopyInto ¶
func (in *SubnetSpec) DeepCopyInto(out *SubnetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetStatus ¶
type SubnetStatus struct {
// conditions represents the observed status of the object.
// Known .status.conditions.type are: "Available", "Progressing"
//
// Available represents the availability of the OpenStack resource. If it is
// true then the resource is ready for use.
//
// Progressing indicates whether the controller is still attempting to
// reconcile the current state of the OpenStack resource to the desired
// state. Progressing will be False either because the desired state has
// been achieved, or because some terminal error prevents it from ever being
// achieved and the controller is no longer attempting to reconcile. If
// Progressing is True, an observer waiting on the resource should continue
// to wait.
//
// +kubebuilder:validation:MaxItems:=32
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// id is the unique identifier of the OpenStack resource.
// +optional
ID *string `json:"id,omitempty"`
// resource contains the observed state of the OpenStack resource.
// +optional
Resource *SubnetResourceStatus `json:"resource,omitempty"`
}
SubnetStatus defines the observed state of an ORC resource.
func (*SubnetStatus) DeepCopy ¶
func (in *SubnetStatus) DeepCopy() *SubnetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetStatus.
func (*SubnetStatus) DeepCopyInto ¶
func (in *SubnetStatus) DeepCopyInto(out *SubnetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UUID ¶
type UUID string
+kubebuilder:validation:Format:=uuid +kubebuilder:validation:MaxLength:=36
type UserDataSpec ¶
type UserDataSpec struct {
// secretRef is a reference to a Secret containing the user data for this server.
// +optional
SecretRef *KubernetesNameRef `json:"secretRef,omitempty"`
}
+kubebuilder:validation:MinProperties:=1 +kubebuilder:validation:MaxProperties:=1
func (*UserDataSpec) DeepCopy ¶
func (in *UserDataSpec) DeepCopy() *UserDataSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserDataSpec.
func (*UserDataSpec) DeepCopyInto ¶
func (in *UserDataSpec) DeepCopyInto(out *UserDataSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files
¶
- common_types.go
- conditions.go
- controller_options.go
- credentials_ref.go
- doc.go
- flavor_types.go
- groupversion_info.go
- image_types.go
- network_types.go
- openstack_types.go
- port_types.go
- router_interface_types.go
- router_types.go
- securitygroup_types.go
- server_types.go
- subnet_types.go
- zz_generated.deepcopy.go
- zz_generated.flavor-resource.go
- zz_generated.image-resource.go
- zz_generated.network-resource.go
- zz_generated.port-resource.go
- zz_generated.router-resource.go
- zz_generated.securitygroup-resource.go
- zz_generated.server-resource.go
- zz_generated.subnet-resource.go