v1alpha1

package
v0.0.0-...-9b98fd0 Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2025 License: Apache-2.0 Imports: 9 Imported by: 0

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

View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
const (
	// SubnetsReadyCondition reports on the successful reconciliation of subnets.
	SubnetsReadyCondition clusterv1.ConditionType = "SubnetsReady"
	// SubnetsReconciliationFailedReason used to report failures while reconciling subnets.
	SubnetsReconciliationFailedReason = "SubnetsReconciliationFailed"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
const (
	ClusterFinalizer = "huaweicloudcluster.infrastructure.cluster.x-k8s.io"
)
View Source
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

View Source
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
)
View Source
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")
)
View Source
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")
)
View Source
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),
		),
	)
)
View Source
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

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

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

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

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

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

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

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

func (*HuaweiCloudMachineTemplate) DeepCopyInto

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

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

func (*HuaweiCloudMachineTemplateList) DeepCopyInto

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

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

func (*HuaweiCloudMachineTemplateResource) DeepCopyInto

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

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

func (*HuaweiCloudMachineTemplateSpec) DeepCopyInto

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

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

func (*HuaweiCloudMachineTemplateStatus) DeepCopyInto

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

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

func (*HuaweiCloudResourceReference) DeepCopyInto

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

func (in *Instance) DeepCopy() *Instance

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

func (*Instance) DeepCopyInto

func (in *Instance) DeepCopyInto(out *Instance)

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

func (in *PoolRef) DeepCopy() *PoolRef

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

func (*PoolRef) DeepCopyInto

func (in *PoolRef) DeepCopyInto(out *PoolRef)

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) 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

func (in Subnets) DeepCopy() Subnets

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

func (Subnets) DeepCopyInto

func (in Subnets) DeepCopyInto(out *Subnets)

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

func (Subnets) FilterPrivate

func (s Subnets) FilterPrivate() (res Subnets)

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

func (in *VPCSpec) DeepCopy() *VPCSpec

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

func (*VPCSpec) DeepCopyInto

func (in *VPCSpec) DeepCopyInto(out *VPCSpec)

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

func (in *Volume) DeepCopy() *Volume

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

func (*Volume) DeepCopyInto

func (in *Volume) DeepCopyInto(out *Volume)

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

type VolumeType

type VolumeType string

Jump to

Keyboard shortcuts

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