v1beta2

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: May 23, 2024 License: Apache-2.0 Imports: 18 Imported by: 5

Documentation

Overview

Package v1beta2 contains the v1beta2 API implementation.

Package v1beta2 contains API Schema definitions for the infrastructure v1beta2 API group. +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io

Index

Constants

View Source
const (
	// InstanceProvisionFailedReason used for failures during instance provisioning.
	InstanceProvisionFailedReason = "InstanceProvisionFailed"
	// WaitingForClusterInfrastructureReason used when machine is waiting for cluster infrastructure to be ready before proceeding.
	WaitingForClusterInfrastructureReason = "WaitingForClusterInfrastructure"
	// WaitingForBootstrapDataReason used when machine is waiting for bootstrap data to be ready before proceeding.
	WaitingForBootstrapDataReason = "WaitingForBootstrapData"
)
View Source
const (
	// InstanceStoppedReason instance is in a stopped state.
	InstanceStoppedReason = "InstanceStopped"

	// InstanceErroredReason instance is in a errored state.
	InstanceErroredReason = "InstanceErrored"

	// InstanceNotReadyReason used when the instance is in a not ready state.
	InstanceNotReadyReason = "InstanceNotReady"

	// InstanceStateUnknownReason used when the instance is in a unknown state.
	InstanceStateUnknownReason = "InstanceStateUnknown"
)
View Source
const (
	// ImageNotReadyReason used when the image is in a queued state.
	ImageNotReadyReason = "ImageNotReady"

	// ImageImportFailedReason used when the image import is failed.
	ImageImportFailedReason = "ImageImportFailed"
)
View Source
const (
	// ImageReadyCondition reports on current status of the image. Ready indicates the image is in a active state.
	ImageReadyCondition capiv1beta1.ConditionType = "ImageReady"

	// ImageImportedCondition reports on current status of the image import job. Ready indicates the import job is finished.
	ImageImportedCondition capiv1beta1.ConditionType = "ImageImported"
)
View Source
const (
	// ServiceInstanceReadyCondition reports on the successful reconciliation of a Power VS workspace.
	ServiceInstanceReadyCondition capiv1beta1.ConditionType = "ServiceInstanceReady"
	// ServiceInstanceReconciliationFailedReason used when an error occurs during workspace reconciliation.
	ServiceInstanceReconciliationFailedReason = "ServiceInstanceReconciliationFailed"

	// NetworkReadyCondition reports on the successful reconciliation of a Power VS network.
	NetworkReadyCondition capiv1beta1.ConditionType = "NetworkReady"
	// NetworkReconciliationFailedReason used when an error occurs during network reconciliation.
	NetworkReconciliationFailedReason = "NetworkReconciliationFailed"

	// VPCSecurityGroupReadyCondition reports on the successful reconciliation of a VPC.
	VPCSecurityGroupReadyCondition capiv1beta1.ConditionType = "VPCSecurityGroupReady"
	// VPCSecurityGroupReconciliationFailedReason used when an error occurs during VPC reconciliation.
	VPCSecurityGroupReconciliationFailedReason = "VPCSecurityGroupReconciliationFailed"

	// VPCReadyCondition reports on the successful reconciliation of a VPC.
	VPCReadyCondition capiv1beta1.ConditionType = "VPCReady"
	// VPCReconciliationFailedReason used when an error occurs during VPC reconciliation.
	VPCReconciliationFailedReason = "VPCReconciliationFailed"

	// VPCSubnetReadyCondition reports on the successful reconciliation of a VPC subnet.
	VPCSubnetReadyCondition capiv1beta1.ConditionType = "VPCSubnetReady"
	// VPCSubnetReconciliationFailedReason used when an error occurs during VPC subnet reconciliation.
	VPCSubnetReconciliationFailedReason = "VPCSubnetReconciliationFailed"

	// TransitGatewayReadyCondition reports on the successful reconciliation of a Power VS transit gateway.
	TransitGatewayReadyCondition capiv1beta1.ConditionType = "TransitGatewayReady"
	// TransitGatewayReconciliationFailedReason used when an error occurs during transit gateway reconciliation.
	TransitGatewayReconciliationFailedReason = "TransitGatewayReconciliationFailed"

	// LoadBalancerReadyCondition reports on the successful reconciliation of a Power VS network.
	LoadBalancerReadyCondition capiv1beta1.ConditionType = "LoadBalancerReady"
	// LoadBalancerReconciliationFailedReason used when an error occurs during loadbalancer reconciliation.
	LoadBalancerReconciliationFailedReason = "LoadBalancerReconciliationFailed"

	// COSInstanceReadyCondition reports on the successful reconciliation of a COS instance.
	COSInstanceReadyCondition capiv1beta1.ConditionType = "COSInstanceCreated"
	// COSInstanceReconciliationFailedReason used when an error occurs during COS instance reconciliation.
	COSInstanceReconciliationFailedReason = "COSInstanceCreationFailed"
)
View Source
const (
	// ClusterFinalizer allows DockerClusterReconciler to clean up resources associated with DockerCluster before
	// removing it from the apiserver.
	ClusterFinalizer = "ibmvpccluster.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// CreateInfrastructureAnnotation is the name of an annotation that indicates if
	// Power VS infrastructure should be created as a part of cluster creation.
	CreateInfrastructureAnnotation = "powervs.cluster.x-k8s.io/create-infra"
)
View Source
const DefaultAPIServerPort int32 = 6443

DefaultAPIServerPort is defuault API server port number.

View Source
const (
	// IBMPowerVSClusterFinalizer allows IBMPowerVSClusterReconciler to clean up resources associated with IBMPowerVSCluster before
	// removing it from the apiserver.
	IBMPowerVSClusterFinalizer = "ibmpowervscluster.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// IBMPowerVSImageFinalizer allows IBMPowerVSImageReconciler to clean up resources associated with IBMPowerVSImage before
	// removing it from the apiserver.
	IBMPowerVSImageFinalizer = "ibmpowervsimage.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// InstanceReadyCondition reports on current status of the instance. Ready indicates the instance is in a Running state.
	InstanceReadyCondition capiv1beta1.ConditionType = "InstanceReady"
)
View Source
const (
	// LoadBalancerNotReadyReason used when cluster is waiting for load balancer to be ready before proceeding.
	LoadBalancerNotReadyReason = "LoadBalancerNotReady"
)
View Source
const (
	// MachineFinalizer allows IBMVPCMachineReconciler to clean up resources associated with IBMVPCMachine before
	// removing it from the apiserver.
	MachineFinalizer = "ibmvpcmachine.infrastructure.cluster.x-k8s.io"
)

NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.

View Source
const (
	// WaitingForIBMPowerVSImageReason used when machine is waiting for powervs image to be ready before proceeding.
	WaitingForIBMPowerVSImageReason = "WaitingForIBMPowerVSImage"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta2"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	// PowerVSInstanceStateACTIVE is the string representing an instance in a ACTIVE state.
	PowerVSInstanceStateACTIVE = PowerVSInstanceState("ACTIVE")

	// PowerVSInstanceStateBUILD is the string representing an instance in a BUILD state.
	PowerVSInstanceStateBUILD = PowerVSInstanceState("BUILD")

	// PowerVSInstanceStateSHUTOFF is the string representing an instance in a SHUTOFF state.
	PowerVSInstanceStateSHUTOFF = PowerVSInstanceState("SHUTOFF")

	// PowerVSInstanceStateREBOOT is the string representing an instance in a REBOOT state.
	PowerVSInstanceStateREBOOT = PowerVSInstanceState("REBOOT")

	// PowerVSInstanceStateERROR is the string representing an instance in a ERROR state.
	PowerVSInstanceStateERROR = PowerVSInstanceState("ERROR")
)
View Source
var (
	// PowerVSImageStateACTIVE is the string representing an image in a active state.
	PowerVSImageStateACTIVE = PowerVSImageState("active")

	// PowerVSImageStateQue is the string representing an image in a queued state.
	PowerVSImageStateQue = PowerVSImageState("queued")

	// PowerVSImageStateFailed is the string representing an image in a failed state.
	PowerVSImageStateFailed = PowerVSImageState("failed")

	// PowerVSImageStateImporting is the string representing an image in a failed state.
	PowerVSImageStateImporting = PowerVSImageState("importing")
)
View Source
var (
	// ServiceInstanceStateActive is the string representing a service instance in an active state.
	ServiceInstanceStateActive = ServiceInstanceState("active")

	// ServiceInstanceStateProvisioning is the string representing a service instance in a provisioning state.
	ServiceInstanceStateProvisioning = ServiceInstanceState("provisioning")

	// ServiceInstanceStateFailed is the string representing a service instance in a failed state.
	ServiceInstanceStateFailed = ServiceInstanceState("failed")

	// ServiceInstanceStateRemoved is the string representing a service instance in a removed state.
	ServiceInstanceStateRemoved = ServiceInstanceState("removed")
)
View Source
var (
	// TransitGatewayStateAvailable is the string representing a transit gateway in available state.
	TransitGatewayStateAvailable = TransitGatewayState("available")

	// TransitGatewayStatePending is the string representing a transit gateway in pending state.
	TransitGatewayStatePending = TransitGatewayState("pending")

	// TransitGatewayStateFailed is the string representing a transit gateway in failed state.
	TransitGatewayStateFailed = TransitGatewayState("failed")

	// TransitGatewayStateDeletePending is the string representing a transit gateway in deleting state.
	TransitGatewayStateDeletePending = TransitGatewayState("deleting")
)
View Source
var (
	// TransitGatewayConnectionStateAttached is the string representing a transit gateway connection in attached state.
	TransitGatewayConnectionStateAttached = TransitGatewayConnectionState("attached")

	// TransitGatewayConnectionStateFailed is the string representing a transit gateway connection in failed state.
	TransitGatewayConnectionStateFailed = TransitGatewayConnectionState("failed")

	// TransitGatewayConnectionStatePending is the string representing a transit gateway connection in pending state.
	TransitGatewayConnectionStatePending = TransitGatewayConnectionState("pending")

	// TransitGatewayConnectionStateDeleting is the string representing a transit gateway connection in deleting state.
	TransitGatewayConnectionStateDeleting = TransitGatewayConnectionState("deleting")
)
View Source
var (
	// VPCLoadBalancerStateActive is the string representing the load balancer in a active state.
	VPCLoadBalancerStateActive = VPCLoadBalancerState("active")

	// VPCLoadBalancerStateCreatePending is the string representing the load balancer in a queued state.
	VPCLoadBalancerStateCreatePending = VPCLoadBalancerState("create_pending")

	// VPCLoadBalancerStateDeletePending is the string representing the load balancer in deleting state.
	VPCLoadBalancerStateDeletePending = VPCLoadBalancerState("delete_pending")
)
View Source
var (
	// VPCStatePending is the string representing a VPC in pending state.
	VPCStatePending = VPCState("pending")

	// VPCStateDeleting is the string representing a VPC in deleting state.
	VPCStateDeleting = VPCState("deleting")
)
View Source
var (
	// DHCPServerStateActive indicates the active state of DHCP server.
	DHCPServerStateActive = DHCPServerState("ACTIVE")

	// DHCPServerStateBuild indicates the build state of DHCP server.
	DHCPServerStateBuild = DHCPServerState("BUILD")

	// DHCPServerStateError indicates the error state of DHCP server.
	DHCPServerStateError = DHCPServerState("ERROR")
)
View Source
var (
	// ResourceTypeServiceInstance is Power VS service instance resource.
	ResourceTypeServiceInstance = ResourceType("serviceInstance")
	// ResourceTypeNetwork is Power VS network resource.
	ResourceTypeNetwork = ResourceType("network")
	// ResourceTypeDHCPServer is Power VS DHCP server.
	ResourceTypeDHCPServer = ResourceType("dhcpServer")
	// ResourceTypeLoadBalancer VPC loadBalancer resource.
	ResourceTypeLoadBalancer = ResourceType("loadBalancer")
	// ResourceTypeTransitGateway is transit gateway resource.
	ResourceTypeTransitGateway = ResourceType("transitGateway")
	// ResourceTypeVPC is Power VS network resource.
	ResourceTypeVPC = ResourceType("vpc")
	// ResourceTypeSubnet is VPC subnet resource.
	ResourceTypeSubnet = ResourceType("subnet")
	// ResourceTypeCOSInstance is IBM COS instance resource.
	ResourceTypeCOSInstance = ResourceType("cosInstance")
	// ResourceTypeCOSBucket is IBM COS bucket resource.
	ResourceTypeCOSBucket = ResourceType("cosBucket")
	// ResourceTypeResourceGroup is IBM Resource Group.
	ResourceTypeResourceGroup = ResourceType("resourceGroup")
)
View Source
var (
	// DeletePolicyRetain is the string representing an image to be retained.
	DeletePolicyRetain = DeletePolicy("retain")
)
View Source
var (
	// VPCSubnetStateDeleting is the string representing a VPC subnet in deleting state.
	VPCSubnetStateDeleting = VPCSubnetState("deleting")
)

Functions

This section is empty.

Types

type AdditionalListenerSpec added in v0.8.0

type AdditionalListenerSpec struct {
	// Port sets the port for the additional listener.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	Port int64 `json:"port"`
}

AdditionalListenerSpec defines the desired state of an additional listener on an VPC load balancer.

func (*AdditionalListenerSpec) DeepCopy added in v0.8.0

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

func (*AdditionalListenerSpec) DeepCopyInto added in v0.8.0

func (in *AdditionalListenerSpec) DeepCopyInto(out *AdditionalListenerSpec)

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

type CosInstance added in v0.8.0

type CosInstance struct {
	// name defines name of IBM cloud COS instance to be created.
	// when IBMPowerVSCluster.Ignition is set
	// +kubebuilder:validation:MinLength:=3
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Pattern=`^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$`
	Name string `json:"name,omitempty"`

	// bucketName is IBM cloud COS bucket name
	BucketName string `json:"bucketName,omitempty"`

	// bucketRegion is IBM cloud COS bucket region
	BucketRegion string `json:"bucketRegion,omitempty"`
}

CosInstance represents IBM Cloud COS instance.

func (*CosInstance) DeepCopy added in v0.8.0

func (in *CosInstance) DeepCopy() *CosInstance

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

func (*CosInstance) DeepCopyInto added in v0.8.0

func (in *CosInstance) DeepCopyInto(out *CosInstance)

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

type DHCPServer added in v0.8.0

type DHCPServer struct {
	// Optional cidr for DHCP private network
	Cidr *string `json:"cidr,omitempty"`

	// Optional DNS Server for DHCP service
	// +kubebuilder:default="1.1.1.1"
	DNSServer *string `json:"dnsServer,omitempty"`

	// Optional name of DHCP Service. Only alphanumeric characters and dashes are allowed.
	Name *string `json:"name,omitempty"`

	// Optional id of the existing DHCPServer
	ID *string `json:"id,omitempty"`

	// Optional indicates if SNAT will be enabled for DHCP service
	// +kubebuilder:default=true
	Snat *bool `json:"snat,omitempty"`
}

DHCPServer contains the DHCP server configurations.

func (*DHCPServer) DeepCopy added in v0.8.0

func (in *DHCPServer) DeepCopy() *DHCPServer

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

func (*DHCPServer) DeepCopyInto added in v0.8.0

func (in *DHCPServer) DeepCopyInto(out *DHCPServer)

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

type DHCPServerState added in v0.8.0

type DHCPServerState string

DHCPServerState describes the state of the DHCP Server.

type DeletePolicy

type DeletePolicy string

DeletePolicy defines the policy used to identify images to be preserved.

type IBMPowerVSCluster

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

	Spec   IBMPowerVSClusterSpec   `json:"spec,omitempty"`
	Status IBMPowerVSClusterStatus `json:"status,omitempty"`
}

IBMPowerVSCluster is the Schema for the ibmpowervsclusters API.

func (*IBMPowerVSCluster) DeepCopy

func (in *IBMPowerVSCluster) DeepCopy() *IBMPowerVSCluster

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

func (*IBMPowerVSCluster) DeepCopyInto

func (in *IBMPowerVSCluster) DeepCopyInto(out *IBMPowerVSCluster)

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

func (*IBMPowerVSCluster) DeepCopyObject

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

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

func (*IBMPowerVSCluster) Default

func (r *IBMPowerVSCluster) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*IBMPowerVSCluster) GetConditions added in v0.8.0

func (r *IBMPowerVSCluster) GetConditions() capiv1beta1.Conditions

GetConditions returns the observations of the operational state of the IBMPowerVSCluster resource.

func (*IBMPowerVSCluster) Hub

func (*IBMPowerVSCluster) Hub()

func (*IBMPowerVSCluster) SetConditions added in v0.8.0

func (r *IBMPowerVSCluster) SetConditions(conditions capiv1beta1.Conditions)

SetConditions sets the underlying service state of the IBMPowerVSCluster to the predescribed clusterv1.Conditions.

func (*IBMPowerVSCluster) SetupWebhookWithManager

func (r *IBMPowerVSCluster) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*IBMPowerVSCluster) ValidateCreate

func (r *IBMPowerVSCluster) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*IBMPowerVSCluster) ValidateDelete

func (r *IBMPowerVSCluster) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*IBMPowerVSCluster) ValidateUpdate

func (r *IBMPowerVSCluster) ValidateUpdate(_ runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type IBMPowerVSClusterList

type IBMPowerVSClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IBMPowerVSCluster `json:"items"`
}

IBMPowerVSClusterList contains a list of IBMPowerVSCluster.

func (*IBMPowerVSClusterList) DeepCopy

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

func (*IBMPowerVSClusterList) DeepCopyInto

func (in *IBMPowerVSClusterList) DeepCopyInto(out *IBMPowerVSClusterList)

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

func (*IBMPowerVSClusterList) DeepCopyObject

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

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

func (*IBMPowerVSClusterList) Hub

func (*IBMPowerVSClusterList) Hub()

type IBMPowerVSClusterSpec

type IBMPowerVSClusterSpec struct {
	// ServiceInstanceID is the id of the power cloud instance where the vsi instance will get deployed.
	// Deprecated: use ServiceInstance instead
	ServiceInstanceID string `json:"serviceInstanceID"`

	// Network is the reference to the Network to use for this cluster.
	// when the field is omitted, A DHCP service will be created in the Power VS workspace and its private network will be used.
	// the DHCP service created network will have the following name format
	// 1. in the case of DHCPServer.Name is not set the name will be DHCPSERVER<CLUSTER_NAME>_Private.
	// 2. if DHCPServer.Name is set the name will be DHCPSERVER<DHCPServer.Name>_Private.
	// when Network.ID is set, its expected that there exist a network in PowerVS workspace with id or else system will give error.
	// when Network.Name is set, system will first check for network with Name in PowerVS workspace, if not exist network will be created by DHCP service.
	// Network.RegEx is not yet supported and system will ignore the value.
	Network IBMPowerVSResourceReference `json:"network"`

	// dhcpServer is contains the configuration to be used while creating a new DHCP server in PowerVS workspace.
	// when the field is omitted, CLUSTER_NAME will be used as DHCPServer.Name and DHCP server will be created.
	// it will automatically create network with name DHCPSERVER<DHCPServer.Name>_Private in PowerVS workspace.
	// +optional
	DHCPServer *DHCPServer `json:"dhcpServer,omitempty"`

	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// +optional
	ControlPlaneEndpoint capiv1beta1.APIEndpoint `json:"controlPlaneEndpoint"`

	// serviceInstance is the reference to the Power VS server workspace on which the server instance(VM) will be created.
	// Power VS server workspace is a container for all Power VS instances at a specific geographic region.
	// serviceInstance can be created via IBM Cloud catalog or CLI.
	// supported serviceInstance identifier in PowerVSResource are Name and ID and that can be obtained from IBM Cloud UI or IBM Cloud cli.
	// More detail about Power VS service instance.
	// https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-creating-power-virtual-server
	// when omitted system will dynamically create the service instance with name CLUSTER_NAME-serviceInstance.
	// when ServiceInstance.ID is set, its expected that there exist a service instance in PowerVS workspace with id or else system will give error.
	// when ServiceInstance.Name is set, system will first check for service instance with Name in PowerVS workspace, if not exist system will create new instance.
	// ServiceInstance.Regex is not yet supported not yet supported and system will ignore the value.
	// +optional
	ServiceInstance *IBMPowerVSResourceReference `json:"serviceInstance,omitempty"`

	// zone is the name of Power VS zone where the cluster will be created
	// possible values can be found here https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-creating-power-virtual-server.
	// when powervs.cluster.x-k8s.io/create-infra=true annotation is set on IBMPowerVSCluster resource,
	// 1. it is expected to set the zone, not setting will result in webhook error.
	// 2. the zone should have PER capabilities, or else system will give error.
	// +optional
	Zone *string `json:"zone,omitempty"`

	// resourceGroup name under which the resources will be created.
	// when powervs.cluster.x-k8s.io/create-infra=true annotation is set on IBMPowerVSCluster resource,
	// 1. it is expected to set the ResourceGroup.Name, not setting will result in webhook error.
	// ResourceGroup.ID and ResourceGroup.Regex is not yet supported and system will ignore the value.
	// +optional
	ResourceGroup *IBMPowerVSResourceReference `json:"resourceGroup,omitempty"`

	// vpc contains information about IBM Cloud VPC resources.
	// when omitted system will dynamically create the VPC with name CLUSTER_NAME-vpc.
	// when VPC.ID is set, its expected that there exist a VPC with ID or else system will give error.
	// when VPC.Name is set, system will first check for VPC with Name, if not exist system will create new VPC.
	// when powervs.cluster.x-k8s.io/create-infra=true annotation is set on IBMPowerVSCluster resource,
	// 1. it is expected to set the VPC.Region, not setting will result in webhook error.
	// +optional
	VPC *VPCResourceReference `json:"vpc,omitempty"`

	// vpcSubnets contains information about IBM Cloud VPC Subnet resources.
	// when omitted system will create the subnets in all the zone corresponding to VPC.Region, with name CLUSTER_NAME-vpcsubnet-ZONE_NAME.
	// possible values can be found here https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-creating-power-virtual-server.
	// when VPCSubnets[].ID is set, its expected that there exist a subnet with ID or else system will give error.
	// when VPCSubnets[].Zone is not set, a random zone is picked from available zones of VPC.Region.
	// when VPCSubnets[].Name is not set, system will set name as CLUSTER_NAME-vpcsubnet-INDEX.
	// if subnet with name VPCSubnets[].Name not found, system will create new subnet in VPCSubnets[].Zone.
	// +optional
	VPCSubnets []Subnet `json:"vpcSubnets,omitempty"`

	// VPCSecurityGroups to attach it to the VPC resource
	// +optional
	VPCSecurityGroups []VPCSecurityGroup `json:"vpcSecurityGroups,omitempty"`

	// transitGateway contains information about IBM Cloud TransitGateway
	// IBM Cloud TransitGateway helps in establishing network connectivity between IBM Cloud Power VS and VPC infrastructure
	// more information about TransitGateway can be found here https://www.ibm.com/products/transit-gateway.
	// when TransitGateway.ID is set, its expected that there exist a TransitGateway with ID or else system will give error.
	// when TransitGateway.Name is set, system will first check for TransitGateway with Name, if not exist system will create new TransitGateway.
	// +optional
	TransitGateway *TransitGateway `json:"transitGateway,omitempty"`

	// loadBalancers is optional configuration for configuring loadbalancers to control plane or data plane nodes.
	// when omitted system will create a default public loadbalancer with name CLUSTER_NAME-loadbalancer.
	// when specified a vpc loadbalancer will be created and controlPlaneEndpoint will be set with associated hostname of loadbalancer.
	// ControlPlaneEndpoint will be set with associated hostname of public loadbalancer.
	// when LoadBalancers[].ID is set, its expected that there exist a loadbalancer with ID or else system will give error.
	// when LoadBalancers[].Name is set, system will first check for loadbalancer with Name, if not exist system will create new loadbalancer.
	// For each loadbalancer a default backed pool and front listener will be configured with port 6443.
	// +optional
	LoadBalancers []VPCLoadBalancerSpec `json:"loadBalancers,omitempty"`

	// cosInstance contains options to configure a supporting IBM Cloud COS bucket for this
	// cluster - currently used for nodes requiring Ignition
	// (https://coreos.github.io/ignition/) for bootstrapping (requires
	// BootstrapFormatIgnition feature flag to be enabled).
	// when powervs.cluster.x-k8s.io/create-infra=true annotation is set on IBMPowerVSCluster resource and Ignition is set, then
	// 1. CosInstance.Name should be set not setting will result in webhook error.
	// 2. CosInstance.BucketName should be set not setting will result in webhook error.
	// 3. CosInstance.BucketRegion should be set not setting will result in webhook error.
	// +optional
	CosInstance *CosInstance `json:"cosInstance,omitempty"`

	// Ignition defined options related to the bootstrapping systems where Ignition is used.
	// +optional
	Ignition *Ignition `json:"ignition,omitempty"`
}

IBMPowerVSClusterSpec defines the desired state of IBMPowerVSCluster.

func (*IBMPowerVSClusterSpec) DeepCopy

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

func (*IBMPowerVSClusterSpec) DeepCopyInto

func (in *IBMPowerVSClusterSpec) DeepCopyInto(out *IBMPowerVSClusterSpec)

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

type IBMPowerVSClusterStatus

type IBMPowerVSClusterStatus struct {
	// ready is true when the provider resource is ready.
	// +kubebuilder:default=false
	Ready bool `json:"ready"`

	// ResourceGroup is the reference to the Power VS resource group under which the resources will be created.
	ResourceGroup *ResourceReference `json:"resourceGroupID,omitempty"`

	// serviceInstance is the reference to the Power VS service on which the server instance(VM) will be created.
	ServiceInstance *ResourceReference `json:"serviceInstance,omitempty"`

	// networkID is the reference to the Power VS network to use for this cluster.
	Network *ResourceReference `json:"network,omitempty"`

	// dhcpServer is the reference to the Power VS DHCP server.
	DHCPServer *ResourceReference `json:"dhcpServer,omitempty"`

	// vpc is reference to IBM Cloud VPC resources.
	VPC *ResourceReference `json:"vpc,omitempty"`

	// vpcSubnet is reference to IBM Cloud VPC subnet.
	VPCSubnet map[string]ResourceReference `json:"vpcSubnet,omitempty"`

	// vpcSecurityGroups is reference to IBM Cloud VPC security group.
	VPCSecurityGroups map[string]VPCSecurityGroupStatus `json:"vpcSecurityGroups,omitempty"`

	// transitGateway is reference to IBM Cloud TransitGateway.
	TransitGateway *ResourceReference `json:"transitGateway,omitempty"`

	// cosInstance is reference to IBM Cloud COS Instance resource.
	COSInstance *ResourceReference `json:"cosInstance,omitempty"`

	// loadBalancers reference to IBM Cloud VPC Loadbalancer.
	LoadBalancers map[string]VPCLoadBalancerStatus `json:"loadBalancers,omitempty"`

	// Conditions defines current service state of the IBMPowerVSCluster.
	Conditions capiv1beta1.Conditions `json:"conditions,omitempty"`
}

IBMPowerVSClusterStatus defines the observed state of IBMPowerVSCluster.

func (*IBMPowerVSClusterStatus) DeepCopy

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

func (*IBMPowerVSClusterStatus) DeepCopyInto

func (in *IBMPowerVSClusterStatus) DeepCopyInto(out *IBMPowerVSClusterStatus)

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

type IBMPowerVSClusterTemplate

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

	Spec IBMPowerVSClusterTemplateSpec `json:"spec,omitempty"`
}

IBMPowerVSClusterTemplate is the schema for IBM Power VS Kubernetes Cluster Templates.

func (*IBMPowerVSClusterTemplate) DeepCopy

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

func (*IBMPowerVSClusterTemplate) DeepCopyInto

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

func (*IBMPowerVSClusterTemplate) DeepCopyObject

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

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

func (*IBMPowerVSClusterTemplate) Default added in v0.5.0

func (r *IBMPowerVSClusterTemplate) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*IBMPowerVSClusterTemplate) Hub

func (*IBMPowerVSClusterTemplate) SetupWebhookWithManager added in v0.5.0

func (r *IBMPowerVSClusterTemplate) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*IBMPowerVSClusterTemplate) ValidateCreate added in v0.5.0

func (r *IBMPowerVSClusterTemplate) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*IBMPowerVSClusterTemplate) ValidateDelete added in v0.5.0

func (r *IBMPowerVSClusterTemplate) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*IBMPowerVSClusterTemplate) ValidateUpdate added in v0.5.0

func (r *IBMPowerVSClusterTemplate) ValidateUpdate(oldRaw runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type IBMPowerVSClusterTemplateList

type IBMPowerVSClusterTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IBMPowerVSClusterTemplate `json:"items"`
}

IBMPowerVSClusterTemplateList contains a list of IBMPowerVSClusterTemplate.

func (*IBMPowerVSClusterTemplateList) DeepCopy

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

func (*IBMPowerVSClusterTemplateList) DeepCopyInto

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

func (*IBMPowerVSClusterTemplateList) DeepCopyObject

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

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

func (*IBMPowerVSClusterTemplateList) Hub

type IBMPowerVSClusterTemplateResource

type IBMPowerVSClusterTemplateResource struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	ObjectMeta capiv1beta1.ObjectMeta `json:"metadata,omitempty"`
	Spec       IBMPowerVSClusterSpec  `json:"spec"`
}

IBMPowerVSClusterTemplateResource describes the data needed to create an IBMPowerVSCluster from a template.

func (*IBMPowerVSClusterTemplateResource) DeepCopy

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

func (*IBMPowerVSClusterTemplateResource) DeepCopyInto

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

type IBMPowerVSClusterTemplateSpec

type IBMPowerVSClusterTemplateSpec struct {
	Template IBMPowerVSClusterTemplateResource `json:"template"`
}

IBMPowerVSClusterTemplateSpec defines the desired state of IBMPowerVSClusterTemplate.

func (*IBMPowerVSClusterTemplateSpec) DeepCopy

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

func (*IBMPowerVSClusterTemplateSpec) DeepCopyInto

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

type IBMPowerVSImage

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

	Spec   IBMPowerVSImageSpec   `json:"spec,omitempty"`
	Status IBMPowerVSImageStatus `json:"status,omitempty"`
}

IBMPowerVSImage is the Schema for the ibmpowervsimages API.

func (*IBMPowerVSImage) DeepCopy

func (in *IBMPowerVSImage) DeepCopy() *IBMPowerVSImage

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

func (*IBMPowerVSImage) DeepCopyInto

func (in *IBMPowerVSImage) DeepCopyInto(out *IBMPowerVSImage)

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

func (*IBMPowerVSImage) DeepCopyObject

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

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

func (*IBMPowerVSImage) Default

func (r *IBMPowerVSImage) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*IBMPowerVSImage) GetConditions

func (r *IBMPowerVSImage) GetConditions() capiv1beta1.Conditions

GetConditions returns the observations of the operational state of the IBMPowerVSImage resource.

func (*IBMPowerVSImage) Hub

func (*IBMPowerVSImage) Hub()

func (*IBMPowerVSImage) SetConditions

func (r *IBMPowerVSImage) SetConditions(conditions capiv1beta1.Conditions)

SetConditions sets the underlying service state of the IBMPowerVSImage to the predescribed clusterv1.Conditions.

func (*IBMPowerVSImage) SetupWebhookWithManager

func (r *IBMPowerVSImage) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*IBMPowerVSImage) ValidateCreate

func (r *IBMPowerVSImage) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*IBMPowerVSImage) ValidateDelete

func (r *IBMPowerVSImage) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*IBMPowerVSImage) ValidateUpdate

func (r *IBMPowerVSImage) ValidateUpdate(_ runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type IBMPowerVSImageList

type IBMPowerVSImageList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IBMPowerVSImage `json:"items"`
}

IBMPowerVSImageList contains a list of IBMPowerVSImage.

func (*IBMPowerVSImageList) DeepCopy

func (in *IBMPowerVSImageList) DeepCopy() *IBMPowerVSImageList

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

func (*IBMPowerVSImageList) DeepCopyInto

func (in *IBMPowerVSImageList) DeepCopyInto(out *IBMPowerVSImageList)

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

func (*IBMPowerVSImageList) DeepCopyObject

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

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

func (*IBMPowerVSImageList) Hub

func (*IBMPowerVSImageList) Hub()

type IBMPowerVSImageSpec

type IBMPowerVSImageSpec struct {

	// ClusterName is the name of the Cluster this object belongs to.
	// +kubebuilder:validation:MinLength=1
	ClusterName string `json:"clusterName"`

	// ServiceInstanceID is the id of the power cloud instance where the image will get imported.
	// Deprecated: use ServiceInstance instead
	ServiceInstanceID string `json:"serviceInstanceID"`

	// serviceInstance is the reference to the Power VS workspace on which the server instance(VM) will be created.
	// Power VS workspace is a container for all Power VS instances at a specific geographic region.
	// serviceInstance can be created via IBM Cloud catalog or CLI.
	// supported serviceInstance identifier in PowerVSResource are Name and ID and that can be obtained from IBM Cloud UI or IBM Cloud cli.
	// More detail about Power VS service instance.
	// https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-creating-power-virtual-server
	// when omitted system will dynamically create the service instance
	// +optional
	ServiceInstance *IBMPowerVSResourceReference `json:"serviceInstance,omitempty"`

	// Cloud Object Storage bucket name; bucket-name[/optional/folder]
	Bucket *string `json:"bucket"`

	// Cloud Object Storage image filename.
	Object *string `json:"object"`

	// Cloud Object Storage region.
	Region *string `json:"region"`

	// Type of storage, storage pool with the most available space will be selected.
	// +kubebuilder:default=tier1
	// +kubebuilder:validation:Enum=tier1;tier3
	// +optional
	StorageType string `json:"storageType,omitempty"`

	// DeletePolicy defines the policy used to identify images to be preserved beyond the lifecycle of associated cluster.
	// +kubebuilder:default=delete
	// +kubebuilder:validation:Enum=delete;retain
	// +optional
	DeletePolicy string `json:"deletePolicy,omitempty"`
}

IBMPowerVSImageSpec defines the desired state of IBMPowerVSImage.

func (*IBMPowerVSImageSpec) DeepCopy

func (in *IBMPowerVSImageSpec) DeepCopy() *IBMPowerVSImageSpec

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

func (*IBMPowerVSImageSpec) DeepCopyInto

func (in *IBMPowerVSImageSpec) DeepCopyInto(out *IBMPowerVSImageSpec)

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

type IBMPowerVSImageStatus

type IBMPowerVSImageStatus struct {

	// Ready is true when the provider resource is ready.
	// +optional
	Ready bool `json:"ready"`

	// ImageID is the id of the imported image.
	ImageID string `json:"imageID,omitempty"`

	// ImageState is the status of the imported image.
	// +optional
	ImageState PowerVSImageState `json:"imageState,omitempty"`

	// JobID is the job ID of an import operation.
	// +optional
	JobID string `json:"jobID,omitempty"`

	// Conditions defines current service state of the IBMPowerVSImage.
	// +optional
	Conditions capiv1beta1.Conditions `json:"conditions,omitempty"`
}

IBMPowerVSImageStatus defines the observed state of IBMPowerVSImage.

func (*IBMPowerVSImageStatus) DeepCopy

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

func (*IBMPowerVSImageStatus) DeepCopyInto

func (in *IBMPowerVSImageStatus) DeepCopyInto(out *IBMPowerVSImageStatus)

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

type IBMPowerVSMachine

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

	Spec   IBMPowerVSMachineSpec   `json:"spec,omitempty"`
	Status IBMPowerVSMachineStatus `json:"status,omitempty"`
}

IBMPowerVSMachine is the Schema for the ibmpowervsmachines API.

func (*IBMPowerVSMachine) DeepCopy

func (in *IBMPowerVSMachine) DeepCopy() *IBMPowerVSMachine

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

func (*IBMPowerVSMachine) DeepCopyInto

func (in *IBMPowerVSMachine) DeepCopyInto(out *IBMPowerVSMachine)

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

func (*IBMPowerVSMachine) DeepCopyObject

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

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

func (*IBMPowerVSMachine) Default

func (r *IBMPowerVSMachine) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*IBMPowerVSMachine) GetConditions

func (r *IBMPowerVSMachine) GetConditions() capiv1beta1.Conditions

GetConditions returns the observations of the operational state of the IBMPowerVSMachine resource.

func (*IBMPowerVSMachine) Hub

func (*IBMPowerVSMachine) Hub()

func (*IBMPowerVSMachine) SetConditions

func (r *IBMPowerVSMachine) SetConditions(conditions capiv1beta1.Conditions)

SetConditions sets the underlying service state of the IBMPowerVSMachine to the predescribed clusterv1.Conditions.

func (*IBMPowerVSMachine) SetupWebhookWithManager

func (r *IBMPowerVSMachine) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*IBMPowerVSMachine) ValidateCreate

func (r *IBMPowerVSMachine) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*IBMPowerVSMachine) ValidateDelete

func (r *IBMPowerVSMachine) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*IBMPowerVSMachine) ValidateUpdate

func (r *IBMPowerVSMachine) ValidateUpdate(_ runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type IBMPowerVSMachineList

type IBMPowerVSMachineList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IBMPowerVSMachine `json:"items"`
}

IBMPowerVSMachineList contains a list of IBMPowerVSMachine.

func (*IBMPowerVSMachineList) DeepCopy

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

func (*IBMPowerVSMachineList) DeepCopyInto

func (in *IBMPowerVSMachineList) DeepCopyInto(out *IBMPowerVSMachineList)

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

func (*IBMPowerVSMachineList) DeepCopyObject

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

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

func (*IBMPowerVSMachineList) Hub

func (*IBMPowerVSMachineList) Hub()

type IBMPowerVSMachineSpec

type IBMPowerVSMachineSpec struct {

	// ServiceInstanceID is the id of the power cloud instance where the vsi instance will get deployed.
	// Deprecated: use ServiceInstance instead
	ServiceInstanceID string `json:"serviceInstanceID"`

	// serviceInstance is the reference to the Power VS workspace on which the server instance(VM) will be created.
	// Power VS workspace is a container for all Power VS instances at a specific geographic region.
	// serviceInstance can be created via IBM Cloud catalog or CLI.
	// supported serviceInstance identifier in PowerVSResource are Name and ID and that can be obtained from IBM Cloud UI or IBM Cloud cli.
	// More detail about Power VS service instance.
	// https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-creating-power-virtual-server
	// when omitted system will dynamically create the service instance
	// +optional
	ServiceInstance *IBMPowerVSResourceReference `json:"serviceInstance,omitempty"`

	// SSHKey is the name of the SSH key pair provided to the vsi for authenticating users.
	SSHKey string `json:"sshKey,omitempty"`

	// Image the reference to the image which is used to create the instance.
	// supported image identifier in IBMPowerVSResourceReference are Name and ID and that can be obtained from IBM Cloud UI or IBM Cloud cli.
	// +optional
	Image *IBMPowerVSResourceReference `json:"image,omitempty"`

	// ImageRef is an optional reference to a provider-specific resource that holds
	// the details for provisioning the Image for a Cluster.
	// +optional
	ImageRef *corev1.LocalObjectReference `json:"imageRef,omitempty"`

	// systemType is the System type used to host the instance.
	// systemType determines the number of cores and memory that is available.
	// Few of the supported SystemTypes are s922,e880,e980.
	// e880 systemType available only in Dallas Datacenters.
	// e980 systemType available in Datacenters except Dallas and Washington.
	// When omitted, this means that the user has no opinion and the platform is left to choose a
	// reasonable default, which is subject to change over time. The current default is s922 which is generally available.
	// + This is not an enum because we expect other values to be added later which should be supported implicitly.
	// +kubebuilder:validation:Enum:="s922";"e880";"e980";"s1022";""
	// +optional
	SystemType string `json:"systemType,omitempty"`

	// processorType is the VM instance processor type.
	// It must be set to one of the following values: Dedicated, Capped or Shared.
	// Dedicated: resources are allocated for a specific client, The hypervisor makes a 1:1 binding of a partition’s processor to a physical processor core.
	// Shared: Shared among other clients.
	// Capped: Shared, but resources do not expand beyond those that are requested, the amount of CPU time is Capped to the value specified for the entitlement.
	// if the processorType is selected as Dedicated, then processors value cannot be fractional.
	// When omitted, this means that the user has no opinion and the platform is left to choose a
	// reasonable default, which is subject to change over time. The current default is Shared.
	// +kubebuilder:validation:Enum:="Dedicated";"Shared";"Capped";""
	// +optional
	ProcessorType PowerVSProcessorType `json:"processorType,omitempty"`

	// processors is the number of virtual processors in a virtual machine.
	// when the processorType is selected as Dedicated the processors value cannot be fractional.
	// maximum value for the Processors depends on the selected SystemType.
	// when SystemType is set to e880 or e980 maximum Processors value is 143.
	// when SystemType is set to s922 maximum Processors value is 15.
	// minimum value for Processors depends on the selected ProcessorType.
	// when ProcessorType is set as Shared or Capped, The minimum processors is 0.25.
	// when ProcessorType is set as Dedicated, The minimum processors is 1.
	// When omitted, this means that the user has no opinion and the platform is left to choose a
	// reasonable default, which is subject to change over time. The default is set based on the selected ProcessorType.
	// when ProcessorType selected as Dedicated, the default is set to 1.
	// when ProcessorType selected as Shared or Capped, the default is set to 0.25.
	// +optional
	Processors intstr.IntOrString `json:"processors,omitempty"`

	// memoryGiB is the size of a virtual machine's memory, in GiB.
	// maximum value for the MemoryGiB depends on the selected SystemType.
	// when SystemType is set to e880 maximum MemoryGiB value is 7463 GiB.
	// when SystemType is set to e980 maximum MemoryGiB value is 15307 GiB.
	// when SystemType is set to s922 maximum MemoryGiB value is 942 GiB.
	// The minimum memory is 2 GiB.
	// When omitted, this means the user has no opinion and the platform is left to choose a reasonable
	// default, which is subject to change over time. The current default is 2.
	// +optional
	MemoryGiB int32 `json:"memoryGiB,omitempty"`

	// Network is the reference to the Network to use for this instance.
	// supported network identifier in IBMPowerVSResourceReference are Name, ID and RegEx and that can be obtained from IBM Cloud UI or IBM Cloud cli.
	Network IBMPowerVSResourceReference `json:"network"`

	// ProviderID is the unique identifier as specified by the cloud provider.
	// +optional
	ProviderID *string `json:"providerID,omitempty"`
}

IBMPowerVSMachineSpec defines the desired state of IBMPowerVSMachine.

func (*IBMPowerVSMachineSpec) DeepCopy

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

func (*IBMPowerVSMachineSpec) DeepCopyInto

func (in *IBMPowerVSMachineSpec) DeepCopyInto(out *IBMPowerVSMachineSpec)

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

type IBMPowerVSMachineStatus

type IBMPowerVSMachineStatus struct {
	InstanceID string `json:"instanceID,omitempty"`

	// Ready is true when the provider resource is ready.
	// +optional
	Ready bool `json:"ready"`

	// Addresses contains the vsi associated addresses.
	Addresses []corev1.NodeAddress `json:"addresses,omitempty"`

	// Health is the health of the vsi.
	// +optional
	Health string `json:"health,omitempty"`

	// InstanceState is the status of the vsi.
	// +optional
	InstanceState PowerVSInstanceState `json:"instanceState,omitempty"`

	// Fault will report if any fault messages for the vsi.
	// +optional
	Fault string `json:"fault,omitempty"`

	// FailureReason will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a succinct value suitable
	// for machine interpretation.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the Machine's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of Machines
	// can be added as events to the Machine object and/or logged in the
	// controller's output.
	// +optional
	FailureReason *errors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a more verbose string suitable
	// for logging and human consumption.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the Machine's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of Machines
	// can be added as events to the Machine object and/or logged in the
	// controller's output.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// Conditions defines current service state of the IBMPowerVSMachine.
	// +optional
	Conditions capiv1beta1.Conditions `json:"conditions,omitempty"`

	// Region specifies the Power VS Service instance region.
	Region *string `json:"region,omitempty"`

	// Zone specifies the Power VS Service instance zone.
	Zone *string `json:"zone,omitempty"`
}

IBMPowerVSMachineStatus defines the observed state of IBMPowerVSMachine.

func (*IBMPowerVSMachineStatus) DeepCopy

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

func (*IBMPowerVSMachineStatus) DeepCopyInto

func (in *IBMPowerVSMachineStatus) DeepCopyInto(out *IBMPowerVSMachineStatus)

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

type IBMPowerVSMachineTemplate

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

	Spec   IBMPowerVSMachineTemplateSpec   `json:"spec,omitempty"`
	Status IBMPowerVSMachineTemplateStatus `json:"status,omitempty"`
}

IBMPowerVSMachineTemplate is the Schema for the ibmpowervsmachinetemplates API.

func (*IBMPowerVSMachineTemplate) DeepCopy

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

func (*IBMPowerVSMachineTemplate) DeepCopyInto

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

func (*IBMPowerVSMachineTemplate) DeepCopyObject

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

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

func (*IBMPowerVSMachineTemplate) Default

func (r *IBMPowerVSMachineTemplate) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*IBMPowerVSMachineTemplate) Hub

func (*IBMPowerVSMachineTemplate) SetupWebhookWithManager

func (r *IBMPowerVSMachineTemplate) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*IBMPowerVSMachineTemplate) ValidateCreate

func (r *IBMPowerVSMachineTemplate) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*IBMPowerVSMachineTemplate) ValidateDelete

func (r *IBMPowerVSMachineTemplate) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*IBMPowerVSMachineTemplate) ValidateUpdate

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type IBMPowerVSMachineTemplateList

type IBMPowerVSMachineTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IBMPowerVSMachineTemplate `json:"items"`
}

IBMPowerVSMachineTemplateList contains a list of IBMPowerVSMachineTemplate.

func (*IBMPowerVSMachineTemplateList) DeepCopy

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

func (*IBMPowerVSMachineTemplateList) DeepCopyInto

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

func (*IBMPowerVSMachineTemplateList) DeepCopyObject

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

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

func (*IBMPowerVSMachineTemplateList) Hub

type IBMPowerVSMachineTemplateResource

type IBMPowerVSMachineTemplateResource struct {
	Spec IBMPowerVSMachineSpec `json:"spec"`
}

IBMPowerVSMachineTemplateResource holds the IBMPowerVSMachine spec.

func (*IBMPowerVSMachineTemplateResource) DeepCopy

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

func (*IBMPowerVSMachineTemplateResource) DeepCopyInto

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

type IBMPowerVSMachineTemplateSpec

type IBMPowerVSMachineTemplateSpec struct {
	Template IBMPowerVSMachineTemplateResource `json:"template"`
}

IBMPowerVSMachineTemplateSpec defines the desired state of IBMPowerVSMachineTemplate.

func (*IBMPowerVSMachineTemplateSpec) DeepCopy

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

func (*IBMPowerVSMachineTemplateSpec) DeepCopyInto

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

type IBMPowerVSMachineTemplateStatus

type IBMPowerVSMachineTemplateStatus struct {
	// Capacity defines the resource capacity for this machine.
	// This value is used for autoscaling from zero operations as defined in:
	// https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20210310-opt-in-autoscaling-from-zero.md
	// +optional
	Capacity corev1.ResourceList `json:"capacity,omitempty"`
}

IBMPowerVSMachineTemplateStatus defines the observed state of IBMPowerVSMachineTemplate.

func (*IBMPowerVSMachineTemplateStatus) DeepCopy

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

func (*IBMPowerVSMachineTemplateStatus) DeepCopyInto

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

type IBMPowerVSResourceReference

type IBMPowerVSResourceReference struct {
	// ID of resource
	// +kubebuilder:validation:MinLength=1
	// +optional
	ID *string `json:"id,omitempty"`

	// Name of resource
	// +kubebuilder:validation:MinLength=1
	// +optional
	Name *string `json:"name,omitempty"`

	// Regular expression to match resource,
	// In case of multiple resources matches the provided regular expression the first matched resource will be selected
	// +kubebuilder:validation:MinLength=1
	// +optional
	RegEx *string `json:"regex,omitempty"`
}

IBMPowerVSResourceReference is a reference to a specific PowerVS resource by ID, Name or RegEx Only one of ID, Name or RegEx may be specified. Specifying more than one will result in a validation error.

func (*IBMPowerVSResourceReference) DeepCopy

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

func (*IBMPowerVSResourceReference) DeepCopyInto

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

type IBMVPCCluster

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

	Spec   IBMVPCClusterSpec   `json:"spec,omitempty"`
	Status IBMVPCClusterStatus `json:"status,omitempty"`
}

IBMVPCCluster is the Schema for the ibmvpcclusters API.

func (*IBMVPCCluster) DeepCopy

func (in *IBMVPCCluster) DeepCopy() *IBMVPCCluster

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

func (*IBMVPCCluster) DeepCopyInto

func (in *IBMVPCCluster) DeepCopyInto(out *IBMVPCCluster)

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

func (*IBMVPCCluster) DeepCopyObject

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

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

func (*IBMVPCCluster) Default

func (r *IBMVPCCluster) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*IBMVPCCluster) GetConditions

func (r *IBMVPCCluster) GetConditions() capiv1beta1.Conditions

GetConditions returns the observations of the operational state of the IBMVPCCluster resource.

func (*IBMVPCCluster) Hub

func (*IBMVPCCluster) Hub()

func (*IBMVPCCluster) SetConditions

func (r *IBMVPCCluster) SetConditions(conditions capiv1beta1.Conditions)

SetConditions sets the underlying service state of the IBMVPCCluster to the predescribed clusterv1.Conditions.

func (*IBMVPCCluster) SetupWebhookWithManager

func (r *IBMVPCCluster) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*IBMVPCCluster) ValidateCreate

func (r *IBMVPCCluster) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*IBMVPCCluster) ValidateDelete

func (r *IBMVPCCluster) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*IBMVPCCluster) ValidateUpdate

func (r *IBMVPCCluster) ValidateUpdate(_ runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type IBMVPCClusterList

type IBMVPCClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IBMVPCCluster `json:"items"`
}

IBMVPCClusterList contains a list of IBMVPCCluster.

func (*IBMVPCClusterList) DeepCopy

func (in *IBMVPCClusterList) DeepCopy() *IBMVPCClusterList

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

func (*IBMVPCClusterList) DeepCopyInto

func (in *IBMVPCClusterList) DeepCopyInto(out *IBMVPCClusterList)

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

func (*IBMVPCClusterList) DeepCopyObject

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

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

func (*IBMVPCClusterList) Hub

func (*IBMVPCClusterList) Hub()

type IBMVPCClusterSpec

type IBMVPCClusterSpec struct {

	// The IBM Cloud Region the cluster lives in.
	Region string `json:"region"`

	// The VPC resources should be created under the resource group.
	ResourceGroup string `json:"resourceGroup"`

	// The Name of VPC.
	VPC string `json:"vpc,omitempty"`

	// The Name of availability zone.
	Zone string `json:"zone,omitempty"`

	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// +optional
	ControlPlaneEndpoint capiv1beta1.APIEndpoint `json:"controlPlaneEndpoint"`

	// ControlPlaneLoadBalancer is optional configuration for customizing control plane behavior.
	// +optional
	ControlPlaneLoadBalancer *VPCLoadBalancerSpec `json:"controlPlaneLoadBalancer,omitempty"`
}

IBMVPCClusterSpec defines the desired state of IBMVPCCluster.

func (*IBMVPCClusterSpec) DeepCopy

func (in *IBMVPCClusterSpec) DeepCopy() *IBMVPCClusterSpec

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

func (*IBMVPCClusterSpec) DeepCopyInto

func (in *IBMVPCClusterSpec) DeepCopyInto(out *IBMVPCClusterSpec)

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

type IBMVPCClusterStatus

type IBMVPCClusterStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	VPC VPC `json:"vpc,omitempty"`

	// Ready is true when the provider resource is ready.
	// +optional
	Ready       bool        `json:"ready"`
	Subnet      Subnet      `json:"subnet,omitempty"`
	VPCEndpoint VPCEndpoint `json:"vpcEndpoint,omitempty"`

	// ControlPlaneLoadBalancerState is the status of the load balancer.
	// +optional
	ControlPlaneLoadBalancerState VPCLoadBalancerState `json:"controlPlaneLoadBalancerState,omitempty"`

	// Conditions defines current service state of the load balancer.
	// +optional
	Conditions capiv1beta1.Conditions `json:"conditions,omitempty"`
}

IBMVPCClusterStatus defines the observed state of IBMVPCCluster.

func (*IBMVPCClusterStatus) DeepCopy

func (in *IBMVPCClusterStatus) DeepCopy() *IBMVPCClusterStatus

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

func (*IBMVPCClusterStatus) DeepCopyInto

func (in *IBMVPCClusterStatus) DeepCopyInto(out *IBMVPCClusterStatus)

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

type IBMVPCClusterTemplate added in v0.7.0

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

	Spec IBMVPCClusterTemplateSpec `json:"spec,omitempty"`
}

IBMVPCClusterTemplate is the Schema for the ibmvpcclustertemplates API.

func (*IBMVPCClusterTemplate) DeepCopy added in v0.7.0

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

func (*IBMVPCClusterTemplate) DeepCopyInto added in v0.7.0

func (in *IBMVPCClusterTemplate) DeepCopyInto(out *IBMVPCClusterTemplate)

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

func (*IBMVPCClusterTemplate) DeepCopyObject added in v0.7.0

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

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

type IBMVPCClusterTemplateList added in v0.7.0

type IBMVPCClusterTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IBMVPCClusterTemplate `json:"items"`
}

IBMVPCClusterTemplateList contains a list of IBMVPCClusterTemplate.

func (*IBMVPCClusterTemplateList) DeepCopy added in v0.7.0

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

func (*IBMVPCClusterTemplateList) DeepCopyInto added in v0.7.0

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

func (*IBMVPCClusterTemplateList) DeepCopyObject added in v0.7.0

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

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

type IBMVPCClusterTemplateResource added in v0.7.0

type IBMVPCClusterTemplateResource struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	ObjectMeta capiv1beta1.ObjectMeta `json:"metadata,omitempty"`
	Spec       IBMVPCClusterSpec      `json:"spec"`
}

IBMVPCClusterTemplateResource describes the data needed to create an IBMVPCCluster from a template.

func (*IBMVPCClusterTemplateResource) DeepCopy added in v0.7.0

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

func (*IBMVPCClusterTemplateResource) DeepCopyInto added in v0.7.0

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

type IBMVPCClusterTemplateSpec added in v0.7.0

type IBMVPCClusterTemplateSpec struct {
	Template IBMVPCClusterTemplateResource `json:"template,omitempty"`
}

IBMVPCClusterTemplateSpec defines the desired state of IBMVPCClusterTemplate.

func (*IBMVPCClusterTemplateSpec) DeepCopy added in v0.7.0

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

func (*IBMVPCClusterTemplateSpec) DeepCopyInto added in v0.7.0

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

type IBMVPCMachine

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

	Spec   IBMVPCMachineSpec   `json:"spec,omitempty"`
	Status IBMVPCMachineStatus `json:"status,omitempty"`
}

IBMVPCMachine is the Schema for the ibmvpcmachines API.

func (*IBMVPCMachine) DeepCopy

func (in *IBMVPCMachine) DeepCopy() *IBMVPCMachine

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

func (*IBMVPCMachine) DeepCopyInto

func (in *IBMVPCMachine) DeepCopyInto(out *IBMVPCMachine)

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

func (*IBMVPCMachine) DeepCopyObject

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

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

func (*IBMVPCMachine) Default

func (r *IBMVPCMachine) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*IBMVPCMachine) Hub

func (*IBMVPCMachine) Hub()

func (*IBMVPCMachine) SetupWebhookWithManager

func (r *IBMVPCMachine) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*IBMVPCMachine) ValidateCreate

func (r *IBMVPCMachine) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*IBMVPCMachine) ValidateDelete

func (r *IBMVPCMachine) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*IBMVPCMachine) ValidateUpdate

func (r *IBMVPCMachine) ValidateUpdate(_ runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type IBMVPCMachineList

type IBMVPCMachineList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IBMVPCMachine `json:"items"`
}

IBMVPCMachineList contains a list of IBMVPCMachine.

func (*IBMVPCMachineList) DeepCopy

func (in *IBMVPCMachineList) DeepCopy() *IBMVPCMachineList

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

func (*IBMVPCMachineList) DeepCopyInto

func (in *IBMVPCMachineList) DeepCopyInto(out *IBMVPCMachineList)

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

func (*IBMVPCMachineList) DeepCopyObject

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

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

func (*IBMVPCMachineList) Hub

func (*IBMVPCMachineList) Hub()

type IBMVPCMachineSpec

type IBMVPCMachineSpec struct {

	// Name of the instance.
	Name string `json:"name,omitempty"`

	// Image is the OS image which would be install on the instance.
	// ID will take higher precedence over Name if both specified.
	Image *IBMVPCResourceReference `json:"image"`

	// Zone is the place where the instance should be created. Example: us-south-3
	// TODO: Actually zone is transparent to user. The field user can access is location. Example: Dallas 2
	Zone string `json:"zone"`

	// Profile indicates the flavor of instance. Example: bx2-8x32	means 8 vCPUs	32 GB RAM	16 Gbps
	// TODO: add a reference link of profile
	// +optional
	Profile string `json:"profile,omitempty"`

	// BootVolume contains machines's boot volume configurations like size, iops etc..
	// +optional
	BootVolume *VPCVolume `json:"bootVolume,omitempty"`

	// ProviderID is the unique identifier as specified by the cloud provider.
	// +optional
	ProviderID *string `json:"providerID,omitempty"`

	// PrimaryNetworkInterface is required to specify subnet.
	PrimaryNetworkInterface NetworkInterface `json:"primaryNetworkInterface,omitempty"`

	// SSHKeys is the SSH pub keys that will be used to access VM.
	// ID will take higher precedence over Name if both specified.
	SSHKeys []*IBMVPCResourceReference `json:"sshKeys,omitempty"`
}

IBMVPCMachineSpec defines the desired state of IBMVPCMachine.

func (*IBMVPCMachineSpec) DeepCopy

func (in *IBMVPCMachineSpec) DeepCopy() *IBMVPCMachineSpec

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

func (*IBMVPCMachineSpec) DeepCopyInto

func (in *IBMVPCMachineSpec) DeepCopyInto(out *IBMVPCMachineSpec)

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

type IBMVPCMachineStatus

type IBMVPCMachineStatus struct {
	InstanceID string `json:"instanceID,omitempty"`

	// Ready is true when the provider resource is ready.
	// +optional
	Ready bool `json:"ready"`

	// Addresses contains the GCP instance associated addresses.
	Addresses []corev1.NodeAddress `json:"addresses,omitempty"`

	// InstanceStatus is the status of the GCP instance for this machine.
	// +optional
	InstanceStatus string `json:"instanceState,omitempty"`
}

IBMVPCMachineStatus defines the observed state of IBMVPCMachine.

func (*IBMVPCMachineStatus) DeepCopy

func (in *IBMVPCMachineStatus) DeepCopy() *IBMVPCMachineStatus

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

func (*IBMVPCMachineStatus) DeepCopyInto

func (in *IBMVPCMachineStatus) DeepCopyInto(out *IBMVPCMachineStatus)

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

type IBMVPCMachineTemplate

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

	Spec   IBMVPCMachineTemplateSpec   `json:"spec,omitempty"`
	Status IBMVPCMachineTemplateStatus `json:"status,omitempty"`
}

IBMVPCMachineTemplate is the Schema for the ibmvpcmachinetemplates API.

func (*IBMVPCMachineTemplate) DeepCopy

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

func (*IBMVPCMachineTemplate) DeepCopyInto

func (in *IBMVPCMachineTemplate) DeepCopyInto(out *IBMVPCMachineTemplate)

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

func (*IBMVPCMachineTemplate) DeepCopyObject

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

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

func (*IBMVPCMachineTemplate) Default

func (r *IBMVPCMachineTemplate) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*IBMVPCMachineTemplate) Hub

func (*IBMVPCMachineTemplate) Hub()

func (*IBMVPCMachineTemplate) SetupWebhookWithManager

func (r *IBMVPCMachineTemplate) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*IBMVPCMachineTemplate) ValidateCreate

func (r *IBMVPCMachineTemplate) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*IBMVPCMachineTemplate) ValidateDelete

func (r *IBMVPCMachineTemplate) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*IBMVPCMachineTemplate) ValidateUpdate

func (r *IBMVPCMachineTemplate) ValidateUpdate(_ runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type IBMVPCMachineTemplateList

type IBMVPCMachineTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IBMVPCMachineTemplate `json:"items"`
}

IBMVPCMachineTemplateList contains a list of IBMVPCMachineTemplate.

func (*IBMVPCMachineTemplateList) DeepCopy

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

func (*IBMVPCMachineTemplateList) DeepCopyInto

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

func (*IBMVPCMachineTemplateList) DeepCopyObject

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

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

func (*IBMVPCMachineTemplateList) Hub

type IBMVPCMachineTemplateResource

type IBMVPCMachineTemplateResource struct {
	// Spec is the specification of the desired behavior of the machine.
	Spec IBMVPCMachineSpec `json:"spec"`
}

IBMVPCMachineTemplateResource describes the data needed to create am IBMVPCMachine from a template.

func (*IBMVPCMachineTemplateResource) DeepCopy

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

func (*IBMVPCMachineTemplateResource) DeepCopyInto

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

type IBMVPCMachineTemplateSpec

type IBMVPCMachineTemplateSpec struct {
	Template IBMVPCMachineTemplateResource `json:"template"`
}

IBMVPCMachineTemplateSpec defines the desired state of IBMVPCMachineTemplate.

func (*IBMVPCMachineTemplateSpec) DeepCopy

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

func (*IBMVPCMachineTemplateSpec) DeepCopyInto

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

type IBMVPCMachineTemplateStatus added in v0.8.0

type IBMVPCMachineTemplateStatus struct {
	// Capacity defines the resource capacity for this machine.
	// This value is used for autoscaling from zero operations as defined in:
	// https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20210310-opt-in-autoscaling-from-zero.md
	// +optional
	Capacity corev1.ResourceList `json:"capacity,omitempty"`
}

IBMVPCMachineTemplateStatus defines the observed state of IBMVPCMachineTemplate.

func (*IBMVPCMachineTemplateStatus) DeepCopy added in v0.8.0

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

func (*IBMVPCMachineTemplateStatus) DeepCopyInto added in v0.8.0

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

type IBMVPCResourceReference

type IBMVPCResourceReference struct {
	// ID of resource
	// +kubebuilder:validation:MinLength=1
	// +optional
	ID *string `json:"id,omitempty"`

	// Name of resource
	// +kubebuilder:validation:MinLength=1
	// +optional
	Name *string `json:"name,omitempty"`
}

IBMVPCResourceReference is a reference to a specific VPC resource by ID or Name Only one of ID or Name may be specified. Specifying more than one will result in a validation error.

func (*IBMVPCResourceReference) DeepCopy

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

func (*IBMVPCResourceReference) DeepCopyInto

func (in *IBMVPCResourceReference) DeepCopyInto(out *IBMVPCResourceReference)

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

type Ignition added in v0.8.0

type Ignition struct {
	// Version defines which version of Ignition will be used to generate bootstrap data.
	//
	// +optional
	// +kubebuilder:default="2.3"
	// +kubebuilder:validation:Enum="2.3";"2.4";"3.0";"3.1";"3.2";"3.3";"3.4"
	Version string `json:"version,omitempty"`
}

Ignition defines options related to the bootstrapping systems where Ignition is used.

func (*Ignition) DeepCopy added in v0.8.0

func (in *Ignition) DeepCopy() *Ignition

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

func (*Ignition) DeepCopyInto added in v0.8.0

func (in *Ignition) DeepCopyInto(out *Ignition)

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

type NetworkInterface

type NetworkInterface struct {
	// Subnet ID of the network interface.
	Subnet string `json:"subnet,omitempty"`
}

NetworkInterface holds the network interface information like subnet id.

func (*NetworkInterface) DeepCopy

func (in *NetworkInterface) DeepCopy() *NetworkInterface

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

func (*NetworkInterface) DeepCopyInto

func (in *NetworkInterface) DeepCopyInto(out *NetworkInterface)

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

type PowerVSImageState

type PowerVSImageState string

PowerVSImageState describes the state of an IBM Power VS image.

type PowerVSInstanceState

type PowerVSInstanceState string

PowerVSInstanceState describes the state of an IBM Power VS instance.

type PowerVSProcessorType

type PowerVSProcessorType string

PowerVSProcessorType enum attribute to identify the PowerVS instance processor type.

const (
	// IBMPowerVSMachineFinalizer allows IBMPowerVSMachineReconciler to clean up resources associated with IBMPowerVSMachine before
	// removing it from the apiserver.
	IBMPowerVSMachineFinalizer = "ibmpowervsmachine.infrastructure.cluster.x-k8s.io"
	// PowerVSProcessorTypeDedicated enum property to identify a Dedicated Power VS processor type.
	PowerVSProcessorTypeDedicated PowerVSProcessorType = "Dedicated"
	// PowerVSProcessorTypeShared enum property to identify a Shared Power VS processor type.
	PowerVSProcessorTypeShared PowerVSProcessorType = "Shared"
	// PowerVSProcessorTypeCapped enum property to identify a Capped Power VS processor type.
	PowerVSProcessorTypeCapped PowerVSProcessorType = "Capped"
	// DefaultIgnitionVersion represents default Ignition version generated for machine userdata.
	DefaultIgnitionVersion = "2.3"
)

type ResourceReference added in v0.8.0

type ResourceReference struct {
	// id represents the id of the resource.
	ID *string `json:"id,omitempty"`
	// +kubebuilder:default=false
	// controllerCreated indicates whether the resource is created by the controller.
	ControllerCreated *bool `json:"controllerCreated,omitempty"`
}

ResourceReference identifies a resource with id.

func (*ResourceReference) DeepCopy added in v0.8.0

func (in *ResourceReference) DeepCopy() *ResourceReference

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

func (*ResourceReference) DeepCopyInto added in v0.8.0

func (in *ResourceReference) DeepCopyInto(out *ResourceReference)

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

func (*ResourceReference) Set added in v0.8.0

func (rf *ResourceReference) Set(resource ResourceReference)

Set sets the details of the resource.

type ResourceType added in v0.8.0

type ResourceType string

ResourceType describes IBM Cloud resource name.

type ServiceInstanceState added in v0.8.0

type ServiceInstanceState string

ServiceInstanceState describes the state of a service instance.

type Subnet

type Subnet struct {
	Ipv4CidrBlock *string `json:"cidr,omitempty"`
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Pattern=`^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$`
	Name *string `json:"name,omitempty"`
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength:=64
	// +kubebuilder:validation:Pattern=`^[-0-9a-z_]+$`
	ID   *string `json:"id,omitempty"`
	Zone *string `json:"zone,omitempty"`
}

Subnet describes a subnet.

func (*Subnet) DeepCopy

func (in *Subnet) DeepCopy() *Subnet

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

func (*Subnet) DeepCopyInto

func (in *Subnet) DeepCopyInto(out *Subnet)

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

type TransitGateway added in v0.8.0

type TransitGateway struct {
	// name of resource.
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Pattern=`^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$`
	// +optional
	Name *string `json:"name,omitempty"`
	// id of resource.
	// +optional
	ID *string `json:"id,omitempty"`
	// globalRouting indicates whether to set global routing true or not while creating the transit gateway.
	// set this field to true only when PowerVS and VPC are from different regions, if they are same it's suggested to use local routing by setting the field to false.
	// when the field is omitted,  based on PowerVS region (region associated with IBMPowerVSCluster.Spec.Zone) and VPC region(IBMPowerVSCluster.Spec.VPC.Region) system will decide whether to enable globalRouting or not.
	// +optional
	GlobalRouting *bool `json:"globalRouting,omitempty"`
}

TransitGateway holds the TransitGateway information.

func (*TransitGateway) DeepCopy added in v0.8.0

func (in *TransitGateway) DeepCopy() *TransitGateway

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

func (*TransitGateway) DeepCopyInto added in v0.8.0

func (in *TransitGateway) DeepCopyInto(out *TransitGateway)

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

type TransitGatewayConnectionState added in v0.8.0

type TransitGatewayConnectionState string

TransitGatewayConnectionState describes the state of an IBM Transit Gateway connection.

type TransitGatewayState added in v0.8.0

type TransitGatewayState string

TransitGatewayState describes the state of an IBM Transit Gateway.

type VPC

type VPC struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

VPC holds the VPC information.

func (*VPC) DeepCopy

func (in *VPC) DeepCopy() *VPC

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

func (*VPC) DeepCopyInto

func (in *VPC) DeepCopyInto(out *VPC)

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

type VPCEndpoint

type VPCEndpoint struct {
	Address *string `json:"address"`
	// +optional
	// Deprecated: This field has no function and is going to be removed in the next release.
	FIPID *string `json:"floatingIPID,omitempty"`
	// +optional
	LBID *string `json:"loadBalancerIPID,omitempty"`
}

VPCEndpoint describes a VPCEndpoint.

func (*VPCEndpoint) DeepCopy

func (in *VPCEndpoint) DeepCopy() *VPCEndpoint

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

func (*VPCEndpoint) DeepCopyInto

func (in *VPCEndpoint) DeepCopyInto(out *VPCEndpoint)

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

type VPCLoadBalancerSpec

type VPCLoadBalancerSpec struct {
	// Name sets the name of the VPC load balancer.
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Pattern=`^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$`
	// +optional
	Name string `json:"name,omitempty"`

	// id of the loadbalancer
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength:=64
	// +kubebuilder:validation:Pattern=`^[-0-9a-z_]+$`
	// +optional
	ID *string `json:"id,omitempty"`

	// public indicates that load balancer is public or private
	// +kubebuilder:default=true
	// +optional
	Public *bool `json:"public,omitempty"`

	// AdditionalListeners sets the additional listeners for the control plane load balancer.
	// +listType=map
	// +listMapKey=port
	// +optional
	AdditionalListeners []AdditionalListenerSpec `json:"additionalListeners,omitempty"`
}

VPCLoadBalancerSpec defines the desired state of an VPC load balancer.

func (*VPCLoadBalancerSpec) DeepCopy

func (in *VPCLoadBalancerSpec) DeepCopy() *VPCLoadBalancerSpec

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

func (*VPCLoadBalancerSpec) DeepCopyInto

func (in *VPCLoadBalancerSpec) DeepCopyInto(out *VPCLoadBalancerSpec)

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

type VPCLoadBalancerState

type VPCLoadBalancerState string

VPCLoadBalancerState describes the state of the load balancer.

type VPCLoadBalancerStatus added in v0.8.0

type VPCLoadBalancerStatus struct {
	// id of VPC load balancer.
	// +optional
	ID *string `json:"id,omitempty"`
	// State is the status of the load balancer.
	State VPCLoadBalancerState `json:"state,omitempty"`
	// hostname is the hostname of load balancer.
	// +optional
	Hostname *string `json:"hostname,omitempty"`
	// +kubebuilder:default=false
	// controllerCreated indicates whether the resource is created by the controller.
	ControllerCreated *bool `json:"controllerCreated,omitempty"`
}

VPCLoadBalancerStatus defines the status VPC load balancer.

func (*VPCLoadBalancerStatus) DeepCopy added in v0.8.0

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

func (*VPCLoadBalancerStatus) DeepCopyInto added in v0.8.0

func (in *VPCLoadBalancerStatus) DeepCopyInto(out *VPCLoadBalancerStatus)

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

type VPCResourceReference added in v0.8.0

type VPCResourceReference struct {
	// id of resource.
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength:=64
	// +kubebuilder:validation:Pattern=`^[-0-9a-z_]+$`
	// +optional
	ID *string `json:"id,omitempty"`

	// name of resource.
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Pattern=`^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$`
	// +optional
	Name *string `json:"name,omitempty"`

	// region of IBM Cloud VPC.
	// when powervs.cluster.x-k8s.io/create-infra=true annotation is set on IBMPowerVSCluster resource,
	// it is expected to set the region, not setting will result in webhook error.
	Region *string `json:"region,omitempty"`
}

VPCResourceReference is a reference to a specific VPC resource by ID or Name Only one of ID or Name may be specified. Specifying more than one will result in a validation error.

func (*VPCResourceReference) DeepCopy added in v0.8.0

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

func (*VPCResourceReference) DeepCopyInto added in v0.8.0

func (in *VPCResourceReference) DeepCopyInto(out *VPCResourceReference)

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

type VPCSecurityGroup added in v0.8.0

type VPCSecurityGroup struct {
	// id of the Security Group.
	// +optional
	ID *string `json:"id,omitempty"`

	// name of the Security Group.
	// +optional
	Name *string `json:"name,omitempty"`

	// rules are the Security Group Rules for the Security Group.
	// +optional
	Rules []*VPCSecurityGroupRule `json:"rules,omitempty"`

	// tags are tags to add to the Security Group.
	// +optional
	Tags []*string `json:"tags,omitempty"`
}

VPCSecurityGroup defines a VPC Security Group that should exist or be created within the specified VPC, with the specified Security Group Rules. +kubebuilder:validation:XValidation:rule="has(self.id) || has(self.name)",message="either an id or name must be specified"

func (*VPCSecurityGroup) DeepCopy added in v0.8.0

func (in *VPCSecurityGroup) DeepCopy() *VPCSecurityGroup

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

func (*VPCSecurityGroup) DeepCopyInto added in v0.8.0

func (in *VPCSecurityGroup) DeepCopyInto(out *VPCSecurityGroup)

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

type VPCSecurityGroupPortRange added in v0.8.0

type VPCSecurityGroupPortRange struct {
	// maximumPort is the inclusive upper range of ports.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	MaximumPort int64 `json:"maximumPort,omitempty"`

	// minimumPort is the inclusive lower range of ports.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	MinimumPort int64 `json:"minimumPort,omitempty"`
}

VPCSecurityGroupPortRange represents a range of ports, minimum to maximum. +kubebuilder:validation:XValidation:rule="self.maximumPort >= self.minimumPort",message="maximum port must be greater than or equal to minimum port"

func (*VPCSecurityGroupPortRange) DeepCopy added in v0.8.0

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

func (*VPCSecurityGroupPortRange) DeepCopyInto added in v0.8.0

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

type VPCSecurityGroupRule added in v0.8.0

type VPCSecurityGroupRule struct {
	// action defines whether to allow or deny traffic defined by the Security Group Rule.
	// +required
	Action VPCSecurityGroupRuleAction `json:"action"`

	// destination is a VPCSecurityGroupRulePrototype which defines the destination of outbound traffic for the Security Group Rule.
	// Only used when direction is VPCSecurityGroupRuleDirectionOutbound.
	// +optional
	Destination *VPCSecurityGroupRulePrototype `json:"destination,omitempty"`

	// direction defines whether the traffic is inbound or outbound for the Security Group Rule.
	// +required
	Direction VPCSecurityGroupRuleDirection `json:"direction"`

	// securityGroupID is the ID of the Security Group for the Security Group Rule.
	// +optional
	SecurityGroupID *string `json:"securityGroupID,omitempty"`

	// source is a VPCSecurityGroupRulePrototype which defines the source of inbound traffic for the Security Group Rule.
	// Only used when direction is VPCSecurityGroupRuleDirectionInbound.
	// +optional
	Source *VPCSecurityGroupRulePrototype `json:"source,omitempty"`
}

VPCSecurityGroupRule defines a VPC Security Group Rule for a specified Security Group. +kubebuilder:validation:XValidation:rule="(has(self.destination) && !has(self.source)) || (!has(self.destination) && has(self.source))",message="both destination and source cannot be provided" +kubebuilder:validation:XValidation:rule="self.direction == 'inbound' ? has(self.source) : true",message="source must be set for VPCSecurityGroupRuleDirectionInbound direction" +kubebuilder:validation:XValidation:rule="self.direction == 'inbound' ? !has(self.destination) : true",message="destination is not valid for VPCSecurityGroupRuleDirectionInbound direction" +kubebuilder:validation:XValidation:rule="self.direction == 'outbound' ? has(self.destination) : true",message="destination must be set for VPCSecurityGroupRuleDirectionOutbound direction" +kubebuilder:validation:XValidation:rule="self.direction == 'outbound' ? !has(self.source) : true",message="source is not valid for VPCSecurityGroupRuleDirectionOutbound direction"

func (*VPCSecurityGroupRule) DeepCopy added in v0.8.0

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

func (*VPCSecurityGroupRule) DeepCopyInto added in v0.8.0

func (in *VPCSecurityGroupRule) DeepCopyInto(out *VPCSecurityGroupRule)

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

type VPCSecurityGroupRuleAction added in v0.8.0

type VPCSecurityGroupRuleAction string

VPCSecurityGroupRuleAction represents the actions for a Security Group Rule. +kubebuilder:validation:Enum=allow;deny

const (
	// VPCSecurityGroupRuleActionAllow defines that the Rule should allow traffic.
	VPCSecurityGroupRuleActionAllow VPCSecurityGroupRuleAction = vpcv1.NetworkACLRuleActionAllowConst
	// VPCSecurityGroupRuleActionDeny defines that the Rule should deny traffic.
	VPCSecurityGroupRuleActionDeny VPCSecurityGroupRuleAction = vpcv1.NetworkACLRuleActionDenyConst
)

type VPCSecurityGroupRuleDirection added in v0.8.0

type VPCSecurityGroupRuleDirection string

VPCSecurityGroupRuleDirection represents the directions for a Security Group Rule. +kubebuilder:validation:Enum=inbound;outbound

const (
	// VPCSecurityGroupRuleDirectionInbound defines the Rule is for inbound traffic.
	VPCSecurityGroupRuleDirectionInbound VPCSecurityGroupRuleDirection = vpcv1.NetworkACLRuleDirectionInboundConst
	// VPCSecurityGroupRuleDirectionOutbound defines the Rule is for outbound traffic.
	VPCSecurityGroupRuleDirectionOutbound VPCSecurityGroupRuleDirection = vpcv1.NetworkACLRuleDirectionOutboundConst
)

type VPCSecurityGroupRuleProtocol added in v0.8.0

type VPCSecurityGroupRuleProtocol string

VPCSecurityGroupRuleProtocol represents the protocols for a Security Group Rule. +kubebuilder:validation:Enum=all;icmp;tcp;udp

const (
	// VPCSecurityGroupRuleProtocolAll defines the Rule is for all network protocols.
	VPCSecurityGroupRuleProtocolAll VPCSecurityGroupRuleProtocol = vpcv1.NetworkACLRuleProtocolAllConst
	// VPCSecurityGroupRuleProtocolIcmp defiens the Rule is for ICMP network protocol.
	VPCSecurityGroupRuleProtocolIcmp VPCSecurityGroupRuleProtocol = vpcv1.NetworkACLRuleProtocolIcmpConst
	// VPCSecurityGroupRuleProtocolTCP defines the Rule is for TCP network protocol.
	VPCSecurityGroupRuleProtocolTCP VPCSecurityGroupRuleProtocol = vpcv1.NetworkACLRuleProtocolTCPConst
	// VPCSecurityGroupRuleProtocolUDP defines the Rule is for UDP network protocol.
	VPCSecurityGroupRuleProtocolUDP VPCSecurityGroupRuleProtocol = vpcv1.NetworkACLRuleProtocolUDPConst
)

type VPCSecurityGroupRulePrototype added in v0.8.0

type VPCSecurityGroupRulePrototype struct {
	// icmpCode is the ICMP code for the Rule.
	// Only used when Protocol is VPCSecurityGroupRuleProtocolIcmp.
	// +optional
	ICMPCode *int64 `json:"icmpCode,omitempty"`

	// icmpType is the ICMP type for the Rule.
	// Only used when Protocol is VPCSecurityGroupRuleProtocolIcmp.
	// +optional
	ICMPType *int64 `json:"icmpType,omitempty"`

	// portRange is a range of ports allowed for the Rule's remote.
	// +optional
	PortRange *VPCSecurityGroupPortRange `json:"portRange,omitempty"`

	// protocol defines the traffic protocol used for the Security Group Rule.
	// +required
	Protocol VPCSecurityGroupRuleProtocol `json:"protocol"`

	// remotes is a set of VPCSecurityGroupRuleRemote's that define the traffic allowed by the Rule's remote.
	// Specifying multiple VPCSecurityGroupRuleRemote's creates a unique Security Group Rule with the shared Protocol, PortRange, etc.
	// This allows for easier management of Security Group Rule's for sets of CIDR's, IP's, etc.
	Remotes []VPCSecurityGroupRuleRemote `json:"remotes"`
}

VPCSecurityGroupRulePrototype defines a VPC Security Group Rule's traffic specifics for a series of remotes (destinations or sources). +kubebuilder:validation:XValidation:rule="self.protocol != 'icmp' ? (!has(self.icmpCode) && !has(self.icmpType)) : true",message="icmpCode and icmpType are only supported for VPCSecurityGroupRuleProtocolIcmp protocol" +kubebuilder:validation:XValidation:rule="self.protocol == 'all' ? !has(self.portRange) : true",message="portRange is not valid for VPCSecurityGroupRuleProtocolAll protocol" +kubebuilder:validation:XValidation:rule="self.protocol == 'icmp' ? !has(self.portRange) : true",message="portRange is not valid for VPCSecurityGroupRuleProtocolIcmp protocol"

func (*VPCSecurityGroupRulePrototype) DeepCopy added in v0.8.0

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

func (*VPCSecurityGroupRulePrototype) DeepCopyInto added in v0.8.0

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

type VPCSecurityGroupRuleRemote added in v0.8.0

type VPCSecurityGroupRuleRemote struct {
	// cidrSubnetName is the name of the VPC Subnet to retrieve the CIDR from, to use for the remote's destination/source.
	// Only used when remoteType is VPCSecurityGroupRuleRemoteTypeCIDR.
	// +optional
	CIDRSubnetName *string `json:"cidrSubnetName,omitempty"`

	//  address is the address to use for the remote's destination/source.
	// Only used when remoteType is VPCSecurityGroupRuleRemoteTypeAddress.
	// +optional
	Address *string `json:"address,omitempty"`

	// remoteType defines the type of filter to define for the remote's destination/source.
	// +required
	RemoteType VPCSecurityGroupRuleRemoteType `json:"remoteType"`

	// securityGroupName is the name of the VPC Security Group to use for the remote's destination/source.
	// Only used when remoteType is VPCSecurityGroupRuleRemoteTypeSG
	// +optional
	SecurityGroupName *string `json:"securityGroupName,omitempty"`
}

VPCSecurityGroupRuleRemote defines a VPC Security Group Rule's remote details. The type of remote defines the additional remote details where are used for defining the remote. +kubebuilder:validation:XValidation:rule="self.remoteType == 'any' ? (!has(self.cidrSubnetName) && !has(self.address) && !has(self.securityGroupName)) : true",message="cidrSubnetName, addresss, and securityGroupName are not valid for VPCSecurityGroupRuleRemoteTypeAny remoteType" +kubebuilder:validation:XValidation:rule="self.remoteType == 'cidr' ? (has(self.cidrSubnetName) && !has(self.address) && !has(self.securityGroupName)) : true",message="only cidrSubnetName is valid for VPCSecurityGroupRuleRemoteTypeCIDR remoteType" +kubebuilder:validation:XValidation:rule="self.remoteType == 'address' ? (has(self.address) && !has(self.cidrSubnetName) && !has(self.securityGroupName)) : true",message="only address is valid for VPCSecurityGroupRuleRemoteTypeIP remoteType" +kubebuilder:validation:XValidation:rule="self.remoteType == 'sg' ? (has(self.securityGroupName) && !has(self.cidrSubnetName) && !has(self.address)) : true",message="only securityGroupName is valid for VPCSecurityGroupRuleRemoteTypeSG remoteType"

func (*VPCSecurityGroupRuleRemote) DeepCopy added in v0.8.0

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

func (*VPCSecurityGroupRuleRemote) DeepCopyInto added in v0.8.0

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

type VPCSecurityGroupRuleRemoteType added in v0.8.0

type VPCSecurityGroupRuleRemoteType string

VPCSecurityGroupRuleRemoteType represents the type of Security Group Rule's destination or source is intended. This is intended to define the VPCSecurityGroupRulePrototype subtype. For example: - any - Any source or destination (0.0.0.0/0) - cidr - A CIDR representing a set of IP's (10.0.0.0/28) - address - A specific address (192.168.0.1) - sg - A Security Group. +kubebuilder:validation:Enum=any;cidr;address;sg

const (
	// VPCSecurityGroupRuleRemoteTypeAny defines the destination or source for the Rule is anything/anywhere.
	VPCSecurityGroupRuleRemoteTypeAny VPCSecurityGroupRuleRemoteType = VPCSecurityGroupRuleRemoteType("any")
	// VPCSecurityGroupRuleRemoteTypeCIDR defines the destination or source for the Rule is a CIDR block.
	VPCSecurityGroupRuleRemoteTypeCIDR VPCSecurityGroupRuleRemoteType = VPCSecurityGroupRuleRemoteType("cidr")
	// VPCSecurityGroupRuleRemoteTypeAddress defines the destination or source for the Rule is an address.
	VPCSecurityGroupRuleRemoteTypeAddress VPCSecurityGroupRuleRemoteType = VPCSecurityGroupRuleRemoteType("address")
	// VPCSecurityGroupRuleRemoteTypeSG defines the destination or source for the Rule is a VPC Security Group.
	VPCSecurityGroupRuleRemoteTypeSG VPCSecurityGroupRuleRemoteType = VPCSecurityGroupRuleRemoteType("sg")
)

type VPCSecurityGroupStatus added in v0.8.0

type VPCSecurityGroupStatus struct {
	// id represents the id of the resource.
	ID *string `json:"id,omitempty"`
	// rules contains the id of rules created under the security group
	RuleIDs []*string `json:"ruleIDs,omitempty"`
	// +kubebuilder:default=false
	// controllerCreated indicates whether the resource is created by the controller.
	ControllerCreated *bool `json:"controllerCreated,omitempty"`
}

VPCSecurityGroupStatus defines a vpc security group resource status with its id and respective rule's ids.

func (*VPCSecurityGroupStatus) DeepCopy added in v0.8.0

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

func (*VPCSecurityGroupStatus) DeepCopyInto added in v0.8.0

func (in *VPCSecurityGroupStatus) DeepCopyInto(out *VPCSecurityGroupStatus)

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

type VPCState added in v0.8.0

type VPCState string

VPCState describes the state of a VPC.

type VPCSubnetState added in v0.8.0

type VPCSubnetState string

VPCSubnetState describes the state of a VPC Subnet.

type VPCVolume

type VPCVolume struct {
	// DeleteVolumeOnInstanceDelete If set to true, when deleting the instance the volume will also be deleted.
	// Default is set as true
	// +kubebuilder:default=true
	// +optional
	DeleteVolumeOnInstanceDelete bool `json:"deleteVolumeOnInstanceDelete,omitempty"`

	// Name is the unique user-defined name for this volume.
	// Default will be autogenerated
	// +optional
	Name string `json:"name,omitempty"`

	// SizeGiB is the size of the virtual server's boot disk in GiB.
	// Default to the size of the image's `minimum_provisioned_size`.
	// +optional
	SizeGiB int64 `json:"sizeGiB,omitempty"`

	// Profile is the volume profile for the bootdisk, refer https://cloud.ibm.com/docs/vpc?topic=vpc-block-storage-profiles
	// for more information.
	// Default to general-purpose
	// +kubebuilder:validation:Enum="general-purpose";"5iops-tier";"10iops-tier";"custom"
	// +kubebuilder:default=general-purpose
	// +optional
	Profile string `json:"profile,omitempty"`

	// Iops is the maximum I/O operations per second (IOPS) to use for the volume. Applicable only to volumes using a profile
	// family of `custom`.
	// +optional
	Iops int64 `json:"iops,omitempty"`

	// EncryptionKey is the root key to use to wrap the data encryption key for the volume and this points to the CRN
	// and possible values are as follows.
	// The CRN of the [Key Protect Root
	// Key](https://cloud.ibm.com/docs/key-protect?topic=key-protect-getting-started-tutorial) or [Hyper Protect Crypto
	// Service Root Key](https://cloud.ibm.com/docs/hs-crypto?topic=hs-crypto-get-started) for this resource.
	// If unspecified, the `encryption` type for the volume will be `provider_managed`.
	// +optional
	EncryptionKeyCRN string `json:"encryptionKeyCRN,omitempty"`
}

VPCVolume defines the volume information for the instance.

func (*VPCVolume) DeepCopy

func (in *VPCVolume) DeepCopy() *VPCVolume

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

func (*VPCVolume) DeepCopyInto

func (in *VPCVolume) DeepCopyInto(out *VPCVolume)

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

Jump to

Keyboard shortcuts

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