Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the infrastructure v1alpha1 API group. +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
Index ¶
- Constants
- Variables
- type ElasticIPPool
- type HuaweiCloudCluster
- func (in *HuaweiCloudCluster) DeepCopy() *HuaweiCloudCluster
- func (in *HuaweiCloudCluster) DeepCopyInto(out *HuaweiCloudCluster)
- func (in *HuaweiCloudCluster) DeepCopyObject() runtime.Object
- func (r *HuaweiCloudCluster) GetConditions() clusterv1.Conditions
- func (r *HuaweiCloudCluster) SetConditions(conditions clusterv1.Conditions)
- type HuaweiCloudClusterList
- type HuaweiCloudClusterSpec
- type HuaweiCloudClusterStatus
- type HuaweiCloudMachine
- func (in *HuaweiCloudMachine) DeepCopy() *HuaweiCloudMachine
- func (in *HuaweiCloudMachine) DeepCopyInto(out *HuaweiCloudMachine)
- func (in *HuaweiCloudMachine) DeepCopyObject() runtime.Object
- func (r *HuaweiCloudMachine) GetConditions() clusterv1.Conditions
- func (r *HuaweiCloudMachine) SetConditions(conditions clusterv1.Conditions)
- type HuaweiCloudMachineList
- type HuaweiCloudMachineSpec
- type HuaweiCloudMachineStatus
- type HuaweiCloudMachineTemplate
- type HuaweiCloudMachineTemplateList
- type HuaweiCloudMachineTemplateResource
- type HuaweiCloudMachineTemplateSpec
- type HuaweiCloudMachineTemplateStatus
- type HuaweiCloudResourceReference
- type IngressRule
- type IngressRules
- type Instance
- type InstanceState
- type ListenerRef
- type LoadBalancer
- type NetworkSpec
- type NetworkStatus
- type PoolRef
- type SecurityGroup
- type SecurityGroupProtocol
- type SecurityGroupRole
- type SecurityGroupRule
- type SubnetSpec
- type Subnets
- type VPCSpec
- type Volume
- type VolumeType
Constants ¶
const ( // InstanceReadyCondition reports on current status of the ECS instance. Ready indicates the instance is in a Running state. InstanceReadyCondition clusterv1.ConditionType = "InstanceReady" // InstanceNotFoundReason used when the instance couldn't be retrieved. InstanceNotFoundReason = "InstanceNotFound" // InstanceTerminatedReason instance is in a terminated state. InstanceTerminatedReason = "InstanceTerminated" // InstanceStoppedReason instance is in a stopped state. InstanceStoppedReason = "InstanceStopped" // InstanceNotReadyReason used when the instance is in a pending state. InstanceNotReadyReason = "InstanceNotReady" // InstanceProvisionStartedReason set when the provisioning of an instance started. InstanceProvisionStartedReason = "InstanceProvisionStarted" // 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" )
const ( // SecurityGroupsReadyCondition indicates the security groups are up to date on the HuaweiCloudMachine. SecurityGroupsReadyCondition clusterv1.ConditionType = "SecurityGroupsReady" // SecurityGroupsFailedReason used when the security groups could not be synced. SecurityGroupsFailedReason = "SecurityGroupsSyncFailed" )
const ( // VpcReadyCondition reports on the successful reconciliation of a VPC. VpcReadyCondition clusterv1.ConditionType = "VpcReady" // VpcCreationStartedReason used when attempting to create a VPC for a managed cluster. // Will not be applied to unmanaged clusters. VpcCreationStartedReason = "VpcCreationStarted" // VpcReconciliationFailedReason used when errors occur during VPC reconciliation. VpcReconciliationFailedReason = "VpcReconciliationFailed" )
const ( // SubnetsReadyCondition reports on the successful reconciliation of subnets. SubnetsReadyCondition clusterv1.ConditionType = "SubnetsReady" // SubnetsReconciliationFailedReason used to report failures while reconciling subnets. SubnetsReconciliationFailedReason = "SubnetsReconciliationFailed" )
const ( // ClusterSecurityGroupsReadyCondition reports successful reconciliation of security groups. ClusterSecurityGroupsReadyCondition clusterv1.ConditionType = "ClusterSecurityGroupsReady" // ClusterSecurityGroupReconciliationFailedReason used when any errors occur during reconciliation of security groups. ClusterSecurityGroupReconciliationFailedReason = "SecurityGroupReconciliationFailed" )
const ( // LoadBalancerReadyCondition reports on whether a control plane load balancer was successfully reconciled. LoadBalancerReadyCondition clusterv1.ConditionType = "LoadBalancerReady" // LoadBalancerFailedReason used when an error occurs during load balancer reconciliation. LoadBalancerFailedReason = "LoadBalancerFailed" )
const ( // NatGatewaysReadyCondition reports successful reconciliation of NAT gateways. // Only applicable to managed clusters. NatGatewaysReadyCondition clusterv1.ConditionType = "NatGatewaysReady" // NatGatewaysCreationStartedReason set once when creating new NAT gateways. NatGatewaysCreationStartedReason = "NatGatewaysCreationStarted" // NatGatewaysReconciliationFailedReason used when any errors occur during reconciliation of NAT gateways. NatGatewaysReconciliationFailedReason = "NatGatewaysReconciliationFailed" )
const (
ClusterFinalizer = "huaweicloudcluster.infrastructure.cluster.x-k8s.io"
)
const ( // MachineFinalizer allows HuaweiCloudMachineReconciler to clean up HuaweiCloud resources associated with HuaweiCloudMachine before // removing it from the apiserver. MachineFinalizer = "huaweicloudmachine.infrastructure.cluster.x-k8s.io" )
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1alpha1"} // 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 )
var ( // SecurityGroupProtocolAll is a wildcard for all IP protocols. SecurityGroupProtocolAll = SecurityGroupProtocol("-1") // SecurityGroupProtocolIPinIP represents the IP in IP protocol in ingress rules. SecurityGroupProtocolIPinIP = SecurityGroupProtocol("4") // SecurityGroupProtocolTCP represents the TCP protocol in ingress rules. SecurityGroupProtocolTCP = SecurityGroupProtocol("tcp") // SecurityGroupProtocolUDP represents the UDP protocol in ingress rules. SecurityGroupProtocolUDP = SecurityGroupProtocol("udp") // SecurityGroupProtocolICMP represents the ICMP protocol in ingress rules. SecurityGroupProtocolICMP = SecurityGroupProtocol("icmp") // SecurityGroupProtocolICMPv6 represents the ICMPv6 protocol in ingress rules. SecurityGroupProtocolICMPv6 = SecurityGroupProtocol("58") // SecurityGroupProtocolESP represents the ESP protocol in ingress rules. SecurityGroupProtocolESP = SecurityGroupProtocol("50") )
var ( // SecurityGroupNode defines a Kubernetes workload node role. SecurityGroupNode = SecurityGroupRole("node") // SecurityGroupControlPlane defines a Kubernetes control plane node role. SecurityGroupControlPlane = SecurityGroupRole("controlplane") // SecurityGroupAPIServerLB defines a Kubernetes API Server Load Balancer role. SecurityGroupAPIServerLB = SecurityGroupRole("apiserver-lb") // SecurityGroupLB defines a container for the cloud provider to inject its load balancer ingress rules. SecurityGroupLB = SecurityGroupRole("lb") )
var ( // InstanceStatePending is the string representing an instance in a pending state. InstanceStatePending = InstanceState("pending") // InstanceStateRunning is the string representing an instance in a running state. InstanceStateRunning = InstanceState("running") // InstanceStateShuttingDown is the string representing an instance shutting down. InstanceStateShuttingDown = InstanceState("shutting-down") // InstanceStateTerminated is the string representing an instance that has been terminated. InstanceStateTerminated = InstanceState("terminated") // InstanceStateStopping is the string representing an instance // that is in the process of being stopped and can be restarted. InstanceStateStopping = InstanceState("stopping") // InstanceStateStopped is the string representing an instance // that has been stopped and can be restarted. InstanceStateStopped = InstanceState("stopped") // InstanceRunningStates defines the set of states in which an ECS instance is // running or going to be running soon. InstanceRunningStates = sets.NewString( string(InstanceStatePending), string(InstanceStateRunning), ) // InstanceOperationalStates defines the set of states in which an ECS instance is // or can return to running, and supports all ECS operations. InstanceOperationalStates = InstanceRunningStates.Union( sets.NewString( string(InstanceStateStopping), string(InstanceStateStopped), ), ) // InstanceKnownStates represents all known ECS instance states. InstanceKnownStates = InstanceOperationalStates.Union( sets.NewString( string(InstanceStateShuttingDown), string(InstanceStateTerminated), ), ) )
var VolumeTypeGPSSD = VolumeType("gpssd")
VolumeTypeGPSSD is the string representing a general purpose ssd volume.
Functions ¶
This section is empty.
Types ¶
type ElasticIPPool ¶
type ElasticIPPool struct {
// PublicIpv4Pool is ID of the Public IPv4 Pool. It sets a custom Public IPv4 Pool used to create
// Elastic IP address for resources created in public IPv4 subnets. Every IPv4 address, Elastic IP,
// will be allocated from the custom Public IPv4 pool that you brought to ECS, instead of
// Amazon-provided pool.
//
// +kubebuilder:validation:MaxLength=30
// +optional
PublicIpv4Pool *string `json:"publicIpv4Pool,omitempty"`
}
ElasticIPPool allows configuring a Elastic IP pool for resources allocating public IPv4 addresses on public subnets.
func (*ElasticIPPool) DeepCopy ¶
func (in *ElasticIPPool) DeepCopy() *ElasticIPPool
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticIPPool.
func (*ElasticIPPool) DeepCopyInto ¶
func (in *ElasticIPPool) DeepCopyInto(out *ElasticIPPool)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HuaweiCloudCluster ¶
type HuaweiCloudCluster struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec HuaweiCloudClusterSpec `json:"spec,omitempty"`
Status HuaweiCloudClusterStatus `json:"status,omitempty"`
}
HuaweiCloudCluster is the Schema for the huaweicloudclusters API.
func (*HuaweiCloudCluster) DeepCopy ¶
func (in *HuaweiCloudCluster) DeepCopy() *HuaweiCloudCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudCluster.
func (*HuaweiCloudCluster) DeepCopyInto ¶
func (in *HuaweiCloudCluster) DeepCopyInto(out *HuaweiCloudCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HuaweiCloudCluster) DeepCopyObject ¶
func (in *HuaweiCloudCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*HuaweiCloudCluster) GetConditions ¶
func (r *HuaweiCloudCluster) GetConditions() clusterv1.Conditions
GetConditions returns the HuaweiCloudCluster's conditions.
func (*HuaweiCloudCluster) SetConditions ¶
func (r *HuaweiCloudCluster) SetConditions(conditions clusterv1.Conditions)
SetConditions sets the underlying service state of the HuaweiCloudCluster to the predescribed clusterv1.Conditions.
type HuaweiCloudClusterList ¶
type HuaweiCloudClusterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []HuaweiCloudCluster `json:"items"`
}
HuaweiCloudClusterList contains a list of HuaweiCloudCluster.
func (*HuaweiCloudClusterList) DeepCopy ¶
func (in *HuaweiCloudClusterList) DeepCopy() *HuaweiCloudClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudClusterList.
func (*HuaweiCloudClusterList) DeepCopyInto ¶
func (in *HuaweiCloudClusterList) DeepCopyInto(out *HuaweiCloudClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HuaweiCloudClusterList) DeepCopyObject ¶
func (in *HuaweiCloudClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type HuaweiCloudClusterSpec ¶
type HuaweiCloudClusterSpec struct {
// NetworkSpec encapsulates the configuration options for HuaweiCloud network.
NetworkSpec NetworkSpec `json:"network,omitempty"`
// The ECS Region the cluster lives in.
Region string `json:"region,omitempty"`
// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
// +optional
ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"`
}
HuaweiCloudClusterSpec defines the desired state of HuaweiCloudCluster.
func (*HuaweiCloudClusterSpec) DeepCopy ¶
func (in *HuaweiCloudClusterSpec) DeepCopy() *HuaweiCloudClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudClusterSpec.
func (*HuaweiCloudClusterSpec) DeepCopyInto ¶
func (in *HuaweiCloudClusterSpec) DeepCopyInto(out *HuaweiCloudClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HuaweiCloudClusterStatus ¶
type HuaweiCloudClusterStatus struct {
// +kubebuilder:default=false
Ready bool `json:"ready"`
Network NetworkStatus `json:"networkStatus,omitempty"`
Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}
HuaweiCloudClusterStatus defines the observed state of HuaweiCloudCluster.
func (*HuaweiCloudClusterStatus) DeepCopy ¶
func (in *HuaweiCloudClusterStatus) DeepCopy() *HuaweiCloudClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudClusterStatus.
func (*HuaweiCloudClusterStatus) DeepCopyInto ¶
func (in *HuaweiCloudClusterStatus) DeepCopyInto(out *HuaweiCloudClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HuaweiCloudMachine ¶
type HuaweiCloudMachine struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec HuaweiCloudMachineSpec `json:"spec,omitempty"`
Status HuaweiCloudMachineStatus `json:"status,omitempty"`
}
HuaweiCloudMachine is the Schema for the huaweicloudmachines API.
func (*HuaweiCloudMachine) DeepCopy ¶
func (in *HuaweiCloudMachine) DeepCopy() *HuaweiCloudMachine
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudMachine.
func (*HuaweiCloudMachine) DeepCopyInto ¶
func (in *HuaweiCloudMachine) DeepCopyInto(out *HuaweiCloudMachine)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HuaweiCloudMachine) DeepCopyObject ¶
func (in *HuaweiCloudMachine) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*HuaweiCloudMachine) GetConditions ¶
func (r *HuaweiCloudMachine) GetConditions() clusterv1.Conditions
GetConditions returns the observations of the operational state of the HuaweiCloudMachine resource.
func (*HuaweiCloudMachine) SetConditions ¶
func (r *HuaweiCloudMachine) SetConditions(conditions clusterv1.Conditions)
SetConditions sets the underlying service state of the HuaweiMachine to the predescribed clusterv1.Conditions.
type HuaweiCloudMachineList ¶
type HuaweiCloudMachineList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []HuaweiCloudMachine `json:"items"`
}
HuaweiCloudMachineList contains a list of HuaweiCloudMachine.
func (*HuaweiCloudMachineList) DeepCopy ¶
func (in *HuaweiCloudMachineList) DeepCopy() *HuaweiCloudMachineList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudMachineList.
func (*HuaweiCloudMachineList) DeepCopyInto ¶
func (in *HuaweiCloudMachineList) DeepCopyInto(out *HuaweiCloudMachineList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HuaweiCloudMachineList) DeepCopyObject ¶
func (in *HuaweiCloudMachineList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type HuaweiCloudMachineSpec ¶
type HuaweiCloudMachineSpec struct {
// ProviderID is the unique identifier as specified by the cloud provider.
ProviderID *string `json:"providerID,omitempty"`
// InstanceID is the ECS instance ID for this machine.
InstanceID *string `json:"instanceID,omitempty"`
// 镜像ID或者镜像资源的URL
// ImageRef is the reference from which to create the machine instance.
ImageRef *string `json:"imageRef,omitempty"`
// FlavorRef is similar to instanceType.
// FlavorRef is the type of instance to create. Example: s2.small.1
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength:=2
FlavorRef string `json:"flavorRef"`
// SSHKeyName is the name of the ssh key to attach to the instance. Valid values are empty string (do not use SSH keys), a valid SSH key name, or omitted (use the default SSH key name)
// +optional
SSHKeyName *string `json:"sshKeyName,omitempty"`
// RootVolume encapsulates the configuration options for the root volume
// +optional
RootVolume *Volume `json:"rootVolume,omitempty"`
// PublicIP specifies whether the instance should get a public IP.
// Precedence for this setting is as follows:
// 1. This field if set
// 2. Cluster/flavor setting
// 3. Subnet default
// +optional
PublicIP *bool `json:"publicIP,omitempty"`
// ElasticIPPool is the configuration to allocate Public IPv4 address (Elastic IP/EIP) from user-defined pool.
//
// +optional
ElasticIPPool *ElasticIPPool `json:"elasticIpPool,omitempty"`
// Subnet is a reference to the subnet to use for this instance. If not specified,
// the cluster subnet will be used.
// +optional
Subnet *HuaweiCloudResourceReference `json:"subnet,omitempty"`
}
HuaweiCloudMachineSpec defines the desired state of HuaweiCloudMachine.
func (*HuaweiCloudMachineSpec) DeepCopy ¶
func (in *HuaweiCloudMachineSpec) DeepCopy() *HuaweiCloudMachineSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudMachineSpec.
func (*HuaweiCloudMachineSpec) DeepCopyInto ¶
func (in *HuaweiCloudMachineSpec) DeepCopyInto(out *HuaweiCloudMachineSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HuaweiCloudMachineStatus ¶
type HuaweiCloudMachineStatus struct {
// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
// Important: Run "make" to regenerate code after modifying this file
// Ready is true when the provider resource is ready.
// +optional
Ready bool `json:"ready"`
// Addresses contains the ECS instance associated addresses.
Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`
// InstanceState is the state of the ECS instance for this machine.
// +optional
InstanceState *InstanceState `json:"instanceState,omitempty"`
// +optional
FailureMessage *string `json:"failureMessage,omitempty"`
// +optional
FailureReason *capierrors.MachineStatusError `json:"failureReason,omitempty"`
// Conditions defines current service state of the HuaweiCloudMachine.
// +optional
Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}
HuaweiCloudMachineStatus defines the observed state of HuaweiCloudMachine.
func (*HuaweiCloudMachineStatus) DeepCopy ¶
func (in *HuaweiCloudMachineStatus) DeepCopy() *HuaweiCloudMachineStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudMachineStatus.
func (*HuaweiCloudMachineStatus) DeepCopyInto ¶
func (in *HuaweiCloudMachineStatus) DeepCopyInto(out *HuaweiCloudMachineStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HuaweiCloudMachineTemplate ¶
type HuaweiCloudMachineTemplate struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec HuaweiCloudMachineTemplateSpec `json:"spec,omitempty"`
Status HuaweiCloudMachineTemplateStatus `json:"status,omitempty"`
}
HuaweiCloudMachineTemplate is the Schema for the huaweicloudmachinetemplates API.
func (*HuaweiCloudMachineTemplate) DeepCopy ¶
func (in *HuaweiCloudMachineTemplate) DeepCopy() *HuaweiCloudMachineTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudMachineTemplate.
func (*HuaweiCloudMachineTemplate) DeepCopyInto ¶
func (in *HuaweiCloudMachineTemplate) DeepCopyInto(out *HuaweiCloudMachineTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HuaweiCloudMachineTemplate) DeepCopyObject ¶
func (in *HuaweiCloudMachineTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type HuaweiCloudMachineTemplateList ¶
type HuaweiCloudMachineTemplateList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []HuaweiCloudMachineTemplate `json:"items"`
}
HuaweiCloudMachineTemplateList contains a list of HuaweiCloudMachineTemplate.
func (*HuaweiCloudMachineTemplateList) DeepCopy ¶
func (in *HuaweiCloudMachineTemplateList) DeepCopy() *HuaweiCloudMachineTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudMachineTemplateList.
func (*HuaweiCloudMachineTemplateList) DeepCopyInto ¶
func (in *HuaweiCloudMachineTemplateList) DeepCopyInto(out *HuaweiCloudMachineTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HuaweiCloudMachineTemplateList) DeepCopyObject ¶
func (in *HuaweiCloudMachineTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type HuaweiCloudMachineTemplateResource ¶
type HuaweiCloudMachineTemplateResource struct {
// Standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +optional
ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"`
// Spec is the specification of the desired behavior of the machine.
Spec HuaweiCloudMachineSpec `json:"spec"`
}
HuaweiCloudMachineTemplateResource describes the data needed to create am HuaweiCloudMachine from a template.
func (*HuaweiCloudMachineTemplateResource) DeepCopy ¶
func (in *HuaweiCloudMachineTemplateResource) DeepCopy() *HuaweiCloudMachineTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudMachineTemplateResource.
func (*HuaweiCloudMachineTemplateResource) DeepCopyInto ¶
func (in *HuaweiCloudMachineTemplateResource) DeepCopyInto(out *HuaweiCloudMachineTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HuaweiCloudMachineTemplateSpec ¶
type HuaweiCloudMachineTemplateSpec struct {
Template HuaweiCloudMachineTemplateResource `json:"template"`
}
HuaweiCloudMachineTemplateSpec defines the desired state of HuaweiCloudMachineTemplate.
func (*HuaweiCloudMachineTemplateSpec) DeepCopy ¶
func (in *HuaweiCloudMachineTemplateSpec) DeepCopy() *HuaweiCloudMachineTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudMachineTemplateSpec.
func (*HuaweiCloudMachineTemplateSpec) DeepCopyInto ¶
func (in *HuaweiCloudMachineTemplateSpec) DeepCopyInto(out *HuaweiCloudMachineTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HuaweiCloudMachineTemplateStatus ¶
type HuaweiCloudMachineTemplateStatus struct {
}
HuaweiCloudMachineTemplateStatus defines the observed state of HuaweiCloudMachineTemplate.
func (*HuaweiCloudMachineTemplateStatus) DeepCopy ¶
func (in *HuaweiCloudMachineTemplateStatus) DeepCopy() *HuaweiCloudMachineTemplateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudMachineTemplateStatus.
func (*HuaweiCloudMachineTemplateStatus) DeepCopyInto ¶
func (in *HuaweiCloudMachineTemplateStatus) DeepCopyInto(out *HuaweiCloudMachineTemplateStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HuaweiCloudResourceReference ¶
type HuaweiCloudResourceReference struct {
// ID of resource
// +required
ID *string `json:"id,omitempty"`
}
HuaweiCloudResourceReference is a reference to a specific HuaweiCloud resource by ID.
func (*HuaweiCloudResourceReference) DeepCopy ¶
func (in *HuaweiCloudResourceReference) DeepCopy() *HuaweiCloudResourceReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuaweiCloudResourceReference.
func (*HuaweiCloudResourceReference) DeepCopyInto ¶
func (in *HuaweiCloudResourceReference) DeepCopyInto(out *HuaweiCloudResourceReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngressRule ¶
type IngressRule struct {
// Description provides extended information about the ingress rule.
Description string `json:"description"`
// Protocol is the protocol for the ingress rule. Accepted values are "-1" (all), "4" (IP in IP),"tcp", "udp", "icmp", and "58" (ICMPv6), "50" (ESP).
// +kubebuilder:validation:Enum="-1";"4";tcp;udp;icmp;"58";"50"
Protocol SecurityGroupProtocol `json:"protocol"`
// PortRangeMin is the start of port range.
PortRangeMin int64 `json:"portRangeMin"`
// PortRangeMax is the end of port range.
PortRangeMax int64 `json:"portRangeMax"`
// List of CIDR blocks to allow access from. Cannot be specified with SourceSecurityGroupID.
// +optional
CidrBlocks []string `json:"cidrBlocks,omitempty"`
// List of IPv6 CIDR blocks to allow access from. Cannot be specified with SourceSecurityGroupID.
// +optional
IPv6CidrBlocks []string `json:"ipv6CidrBlocks,omitempty"`
// The security group id to allow access from. Cannot be specified with CidrBlocks.
// +optional
SourceSecurityGroupIDs []string `json:"sourceSecurityGroupIds,omitempty"`
// The security group role to allow access from. Cannot be specified with CidrBlocks.
// The field will be combined with source security group IDs if specified.
// +optional
SourceSecurityGroupRoles []SecurityGroupRole `json:"sourceSecurityGroupRoles,omitempty"`
// NatGatewaysIPsSource use the NAT gateways IPs as the source for the ingress rule.
// +optional
NatGatewaysIPsSource bool `json:"natGatewaysIPsSource,omitempty"`
}
IngressRule defines an HuaweiCloud ECS ingress rule for security groups.
func (*IngressRule) DeepCopy ¶
func (in *IngressRule) DeepCopy() *IngressRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRule.
func (*IngressRule) DeepCopyInto ¶
func (in *IngressRule) DeepCopyInto(out *IngressRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IngressRule) Equals ¶
func (i *IngressRule) Equals(o *IngressRule) bool
Equals returns true if two IngressRule are equal.
type IngressRules ¶
type IngressRules []IngressRule
IngressRules is a slice of HuaweiCloud ECS ingress rules for security groups.
func (IngressRules) DeepCopy ¶
func (in IngressRules) DeepCopy() IngressRules
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRules.
func (IngressRules) DeepCopyInto ¶
func (in IngressRules) DeepCopyInto(out *IngressRules)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (IngressRules) Difference ¶
func (i IngressRules) Difference(o IngressRules) (out IngressRules)
Difference returns the difference between this slice and the other slice.
type Instance ¶
type Instance struct {
ID string `json:"id"`
// The current state of the instance.
State InstanceState `json:"instanceState,omitempty"`
// The instance type.
Type string `json:"type,omitempty"`
// The ID of the subnet of the instance.
SubnetID string `json:"subnetId,omitempty"`
// The ID of the AMI used to launch the instance.
ImageID string `json:"imageId,omitempty"`
// The name of the SSH key pair.
SSHKeyName *string `json:"sshKeyName,omitempty"`
// SecurityGroupIDs are one or more security group IDs this instance belongs to.
SecurityGroupIDs []string `json:"securityGroupIds,omitempty"`
// UserData is the raw data script passed to the instance which is run upon bootstrap.
// This field must not be base64 encoded and should only be used when running a new instance.
UserData *string `json:"userData,omitempty"`
// The private IPv4 address assigned to the instance.
PrivateIP *string `json:"privateIp,omitempty"`
// The public IPv4 address assigned to the instance, if applicable.
PublicIP *string `json:"publicIp,omitempty"`
// Configuration options for the root storage volume.
// +optional
RootVolume *Volume `json:"rootVolume,omitempty"`
// Configuration options for the data storage volumes.
// +optional
DataVolumes []Volume `json:"dataVolumes,omitempty"`
// Addresses contains the ECS instance associated addresses.
Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`
// Availability zone of instance
AvailabilityZone string `json:"availabilityZone,omitempty"`
// PublicIPOnLaunch is the option to associate a public IP on instance launch
// +optional
PublicIPOnLaunch *bool `json:"publicIPOnLaunch,omitempty"`
}
Instance describes an HuaweiCloud ECS instance.
func (*Instance) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Instance.
func (*Instance) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstanceState ¶
type InstanceState string
InstanceState describes the state of an ECS instance.
type ListenerRef ¶
type ListenerRef struct {
// Id is the unique identifier of the listener.
Id string `json:"id"`
}
func (*ListenerRef) DeepCopy ¶
func (in *ListenerRef) DeepCopy() *ListenerRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerRef.
func (*ListenerRef) DeepCopyInto ¶
func (in *ListenerRef) DeepCopyInto(out *ListenerRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancer ¶
type LoadBalancer struct {
// Id is the unique identifier of the loadbalancer.
Id string `json:"id"`
// Name is the name of the load balancer.
Name string `json:"name"`
// Pools is a list of pool references associated with the load balancer.
Pools []PoolRef `json:"pools"`
// Listeners is a list of listener references associated with the load balancer.
Listeners []ListenerRef `json:"listeners"`
}
LoadBalancer defines an HuaweiCloud load balancer.
func (*LoadBalancer) DeepCopy ¶
func (in *LoadBalancer) DeepCopy() *LoadBalancer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer.
func (*LoadBalancer) DeepCopyInto ¶
func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkSpec ¶
type NetworkSpec struct {
// VPC configuration.
// +optional
VPC VPCSpec `json:"vpc,omitempty"`
// Subnets configuration.
// +optional
Subnets Subnets `json:"subnets,omitempty"`
}
NetworkSpec encapsulates the configuration options for HuaweiCloud network.
func (*NetworkSpec) DeepCopy ¶
func (in *NetworkSpec) DeepCopy() *NetworkSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSpec.
func (*NetworkSpec) DeepCopyInto ¶
func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkStatus ¶
type NetworkStatus struct {
// SecurityGroups is a map from the role/kind of the security group to its unique name, if any.
SecurityGroups map[SecurityGroupRole]SecurityGroup `json:"securityGroups,omitempty"`
// ELB is the Elastic Load Balancer associated with the cluster.
ELB LoadBalancer `json:"elb,omitempty"`
// NatGatewaysIPs contains the public IPs of the NAT Gateways
NatGatewaysIPs []string `json:"natGatewaysIPs,omitempty"`
}
NetworkStatus encapsulates HuaweiCloud networking resources.
func (*NetworkStatus) DeepCopy ¶
func (in *NetworkStatus) DeepCopy() *NetworkStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkStatus.
func (*NetworkStatus) DeepCopyInto ¶
func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PoolRef ¶
type PoolRef struct {
// Id is the unique identifier of the pool.
Id string `json:"id"`
}
func (*PoolRef) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolRef.
func (*PoolRef) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityGroup ¶
type SecurityGroup struct {
// ID is a unique identifier.
ID string `json:"id"`
// Name is the security group name.
Name string `json:"name"`
// IngressRules is the inbound rules associated with the security group.
// +optional
SecurityGroupRules []SecurityGroupRule `json:"ingressRule,omitempty"`
}
SecurityGroup defines an HuaweiCloud security group.
func (*SecurityGroup) DeepCopy ¶
func (in *SecurityGroup) DeepCopy() *SecurityGroup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroup.
func (*SecurityGroup) DeepCopyInto ¶
func (in *SecurityGroup) DeepCopyInto(out *SecurityGroup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SecurityGroup) String ¶
func (s *SecurityGroup) String() string
String returns a string representation of the security group.
type SecurityGroupProtocol ¶
type SecurityGroupProtocol string
SecurityGroupProtocol defines the protocol type for a security group rule.
type SecurityGroupRole ¶
type SecurityGroupRole string
SecurityGroupRole defines the unique role of a security group. +kubebuilder:validation:Enum=bastion;node;controlplane;apiserver-lb;lb;node-eks-additional
type SecurityGroupRule ¶
type SecurityGroupRule struct {
// ID is the unique identifier of the security group rule.
Id string `json:"id"`
// Description is the description of the security group rule.
Description string `json:"description"`
// SecurityGroupId is the security group id.
SecurityGroupId string `json:"security_group_id"`
// Direction is the direction of the security group rule. Accepted values are "ingress" and "egress".
Direction string `json:"direction"`
// Ethertype is the IP protocol type. The value can be IPv4 or IPv6.
Ethertype string `json:"ethertype"`
// Protocol is the protocol for the security group rule.
Protocol string `json:"protocol"`
// PortRangeMin is the start of port range.
PortRangeMin int32 `json:"port_range_min"`
// PortRangeMax is the end of port range.
PortRangeMax int32 `json:"port_range_max"`
// RemoteIpPrefix is the CIDR block to allow access from.
RemoteIpPrefix string `json:"remote_ip_prefix"`
// RemoteGroupId is the remote security group id.
RemoteGroupId string `json:"remote_group_id"`
// RemoteAddressGroupId is the remote address group id.
RemoteAddressGroupId string `json:"remote_address_group_id"`
}
SecurityGroupRule
func (*SecurityGroupRule) DeepCopy ¶
func (in *SecurityGroupRule) DeepCopy() *SecurityGroupRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityGroupRule.
func (*SecurityGroupRule) DeepCopyInto ¶
func (in *SecurityGroupRule) DeepCopyInto(out *SecurityGroupRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SubnetSpec ¶
type SubnetSpec struct {
// Id defines a unique identifier to reference this resource.
Id string `json:"id"`
// Name is the name of the subnet. It must be 1-64 characters long and support numbers, letters, Chinese characters, _(underscore), -(hyphen), and .(dot).
Name string `json:"name"`
// ResourceID is the subnet identifier from HuaweiCloud, READ ONLY.
// This field is populated when the provider manages the subnet.
// +optional
ResourceID string `json:"resourceID,omitempty"`
// CIDR is the CIDR of the subnet. It must be in CIDR format. The mask length cannot be greater than 28.
Cidr string `json:"cidr"`
// GatewayIp is the gateway of the subnet. It must be an IP address in the subnet segment.
GatewayIp string `json:"gateway_ip"`
// VPCId is the identifier of the VPC where the subnet is located.
VpcId string `json:"vpc_id"`
// NeutronNetworkId is the identifier of the network (OpenStack Neutron interface).
NeutronNetworkId string `json:"neutron_network_id"`
// NeutronSubnetId is the identifier of the subnet (OpenStack Neutron interface).
NeutronSubnetId string `json:"neutron_subnet_id"`
// IPv6CidrBlock is the IPv6 CIDR block to be used when the provider creates a managed VPC.
// A subnet can have an IPv4 and an IPv6 address.
// IPv6 is only supported in managed clusters, this field cannot be set on HuaweiCloudCluster object.
// +optional
IPv6CidrBlock string `json:"ipv6CidrBlock,omitempty"`
// AvailabilityZone defines the availability zone to use for this subnet in the cluster's region.
AvailabilityZone string `json:"availabilityZone,omitempty"`
// IsPublic defines the subnet as a public subnet. A subnet is public when it is associated with a route table that has a route to an internet gateway.
// +optional
IsPublic bool `json:"isPublic"`
// IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with a VPC that has IPv6 enabled.
// IPv6 is only supported in managed clusters, this field cannot be set on HuaweiCloudCluster object.
// +optional
IsIPv6 bool `json:"isIpv6,omitempty"`
}
SubnetSpec configures an HuaweiCloud VPC Subnet.
func (*SubnetSpec) DeepCopy ¶
func (in *SubnetSpec) DeepCopy() *SubnetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetSpec.
func (*SubnetSpec) DeepCopyInto ¶
func (in *SubnetSpec) DeepCopyInto(out *SubnetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SubnetSpec) GetNeutronSubnetID ¶ added in v0.1.0
func (s *SubnetSpec) GetNeutronSubnetID() string
GetNeutronSubnetID returns IPv4 subnet ID .
func (*SubnetSpec) GetResourceID ¶
func (s *SubnetSpec) GetResourceID() string
GetResourceID returns the identifier for this subnet, if the subnet was not created or reconciled, it returns the subnet ID.
type Subnets ¶
type Subnets []SubnetSpec
Subnets is a slice of Subnet. +listType=map +listMapKey=id
func (Subnets) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subnets.
func (Subnets) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Subnets) FilterPrivate ¶
FilterPrivate returns a slice containing all subnets marked as private.
func (Subnets) FindByID ¶
func (s Subnets) FindByID(id string) *SubnetSpec
FindByID returns a single subnet matching the given id or nil.
The returned pointer can be used to write back into the original slice.
type VPCSpec ¶
type VPCSpec struct {
// Id is the unique identifier of the VPC. It is a UUID.
Id string `json:"id"`
// Name is the name of the VPC. It must be 0-64 characters long and support numbers, letters, Chinese characters, _(underscore), -(hyphen), and .(dot).
Name string `json:"name"`
// Cidr is the CIDR of the VPC.
Cidr string `json:"cidr"`
}
func (*VPCSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPCSpec.
func (*VPCSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Volume ¶
type Volume struct {
// Device name
// +optional
DeviceName string `json:"deviceName,omitempty"`
// Size specifies size (in Gi) of the storage device.
// Must be greater than the image snapshot size or 8 (whichever is greater).
// +kubebuilder:validation:Minimum=8
Size int64 `json:"size"`
// Type is the type of the volume (e.g. gp2, io1, etc...).
// +optional
Type VolumeType `json:"type,omitempty"`
// IOPS is the number of IOPS requested for the disk. Not applicable to all types.
// +optional
IOPS int64 `json:"iops,omitempty"`
// Throughput to provision in MiB/s supported for the volume type. Not applicable to all types.
// +optional
Throughput *int64 `json:"throughput,omitempty"`
}
Volume encapsulates the configuration options for the storage device.
func (*Volume) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.
func (*Volume) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeType ¶
type VolumeType string