@pulumi/eks
Version:
[](https://github.com/pulumi/pulumi-eks/actions/workflows/master.yml) [](https://slack.pulumi.com) [![n
72 lines (71 loc) • 3.25 kB
TypeScript
import * as aws from '@pulumi/aws';
import * as pulumi from '@pulumi/pulumi';
import { NodeGroup } from './nodeGroup';
import { ClusterArgs } from './cluster';
import { Provider } from '@pulumi/kubernetes';
import { ClusterNodeGroupOptionsArgs, KubeconfigOptionsArgs, RoleMappingArgs } from './types/input';
declare module "./cluster" {
interface Cluster {
/**
* A Kubernetes resource provider that can be used to deploy into this cluster. For example, the code below will
* create a new Pod in the EKS cluster.
*
* let eks = new Cluster("eks");
* let pod = new kubernetes.core.v1.Pod("pod", { ... }, { provider: eks.provider });
*
*/
provider: Provider;
/**
* Create a self-managed node group using CloudFormation and an ASG.
*
* See for more details:
* https://docs.aws.amazon.com/eks/latest/userguide/worker.html
*/
createNodeGroup(name: string, args: ClusterNodeGroupOptionsArgs): NodeGroup;
}
}
/**
* KubeconfigOptions represents the AWS credentials to scope a given kubeconfig
* when using a non-default credential chain.
*
* The options can be used independently, or additively.
*
* A scoped kubeconfig is necessary for certain auth scenarios. For example:
* 1. Assume a role on the default account caller,
* 2. Use an AWS creds profile instead of the default account caller,
* 3. Use an AWS creds creds profile instead of the default account caller,
* and then assume a given role on the profile. This scenario is also
* possible by only using a profile, iff the profile includes a role to
* assume in its settings.
*
* See for more details:
* - https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html
* - https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html
* - https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html
*/
export interface KubeconfigOptions extends KubeconfigOptionsArgs {
}
/**
* RoleMapping describes a mapping from an AWS IAM role to a Kubernetes user and groups.
*/
export interface RoleMapping extends RoleMappingArgs {
}
/**
* ClusterOptions describes the configuration options accepted by an EKSCluster component.
*/
export interface ClusterOptions extends ClusterArgs {
}
/**
* CreationRoleProvider is a component containing the AWS Role and Provider necessary to override the `[system:master]`
* entity ARN. This is an optional argument used in `ClusterOptions`. Read more: https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html
*/
export interface CreationRoleProvider {
role: aws.iam.Role;
provider: pulumi.ProviderResource;
}
/**
* getRoleProvider creates a role provider that can be passed to `new eks.Cluster("test", {
* creationRoleProvider: ... })`. This can be used to provide a specific role to use for the
* creation of the EKS cluster different from the role being used to run the Pulumi deployment.
*/
export declare function getRoleProvider(name: string, region?: pulumi.Input<aws.Region>, profile?: pulumi.Input<string>, parent?: pulumi.ComponentResource, provider?: pulumi.ProviderResource): CreationRoleProvider;