cluster

package module
v0.0.0-...-312d4b9 Latest Latest
Warning

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

Go to latest
Published: Jun 29, 2023 License: Apache-2.0 Imports: 17 Imported by: 0

README

Cluster

This directory contains a Pulumi Component that defines an EKS cluster.

It's designed to be reusable across the Mono Repo where required.

In larger organizations, this would likely be a distinct, separate git repository that is versioned and imported distinctly. In this reference example, we keep the component within the repo to ease the resolution of packages for the user.

This component is lifted verbatim from a Pulumi Multi-Language package that lives here. It has been copied to this repo to showcase the usage of components within a mono repo.

Todo

Currently, these components are not unit or integration tested, which would be following best practices for components

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cluster

type Cluster struct {
	pulumi.ResourceState

	ControlPlane *eks.Cluster                  `pulumi:"controlPlane"`
	SystemNodes  *NodeGroup                    `pulumi:"systemNodes"`
	OidcProvider *iam.OpenIdConnectProvider    `pulumi:"oidcProvider"`
	KubeConfig   pulumi.StringOutput           `pulumi:"kubeconfig"`
	ClusterIssue *apiextensions.CustomResource `pulumi:"clusterIssue"`
}

The Cluster component resource.

func NewCluster

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

NewCluster creates a new EKS Cluster component resource.

type ClusterArgs

type ClusterArgs struct {
	ClusterSubnetIds        pulumi.StringArrayInput  `pulumi:"clusterSubnetIds"`
	SystemNodeSubnetIds     pulumi.StringArrayInput  `pulumi:"systemNodeSubnetIds"`
	SystemNodeInstanceTypes *pulumi.StringArrayInput `pulumi:"systemNodeInstanceTypes"`
	SystemNodeMaxCount      *pulumi.IntInput         `pulumi:"systemNodeMaxCount"`
	SystemNodeMinCount      *pulumi.IntInput         `pulumi:"systemNodeMinCount"`
	SystemNodeDesiredCount  *pulumi.IntInput         `pulumi:"systemNodeDesiredCount"`
	ClusterVersion          pulumi.StringPtrInput    `pulumi:"clusterVersion"`
	LetsEncryptEmail        pulumi.StringInput       `pulumi:"letsEncryptEmail"`
}

The set of arguments for creating a Cluster component resource.

type NodeGroup

type NodeGroup struct {
	pulumi.ResourceState

	NodeGroup *eks.NodeGroup `pulumi:"attachedNodeGroup"`
	Role      *iam.Role      `pulumi:"nodeRole"`
}

func NewNodeGroup

func NewNodeGroup(ctx *pulumi.Context,
	name string, args *NodeGroupArgs, opts ...pulumi.ResourceOption) (*NodeGroup, error)

NewNodeGroup creates a new EKS Node group component resource.

type NodeGroupArgs

type NodeGroupArgs struct {
	ClusterName      pulumi.StringInput             `pulumi:"clusterName"`
	SubnetIds        pulumi.StringArrayInput        `pulumi:"subnetIds"`
	InstanceTypes    *pulumi.StringArrayInput       `pulumi:"instanceTypes"`
	NodeMaxCount     *pulumi.IntInput               `pulumi:"nodeMaxCount"`
	NodeMinCount     *pulumi.IntInput               `pulumi:"nodeMinCount"`
	NodeDesiredCount *pulumi.IntInput               `pulumi:"nodeDesiredCount"`
	Taints           eks.NodeGroupTaintArray        `pulumi:"taints"`
	Labels           pulumi.StringMapInput          `pulumi:"labels"`
	ScalingConfig    eks.NodeGroupScalingConfigArgs `pulumi:"scalingConfig"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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