docs
reference
services
tessl install tessl/maven-com-pulumi--aws@7.16.0Pulumi 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.
Amazon EKS provides managed Kubernetes clusters.
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;@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();
}
}@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();
}
}@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();
}
}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());
}
}