@lbrlabs/pulumi-eks
Version:
This repo provides a [multi-language](https://www.pulumi.com/blog/pulumiup-pulumi-packages-multi-language-components/) component that creates a "batteries included" cluster ready for you to attach your EKS nodes to.
202 lines (201 loc) • 6.39 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
/**
* Configuration for Autoscaled Node budgets.
*/
export interface BudgetConfigArgs {
/**
* The duration during which disruptuon can happen.
*/
duration?: pulumi.Input<string>;
/**
* The maximum number of nodes that can be scaled down at any time.
*/
nodes?: pulumi.Input<string>;
/**
* A cron schedule for when disruption can happen.
*/
schedule?: pulumi.Input<string>;
}
/**
* Configuration for Autoscaled nodes disruption.
*/
export interface DisruptionConfigArgs {
/**
* Budgets control the speed Karpenter can scale down nodes.
*/
budgets?: pulumi.Input<pulumi.Input<inputs.BudgetConfigArgs>[]>;
/**
* The amount of time Karpenter should wait after discovering a consolidation decision. This value can currently only be set when the consolidationPolicy is 'WhenEmpty'. You can choose to disable consolidation entirely by setting the string value 'Never' here.
*/
consolidateAfter?: pulumi.Input<string>;
/**
* Describes which types of Nodes Karpenter should consider for consolidation.
*/
consolidationPolicy?: pulumi.Input<string>;
/**
* The amount of time a Node can live on the cluster before being removed.
*/
expireAfter?: pulumi.Input<string>;
}
/**
* disruptionConfigArgsProvideDefaults sets the appropriate defaults for DisruptionConfigArgs
*/
export declare function disruptionConfigArgsProvideDefaults(val: DisruptionConfigArgs): DisruptionConfigArgs;
/**
* Configuration for the ingress controller (deprecated, use nginxIngressConfig).
*/
export interface IngressConfigArgs {
/**
* Additional configuration for the ingress controller.
*/
additionalConfig?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Whether to allow snippet annotations in the ingress controller.
*/
allowSnippetAnnotations?: pulumi.Input<boolean>;
/**
* The number of replicas of the ingress controller.
*/
controllerReplicas?: pulumi.Input<number>;
/**
* Whether to create the external-facing ingress controller.
*/
enableExternal?: pulumi.Input<boolean>;
/**
* Whether to create the internal-facing ingress controller.
*/
enableInternal?: pulumi.Input<boolean>;
/**
* Enable metrics for the ingress controller.
*/
enableMetrics?: pulumi.Input<boolean>;
/**
* Enable the service monitor for kube-prometheus-stack.
*/
enableServiceMonitor?: pulumi.Input<boolean>;
/**
* Extra annotations to apply to the ingress controller service.
*/
extraServiceAnnotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* NLB target type for NLB loadbalancers.
*/
nlbTargetType?: pulumi.Input<string>;
/**
* The namespace to deploy the service monitor to.
*/
serviceMonitorNamespace?: pulumi.Input<string>;
}
/**
* ingressConfigArgsProvideDefaults sets the appropriate defaults for IngressConfigArgs
*/
export declare function ingressConfigArgsProvideDefaults(val: IngressConfigArgs): IngressConfigArgs;
/**
* Configuration for the nginx ingress controllers.
*/
export interface NginxIngressConfigArgs {
/**
* Additional configuration for the ingress controller.
*/
additionalConfig?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Whether to allow snippet annotations in the ingress controller.
*/
allowSnippetAnnotations?: pulumi.Input<boolean>;
/**
* The number of replicas of the ingress controller.
*/
controllerReplicas?: pulumi.Input<number>;
/**
* Whether to create the external-facing ingress controller.
*/
enableExternal?: pulumi.Input<boolean>;
/**
* Whether to create the internal-facing ingress controller.
*/
enableInternal?: pulumi.Input<boolean>;
/**
* Enable metrics for the ingress controller.
*/
enableMetrics?: pulumi.Input<boolean>;
/**
* Enable the service monitor for kube-prometheus-stack.
*/
enableServiceMonitor?: pulumi.Input<boolean>;
/**
* Extra annotations to apply to the ingress controller service.
*/
extraServiceAnnotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* NLB target type for NLB loadbalancers.
*/
nlbTargetType?: pulumi.Input<string>;
/**
* The namespace to deploy the service monitor to.
*/
serviceMonitorNamespace?: pulumi.Input<string>;
}
/**
* nginxIngressConfigArgsProvideDefaults sets the appropriate defaults for NginxIngressConfigArgs
*/
export declare function nginxIngressConfigArgsProvideDefaults(val: NginxIngressConfigArgs): NginxIngressConfigArgs;
/**
* Represents a single requirement with key, operator, and values.
*/
export interface RequirementArgs {
/**
* The key of the requirement.
*/
key?: pulumi.Input<string>;
/**
* The operator for the requirement (e.g., In, Gt).
*/
operator?: pulumi.Input<string>;
/**
* The list of values for the requirement.
*/
values?: pulumi.Input<pulumi.Input<string>[]>;
}
/**
* Configuration for the Amazon VPC CNI add-on.
*/
export interface VpcCniConfigArgs {
/**
* Whether to enable Amazon EKS network policy support in the Amazon VPC CNI add-on.
*/
enableNetworkPolicy?: pulumi.Input<boolean>;
/**
* Configuration for the Amazon VPC CNI node agent used by network policy support.
*/
nodeAgent?: pulumi.Input<inputs.VpcCniNodeAgentConfigArgs>;
}
/**
* Configuration for the Amazon VPC CNI node agent.
*/
export interface VpcCniNodeAgentConfigArgs {
/**
* Whether to enable CloudWatch logging for the Amazon VPC CNI node agent.
*/
enableCloudWatchLogs?: pulumi.Input<boolean>;
/**
* Whether to enable Amazon VPC CNI network policy event logs from the node agent.
*/
enablePolicyEventLogs?: pulumi.Input<boolean>;
/**
* Port used by the Amazon VPC CNI node agent health probe endpoint.
*/
healthProbeBindAddr?: pulumi.Input<number>;
/**
* Port used by the Amazon VPC CNI node agent metrics endpoint.
*/
metricsBindAddr?: pulumi.Input<number>;
}