aws

package
v0.0.0-...-ac479d4 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2024 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Overview

Package aws contains API Schema definitions for AWS clusters. +k8s:deepcopy-gen=package

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AssumeRole

type AssumeRole struct {
	RoleARN string `json:"roleARN"`

	// ExternalID is random string generated by platform so that assume role
	// is protected from confused deputy problem.
	// more info: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
	// +optional
	ExternalID string `json:"externalID,omitempty"`
}

AssumeRole stores information for the IAM role that needs to be assumed using an existing AWS session.

func (*AssumeRole) DeepCopy

func (in *AssumeRole) DeepCopy() *AssumeRole

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

func (*AssumeRole) DeepCopyInto

func (in *AssumeRole) DeepCopyInto(out *AssumeRole)

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

type EC2Metadata

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
	// +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

func (*EC2Metadata) DeepCopy

func (in *EC2Metadata) DeepCopy() *EC2Metadata

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

func (*EC2Metadata) DeepCopyInto

func (in *EC2Metadata) DeepCopyInto(out *EC2Metadata)

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

type EC2RootVolume

type EC2RootVolume struct {
	// IOPS defines the iops for the storage.
	// +optional
	IOPS int `json:"iops,omitempty"`
	// Size defines the size of the storage.
	Size int `json:"size"`
	// Type defines the type of the storage.
	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.

func (*EC2RootVolume) DeepCopy

func (in *EC2RootVolume) DeepCopy() *EC2RootVolume

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

func (*EC2RootVolume) DeepCopyInto

func (in *EC2RootVolume) DeepCopyInto(out *EC2RootVolume)

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

type MachinePoolPlatform

type MachinePoolPlatform struct {
	// Zones is list of availability zones that can be used.
	Zones []string `json:"zones,omitempty"`

	// Subnets is the list of IDs of subnets to which to attach the machines.
	// There must be exactly one subnet for each availability zone used.
	// These subnets may be public or private.
	// As a special case, for consistency with install-config, you may specify exactly one
	// private and one public subnet for each availability zone. In this case, the public
	// subnets will be filtered out and only the private subnets will be used.
	// If empty/omitted, we will look for subnets in each availability zone tagged with
	// Name=<clusterID>-private-<az> (legacy terraform) or <clusterID>-subnet-private-<az>
	// (CAPA).
	Subnets []string `json:"subnets,omitempty"`

	// InstanceType defines the ec2 instance type.
	// eg. m4-large
	InstanceType string `json:"type"`

	// EC2RootVolume defines the storage for ec2 instance.
	EC2RootVolume `json:"rootVolume"`

	// SpotMarketOptions allows users to configure instances to be run using AWS Spot instances.
	// +optional
	SpotMarketOptions *SpotMarketOptions `json:"spotMarketOptions,omitempty"`

	// EC2MetadataOptions defines metadata service interaction options for EC2 instances in the machine pool.
	// +optional
	EC2Metadata *EC2Metadata `json:"metadataService,omitempty"`

	// AdditionalSecurityGroupIDs contains IDs of additional security groups for machines, where each ID
	// is presented in the format sg-xxxx.
	//
	// +optional
	AdditionalSecurityGroupIDs []string `json:"additionalSecurityGroupIDs,omitempty"`

	// UserTags contains the user defined tags to be supplied for the ec2 instance.
	// Note that these will be merged with ClusterDeployment.Spec.Platform.AWS.UserTags, with
	// this field taking precedence when keys collide.
	// +optional
	UserTags map[string]string `json:"userTags,omitempty"`
}

MachinePoolPlatform stores the configuration for a machine pool installed on AWS.

func (*MachinePoolPlatform) DeepCopy

func (in *MachinePoolPlatform) DeepCopy() *MachinePoolPlatform

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

func (*MachinePoolPlatform) DeepCopyInto

func (in *MachinePoolPlatform) DeepCopyInto(out *MachinePoolPlatform)

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

type Metadata

type Metadata struct {
	// HostedZoneRole is the role to assume when performing operations
	// on a hosted zone owned by another account.
	HostedZoneRole *string `json:"hostedZoneRole,omitempty"`
}

Metadata contains AWS metadata (e.g. for uninstalling the cluster).

func (*Metadata) DeepCopy

func (in *Metadata) DeepCopy() *Metadata

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

func (*Metadata) DeepCopyInto

func (in *Metadata) DeepCopyInto(out *Metadata)

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

type Platform

type Platform struct {
	// CredentialsSecretRef refers to a secret that contains the AWS account access
	// credentials.
	// +optional
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef,omitempty"`

	// CredentialsAssumeRole refers to the IAM role that must be assumed to obtain
	// AWS account access for the cluster operations.
	// +optional
	CredentialsAssumeRole *AssumeRole `json:"credentialsAssumeRole,omitempty"`

	// Region specifies the AWS region where the cluster will be created.
	Region string `json:"region"`

	// UserTags specifies additional tags for AWS resources created for the cluster.
	// +optional
	UserTags map[string]string `json:"userTags,omitempty"`

	// PrivateLink allows uses to enable access to the cluster's API server using AWS
	// PrivateLink. AWS PrivateLink includes a pair of VPC Endpoint Service and VPC
	// Endpoint accross AWS accounts and allows clients to connect to services using AWS's
	// internal networking instead of the Internet.
	PrivateLink *PrivateLinkAccess `json:"privateLink,omitempty"`
}

Platform stores all the global configuration that all machinesets use.

func (*Platform) DeepCopy

func (in *Platform) DeepCopy() *Platform

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

func (*Platform) DeepCopyInto

func (in *Platform) DeepCopyInto(out *Platform)

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

type PlatformStatus

type PlatformStatus struct {
	PrivateLink *PrivateLinkAccessStatus `json:"privateLink,omitempty"`
}

PlatformStatus contains the observed state on AWS platform.

func (*PlatformStatus) DeepCopy

func (in *PlatformStatus) DeepCopy() *PlatformStatus

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

func (*PlatformStatus) DeepCopyInto

func (in *PlatformStatus) DeepCopyInto(out *PlatformStatus)

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

type PrivateLinkAccess

type PrivateLinkAccess struct {
	Enabled bool `json:"enabled"`

	// AdditionalAllowedPrincipals is a list of additional allowed principal ARNs to be configured
	// for the Private Link cluster's VPC Endpoint Service.
	// ARNs provided as AdditionalAllowedPrincipals will be configured for the cluster's VPC Endpoint
	// Service in addition to the IAM entity used by Hive.
	// +optional
	AdditionalAllowedPrincipals *[]string `json:"additionalAllowedPrincipals,omitempty"`
}

PrivateLinkAccess configures access to the cluster API using AWS PrivateLink

func (*PrivateLinkAccess) DeepCopy

func (in *PrivateLinkAccess) DeepCopy() *PrivateLinkAccess

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

func (*PrivateLinkAccess) DeepCopyInto

func (in *PrivateLinkAccess) DeepCopyInto(out *PrivateLinkAccess)

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

type PrivateLinkAccessStatus

type PrivateLinkAccessStatus struct {
	// +optional
	VPCEndpointService VPCEndpointService `json:"vpcEndpointService,omitempty"`
	// +optional
	VPCEndpointID string `json:"vpcEndpointID,omitempty"`
	// +optional
	HostedZoneID string `json:"hostedZoneID,omitempty"`
}

PrivateLinkAccessStatus contains the observed state for PrivateLinkAccess resources.

func (*PrivateLinkAccessStatus) DeepCopy

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

func (*PrivateLinkAccessStatus) DeepCopyInto

func (in *PrivateLinkAccessStatus) DeepCopyInto(out *PrivateLinkAccessStatus)

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

type SpotMarketOptions

type SpotMarketOptions struct {
	// The maximum price the user is willing to pay for their instances
	// Default: On-Demand price
	// +optional
	MaxPrice *string `json:"maxPrice,omitempty"`
}

SpotMarketOptions defines the options available to a user when configuring Machines to run on Spot instances. Most users should provide an empty struct.

func (*SpotMarketOptions) DeepCopy

func (in *SpotMarketOptions) DeepCopy() *SpotMarketOptions

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

func (*SpotMarketOptions) DeepCopyInto

func (in *SpotMarketOptions) DeepCopyInto(out *SpotMarketOptions)

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

type VPCEndpointService

type VPCEndpointService struct {
	Name string `json:"name,omitempty"`
	ID   string `json:"id,omitempty"`
	// DefaultAllowedPrincipal is the ARN of the IAM entity used by Hive as configured for the Private
	// Link cluster's VPC Endpoint Service.
	// +optional
	DefaultAllowedPrincipal *string `json:"defaultAllowedPrincipal,omitempty"`
	// AdditionalAllowedPrincipals is a list of additional allowed principal ARNs that have been configured
	// for the Private Link cluster's VPC Endpoint Service. This list in Status is used to determine if a sync
	// of Allowed Principals is needed outside of the regular reconcile period of 2hrs.
	// +optional
	AdditionalAllowedPrincipals *[]string `json:"additionalAllowedPrincipals,omitempty"`
}

func (*VPCEndpointService) DeepCopy

func (in *VPCEndpointService) DeepCopy() *VPCEndpointService

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

func (*VPCEndpointService) DeepCopyInto

func (in *VPCEndpointService) DeepCopyInto(out *VPCEndpointService)

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

Jump to

Keyboard shortcuts

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