smallcasecdkeksclustermodule

package module
v0.0.29 Latest Latest
Warning

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

Go to latest
Published: Aug 22, 2023 License: Apache-2.0 Imports: 12 Imported by: 0

README

cdk-eks-cluster-module

cdk-eks-cluster-module is a CDK that helps you configure complete EKS clusters that are fully bootstrapped with the operational software that is needed to deploy and operate workloads. You can describe the configuration for the desired state of your EKS cluster, such as the control plane, worker nodes, and Kubernetes add-ons, as code.

✨ Features

  • ✅ AWS EKS Cluster Addons
  • ✅ Support for Multiple NodeGroups with labels and taints
  • ✅ Support for Multiple fargate profiles with labels and namespace
  • ✅ AWS EKS Identity Provider Configuration
  • ✅ Support for custom AMI, custom launch template, and custom user data including custom user data template
  • ✅ commonComponents interface allow to install custom repo/local helm chart
  • ✅ Install aws-ebs-csi-driver,aws-efs-csi-driver,node-problem-detector helm charts to help manage storage, and nodes.

🎬 Quick Start

The quick start shows you how to create an AWS-EKS using this module.

Prerequisites
  • A working aws CLI installation with access to an account and administrator privileges
  • You'll need a recent NodeJS installation
  • kubectl to interact with your fresh cluster

To get going you'll need a CDK project. For details please refer to the detailed guide for CDK.

Create an empty directory on your system.

mkdir aws-quick-start-eks && cd aws-quick-start-eks

Bootstrap your CDK project, we will use TypeScript, but you can switch to any other supported language.

npx cdk init sample-eks  --language typescript
npx cdk bootstrap

Install using NPM:

npm install @smallcase/cdk-eks-cluster-module

Using yarn

yarn add @smallcase/cdk-eks-cluster-module

Using eks cluster can be deployed using the following sample code snippet:

import {
  EKSCluster,
  VpcCniAddonVersion,
} from '@smallcase/cdk-eks-cluster-module';

const key = new kms.Key(this, 'EKS-KMS', {
      enabled: true,
      alias: 'EKS-KMS',
    });
key.addToResourcePolicy(new iam.PolicyStatement({
      sid: 'encrypt root volumes of nodeGroup using kms',
      actions: [
        'kms:Encrypt',
        'kms:Decrypt',
        'kms:ReEncrypt*',
        'kms:GenerateDataKey*',
        'kms:CreateGrant',
        'kms:DescribeKey',
      ],
      resources: ['*'],
      principals: [new iam.AnyPrincipal()],
      conditions: {
        StringEquals: {
          'kms:CallerAccount': '<YOUR-AWS-ID>',
          'kms:ViaService': 'ec2.<REGION>.amazonaws.com',
        },
      },
    }));

  const securityGroup = new ec2.SecurityGroup(
      this,
      'EKS-WORKER-SG',
      {
        vpc: vpc,
        description: 'Kubernetes Worker SecurityGroup',
      },
    );

  const testNodeTemplete = new ec2.LaunchTemplate(this, 'testNodeTemplete', {
      instanceType: new ec2.InstanceType('m5a.large'),
      blockDevices: [
        {
          deviceName: '/dev/xvda',
          volume: ec2.BlockDeviceVolume.ebs(40,
            {
              deleteOnTermination: true,
              encrypted: true,
              volumeType: ec2.EbsDeviceVolumeType.GP3,
              kmsKey: key,
            },
          ),
          mappingEnabled: true,
        },
      ],
    });
let ekscluster = new EKSCluster(this, 'EKS-CLUSTER', {
      availabilityZones: Stack.of(this).availabilityZones,
      clusterVPC: vpc,
      kmsKey: key,
      region: Stack.of(this).region,
      workerSecurityGroup: securityGroup,
      addonProps: {
        vpnCniAddonVersion: VpcCniAddonVersion.V1_11_0,
      },
      clusterConfig: {
        clusterName: 'EKS-CLUSTER',
        clusterVersion: eks.KubernetesVersion.V1_22,
        // this will create cluster autoscaler service account with iam role
        addAutoscalerIam: true,
        albControllerVersion: eks.AlbControllerVersion.V2_2_4,
        defaultCapacity: 3,
        subnets: {
          privateSubnetGroupName: 'Private',
        },
        nodeGroups: [
          {
            name: 'test-node',
            instanceTypes: [],
            minSize: 3,
            maxSize: 6,
            launchTemplateSpec: {
              version: testNodeTemplete.versionNumber,
              id: testNodeTemplete.launchTemplateId!,
            },
            subnetGroupName: 'Private',
            labels: {
              role: 'test-eks-cluster',
            },
            taints: {
              role: 'test-eks-cluster',
            },
            tags: {
              'k8s.io/cluster-autoscaler/enabled': 'TRUE',
              'k8s.io/cluster-autoscaler/EKS-CLUSTER':
                'owned',
            },
          },
        ]
        commonComponents: {
          'aws-efs-csi-driver': {
            iamPolicyPath: ['../../assets/policy/aws-efs-csi-driver-policy.json'],
            // above mention iam policy will be used for this service account
            serviceAccounts: ['efs-csi-controller-sa', 'efs-csi-node-sa'],
            helm: {
              chartName: 'aws-efs-csi-driver',
              chartVersion: '2.2.0',
              helmRepository: 'https://kubernetes-sigs.github.io/aws-efs-csi-driver/',
              namespace: 'kube-system',
            },
          },
        },
        teamMembers: [
          "your-aws-user",
        ],
        teamExistingRolePermission: { //optional
          '<YOUR_ROLE_ARN>': 'system:masters',
        },
      }
  })

API.md

Documentation

Overview

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

@smallcase/cdk-eks-cluster-module

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CommonHelmCharts_IsConstruct

func CommonHelmCharts_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func CoreDnsAddon_CFN_RESOURCE_TYPE_NAME added in v0.0.25

func CoreDnsAddon_CFN_RESOURCE_TYPE_NAME() *string

func CoreDnsAddon_IsCfnElement added in v0.0.25

func CoreDnsAddon_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.

func CoreDnsAddon_IsCfnResource added in v0.0.25

func CoreDnsAddon_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CoreDnsAddon_IsConstruct added in v0.0.25

func CoreDnsAddon_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func EKSCluster_IsConstruct

func EKSCluster_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func KubeProxyAddon_CFN_RESOURCE_TYPE_NAME added in v0.0.25

func KubeProxyAddon_CFN_RESOURCE_TYPE_NAME() *string

func KubeProxyAddon_IsCfnElement added in v0.0.25

func KubeProxyAddon_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.

func KubeProxyAddon_IsCfnResource added in v0.0.25

func KubeProxyAddon_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func KubeProxyAddon_IsConstruct added in v0.0.25

func KubeProxyAddon_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func NewCommonHelmCharts_Override

func NewCommonHelmCharts_Override(c CommonHelmCharts, scope constructs.Construct, id *string, props *CommonHelmChartsProps)

func NewCoreDnsAddon_Override added in v0.0.25

func NewCoreDnsAddon_Override(c CoreDnsAddon, scope constructs.Construct, id *string, props *CoreAddonProps)

func NewEKSCluster_Override

func NewEKSCluster_Override(e EKSCluster, scope constructs.Construct, id *string, props *EKSClusterProps)

func NewKubeProxyAddon_Override added in v0.0.25

func NewKubeProxyAddon_Override(k KubeProxyAddon, scope constructs.Construct, id *string, props *CoreAddonProps)

func NewVpcCniAddonVersion_Override

func NewVpcCniAddonVersion_Override(v VpcCniAddonVersion, version *string)

func NewVpcEniAddon_Override

func NewVpcEniAddon_Override(v VpcEniAddon, scope constructs.Construct, id *string, props *VpcCniAddonProps)

func VpcEniAddon_CFN_RESOURCE_TYPE_NAME

func VpcEniAddon_CFN_RESOURCE_TYPE_NAME() *string

func VpcEniAddon_IsCfnElement

func VpcEniAddon_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.

func VpcEniAddon_IsCfnResource

func VpcEniAddon_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func VpcEniAddon_IsConstruct

func VpcEniAddon_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

Types

type AddonProps

type AddonProps struct {
	ConfigurationValues *string            `field:"optional" json:"configurationValues" yaml:"configurationValues"`
	VpnCniAddonVersion  VpcCniAddonVersion `field:"optional" json:"vpnCniAddonVersion" yaml:"vpnCniAddonVersion"`
}

type ArgoCD

type ArgoCD struct {
	AssumeRoleArn   *string `field:"required" json:"assumeRoleArn" yaml:"assumeRoleArn"`
	ClusterRoleName *string `field:"required" json:"clusterRoleName" yaml:"clusterRoleName"`
}

type ClusterConfig

type ClusterConfig struct {
	ClusterName                *string                            `field:"required" json:"clusterName" yaml:"clusterName"`
	ClusterVersion             awseks.KubernetesVersion           `field:"required" json:"clusterVersion" yaml:"clusterVersion"`
	DefaultCapacity            *float64                           `field:"required" json:"defaultCapacity" yaml:"defaultCapacity"`
	NodeGroups                 *[]*NodeGroupConfig                `field:"required" json:"nodeGroups" yaml:"nodeGroups"`
	Subnets                    *InternalMap                       `field:"required" json:"subnets" yaml:"subnets"`
	Tags                       *InternalMap                       `field:"required" json:"tags" yaml:"tags"`
	TeamMembers                *[]*string                         `field:"required" json:"teamMembers" yaml:"teamMembers"`
	AddAutoscalerIam           *bool                              `field:"optional" json:"addAutoscalerIam" yaml:"addAutoscalerIam"`
	AlbControllerVersion       awseks.AlbControllerVersion        `field:"optional" json:"albControllerVersion" yaml:"albControllerVersion"`
	ArgoCD                     *ArgoCD                            `field:"optional" json:"argoCD" yaml:"argoCD"`
	CommonComponents           *map[string]ICommonComponentsProps `field:"optional" json:"commonComponents" yaml:"commonComponents"`
	DebugLogs                  *bool                              `field:"optional" json:"debugLogs" yaml:"debugLogs"`
	DefaultCommonComponents    *DefaultCommonComponents           `field:"optional" json:"defaultCommonComponents" yaml:"defaultCommonComponents"`
	DeprecateClusterAutoScaler *bool                              `field:"optional" json:"deprecateClusterAutoScaler" yaml:"deprecateClusterAutoScaler"`
	FargateProfiles            *[]*FargateProfile                 `field:"optional" json:"fargateProfiles" yaml:"fargateProfiles"`
	KubectlLayer               awslambda.ILayerVersion            `field:"optional" json:"kubectlLayer" yaml:"kubectlLayer"`
	Namespaces                 *map[string]*NamespaceSpec         `field:"optional" json:"namespaces" yaml:"namespaces"`
	PublicAllowAccess          *[]*string                         `field:"optional" json:"publicAllowAccess" yaml:"publicAllowAccess"`
	SkipExternalDNS            *bool                              `field:"optional" json:"skipExternalDNS" yaml:"skipExternalDNS"`
	TeamExistingRolePermission *map[string]*string                `field:"optional" json:"teamExistingRolePermission" yaml:"teamExistingRolePermission"`
}

type CommonHelmCharts

type CommonHelmCharts interface {
	constructs.Construct
	// The tree node.
	Node() constructs.Node
	// Returns a string representation of this construct.
	ToString() *string
}

func NewCommonHelmCharts

func NewCommonHelmCharts(scope constructs.Construct, id *string, props *CommonHelmChartsProps) CommonHelmCharts

type CommonHelmChartsProps

type CommonHelmChartsProps struct {
	Cluster             awseks.ICluster              `field:"required" json:"cluster" yaml:"cluster"`
	HelmProps           *StandardHelmProps           `field:"required" json:"helmProps" yaml:"helmProps"`
	DependentNamespaces *[]awseks.KubernetesManifest `field:"optional" json:"dependentNamespaces" yaml:"dependentNamespaces"`
	IamPolicyPath       *[]*string                   `field:"optional" json:"iamPolicyPath" yaml:"iamPolicyPath"`
	LogCharts           *bool                        `field:"optional" json:"logCharts" yaml:"logCharts"`
	ServiceAccounts     *[]*string                   `field:"optional" json:"serviceAccounts" yaml:"serviceAccounts"`
}

type CoreAddonProps added in v0.0.25

type CoreAddonProps struct {
	Cluster             awseks.Cluster `field:"required" json:"cluster" yaml:"cluster"`
	AddonVersion        *string        `field:"optional" json:"addonVersion" yaml:"addonVersion"`
	ConfigurationValues *string        `field:"optional" json:"configurationValues" yaml:"configurationValues"`
	Namespace           *string        `field:"optional" json:"namespace" yaml:"namespace"`
	ResolveConflicts    *bool          `field:"optional" json:"resolveConflicts" yaml:"resolveConflicts"`
}

type CoreAddonValuesProps added in v0.0.25

type CoreAddonValuesProps struct {
	AddonVersion        *string `field:"optional" json:"addonVersion" yaml:"addonVersion"`
	ConfigurationValues *string `field:"optional" json:"configurationValues" yaml:"configurationValues"`
}

type CoreDnsAddon added in v0.0.25

type CoreDnsAddon interface {
	awseks.CfnAddon
	// The name of the add-on.
	AddonName() *string
	SetAddonName(val *string)
	// The version of the add-on.
	AddonVersion() *string
	SetAddonVersion(val *string)
	// The ARN of the add-on, such as `arn:aws:eks:us-west-2:111122223333:addon/1-19/vpc-cni/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` .
	AttrArn() *string
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// The name of the cluster.
	ClusterName() *string
	SetClusterName(val *string)
	// The configuration values that you provided.
	ConfigurationValues() *string
	SetConfigurationValues(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
	PreserveOnDelete() interface{}
	SetPreserveOnDelete(val interface{})
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// How to resolve field value conflicts for an Amazon EKS add-on.
	ResolveConflicts() *string
	SetResolveConflicts(val *string)
	// The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account.
	ServiceAccountRoleArn() *string
	SetServiceAccountRoleArn(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Tag Manager which manages the tags for this resource.
	Tags() awscdk.TagManager
	// The metadata that you apply to the add-on to assist with categorization and organization.
	TagsRaw() *[]*awscdk.CfnTag
	SetTagsRaw(val *[]*awscdk.CfnTag)
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

func NewCoreDnsAddon added in v0.0.25

func NewCoreDnsAddon(scope constructs.Construct, id *string, props *CoreAddonProps) CoreDnsAddon

type DefaultCommonComponents added in v0.0.16

type DefaultCommonComponents struct {
	AwsEbsCsiDriver   *DefaultCommonComponentsProps `field:"optional" json:"awsEbsCsiDriver" yaml:"awsEbsCsiDriver"`
	AwsEfsCsiDriver   *DefaultCommonComponentsProps `field:"optional" json:"awsEfsCsiDriver" yaml:"awsEfsCsiDriver"`
	ClusterAutoscaler *DefaultCommonComponentsProps `field:"optional" json:"clusterAutoscaler" yaml:"clusterAutoscaler"`
	ExternalDns       *DefaultCommonComponentsProps `field:"optional" json:"externalDns" yaml:"externalDns"`
}

type DefaultCommonComponentsProps added in v0.0.16

type DefaultCommonComponentsProps struct {
	Namespace *string `field:"optional" json:"namespace" yaml:"namespace"`
}

type EKSCluster

type EKSCluster interface {
	constructs.Construct
	AdditionalFargateProfile() *[]awseks.FargateProfile
	AdditionalNodegroups() *[]awseks.Nodegroup
	Cluster() awseks.Cluster
	FargateProfiles() *[]*FargateProfile
	// The tree node.
	Node() constructs.Node
	AddServiceAccountWithIamRole(serviceAccountName *string, serviceAccountNamespace *string, policy interface{})
	// Returns a string representation of this construct.
	ToString() *string
}

func NewEKSCluster

func NewEKSCluster(scope constructs.Construct, id *string, props *EKSClusterProps) EKSCluster

type EKSClusterProps

type EKSClusterProps struct {
	AvailabilityZones   *[]*string            `field:"required" json:"availabilityZones" yaml:"availabilityZones"`
	ClusterConfig       *ClusterConfig        `field:"required" json:"clusterConfig" yaml:"clusterConfig"`
	KmsKey              awskms.Key            `field:"required" json:"kmsKey" yaml:"kmsKey"`
	Region              *string               `field:"required" json:"region" yaml:"region"`
	WorkerSecurityGroup awsec2.SecurityGroup  `field:"required" json:"workerSecurityGroup" yaml:"workerSecurityGroup"`
	AddonProps          *AddonProps           `field:"optional" json:"addonProps" yaml:"addonProps"`
	ClusterVPC          awsec2.IVpc           `field:"optional" json:"clusterVPC" yaml:"clusterVPC"`
	CoreDnsAddonProps   *CoreAddonValuesProps `field:"optional" json:"coreDnsAddonProps" yaml:"coreDnsAddonProps"`
	KubeProxyAddonProps *CoreAddonValuesProps `field:"optional" json:"kubeProxyAddonProps" yaml:"kubeProxyAddonProps"`
}

type FargateProfile added in v0.0.11

type FargateProfile struct {
	Namespaces       *[]*string              `field:"required" json:"namespaces" yaml:"namespaces"`
	ProfileName      *string                 `field:"required" json:"profileName" yaml:"profileName"`
	Labels           *InternalMap            `field:"optional" json:"labels" yaml:"labels"`
	PodExecutionRole awsiam.Role             `field:"optional" json:"podExecutionRole" yaml:"podExecutionRole"`
	SubnetSelection  *awsec2.SubnetSelection `field:"optional" json:"subnetSelection" yaml:"subnetSelection"`
}

type ICommonComponentsProps

type ICommonComponentsProps interface {
	Helm() *StandardHelmProps
	SetHelm(h *StandardHelmProps)
	IamPolicyPath() *[]*string
	SetIamPolicyPath(i *[]*string)
	ServiceAccounts() *[]*string
	SetServiceAccounts(s *[]*string)
}

type InternalMap

type InternalMap struct {
}

type KubeProxyAddon added in v0.0.25

type KubeProxyAddon interface {
	awseks.CfnAddon
	// The name of the add-on.
	AddonName() *string
	SetAddonName(val *string)
	// The version of the add-on.
	AddonVersion() *string
	SetAddonVersion(val *string)
	// The ARN of the add-on, such as `arn:aws:eks:us-west-2:111122223333:addon/1-19/vpc-cni/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` .
	AttrArn() *string
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// The name of the cluster.
	ClusterName() *string
	SetClusterName(val *string)
	// The configuration values that you provided.
	ConfigurationValues() *string
	SetConfigurationValues(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
	PreserveOnDelete() interface{}
	SetPreserveOnDelete(val interface{})
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// How to resolve field value conflicts for an Amazon EKS add-on.
	ResolveConflicts() *string
	SetResolveConflicts(val *string)
	// The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account.
	ServiceAccountRoleArn() *string
	SetServiceAccountRoleArn(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Tag Manager which manages the tags for this resource.
	Tags() awscdk.TagManager
	// The metadata that you apply to the add-on to assist with categorization and organization.
	TagsRaw() *[]*awscdk.CfnTag
	SetTagsRaw(val *[]*awscdk.CfnTag)
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

func NewKubeProxyAddon added in v0.0.25

func NewKubeProxyAddon(scope constructs.Construct, id *string, props *CoreAddonProps) KubeProxyAddon

type NamespaceSpec added in v0.0.8

type NamespaceSpec struct {
	Annotations *InternalMap `field:"optional" json:"annotations" yaml:"annotations"`
	Labels      *InternalMap `field:"optional" json:"labels" yaml:"labels"`
}

type NodeGroupConfig

type NodeGroupConfig struct {
	InstanceTypes      *[]awsec2.InstanceType     `field:"required" json:"instanceTypes" yaml:"instanceTypes"`
	Labels             *InternalMap               `field:"required" json:"labels" yaml:"labels"`
	MaxSize            *float64                   `field:"required" json:"maxSize" yaml:"maxSize"`
	MinSize            *float64                   `field:"required" json:"minSize" yaml:"minSize"`
	Name               *string                    `field:"required" json:"name" yaml:"name"`
	SubnetGroupName    *string                    `field:"required" json:"subnetGroupName" yaml:"subnetGroupName"`
	Taints             *InternalMap               `field:"required" json:"taints" yaml:"taints"`
	CapacityType       awseks.CapacityType        `field:"optional" json:"capacityType" yaml:"capacityType"`
	DesiredSize        *float64                   `field:"optional" json:"desiredSize" yaml:"desiredSize"`
	DiskSize           *float64                   `field:"optional" json:"diskSize" yaml:"diskSize"`
	LaunchTemplateSpec *awseks.LaunchTemplateSpec `field:"optional" json:"launchTemplateSpec" yaml:"launchTemplateSpec"`
	NodeAMIVersion     *string                    `field:"optional" json:"nodeAMIVersion" yaml:"nodeAMIVersion"`
	SshKeyName         *string                    `field:"optional" json:"sshKeyName" yaml:"sshKeyName"`
	SubnetAz           *[]*string                 `field:"optional" json:"subnetAz" yaml:"subnetAz"`
	Tags               *InternalMap               `field:"optional" json:"tags" yaml:"tags"`
}

type StandardHelmProps

type StandardHelmProps struct {
	ChartName        *string                 `field:"required" json:"chartName" yaml:"chartName"`
	ChartReleaseName *string                 `field:"optional" json:"chartReleaseName" yaml:"chartReleaseName"`
	ChartVersion     *string                 `field:"optional" json:"chartVersion" yaml:"chartVersion"`
	CreateNamespace  *bool                   `field:"optional" json:"createNamespace" yaml:"createNamespace"`
	HelmRepository   *string                 `field:"optional" json:"helmRepository" yaml:"helmRepository"`
	HelmValues       *map[string]interface{} `field:"optional" json:"helmValues" yaml:"helmValues"`
	LocalHelmChart   *string                 `field:"optional" json:"localHelmChart" yaml:"localHelmChart"`
	Namespace        *string                 `field:"optional" json:"namespace" yaml:"namespace"`
}

type VpcCniAddonProps

type VpcCniAddonProps struct {
	Cluster             awseks.Cluster     `field:"required" json:"cluster" yaml:"cluster"`
	AddonVersion        VpcCniAddonVersion `field:"optional" json:"addonVersion" yaml:"addonVersion"`
	ConfigurationValues *string            `field:"optional" json:"configurationValues" yaml:"configurationValues"`
	Namespace           *string            `field:"optional" json:"namespace" yaml:"namespace"`
	ResolveConflicts    *bool              `field:"optional" json:"resolveConflicts" yaml:"resolveConflicts"`
}

type VpcCniAddonVersion

type VpcCniAddonVersion interface {
	Version() *string
}

func NewVpcCniAddonVersion

func NewVpcCniAddonVersion(version *string) VpcCniAddonVersion

func VpcCniAddonVersion_Of

func VpcCniAddonVersion_Of(version *string) VpcCniAddonVersion

Custom add-on version.

func VpcCniAddonVersion_V1_10_1

func VpcCniAddonVersion_V1_10_1() VpcCniAddonVersion

func VpcCniAddonVersion_V1_10_2

func VpcCniAddonVersion_V1_10_2() VpcCniAddonVersion

func VpcCniAddonVersion_V1_10_3

func VpcCniAddonVersion_V1_10_3() VpcCniAddonVersion

func VpcCniAddonVersion_V1_11_0

func VpcCniAddonVersion_V1_11_0() VpcCniAddonVersion

func VpcCniAddonVersion_V1_11_2 added in v0.0.20

func VpcCniAddonVersion_V1_11_2() VpcCniAddonVersion

func VpcCniAddonVersion_V1_11_3 added in v0.0.20

func VpcCniAddonVersion_V1_11_3() VpcCniAddonVersion

func VpcCniAddonVersion_V1_11_4 added in v0.0.20

func VpcCniAddonVersion_V1_11_4() VpcCniAddonVersion

func VpcCniAddonVersion_V1_12_0 added in v0.0.20

func VpcCniAddonVersion_V1_12_0() VpcCniAddonVersion

func VpcCniAddonVersion_V1_12_1 added in v0.0.20

func VpcCniAddonVersion_V1_12_1() VpcCniAddonVersion

func VpcCniAddonVersion_V1_12_2 added in v0.0.23

func VpcCniAddonVersion_V1_12_2() VpcCniAddonVersion

func VpcCniAddonVersion_V1_12_5 added in v0.0.23

func VpcCniAddonVersion_V1_12_5() VpcCniAddonVersion

func VpcCniAddonVersion_V1_12_5_2 added in v0.0.23

func VpcCniAddonVersion_V1_12_5_2() VpcCniAddonVersion

func VpcCniAddonVersion_V1_6_3

func VpcCniAddonVersion_V1_6_3() VpcCniAddonVersion

func VpcCniAddonVersion_V1_7_10

func VpcCniAddonVersion_V1_7_10() VpcCniAddonVersion

func VpcCniAddonVersion_V1_7_5

func VpcCniAddonVersion_V1_7_5() VpcCniAddonVersion

func VpcCniAddonVersion_V1_7_6

func VpcCniAddonVersion_V1_7_6() VpcCniAddonVersion

func VpcCniAddonVersion_V1_7_9

func VpcCniAddonVersion_V1_7_9() VpcCniAddonVersion

func VpcCniAddonVersion_V1_8_0

func VpcCniAddonVersion_V1_8_0() VpcCniAddonVersion

func VpcCniAddonVersion_V1_9_0

func VpcCniAddonVersion_V1_9_0() VpcCniAddonVersion

func VpcCniAddonVersion_V1_9_1

func VpcCniAddonVersion_V1_9_1() VpcCniAddonVersion

func VpcCniAddonVersion_V1_9_3

func VpcCniAddonVersion_V1_9_3() VpcCniAddonVersion

type VpcEniAddon

type VpcEniAddon interface {
	awseks.CfnAddon
	// The name of the add-on.
	AddonName() *string
	SetAddonName(val *string)
	// The version of the add-on.
	AddonVersion() *string
	SetAddonVersion(val *string)
	// The ARN of the add-on, such as `arn:aws:eks:us-west-2:111122223333:addon/1-19/vpc-cni/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` .
	AttrArn() *string
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// The name of the cluster.
	ClusterName() *string
	SetClusterName(val *string)
	// The configuration values that you provided.
	ConfigurationValues() *string
	SetConfigurationValues(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
	PreserveOnDelete() interface{}
	SetPreserveOnDelete(val interface{})
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// How to resolve field value conflicts for an Amazon EKS add-on.
	ResolveConflicts() *string
	SetResolveConflicts(val *string)
	// The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account.
	ServiceAccountRoleArn() *string
	SetServiceAccountRoleArn(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Tag Manager which manages the tags for this resource.
	Tags() awscdk.TagManager
	// The metadata that you apply to the add-on to assist with categorization and organization.
	TagsRaw() *[]*awscdk.CfnTag
	SetTagsRaw(val *[]*awscdk.CfnTag)
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//   "GlobalSecondaryIndexes": [
	//     {
	//       "Projection": {
	//         "NonKeyAttributes": [ "myattribute" ]
	//         ...
	//       }
	//       ...
	//     },
	//     {
	//       "ProjectionType": "INCLUDE"
	//       ...
	//     },
	//   ]
	//   ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

func NewVpcEniAddon

func NewVpcEniAddon(scope constructs.Construct, id *string, props *VpcCniAddonProps) VpcEniAddon

Source Files

Directories

Path Synopsis
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.

Jump to

Keyboard shortcuts

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