aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
62 lines (61 loc) • 2.5 kB
TypeScript
import { Construct } from 'constructs';
import { CfnCluster } from './eks.generated';
import * as ec2 from '../../aws-ec2';
import * as iam from '../../aws-iam';
import * as kms from '../../aws-kms';
import * as lambda from '../../aws-lambda';
import { ArnComponents } from '../../core';
export interface ClusterResourceProps {
readonly resourcesVpcConfig: CfnCluster.ResourcesVpcConfigProperty;
readonly roleArn: string;
readonly encryptionConfig?: Array<CfnCluster.EncryptionConfigProperty>;
readonly kubernetesNetworkConfig?: CfnCluster.KubernetesNetworkConfigProperty;
readonly name: string;
readonly version?: string;
readonly endpointPrivateAccess: boolean;
readonly endpointPublicAccess: boolean;
readonly publicAccessCidrs?: string[];
readonly vpc: ec2.IVpc;
readonly environment?: {
[key: string]: string;
};
readonly subnets?: ec2.ISubnet[];
readonly secretsEncryptionKey?: kms.IKey;
readonly onEventLayer?: lambda.ILayerVersion;
readonly clusterHandlerSecurityGroup?: ec2.ISecurityGroup;
readonly tags?: {
[key: string]: string;
};
readonly logging?: {
[key: string]: [{
[key: string]: any;
}];
};
readonly accessconfig?: CfnCluster.AccessConfigProperty;
readonly remoteNetworkConfig?: CfnCluster.RemoteNetworkConfigProperty;
readonly bootstrapSelfManagedAddons?: boolean;
}
/**
* A low-level CFN resource Amazon EKS cluster implemented through a custom
* resource.
*
* Implements EKS create/update/delete through a CloudFormation custom resource
* in order to allow us to control the IAM role which creates the cluster. This
* is required in order to be able to allow CloudFormation to interact with the
* cluster via `kubectl` to enable Kubernetes management capabilities like apply
* manifest and IAM role/user RBAC mapping.
*/
export declare class ClusterResource extends Construct {
readonly attrEndpoint: string;
readonly attrArn: string;
readonly attrCertificateAuthorityData: string;
readonly attrClusterSecurityGroupId: string;
readonly attrEncryptionConfigKeyArn: string;
readonly attrOpenIdConnectIssuerUrl: string;
readonly attrOpenIdConnectIssuer: string;
readonly ref: string;
readonly adminRole: iam.Role;
constructor(scope: Construct, id: string, props: ClusterResourceProps);
private createAdminRole;
}
export declare function clusterArnComponents(clusterName: string): ArnComponents;