A Pulumi provider SDK for creating and managing Amazon Web Services (AWS) cloud resources in Go, providing strongly-typed resource classes and data sources for all major AWS services.
Package eks provides resources and data sources for Amazon EKS (Elastic Kubernetes Service).
import "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks"func NewCluster(ctx *pulumi.Context, name string, args *ClusterArgs, opts ...pulumi.ResourceOption) (*Cluster, error)
func NewNodeGroup(ctx *pulumi.Context, name string, args *NodeGroupArgs, opts ...pulumi.ResourceOption) (*NodeGroup, error)
func NewFargateProfile(ctx *pulumi.Context, name string, args *FargateProfileArgs, opts ...pulumi.ResourceOption) (*FargateProfile, error)
func NewAddon(ctx *pulumi.Context, name string, args *AddonArgs, opts ...pulumi.ResourceOption) (*Addon, error)
func NewAccessEntry(ctx *pulumi.Context, name string, args *AccessEntryArgs, opts ...pulumi.ResourceOption) (*AccessEntry, error)
func NewAccessPolicyAssociation(ctx *pulumi.Context, name string, args *AccessPolicyAssociationArgs, opts ...pulumi.ResourceOption) (*AccessPolicyAssociation, error)
func NewIdentityProviderConfig(ctx *pulumi.Context, name string, args *IdentityProviderConfigArgs, opts ...pulumi.ResourceOption) (*IdentityProviderConfig, error)
func NewPodIdentityAssociation(ctx *pulumi.Context, name string, args *PodIdentityAssociationArgs, opts ...pulumi.ResourceOption) (*PodIdentityAssociation, error)
func NewCapability(ctx *pulumi.Context, name string, args *CapabilityArgs, opts ...pulumi.ResourceOption) (*Capability, error)func LookupCluster(ctx *pulumi.Context, args *LookupClusterArgs, opts ...pulumi.InvokeOption) (*LookupClusterResult, error)
func GetClusterAuth(ctx *pulumi.Context, args *GetClusterAuthArgs, opts ...pulumi.InvokeOption) (*GetClusterAuthResult, error)
func GetAddonVersion(ctx *pulumi.Context, args *GetAddonVersionArgs, opts ...pulumi.InvokeOption) (*GetAddonVersionResult, error)
func GetClusters(ctx *pulumi.Context, args *GetClustersArgs, opts ...pulumi.InvokeOption) (*GetClustersResult, error)
func GetNodeGroups(ctx *pulumi.Context, args *GetNodeGroupsArgs, opts ...pulumi.InvokeOption) (*GetNodeGroupsResult, error)
func GetClusterVersions(ctx *pulumi.Context, args *GetClusterVersionsArgs, opts ...pulumi.InvokeOption) (*GetClusterVersionsResult, error)func GetAddon(ctx *pulumi.Context, name string, id pulumi.IDInput, state *AddonState, opts ...pulumi.ResourceOption) (*Addon, error)
func GetFargateProfile(ctx *pulumi.Context, name string, id pulumi.IDInput, state *FargateProfileState, opts ...pulumi.ResourceOption) (*FargateProfile, error)
func GetIdentityProviderConfig(ctx *pulumi.Context, name string, id pulumi.IDInput, state *IdentityProviderConfigState, opts ...pulumi.ResourceOption) (*IdentityProviderConfig, error)
func GetNodeGroup(ctx *pulumi.Context, name string, id pulumi.IDInput, state *NodeGroupState, opts ...pulumi.ResourceOption) (*NodeGroup, error)
func GetPodIdentityAssociation(ctx *pulumi.Context, name string, id pulumi.IDInput, state *PodIdentityAssociationState, opts ...pulumi.ResourceOption) (*PodIdentityAssociation, error)
func GetCapability(ctx *pulumi.Context, name string, id pulumi.IDInput, state *CapabilityState, opts ...pulumi.ResourceOption) (*Capability, error)
func GetAccessEntry(ctx *pulumi.Context, name string, id pulumi.IDInput, state *AccessEntryState, opts ...pulumi.ResourceOption) (*AccessEntry, error)
func GetAccessPolicyAssociation(ctx *pulumi.Context, name string, id pulumi.IDInput, state *AccessPolicyAssociationState, opts ...pulumi.ResourceOption) (*AccessPolicyAssociation, error)type Cluster struct {
pulumi.CustomResourceState
// Configuration block for access config. See Amazon EKS Access Entries.
AccessConfig ClusterAccessConfigOutput `pulumi:"accessConfig"`
Arn pulumi.StringOutput `pulumi:"arn"`
// Install default unmanaged add-ons (aws-cni, kube-proxy, CoreDNS) during creation.
// If false, you must manually install desired add-ons. Forces replacement. Default: true.
BootstrapSelfManagedAddons pulumi.BoolPtrOutput `pulumi:"bootstrapSelfManagedAddons"`
// Attribute block containing certificate-authority-data for your cluster.
CertificateAuthority ClusterCertificateAuthorityOutput `pulumi:"certificateAuthority"`
ClusterId pulumi.StringOutput `pulumi:"clusterId"`
// Compute configuration for EKS Auto Mode.
ComputeConfig ClusterComputeConfigOutput `pulumi:"computeConfig"`
ControlPlaneScalingConfig ClusterControlPlaneScalingConfigOutput `pulumi:"controlPlaneScalingConfig"`
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
DeletionProtection pulumi.BoolOutput `pulumi:"deletionProtection"`
// Desired control plane logging types. See Amazon EKS Control Plane Logging.
EnabledClusterLogTypes pulumi.StringArrayOutput `pulumi:"enabledClusterLogTypes"`
EncryptionConfig ClusterEncryptionConfigPtrOutput `pulumi:"encryptionConfig"`
// Kubernetes API server endpoint.
Endpoint pulumi.StringOutput `pulumi:"endpoint"`
ForceUpdateVersion pulumi.BoolPtrOutput `pulumi:"forceUpdateVersion"`
Identities ClusterIdentityArrayOutput `pulumi:"identities"`
KubernetesNetworkConfig ClusterKubernetesNetworkConfigOutput `pulumi:"kubernetesNetworkConfig"`
// Cluster name. 1-100 chars, alphanumeric, dashes, underscores.
Name pulumi.StringOutput `pulumi:"name"`
OutpostConfig ClusterOutpostConfigPtrOutput `pulumi:"outpostConfig"`
PlatformVersion pulumi.StringOutput `pulumi:"platformVersion"`
Region pulumi.StringOutput `pulumi:"region"`
RemoteNetworkConfig ClusterRemoteNetworkConfigPtrOutput `pulumi:"remoteNetworkConfig"`
// IAM role ARN for the Kubernetes control plane.
RoleArn pulumi.StringOutput `pulumi:"roleArn"`
// One of: CREATING, ACTIVE, DELETING, FAILED.
Status pulumi.StringOutput `pulumi:"status"`
StorageConfig ClusterStorageConfigOutput `pulumi:"storageConfig"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
UpgradePolicy ClusterUpgradePolicyOutput `pulumi:"upgradePolicy"`
Version pulumi.StringOutput `pulumi:"version"`
// VPC configuration for the cluster.
VpcConfig ClusterVpcConfigOutput `pulumi:"vpcConfig"`
ZonalShiftConfig ClusterZonalShiftConfigPtrOutput `pulumi:"zonalShiftConfig"`
}type ClusterArgs struct {
AccessConfig ClusterAccessConfigPtrInput
// Install default unmanaged add-ons during creation. Forces replacement. Default: true.
BootstrapSelfManagedAddons pulumi.BoolPtrInput
ComputeConfig ClusterComputeConfigPtrInput
ControlPlaneScalingConfig ClusterControlPlaneScalingConfigPtrInput
DeletionProtection pulumi.BoolPtrInput
// Control plane log types to enable. Valid: api, audit, authenticator,
// controllerManager, scheduler.
EnabledClusterLogTypes pulumi.StringArrayInput
EncryptionConfig ClusterEncryptionConfigPtrInput
// Force version update overriding upgrade-blocking readiness checks.
ForceUpdateVersion pulumi.BoolPtrInput
KubernetesNetworkConfig ClusterKubernetesNetworkConfigPtrInput
Name pulumi.StringPtrInput
OutpostConfig ClusterOutpostConfigPtrInput
Region pulumi.StringPtrInput
RemoteNetworkConfig ClusterRemoteNetworkConfigPtrInput
// IAM role ARN for the control plane. Add dependsOn for iam.RolePolicy or
// iam.RolePolicyAttachment resources to ensure correct ordering.
RoleArn pulumi.StringInput
StorageConfig ClusterStorageConfigPtrInput
Tags pulumi.StringMapInput
UpgradePolicy ClusterUpgradePolicyPtrInput
// Kubernetes version. If omitted, uses the latest available at resource creation time.
Version pulumi.StringPtrInput
// VPC configuration. Required. Includes subnetIds, securityGroupIds, endpointPublicAccess,
// endpointPrivateAccess, publicAccessCidrs.
VpcConfig ClusterVpcConfigInput
ZonalShiftConfig ClusterZonalShiftConfigPtrInput
}package main
import (
"encoding/json"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// EKS Cluster IAM Role
assumeRolePolicy, _ := json.Marshal(map[string]interface{}{
"Version": "2012-10-17",
"Statement": []map[string]interface{}{
{
"Effect": "Allow",
"Principal": map[string]string{"Service": "eks.amazonaws.com"},
"Action": "sts:AssumeRole",
},
},
})
clusterRole, err := iam.NewRole(ctx, "eks-role", &iam.RoleArgs{
AssumeRolePolicy: pulumi.String(string(assumeRolePolicy)),
})
if err != nil {
return err
}
_, err = iam.NewRolePolicyAttachment(ctx, "eks-policy", &iam.RolePolicyAttachmentArgs{
Role: clusterRole.Name,
PolicyArn: pulumi.String("arn:aws:iam::aws:policy/AmazonEKSClusterPolicy"),
})
if err != nil {
return err
}
// EKS Cluster
cluster, err := eks.NewCluster(ctx, "my-cluster", &eks.ClusterArgs{
Name: pulumi.String("my-cluster"),
Version: pulumi.String("1.30"),
RoleArn: clusterRole.Arn,
EnabledClusterLogTypes: pulumi.StringArray{
pulumi.String("api"),
pulumi.String("audit"),
},
VpcConfig: &eks.ClusterVpcConfigArgs{
SubnetIds: pulumi.StringArray{
pulumi.String("subnet-0a1b2c3d4e5f6EXAM"),
pulumi.String("subnet-0b2c3d4e5f6a7EXAM"),
},
EndpointPublicAccess: pulumi.Bool(true),
},
}, pulumi.DependsOn([]pulumi.Resource{clusterRole}))
if err != nil {
return err
}
ctx.Export("clusterName", cluster.Name)
ctx.Export("clusterEndpoint", cluster.Endpoint)
ctx.Export("clusterVersion", cluster.Version)
return nil
})
}type NodeGroup struct {
pulumi.CustomResourceState
// AMI type for the node group. Provider only detects drift if a value is provided.
AmiType pulumi.StringOutput `pulumi:"amiType"`
Arn pulumi.StringOutput `pulumi:"arn"`
// ON_DEMAND or SPOT. Provider only detects drift if a value is provided.
CapacityType pulumi.StringOutput `pulumi:"capacityType"`
ClusterName pulumi.StringOutput `pulumi:"clusterName"`
// Disk size in GiB. Default 50 for Windows, 20 for all others.
DiskSize pulumi.IntOutput `pulumi:"diskSize"`
ForceUpdateVersion pulumi.BoolPtrOutput `pulumi:"forceUpdateVersion"`
// Instance types. Default: ["t3.medium"]. Provider only detects drift if a value is provided.
InstanceTypes pulumi.StringArrayOutput `pulumi:"instanceTypes"`
Labels pulumi.StringMapOutput `pulumi:"labels"`
LaunchTemplate NodeGroupLaunchTemplatePtrOutput `pulumi:"launchTemplate"`
NodeGroupName pulumi.StringOutput `pulumi:"nodeGroupName"`
NodeGroupNamePrefix pulumi.StringOutput `pulumi:"nodeGroupNamePrefix"`
NodeRepairConfig NodeGroupNodeRepairConfigOutput `pulumi:"nodeRepairConfig"`
// IAM Role ARN for the node group.
NodeRoleArn pulumi.StringOutput `pulumi:"nodeRoleArn"`
Region pulumi.StringOutput `pulumi:"region"`
// AMI version of the node group. Defaults to latest for the Kubernetes version.
ReleaseVersion pulumi.StringOutput `pulumi:"releaseVersion"`
// Remote access settings. Conflicts with LaunchTemplate.
RemoteAccess NodeGroupRemoteAccessPtrOutput `pulumi:"remoteAccess"`
Resources NodeGroupResourceArrayOutput `pulumi:"resources"`
ScalingConfig NodeGroupScalingConfigOutput `pulumi:"scalingConfig"`
// Status of the node group.
Status pulumi.StringOutput `pulumi:"status"`
SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
Taints NodeGroupTaintArrayOutput `pulumi:"taints"`
UpdateConfig NodeGroupUpdateConfigOutput `pulumi:"updateConfig"`
// Kubernetes version. Defaults to EKS Cluster version. Provider only detects drift if provided.
Version pulumi.StringOutput `pulumi:"version"`
}package main
import (
"encoding/json"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Node IAM Role
nodeAssumeRolePolicy, _ := json.Marshal(map[string]interface{}{
"Version": "2012-10-17",
"Statement": []map[string]interface{}{
{
"Effect": "Allow",
"Principal": map[string]string{"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole",
},
},
})
nodeRole, err := iam.NewRole(ctx, "node-role", &iam.RoleArgs{
AssumeRolePolicy: pulumi.String(string(nodeAssumeRolePolicy)),
})
if err != nil {
return err
}
for _, policyArn := range []string{
"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy",
"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy",
"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly",
} {
_, err = iam.NewRolePolicyAttachment(ctx, "node-policy-"+policyArn[len(policyArn)-10:], &iam.RolePolicyAttachmentArgs{
Role: nodeRole.Name,
PolicyArn: pulumi.String(policyArn),
})
if err != nil {
return err
}
}
// Managed Node Group
_, err = eks.NewNodeGroup(ctx, "nodes", &eks.NodeGroupArgs{
ClusterName: pulumi.String("my-cluster"),
NodeGroupName: pulumi.String("general"),
NodeRoleArn: nodeRole.Arn,
SubnetIds: pulumi.StringArray{
pulumi.String("subnet-0a1b2c3d4e5f6EXAM"),
pulumi.String("subnet-0b2c3d4e5f6a7EXAM"),
},
InstanceTypes: pulumi.StringArray{pulumi.String("t3.medium")},
ScalingConfig: &eks.NodeGroupScalingConfigArgs{
DesiredSize: pulumi.Int(2),
MinSize: pulumi.Int(1),
MaxSize: pulumi.Int(5),
},
UpdateConfig: &eks.NodeGroupUpdateConfigArgs{
MaxUnavailable: pulumi.Int(1),
},
Labels: pulumi.StringMap{
"role": pulumi.String("general"),
},
Tags: pulumi.StringMap{
"Name": pulumi.String("eks-nodes"),
},
})
return err
})
}type FargateProfile struct {
pulumi.CustomResourceState
Arn pulumi.StringOutput `pulumi:"arn"`
ClusterName pulumi.StringOutput `pulumi:"clusterName"`
FargateProfileName pulumi.StringOutput `pulumi:"fargateProfileName"`
// IAM Role ARN providing permissions for the Fargate Profile.
PodExecutionRoleArn pulumi.StringOutput `pulumi:"podExecutionRoleArn"`
Region pulumi.StringOutput `pulumi:"region"`
// Configuration blocks for selecting Kubernetes Pods to execute with this profile.
Selectors FargateProfileSelectorArrayOutput `pulumi:"selectors"`
// Status of the Fargate Profile.
Status pulumi.StringOutput `pulumi:"status"`
// Private EC2 Subnet IDs. Must have tag: kubernetes.io/cluster/CLUSTER_NAME.
SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := eks.NewFargateProfile(ctx, "fargate", &eks.FargateProfileArgs{
ClusterName: pulumi.String("my-cluster"),
FargateProfileName: pulumi.String("fargate-profile"),
PodExecutionRoleArn: pulumi.String("arn:aws:iam::123456789012:role/eks-fargate-role"),
SubnetIds: pulumi.StringArray{
pulumi.String("subnet-0a1b2c3d4e5f6EXAM"),
},
Selectors: eks.FargateProfileSelectorArray{
&eks.FargateProfileSelectorArgs{
Namespace: pulumi.String("fargate-namespace"),
Labels: pulumi.StringMap{
"app": pulumi.String("my-app"),
},
},
},
})
return err
})
}type Addon struct {
pulumi.CustomResourceState
// Add-on name (must match a name from describe-addon-versions).
AddonName pulumi.StringOutput `pulumi:"addonName"`
// Add-on version (must match a version from describe-addon-versions).
AddonVersion pulumi.StringOutput `pulumi:"addonVersion"`
Arn pulumi.StringOutput `pulumi:"arn"`
ClusterName pulumi.StringOutput `pulumi:"clusterName"`
// Custom configuration values as a JSON string matching the add-on's JSON schema.
ConfigurationValues pulumi.StringOutput `pulumi:"configurationValues"`
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
ModifiedAt pulumi.StringOutput `pulumi:"modifiedAt"`
PodIdentityAssociations AddonPodIdentityAssociationArrayOutput `pulumi:"podIdentityAssociations"`
// Preserve created resources when deleting the EKS add-on.
Preserve pulumi.BoolPtrOutput `pulumi:"preserve"`
Region pulumi.StringOutput `pulumi:"region"`
// How to resolve field value conflicts when migrating a self-managed add-on.
// Valid: NONE, OVERWRITE.
ResolveConflictsOnCreate pulumi.StringPtrOutput `pulumi:"resolveConflictsOnCreate"`
// How to resolve conflicts for an Amazon EKS add-on if values were changed from defaults.
// Valid: NONE, OVERWRITE, PRESERVE.
ResolveConflictsOnUpdate pulumi.StringPtrOutput `pulumi:"resolveConflictsOnUpdate"`
// IAM role ARN for the add-on's service account. Requires an OIDC provider.
ServiceAccountRoleArn pulumi.StringPtrOutput `pulumi:"serviceAccountRoleArn"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Install the VPC CNI add-on
_, err := eks.NewAddon(ctx, "vpc-cni", &eks.AddonArgs{
ClusterName: pulumi.String("my-cluster"),
AddonName: pulumi.String("vpc-cni"),
ResolveConflictsOnUpdate: pulumi.String("OVERWRITE"),
})
if err != nil {
return err
}
// Install CoreDNS add-on
_, err = eks.NewAddon(ctx, "coredns", &eks.AddonArgs{
ClusterName: pulumi.String("my-cluster"),
AddonName: pulumi.String("coredns"),
ResolveConflictsOnUpdate: pulumi.String("OVERWRITE"),
})
return err
})
}type AccessEntry struct {
pulumi.CustomResourceState
AccessEntryArn pulumi.StringOutput `pulumi:"accessEntryArn"`
ClusterName pulumi.StringOutput `pulumi:"clusterName"`
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
// Kubernetes groups the principal will belong to when an access entry is created.
KubernetesGroups pulumi.StringArrayOutput `pulumi:"kubernetesGroups"`
ModifiedAt pulumi.StringOutput `pulumi:"modifiedAt"`
// IAM Principal ARN requiring authentication access to the EKS cluster.
PrincipalArn pulumi.StringOutput `pulumi:"principalArn"`
Region pulumi.StringOutput `pulumi:"region"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
// STANDARD, EC2_LINUX, EC2_WINDOWS, FARGATE_LINUX.
// EC2_LINUX/EC2_WINDOWS/FARGATE_LINUX types disallow username and group inputs.
Type pulumi.StringPtrOutput `pulumi:"type"`
UserName pulumi.StringOutput `pulumi:"userName"`
}package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Create access entry for an IAM role
entry, err := eks.NewAccessEntry(ctx, "admin-entry", &eks.AccessEntryArgs{
ClusterName: pulumi.String("my-cluster"),
PrincipalArn: pulumi.String("arn:aws:iam::123456789012:role/eks-admin-role"),
KubernetesGroups: pulumi.StringArray{
pulumi.String("system:masters"),
},
Type: pulumi.String("STANDARD"),
})
if err != nil {
return err
}
// Associate the AmazonEKSClusterAdminPolicy
_, err = eks.NewAccessPolicyAssociation(ctx, "admin-policy", &eks.AccessPolicyAssociationArgs{
ClusterName: pulumi.String("my-cluster"),
PrincipalArn: entry.PrincipalArn,
PolicyArn: pulumi.String("arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"),
AccessScope: &eks.AccessPolicyAssociationAccessScopeArgs{
Type: pulumi.String("cluster"),
},
})
return err
})
}type IdentityProviderConfig struct {
pulumi.CustomResourceState
Arn pulumi.StringOutput `pulumi:"arn"`
ClusterName pulumi.StringOutput `pulumi:"clusterName"`
// OpenID Connect identity provider configuration.
Oidc IdentityProviderConfigOidcOutput `pulumi:"oidc"`
Region pulumi.StringOutput `pulumi:"region"`
Status pulumi.StringOutput `pulumi:"status"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := eks.NewIdentityProviderConfig(ctx, "oidc-config", &eks.IdentityProviderConfigArgs{
ClusterName: pulumi.String("my-cluster"),
Oidc: &eks.IdentityProviderConfigOidcArgs{
ClientId: pulumi.String("sts.amazonaws.com"),
IdentityProviderConfigName: pulumi.String("my-oidc-provider"),
IssuerUrl: pulumi.String("https://oidc.eks.us-east-1.amazonaws.com/id/EXAMPLE"),
},
})
return err
})
}func LookupCluster(ctx *pulumi.Context, args *LookupClusterArgs, opts ...pulumi.InvokeOption) (*LookupClusterResult, error)
type LookupClusterArgs struct {
// Name of the EKS cluster.
Name string `pulumi:"name"`
Region *string `pulumi:"region"`
Tags map[string]string `pulumi:"tags"`
}
type LookupClusterResult struct {
AccessConfigs []GetClusterAccessConfig `pulumi:"accessConfigs"`
Arn string `pulumi:"arn"`
CertificateAuthorities []GetClusterCertificateAuthority `pulumi:"certificateAuthorities"`
ClusterId string `pulumi:"clusterId"`
ComputeConfigs []GetClusterComputeConfig `pulumi:"computeConfigs"`
ControlPlaneScalingConfigs []GetClusterControlPlaneScalingConfig `pulumi:"controlPlaneScalingConfigs"`
CreatedAt string `pulumi:"createdAt"`
DeletionProtection bool `pulumi:"deletionProtection"`
EnabledClusterLogTypes []string `pulumi:"enabledClusterLogTypes"`
// Kubernetes API server endpoint.
Endpoint string `pulumi:"endpoint"`
Id string `pulumi:"id"`
Identities []GetClusterIdentity `pulumi:"identities"`
KubernetesNetworkConfigs []GetClusterKubernetesNetworkConfig `pulumi:"kubernetesNetworkConfigs"`
Name string `pulumi:"name"`
OutpostConfigs []GetClusterOutpostConfig `pulumi:"outpostConfigs"`
PlatformVersion string `pulumi:"platformVersion"`
Region string `pulumi:"region"`
RemoteNetworkConfigs []GetClusterRemoteNetworkConfig `pulumi:"remoteNetworkConfigs"`
RoleArn string `pulumi:"roleArn"`
// CREATING, ACTIVE, DELETING, FAILED.
Status string `pulumi:"status"`
StorageConfigs []GetClusterStorageConfig `pulumi:"storageConfigs"`
Tags map[string]string `pulumi:"tags"`
UpgradePolicies []GetClusterUpgradePolicy `pulumi:"upgradePolicies"`
Version string `pulumi:"version"`
VpcConfigs []GetClusterVpcConfig `pulumi:"vpcConfigs"`
}package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cluster, err := eks.LookupCluster(ctx, &eks.LookupClusterArgs{
Name: "my-cluster",
}, nil)
if err != nil {
return err
}
ctx.Export("endpoint", pulumi.String(cluster.Endpoint))
ctx.Export("caCert", pulumi.String(cluster.CertificateAuthorities[0].Data))
ctx.Export("version", pulumi.String(cluster.Version))
return nil
})
}func GetClusterAuth(ctx *pulumi.Context, args *GetClusterAuthArgs, opts ...pulumi.InvokeOption) (*GetClusterAuthResult, error)Retrieve an authentication token to communicate with an EKS cluster. Used when configuring a Kubernetes provider.
func GetAddonVersion(ctx *pulumi.Context, args *GetAddonVersionArgs, opts ...pulumi.InvokeOption) (*GetAddonVersionResult, error)Retrieve the default or latest EKS add-on version for a given cluster version and add-on name.
Install with Tessl CLI
npx tessl i tessl/golang-github-com-pulumi-pulumi-aws-sdk-v7docs