awsekslegacy

package
v1.114.0-devpreview Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AwsAuth_IsConstruct

func AwsAuth_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnAddon_CFN_RESOURCE_TYPE_NAME

func CfnAddon_CFN_RESOURCE_TYPE_NAME() *string

func CfnAddon_IsCfnElement

func CfnAddon_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnAddon_IsCfnResource

func CfnAddon_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnAddon_IsConstruct

func CfnAddon_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnCluster_CFN_RESOURCE_TYPE_NAME

func CfnCluster_CFN_RESOURCE_TYPE_NAME() *string

func CfnCluster_IsCfnElement

func CfnCluster_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnCluster_IsCfnResource

func CfnCluster_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnCluster_IsConstruct

func CfnCluster_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnFargateProfile_CFN_RESOURCE_TYPE_NAME

func CfnFargateProfile_CFN_RESOURCE_TYPE_NAME() *string

func CfnFargateProfile_IsCfnElement

func CfnFargateProfile_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnFargateProfile_IsCfnResource

func CfnFargateProfile_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnFargateProfile_IsConstruct

func CfnFargateProfile_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnNodegroup_CFN_RESOURCE_TYPE_NAME

func CfnNodegroup_CFN_RESOURCE_TYPE_NAME() *string

func CfnNodegroup_IsCfnElement

func CfnNodegroup_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnNodegroup_IsCfnResource

func CfnNodegroup_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnNodegroup_IsConstruct

func CfnNodegroup_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func Cluster_IsConstruct

func Cluster_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func Cluster_IsResource

func Cluster_IsResource(construct awscdk.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func HelmChart_IsConstruct

func HelmChart_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func HelmChart_RESOURCE_TYPE

func HelmChart_RESOURCE_TYPE() *string

func KubernetesResource_IsConstruct

func KubernetesResource_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func KubernetesResource_RESOURCE_TYPE

func KubernetesResource_RESOURCE_TYPE() *string

func NewAwsAuth_Override

func NewAwsAuth_Override(a AwsAuth, scope awscdk.Construct, id *string, props *AwsAuthProps)

Experimental.

func NewCfnAddon_Override

func NewCfnAddon_Override(c CfnAddon, scope awscdk.Construct, id *string, props *CfnAddonProps)

Create a new `AWS::EKS::Addon`.

func NewCfnCluster_Override

func NewCfnCluster_Override(c CfnCluster, scope awscdk.Construct, id *string, props *CfnClusterProps)

Create a new `AWS::EKS::Cluster`.

func NewCfnFargateProfile_Override

func NewCfnFargateProfile_Override(c CfnFargateProfile, scope awscdk.Construct, id *string, props *CfnFargateProfileProps)

Create a new `AWS::EKS::FargateProfile`.

func NewCfnNodegroup_Override

func NewCfnNodegroup_Override(c CfnNodegroup, scope awscdk.Construct, id *string, props *CfnNodegroupProps)

Create a new `AWS::EKS::Nodegroup`.

func NewCluster_Override

func NewCluster_Override(c Cluster, scope awscdk.Construct, id *string, props *ClusterProps)

Initiates an EKS Cluster with the supplied arguments. Experimental.

func NewEksOptimizedImage_Override

func NewEksOptimizedImage_Override(e EksOptimizedImage, props *EksOptimizedImageProps)

Constructs a new instance of the EcsOptimizedAmi class. Experimental.

func NewHelmChart_Override

func NewHelmChart_Override(h HelmChart, scope awscdk.Construct, id *string, props *HelmChartProps)

Experimental.

func NewKubernetesResource_Override

func NewKubernetesResource_Override(k KubernetesResource, scope awscdk.Construct, id *string, props *KubernetesResourceProps)

Experimental.

Types

type AutoScalingGroupOptions

type AutoScalingGroupOptions struct {
	// Configures the EC2 user-data script for instances in this autoscaling group to bootstrap the node (invoke `/etc/eks/bootstrap.sh`) and associate it with the EKS cluster.
	//
	// If you wish to provide a custom user data script, set this to `false` and
	// manually invoke `autoscalingGroup.addUserData()`.
	// Experimental.
	BootstrapEnabled *bool `json:"bootstrapEnabled"`
	// Allows options for node bootstrapping through EC2 user data.
	// Experimental.
	BootstrapOptions *BootstrapOptions `json:"bootstrapOptions"`
	// Will automatically update the aws-auth ConfigMap to map the IAM instance role to RBAC.
	//
	// This cannot be explicitly set to `true` if the cluster has kubectl disabled.
	// Experimental.
	MapRole *bool `json:"mapRole"`
}

Options for adding an AutoScalingGroup as capacity. Experimental.

type AwsAuth

type AwsAuth interface {
	awscdk.Construct
	Node() awscdk.ConstructNode
	AddAccount(accountId *string)
	AddMastersRole(role awsiam.IRole, username *string)
	AddRoleMapping(role awsiam.IRole, mapping *Mapping)
	AddUserMapping(user awsiam.IUser, mapping *Mapping)
	OnPrepare()
	OnSynthesize(session constructs.ISynthesisSession)
	OnValidate() *[]*string
	Prepare()
	Synthesize(session awscdk.ISynthesisSession)
	ToString() *string
	Validate() *[]*string
}

Manages mapping between IAM users and roles to Kubernetes RBAC configuration. See: https://docs.aws.amazon.com/en_us/eks/latest/userguide/add-user-role.html

Experimental.

func NewAwsAuth

func NewAwsAuth(scope awscdk.Construct, id *string, props *AwsAuthProps) AwsAuth

Experimental.

type AwsAuthProps

type AwsAuthProps struct {
	// The EKS cluster to apply this configuration to.
	//
	// [disable-awslint:ref-via-interface]
	// Experimental.
	Cluster Cluster `json:"cluster"`
}

Experimental.

type BootstrapOptions

type BootstrapOptions struct {
	// Additional command line arguments to pass to the `/etc/eks/bootstrap.sh` command.
	// See: https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh
	//
	// Experimental.
	AdditionalArgs *string `json:"additionalArgs"`
	// Number of retry attempts for AWS API call (DescribeCluster).
	// Experimental.
	AwsApiRetryAttempts *float64 `json:"awsApiRetryAttempts"`
	// The contents of the `/etc/docker/daemon.json` file. Useful if you want a custom config differing from the default one in the EKS AMI.
	// Experimental.
	DockerConfigJson *string `json:"dockerConfigJson"`
	// Restores the docker default bridge network.
	// Experimental.
	EnableDockerBridge *bool `json:"enableDockerBridge"`
	// Extra arguments to add to the kubelet.
	//
	// Useful for adding labels or taints.
	//
	// TODO: EXAMPLE
	//
	// Experimental.
	KubeletExtraArgs *string `json:"kubeletExtraArgs"`
	// Sets `--max-pods` for the kubelet based on the capacity of the EC2 instance.
	// Experimental.
	UseMaxPods *bool `json:"useMaxPods"`
}

Experimental.

type CapacityOptions

type CapacityOptions struct {
	// Whether the instances can initiate connections to anywhere by default.
	// Experimental.
	AllowAllOutbound *bool `json:"allowAllOutbound"`
	// Whether instances in the Auto Scaling Group should have public IP addresses associated with them.
	// Experimental.
	AssociatePublicIpAddress *bool `json:"associatePublicIpAddress"`
	// The name of the Auto Scaling group.
	//
	// This name must be unique per Region per account.
	// Experimental.
	AutoScalingGroupName *string `json:"autoScalingGroupName"`
	// Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
	//
	// Each instance that is launched has an associated root device volume,
	// either an Amazon EBS volume or an instance store volume.
	// You can use block device mappings to specify additional EBS volumes or
	// instance store volumes to attach to an instance when it is launched.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html
	//
	// Experimental.
	BlockDevices *[]*awsautoscaling.BlockDevice `json:"blockDevices"`
	// Default scaling cooldown for this AutoScalingGroup.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Initial amount of instances in the fleet.
	//
	// If this is set to a number, every deployment will reset the amount of
	// instances to this number. It is recommended to leave this value blank.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-desiredcapacity
	//
	// Experimental.
	DesiredCapacity *float64 `json:"desiredCapacity"`
	// Enable monitoring for group metrics, these metrics describe the group rather than any of its instances.
	//
	// To report all group metrics use `GroupMetrics.all()`
	// Group metrics are reported in a granularity of 1 minute at no additional charge.
	// Experimental.
	GroupMetrics *[]awsautoscaling.GroupMetrics `json:"groupMetrics"`
	// Configuration for health checks.
	// Experimental.
	HealthCheck awsautoscaling.HealthCheck `json:"healthCheck"`
	// If the ASG has scheduled actions, don't reset unchanged group sizes.
	//
	// Only used if the ASG has scheduled actions (which may scale your ASG up
	// or down regardless of cdk deployments). If true, the size of the group
	// will only be reset if it has been changed in the CDK app. If false, the
	// sizes will always be changed back to what they were in the CDK app
	// on deployment.
	// Experimental.
	IgnoreUnmodifiedSizeProperties *bool `json:"ignoreUnmodifiedSizeProperties"`
	// Controls whether instances in this group are launched with detailed or basic monitoring.
	//
	// When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account
	// is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes.
	// See: https://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html#enable-as-instance-metrics
	//
	// Experimental.
	InstanceMonitoring awsautoscaling.Monitoring `json:"instanceMonitoring"`
	// Name of SSH keypair to grant access to instances.
	// Experimental.
	KeyName *string `json:"keyName"`
	// Maximum number of instances in the fleet.
	// Experimental.
	MaxCapacity *float64 `json:"maxCapacity"`
	// The maximum amount of time that an instance can be in service.
	//
	// The maximum duration applies
	// to all current and future instances in the group. As an instance approaches its maximum duration,
	// it is terminated and replaced, and cannot be used again.
	//
	// You must specify a value of at least 604,800 seconds (7 days). To clear a previously set value,
	// leave this property undefined.
	// See: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html
	//
	// Experimental.
	MaxInstanceLifetime awscdk.Duration `json:"maxInstanceLifetime"`
	// Minimum number of instances in the fleet.
	// Experimental.
	MinCapacity *float64 `json:"minCapacity"`
	// Whether newly-launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in.
	//
	// By default, Auto Scaling can terminate an instance at any time after launch
	// when scaling in an Auto Scaling Group, subject to the group's termination
	// policy. However, you may wish to protect newly-launched instances from
	// being scaled in if they are going to run critical applications that should
	// not be prematurely terminated.
	//
	// This flag must be enabled if the Auto Scaling Group will be associated with
	// an ECS Capacity Provider with managed termination protection.
	// Experimental.
	NewInstancesProtectedFromScaleIn *bool `json:"newInstancesProtectedFromScaleIn"`
	// Configure autoscaling group to send notifications about fleet changes to an SNS topic(s).
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-notificationconfigurations
	//
	// Experimental.
	Notifications *[]*awsautoscaling.NotificationConfiguration `json:"notifications"`
	// SNS topic to send notifications about fleet changes.
	// Deprecated: use `notifications`
	NotificationsTopic awssns.ITopic `json:"notificationsTopic"`
	// Configuration for replacing updates.
	//
	// Only used if updateType == UpdateType.ReplacingUpdate. Specifies how
	// many instances must signal success for the update to succeed.
	// Deprecated: Use `signals` instead
	ReplacingUpdateMinSuccessfulInstancesPercent *float64 `json:"replacingUpdateMinSuccessfulInstancesPercent"`
	// How many ResourceSignal calls CloudFormation expects before the resource is considered created.
	// Deprecated: Use `signals` instead.
	ResourceSignalCount *float64 `json:"resourceSignalCount"`
	// The length of time to wait for the resourceSignalCount.
	//
	// The maximum value is 43200 (12 hours).
	// Deprecated: Use `signals` instead.
	ResourceSignalTimeout awscdk.Duration `json:"resourceSignalTimeout"`
	// Configuration for rolling updates.
	//
	// Only used if updateType == UpdateType.RollingUpdate.
	// Deprecated: Use `updatePolicy` instead
	RollingUpdateConfiguration *awsautoscaling.RollingUpdateConfiguration `json:"rollingUpdateConfiguration"`
	// Configure waiting for signals during deployment.
	//
	// Use this to pause the CloudFormation deployment to wait for the instances
	// in the AutoScalingGroup to report successful startup during
	// creation and updates. The UserData script needs to invoke `cfn-signal`
	// with a success or failure code after it is done setting up the instance.
	//
	// Without waiting for signals, the CloudFormation deployment will proceed as
	// soon as the AutoScalingGroup has been created or updated but before the
	// instances in the group have been started.
	//
	// For example, to have instances wait for an Elastic Load Balancing health check before
	// they signal success, add a health-check verification by using the
	// cfn-init helper script. For an example, see the verify_instance_health
	// command in the Auto Scaling rolling updates sample template:
	//
	// https://github.com/awslabs/aws-cloudformation-templates/blob/master/aws/services/AutoScaling/AutoScalingRollingUpdates.yaml
	// Experimental.
	Signals awsautoscaling.Signals `json:"signals"`
	// The maximum hourly price (in USD) to be paid for any Spot Instance launched to fulfill the request.
	//
	// Spot Instances are
	// launched when the price you specify exceeds the current Spot market price.
	// Experimental.
	SpotPrice *string `json:"spotPrice"`
	// What to do when an AutoScalingGroup's instance configuration is changed.
	//
	// This is applied when any of the settings on the ASG are changed that
	// affect how the instances should be created (VPC, instance type, startup
	// scripts, etc.). It indicates how the existing instances should be
	// replaced with new instances matching the new config. By default, nothing
	// is done and only new instances are launched with the new config.
	// Experimental.
	UpdatePolicy awsautoscaling.UpdatePolicy `json:"updatePolicy"`
	// What to do when an AutoScalingGroup's instance configuration is changed.
	//
	// This is applied when any of the settings on the ASG are changed that
	// affect how the instances should be created (VPC, instance type, startup
	// scripts, etc.). It indicates how the existing instances should be
	// replaced with new instances matching the new config. By default, nothing
	// is done and only new instances are launched with the new config.
	// Deprecated: Use `updatePolicy` instead
	UpdateType awsautoscaling.UpdateType `json:"updateType"`
	// Where to place instances within the VPC.
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `json:"vpcSubnets"`
	// Instance type of the instances to start.
	// Experimental.
	InstanceType awsec2.InstanceType `json:"instanceType"`
	// Configures the EC2 user-data script for instances in this autoscaling group to bootstrap the node (invoke `/etc/eks/bootstrap.sh`) and associate it with the EKS cluster.
	//
	// If you wish to provide a custom user data script, set this to `false` and
	// manually invoke `autoscalingGroup.addUserData()`.
	// Experimental.
	BootstrapEnabled *bool `json:"bootstrapEnabled"`
	// EKS node bootstrapping options.
	// Experimental.
	BootstrapOptions *BootstrapOptions `json:"bootstrapOptions"`
	// Will automatically update the aws-auth ConfigMap to map the IAM instance role to RBAC.
	//
	// This cannot be explicitly set to `true` if the cluster has kubectl disabled.
	// Experimental.
	MapRole *bool `json:"mapRole"`
}

Options for adding worker nodes. Experimental.

type CfnAddon

type CfnAddon interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AddonName() *string
	SetAddonName(val *string)
	AddonVersion() *string
	SetAddonVersion(val *string)
	AttrArn() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ClusterName() *string
	SetClusterName(val *string)
	CreationStack() *[]*string
	LogicalId() *string
	Node() awscdk.ConstructNode
	Ref() *string
	ResolveConflicts() *string
	SetResolveConflicts(val *string)
	ServiceAccountRoleArn() *string
	SetServiceAccountRoleArn(val *string)
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OnPrepare()
	OnSynthesize(session constructs.ISynthesisSession)
	OnValidate() *[]*string
	OverrideLogicalId(newLogicalId *string)
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	Synthesize(session awscdk.ISynthesisSession)
	ToString() *string
	Validate() *[]*string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EKS::Addon`.

func NewCfnAddon

func NewCfnAddon(scope awscdk.Construct, id *string, props *CfnAddonProps) CfnAddon

Create a new `AWS::EKS::Addon`.

type CfnAddonProps

type CfnAddonProps struct {
	// `AWS::EKS::Addon.AddonName`.
	AddonName *string `json:"addonName"`
	// `AWS::EKS::Addon.ClusterName`.
	ClusterName *string `json:"clusterName"`
	// `AWS::EKS::Addon.AddonVersion`.
	AddonVersion *string `json:"addonVersion"`
	// `AWS::EKS::Addon.ResolveConflicts`.
	ResolveConflicts *string `json:"resolveConflicts"`
	// `AWS::EKS::Addon.ServiceAccountRoleArn`.
	ServiceAccountRoleArn *string `json:"serviceAccountRoleArn"`
	// `AWS::EKS::Addon.Tags`.
	Tags *[]*awscdk.CfnTag `json:"tags"`
}

Properties for defining a `AWS::EKS::Addon`.

type CfnCluster

type CfnCluster interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrArn() *string
	AttrCertificateAuthorityData() *string
	AttrClusterSecurityGroupId() *string
	AttrEncryptionConfigKeyArn() *string
	AttrEndpoint() *string
	AttrOpenIdConnectIssuerUrl() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	EncryptionConfig() interface{}
	SetEncryptionConfig(val interface{})
	KubernetesNetworkConfig() interface{}
	SetKubernetesNetworkConfig(val interface{})
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() awscdk.ConstructNode
	Ref() *string
	ResourcesVpcConfig() interface{}
	SetResourcesVpcConfig(val interface{})
	RoleArn() *string
	SetRoleArn(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	Version() *string
	SetVersion(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OnPrepare()
	OnSynthesize(session constructs.ISynthesisSession)
	OnValidate() *[]*string
	OverrideLogicalId(newLogicalId *string)
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	Synthesize(session awscdk.ISynthesisSession)
	ToString() *string
	Validate() *[]*string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EKS::Cluster`.

func NewCfnCluster

func NewCfnCluster(scope awscdk.Construct, id *string, props *CfnClusterProps) CfnCluster

Create a new `AWS::EKS::Cluster`.

type CfnClusterProps

type CfnClusterProps struct {
	// `AWS::EKS::Cluster.ResourcesVpcConfig`.
	ResourcesVpcConfig interface{} `json:"resourcesVpcConfig"`
	// `AWS::EKS::Cluster.RoleArn`.
	RoleArn *string `json:"roleArn"`
	// `AWS::EKS::Cluster.EncryptionConfig`.
	EncryptionConfig interface{} `json:"encryptionConfig"`
	// `AWS::EKS::Cluster.KubernetesNetworkConfig`.
	KubernetesNetworkConfig interface{} `json:"kubernetesNetworkConfig"`
	// `AWS::EKS::Cluster.Name`.
	Name *string `json:"name"`
	// `AWS::EKS::Cluster.Version`.
	Version *string `json:"version"`
}

Properties for defining a `AWS::EKS::Cluster`.

type CfnCluster_EncryptionConfigProperty

type CfnCluster_EncryptionConfigProperty struct {
	// `CfnCluster.EncryptionConfigProperty.Provider`.
	Provider interface{} `json:"provider"`
	// `CfnCluster.EncryptionConfigProperty.Resources`.
	Resources *[]*string `json:"resources"`
}

type CfnCluster_KubernetesNetworkConfigProperty

type CfnCluster_KubernetesNetworkConfigProperty struct {
	// `CfnCluster.KubernetesNetworkConfigProperty.ServiceIpv4Cidr`.
	ServiceIpv4Cidr *string `json:"serviceIpv4Cidr"`
}

type CfnCluster_ProviderProperty

type CfnCluster_ProviderProperty struct {
	// `CfnCluster.ProviderProperty.KeyArn`.
	KeyArn *string `json:"keyArn"`
}

type CfnCluster_ResourcesVpcConfigProperty

type CfnCluster_ResourcesVpcConfigProperty struct {
	// `CfnCluster.ResourcesVpcConfigProperty.SubnetIds`.
	SubnetIds *[]*string `json:"subnetIds"`
	// `CfnCluster.ResourcesVpcConfigProperty.SecurityGroupIds`.
	SecurityGroupIds *[]*string `json:"securityGroupIds"`
}

type CfnFargateProfile

type CfnFargateProfile interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrArn() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ClusterName() *string
	SetClusterName(val *string)
	CreationStack() *[]*string
	FargateProfileName() *string
	SetFargateProfileName(val *string)
	LogicalId() *string
	Node() awscdk.ConstructNode
	PodExecutionRoleArn() *string
	SetPodExecutionRoleArn(val *string)
	Ref() *string
	Selectors() interface{}
	SetSelectors(val interface{})
	Stack() awscdk.Stack
	Subnets() *[]*string
	SetSubnets(val *[]*string)
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OnPrepare()
	OnSynthesize(session constructs.ISynthesisSession)
	OnValidate() *[]*string
	OverrideLogicalId(newLogicalId *string)
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	Synthesize(session awscdk.ISynthesisSession)
	ToString() *string
	Validate() *[]*string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EKS::FargateProfile`.

func NewCfnFargateProfile

func NewCfnFargateProfile(scope awscdk.Construct, id *string, props *CfnFargateProfileProps) CfnFargateProfile

Create a new `AWS::EKS::FargateProfile`.

type CfnFargateProfileProps

type CfnFargateProfileProps struct {
	// `AWS::EKS::FargateProfile.ClusterName`.
	ClusterName *string `json:"clusterName"`
	// `AWS::EKS::FargateProfile.PodExecutionRoleArn`.
	PodExecutionRoleArn *string `json:"podExecutionRoleArn"`
	// `AWS::EKS::FargateProfile.Selectors`.
	Selectors interface{} `json:"selectors"`
	// `AWS::EKS::FargateProfile.FargateProfileName`.
	FargateProfileName *string `json:"fargateProfileName"`
	// `AWS::EKS::FargateProfile.Subnets`.
	Subnets *[]*string `json:"subnets"`
	// `AWS::EKS::FargateProfile.Tags`.
	Tags *[]*awscdk.CfnTag `json:"tags"`
}

Properties for defining a `AWS::EKS::FargateProfile`.

type CfnFargateProfile_LabelProperty

type CfnFargateProfile_LabelProperty struct {
	// `CfnFargateProfile.LabelProperty.Key`.
	Key *string `json:"key"`
	// `CfnFargateProfile.LabelProperty.Value`.
	Value *string `json:"value"`
}

type CfnFargateProfile_SelectorProperty

type CfnFargateProfile_SelectorProperty struct {
	// `CfnFargateProfile.SelectorProperty.Namespace`.
	Namespace *string `json:"namespace"`
	// `CfnFargateProfile.SelectorProperty.Labels`.
	Labels interface{} `json:"labels"`
}

type CfnNodegroup

type CfnNodegroup interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AmiType() *string
	SetAmiType(val *string)
	AttrArn() *string
	AttrClusterName() *string
	AttrNodegroupName() *string
	CapacityType() *string
	SetCapacityType(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ClusterName() *string
	SetClusterName(val *string)
	CreationStack() *[]*string
	DiskSize() *float64
	SetDiskSize(val *float64)
	ForceUpdateEnabled() interface{}
	SetForceUpdateEnabled(val interface{})
	InstanceTypes() *[]*string
	SetInstanceTypes(val *[]*string)
	Labels() interface{}
	SetLabels(val interface{})
	LaunchTemplate() interface{}
	SetLaunchTemplate(val interface{})
	LogicalId() *string
	Node() awscdk.ConstructNode
	NodegroupName() *string
	SetNodegroupName(val *string)
	NodeRole() *string
	SetNodeRole(val *string)
	Ref() *string
	ReleaseVersion() *string
	SetReleaseVersion(val *string)
	RemoteAccess() interface{}
	SetRemoteAccess(val interface{})
	ScalingConfig() interface{}
	SetScalingConfig(val interface{})
	Stack() awscdk.Stack
	Subnets() *[]*string
	SetSubnets(val *[]*string)
	Tags() awscdk.TagManager
	Taints() interface{}
	SetTaints(val interface{})
	UpdateConfig() interface{}
	SetUpdateConfig(val interface{})
	UpdatedProperites() *map[string]interface{}
	Version() *string
	SetVersion(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OnPrepare()
	OnSynthesize(session constructs.ISynthesisSession)
	OnValidate() *[]*string
	OverrideLogicalId(newLogicalId *string)
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	Synthesize(session awscdk.ISynthesisSession)
	ToString() *string
	Validate() *[]*string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::EKS::Nodegroup`.

func NewCfnNodegroup

func NewCfnNodegroup(scope awscdk.Construct, id *string, props *CfnNodegroupProps) CfnNodegroup

Create a new `AWS::EKS::Nodegroup`.

type CfnNodegroupProps

type CfnNodegroupProps struct {
	// `AWS::EKS::Nodegroup.ClusterName`.
	ClusterName *string `json:"clusterName"`
	// `AWS::EKS::Nodegroup.NodeRole`.
	NodeRole *string `json:"nodeRole"`
	// `AWS::EKS::Nodegroup.Subnets`.
	Subnets *[]*string `json:"subnets"`
	// `AWS::EKS::Nodegroup.AmiType`.
	AmiType *string `json:"amiType"`
	// `AWS::EKS::Nodegroup.CapacityType`.
	CapacityType *string `json:"capacityType"`
	// `AWS::EKS::Nodegroup.DiskSize`.
	DiskSize *float64 `json:"diskSize"`
	// `AWS::EKS::Nodegroup.ForceUpdateEnabled`.
	ForceUpdateEnabled interface{} `json:"forceUpdateEnabled"`
	// `AWS::EKS::Nodegroup.InstanceTypes`.
	InstanceTypes *[]*string `json:"instanceTypes"`
	// `AWS::EKS::Nodegroup.Labels`.
	Labels interface{} `json:"labels"`
	// `AWS::EKS::Nodegroup.LaunchTemplate`.
	LaunchTemplate interface{} `json:"launchTemplate"`
	// `AWS::EKS::Nodegroup.NodegroupName`.
	NodegroupName *string `json:"nodegroupName"`
	// `AWS::EKS::Nodegroup.ReleaseVersion`.
	ReleaseVersion *string `json:"releaseVersion"`
	// `AWS::EKS::Nodegroup.RemoteAccess`.
	RemoteAccess interface{} `json:"remoteAccess"`
	// `AWS::EKS::Nodegroup.ScalingConfig`.
	ScalingConfig interface{} `json:"scalingConfig"`
	// `AWS::EKS::Nodegroup.Tags`.
	Tags interface{} `json:"tags"`
	// `AWS::EKS::Nodegroup.Taints`.
	Taints interface{} `json:"taints"`
	// `AWS::EKS::Nodegroup.UpdateConfig`.
	UpdateConfig interface{} `json:"updateConfig"`
	// `AWS::EKS::Nodegroup.Version`.
	Version *string `json:"version"`
}

Properties for defining a `AWS::EKS::Nodegroup`.

type CfnNodegroup_LaunchTemplateSpecificationProperty

type CfnNodegroup_LaunchTemplateSpecificationProperty struct {
	// `CfnNodegroup.LaunchTemplateSpecificationProperty.Id`.
	Id *string `json:"id"`
	// `CfnNodegroup.LaunchTemplateSpecificationProperty.Name`.
	Name *string `json:"name"`
	// `CfnNodegroup.LaunchTemplateSpecificationProperty.Version`.
	Version *string `json:"version"`
}

type CfnNodegroup_RemoteAccessProperty

type CfnNodegroup_RemoteAccessProperty struct {
	// `CfnNodegroup.RemoteAccessProperty.Ec2SshKey`.
	Ec2SshKey *string `json:"ec2SshKey"`
	// `CfnNodegroup.RemoteAccessProperty.SourceSecurityGroups`.
	SourceSecurityGroups *[]*string `json:"sourceSecurityGroups"`
}

type CfnNodegroup_ScalingConfigProperty

type CfnNodegroup_ScalingConfigProperty struct {
	// `CfnNodegroup.ScalingConfigProperty.DesiredSize`.
	DesiredSize *float64 `json:"desiredSize"`
	// `CfnNodegroup.ScalingConfigProperty.MaxSize`.
	MaxSize *float64 `json:"maxSize"`
	// `CfnNodegroup.ScalingConfigProperty.MinSize`.
	MinSize *float64 `json:"minSize"`
}

type CfnNodegroup_TaintProperty

type CfnNodegroup_TaintProperty struct {
	// `CfnNodegroup.TaintProperty.Effect`.
	Effect *string `json:"effect"`
	// `CfnNodegroup.TaintProperty.Key`.
	Key *string `json:"key"`
	// `CfnNodegroup.TaintProperty.Value`.
	Value *string `json:"value"`
}

type CfnNodegroup_UpdateConfigProperty

type CfnNodegroup_UpdateConfigProperty struct {
	// `CfnNodegroup.UpdateConfigProperty.MaxUnavailable`.
	MaxUnavailable *float64 `json:"maxUnavailable"`
	// `CfnNodegroup.UpdateConfigProperty.MaxUnavailablePercentage`.
	MaxUnavailablePercentage *float64 `json:"maxUnavailablePercentage"`
}

type Cluster

type Cluster interface {
	awscdk.Resource
	ICluster
	AwsAuth() AwsAuth
	ClusterArn() *string
	ClusterCertificateAuthorityData() *string
	ClusterEndpoint() *string
	ClusterName() *string
	Connections() awsec2.Connections
	DefaultCapacity() awsautoscaling.AutoScalingGroup
	Env() *awscdk.ResourceEnvironment
	KubectlEnabled() *bool
	Node() awscdk.ConstructNode
	PhysicalName() *string
	Role() awsiam.IRole
	Stack() awscdk.Stack
	Vpc() awsec2.IVpc
	AddAutoScalingGroup(autoScalingGroup awsautoscaling.AutoScalingGroup, options *AutoScalingGroupOptions)
	AddCapacity(id *string, options *CapacityOptions) awsautoscaling.AutoScalingGroup
	AddChart(id *string, options *HelmChartOptions) HelmChart
	AddResource(id *string, manifest ...interface{}) KubernetesResource
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	OnPrepare()
	OnSynthesize(session constructs.ISynthesisSession)
	OnValidate() *[]*string
	Prepare()
	Synthesize(session awscdk.ISynthesisSession)
	ToString() *string
	Validate() *[]*string
}

A Cluster represents a managed Kubernetes Service (EKS).

This is a fully managed cluster of API Servers (control-plane) The user is still required to create the worker nodes. Experimental.

func NewCluster

func NewCluster(scope awscdk.Construct, id *string, props *ClusterProps) Cluster

Initiates an EKS Cluster with the supplied arguments. Experimental.

type ClusterAttributes

type ClusterAttributes struct {
	// The unique ARN assigned to the service by AWS in the form of arn:aws:eks:.
	// Experimental.
	ClusterArn *string `json:"clusterArn"`
	// The certificate-authority-data for your cluster.
	// Experimental.
	ClusterCertificateAuthorityData *string `json:"clusterCertificateAuthorityData"`
	// The API Server endpoint URL.
	// Experimental.
	ClusterEndpoint *string `json:"clusterEndpoint"`
	// The physical name of the Cluster.
	// Experimental.
	ClusterName *string `json:"clusterName"`
	// The security groups associated with this cluster.
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `json:"securityGroups"`
	// The VPC in which this Cluster was created.
	// Experimental.
	Vpc awsec2.IVpc `json:"vpc"`
}

Experimental.

type ClusterProps

type ClusterProps struct {
	// Name for the cluster.
	// Experimental.
	ClusterName *string `json:"clusterName"`
	// Number of instances to allocate as an initial capacity for this cluster.
	//
	// Instance type can be configured through `defaultCapacityInstanceType`,
	// which defaults to `m5.large`.
	//
	// Use `cluster.addCapacity` to add additional customized capacity. Set this
	// to `0` is you wish to avoid the initial capacity allocation.
	// Experimental.
	DefaultCapacity *float64 `json:"defaultCapacity"`
	// The instance type to use for the default capacity.
	//
	// This will only be taken
	// into account if `defaultCapacity` is > 0.
	// Experimental.
	DefaultCapacityInstance awsec2.InstanceType `json:"defaultCapacityInstance"`
	// Allows defining `kubectrl`-related resources on this cluster.
	//
	// If this is disabled, it will not be possible to use the following
	// capabilities:
	// - `addResource`
	// - `addRoleMapping`
	// - `addUserMapping`
	// - `addMastersRole` and `props.mastersRole`
	//
	// If this is disabled, the cluster can only be managed by issuing `kubectl`
	// commands from a session that uses the IAM role/user that created the
	// account.
	//
	// _NOTE_: changing this value will destoy the cluster. This is because a
	// managable cluster must be created using an AWS CloudFormation custom
	// resource which executes with an IAM role owned by the CDK app.
	// Experimental.
	KubectlEnabled *bool `json:"kubectlEnabled"`
	// An IAM role that will be added to the `system:masters` Kubernetes RBAC group.
	// See: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#default-roles-and-role-bindings
	//
	// Experimental.
	MastersRole awsiam.IRole `json:"mastersRole"`
	// Determines whether a CloudFormation output with the name of the cluster will be synthesized.
	// Experimental.
	OutputClusterName *bool `json:"outputClusterName"`
	// Determines whether a CloudFormation output with the `aws eks update-kubeconfig` command will be synthesized.
	//
	// This command will include
	// the cluster name and, if applicable, the ARN of the masters IAM role.
	// Experimental.
	OutputConfigCommand *bool `json:"outputConfigCommand"`
	// Determines whether a CloudFormation output with the ARN of the "masters" IAM role will be synthesized (if `mastersRole` is specified).
	// Experimental.
	OutputMastersRoleArn *bool `json:"outputMastersRoleArn"`
	// Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.
	// Experimental.
	Role awsiam.IRole `json:"role"`
	// Security Group to use for Control Plane ENIs.
	// Experimental.
	SecurityGroup awsec2.ISecurityGroup `json:"securityGroup"`
	// The Kubernetes version to run in the cluster.
	// Experimental.
	Version *string `json:"version"`
	// The VPC in which to create the Cluster.
	// Experimental.
	Vpc awsec2.IVpc `json:"vpc"`
	// Where to place EKS Control Plane ENIs.
	//
	// If you want to create public load balancers, this must include public subnets.
	//
	// For example, to only select private subnets, supply the following:
	//
	// “`ts
	// vpcSubnets: [
	//    { subnetType: ec2.SubnetType.Private }
	// ]
	// “`
	// Experimental.
	VpcSubnets *[]*awsec2.SubnetSelection `json:"vpcSubnets"`
}

Properties to instantiate the Cluster. Experimental.

type EksOptimizedImage

type EksOptimizedImage interface {
	awsec2.IMachineImage
	GetImage(scope awscdk.Construct) *awsec2.MachineImageConfig
}

Construct an Amazon Linux 2 image from the latest EKS Optimized AMI published in SSM. Experimental.

func NewEksOptimizedImage

func NewEksOptimizedImage(props *EksOptimizedImageProps) EksOptimizedImage

Constructs a new instance of the EcsOptimizedAmi class. Experimental.

type EksOptimizedImageProps

type EksOptimizedImageProps struct {
	// The Kubernetes version to use.
	// Experimental.
	KubernetesVersion *string `json:"kubernetesVersion"`
	// What instance type to retrieve the image for (standard or GPU-optimized).
	// Experimental.
	NodeType NodeType `json:"nodeType"`
}

Properties for EksOptimizedImage. Experimental.

type HelmChart

type HelmChart interface {
	awscdk.Construct
	Node() awscdk.ConstructNode
	OnPrepare()
	OnSynthesize(session constructs.ISynthesisSession)
	OnValidate() *[]*string
	Prepare()
	Synthesize(session awscdk.ISynthesisSession)
	ToString() *string
	Validate() *[]*string
}

Represents a helm chart within the Kubernetes system.

Applies/deletes the resources using `kubectl` in sync with the resource. Experimental.

func NewHelmChart

func NewHelmChart(scope awscdk.Construct, id *string, props *HelmChartProps) HelmChart

Experimental.

type HelmChartOptions

type HelmChartOptions struct {
	// The name of the chart.
	// Experimental.
	Chart *string `json:"chart"`
	// The Kubernetes namespace scope of the requests.
	// Experimental.
	Namespace *string `json:"namespace"`
	// The name of the release.
	// Experimental.
	Release *string `json:"release"`
	// The repository which contains the chart.
	//
	// For example: https://kubernetes-charts.storage.googleapis.com/
	// Experimental.
	Repository *string `json:"repository"`
	// The values to be used by the chart.
	// Experimental.
	Values *map[string]interface{} `json:"values"`
	// The chart version to install.
	// Experimental.
	Version *string `json:"version"`
}

Helm Chart options. Experimental.

type HelmChartProps

type HelmChartProps struct {
	// The name of the chart.
	// Experimental.
	Chart *string `json:"chart"`
	// The Kubernetes namespace scope of the requests.
	// Experimental.
	Namespace *string `json:"namespace"`
	// The name of the release.
	// Experimental.
	Release *string `json:"release"`
	// The repository which contains the chart.
	//
	// For example: https://kubernetes-charts.storage.googleapis.com/
	// Experimental.
	Repository *string `json:"repository"`
	// The values to be used by the chart.
	// Experimental.
	Values *map[string]interface{} `json:"values"`
	// The chart version to install.
	// Experimental.
	Version *string `json:"version"`
	// The EKS cluster to apply this configuration to.
	//
	// [disable-awslint:ref-via-interface]
	// Experimental.
	Cluster Cluster `json:"cluster"`
}

Helm Chart properties. Experimental.

type ICluster

type ICluster interface {
	awsec2.IConnectable
	awscdk.IResource
	// The unique ARN assigned to the service by AWS in the form of arn:aws:eks:.
	// Experimental.
	ClusterArn() *string
	// The certificate-authority-data for your cluster.
	// Experimental.
	ClusterCertificateAuthorityData() *string
	// The API Server endpoint URL.
	// Experimental.
	ClusterEndpoint() *string
	// The physical name of the Cluster.
	// Experimental.
	ClusterName() *string
	// The VPC in which this Cluster was created.
	// Experimental.
	Vpc() awsec2.IVpc
}

An EKS cluster. Experimental.

func Cluster_FromClusterAttributes

func Cluster_FromClusterAttributes(scope awscdk.Construct, id *string, attrs *ClusterAttributes) ICluster

Import an existing cluster. Experimental.

type KubernetesResource

type KubernetesResource interface {
	awscdk.Construct
	Node() awscdk.ConstructNode
	OnPrepare()
	OnSynthesize(session constructs.ISynthesisSession)
	OnValidate() *[]*string
	Prepare()
	Synthesize(session awscdk.ISynthesisSession)
	ToString() *string
	Validate() *[]*string
}

Represents a resource within the Kubernetes system.

Alternatively, you can use `cluster.addResource(resource[, resource, ...])` to define resources on this cluster.

Applies/deletes the resources using `kubectl` in sync with the resource. Experimental.

func NewKubernetesResource

func NewKubernetesResource(scope awscdk.Construct, id *string, props *KubernetesResourceProps) KubernetesResource

Experimental.

type KubernetesResourceProps

type KubernetesResourceProps struct {
	// The EKS cluster to apply this configuration to.
	//
	// [disable-awslint:ref-via-interface]
	// Experimental.
	Cluster Cluster `json:"cluster"`
	// The resource manifest.
	//
	// Consists of any number of child resources.
	//
	// When the resource is created/updated, this manifest will be applied to the
	// cluster through `kubectl apply` and when the resource or the stack is
	// deleted, the manifest will be deleted through `kubectl delete`.
	//
	// TODO: EXAMPLE
	//
	// Experimental.
	Manifest *[]interface{} `json:"manifest"`
}

Experimental.

type Mapping

type Mapping struct {
	// A list of groups within Kubernetes to which the role is mapped.
	// See: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#default-roles-and-role-bindings
	//
	// Experimental.
	Groups *[]*string `json:"groups"`
	// The user name within Kubernetes to map to the IAM role.
	// Experimental.
	Username *string `json:"username"`
}

Experimental.

type NodeType

type NodeType string

Whether the worker nodes should support GPU or just standard instances. Experimental.

const (
	NodeType_STANDARD NodeType = "STANDARD"
	NodeType_GPU      NodeType = "GPU"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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