Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for EKS Auto Mode #1519

Merged
merged 18 commits into from
Dec 16, 2024
Merged

Add support for EKS Auto Mode #1519

merged 18 commits into from
Dec 16, 2024

Conversation

flostadler
Copy link
Contributor

@flostadler flostadler commented Dec 6, 2024

Proposed changes

This change adds support for EKS Auto Mode (see AWS docs). It's a new feature that fully automates compute, storage, and networking management for Kubernetes clusters.

To support EKS Auto Mode, pulumi-aws was upgraded to 6.65.0 and the required options are exposed via the Cluster component's input properties.

Right now, existing clusters cannot be upgraded to use Auto Mode when using the built-in node pools. This is due to an upstream bug pulumi/pulumi-aws#4885. Users can still use EKS Auto Mode by opting out of the built-in node pools and node role. They'll have to create a node role with the appropriate access entries and create the node classes and node pools themselves in this case.
An example of this can be found in the upgrade test.

Related issues (optional)

Closes #1509
Relates to pulumi/pulumi-aws#4885

@flostadler flostadler requested a review from a team December 6, 2024 16:12
`${name}-eksRole`,
{
service: "eks.amazonaws.com",
service: pulumi.interpolate`eks.${dnsSuffix}`,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noticed this was not partition independent

Copy link

github-actions bot commented Dec 6, 2024

Does the PR have any schema changes?

Found 60 breaking changes:

Resources

  • "eks:index:Cluster":
    • inputs:
      • 🟡 "clusterSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
      • 🟡 "instanceRole" type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2Frole:Role" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2Frole:Role"
      • 🟡 "instanceRoles": items type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2Frole:Role" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2Frole:Role"
      • 🟡 "serviceRole" type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2Frole:Role" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2Frole:Role"
    • properties:
      • 🟡 "awsProvider" type changed from "/aws/v6.18.2/schema.json#/provider" to "/aws/v6.65.0/schema.json#/provider"
      • 🟡 "clusterSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
      • 🟡 "eksCluster" type changed from "/aws/v6.18.2/schema.json#/resources/aws:eks%2Fcluster:Cluster" to "/aws/v6.65.0/schema.json#/resources/aws:eks%2Fcluster:Cluster"
      • 🟡 "eksClusterIngressRule" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroupRule:SecurityGroupRule" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroupRule:SecurityGroupRule"
      • 🟡 "instanceRoles": items type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2Frole:Role" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2Frole:Role"
      • 🟡 "nodeSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
  • 🟡 "eks:index:ClusterCreationRoleProvider": properties: "role" type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2Frole:Role" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2Frole:Role"
  • "eks:index:ManagedNodeGroup":
    • inputs:
      • 🟡 "launchTemplate" type changed from "/aws/v6.18.2/schema.json#/types/aws:eks%2FNodeGroupLaunchTemplate:NodeGroupLaunchTemplate" to "/aws/v6.65.0/schema.json#/types/aws:eks%2FNodeGroupLaunchTemplate:NodeGroupLaunchTemplate"
      • 🟡 "nodeRole" type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2Frole:Role" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2Frole:Role"
      • 🟡 "remoteAccess" type changed from "/aws/v6.18.2/schema.json#/types/aws:eks%2FNodeGroupRemoteAccess:NodeGroupRemoteAccess" to "/aws/v6.65.0/schema.json#/types/aws:eks%2FNodeGroupRemoteAccess:NodeGroupRemoteAccess"
      • 🟡 "scalingConfig" type changed from "/aws/v6.18.2/schema.json#/types/aws:eks%2FNodeGroupScalingConfig:NodeGroupScalingConfig" to "/aws/v6.65.0/schema.json#/types/aws:eks%2FNodeGroupScalingConfig:NodeGroupScalingConfig"
      • 🟡 "taints": items type changed from "/aws/v6.18.2/schema.json#/types/aws:eks%2FNodeGroupTaint:NodeGroupTaint" to "/aws/v6.65.0/schema.json#/types/aws:eks%2FNodeGroupTaint:NodeGroupTaint"
    • 🟡 properties: "nodeGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:eks%2FnodeGroup:NodeGroup" to "/aws/v6.65.0/schema.json#/resources/aws:eks%2FnodeGroup:NodeGroup"
  • "eks:index:NodeGroup":
    • inputs:
      • 🟡 "clusterIngressRule" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroupRule:SecurityGroupRule" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroupRule:SecurityGroupRule"
      • 🟡 "extraNodeSecurityGroups": items type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
      • 🟡 "instanceProfile" type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2FinstanceProfile:InstanceProfile" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2FinstanceProfile:InstanceProfile"
      • 🟡 "nodeSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
    • properties:
      • 🟡 "cfnStack" type changed from "/aws/v6.18.2/schema.json#/resources/aws:cloudformation%2Fstack:Stack" to "/aws/v6.65.0/schema.json#/resources/aws:cloudformation%2Fstack:Stack"
      • 🟡 "extraNodeSecurityGroups": items type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
      • 🟡 "nodeSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
  • "eks:index:NodeGroupSecurityGroup":
    • inputs:
      • 🟡 "clusterSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
      • 🟡 "eksCluster" type changed from "/aws/v6.18.2/schema.json#/resources/aws:eks%2Fcluster:Cluster" to "/aws/v6.65.0/schema.json#/resources/aws:eks%2Fcluster:Cluster"
    • properties:
      • 🟡 "securityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
      • 🟡 "securityGroupRule" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroupRule:SecurityGroupRule" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroupRule:SecurityGroupRule"
  • "eks:index:NodeGroupV2":
    • inputs:
      • 🟡 "clusterIngressRule" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroupRule:SecurityGroupRule" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroupRule:SecurityGroupRule"
      • 🟡 "extraNodeSecurityGroups": items type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
      • 🟡 "instanceProfile" type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2FinstanceProfile:InstanceProfile" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2FinstanceProfile:InstanceProfile"
      • 🟡 "launchTemplateTagSpecifications": items type changed from "/aws/v6.18.2/schema.json#/types/aws:ec2%2FLaunchTemplateTagSpecification:LaunchTemplateTagSpecification" to "/aws/v6.65.0/schema.json#/types/aws:ec2%2FLaunchTemplateTagSpecification:LaunchTemplateTagSpecification"
      • 🟡 "nodeSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
    • properties:
      • 🟡 "autoScalingGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:autoscaling%2Fgroup:Group" to "/aws/v6.65.0/schema.json#/resources/aws:autoscaling%2Fgroup:Group"
      • 🟡 "extraNodeSecurityGroups": items type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
      • 🟡 "nodeSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"

Types

  • 🟡 "eks:index:AccessPolicyAssociation": properties: "accessScope" type changed from "/aws/v6.18.2/schema.json#/types/aws:eks%2FAccessPolicyAssociationAccessScope:AccessPolicyAssociationAccessScope" to "/aws/v6.65.0/schema.json#/types/aws:eks%2FAccessPolicyAssociationAccessScope:AccessPolicyAssociationAccessScope"
  • "eks:index:ClusterNodeGroupOptions": properties:
    • 🟡 "clusterIngressRule" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroupRule:SecurityGroupRule" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroupRule:SecurityGroupRule"
    • 🟡 "extraNodeSecurityGroups": items type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
    • 🟡 "instanceProfile" type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2FinstanceProfile:InstanceProfile" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2FinstanceProfile:InstanceProfile"
    • 🟡 "launchTemplateTagSpecifications": items type changed from "/aws/v6.18.2/schema.json#/types/aws:ec2%2FLaunchTemplateTagSpecification:LaunchTemplateTagSpecification" to "/aws/v6.65.0/schema.json#/types/aws:ec2%2FLaunchTemplateTagSpecification:LaunchTemplateTagSpecification"
    • 🟡 "nodeSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
  • "eks:index:CoreData": properties:
    • 🟡 "awsProvider" type changed from "/aws/v6.18.2/schema.json#/provider" to "/aws/v6.65.0/schema.json#/provider"
    • 🟡 "cluster" type changed from "/aws/v6.18.2/schema.json#/resources/aws:eks%2Fcluster:Cluster" to "/aws/v6.65.0/schema.json#/resources/aws:eks%2Fcluster:Cluster"
    • 🟡 "clusterIamRole" type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2Frole:Role" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2Frole:Role"
    • 🟡 "clusterSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
    • 🟡 "eksNodeAccess" type changed from "/kubernetes/v4.4.0/schema.json#/resources/kubernetes:core%2Fv1:ConfigMap" to "/kubernetes/v4.18.3/schema.json#/resources/kubernetes:core%2Fv1:ConfigMap"
    • 🟡 "encryptionConfig" type changed from "/aws/v6.18.2/schema.json#/types/aws:eks%2FClusterEncryptionConfig:ClusterEncryptionConfig" to "/aws/v6.65.0/schema.json#/types/aws:eks%2FClusterEncryptionConfig:ClusterEncryptionConfig"
    • 🟡 "fargateProfile" type changed from "/aws/v6.18.2/schema.json#/resources/aws:eks%2FfargateProfile:FargateProfile" to "/aws/v6.65.0/schema.json#/resources/aws:eks%2FfargateProfile:FargateProfile"
    • 🟡 "instanceRoles": items type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2Frole:Role" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2Frole:Role"
    • 🟡 "oidcProvider" type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2FopenIdConnectProvider:OpenIdConnectProvider" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2FopenIdConnectProvider:OpenIdConnectProvider"
    • 🟡 "provider" type changed from "/kubernetes/v4.4.0/schema.json#/provider" to "/kubernetes/v4.18.3/schema.json#/provider"
    • 🟡 "storageClasses": additional properties type changed from "/kubernetes/v4.4.0/schema.json#/resources/kubernetes:storage.k8s.io%2Fv1:StorageClass" to "/kubernetes/v4.18.3/schema.json#/resources/kubernetes:storage.k8s.io%2Fv1:StorageClass"
  • "eks:index:CreationRoleProvider": properties:
    • 🟡 "provider" type changed from "/aws/v6.18.2/schema.json#/provider" to "/aws/v6.65.0/schema.json#/provider"
    • 🟡 "role" type changed from "/aws/v6.18.2/schema.json#/resources/aws:iam%2Frole:Role" to "/aws/v6.65.0/schema.json#/resources/aws:iam%2Frole:Role"
  • 🟡 "eks:index:FargateProfile": properties: "selectors": items type changed from "/aws/v6.18.2/schema.json#/types/aws:eks%2FFargateProfileSelector:FargateProfileSelector" to "/aws/v6.65.0/schema.json#/types/aws:eks%2FFargateProfileSelector:FargateProfileSelector"
  • "eks:index:NodeGroupData": properties:
    • 🟡 "autoScalingGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:autoscaling%2Fgroup:Group" to "/aws/v6.65.0/schema.json#/resources/aws:autoscaling%2Fgroup:Group"
    • 🟡 "extraNodeSecurityGroups": items type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
    • 🟡 "nodeSecurityGroup" type changed from "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup" to "/aws/v6.65.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
  • 🟡 "eks:index:StorageClass": properties: "metadata" type changed from "/kubernetes/v4.4.0/schema.json#/types/kubernetes:meta%2Fv1:ObjectMeta" to "/kubernetes/v4.18.3/schema.json#/types/kubernetes:meta%2Fv1:ObjectMeta"
    No new resources/functions.

/**
* For IAM roles associated with EC2 instances that need access policies. Allows the nodes to join the cluster.
*/
EC2: "EC2",
Copy link
Contributor Author

@flostadler flostadler Dec 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was a huge PITA to discover. This new Access Entry type is not documented and required when using a custom node role with EKS Auto Mode or else the nodes cannot join the cluster.

}

/**
* The ServiceRole component creates an IAM role for a particular service and attaches to it a list of well-known
* managed policies.
*/
export class ServiceRole extends pulumi.ComponentResource {
// The service role.
public readonly role: pulumi.Output<aws.iam.Role>;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previously this internal component exported a single output for the role, that depended on all policy attachments.
Because of that it becomes unknown when attaching new policies.

In order to upgrade an existing cluster to Auto Mode, you need to attach new policies. The Cluster's service role property triggers replacements, so the preview would've shown that the cluster gets replaced.
This new approach is a bit more careful. We expose am output for the fully resolved role (with all policies attached) and the direct role resource itself.
Now the consumers can pick and choose what they want.

@@ -22,7 +22,16 @@ const popped = pulumi.output(publicSubnetIds).apply(subnets => {
const cluster = new eks.Cluster(`${projectName}`, {
vpcId: vpc.vpcId,
publicSubnetIds: popped,
});
}, { transforms: [args => {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test was not working correctly anymore. Previously changes to the subnets triggered replacements. this is not the case anymore. This test wants to test a cluster replacement so I forced it.

Background why this wasn't failing hard in the past:
EKS picks two of the provided subnets for its control plane ENIs. When updating them, they need to be in the same AZs as the original ones.
We have a 1/3 chance to pick the right ones (the VPC has 3 AZs) and we have 3 retries configured for the test. So we got lucky most of the times.

@bryantbiggs
Copy link

Additionally, it also exposes the bootstrapSelfManagedAddons property because it is required to be set to false when creating new clusters with EKS Auto Mode. For existing clusters it's not required that this is set to false.

Not quite. You can enable this, it just doesn't make sense. And in general, the better approach is to move to have this hard codeded as false and users will need to use the EKS Addon API to provision EKS addons when needed. This is considered a legacy behavior - but if EKS were re-designed today, it would not exist and users would only use the EKS Addon API for creating/modifying addons

@flostadler
Copy link
Contributor Author

Additionally, it also exposes the bootstrapSelfManagedAddons property because it is required to be set to false when creating new clusters with EKS Auto Mode. For existing clusters it's not required that this is set to false.

Not quite. You can enable this, it just doesn't make sense. And in general, the better approach is to move to have this hard codeded as false and users will need to use the EKS Addon API to provision EKS addons when needed. This is considered a legacy behavior - but if EKS were re-designed today, it would not exist and users would only use the EKS Addon API for creating/modifying addons

Thanks a lot for the feedback @bryantbiggs! Generally I agree with your sentiment, but hardcoding it to false would be a breaking change that we cannot take until the next major version because users expect the addons to be installed ATM.

I was thinking about an alternative until we can take the breaking change. We could just not expose that property and ignore any changes to it. When users enable EKS Auto Mode we set it to false. This would only have an effect during cluster creation.

@bryantbiggs
Copy link

oh completely agree - this is what we did in the EKS module since the default value for the boostrap managed addons is null https://github.com/terraform-aws-modules/terraform-aws-eks/blob/c63a57908d7b4d51895d3f8502d60daae758b761/main.tf#L37

with a TODO reminder to set this to a hardcoded value of false on the next breaking change.

@flostadler
Copy link
Contributor Author

flostadler commented Dec 9, 2024

TestAccClusterGo is failing because of:

aws:eks:Addon (example-cluster-4-coredns):
      error:   sdk-v2/provider2.go:520: sdk.helper_schema: waiting for EKS Add-On (example-cluster-4-eksCluster-d1ccc7b:coredns) create: timeout while waiting for state to become 'ACTIVE' (last state: 'DEGRADED', timeout: 20m0s): [email protected]

While looking into this, I noticed that this test was never working. IPv6 cannot work with the current setup because the node role is missing ec2:AssignIpv6Addresses. Right now on master it's also failing (see), but the retry "works". It seems to update the tainted addon and not do any health checking for the addon anymore.
After updating pulumi-aws to v6.63.0 it doesn't taint the addon anymore after a failed deploy. Instead it just doesn't save it to state at all. The retries now try to create the addon instead of updating it, and that fails because it already exists:

EKS Add-On (example-cluster-4-eksCluster-d1ccc7b:coredns): operation error EKS: CreateAddon, https response error StatusCode: 409, RequestID: 13a5e935-b8d2-458c-840b-fa65290c1228, ResourceInUseException: Addon already exists.: [email protected]

This seems to be an instance of pulumi/pulumi-aws#4759 which was believed to be a bug, but this behavior might actually make a regression. I'll look into it!

Edit: opened #1523 to remove the wrong and untested IPv6 example

Copy link
Contributor

@corymhall corymhall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Just some questions around the API and default values.

@@ -447,6 +454,13 @@ export function createCore(
);
}

if (args.autoMode?.enabled && !supportsAccessEntries(args.authenticationMode)) {
throw new pulumi.ResourceError(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TIL!

examples/eks-auto-mode/index.ts Outdated Show resolved Hide resolved
@flostadler flostadler requested a review from corymhall December 9, 2024 14:37
// EKS Auto Mode needs "sts:TagSession" in addition to the default "sts:AssumeRole"
assumeRoleActions: args.autoMode?.enabled
? ["sts:AssumeRole", "sts:TagSession"]
: undefined,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment makes it look like undefined should be ["sts:AssumeRole"] instead?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just add both regardless of auto mode - more policies are moving to use session tags

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

["sts:AssumeRole"] is the default of assumeRoleActions

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to know @bryantbiggs, thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed it to add sts:TagSession independent of EKS Auto Mode now

@flostadler flostadler added the do-not-merge Do Not Merge label Dec 10, 2024
@flostadler flostadler removed the do-not-merge Do Not Merge label Dec 16, 2024
@flostadler flostadler merged commit 684aabe into master Dec 16, 2024
36 checks passed
@flostadler flostadler deleted the flostadler/eks-auto-mode branch December 16, 2024 13:59
@pulumi-bot
Copy link
Contributor

This PR has been shipped in release v3.5.0.

flostadler added a commit to pulumi/docs that referenced this pull request Dec 16, 2024
> Today at re:Invent, AWS announced Amazon Elastic Kubernetes Service (Amazon EKS) Auto Mode, a new feature that fully automates compute, storage, and networking management for Kubernetes clusters.

[AWS Announcement](https://aws.amazon.com/about-aws/whats-new/2024/12/amazon-eks-auto-mode/)
[AWS Blog post](https://aws.amazon.com/blogs/aws/streamline-kubernetes-cluster-management-with-new-amazon-eks-auto-mode/)

This adds a blog post about the new EKS Auto Mode feature AWS released and how users can leverage it with Pulumi.
This is the PR for adding support to pulumi-eks: pulumi/pulumi-eks#1519
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support for EKS Auto Mode
5 participants