Documentation ¶
Index ¶
Constants ¶
const ( // V1alpha1 is the API version V1alpha1 = "mcm.gardener.cloud/v1alpha1" // AWSAccessKeyID is a constant for a key name that is part of the AWS cloud credentials. AWSAccessKeyID = "providerAccessKeyId" // AWSSecretAccessKey is a constant for a key name that is part of the AWS cloud credentials. AWSSecretAccessKey = "providerSecretAccessKey" // AWSAlternativeAccessKeyID is a constant for a key name of a secret containing the AWS credentials (access key // id). AWSAlternativeAccessKeyID = "accessKeyID" // AWSAlternativeSecretAccessKey is a constant for a key name of a secret containing the AWS credentials (secret // access key). AWSAlternativeSecretAccessKey = "secretAccessKey" // ClusterTagPrefix is a constanst for identifying a tag containing the cluster name ClusterTagPrefix = "kubernetes.io/cluster/" // RoleTagPrefix is a constanst for identifying a tag containing the node role RoleTagPrefix = "kubernetes.io/role/" // VolumeTypeGP2 is the constant for volume type of GP2 VolumeTypeGP2 = "gp2" // VolumeTypeGP3 is the constant for volume type of GP3 VolumeTypeGP3 = "gp3" // VolumeTypeIO1 is the constant for volume type of IO1 VolumeTypeIO1 = "io1" // VolumeTypeST1 is the constant for volume type of STR1 VolumeTypeST1 = "st1" // VolumeTypeSC1 is the constant for volume type of SC1 VolumeTypeSC1 = "sc1" // VolumeTypeStandard is the constant for volume type of standard VolumeTypeStandard = "standard" // DataDeviceNameFormat refers to the data device name format specified by AWS // Refer - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html DataDeviceNameFormat = `^/dev/(sd[a-z]|xvd[a-c][a-z]?)$` // RootDeviceName is the name used for the root device RootDeviceName = "/root" )
const ( // HTTPTokensRequired enforces the use of tokens to access the metadata service. Effectively it enforces IMDSv2. HTTPTokensRequired string = "required" // HTTPTokensOptional allows the use of both IMDSv1 and IMDSv2. HTTPTokensOptional string = "optional" )
const ( // HTTPEndpointDisabled disables access to instance metadata endpoint. HTTPEndpointDisabled string = "disabled" // HTTPEndpointEnabled enables access to the instance metadata endpoint. HTTPEndpointEnabled string = "enabled" )
Variables ¶
var ( // ValidVolumeTypes contains the list of valid volumes types that can be attached to a EC2 instance ValidVolumeTypes = []string{VolumeTypeGP2, VolumeTypeGP3, VolumeTypeIO1, VolumeTypeST1, VolumeTypeSC1, VolumeTypeStandard} )
Functions ¶
This section is empty.
Types ¶
type AWSBlockDeviceMappingSpec ¶
type AWSBlockDeviceMappingSpec struct { // The device name exposed to the machine (for example, /dev/sdh or xvdh). DeviceName string `json:"deviceName,omitempty"` // Parameters used to automatically set up EBS volumes when the machine is // launched. Ebs AWSEbsBlockDeviceSpec `json:"ebs,omitempty"` // Suppresses the specified device included in the block device mapping of the // AMI. NoDevice string `json:"noDevice,omitempty"` // The virtual device name (ephemeralN). Machine store volumes are numbered // starting from 0. An machine type with 2 available machine store volumes // can specify mappings for ephemeral0 and ephemeral1.The number of available // machine store volumes depends on the machine type. After you connect to // the machine, you must mount the volume. // // Constraints: For M3 machines, you must specify machine store volumes in // the block device mapping for the machine. When you launch an M3 machine, // we ignore any machine store volumes specified in the block device mapping // for the AMI. VirtualName string `json:"virtualName,omitempty"` }
AWSBlockDeviceMappingSpec stores info about AWS block device mappings
type AWSCapacityReservationTargetSpec ¶ added in v0.5.0
type AWSCapacityReservationTargetSpec struct { // CapacityReservationPreference indicates the instance's Capacity Reservation preferences (possible values are 'open' or 'none'). CapacityReservationPreference *string `json:"capacityReservationPreference,omitempty"` // CapacityReservationID ID of the Capacity Reservation in which to run the instance. CapacityReservationID *string `json:"capacityReservationId,omitempty"` // CapacityReservationResourceGroupArn The ARN of the Capacity Reservation in which to run the instance. CapacityReservationResourceGroupArn *string `json:"capacityReservationResourceGroupArn,omitempty"` }
AWSCapacityReservationTargetSpec allows to target an AWS Capacity Reservation directly or indirectly using an AWS Capacity Reservation. See https://docs.aws.amazon.com/sdk-for-go/api/service/ec2/#CapacityReservationSpecification for additional information.
type AWSEbsBlockDeviceSpec ¶
type AWSEbsBlockDeviceSpec struct { // Indicates whether the EBS volume is deleted on machine termination. DeleteOnTermination *bool `json:"deleteOnTermination,omitempty"` // Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS volumes // may only be attached to machines that support Amazon EBS encryption. Encrypted bool `json:"encrypted,omitempty"` // The number of I/O operations per second (IOPS) that the volume supports. // For io1 and gp3, this represents the number of IOPS that are provisioned for the // volume. For gp2, this represents the baseline performance of the volume and // the rate at which the volume accumulates I/O credits for bursting. For more // information about General Purpose SSD baseline performance, I/O credits, // and bursting, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) // in the Amazon Elastic Compute Cloud User Guide. // // Constraint: IOPS should be a positive value. // Validation of IOPS (i.e. whether it is allowed and is in the specified range for a particular volume type) is done on aws side. // // Condition: This parameter is required for requests to create io1 volumes; // Do not specify it in requests to create gp2, st1, sc1, or standard volumes. Iops int64 `json:"iops,omitempty"` // The throughput that the volume supports, in MiB/s. // // This parameter is valid only for gp3 volumes. // // Valid Range: The range as of 16th Aug 2022 is from 125 MiB/s to 1000 MiB/s. For more info refer (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) Throughput *int64 `json:"throughput,omitempty"` // Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed // CMK under which the EBS volume is encrypted. // // This parameter is only supported on BlockDeviceMapping objects called by // RunInstances (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html), // RequestSpotFleet (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html), // and RequestSpotInstances (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html). KmsKeyID *string `json:"kmsKeyID,omitempty"` // The ID of the snapshot. SnapshotID *string `json:"snapshotID,omitempty"` // The size of the volume, in GiB. // // Constraints: 1-16384 for General Purpose SSD (gp2), 4-16384 for Provisioned // IOPS SSD (io1), 500-16384 for Throughput Optimized HDD (st1), 500-16384 for // Cold HDD (sc1), and 1-1024 for Magnetic (standard) volumes. If you specify // a snapshot, the volume size must be equal to or larger than the snapshot // size. // // Default: If you're creating the volume from a snapshot and don't specify // a volume size, the default is the snapshot size. VolumeSize int64 `json:"volumeSize,omitempty"` // The volume type: gp2, gp3, io1, st1, sc1, or standard. // // Default: standard VolumeType string `json:"volumeType,omitempty"` }
AWSEbsBlockDeviceSpec describes a block device for an EBS volume. Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EbsBlockDevice
type AWSIAMProfileSpec ¶
type AWSIAMProfileSpec struct { // The Amazon Resource Name (ARN) of the machine profile. ARN string `json:"arn,omitempty"` // The name of the machine profile. Name string `json:"name,omitempty"` }
AWSIAMProfileSpec describes an IAM machine profile.
type AWSNetworkInterfaceSpec ¶
type AWSNetworkInterfaceSpec struct { // Indicates whether to assign a public IPv4 address to an machine you launch // in a VPC. The public IP address can only be assigned to a network interface // for eth0, and can only be assigned to a new network interface, not an existing // one. You cannot specify more than one network interface in the request. If // launching into a default subnet, the default value is true. AssociatePublicIPAddress *bool `json:"associatePublicIPAddress,omitempty"` // Ipv6AddressCount represents the number of IPv6 addresses to assign to the network interface. Amazon EC2 // chooses the IPv6 addresses from the range of the subnet. Ipv6AddressCount *int64 `json:"ipv6AddressCount,omitempty"` // Ipv6PrefixCount represents the number of IPv6 delegated prefixes to be automatically assigned to the // network interface. Ipv6PrefixCount *int64 `json:"ipv6PrefixCount,omitempty"` // If set to true, the interface is deleted when the machine is terminated. // You can specify true only if creating a new network interface when launching // an machine. DeleteOnTermination *bool `json:"deleteOnTermination,omitempty"` // The description of the network interface. Applies only if creating a network // interface when launching an machine. Description *string `json:"description,omitempty"` // The IDs of the security groups for the network interface. Applies only if // creating a network interface when launching an machine. SecurityGroupIDs []string `json:"securityGroupIDs,omitempty"` // The ID of the subnet associated with the network string. Applies only if // creating a network interface when launching an machine. SubnetID string `json:"subnetID,omitempty"` }
AWSNetworkInterfaceSpec describes a network interface. Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MachineAWSNetworkInterfaceSpecification
type AWSProviderSpec ¶
type AWSProviderSpec struct { // APIVersion determines the APIversion for the provider APIs APIVersion string `json:"apiVersion,omitempty"` // AMI is the disk image version AMI string `json:"ami,omitempty"` // BlockDevices is the list of block devices to be mapped to the instances BlockDevices []AWSBlockDeviceMappingSpec `json:"blockDevices,omitempty"` // CapacityReservationTarget is an optional field that allows assigning of machines to an AWS Capacity Reservation CapacityReservationTarget *AWSCapacityReservationTargetSpec `json:"capacityReservation,omitempty"` // EbsOptimized specifies that the EBS is optimized EbsOptimized bool `json:"ebsOptimized,omitempty"` // IAM details for the machine IAM AWSIAMProfileSpec `json:"iam,omitempty"` // MachineType contains the EC2 instance type MachineType string `json:"machineType,omitempty"` // KeyName is an optional field that contains the SSH keypair KeyName *string `json:"keyName,omitempty"` // Monitoring specifies if monitoring is enabled Monitoring bool `json:"monitoring,omitempty"` // NetworkInterfaces contains a list of NetworkInterfaceSpecs NetworkInterfaces []AWSNetworkInterfaceSpec `json:"networkInterfaces,omitempty"` // Region contains the AWS region for the machine Region string `json:"region,omitempty"` // SpotPrice is an optional field that if set specifies to use spot instances // When set to "" there is no maxPrice else, specifies the maxPrice SpotPrice *string `json:"spotPrice,omitempty"` // If set to false, source and destination checks are disabled, default is true SrcAndDstChecksEnabled *bool `json:"srcAndDstChecksEnabled,omitempty"` // Tags to be specified on the EC2 instances Tags map[string]string `json:"tags,omitempty"` // InstanceMetadataOptions contains configuration for controlling access to the metadata API. InstanceMetadataOptions *InstanceMetadataOptions `json:"instanceMetadataOptions,omitempty"` // CPUOptions contains detailed configuration for the number of cores and threads for the instance. CPUOptions *CPUOptions `json:"cpuOptions,omitempty"` }
AWSProviderSpec is the spec to be used while parsing the calls.
type CPUOptions ¶ added in v0.20.0
type CPUOptions struct { // CoreCount specifies the number of CPU cores per instance. CoreCount *int64 `json:"coreCount"` // ThreadsPerCore sets the number of threads per core. Must be either '1' (disable multi-threading) or '2'. ThreadsPerCore *int64 `json:"threadsPerCore"` }
CPUOptions contains detailed configuration for the number of cores and threads for the instance.
type InstanceMetadataOptions ¶ added in v0.17.0
type InstanceMetadataOptions struct { // HTTPEndpoint controls whether InstanceMetadataOptions API is enabled. By default, access to the metadata API is enabled. HTTPEndpoint *string `json:"httpEndpoint,omitempty"` // HTTPPutResponseHopLimit is the response hop limit for instance metadata requests. It controls which metadata API // version is enabled. HTTPPutResponseHopLimit *int64 `json:"httpPutResponseHopLimit,omitempty"` // HTTPTokens enforces the use of metadata v2 API. HTTPTokens *string `json:"httpTokens,omitempty"` }
InstanceMetadataOptions contains configuration for controlling access to the metadata API.
Directories ¶
Path | Synopsis |
---|---|
Package validation - validation is used to validate cloud specific ProviderSpec for AWS
|
Package validation - validation is used to validate cloud specific ProviderSpec for AWS |