Ctrl + k

or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.pulumi/aws@7.16.x

docs

common-patterns.mdgetting-started.mdindex.mdprovider.md
tile.json

tessl/maven-com-pulumi--aws

tessl install tessl/maven-com-pulumi--aws@7.16.0

Pulumi Java SDK for AWS providing strongly-typed Infrastructure-as-Code for 227 AWS service packages including compute, storage, databases, networking, security, analytics, machine learning, and more.

eks.mddocs/services/compute/

EKS (Elastic Kubernetes Service)

Amazon EKS provides managed Kubernetes clusters.

Core Imports

import com.pulumi.aws.eks.Cluster;
import com.pulumi.aws.eks.ClusterArgs;
import com.pulumi.aws.eks.NodeGroup;
import com.pulumi.aws.eks.NodeGroupArgs;
import com.pulumi.aws.eks.FargateProfile;
import com.pulumi.aws.eks.FargateProfileArgs;
import com.pulumi.aws.eks.Addon;
import com.pulumi.aws.eks.AddonArgs;
import com.pulumi.aws.eks.EksFunctions;

Cluster Resource

@ResourceType(type="aws:eks/cluster:Cluster")
public class Cluster extends com.pulumi.resources.CustomResource {
    public Cluster(String name, ClusterArgs args);

    public Output<String> id();
    public Output<String> arn();
    public Output<String> name();
    public Output<String> version();
    public Output<String> roleArn();
    public Output<ClusterVpcConfig> vpcConfig();
    public Output<String> endpoint();
    public Output<String> certificateAuthority();
    public Output<Optional<String>> status();
}

public class ClusterArgs extends com.pulumi.resources.ResourceArgs {
    public static Builder builder() { return new Builder(); }

    public static final class Builder {
        public Builder name(Output<String> name);
        public Builder roleArn(Output<String> roleArn);
        public Builder vpcConfig(Output<ClusterVpcConfigArgs> vpcConfig);
        public Builder version(Output<String> version);
        public Builder encryptionConfig(Output<ClusterEncryptionConfigArgs> encryptionConfig);
        public Builder tags(Output<Map<String, String>> tags);

        public ClusterArgs build();
    }
}

Node Group Resource

@ResourceType(type="aws:eks/nodeGroup:NodeGroup")
public class NodeGroup extends com.pulumi.resources.CustomResource {
    public NodeGroup(String name, NodeGroupArgs args);

    public Output<String> id();
    public Output<String> arn();
    public Output<String> clusterName();
    public Output<String> nodeGroupName();
    public Output<String> nodeRoleArn();
    public Output<List<String>> subnetIds();
    public Output<NodeGroupScalingConfig> scalingConfig();
}

public class NodeGroupArgs extends com.pulumi.resources.ResourceArgs {
    public static Builder builder() { return new Builder(); }

    public static final class Builder {
        public Builder clusterName(Output<String> clusterName);
        public Builder nodeGroupName(Output<String> nodeGroupName);
        public Builder nodeRoleArn(Output<String> nodeRoleArn);
        public Builder subnetIds(Output<List<String>> subnetIds);
        public Builder scalingConfig(Output<NodeGroupScalingConfigArgs> scalingConfig);
        public Builder instanceTypes(Output<List<String>> instanceTypes);
        public Builder amiType(Output<String> amiType);
        public Builder diskSize(Output<Integer> diskSize);
        public Builder remoteAccess(Output<NodeGroupRemoteAccessArgs> remoteAccess);
        public Builder tags(Output<Map<String, String>> tags);

        public NodeGroupArgs build();
    }
}

Fargate Profile Resource

@ResourceType(type="aws:eks/fargateProfile:FargateProfile")
public class FargateProfile extends com.pulumi.resources.CustomResource {
    public FargateProfile(String name, FargateProfileArgs args);

    public Output<String> id();
    public Output<String> arn();
    public Output<String> clusterName();
    public Output<String> fargateProfileName();
    public Output<String> podExecutionRoleArn();
    public Output<List<String>> subnetIds();
}

public class FargateProfileArgs extends com.pulumi.resources.ResourceArgs {
    public static Builder builder() { return new Builder(); }

    public static final class Builder {
        public Builder clusterName(Output<String> clusterName);
        public Builder fargateProfileName(Output<String> fargateProfileName);
        public Builder podExecutionRoleArn(Output<String> podExecutionRoleArn);
        public Builder subnetIds(Output<List<String>> subnetIds);
        public Builder selectors(Output<List<FargateProfileSelectorArgs>> selectors);
        public Builder tags(Output<Map<String, String>> tags);

        public FargateProfileArgs build();
    }
}

Usage Example

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.eks.*;
import com.pulumi.aws.eks.inputs.*;
import java.util.Map;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        // Create EKS cluster
        var cluster = new Cluster("my-cluster", ClusterArgs.builder()
            .name("my-eks-cluster")
            .version("1.28")
            .roleArn(clusterRole.arn())
            .vpcConfig(ClusterVpcConfigArgs.builder()
                .subnetIds(subnetIds)
                .endpointPrivateAccess(true)
                .endpointPublicAccess(true)
                .build())
            .build());

        // Create node group
        var nodeGroup = new NodeGroup("my-nodes", NodeGroupArgs.builder()
            .clusterName(cluster.name())
            .nodeGroupName("standard-nodes")
            .nodeRoleArn(nodeRole.arn())
            .subnetIds(subnetIds)
            .scalingConfig(NodeGroupScalingConfigArgs.builder()
                .desiredSize(2)
                .maxSize(4)
                .minSize(1)
                .build())
            .instanceTypes("t3.medium")
            .build());

        ctx.export("clusterEndpoint", cluster.endpoint());
        ctx.export("clusterName", cluster.name());
    }
}