eks

package
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 2, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

A batteries included EKS cluster following best practices.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AttachedFargateProfile added in v0.2.3

type AttachedFargateProfile struct {
	pulumi.ResourceState

	Profile pulumix.GPtrOutput[eks.FargateProfile, eks.FargateProfileOutput] `pulumi:"profile"`
	Role    pulumix.GPtrOutput[iam.Role, iam.RoleOutput]                     `pulumi:"role"`
}

func NewAttachedFargateProfile added in v0.2.3

func NewAttachedFargateProfile(ctx *pulumi.Context,
	name string, args *AttachedFargateProfileArgs, opts ...pulumi.ResourceOption) (*AttachedFargateProfile, error)

NewAttachedFargateProfile registers a new resource with the given unique name, arguments, and options.

type AttachedFargateProfileArgs added in v0.2.3

type AttachedFargateProfileArgs struct {
	// The name of the cluster to assign the fargate profile to.
	ClusterName pulumix.Input[string]
	Selectors   pulumix.Input[[]*eks.FargateProfileSelectorArgs]
	// The subnet IDs to use for the fargate profile.
	SubnetIds pulumix.Input[[]string]
	// Key-value map for tags to apply to Fargate Profile.
	Tags pulumix.Input[map[string]string]
}

The set of arguments for constructing a AttachedFargateProfile resource.

func (AttachedFargateProfileArgs) ElementType added in v0.2.3

func (AttachedFargateProfileArgs) ElementType() reflect.Type

type AttachedFargateProfileOutput added in v0.2.3

type AttachedFargateProfileOutput struct{ *pulumi.OutputState }

func (AttachedFargateProfileOutput) ElementType added in v0.2.3

func (AttachedFargateProfileOutput) Profile added in v0.2.3

func (AttachedFargateProfileOutput) Role added in v0.2.3

func (AttachedFargateProfileOutput) ToAttachedFargateProfileOutput added in v0.2.3

func (o AttachedFargateProfileOutput) ToAttachedFargateProfileOutput() AttachedFargateProfileOutput

func (AttachedFargateProfileOutput) ToAttachedFargateProfileOutputWithContext added in v0.2.3

func (o AttachedFargateProfileOutput) ToAttachedFargateProfileOutputWithContext(ctx context.Context) AttachedFargateProfileOutput

func (AttachedFargateProfileOutput) ToOutput added in v0.2.3

type AttachedNodeGroup

type AttachedNodeGroup struct {
	pulumi.ResourceState

	NodeGroup pulumix.GPtrOutput[eks.NodeGroup, eks.NodeGroupOutput] `pulumi:"nodeGroup"`
	NodeRole  pulumix.GPtrOutput[iam.Role, iam.RoleOutput]           `pulumi:"nodeRole"`
}

func NewAttachedNodeGroup

func NewAttachedNodeGroup(ctx *pulumi.Context,
	name string, args *AttachedNodeGroupArgs, opts ...pulumi.ResourceOption) (*AttachedNodeGroup, error)

NewAttachedNodeGroup registers a new resource with the given unique name, arguments, and options.

type AttachedNodeGroupArgs

type AttachedNodeGroupArgs struct {
	// The AMI Type for the nodegroup.
	AmiType pulumix.Input[*string]
	// The capacity type of the nodegroup.
	CapacityType pulumix.Input[*string]
	// The cluster name to attach the nodegroup tp.
	ClusterName pulumix.Input[string]
	// The size of the disk to attach to the nodes.
	DiskSize      pulumix.Input[*float64]
	InstanceTypes pulumix.Input[[]string]
	// Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.
	Labels pulumix.Input[map[string]string]
	// The release version for the nodegroup.
	ReleaseVersion pulumix.Input[*string]
	ScalingConfig  pulumix.Input[*eks.NodeGroupScalingConfigArgs]
	SubnetIds      pulumix.Input[[]string]
	// Key-value map of tags to apply to the nodegroup.
	Tags   pulumix.Input[map[string]string]
	Taints pulumix.Input[[]*eks.NodeGroupTaintArgs]
}

The set of arguments for constructing a AttachedNodeGroup resource.

func (AttachedNodeGroupArgs) ElementType

func (AttachedNodeGroupArgs) ElementType() reflect.Type

type AttachedNodeGroupOutput

type AttachedNodeGroupOutput struct{ *pulumi.OutputState }

func (AttachedNodeGroupOutput) ElementType

func (AttachedNodeGroupOutput) ElementType() reflect.Type

func (AttachedNodeGroupOutput) NodeGroup

func (AttachedNodeGroupOutput) NodeRole

func (AttachedNodeGroupOutput) ToAttachedNodeGroupOutput

func (o AttachedNodeGroupOutput) ToAttachedNodeGroupOutput() AttachedNodeGroupOutput

func (AttachedNodeGroupOutput) ToAttachedNodeGroupOutputWithContext

func (o AttachedNodeGroupOutput) ToAttachedNodeGroupOutputWithContext(ctx context.Context) AttachedNodeGroupOutput

func (AttachedNodeGroupOutput) ToOutput

type AutoscaledNodeGroup added in v0.12.0

type AutoscaledNodeGroup struct {
	pulumi.ResourceState
}

func NewAutoscaledNodeGroup added in v0.12.0

func NewAutoscaledNodeGroup(ctx *pulumi.Context,
	name string, args *AutoscaledNodeGroupArgs, opts ...pulumi.ResourceOption) (*AutoscaledNodeGroup, error)

NewAutoscaledNodeGroup registers a new resource with the given unique name, arguments, and options.

type AutoscaledNodeGroupArgs added in v0.12.0

type AutoscaledNodeGroupArgs struct {
	// AMI family for the node group.
	AmiFamily pulumix.Input[*string]
	// Annotations to apply to the node group.
	Annotations pulumix.Input[map[string]string]
	// Disk size for the node group.
	DiskSize pulumix.Input[string]
	// Node role for the node group.
	NodeRole pulumix.Input[string]
	// List of requirements for the node group.
	Requirements pulumix.Input[[]*RequirementArgs]
	// List of security group selector terms for the node group.
	SecurityGroupIds pulumix.Input[[]string]
	// List of subnet selector terms for the node group.
	SubnetIds pulumix.Input[[]string]
	// Optional node taints.
	Taints pulumix.Input[[]*corev1.TaintArgs]
}

The set of arguments for constructing a AutoscaledNodeGroup resource.

func (AutoscaledNodeGroupArgs) ElementType added in v0.12.0

func (AutoscaledNodeGroupArgs) ElementType() reflect.Type

type AutoscaledNodeGroupOutput added in v0.12.0

type AutoscaledNodeGroupOutput struct{ *pulumi.OutputState }

func (AutoscaledNodeGroupOutput) ElementType added in v0.12.0

func (AutoscaledNodeGroupOutput) ElementType() reflect.Type

func (AutoscaledNodeGroupOutput) ToAutoscaledNodeGroupOutput added in v0.12.0

func (o AutoscaledNodeGroupOutput) ToAutoscaledNodeGroupOutput() AutoscaledNodeGroupOutput

func (AutoscaledNodeGroupOutput) ToAutoscaledNodeGroupOutputWithContext added in v0.12.0

func (o AutoscaledNodeGroupOutput) ToAutoscaledNodeGroupOutputWithContext(ctx context.Context) AutoscaledNodeGroupOutput

func (AutoscaledNodeGroupOutput) ToOutput added in v0.12.0

type Cluster

type Cluster struct {
	pulumi.ResourceState

	// The cluster name
	ClusterName pulumix.Output[string] `pulumi:"clusterName"`
	// The Cluster control plane
	ControlPlane pulumix.GPtrOutput[eks.Cluster, eks.ClusterOutput] `pulumi:"controlPlane"`
	// The role created for karpenter nodes.
	KarpenterNodeRole pulumix.GPtrOutput[iam.Role, iam.RoleOutput] `pulumi:"karpenterNodeRole"`
	// The kubeconfig for this cluster.
	Kubeconfig pulumix.Output[string] `pulumi:"kubeconfig"`
	// The OIDC provider for this cluster.
	OidcProvider pulumix.GPtrOutput[iam.OpenIdConnectProvider, iam.OpenIdConnectProviderOutput] `pulumi:"oidcProvider"`
	// The system node group.
	SystemNodes pulumix.GPtrOutput[eks.NodeGroup, eks.NodeGroupOutput] `pulumi:"systemNodes"`
}

func NewCluster

func NewCluster(ctx *pulumi.Context,
	name string, args *ClusterArgs, opts ...pulumi.ResourceOption) (*Cluster, error)

NewCluster registers a new resource with the given unique name, arguments, and options.

type ClusterArgs

type ClusterArgs struct {
	// The version of the cert-manager helm chart to deploy.
	CertManagerVersion pulumix.Input[*string]
	// The ARN of the certificate to use for the ingress controller.
	CertificateArn pulumix.Input[*string]
	// Indicates whether or not the Amazon EKS private API server endpoint is enabled.
	ClusterEndpointPrivateAccess pulumix.Input[*bool]
	// Indicates whether or not the Amazon EKS public API server endpoint is enabled.
	ClusterEndpointPublicAccess pulumix.Input[*bool]
	ClusterSubnetIds            pulumix.Input[[]string]
	// The version of the EKS cluster to create.
	ClusterVersion pulumix.Input[*string]
	// The version of the eks-iam-auth-controller helm chart to deploy.
	EksIamAuthControllerVersion pulumix.Input[*string]
	// Whether to enable cert-manager with route 53 integration.
	EnableCertManager *bool
	// Whether to enable cloudwatch container insights for EKS.
	EnableCloudWatchAgent *bool
	// Whether to enable external dns with route 53 integration.
	EnableExternalDns *bool
	// Whether to create an ingress controller for external traffic.
	EnableExternalIngress *bool
	// Whether to create an ingress controller for internal traffic.
	EnableInternalIngress *bool
	// Whether to enable karpenter.
	EnableKarpenter *bool
	// Whether to enable the OTEL Distro for EKS.
	EnableOtel             *bool
	EnabledClusterLogTypes pulumix.Input[[]string]
	// The version of the external-dns helm chart to deploy.
	ExternalDNSVersion pulumix.Input[*string]
	// Configuration for the ingress controller.
	IngressConfig pulumix.Input[*IngressConfigArgs]
	// The type of loadbalancer to provision.
	LbType pulumix.Input[*string]
	// The email address to use to issue certificates from Lets Encrypt.
	LetsEncryptEmail *string
	// The version of the nginx ingress controller helm chart to deploy.
	NginxIngressVersion pulumix.Input[*string]
	// The initial number of nodes in the system autoscaling group.
	SystemNodeDesiredCount  pulumix.Input[*float64]
	SystemNodeInstanceTypes pulumix.Input[[]string]
	// The maximum number of nodes in the system autoscaling group.
	SystemNodeMaxCount pulumix.Input[*float64]
	// The minimum number of nodes in the system autoscaling group.
	SystemNodeMinCount  pulumix.Input[*float64]
	SystemNodeSubnetIds pulumix.Input[[]string]
	// Key-value map of tags to apply to the cluster.
	Tags pulumix.Input[map[string]string]
}

The set of arguments for constructing a Cluster resource.

func (ClusterArgs) ElementType

func (ClusterArgs) ElementType() reflect.Type

type ClusterOutput

type ClusterOutput struct{ *pulumi.OutputState }

func (ClusterOutput) ClusterName added in v0.3.0

func (o ClusterOutput) ClusterName() pulumix.Output[string]

The cluster name

func (ClusterOutput) ControlPlane

The Cluster control plane

func (ClusterOutput) ElementType

func (ClusterOutput) ElementType() reflect.Type

func (ClusterOutput) KarpenterNodeRole added in v0.12.0

func (o ClusterOutput) KarpenterNodeRole() pulumix.GPtrOutput[iam.Role, iam.RoleOutput]

The role created for karpenter nodes.

func (ClusterOutput) Kubeconfig

func (o ClusterOutput) Kubeconfig() pulumix.Output[string]

The kubeconfig for this cluster.

func (ClusterOutput) OidcProvider

The OIDC provider for this cluster.

func (ClusterOutput) SystemNodes

The system node group.

func (ClusterOutput) ToClusterOutput

func (o ClusterOutput) ToClusterOutput() ClusterOutput

func (ClusterOutput) ToClusterOutputWithContext

func (o ClusterOutput) ToClusterOutputWithContext(ctx context.Context) ClusterOutput

func (ClusterOutput) ToOutput

type IamRoleMapping

type IamRoleMapping struct {
	pulumi.ResourceState
}

func NewIamRoleMapping

func NewIamRoleMapping(ctx *pulumi.Context,
	name string, args *IamRoleMappingArgs, opts ...pulumi.ResourceOption) (*IamRoleMapping, error)

NewIamRoleMapping registers a new resource with the given unique name, arguments, and options.

type IamRoleMappingArgs

type IamRoleMappingArgs struct {
	// An array of groups to map the IAM role to.
	Groups pulumix.Input[[]string]
	// The arn of the role to map to a Kubernetes group.
	RoleArn pulumix.Input[string]
	// The username to assign to the rolemapping.
	Username pulumix.Input[string]
}

The set of arguments for constructing a IamRoleMapping resource.

func (IamRoleMappingArgs) ElementType

func (IamRoleMappingArgs) ElementType() reflect.Type

type IamRoleMappingOutput

type IamRoleMappingOutput struct{ *pulumi.OutputState }

func (IamRoleMappingOutput) ElementType

func (IamRoleMappingOutput) ElementType() reflect.Type

func (IamRoleMappingOutput) ToIamRoleMappingOutput

func (o IamRoleMappingOutput) ToIamRoleMappingOutput() IamRoleMappingOutput

func (IamRoleMappingOutput) ToIamRoleMappingOutputWithContext

func (o IamRoleMappingOutput) ToIamRoleMappingOutputWithContext(ctx context.Context) IamRoleMappingOutput

func (IamRoleMappingOutput) ToOutput

type IamServiceAccountRole

type IamServiceAccountRole struct {
	pulumi.ResourceState

	Role pulumix.GPtrOutput[iam.Role, iam.RoleOutput] `pulumi:"role"`
}

func NewIamServiceAccountRole

func NewIamServiceAccountRole(ctx *pulumi.Context,
	name string, args *IamServiceAccountRoleArgs, opts ...pulumi.ResourceOption) (*IamServiceAccountRole, error)

NewIamServiceAccountRole registers a new resource with the given unique name, arguments, and options.

type IamServiceAccountRoleArgs

type IamServiceAccountRoleArgs struct {
	// The namespace to create the service account in.
	NamespaceName pulumix.Input[string]
	// The arn of the OIDC provider attached to your EKS cluster.
	OidcProviderArn pulumix.Input[string]
	// The URL of the OIDC provider attached to your EKS cluster.
	OidcProviderUrl pulumix.Input[string]
	// The name of the service account to bind to the role
	ServiceAccountName pulumix.Input[string]
	// Key-value map of tags to apply to the service account.
	Tags pulumix.Input[map[string]string]
}

The set of arguments for constructing a IamServiceAccountRole resource.

func (IamServiceAccountRoleArgs) ElementType

func (IamServiceAccountRoleArgs) ElementType() reflect.Type

type IamServiceAccountRoleOutput

type IamServiceAccountRoleOutput struct{ *pulumi.OutputState }

func (IamServiceAccountRoleOutput) ElementType

func (IamServiceAccountRoleOutput) Role

func (IamServiceAccountRoleOutput) ToIamServiceAccountRoleOutput

func (o IamServiceAccountRoleOutput) ToIamServiceAccountRoleOutput() IamServiceAccountRoleOutput

func (IamServiceAccountRoleOutput) ToIamServiceAccountRoleOutputWithContext

func (o IamServiceAccountRoleOutput) ToIamServiceAccountRoleOutputWithContext(ctx context.Context) IamServiceAccountRoleOutput

func (IamServiceAccountRoleOutput) ToOutput

type IngressConfig added in v0.13.0

type IngressConfig struct {
	// Additional configuration for the ingress controller.
	AdditionalConfig map[string]string `pulumi:"additionalConfig"`
	// The number of replicas of the ingress controller.
	ControllerReplicas *float64 `pulumi:"controllerReplicas"`
	// Enable metrics for the ingress controller.
	EnableMetrics *bool `pulumi:"enableMetrics"`
	// Enable the service monitor for kube-prometheus-stackl.
	EnableServiceMonitor *bool `pulumi:"enableServiceMonitor"`
	// The namespace to deploy the service monitor to.
	ServiceMonitorNamespace *string `pulumi:"serviceMonitorNamespace"`
}

Configuration for the ingress controller.

func (*IngressConfig) Defaults added in v0.13.0

func (val *IngressConfig) Defaults() *IngressConfig

Defaults sets the appropriate defaults for IngressConfig

type IngressConfigArgs added in v0.13.0

type IngressConfigArgs struct {
	// Additional configuration for the ingress controller.
	AdditionalConfig pulumix.Input[map[string]string] `pulumi:"additionalConfig"`
	// The number of replicas of the ingress controller.
	ControllerReplicas pulumix.Input[*float64] `pulumi:"controllerReplicas"`
	// Enable metrics for the ingress controller.
	EnableMetrics pulumix.Input[*bool] `pulumi:"enableMetrics"`
	// Enable the service monitor for kube-prometheus-stackl.
	EnableServiceMonitor pulumix.Input[*bool] `pulumi:"enableServiceMonitor"`
	// The namespace to deploy the service monitor to.
	ServiceMonitorNamespace pulumix.Input[*string] `pulumi:"serviceMonitorNamespace"`
}

Configuration for the ingress controller.

func (*IngressConfigArgs) Defaults added in v0.13.0

func (val *IngressConfigArgs) Defaults() *IngressConfigArgs

Defaults sets the appropriate defaults for IngressConfigArgs

func (IngressConfigArgs) ElementType added in v0.13.0

func (IngressConfigArgs) ElementType() reflect.Type

func (IngressConfigArgs) ToIngressConfigOutput added in v0.13.0

func (i IngressConfigArgs) ToIngressConfigOutput() IngressConfigOutput

func (IngressConfigArgs) ToIngressConfigOutputWithContext added in v0.13.0

func (i IngressConfigArgs) ToIngressConfigOutputWithContext(ctx context.Context) IngressConfigOutput

func (*IngressConfigArgs) ToOutput added in v0.13.0

type IngressConfigOutput added in v0.13.0

type IngressConfigOutput struct{ *pulumi.OutputState }

Configuration for the ingress controller.

func (IngressConfigOutput) AdditionalConfig added in v0.13.0

func (o IngressConfigOutput) AdditionalConfig() pulumix.MapOutput[string]

Additional configuration for the ingress controller.

func (IngressConfigOutput) ControllerReplicas added in v0.13.0

func (o IngressConfigOutput) ControllerReplicas() pulumix.Output[*float64]

The number of replicas of the ingress controller.

func (IngressConfigOutput) ElementType added in v0.13.0

func (IngressConfigOutput) ElementType() reflect.Type

func (IngressConfigOutput) EnableMetrics added in v0.13.0

func (o IngressConfigOutput) EnableMetrics() pulumix.Output[*bool]

Enable metrics for the ingress controller.

func (IngressConfigOutput) EnableServiceMonitor added in v0.13.0

func (o IngressConfigOutput) EnableServiceMonitor() pulumix.Output[*bool]

Enable the service monitor for kube-prometheus-stackl.

func (IngressConfigOutput) ServiceMonitorNamespace added in v0.13.0

func (o IngressConfigOutput) ServiceMonitorNamespace() pulumix.Output[*string]

The namespace to deploy the service monitor to.

func (IngressConfigOutput) ToIngressConfigOutput added in v0.13.0

func (o IngressConfigOutput) ToIngressConfigOutput() IngressConfigOutput

func (IngressConfigOutput) ToIngressConfigOutputWithContext added in v0.13.0

func (o IngressConfigOutput) ToIngressConfigOutputWithContext(ctx context.Context) IngressConfigOutput

func (IngressConfigOutput) ToOutput added in v0.13.0

type Provider

type Provider struct {
	pulumi.ProviderResourceState
}

func NewProvider

func NewProvider(ctx *pulumi.Context,
	name string, args *ProviderArgs, opts ...pulumi.ResourceOption) (*Provider, error)

NewProvider registers a new resource with the given unique name, arguments, and options.

type ProviderArgs

type ProviderArgs struct {
}

The set of arguments for constructing a Provider resource.

func (ProviderArgs) ElementType

func (ProviderArgs) ElementType() reflect.Type

type ProviderOutput

type ProviderOutput struct{ *pulumi.OutputState }

func (ProviderOutput) ElementType

func (ProviderOutput) ElementType() reflect.Type

func (ProviderOutput) ToOutput

func (ProviderOutput) ToProviderOutput

func (o ProviderOutput) ToProviderOutput() ProviderOutput

func (ProviderOutput) ToProviderOutputWithContext

func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) ProviderOutput

type Requirement added in v0.12.0

type Requirement struct {
	// The key of the requirement.
	Key *string `pulumi:"key"`
	// The operator for the requirement (e.g., In, Gt).
	Operator *string `pulumi:"operator"`
	// The list of values for the requirement.
	Values []string `pulumi:"values"`
}

Represents a single requirement with key, operator, and values.

type RequirementArgs added in v0.12.0

type RequirementArgs struct {
	// The key of the requirement.
	Key pulumix.Input[*string] `pulumi:"key"`
	// The operator for the requirement (e.g., In, Gt).
	Operator pulumix.Input[*string] `pulumi:"operator"`
	// The list of values for the requirement.
	Values pulumix.Input[[]string] `pulumi:"values"`
}

Represents a single requirement with key, operator, and values.

func (RequirementArgs) ElementType added in v0.12.0

func (RequirementArgs) ElementType() reflect.Type

func (*RequirementArgs) ToOutput added in v0.12.0

func (RequirementArgs) ToRequirementOutput added in v0.12.0

func (i RequirementArgs) ToRequirementOutput() RequirementOutput

func (RequirementArgs) ToRequirementOutputWithContext added in v0.12.0

func (i RequirementArgs) ToRequirementOutputWithContext(ctx context.Context) RequirementOutput

type RequirementOutput added in v0.12.0

type RequirementOutput struct{ *pulumi.OutputState }

Represents a single requirement with key, operator, and values.

func (RequirementOutput) ElementType added in v0.12.0

func (RequirementOutput) ElementType() reflect.Type

func (RequirementOutput) Key added in v0.12.0

The key of the requirement.

func (RequirementOutput) Operator added in v0.12.0

func (o RequirementOutput) Operator() pulumix.Output[*string]

The operator for the requirement (e.g., In, Gt).

func (RequirementOutput) ToOutput added in v0.12.0

func (RequirementOutput) ToRequirementOutput added in v0.12.0

func (o RequirementOutput) ToRequirementOutput() RequirementOutput

func (RequirementOutput) ToRequirementOutputWithContext added in v0.12.0

func (o RequirementOutput) ToRequirementOutputWithContext(ctx context.Context) RequirementOutput

func (RequirementOutput) Values added in v0.12.0

The list of values for the requirement.

type Taint added in v0.12.0

type Taint struct {
	// The effect of the taint.
	Effect []string `pulumi:"effect"`
	// The key of the taint.
	Key *string `pulumi:"key"`
	// The value of the taint.
	Value *string `pulumi:"value"`
}

Represents a taint for a karpenter node.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL