@cloudtoolkit/aws
Version:
The Cloud Toolkit AWS provider for Pulumi provision well-architected solutions in [AWS](https://aws.amazon.com/). With Cloud Toolkit AWS you can use your preferred programming language to manage your platform with Infrastructure as Code.
240 lines (239 loc) • 6.9 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../../types/input";
import * as enums from "../../types/enums";
export interface AddonsArgs {
/**
* Enable the ClusterAddons.
*/
enabled: pulumi.Input<boolean>;
}
export interface AdotApplicationMetricsArgs {
/**
* Data retention expressed in days.
*/
dataRetention?: pulumi.Input<number>;
/**
* Enable metrics.
*/
enabled?: pulumi.Input<boolean>;
}
export interface ClusterAddonsIngressArgs {
/**
* Configure the admin IngressController.
*/
admin?: pulumi.Input<inputs.kubernetes.ClusterAddonsIngressItemArgs>;
/**
* Configure the default IngressController.
*/
default?: pulumi.Input<inputs.kubernetes.ClusterAddonsIngressItemArgs>;
}
export interface ClusterAddonsIngressItemArgs {
/**
* The domain used to expose the IngressController.
*/
domain?: pulumi.Input<string>;
/**
* Enable TLS termination in Load Balancer.
*/
enableTlsTermination?: pulumi.Input<boolean>;
/**
* Use a public Load Balancer to expose the IngressController.
*/
public?: pulumi.Input<boolean>;
/**
* Set a whitelist to access the IngressController.
*/
whitelist?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface ClusterApiArgs {
/**
* Configure the private endpoint for the Kubernetes API.
*/
private?: pulumi.Input<inputs.kubernetes.ClusterPrivateApiArgs>;
/**
* Configure the public endpoint for the Kubernetes API.
*/
public?: pulumi.Input<inputs.kubernetes.ClusterPublicApiArgs>;
}
export interface ClusterAuthenticationArgs {
/**
* The list of AWS Accounts that can authenticate with the API Server.
*/
accounts?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The list of AWS IAM Users names to be configured as cluster-admin.
*/
clusterAdmins?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The list of AWS IAM Roles that can authenticate with the API server.
*/
roles?: pulumi.Input<pulumi.Input<inputs.kubernetes.IamAuthenticatorRoleArgs>[]>;
/**
* The list of AWS IAM Users that can authenticate with the API server.
*/
users?: pulumi.Input<pulumi.Input<inputs.kubernetes.IamAuthenticatorUserArgs>[]>;
}
export interface ClusterNetworkingArgs {
/**
* Configure the access to admin applications.
*/
admin?: pulumi.Input<inputs.kubernetes.ClusterNetworkingIngressArgs>;
/**
* Configure the access to applications.
*/
default?: pulumi.Input<inputs.kubernetes.ClusterNetworkingIngressArgs>;
}
export interface ClusterNetworkingIngressArgs {
/**
* The domain used to expose the IngressController.
*/
domain: pulumi.Input<string>;
/**
* Enable TLS termination in Load Balancer.
*/
enableTlsTermination?: pulumi.Input<boolean>;
/**
* Use a public Load Balancer to expose the IngressController.
*/
public?: pulumi.Input<boolean>;
/**
* Set a whitelist to access the IngressController.
*/
whitelist?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface ClusterNodeGroupArgs {
/**
* Disk size in GiB for each node. Defaults to 20.
*/
diskSize?: pulumi.Input<number>;
/**
* The EC2 Instance Type to be used to create the Nodes.
*/
instanceType?: pulumi.Input<string>;
/**
* The maxium number of nodes running in the node group. Defaults to 2.
*/
maxCount: pulumi.Input<number>;
/**
* The maximum number of nodes unavailable at once during a version update. Defaults to 1.
*/
maxUnavailable: pulumi.Input<number>;
/**
* The minimum number of nodes running in the node group. Defaults to 1.
*/
minCount: pulumi.Input<number>;
/**
* The Node Group name.
*/
name: pulumi.Input<string>;
/**
* The subnets type to be used to deploy the Node Groups.
*/
subnetsType?: pulumi.Input<enums.kubernetes.ClusterSubnetsType>;
}
export interface ClusterOidcProvidersArgs {
/**
* Enable the default OIDC Provider that is used in the cluster to let Service Accounts to authenticate against AWS with a given IAM Role.
*/
enableDefaultProvider: pulumi.Input<boolean>;
}
export interface ClusterPrivateApiArgs {
/**
* Enable the private endpoint for Kubernetes API.
*/
enabled?: pulumi.Input<boolean>;
}
export interface ClusterPublicApiArgs {
/**
* Enable the public endpoint for Kubernetes API.
*/
enabled?: pulumi.Input<boolean>;
/**
* The list of CIDR that will be allowed to reach the public endpoint for Kubernetes API.
*/
whitelist?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface FluentbitLoggingArgs {
/**
* Configure applications logging.
*/
applications?: pulumi.Input<inputs.kubernetes.FluentbitLoggingItemArgs>;
/**
* Configure data plane logging.
*/
dataplane?: pulumi.Input<inputs.kubernetes.FluentbitLoggingItemArgs>;
/**
* Configure host logging.
*/
host?: pulumi.Input<inputs.kubernetes.FluentbitLoggingItemArgs>;
}
export interface FluentbitLoggingItemArgs {
/**
* Data retention expressed in days.
*/
dataRetention?: pulumi.Input<number>;
/**
* Enable logging.
*/
enabled: pulumi.Input<boolean>;
}
export interface IamAuthenticatorRoleArgs {
/**
* The list of Kubernetes groups to be associated with the AWS IAM Role.
*/
groups?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The AWS IAM Role arn.
*/
rolearn: pulumi.Input<string>;
/**
* The Kubernetes username to be associated with the AWS IAM Role.
*/
username: pulumi.Input<string>;
}
export interface IamAuthenticatorUserArgs {
/**
* The list of Kubernetes groups to be associated with the AWS IAM User.
*/
groups?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The AWS IAM User arn.
*/
userarn: pulumi.Input<string>;
/**
* The Kubernetes username to be associated with the AWS IAM User.
*/
username: pulumi.Input<string>;
}
export interface IngressNginxTlsArgs {
/**
* The domain to be used to create a signed Certificate.
*/
domain: pulumi.Input<string>;
/**
* Enable the signed Certificate.
*/
enabled?: pulumi.Input<boolean>;
/**
* The Zone id.
*/
zoneId: pulumi.Input<string>;
}
export interface ProjectResourcesArgs {
/**
* Amount of reserved CPU.
*/
cpu?: pulumi.Input<string>;
/**
* Amount of CPU limit.
*/
limitCpu?: pulumi.Input<string>;
/**
* Amount of Memory limit.
*/
limitMemory?: pulumi.Input<string>;
/**
* Amount of reserved Memory.
*/
memory?: pulumi.Input<string>;
}