UNPKG

@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
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>; }