Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
Index ¶
- Constants
- Variables
- func ClusterAWSCloudProviderTagKey(name string) string
- func ClusterTagKey(name string) string
- type AWSResourceReference
- type AWSSnowCluster
- func (in *AWSSnowCluster) DeepCopy() *AWSSnowCluster
- func (in *AWSSnowCluster) DeepCopyInto(out *AWSSnowCluster)
- func (in *AWSSnowCluster) DeepCopyObject() runtime.Object
- func (r *AWSSnowCluster) GetConditions() clusterv1.Conditions
- func (r *AWSSnowCluster) SetConditions(conditions clusterv1.Conditions)
- type AWSSnowClusterList
- type AWSSnowClusterSpec
- type AWSSnowClusterStatus
- type AWSSnowMachine
- func (in *AWSSnowMachine) DeepCopy() *AWSSnowMachine
- func (in *AWSSnowMachine) DeepCopyInto(out *AWSSnowMachine)
- func (in *AWSSnowMachine) DeepCopyObject() runtime.Object
- func (r *AWSSnowMachine) GetConditions() clusterv1.Conditions
- func (r *AWSSnowMachine) IsControlPlane() bool
- func (r *AWSSnowMachine) SetConditions(conditions clusterv1.Conditions)
- type AWSSnowMachineList
- type AWSSnowMachineSpec
- type AWSSnowMachineStatus
- type AWSSnowMachineTemplate
- type AWSSnowMachineTemplateList
- type AWSSnowMachineTemplateResource
- type AWSSnowMachineTemplateSpec
- type BuildParams
- type CloudInit
- type Filter
- type Instance
- type InstanceState
- type ResourceLifecycle
- type Tags
- func (in Tags) DeepCopy() Tags
- func (in Tags) DeepCopyInto(out *Tags)
- func (t Tags) Difference(other Tags) Tags
- func (t Tags) Equals(other Tags) bool
- func (t Tags) GetRole() string
- func (t Tags) HasAWSCloudProviderOwned(cluster string) bool
- func (t Tags) HasOwned(cluster string) bool
- func (t Tags) Merge(other Tags)
- type Volume
Constants ¶
const ( // PrincipalCredentialRetrievedCondition reports on whether Principal credentials could be retrieved successfully. // A possible scenario, where retrieval is unsuccessful, is when SourcePrincipal is not authorized for assume role. PrincipalCredentialRetrievedCondition clusterv1.ConditionType = "PrincipalCredentialRetrieved" // PrincipalCredentialRetrievalFailedReason used when errors occur during identity credential retrieval. PrincipalCredentialRetrievalFailedReason = "PrincipalCredentialRetrievalFailed" // CredentialProviderBuildFailedReason used when errors occur during building providers before trying credential retrieval. CredentialProviderBuildFailedReason = "CredentialProviderBuildFailed" // PrincipalUsageAllowedCondition reports on whether Principal and all the nested source identities are allowed to be used in the AWSCluster namespace. PrincipalUsageAllowedCondition clusterv1.ConditionType = "PrincipalUsageAllowed" PrincipalUsageUnauthorizedReason = "PrincipalUsageUnauthorized" // and allowed namespaces of the identities that source identity depends to. SourcePrincipalUsageUnauthorizedReason = "SourcePrincipalUsageUnauthorized" )
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 ( // InternetGatewayReadyCondition reports on the successful reconciliation of internet gateways. // Only applicable to managed clusters. InternetGatewayReadyCondition clusterv1.ConditionType = "InternetGatewayReady" // InternetGatewayFailedReason used when errors occur during internet gateway reconciliation. InternetGatewayFailedReason = "InternetGatewayFailed" )
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 ( // RouteTablesReadyCondition reports successful reconciliation of route tables. // Only applicable to managed clusters. RouteTablesReadyCondition clusterv1.ConditionType = "RouteTablesReady" // RouteTableReconciliationFailedReason used when any errors occur during reconciliation of route tables. RouteTableReconciliationFailedReason = "RouteTableReconciliationFailed" )
const ( // SecondaryCidrsReadyCondition reports successful reconciliation of secondary CIDR blocks. // Only applicable to managed clusters. SecondaryCidrsReadyCondition clusterv1.ConditionType = "SecondaryCidrsReady" // SecondaryCidrReconciliationFailedReason used when any errors occur during reconciliation of secondary CIDR blocks. SecondaryCidrReconciliationFailedReason = "SecondaryCidrReconciliationFailed" )
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 ( // BastionHostReadyCondition reports whether a bastion host is ready. Depending on the configuration, a cluster // may not require a bastion host and this condition will be skipped. BastionHostReadyCondition clusterv1.ConditionType = "BastionHostReady" // BastionCreationStartedReason used when creating a new bastion host. BastionCreationStartedReason = "BastionCreationStarted" // BastionHostFailedReason used when an error occurs during the creation of a bastion host. BastionHostFailedReason = "BastionHostFailed" )
const ( // LoadBalancerReadyCondition reports on whether a control plane load balancer was successfully reconciled. LoadBalancerReadyCondition clusterv1.ConditionType = "LoadBalancerReady" // WaitForDNSNameReason used while waiting for a DNS name for the API server to be populated. WaitForDNSNameReason = "WaitForDNSName" // WaitForDNSNameResolveReason used while waiting for DNS name to resolve. WaitForDNSNameResolveReason = "WaitForDNSNameResolve" // LoadBalancerFailedReason used when an error occurs during load balancer reconciliation. LoadBalancerFailedReason = "LoadBalancerFailed" )
const ( // InstanceReadyCondition reports on current status of the EC2 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 AWSMachine. SecurityGroupsReadyCondition clusterv1.ConditionType = "SecurityGroupsReady" // SecurityGroupsFailedReason used when the security groups could not be synced. SecurityGroupsFailedReason = "SecurityGroupsSyncFailed" )
const ( // ELBAttachedCondition will report true when a control plane is successfully registered with an ELB. // When set to false, severity can be an Error if the subnet is not found or unavailable in the instance's AZ. // Note this is only applicable to control plane machines. // Only applicable to control plane machines. ELBAttachedCondition clusterv1.ConditionType = "ELBAttached" // ELBAttachFailedReason used when a control plane node fails to attach to the ELB. ELBAttachFailedReason = "ELBAttachFailed" // ELBDetachFailedReason used when a control plane node fails to detach from an ELB. ELBDetachFailedReason = "ELBDetachFailed" )
const ( // ResourceLifecycleOwned is the value we use when tagging resources to indicate // that the resource is considered owned and managed by the cluster, // and in particular that the lifecycle is tied to the lifecycle of the cluster. ResourceLifecycleOwned = ResourceLifecycle("owned") // that the resource is shared between multiple clusters, and should not be destroyed // if the cluster is destroyed. ResourceLifecycleShared = ResourceLifecycle("shared") // NameKubernetesClusterPrefix is the tag name used by the cloud provider to logically // separate independent cluster resources. We use it to identify which resources we expect // to be permissive about state changes. // logically independent clusters running in the same AZ. // The tag key = NameKubernetesAWSCloudProviderPrefix + clusterID // The tag value is an ownership value NameKubernetesAWSCloudProviderPrefix = "kubernetes.io/cluster/" // NameAWSProviderPrefix is the tag prefix we use to differentiate // cluster-api-provider-aws owned components from other tooling that // uses NameKubernetesClusterPrefix NameAWSProviderPrefix = "sigs.k8s.io/cluster-api-provider-aws-snow/" // NameAWSProviderOwned is the tag name we use to differentiate // cluster-api-provider-aws owned components from other tooling that // uses NameKubernetesClusterPrefix NameAWSProviderOwned = NameAWSProviderPrefix + "cluster/" // NameAWSClusterAPIRole is the tag name we use to mark roles for resources // dedicated to this cluster api provider implementation. NameAWSClusterAPIRole = NameAWSProviderPrefix + "role" NameAWSSubnetAssociation = NameAWSProviderPrefix + "association" SecondarySubnetTagValue = "secondary" // APIServerRoleTagValue describes the value for the apiserver role APIServerRoleTagValue = "apiserver" // BastionRoleTagValue describes the value for the bastion role BastionRoleTagValue = "bastion" // CommonRoleTagValue describes the value for the common role CommonRoleTagValue = "common" // PublicRoleTagValue describes the value for the public role PublicRoleTagValue = "public" // PrivateRoleTagValue describes the value for the private role PrivateRoleTagValue = "private" // MachineNameTagKey is the key for machine name MachineNameTagKey = "MachineName" )
const ( // AWSSnowClusterFinalizer allows ReconcileAWSSnowCluster to clean up AWS Snow resources associated with AWSSnowCluster before // removing it from the apiserver. AWSSnowClusterFinalizer = "awssnowcluster.infrastructure.cluster.x-k8s.io" )
const ( // AWSSnowMachineFinalizer allows ReconcileAWSSnowMachine to clean up AWS Snow resources associated with AWSSnowMachine before // removing it from the apiserver. AWSSnowMachineFinalizer = "awssnowmachine.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: "v1beta1"} // 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 ( // 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 EC2 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 EC2 instance is // or can return to running, and supports all EC2 operations InstanceOperationalStates = InstanceRunningStates.Union( sets.NewString( string(InstanceStateStopping), string(InstanceStateStopped), ), ) // InstanceKnownStates represents all known EC2 instance states InstanceKnownStates = InstanceOperationalStates.Union( sets.NewString( string(InstanceStateShuttingDown), string(InstanceStateTerminated), ), ) )
Functions ¶
func ClusterAWSCloudProviderTagKey ¶
ClusterAWSCloudProviderTagKey generates the key for resources associated a cluster's AWS cloud provider.
func ClusterTagKey ¶
ClusterTagKey generates the key for resources associated with a cluster.
Types ¶
type AWSResourceReference ¶
type AWSResourceReference struct { // ID of resource // +optional ID *string `json:"id,omitempty"` // ARN of resource // +optional ARN *string `json:"arn,omitempty"` // Filters is a set of key/value pairs used to identify a resource // They are applied according to the rules defined by the AWS API: // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Filtering.html // +optional Filters []Filter `json:"filters,omitempty"` }
AWSResourceReference is a reference to a specific AWS resource by ID, ARN, or filters. Only one of ID, ARN or Filters may be specified. Specifying more than one will result in a validation error.
func (*AWSResourceReference) DeepCopy ¶
func (in *AWSResourceReference) DeepCopy() *AWSResourceReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSResourceReference.
func (*AWSResourceReference) DeepCopyInto ¶
func (in *AWSResourceReference) DeepCopyInto(out *AWSResourceReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSSnowCluster ¶
type AWSSnowCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AWSSnowClusterSpec `json:"spec,omitempty"` Status AWSSnowClusterStatus `json:"status,omitempty"` }
AWSSnowCluster is the Schema for the awssnowclusters API
func (*AWSSnowCluster) DeepCopy ¶
func (in *AWSSnowCluster) DeepCopy() *AWSSnowCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowCluster.
func (*AWSSnowCluster) DeepCopyInto ¶
func (in *AWSSnowCluster) DeepCopyInto(out *AWSSnowCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AWSSnowCluster) DeepCopyObject ¶
func (in *AWSSnowCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AWSSnowCluster) GetConditions ¶
func (r *AWSSnowCluster) GetConditions() clusterv1.Conditions
func (*AWSSnowCluster) SetConditions ¶
func (r *AWSSnowCluster) SetConditions(conditions clusterv1.Conditions)
type AWSSnowClusterList ¶
type AWSSnowClusterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AWSSnowCluster `json:"items"` }
AWSSnowClusterList contains a list of AWSSnowCluster
func (*AWSSnowClusterList) DeepCopy ¶
func (in *AWSSnowClusterList) DeepCopy() *AWSSnowClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowClusterList.
func (*AWSSnowClusterList) DeepCopyInto ¶
func (in *AWSSnowClusterList) DeepCopyInto(out *AWSSnowClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AWSSnowClusterList) DeepCopyObject ¶
func (in *AWSSnowClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AWSSnowClusterSpec ¶
type AWSSnowClusterSpec struct { // The AWS Region the cluster lives in. Region string `json:"region,omitempty"` // SSHKeyName is the name of the ssh key to attach to the bastion host. 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"` // ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. // +optional ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"` // ImageLookupFormat is the AMI naming format to look up machine images when // a machine does not specify an AMI. When set, this will be used for all // cluster machines unless a machine specifies a different ImageLookupOrg. // Supports substitutions for {{.BaseOS}} and {{.K8sVersion}} with the base // OS and kubernetes version, respectively. The BaseOS will be the value in // ImageLookupBaseOS or ubuntu (the default), and the kubernetes version as // defined by the packages produced by kubernetes/release without v as a // prefix: 1.13.0, 1.12.5-mybuild.1, or 1.17.3. For example, the default // image format of capa-ami-{{.BaseOS}}-?{{.K8sVersion}}-* will end up // searching for AMIs that match the pattern capa-ami-ubuntu-?1.18.0-* for a // Machine that is targeting kubernetes v1.18.0 and the ubuntu base OS. See // also: https://golang.org/pkg/text/template/ // +optional ImageLookupFormat string `json:"imageLookupFormat,omitempty"` // ImageLookupOrg is the AWS Organization ID to look up machine images when a // machine does not specify an AMI. When set, this will be used for all // cluster machines unless a machine specifies a different ImageLookupOrg. // +optional ImageLookupOrg string `json:"imageLookupOrg,omitempty"` // ImageLookupBaseOS is the name of the base operating system used to look // up machine images when a machine does not specify an AMI. When set, this // will be used for all cluster machines unless a machine specifies a // different ImageLookupBaseOS. ImageLookupBaseOS string `json:"imageLookupBaseOS,omitempty"` // PhysicalNetworkConnectorType is the physical network connector type to use for creating direct network interfaces. Valid values are a physical network connector type (SFP_PLUS or QSFP), or omitted (cluster-api selects a valid physical network interface, default is SFP_PLUS) // +kubebuilder:validation:Enum:=SFP_PLUS;QSFP // +optional PhysicalNetworkConnectorType *string `json:"physicalNetworkConnectorType,omitempty"` }
AWSSnowClusterSpec defines the desired state of AWSSnowCluster
func (*AWSSnowClusterSpec) DeepCopy ¶
func (in *AWSSnowClusterSpec) DeepCopy() *AWSSnowClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowClusterSpec.
func (*AWSSnowClusterSpec) DeepCopyInto ¶
func (in *AWSSnowClusterSpec) DeepCopyInto(out *AWSSnowClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSSnowClusterStatus ¶
type AWSSnowClusterStatus struct { // +kubebuilder:default=false Ready bool `json:"ready"` // Network Network `json:"network,omitempty"` FailureDomains clusterv1.FailureDomains `json:"failureDomains,omitempty"` // Bastion *Instance `json:"bastion,omitempty"` Conditions clusterv1.Conditions `json:"conditions,omitempty"` }
AWSSnowClusterStatus defines the observed state of AWSSnowCluster
func (*AWSSnowClusterStatus) DeepCopy ¶
func (in *AWSSnowClusterStatus) DeepCopy() *AWSSnowClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowClusterStatus.
func (*AWSSnowClusterStatus) DeepCopyInto ¶
func (in *AWSSnowClusterStatus) DeepCopyInto(out *AWSSnowClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSSnowMachine ¶
type AWSSnowMachine struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` DeviceIp string `json:"deviceIp,omitempty"` Spec AWSSnowMachineSpec `json:"spec,omitempty"` Status AWSSnowMachineStatus `json:"status,omitempty"` }
AWSSnowMachine is the Schema for the awssnowmachines API
func (*AWSSnowMachine) DeepCopy ¶
func (in *AWSSnowMachine) DeepCopy() *AWSSnowMachine
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowMachine.
func (*AWSSnowMachine) DeepCopyInto ¶
func (in *AWSSnowMachine) DeepCopyInto(out *AWSSnowMachine)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AWSSnowMachine) DeepCopyObject ¶
func (in *AWSSnowMachine) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AWSSnowMachine) GetConditions ¶
func (r *AWSSnowMachine) GetConditions() clusterv1.Conditions
func (*AWSSnowMachine) IsControlPlane ¶
func (r *AWSSnowMachine) IsControlPlane() bool
func (*AWSSnowMachine) SetConditions ¶
func (r *AWSSnowMachine) SetConditions(conditions clusterv1.Conditions)
type AWSSnowMachineList ¶
type AWSSnowMachineList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AWSSnowMachine `json:"items"` }
AWSSnowMachineList contains a list of AWSSnowMachine
func (*AWSSnowMachineList) DeepCopy ¶
func (in *AWSSnowMachineList) DeepCopy() *AWSSnowMachineList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowMachineList.
func (*AWSSnowMachineList) DeepCopyInto ¶
func (in *AWSSnowMachineList) DeepCopyInto(out *AWSSnowMachineList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AWSSnowMachineList) DeepCopyObject ¶
func (in *AWSSnowMachineList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AWSSnowMachineSpec ¶
type AWSSnowMachineSpec struct { // ProviderID is the unique identifier as specified by the cloud provider. ProviderID *string `json:"providerID,omitempty"` // InstanceID is the EC2 instance ID for this machine. InstanceID *string `json:"instanceID,omitempty"` // AMI is the reference to the AMI from which to create the machine instance. AMI AWSResourceReference `json:"ami,omitempty"` // ImageLookupFormat is the AMI naming format to look up the image for this // machine It will be ignored if an explicit AMI is set. Supports // substitutions for {{.BaseOS}} and {{.K8sVersion}} with the base OS and // kubernetes version, respectively. The BaseOS will be the value in // ImageLookupBaseOS or ubuntu (the default), and the kubernetes version as // defined by the packages produced by kubernetes/release without v as a // prefix: 1.13.0, 1.12.5-mybuild.1, or 1.17.3. For example, the default // image format of capa-ami-{{.BaseOS}}-?{{.K8sVersion}}-* will end up // searching for AMIs that match the pattern capa-ami-ubuntu-?1.18.0-* for a // Machine that is targeting kubernetes v1.18.0 and the ubuntu base OS. See // also: https://golang.org/pkg/text/template/ // +optional ImageLookupFormat string `json:"imageLookupFormat,omitempty"` // ImageLookupOrg is the AWS Organization ID to use for image lookup if AMI is not set. ImageLookupOrg string `json:"imageLookupOrg,omitempty"` // ImageLookupBaseOS is the name of the base operating system to use for // image lookup the AMI is not set. ImageLookupBaseOS string `json:"imageLookupBaseOS,omitempty"` // InstanceType is the type of instance to create. Example: m4.xlarge InstanceType string `json:"instanceType,omitempty"` // IAMInstanceProfile is a name of an IAM instance profile to assign to the instance // +optional IAMInstanceProfile string `json:"iamInstanceProfile,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"` // AdditionalSecurityGroups is an array of references to security groups that should be applied to the // instance. These security groups would be set in addition to any security groups defined // at the cluster level or in the actuator. It is possible to specify either IDs of Filters. Using Filters // will cause additional requests to AWS API and if tags change the attached security groups might change too. // +optional AdditionalSecurityGroups []AWSResourceReference `json:"additionalSecurityGroups,omitempty"` // FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API. // For this infrastructure provider, the ID is equivalent to an AWS Availability Zone. // If multiple subnets are matched for the availability zone, the first one returned is picked. FailureDomain *string `json:"failureDomain,omitempty"` // Subnet is a reference to the subnet to use for this instance. If not specified, // the cluster subnet will be used. // +optional Subnet *AWSResourceReference `json:"subnet,omitempty"` // 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 // TODO: Evaluate the need or remove completely. // +optional RootVolume *Volume `json:"rootVolume,omitempty"` // Configuration options for the non root storage volumes. // TODO: Evaluate the need or remove completely. // +optional NonRootVolumes []*Volume `json:"nonRootVolumes,omitempty"` // NetworkInterfaces is a list of ENIs to associate with the instance. // A maximum of 2 may be specified. // +optional // +kubebuilder:validation:MaxItems=2 NetworkInterfaces []string `json:"networkInterfaces,omitempty"` // UncompressedUserData specify whether the user data is gzip-compressed before it is sent to ec2 instance. // cloud-init has built-in support for gzip-compressed user data // user data stored in aws secret manager is always gzip-compressed. // // +optional UncompressedUserData *bool `json:"uncompressedUserData,omitempty"` // CloudInit defines options related to the bootstrapping systems where // CloudInit is used. // +optional CloudInit CloudInit `json:"cloudInit,omitempty"` // PhysicalNetworkConnectorType is the physical network connector type to use for creating direct network interfaces. Valid values are a physical network connector type (SFP_PLUS or QSFP), or omitted (cluster-api selects a valid physical network interface, default is SFP_PLUS) // +optional // +kubebuilder:validation:Enum:=SFP_PLUS;QSFP PhysicalNetworkConnectorType *string `json:"physicalNetworkConnectorType,omitempty"` }
AWSSnowMachineSpec defines the desired state of AWSSnowMachine. Below struct is a full copy of AWSSnowMachineSpec. Fields not needed for now are commented out with TODO added in comments.
func (*AWSSnowMachineSpec) DeepCopy ¶
func (in *AWSSnowMachineSpec) DeepCopy() *AWSSnowMachineSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowMachineSpec.
func (*AWSSnowMachineSpec) DeepCopyInto ¶
func (in *AWSSnowMachineSpec) DeepCopyInto(out *AWSSnowMachineSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSSnowMachineStatus ¶
type AWSSnowMachineStatus struct { // Ready is true when the provider resource is ready. // +optional Ready bool `json:"ready"` // Addresses contains the AWS instance associated addresses. Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"` // InstanceState is the state of the AWS instance for this machine. // +optional InstanceState *InstanceState `json:"instanceState,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 AWSSnowMachine. // +optional Conditions clusterv1.Conditions `json:"conditions,omitempty"` }
AWSSnowMachineStatus defines the observed state of AWSSnowMachine
func (*AWSSnowMachineStatus) DeepCopy ¶
func (in *AWSSnowMachineStatus) DeepCopy() *AWSSnowMachineStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowMachineStatus.
func (*AWSSnowMachineStatus) DeepCopyInto ¶
func (in *AWSSnowMachineStatus) DeepCopyInto(out *AWSSnowMachineStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSSnowMachineTemplate ¶
type AWSSnowMachineTemplate struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AWSSnowMachineTemplateSpec `json:"spec,omitempty"` }
AWSSnowMachineTemplate is the Schema for the awssnowmachinetemplates API
func (*AWSSnowMachineTemplate) DeepCopy ¶
func (in *AWSSnowMachineTemplate) DeepCopy() *AWSSnowMachineTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowMachineTemplate.
func (*AWSSnowMachineTemplate) DeepCopyInto ¶
func (in *AWSSnowMachineTemplate) DeepCopyInto(out *AWSSnowMachineTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AWSSnowMachineTemplate) DeepCopyObject ¶
func (in *AWSSnowMachineTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AWSSnowMachineTemplateList ¶
type AWSSnowMachineTemplateList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AWSSnowMachineTemplate `json:"items"` }
AWSSnowMachineTemplateList contains a list of AWSSnowMachineTemplate.
func (*AWSSnowMachineTemplateList) DeepCopy ¶
func (in *AWSSnowMachineTemplateList) DeepCopy() *AWSSnowMachineTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowMachineTemplateList.
func (*AWSSnowMachineTemplateList) DeepCopyInto ¶
func (in *AWSSnowMachineTemplateList) DeepCopyInto(out *AWSSnowMachineTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AWSSnowMachineTemplateList) DeepCopyObject ¶
func (in *AWSSnowMachineTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AWSSnowMachineTemplateResource ¶
type AWSSnowMachineTemplateResource struct { // Spec is the specification of the desired behavior of the machine. Spec AWSSnowMachineSpec `json:"spec"` }
AWSSnowMachineTemplateResource describes the data needed to create am AWSSnowMachine from a template
func (*AWSSnowMachineTemplateResource) DeepCopy ¶
func (in *AWSSnowMachineTemplateResource) DeepCopy() *AWSSnowMachineTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowMachineTemplateResource.
func (*AWSSnowMachineTemplateResource) DeepCopyInto ¶
func (in *AWSSnowMachineTemplateResource) DeepCopyInto(out *AWSSnowMachineTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AWSSnowMachineTemplateSpec ¶
type AWSSnowMachineTemplateSpec struct {
Template AWSSnowMachineTemplateResource `json:"template"`
}
AWSSnowMachineTemplateSpec defines the desired state of AWSSnowMachineTemplate
func (*AWSSnowMachineTemplateSpec) DeepCopy ¶
func (in *AWSSnowMachineTemplateSpec) DeepCopy() *AWSSnowMachineTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSnowMachineTemplateSpec.
func (*AWSSnowMachineTemplateSpec) DeepCopyInto ¶
func (in *AWSSnowMachineTemplateSpec) DeepCopyInto(out *AWSSnowMachineTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BuildParams ¶
type BuildParams struct { // Lifecycle determines the resource lifecycle. Lifecycle ResourceLifecycle // ClusterName is the cluster associated with the resource. ClusterName string // ResourceID is the unique identifier of the resource to be tagged. ResourceID string // Name is the name of the resource, it's applied as the tag "Name" on AWS. // +optional Name *string // Role is the role associated to the resource. // +optional Role *string // Any additional tags to be added to the resource. // +optional Additional Tags }
BuildParams is used to build tags around an aws resource.
func (*BuildParams) DeepCopy ¶
func (in *BuildParams) DeepCopy() *BuildParams
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildParams.
func (*BuildParams) DeepCopyInto ¶
func (in *BuildParams) DeepCopyInto(out *BuildParams)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BuildParams) WithCloudProvider ¶
func (b BuildParams) WithCloudProvider(name string) BuildParams
WithCloudProvider tags the cluster ownership for a resource
func (BuildParams) WithMachineName ¶
func (b BuildParams) WithMachineName(m *clusterv1.Machine) BuildParams
WithMachineName tags the namespaced machine name The machine name will be tagged with key "MachineName"
type CloudInit ¶
type CloudInit struct { // InsecureSkipSecretsManager, when set to true will not use AWS Secrets Manager // or AWS Systems Manager Parameter Store to ensure privacy of userdata. // By default, a cloud-init boothook shell script is prepended to download // the userdata from Secrets Manager and additionally delete the secret. InsecureSkipSecretsManager bool `json:"insecureSkipSecretsManager,omitempty"` // SecretCount is the number of secrets used to form the complete secret // +optional SecretCount int32 `json:"secretCount,omitempty"` // SecretPrefix is the prefix for the secret name. This is stored // temporarily, and deleted when the machine registers as a node against // the workload cluster. // +optional SecretPrefix string `json:"secretPrefix,omitempty"` }
CloudInit defines options related to the bootstrapping systems where CloudInit is used. TODO: Right now, this is a full copy of awsmachine_types.go in cluster-api-provider-aws. We will likely need to trim this down since we don't have secret store supported on Snow yet.
func (*CloudInit) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudInit.
func (*CloudInit) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Filter ¶
type Filter struct { // Name of the filter. Filter names are case-sensitive. Name string `json:"name"` // Values includes one or more filter values. Filter values are case-sensitive. Values []string `json:"values"` }
Filter is a filter used to identify an AWS resource
func (*Filter) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Filter.
func (*Filter) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 name of the IAM instance profile associated with the instance, if applicable. IAMProfile string `json:"iamProfile,omitempty"` // Addresses contains the AWS instance associated addresses. Addresses []clusterv1.MachineAddress `json:"addresses,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"` // Specifies whether enhanced networking with ENA is enabled. ENASupport *bool `json:"enaSupport,omitempty"` // Indicates whether the instance is optimized for Amazon EBS I/O. EBSOptimized *bool `json:"ebsOptimized,omitempty"` // Configuration options for the root storage volume. // +optional RootVolume *Volume `json:"rootVolume,omitempty"` // Configuration options for the non root storage volumes. // +optional NonRootVolumes []*Volume `json:"nonRootVolumes,omitempty"` // Specifies ENIs attached to instance NetworkInterfaces []string `json:"networkInterfaces,omitempty"` // The tags associated with the instance. Tags map[string]string `json:"tags,omitempty"` // Availability zone of instance AvailabilityZone string `json:"availabilityZone,omitempty"` // Tenancy indicates if instance should run on shared or single-tenant hardware. // +optional Tenancy string `json:"tenancy,omitempty"` }
Instance describes an AWS 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 AWS instance.
type ResourceLifecycle ¶
type ResourceLifecycle string
ResourceLifecycle configures the lifecycle of a resource
type Tags ¶
Tags defines a map of tags.
func Build ¶
func Build(params BuildParams) Tags
Build builds tags including the cluster tag and returns them in map form.
func (Tags) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tags.
func (Tags) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Tags) Difference ¶
Difference returns the difference between this map of tags and the other map of tags. Items are considered equals if key and value are equals.
func (Tags) HasAWSCloudProviderOwned ¶
HasOwned returns true if the tags contains a tag that marks the resource as owned by the cluster from the perspective of the in-tree cloud provider.
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 string `json:"type,omitempty"` // IOPS is the number of IOPS requested for the disk. Not applicable to all types. // +optional IOPS int64 `json:"iops,omitempty"` // Encrypted is whether the volume should be encrypted or not. // +optional Encrypted bool `json:"encrypted,omitempty"` // EncryptionKey is the KMS key to use to encrypt the volume. Can be either a KMS key ID or ARN. // If Encrypted is set and this is omitted, the default AWS key will be used. // The key must already exist and be accessible by the controller. // +optional EncryptionKey string `json:"encryptionKey,omitempty"` }
Volume encapsulates the configuration options for the storage device TODO: Trim the fields that do not apply for Snow.
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.