Documentation ¶
Overview ¶
Package aws contains AWS-specific structures for installer configuration and management.
Index ¶
Constants ¶
const Name string = "aws"
Name is name for the AWS platform.
Variables ¶
This section is empty.
Functions ¶
func IsSecretRegion ¶ added in v0.9.2
IsSecretRegion returns true if the region is part of either the ISO or ISOB partitions.
Types ¶
type EC2Metadata ¶ added in v0.9.2
type EC2Metadata struct { // Authentication determines whether or not the host requires the use of authentication when interacting with the metadata service. // When using authentication, this enforces v2 interaction method (IMDSv2) with the metadata service. // When omitted, this means the user has no opinion and the value is left to the platform to choose a good // default, which is subject to change over time. The current default is optional. // At this point this field represents `HttpTokens` parameter from `InstanceMetadataOptionsRequest` structure in AWS EC2 API // https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html // +kubebuilder:validation:Enum=Required;Optional // +optional Authentication string `json:"authentication,omitempty"` }
EC2Metadata defines the metadata service interaction options for an ec2 instance. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html
type EC2RootVolume ¶
type EC2RootVolume struct { // IOPS defines the amount of provisioned IOPS. (KiB/s). IOPS may only be set for // io1, io2, & gp3 volume types. // // +kubebuilder:validation:Minimum=0 // +optional IOPS int `json:"iops"` // Size defines the size of the volume in gibibytes (GiB). // // +kubebuilder:validation:Minimum=0 Size int `json:"size"` // Type defines the type of the volume. Type string `json:"type"` // The KMS key that will be used to encrypt the EBS volume. // If no key is provided the default KMS key for the account will be used. // https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetEbsDefaultKmsKeyId.html // +optional KMSKeyARN string `json:"kmsKeyARN,omitempty"` }
EC2RootVolume defines the storage for an ec2 instance.
type MachinePool ¶
type MachinePool struct { // Zones is list of availability zones that can be used. // // +optional Zones []string `json:"zones,omitempty"` // InstanceType defines the ec2 instance type. // eg. m4-large // // +optional InstanceType string `json:"type"` // AMIID is the AMI that should be used to boot the ec2 instance. // If set, the AMI should belong to the same region as the cluster. // // +optional AMIID string `json:"amiID,omitempty"` // EC2RootVolume defines the root volume for EC2 instances in the machine pool. // // +optional EC2RootVolume `json:"rootVolume"` // EC2MetadataOptions defines metadata service interaction options for EC2 instances in the machine pool. // // +optional EC2Metadata EC2Metadata `json:"metadataService"` // IAMRole is the name of the IAM Role to use for the instance profile of the machine. // Leave unset to have the installer create the IAM Role on your behalf. // +optional IAMRole string `json:"iamRole,omitempty"` }
MachinePool stores the configuration for a machine pool installed on AWS.
func (*MachinePool) Set ¶
func (a *MachinePool) Set(required *MachinePool)
Set sets the values from `required` to `a`.
type Metadata ¶
type Metadata struct { Region string `json:"region"` // ServiceEndpoints list contains custom endpoints which will override default // service endpoint of AWS Services. // There must be only one ServiceEndpoint for a service. // +optional ServiceEndpoints []ServiceEndpoint `json:"serviceEndpoints,omitempty"` // Identifier holds a slice of filter maps. The maps hold the // key/value pairs for the tags we will be matching against. A // resource matches the map if all of the key/value pairs are in its // tags. A resource matches Identifier if it matches any of the maps. Identifier []map[string]string `json:"identifier"` // ClusterDomain is the domain for the cluster. ClusterDomain string `json:"clusterDomain"` }
Metadata contains AWS metadata (e.g. for uninstalling the cluster).
type Platform ¶
type Platform struct { // AMIID is the AMI that should be used to boot machines for the cluster. // If set, the AMI should belong to the same region as the cluster. // // +optional AMIID string `json:"amiID,omitempty"` // Region specifies the AWS region where the cluster will be created. Region string `json:"region"` // Subnets specifies existing subnets (by ID) where cluster // resources will be created. Leave unset to have the installer // create subnets in a new VPC on your behalf. // // +optional Subnets []string `json:"subnets,omitempty"` // HostedZone is the ID of an existing hosted zone into which to add DNS // records for the cluster's internal API. An existing hosted zone can // only be used when also using existing subnets. The hosted zone must be // associated with the VPC containing the subnets. // Leave the hosted zone unset to have the installer create the hosted zone // on your behalf. // +optional HostedZone string `json:"hostedZone,omitempty"` // UserTags additional keys and values that the installer will add // as tags to all resources that it creates. Resources created by the // cluster itself may not include these tags. // +optional UserTags map[string]string `json:"userTags,omitempty"` // ServiceEndpoints list contains custom endpoints which will override default // service endpoint of AWS Services. // There must be only one ServiceEndpoint for a service. // +optional ServiceEndpoints []ServiceEndpoint `json:"serviceEndpoints,omitempty"` // DefaultMachinePlatform is the default configuration used when // installing on AWS for machine pools which do not define their own // platform configuration. // +optional DefaultMachinePlatform *MachinePool `json:"defaultMachinePlatform,omitempty"` // The field is deprecated. ExperimentalPropagateUserTags is an experimental // flag that directs in-cluster operators to include the specified // user tags in the tags of the AWS resources that the operators create. // +optional ExperimentalPropagateUserTag *bool `json:"experimentalPropagateUserTags,omitempty"` // PropagateUserTags is a flag that directs in-cluster operators // to include the specified user tags in the tags of the // AWS resources that the operators create. // +optional PropagateUserTag bool `json:"propagateUserTags,omitempty"` // LBType is an optional field to specify a load balancer type. // // When this field is specified, the default ingresscontroller will be // created using the specified load-balancer type. // // Following are the accepted values: // // * "Classic": A Classic Load Balancer that makes routing decisions at // either the transport layer (TCP/SSL) or the application layer // (HTTP/HTTPS). See the following for additional details: // https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#clb // // * "NLB": A Network Load Balancer that makes routing decisions at the // transport layer (TCP/SSL). See the following for additional details: // https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#nlb // // If this field is not set explicitly, it defaults to "Classic". This // default is subject to change over time. // // +optional LBType configv1.AWSLBType `json:"lbType,omitempty"` }
Platform stores all the global configuration that all machinesets use.
type ServiceEndpoint ¶ added in v0.9.2
type ServiceEndpoint struct { // Name is the name of the AWS service. // This must be provided and cannot be empty. Name string `json:"name"` // URL is fully qualified URI with scheme https, that overrides the default generated // endpoint for a client. // This must be provided and cannot be empty. // // +kubebuilder:validation:Pattern=`^https://` URL string `json:"url"` }
ServiceEndpoint store the configuration for services to override existing defaults of AWS Services.