[{"id":"14818498610","type":"IssueCommentEvent","actor":{"id":3318786,"login":"andrewleech","display_login":"andrewleech","gravatar_id":"","url":"https://api.github.com/users/andrewleech","avatar_url":"https://avatars.githubusercontent.com/u/3318786?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/events","html_url":"https://github.com/aws/karpenter-provider-aws/issues/3798","id":1680427454,"node_id":"I_kwDOEJlGCc5kKUm-","number":3798,"title":"Warm Up Nodes Options (Hibernation)","user":{"login":"abebars","id":1381372,"node_id":"MDQ6VXNlcjEzODEzNzI=","avatar_url":"https://avatars.githubusercontent.com/u/1381372?v=4","gravatar_id":"","url":"https://api.github.com/users/abebars","html_url":"https://github.com/abebars","followers_url":"https://api.github.com/users/abebars/followers","following_url":"https://api.github.com/users/abebars/following{/other_user}","gists_url":"https://api.github.com/users/abebars/gists{/gist_id}","starred_url":"https://api.github.com/users/abebars/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abebars/subscriptions","organizations_url":"https://api.github.com/users/abebars/orgs","repos_url":"https://api.github.com/users/abebars/repos","events_url":"https://api.github.com/users/abebars/events{/privacy}","received_events_url":"https://api.github.com/users/abebars/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":2193236766,"node_id":"MDU6TGFiZWwyMTkzMjM2NzY2","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/feature","name":"feature","color":"62FC92","default":false,"description":"New feature or request"},{"id":2889925901,"node_id":"MDU6TGFiZWwyODg5OTI1OTAx","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/needs-design","name":"needs-design","color":"3EA4D7","default":false,"description":"Design required"},{"id":7150869733,"node_id":"LA_kwDOEJlGCc8AAAABqjmc5Q","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/triage/needs-information","name":"triage/needs-information","color":"b60205","default":false,"description":"Marks that the issue still needs more information to properly triage"},{"id":7473893276,"node_id":"LA_kwDOEJlGCc8AAAABvXqPnA","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/triage/needs-owner","name":"triage/needs-owner","color":"006b75","default":false,"description":"Indicates that the issue needs an owner to address it"}],"state":"closed","locked":false,"assignees":[],"milestone":null,"comments":60,"created_at":"2023-04-24T04:22:04Z","updated_at":"2026-09-10T21:38:52Z","closed_at":"2026-09-04T17:30:40Z","assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"### Tell us about your request\n\nAllow Kaprneter to provision more nodes in a hibernated state which would decrease the new nodes provisioning time for rapid scaling. \n\n### Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?\n\nKaprneter is excellent for optimizing the cluster capacity; however, on the other side, applications that require rapid scaling will need to wait until the new nodes are provisioned.\r\nThere is a proposal [here](https://github.com/aws/karpenter/issues/3240) to add headroom logic, But that means we are still going to have running nodes with no workloads which they are being charged for.\r\n\r\nAnother option is to support Hibernation (Stopped Instances), which will be bootstrapped and ready to join the clusters once needed. This feature is already supported out of the box as [Warm Pool for Auto Scaling Group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html) \n\n### Are you currently working around this issue?\n\nUsing Low Priority Pods could be less practical from a cost-saving perspective. Similar to https://github.com/aws/karpenter/issues/3240\n\n### Additional Context\n\n_No response_\n\n### Attachments\n\n_No response_\n\n### Community Note\n\n* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request\r\n* Please do not leave \"+1\" or \"me too\" comments, they generate extra noise for issue followers and do not help prioritize the request\r\n* If you are interested in working on this issue or have submitted a pull request, please leave a comment\r\n","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/reactions","total_count":208,"+1":207,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":1,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/timeline","performed_via_github_app":null,"state_reason":"completed","pinned_comment":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5625787593","html_url":"https://github.com/aws/karpenter-provider-aws/issues/3798#issuecomment-5625787593","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798","id":5625787593,"node_id":"IC_kwDOEJlGCc8AAAABT1K0yQ","user":{"login":"andrewleech","id":3318786,"node_id":"MDQ6VXNlcjMzMTg3ODY=","avatar_url":"https://avatars.githubusercontent.com/u/3318786?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewleech","html_url":"https://github.com/andrewleech","followers_url":"https://api.github.com/users/andrewleech/followers","following_url":"https://api.github.com/users/andrewleech/following{/other_user}","gists_url":"https://api.github.com/users/andrewleech/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewleech/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewleech/subscriptions","organizations_url":"https://api.github.com/users/andrewleech/orgs","repos_url":"https://api.github.com/users/andrewleech/repos","events_url":"https://api.github.com/users/andrewleech/events{/privacy}","received_events_url":"https://api.github.com/users/andrewleech/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T21:38:01Z","updated_at":"2026-09-10T21:38:52Z","body":"@sergiy-slobodyan most of the discussion here has been about hibernation, capacity buffers is basically the opposite of that. \n\nFor bursty workloads having excess nodes alive and idle is an unacceptable cost. \n\nFor workloads that require a range of different node types this issue is compounded further.\n\nThe request here is to have working nodes able to be hibernated when idle to reduce costs to storage alone, with these nodes rapidly restarted when needed.","pin":null,"reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5625787593/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null,"minimized":null}},"public":true,"created_at":"2026-09-10T21:38:01Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14817588920","type":"IssueCommentEvent","actor":{"id":41898282,"login":"github-actions[bot]","display_login":"github-actions","gravatar_id":"","url":"https://api.github.com/users/github-actions[bot]","avatar_url":"https://avatars.githubusercontent.com/u/41898282?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221/events","html_url":"https://github.com/aws/karpenter-provider-aws/pull/9221","id":4582745017,"node_id":"PR_kwDOEJlGCc7iXioe","number":9221,"title":"test: Adding E2E Tests for Zonal Shift provider. ","user":{"login":"sagdhana","id":270458516,"node_id":"U_kgDOEB7elA","avatar_url":"https://avatars.githubusercontent.com/u/270458516?v=4","gravatar_id":"","url":"https://api.github.com/users/sagdhana","html_url":"https://github.com/sagdhana","followers_url":"https://api.github.com/users/sagdhana/followers","following_url":"https://api.github.com/users/sagdhana/following{/other_user}","gists_url":"https://api.github.com/users/sagdhana/gists{/gist_id}","starred_url":"https://api.github.com/users/sagdhana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sagdhana/subscriptions","organizations_url":"https://api.github.com/users/sagdhana/orgs","repos_url":"https://api.github.com/users/sagdhana/repos","events_url":"https://api.github.com/users/sagdhana/events{/privacy}","received_events_url":"https://api.github.com/users/sagdhana/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"open","locked":false,"assignees":[],"milestone":null,"comments":11,"created_at":"2026-06-03T18:52:14Z","updated_at":"2026-09-10T21:19:50Z","closed_at":null,"assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9221","html_url":"https://github.com/aws/karpenter-provider-aws/pull/9221","diff_url":"https://github.com/aws/karpenter-provider-aws/pull/9221.diff","patch_url":"https://github.com/aws/karpenter-provider-aws/pull/9221.patch","merged_at":null},"body":"<!-- Please follow the guidelines at https://www.conventionalcommits.org/en/v1.0.0/ and use one of the following in your title:\r\nfeat:            <-- New features that require a MINOR version update\r\nfix:             <-- Bug fixes that require at PATCH version update\r\nchore:           <-- Smaller changes that impact behavior but aren't large enough to be features\r\nperf:            <-- Code changes that improve performance but do not impact behavior\r\ndocs:            <-- Documentation changes that do not impact code\r\ntest:            <-- Test changes that do not impact behavior\r\nci:              <-- Changes that affect test or rollout automation\r\n!${type}:        <-- Include ! if your change includes a backwards incompatible change.\r\n\r\nPlease review the Karpenter contribution docs at https://karpenter.sh/docs/contributing/ before submitting your pull request.\r\n-->\r\n\r\nFixes #N/A <!-- issue number -->\r\n\r\n**Description**\r\n\r\nAdding E2E tests for Zonal Shift integration.\r\n\r\n**How was this change tested?**\r\n\r\nPreviously submitted https://github.com/aws/karpenter-provider-aws/pull/9146 however I messed up the branch and caused the PR to auto closed. This PR has the same changes and address the comments in the original. \r\n\r\n**Does this change impact docs?**\r\n- [ ] Yes, PR includes docs updates <!-- docs must be added to /preview to be included in future version releases -->\r\n- [ ] Yes, issue opened: # <!-- issue number -->\r\n- [x] No\r\n\r\nBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5625592492","html_url":"https://github.com/aws/karpenter-provider-aws/pull/9221#issuecomment-5625592492","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221","id":5625592492,"node_id":"IC_kwDOEJlGCc8AAAABT0-6rA","user":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T21:19:50Z","updated_at":"2026-09-10T21:19:50Z","body":"Snapshot successfully published to `oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter:0-ab846b35a15701c3192bda457fb6704f0c20f069`.\nTo install you must login to the ECR repo with an AWS account:\n~~~\naws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 021119463062.dkr.ecr.us-east-1.amazonaws.com\n\nhelm upgrade --install karpenter oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter --version \"0-ab846b35a15701c3192bda457fb6704f0c20f069\" --namespace \"kube-system\" --create-namespace \\\n  --set \"settings.clusterName=${CLUSTER_NAME}\" \\\n  --set \"settings.interruptionQueue=${CLUSTER_NAME}\" \\\n  --set controller.resources.requests.cpu=1 \\\n  --set controller.resources.requests.memory=1Gi \\\n  --set controller.resources.limits.cpu=1 \\\n  --set controller.resources.limits.memory=1Gi \\\n  --wait\n~~~\n","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5625592492/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":{"id":15368,"client_id":"Iv1.05c79e9ad1f6bdfa","slug":"github-actions","node_id":"MDM6QXBwMTUzNjg=","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","user_view_type":"public","site_admin":false},"name":"GitHub Actions","description":"Automate your workflow from idea to production","external_url":"https://help.github.com/en/actions","html_url":"https://github.com/apps/github-actions","created_at":"2018-07-30T09:30:17Z","updated_at":"2026-06-18T16:17:48Z","permissions":{"actions":"write","administration":"read","artifact_metadata":"write","attestations":"write","checks":"write","code_quality":"write","contents":"write","copilot_requests":"write","deployments":"write","discussions":"write","drives":"write","issues":"write","merge_queues":"write","metadata":"read","models":"read","packages":"write","pages":"write","pull_requests":"write","repository_hooks":"write","repository_projects":"write","security_events":"write","statuses":"write","vulnerability_alerts":"read"},"events":["branch_protection_rule","check_run","check_suite","create","delete","deployment","deployment_status","discussion","discussion_comment","fork","gollum","issues","issue_comment","label","merge_group","milestone","page_build","public","pull_request","pull_request_review","pull_request_review_comment","push","registry_package","release","repository","repository_dispatch","status","watch","workflow_dispatch","workflow_run"]},"minimized":null}},"public":true,"created_at":"2026-09-10T21:19:50Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14816604211","type":"PullRequestReviewEvent","actor":{"id":76954924,"login":"GaneshBannur","display_login":"GaneshBannur","gravatar_id":"","url":"https://api.github.com/users/GaneshBannur","avatar_url":"https://avatars.githubusercontent.com/u/76954924?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"review":{"id":5172235661,"node_id":"PRR_kwDOEJlGCc8AAAABNEoNjQ","user":{"login":"GaneshBannur","id":76954924,"node_id":"MDQ6VXNlcjc2OTU0OTI0","avatar_url":"https://avatars.githubusercontent.com/u/76954924?v=4","gravatar_id":"","url":"https://api.github.com/users/GaneshBannur","html_url":"https://github.com/GaneshBannur","followers_url":"https://api.github.com/users/GaneshBannur/followers","following_url":"https://api.github.com/users/GaneshBannur/following{/other_user}","gists_url":"https://api.github.com/users/GaneshBannur/gists{/gist_id}","starred_url":"https://api.github.com/users/GaneshBannur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GaneshBannur/subscriptions","organizations_url":"https://api.github.com/users/GaneshBannur/orgs","repos_url":"https://api.github.com/users/GaneshBannur/repos","events_url":"https://api.github.com/users/GaneshBannur/events{/privacy}","received_events_url":"https://api.github.com/users/GaneshBannur/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"/karpenter snapshot","commit_id":"ab846b35a15701c3192bda457fb6704f0c20f069","state":"commented","html_url":"https://github.com/aws/karpenter-provider-aws/pull/9221#pullrequestreview-5172235661","pull_request_url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9221","_links":{"html":{"href":"https://github.com/aws/karpenter-provider-aws/pull/9221#pullrequestreview-5172235661"},"pull_request":{"href":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9221"}},"submitted_at":"2026-09-10T21:01:22Z","updated_at":"2026-09-10T21:01:22Z"},"pull_request":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9221","id":3797821982,"number":9221,"head":{"ref":"main","sha":"ab846b35a15701c3192bda457fb6704f0c20f069","repo":{"id":1196589221,"url":"https://api.github.com/repos/sagdhana/karpenter-provider-aws","name":"karpenter-provider-aws"}},"base":{"ref":"main","sha":"7ab17791a2b596b7ddea7071ad5a1b0bd44bb0cf","repo":{"id":278480393,"url":"https://api.github.com/repos/aws/karpenter-provider-aws","name":"karpenter-provider-aws"}}},"action":"created"},"public":true,"created_at":"2026-09-10T21:01:23Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14816555664","type":"IssueCommentEvent","actor":{"id":76954924,"login":"GaneshBannur","display_login":"GaneshBannur","gravatar_id":"","url":"https://api.github.com/users/GaneshBannur","avatar_url":"https://avatars.githubusercontent.com/u/76954924?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221/events","html_url":"https://github.com/aws/karpenter-provider-aws/pull/9221","id":4582745017,"node_id":"PR_kwDOEJlGCc7iXioe","number":9221,"title":"test: Adding E2E Tests for Zonal Shift provider. ","user":{"login":"sagdhana","id":270458516,"node_id":"U_kgDOEB7elA","avatar_url":"https://avatars.githubusercontent.com/u/270458516?v=4","gravatar_id":"","url":"https://api.github.com/users/sagdhana","html_url":"https://github.com/sagdhana","followers_url":"https://api.github.com/users/sagdhana/followers","following_url":"https://api.github.com/users/sagdhana/following{/other_user}","gists_url":"https://api.github.com/users/sagdhana/gists{/gist_id}","starred_url":"https://api.github.com/users/sagdhana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sagdhana/subscriptions","organizations_url":"https://api.github.com/users/sagdhana/orgs","repos_url":"https://api.github.com/users/sagdhana/repos","events_url":"https://api.github.com/users/sagdhana/events{/privacy}","received_events_url":"https://api.github.com/users/sagdhana/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"open","locked":false,"assignees":[],"milestone":null,"comments":11,"created_at":"2026-06-03T18:52:14Z","updated_at":"2026-09-10T21:19:50Z","closed_at":null,"assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9221","html_url":"https://github.com/aws/karpenter-provider-aws/pull/9221","diff_url":"https://github.com/aws/karpenter-provider-aws/pull/9221.diff","patch_url":"https://github.com/aws/karpenter-provider-aws/pull/9221.patch","merged_at":null},"body":"<!-- Please follow the guidelines at https://www.conventionalcommits.org/en/v1.0.0/ and use one of the following in your title:\r\nfeat:            <-- New features that require a MINOR version update\r\nfix:             <-- Bug fixes that require at PATCH version update\r\nchore:           <-- Smaller changes that impact behavior but aren't large enough to be features\r\nperf:            <-- Code changes that improve performance but do not impact behavior\r\ndocs:            <-- Documentation changes that do not impact code\r\ntest:            <-- Test changes that do not impact behavior\r\nci:              <-- Changes that affect test or rollout automation\r\n!${type}:        <-- Include ! if your change includes a backwards incompatible change.\r\n\r\nPlease review the Karpenter contribution docs at https://karpenter.sh/docs/contributing/ before submitting your pull request.\r\n-->\r\n\r\nFixes #N/A <!-- issue number -->\r\n\r\n**Description**\r\n\r\nAdding E2E tests for Zonal Shift integration.\r\n\r\n**How was this change tested?**\r\n\r\nPreviously submitted https://github.com/aws/karpenter-provider-aws/pull/9146 however I messed up the branch and caused the PR to auto closed. This PR has the same changes and address the comments in the original. \r\n\r\n**Does this change impact docs?**\r\n- [ ] Yes, PR includes docs updates <!-- docs must be added to /preview to be included in future version releases -->\r\n- [ ] Yes, issue opened: # <!-- issue number -->\r\n- [x] No\r\n\r\nBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5625369271","html_url":"https://github.com/aws/karpenter-provider-aws/pull/9221#issuecomment-5625369271","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9221","id":5625369271,"node_id":"IC_kwDOEJlGCc8AAAABT0xStw","user":{"login":"GaneshBannur","id":76954924,"node_id":"MDQ6VXNlcjc2OTU0OTI0","avatar_url":"https://avatars.githubusercontent.com/u/76954924?v=4","gravatar_id":"","url":"https://api.github.com/users/GaneshBannur","html_url":"https://github.com/GaneshBannur","followers_url":"https://api.github.com/users/GaneshBannur/followers","following_url":"https://api.github.com/users/GaneshBannur/following{/other_user}","gists_url":"https://api.github.com/users/GaneshBannur/gists{/gist_id}","starred_url":"https://api.github.com/users/GaneshBannur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GaneshBannur/subscriptions","organizations_url":"https://api.github.com/users/GaneshBannur/orgs","repos_url":"https://api.github.com/users/GaneshBannur/repos","events_url":"https://api.github.com/users/GaneshBannur/events{/privacy}","received_events_url":"https://api.github.com/users/GaneshBannur/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T21:00:27Z","updated_at":"2026-09-10T21:00:27Z","body":"/karpenter snapshot","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5625369271/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null,"minimized":null}},"public":true,"created_at":"2026-09-10T21:00:27Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14815574467","type":"PullRequestEvent","actor":{"id":76954924,"login":"GaneshBannur","display_login":"GaneshBannur","gravatar_id":"","url":"https://api.github.com/users/GaneshBannur","avatar_url":"https://avatars.githubusercontent.com/u/76954924?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"opened","number":9587,"pull_request":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9587","id":4499838447,"number":9587,"head":{"ref":"harden-website-preview-artifact-handling","sha":"7ef2425e8493c0fd972b0cbe79ad25827aa9645f","repo":{"id":1225841448,"url":"https://api.github.com/repos/GaneshBannur/karpenter-provider-aws","name":"karpenter-provider-aws"}},"base":{"ref":"main","sha":"7ab17791a2b596b7ddea7071ad5a1b0bd44bb0cf","repo":{"id":278480393,"url":"https://api.github.com/repos/aws/karpenter-provider-aws","name":"karpenter-provider-aws"}}}},"public":true,"created_at":"2026-09-10T20:42:21Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14814396440","type":"PullRequestReviewEvent","actor":{"id":199161262,"login":"DerekFrank","display_login":"DerekFrank","gravatar_id":"","url":"https://api.github.com/users/DerekFrank","avatar_url":"https://avatars.githubusercontent.com/u/199161262?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"review":{"id":5171882149,"node_id":"PRR_kwDOEJlGCc8AAAABNESopQ","user":{"login":"DerekFrank","id":199161262,"node_id":"U_kgDOC971rg","avatar_url":"https://avatars.githubusercontent.com/u/199161262?v=4","gravatar_id":"","url":"https://api.github.com/users/DerekFrank","html_url":"https://github.com/DerekFrank","followers_url":"https://api.github.com/users/DerekFrank/followers","following_url":"https://api.github.com/users/DerekFrank/following{/other_user}","gists_url":"https://api.github.com/users/DerekFrank/gists{/gist_id}","starred_url":"https://api.github.com/users/DerekFrank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DerekFrank/subscriptions","organizations_url":"https://api.github.com/users/DerekFrank/orgs","repos_url":"https://api.github.com/users/DerekFrank/repos","events_url":"https://api.github.com/users/DerekFrank/events{/privacy}","received_events_url":"https://api.github.com/users/DerekFrank/received_events","type":"User","user_view_type":"public","site_admin":false},"body":"/karpenter snapshot","commit_id":"ab846b35a15701c3192bda457fb6704f0c20f069","state":"commented","html_url":"https://github.com/aws/karpenter-provider-aws/pull/9221#pullrequestreview-5171882149","pull_request_url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9221","_links":{"html":{"href":"https://github.com/aws/karpenter-provider-aws/pull/9221#pullrequestreview-5171882149"},"pull_request":{"href":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9221"}},"submitted_at":"2026-09-10T20:21:26Z","updated_at":"2026-09-10T20:21:26Z"},"pull_request":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9221","id":3797821982,"number":9221,"head":{"ref":"main","sha":"ab846b35a15701c3192bda457fb6704f0c20f069","repo":{"id":1196589221,"url":"https://api.github.com/repos/sagdhana/karpenter-provider-aws","name":"karpenter-provider-aws"}},"base":{"ref":"main","sha":"7ab17791a2b596b7ddea7071ad5a1b0bd44bb0cf","repo":{"id":278480393,"url":"https://api.github.com/repos/aws/karpenter-provider-aws","name":"karpenter-provider-aws"}}},"action":"created"},"public":true,"created_at":"2026-09-10T20:21:27Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14814222351","type":"PullRequestReviewEvent","actor":{"id":24946140,"login":"jmdeal","display_login":"jmdeal","gravatar_id":"","url":"https://api.github.com/users/jmdeal","avatar_url":"https://avatars.githubusercontent.com/u/24946140?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"review":{"id":5094592978,"node_id":"PRR_kwDOEJlGCc8AAAABL6lR0g","user":{"login":"jmdeal","id":24946140,"node_id":"MDQ6VXNlcjI0OTQ2MTQw","avatar_url":"https://avatars.githubusercontent.com/u/24946140?v=4","gravatar_id":"","url":"https://api.github.com/users/jmdeal","html_url":"https://github.com/jmdeal","followers_url":"https://api.github.com/users/jmdeal/followers","following_url":"https://api.github.com/users/jmdeal/following{/other_user}","gists_url":"https://api.github.com/users/jmdeal/gists{/gist_id}","starred_url":"https://api.github.com/users/jmdeal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmdeal/subscriptions","organizations_url":"https://api.github.com/users/jmdeal/orgs","repos_url":"https://api.github.com/users/jmdeal/repos","events_url":"https://api.github.com/users/jmdeal/events{/privacy}","received_events_url":"https://api.github.com/users/jmdeal/received_events","type":"User","user_view_type":"public","site_admin":false},"body":null,"commit_id":"2980d8ea784636f383bda93e2eda96a2c4147f4e","state":"commented","html_url":"https://github.com/aws/karpenter-provider-aws/pull/9561#pullrequestreview-5094592978","pull_request_url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9561","_links":{"html":{"href":"https://github.com/aws/karpenter-provider-aws/pull/9561#pullrequestreview-5094592978"},"pull_request":{"href":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9561"}},"submitted_at":"2026-09-10T20:18:20Z","updated_at":"2026-09-10T20:18:20Z"},"pull_request":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9561","id":4405174958,"number":9561,"head":{"ref":"garvinp-target-odcr","sha":"2980d8ea784636f383bda93e2eda96a2c4147f4e","repo":{"id":996904603,"url":"https://api.github.com/repos/GnatorX/karpenter-provider-aws","name":"karpenter-provider-aws"}},"base":{"ref":"main","sha":"79386af9ff2bad52d08e2b6a39d78839a6035dc0","repo":{"id":278480393,"url":"https://api.github.com/repos/aws/karpenter-provider-aws","name":"karpenter-provider-aws"}}},"action":"created"},"public":true,"created_at":"2026-09-10T20:18:22Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14807900946","type":"IssueCommentEvent","actor":{"id":8865126,"login":"sergiy-slobodyan","display_login":"sergiy-slobodyan","gravatar_id":"","url":"https://api.github.com/users/sergiy-slobodyan","avatar_url":"https://avatars.githubusercontent.com/u/8865126?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/events","html_url":"https://github.com/aws/karpenter-provider-aws/issues/3798","id":1680427454,"node_id":"I_kwDOEJlGCc5kKUm-","number":3798,"title":"Warm Up Nodes Options (Hibernation)","user":{"login":"abebars","id":1381372,"node_id":"MDQ6VXNlcjEzODEzNzI=","avatar_url":"https://avatars.githubusercontent.com/u/1381372?v=4","gravatar_id":"","url":"https://api.github.com/users/abebars","html_url":"https://github.com/abebars","followers_url":"https://api.github.com/users/abebars/followers","following_url":"https://api.github.com/users/abebars/following{/other_user}","gists_url":"https://api.github.com/users/abebars/gists{/gist_id}","starred_url":"https://api.github.com/users/abebars/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abebars/subscriptions","organizations_url":"https://api.github.com/users/abebars/orgs","repos_url":"https://api.github.com/users/abebars/repos","events_url":"https://api.github.com/users/abebars/events{/privacy}","received_events_url":"https://api.github.com/users/abebars/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":2193236766,"node_id":"MDU6TGFiZWwyMTkzMjM2NzY2","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/feature","name":"feature","color":"62FC92","default":false,"description":"New feature or request"},{"id":2889925901,"node_id":"MDU6TGFiZWwyODg5OTI1OTAx","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/needs-design","name":"needs-design","color":"3EA4D7","default":false,"description":"Design required"},{"id":7150869733,"node_id":"LA_kwDOEJlGCc8AAAABqjmc5Q","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/triage/needs-information","name":"triage/needs-information","color":"b60205","default":false,"description":"Marks that the issue still needs more information to properly triage"},{"id":7473893276,"node_id":"LA_kwDOEJlGCc8AAAABvXqPnA","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/triage/needs-owner","name":"triage/needs-owner","color":"006b75","default":false,"description":"Indicates that the issue needs an owner to address it"}],"state":"closed","locked":false,"assignees":[],"milestone":null,"comments":60,"created_at":"2023-04-24T04:22:04Z","updated_at":"2026-09-10T21:38:52Z","closed_at":"2026-09-04T17:30:40Z","assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"### Tell us about your request\n\nAllow Kaprneter to provision more nodes in a hibernated state which would decrease the new nodes provisioning time for rapid scaling. \n\n### Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?\n\nKaprneter is excellent for optimizing the cluster capacity; however, on the other side, applications that require rapid scaling will need to wait until the new nodes are provisioned.\r\nThere is a proposal [here](https://github.com/aws/karpenter/issues/3240) to add headroom logic, But that means we are still going to have running nodes with no workloads which they are being charged for.\r\n\r\nAnother option is to support Hibernation (Stopped Instances), which will be bootstrapped and ready to join the clusters once needed. This feature is already supported out of the box as [Warm Pool for Auto Scaling Group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html) \n\n### Are you currently working around this issue?\n\nUsing Low Priority Pods could be less practical from a cost-saving perspective. Similar to https://github.com/aws/karpenter/issues/3240\n\n### Additional Context\n\n_No response_\n\n### Attachments\n\n_No response_\n\n### Community Note\n\n* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request\r\n* Please do not leave \"+1\" or \"me too\" comments, they generate extra noise for issue followers and do not help prioritize the request\r\n* If you are interested in working on this issue or have submitted a pull request, please leave a comment\r\n","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/reactions","total_count":208,"+1":207,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":1,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/timeline","performed_via_github_app":null,"state_reason":"completed","pinned_comment":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5623493210","html_url":"https://github.com/aws/karpenter-provider-aws/issues/3798#issuecomment-5623493210","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798","id":5623493210,"node_id":"IC_kwDOEJlGCc8AAAABTy-yWg","user":{"login":"sergiy-slobodyan","id":8865126,"node_id":"MDQ6VXNlcjg4NjUxMjY=","avatar_url":"https://avatars.githubusercontent.com/u/8865126?v=4","gravatar_id":"","url":"https://api.github.com/users/sergiy-slobodyan","html_url":"https://github.com/sergiy-slobodyan","followers_url":"https://api.github.com/users/sergiy-slobodyan/followers","following_url":"https://api.github.com/users/sergiy-slobodyan/following{/other_user}","gists_url":"https://api.github.com/users/sergiy-slobodyan/gists{/gist_id}","starred_url":"https://api.github.com/users/sergiy-slobodyan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sergiy-slobodyan/subscriptions","organizations_url":"https://api.github.com/users/sergiy-slobodyan/orgs","repos_url":"https://api.github.com/users/sergiy-slobodyan/repos","events_url":"https://api.github.com/users/sergiy-slobodyan/events{/privacy}","received_events_url":"https://api.github.com/users/sergiy-slobodyan/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T18:28:07Z","updated_at":"2026-09-10T18:28:07Z","body":"@benbaker76 , @evheniyt-pillar, the issue was closed because we implemented Capacity Buffers: https://github.com/kubernetes-sigs/karpenter/pull/3028. Do you see any use cases that it doesn't solve?","pin":null,"reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5623493210/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null,"minimized":null}},"public":true,"created_at":"2026-09-10T18:28:07Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14807216945","type":"ForkEvent","actor":{"id":9707358,"login":"ambud","display_login":"ambud","gravatar_id":"","url":"https://api.github.com/users/ambud","avatar_url":"https://avatars.githubusercontent.com/u/9707358?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"forked","forkee":{"id":1364712859,"node_id":"R_kgDOUVfdmw","name":"karpenter-provider-aws","full_name":"pinterest/karpenter-provider-aws","private":false,"owner":{"login":"pinterest","id":541152,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MTE1Mg==","avatar_url":"https://avatars.githubusercontent.com/u/541152?v=4","gravatar_id":"","url":"https://api.github.com/users/pinterest","html_url":"https://github.com/pinterest","followers_url":"https://api.github.com/users/pinterest/followers","following_url":"https://api.github.com/users/pinterest/following{/other_user}","gists_url":"https://api.github.com/users/pinterest/gists{/gist_id}","starred_url":"https://api.github.com/users/pinterest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pinterest/subscriptions","organizations_url":"https://api.github.com/users/pinterest/orgs","repos_url":"https://api.github.com/users/pinterest/repos","events_url":"https://api.github.com/users/pinterest/events{/privacy}","received_events_url":"https://api.github.com/users/pinterest/received_events","type":"Organization","user_view_type":"public","site_admin":false},"html_url":"https://github.com/pinterest/karpenter-provider-aws","description":"Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity.","fork":true,"url":"https://api.github.com/repos/pinterest/karpenter-provider-aws","forks_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/forks","keys_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/teams","hooks_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/hooks","issue_events_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/issues/events{/number}","events_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/events","assignees_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/assignees{/user}","branches_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/branches{/branch}","tags_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/tags","blobs_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/git/refs{/sha}","trees_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/statuses/{sha}","languages_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/languages","stargazers_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/stargazers","contributors_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/contributors","subscribers_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/subscribers","subscription_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/subscription","commits_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/commits{/sha}","git_commits_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/git/commits{/sha}","comments_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/comments{/number}","issue_comment_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/issues/comments{/number}","contents_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/contents/{+path}","compare_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/merges","archive_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/downloads","issues_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/issues{/number}","pulls_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/pulls{/number}","milestones_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/milestones{/number}","notifications_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/labels{/name}","releases_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/releases{/id}","deployments_url":"https://api.github.com/repos/pinterest/karpenter-provider-aws/deployments","created_at":"2026-09-10T18:16:30Z","updated_at":"2026-09-10T18:16:30Z","pushed_at":"2026-09-09T18:08:40Z","git_url":"git://github.com/pinterest/karpenter-provider-aws.git","ssh_url":"git@github.com:pinterest/karpenter-provider-aws.git","clone_url":"https://github.com/pinterest/karpenter-provider-aws.git","svn_url":"https://github.com/pinterest/karpenter-provider-aws","homepage":"https://karpenter.sh","size":42982,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"public":true,"created_at":"2026-09-10T18:16:30Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14795331127","type":"IssueCommentEvent","actor":{"id":69827283,"login":"maxcao13","display_login":"maxcao13","gravatar_id":"","url":"https://api.github.com/users/maxcao13","avatar_url":"https://avatars.githubusercontent.com/u/69827283?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357/events","html_url":"https://github.com/aws/karpenter-provider-aws/pull/8357","id":3316164822,"node_id":"PR_kwDOEJlGCc6jXae2","number":8357,"title":"RFC: template variables for ec2nodeclass userData","user":{"login":"maxcao13","id":69827283,"node_id":"MDQ6VXNlcjY5ODI3Mjgz","avatar_url":"https://avatars.githubusercontent.com/u/69827283?v=4","gravatar_id":"","url":"https://api.github.com/users/maxcao13","html_url":"https://github.com/maxcao13","followers_url":"https://api.github.com/users/maxcao13/followers","following_url":"https://api.github.com/users/maxcao13/following{/other_user}","gists_url":"https://api.github.com/users/maxcao13/gists{/gist_id}","starred_url":"https://api.github.com/users/maxcao13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxcao13/subscriptions","organizations_url":"https://api.github.com/users/maxcao13/orgs","repos_url":"https://api.github.com/users/maxcao13/repos","events_url":"https://api.github.com/users/maxcao13/events{/privacy}","received_events_url":"https://api.github.com/users/maxcao13/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignees":[],"milestone":null,"comments":4,"created_at":"2025-08-12T22:39:53Z","updated_at":"2026-09-10T15:06:34Z","closed_at":"2026-02-03T00:14:22Z","assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/8357","html_url":"https://github.com/aws/karpenter-provider-aws/pull/8357","diff_url":"https://github.com/aws/karpenter-provider-aws/pull/8357.diff","patch_url":"https://github.com/aws/karpenter-provider-aws/pull/8357.patch","merged_at":null},"body":"Related to https://github.com/aws/karpenter-provider-aws/issues/8336\r\nRelated to https://github.com/aws/karpenter-provider-aws/issues/5134\r\n\r\n**Description**\r\nThis is a RFC related to the two issues above which introduces template variables for the userData field in the `EC2NodeClass`.\r\n\r\n**Does this change impact docs?**\r\n- [ ] Yes, PR includes docs updates <!-- docs must be added to /preview to be included in future version releases -->\r\n- [ ] Yes, issue opened: # <!-- issue number -->\r\n- [x] No\r\n\r\nBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5620859911","html_url":"https://github.com/aws/karpenter-provider-aws/pull/8357#issuecomment-5620859911","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357","id":5620859911,"node_id":"IC_kwDOEJlGCc8AAAABTweEBw","user":{"login":"maxcao13","id":69827283,"node_id":"MDQ6VXNlcjY5ODI3Mjgz","avatar_url":"https://avatars.githubusercontent.com/u/69827283?v=4","gravatar_id":"","url":"https://api.github.com/users/maxcao13","html_url":"https://github.com/maxcao13","followers_url":"https://api.github.com/users/maxcao13/followers","following_url":"https://api.github.com/users/maxcao13/following{/other_user}","gists_url":"https://api.github.com/users/maxcao13/gists{/gist_id}","starred_url":"https://api.github.com/users/maxcao13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxcao13/subscriptions","organizations_url":"https://api.github.com/users/maxcao13/orgs","repos_url":"https://api.github.com/users/maxcao13/repos","events_url":"https://api.github.com/users/maxcao13/events{/privacy}","received_events_url":"https://api.github.com/users/maxcao13/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T15:06:28Z","updated_at":"2026-09-10T15:06:34Z","body":"> @maxcao13 Hi, this is a useful feature, why was the proposal abandoned?\r\n\r\nSimply the proposal was no longer needed on our end and was stale for a long time. If you or someone else wants to re-take up the issue, I don't think there's any push back on that.","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5620859911/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null,"minimized":null}},"public":true,"created_at":"2026-09-10T15:06:28Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14777715427","type":"PullRequestEvent","actor":{"id":21138205,"login":"zoispag","display_login":"zoispag","gravatar_id":"","url":"https://api.github.com/users/zoispag","avatar_url":"https://avatars.githubusercontent.com/u/21138205?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"opened","number":9585,"pull_request":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/9585","id":4494691162,"number":9585,"head":{"ref":"feat/pdb-unhealthy-pod-eviction-policy","sha":"5b52686da6210bb20e400b4eebbecc76425689be","repo":{"id":1363918000,"url":"https://api.github.com/repos/zoispag/karpenter-provider-aws","name":"karpenter-provider-aws"}},"base":{"ref":"main","sha":"7ab17791a2b596b7ddea7071ad5a1b0bd44bb0cf","repo":{"id":278480393,"url":"https://api.github.com/repos/aws/karpenter-provider-aws","name":"karpenter-provider-aws"}}}},"public":true,"created_at":"2026-09-10T10:30:03Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14777541685","type":"ForkEvent","actor":{"id":21138205,"login":"zoispag","display_login":"zoispag","gravatar_id":"","url":"https://api.github.com/users/zoispag","avatar_url":"https://avatars.githubusercontent.com/u/21138205?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"forked","forkee":{"id":1363918000,"node_id":"R_kgDOUUu8sA","name":"karpenter-provider-aws","full_name":"zoispag/karpenter-provider-aws","private":false,"owner":{"login":"zoispag","id":21138205,"node_id":"MDQ6VXNlcjIxMTM4MjA1","avatar_url":"https://avatars.githubusercontent.com/u/21138205?v=4","gravatar_id":"","url":"https://api.github.com/users/zoispag","html_url":"https://github.com/zoispag","followers_url":"https://api.github.com/users/zoispag/followers","following_url":"https://api.github.com/users/zoispag/following{/other_user}","gists_url":"https://api.github.com/users/zoispag/gists{/gist_id}","starred_url":"https://api.github.com/users/zoispag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zoispag/subscriptions","organizations_url":"https://api.github.com/users/zoispag/orgs","repos_url":"https://api.github.com/users/zoispag/repos","events_url":"https://api.github.com/users/zoispag/events{/privacy}","received_events_url":"https://api.github.com/users/zoispag/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/zoispag/karpenter-provider-aws","description":"Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity.","fork":true,"url":"https://api.github.com/repos/zoispag/karpenter-provider-aws","forks_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/forks","keys_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/teams","hooks_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/hooks","issue_events_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/issues/events{/number}","events_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/events","assignees_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/assignees{/user}","branches_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/branches{/branch}","tags_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/tags","blobs_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/git/refs{/sha}","trees_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/statuses/{sha}","languages_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/languages","stargazers_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/stargazers","contributors_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/contributors","subscribers_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/subscribers","subscription_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/subscription","commits_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/commits{/sha}","git_commits_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/git/commits{/sha}","comments_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/comments{/number}","issue_comment_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/issues/comments{/number}","contents_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/contents/{+path}","compare_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/merges","archive_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/downloads","issues_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/issues{/number}","pulls_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/pulls{/number}","milestones_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/milestones{/number}","notifications_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/labels{/name}","releases_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/releases{/id}","deployments_url":"https://api.github.com/repos/zoispag/karpenter-provider-aws/deployments","created_at":"2026-09-10T10:26:53Z","updated_at":"2026-09-10T10:26:53Z","pushed_at":"2026-09-10T10:30:00Z","git_url":"git://github.com/zoispag/karpenter-provider-aws.git","ssh_url":"git@github.com:zoispag/karpenter-provider-aws.git","clone_url":"https://github.com/zoispag/karpenter-provider-aws.git","svn_url":"https://github.com/zoispag/karpenter-provider-aws","homepage":"https://karpenter.sh","size":42992,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"public":true,"created_at":"2026-09-10T10:26:53Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14774086682","type":"IssueCommentEvent","actor":{"id":697976,"login":"AlexanderYastrebov","display_login":"AlexanderYastrebov","gravatar_id":"","url":"https://api.github.com/users/AlexanderYastrebov","avatar_url":"https://avatars.githubusercontent.com/u/697976?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583/events","html_url":"https://github.com/aws/karpenter-provider-aws/issues/9583","id":5405088069,"node_id":"I_kwDOEJlGCc8AAAABQisZRQ","number":9583,"title":"Expression-based NodeClass config (#8742/#9461) is kubelet-only — nothing covers blockDeviceMappings / per-instance-type EBS","user":{"login":"elegault-cell","id":322190688,"node_id":"U_kgDOEzQ9YA","avatar_url":"https://avatars.githubusercontent.com/u/322190688?v=4","gravatar_id":"","url":"https://api.github.com/users/elegault-cell","html_url":"https://github.com/elegault-cell","followers_url":"https://api.github.com/users/elegault-cell/followers","following_url":"https://api.github.com/users/elegault-cell/following{/other_user}","gists_url":"https://api.github.com/users/elegault-cell/gists{/gist_id}","starred_url":"https://api.github.com/users/elegault-cell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elegault-cell/subscriptions","organizations_url":"https://api.github.com/users/elegault-cell/orgs","repos_url":"https://api.github.com/users/elegault-cell/repos","events_url":"https://api.github.com/users/elegault-cell/events{/privacy}","received_events_url":"https://api.github.com/users/elegault-cell/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"open","locked":false,"assignees":[],"milestone":null,"comments":2,"created_at":"2026-09-09T21:48:14Z","updated_at":"2026-09-10T09:28:59Z","closed_at":null,"assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"### Description\n\nThe Expression-Based NodeClass Configuration feature — tracked in #8742, implemented in #9461, documented in #9508 — is scoped strictly to `spec.kubelet.*`. There is currently **no mechanism to configure `blockDeviceMappings` (EBS) per instance type**, whether via CEL expressions or otherwise.\n\nThis gap matters because #8507 (\"Override Block Device Mapping per Instance Type\") was closed as *completed* in favor of #8742 with the comment *\"Sounds like something CEL expressions can solve.\"* However, the delivered CEL work does not, in fact, extend to `blockDeviceMappings` — so the use case #8507 described remains unaddressed.\n\n### What the CEL/expression feature covers today\n\n- CEL expressions are accepted **only** on three kubelet fields: `maxPods` (via `maxPodsExpression`), `kubeReserved`, and `systemReserved`.\n- Expressions are evaluated from instance-shape variables (`instance_type`, `vcpus`, `memory_mib`, `default_enis`, `ips_per_eni`, etc.).\n- The feature is Alpha, behind the `NodeClassCEL` feature gate.\n- #8742's scope, and the #9461/#9508 implementation, never reference `blockDeviceMappings`, EBS, `volumeSize`, `volumeType`, `iops`, or `throughput`.\n\n### The gap\n\n- There is no `volumeSizeExpression` (or any expression-capable field) anywhere under `blockDeviceMappings`.\n- `blockDeviceMappings` remains a **static, per-EC2NodeClass** value, applied uniformly to every instance type a NodePool launches.\n- Consequently there is no way to size EBS proportionally to the instance (e.g. give larger instances larger or higher-performance volumes) within a single NodePool. Users must either over-provision small instances or under-provision large ones — or fracture into multiple EC2NodeClasses, one per instance-type band, which is exactly the fragmentation the expression feature was meant to avoid.\n\n### Ask\n\n1. Please **confirm** the assessment above — that expression-based config is kubelet-only today and does not support per-instance-type `blockDeviceMappings` / EBS.\n2. Is there any **planned work** (PR, design doc, or roadmap item) to extend CEL expressions — or any other mechanism — to `blockDeviceMappings`, enabling dynamic per-instance-type EBS `volumeSize` / `volumeType` / `iops` / `throughput`? If so, please link it so this can be tracked.\n\n### Use case\n\nA single NodePool spanning a range of instance sizes (e.g. `large` → `4xlarge`) where the ideal EBS volume size scales with the instance. Today this requires one EC2NodeClass per size band; expression-based `blockDeviceMappings` would collapse that back to a single NodeClass, mirroring what `maxPodsExpression` already does for kubelet.\n\n### References\n\n- Tracking issue: #8742\n- Implementation PR: #9461\n- Docs PR: #9508\n- Closed-in-favor-of: #8507\n","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583/timeline","performed_via_github_app":null,"state_reason":null,"pinned_comment":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5616342389","html_url":"https://github.com/aws/karpenter-provider-aws/issues/9583#issuecomment-5616342389","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583","id":5616342389,"node_id":"IC_kwDOEJlGCc8AAAABTsKVdQ","user":{"login":"AlexanderYastrebov","id":697976,"node_id":"MDQ6VXNlcjY5Nzk3Ng==","avatar_url":"https://avatars.githubusercontent.com/u/697976?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexanderYastrebov","html_url":"https://github.com/AlexanderYastrebov","followers_url":"https://api.github.com/users/AlexanderYastrebov/followers","following_url":"https://api.github.com/users/AlexanderYastrebov/following{/other_user}","gists_url":"https://api.github.com/users/AlexanderYastrebov/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexanderYastrebov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexanderYastrebov/subscriptions","organizations_url":"https://api.github.com/users/AlexanderYastrebov/orgs","repos_url":"https://api.github.com/users/AlexanderYastrebov/repos","events_url":"https://api.github.com/users/AlexanderYastrebov/events{/privacy}","received_events_url":"https://api.github.com/users/AlexanderYastrebov/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T09:28:59Z","updated_at":"2026-09-10T09:28:59Z","body":"Related https://github.com/kubernetes-sigs/karpenter/issues/1988","pin":null,"reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5616342389/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null,"minimized":null}},"public":true,"created_at":"2026-09-10T09:28:59Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14773771842","type":"IssueCommentEvent","actor":{"id":697976,"login":"AlexanderYastrebov","display_login":"AlexanderYastrebov","gravatar_id":"","url":"https://api.github.com/users/AlexanderYastrebov","avatar_url":"https://avatars.githubusercontent.com/u/697976?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/7937","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/7937/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/7937/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/7937/events","html_url":"https://github.com/aws/karpenter-provider-aws/issues/7937","id":2937260389,"node_id":"I_kwDOEJlGCc6vEwll","number":7937,"title":"Incorrect ephemeral storage capacity in NodeClaim","user":{"login":"chaosun-abnormalsecurity","id":28914221,"node_id":"MDQ6VXNlcjI4OTE0MjIx","avatar_url":"https://avatars.githubusercontent.com/u/28914221?v=4","gravatar_id":"","url":"https://api.github.com/users/chaosun-abnormalsecurity","html_url":"https://github.com/chaosun-abnormalsecurity","followers_url":"https://api.github.com/users/chaosun-abnormalsecurity/followers","following_url":"https://api.github.com/users/chaosun-abnormalsecurity/following{/other_user}","gists_url":"https://api.github.com/users/chaosun-abnormalsecurity/gists{/gist_id}","starred_url":"https://api.github.com/users/chaosun-abnormalsecurity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chaosun-abnormalsecurity/subscriptions","organizations_url":"https://api.github.com/users/chaosun-abnormalsecurity/orgs","repos_url":"https://api.github.com/users/chaosun-abnormalsecurity/repos","events_url":"https://api.github.com/users/chaosun-abnormalsecurity/events{/privacy}","received_events_url":"https://api.github.com/users/chaosun-abnormalsecurity/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":2193236763,"node_id":"MDU6TGFiZWwyMTkzMjM2NzYz","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/bug","name":"bug","color":"d73a4a","default":true,"description":"Something isn't working"},{"id":5745930291,"node_id":"LA_kwDOEJlGCc8AAAABVnvwMw","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/triage/needs-investigation","name":"triage/needs-investigation","color":"E57386","default":false,"description":"Issues that need to be investigated before triaging"}],"state":"open","locked":false,"assignees":[],"milestone":null,"comments":4,"created_at":"2025-03-21T04:51:18Z","updated_at":"2026-09-10T09:23:49Z","closed_at":null,"assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"### Description\n\n**Observed Behavior**:\nWe use a custom AMI in one of our environments, which has the following block devices:\n```\n/dev/sda1=snap-072c0faac36719073:20:true:gp2:encrypted\n/dev/sdb=snap-085429bd12a18879a:50:true:gp3:encrypted\n/dev/sdc=ephemeral1\n```\nAnd we configure our EC2NodeClass to override the first one to be:\n```yaml\n  blockDeviceMappings:\n  - deviceName: /dev/sda1\n    ebs:\n      deleteOnTermination: true\n      encrypted: true\n      volumeSize: 400Gi\n      volumeType: gp3\n```\nWhen the nodes are provisioned, we see correct ephemeral storage capacity which is inline with the configs if we run `kubectl describe node`:\n```\nCapacity:\n  cpu:                32\n  ephemeral-storage:  406250916Ki\n  hugepages-1Gi:      0\n  hugepages-2Mi:      0\n  hugepages-32Mi:     0\n  hugepages-64Ki:     0\n  memory:             64655124Ki\n  pods:               30\nAllocatable:\n  cpu:                31850m\n  ephemeral-storage:  405202340Ki\n  hugepages-1Gi:      0\n  hugepages-2Mi:      0\n  hugepages-32Mi:     0\n  hugepages-64Ki:     0\n  memory:             62578357018\n  pods:               30\n```\nHowever, when checking the same for the NodeClaim (`kubectl describe nodeclaim`), it shows different values:\n```\nStatus:\n  Allocatable:\n    Cpu:                        31850m\n    Ephemeral - Storage:        17Gi\n    Memory:                     62605389168\n    Pods:                       30\n    vpc.amazonaws.com/pod-eni:  54\n  Capacity:\n    Cpu:                        32\n    Ephemeral - Storage:        20Gi\n    Memory:                     64655116Ki\n    Pods:                       30\n    vpc.amazonaws.com/pod-eni:  54\n```\nBecause of this, our pods that declare ephemeral-storage requests/limits in container resources cannot get scheduled\n```\n{\"error\":\"incompatible with nodepool \\\"test\\\", daemonset overhead={\\\"cpu\\\":\\\"800m\\\",\\\"memory\\\":\\\"1524435456\\\",\\\"pods\\\":\\\"7\\\"}, no instance type satisfied resources {\\\"cpu\\\":\\\"3300m\\\",\\\"ephemeral-storage\\\":\\\"50Gi\\\",\\\"memory\\\":\\\"6893144576\\\",\\\"pods\\\":\\\"8\\\"} and requirements dedicated In [test], eks.amazonaws.com/capacityType In [ON_DEMAND], karpenter.k8s.aws/ec2nodeclass In [test], karpenter.k8s.aws/instance-cpu In [32], karpenter.k8s.aws/instance-family In [c6g c7g], karpenter.sh/capacity-type In [on-demand], karpenter.sh/nodepool In [test], kubernetes.io/arch In [arm64], topology.kubernetes.io/zone In [us-gov-west-1a us-gov-west-1b us-gov-west-1c] (no instance type has enough resources)\"}]}\n```\nIn comparison, we use EKS official AMI in another cluster with a different block device config:\n```\n/dev/xvda=snap-0522165275ca54b4b:20:true:gp2\n```\nAnd it has no such issue. We are able to see consistent ephemeral storage capacity between node and NodeClaim.\n\nThe only difference I can tell between the two AMI’s is the block device of EKS official AMI is not encrypted. Not sure if this is relevant though, or how we should modify our configuration to fix the inconsistency if it is.\n\n**Expected Behavior**:\nConsistent ephemeral storage capacity between node and NodeClaim for custom AMI.\n\n**Reproduction Steps** (Please include YAML):\nSee the details above.\n\n**Versions**:\n- Chart Version: `1.2.1`\n- Kubernetes Version (`kubectl version`): `1.30`\n\n* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request\n* Please do not leave \"+1\" or \"me too\" comments, they generate extra noise for issue followers and do not help prioritize the request\n* If you are interested in working on this issue or have submitted a pull request, please leave a comment\n","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/7937/reactions","total_count":12,"+1":12,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/7937/timeline","performed_via_github_app":null,"state_reason":null,"pinned_comment":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5616271297","html_url":"https://github.com/aws/karpenter-provider-aws/issues/7937#issuecomment-5616271297","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/7937","id":5616271297,"node_id":"IC_kwDOEJlGCc8AAAABTsF_wQ","user":{"login":"AlexanderYastrebov","id":697976,"node_id":"MDQ6VXNlcjY5Nzk3Ng==","avatar_url":"https://avatars.githubusercontent.com/u/697976?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexanderYastrebov","html_url":"https://github.com/AlexanderYastrebov","followers_url":"https://api.github.com/users/AlexanderYastrebov/followers","following_url":"https://api.github.com/users/AlexanderYastrebov/following{/other_user}","gists_url":"https://api.github.com/users/AlexanderYastrebov/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexanderYastrebov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexanderYastrebov/subscriptions","organizations_url":"https://api.github.com/users/AlexanderYastrebov/orgs","repos_url":"https://api.github.com/users/AlexanderYastrebov/repos","events_url":"https://api.github.com/users/AlexanderYastrebov/events{/privacy}","received_events_url":"https://api.github.com/users/AlexanderYastrebov/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T09:23:49Z","updated_at":"2026-09-10T09:23:49Z","body":"Their EC2NodeClass overrides `/dev/sda1` without setting `rootVolume: true`, so Karpenter's capacity calculator \nhttps://github.com/aws/karpenter-provider-aws/blob/7ab17791a2b596b7ddea7071ad5a1b0bd44bb0cf/pkg/providers/instancetype/types.go#L529-L565\n— which only recognizes a volume as root via that flag or, failing that, AL2's hardcoded `/dev/xvda` device name \nhttps://github.com/aws/karpenter-provider-aws/blob/7ab17791a2b596b7ddea7071ad5a1b0bd44bb0cf/pkg/providers/amifamily/al2.go#L115-L117\n— never matches their entry and falls back to AL2's tiny built-in default size instead of their 400Gi override; \n\nhttps://github.com/aws/karpenter-provider-aws/blob/7ab17791a2b596b7ddea7071ad5a1b0bd44bb0cf/pkg/providers/amifamily/resolver.go#L46-L50\nThe fix is adding `rootVolume: true` to their BDM entry.","pin":null,"reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5616271297/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null,"minimized":null}},"public":true,"created_at":"2026-09-10T09:23:49Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14773701271","type":"ForkEvent","actor":{"id":259200026,"login":"giulioAZ","display_login":"giulioAZ","gravatar_id":"","url":"https://api.github.com/users/giulioAZ","avatar_url":"https://avatars.githubusercontent.com/u/259200026?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"forked","forkee":{"id":1363820194,"node_id":"R_kgDOUUo-og","name":"karpenter-provider-aws","full_name":"giulioAZ/karpenter-provider-aws","private":false,"owner":{"login":"giulioAZ","id":259200026,"node_id":"U_kgDOD3MUGg","avatar_url":"https://avatars.githubusercontent.com/u/259200026?v=4","gravatar_id":"","url":"https://api.github.com/users/giulioAZ","html_url":"https://github.com/giulioAZ","followers_url":"https://api.github.com/users/giulioAZ/followers","following_url":"https://api.github.com/users/giulioAZ/following{/other_user}","gists_url":"https://api.github.com/users/giulioAZ/gists{/gist_id}","starred_url":"https://api.github.com/users/giulioAZ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/giulioAZ/subscriptions","organizations_url":"https://api.github.com/users/giulioAZ/orgs","repos_url":"https://api.github.com/users/giulioAZ/repos","events_url":"https://api.github.com/users/giulioAZ/events{/privacy}","received_events_url":"https://api.github.com/users/giulioAZ/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/giulioAZ/karpenter-provider-aws","description":"Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity.","fork":true,"url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws","forks_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/forks","keys_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/teams","hooks_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/hooks","issue_events_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/issues/events{/number}","events_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/events","assignees_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/assignees{/user}","branches_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/branches{/branch}","tags_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/tags","blobs_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/git/refs{/sha}","trees_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/statuses/{sha}","languages_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/languages","stargazers_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/stargazers","contributors_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/contributors","subscribers_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/subscribers","subscription_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/subscription","commits_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/commits{/sha}","git_commits_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/git/commits{/sha}","comments_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/comments{/number}","issue_comment_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/issues/comments{/number}","contents_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/contents/{+path}","compare_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/merges","archive_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/downloads","issues_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/issues{/number}","pulls_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/pulls{/number}","milestones_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/milestones{/number}","notifications_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/labels{/name}","releases_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/releases{/id}","deployments_url":"https://api.github.com/repos/giulioAZ/karpenter-provider-aws/deployments","created_at":"2026-09-10T09:22:39Z","updated_at":"2026-09-10T09:22:39Z","pushed_at":"2026-09-10T19:57:00Z","git_url":"git://github.com/giulioAZ/karpenter-provider-aws.git","ssh_url":"git@github.com:giulioAZ/karpenter-provider-aws.git","clone_url":"https://github.com/giulioAZ/karpenter-provider-aws.git","svn_url":"https://github.com/giulioAZ/karpenter-provider-aws","homepage":"https://karpenter.sh","size":43043,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"public":true,"created_at":"2026-09-10T09:22:39Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14772865796","type":"IssueCommentEvent","actor":{"id":697976,"login":"AlexanderYastrebov","display_login":"AlexanderYastrebov","gravatar_id":"","url":"https://api.github.com/users/AlexanderYastrebov","avatar_url":"https://avatars.githubusercontent.com/u/697976?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8946","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8946/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8946/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8946/events","html_url":"https://github.com/aws/karpenter-provider-aws/issues/8946","id":3915400336,"node_id":"I_kwDOEJlGCc7pYESQ","number":8946,"title":"Feature: Sum all non-root EBS volumes for ephemeral-storage capacity calculation","user":{"login":"harshad3339","id":139204064,"node_id":"U_kgDOCEwV4A","avatar_url":"https://avatars.githubusercontent.com/u/139204064?v=4","gravatar_id":"","url":"https://api.github.com/users/harshad3339","html_url":"https://github.com/harshad3339","followers_url":"https://api.github.com/users/harshad3339/followers","following_url":"https://api.github.com/users/harshad3339/following{/other_user}","gists_url":"https://api.github.com/users/harshad3339/gists{/gist_id}","starred_url":"https://api.github.com/users/harshad3339/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/harshad3339/subscriptions","organizations_url":"https://api.github.com/users/harshad3339/orgs","repos_url":"https://api.github.com/users/harshad3339/repos","events_url":"https://api.github.com/users/harshad3339/events{/privacy}","received_events_url":"https://api.github.com/users/harshad3339/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":2193236766,"node_id":"MDU6TGFiZWwyMTkzMjM2NzY2","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/feature","name":"feature","color":"62FC92","default":false,"description":"New feature or request"},{"id":5745930291,"node_id":"LA_kwDOEJlGCc8AAAABVnvwMw","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/triage/needs-investigation","name":"triage/needs-investigation","color":"E57386","default":false,"description":"Issues that need to be investigated before triaging"}],"state":"open","locked":false,"assignees":[],"milestone":null,"comments":2,"created_at":"2026-02-09T09:33:12Z","updated_at":"2026-09-10T09:09:04Z","closed_at":null,"assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"### Description\n\n**What problem are you trying to solve?**\nWe're running Bottlerocket nodes with multiple EBS volumes that are aggregated via RAID0 (using a bootstrap container). Karpenter's ephemeralStorage() function returns only a single block device size on nodeclaims, not reflecting the actual storage available to pods after our userdata aggregates the volumes.\n\n**Code reference:**\nhttps://github.com/aws/karpenter-provider-aws/blob/10c4ef30c58b54476f67deff8f62fe81b31c415b/pkg/providers/instancetype/types.go#L358-L392\n\n**What the Bootstrap Container Does:**\n\nDetects all non-root EBS volumes: /dev/xvdb (18Gi), /dev/xvde (20Gi), /dev/xvdf (20Gi), /dev/xvdg (20Gi)\nCreates RAID0 array from all 4 volumes\nMounts combined storage (78Gi total) to /data\nBind mounts /var/lib/kubelet and /var/lib/containerd to RAID array\n\n**The Gap:**\nKarpenter calculates for nodeclaim: 18Gi (only /dev/xvdb - the EphemeralBlockDevice)\nActual available storage on node: 78Gi (RAID0 of all 4 non-root volumes)\nBin-packing decisions are based on incorrect capacity, causing premature scaling.\n\nExample EC2NodeClass configuration (Bottlerocket):\n```\napiVersion: karpenter.k8s.aws/v1\nkind: EC2NodeClass\nspec:\n  amiFamily: Bottlerocket\n  blockDeviceMappings:\n    - deviceName: /dev/xvda          # Root volume: 2Gi (OS only)\n      ebs:\n        volumeSize: 2Gi\n        volumeType: gp3\n        encrypted: true\n    - deviceName: /dev/xvdb          # EphemeralBlockDevice: 18Gi\n      ebs:\n        volumeSize: 18Gi\n        volumeType: gp3\n        encrypted: true\n    - deviceName: /dev/xvde          # Additional: 20Gi\n      ebs:\n        volumeSize: 20Gi\n        volumeType: gp3\n        encrypted: true\n    - deviceName: /dev/xvdf          # Additional: 20Gi\n      ebs:\n        volumeSize: 20Gi\n        volumeType: gp3\n        encrypted: true\n    - deviceName: /dev/xvdg          # Additional: 20Gi\n      ebs:\n        volumeSize: 20Gi\n        volumeType: gp3\n        encrypted: true\n\n```\n**Question:**\n\nHow should we handle scenarios where userdata/bootstrap scripts aggregate multiple volumes? \n\nAnnotation-based override - e.g., karpenter.sh/ephemeral-storage-override: \"78Gi\"\nNew field in EC2NodeClass - e.g., spec.ephemeralStorageCapacity: 78Gi\nLabel-based volume selection - Mark which volumes contribute to ephemeral storage\nSum all non-root volumes \n\nWhat's the recommended approach for this use case?\n**How important is this feature to you?**\n\n* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request\n* Please do not leave \"+1\" or \"me too\" comments, they generate extra noise for issue followers and do not help prioritize the request\n* If you are interested in working on this issue or have submitted a pull request, please leave a comment\n","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8946/reactions","total_count":4,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8946/timeline","performed_via_github_app":null,"state_reason":null,"pinned_comment":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5616077629","html_url":"https://github.com/aws/karpenter-provider-aws/issues/8946#issuecomment-5616077629","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8946","id":5616077629,"node_id":"IC_kwDOEJlGCc8AAAABTr6LPQ","user":{"login":"AlexanderYastrebov","id":697976,"node_id":"MDQ6VXNlcjY5Nzk3Ng==","avatar_url":"https://avatars.githubusercontent.com/u/697976?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexanderYastrebov","html_url":"https://github.com/AlexanderYastrebov","followers_url":"https://api.github.com/users/AlexanderYastrebov/followers","following_url":"https://api.github.com/users/AlexanderYastrebov/following{/other_user}","gists_url":"https://api.github.com/users/AlexanderYastrebov/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexanderYastrebov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexanderYastrebov/subscriptions","organizations_url":"https://api.github.com/users/AlexanderYastrebov/orgs","repos_url":"https://api.github.com/users/AlexanderYastrebov/repos","events_url":"https://api.github.com/users/AlexanderYastrebov/events{/privacy}","received_events_url":"https://api.github.com/users/AlexanderYastrebov/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T09:08:46Z","updated_at":"2026-09-10T09:09:04Z","body":"Given that image can use or combine volumes in various ways, the `spec.ephemeralStorageCapacity` seems ok to decouple ephemeral-storage resource capacity from block device mapping. ","pin":null,"reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5616077629/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null,"minimized":null}},"public":true,"created_at":"2026-09-10T09:08:46Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14768637636","type":"IssueCommentEvent","actor":{"id":697976,"login":"AlexanderYastrebov","display_login":"AlexanderYastrebov","gravatar_id":"","url":"https://api.github.com/users/AlexanderYastrebov","avatar_url":"https://avatars.githubusercontent.com/u/697976?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583/events","html_url":"https://github.com/aws/karpenter-provider-aws/issues/9583","id":5405088069,"node_id":"I_kwDOEJlGCc8AAAABQisZRQ","number":9583,"title":"Expression-based NodeClass config (#8742/#9461) is kubelet-only — nothing covers blockDeviceMappings / per-instance-type EBS","user":{"login":"elegault-cell","id":322190688,"node_id":"U_kgDOEzQ9YA","avatar_url":"https://avatars.githubusercontent.com/u/322190688?v=4","gravatar_id":"","url":"https://api.github.com/users/elegault-cell","html_url":"https://github.com/elegault-cell","followers_url":"https://api.github.com/users/elegault-cell/followers","following_url":"https://api.github.com/users/elegault-cell/following{/other_user}","gists_url":"https://api.github.com/users/elegault-cell/gists{/gist_id}","starred_url":"https://api.github.com/users/elegault-cell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elegault-cell/subscriptions","organizations_url":"https://api.github.com/users/elegault-cell/orgs","repos_url":"https://api.github.com/users/elegault-cell/repos","events_url":"https://api.github.com/users/elegault-cell/events{/privacy}","received_events_url":"https://api.github.com/users/elegault-cell/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"open","locked":false,"assignees":[],"milestone":null,"comments":2,"created_at":"2026-09-09T21:48:14Z","updated_at":"2026-09-10T09:28:59Z","closed_at":null,"assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"### Description\n\nThe Expression-Based NodeClass Configuration feature — tracked in #8742, implemented in #9461, documented in #9508 — is scoped strictly to `spec.kubelet.*`. There is currently **no mechanism to configure `blockDeviceMappings` (EBS) per instance type**, whether via CEL expressions or otherwise.\n\nThis gap matters because #8507 (\"Override Block Device Mapping per Instance Type\") was closed as *completed* in favor of #8742 with the comment *\"Sounds like something CEL expressions can solve.\"* However, the delivered CEL work does not, in fact, extend to `blockDeviceMappings` — so the use case #8507 described remains unaddressed.\n\n### What the CEL/expression feature covers today\n\n- CEL expressions are accepted **only** on three kubelet fields: `maxPods` (via `maxPodsExpression`), `kubeReserved`, and `systemReserved`.\n- Expressions are evaluated from instance-shape variables (`instance_type`, `vcpus`, `memory_mib`, `default_enis`, `ips_per_eni`, etc.).\n- The feature is Alpha, behind the `NodeClassCEL` feature gate.\n- #8742's scope, and the #9461/#9508 implementation, never reference `blockDeviceMappings`, EBS, `volumeSize`, `volumeType`, `iops`, or `throughput`.\n\n### The gap\n\n- There is no `volumeSizeExpression` (or any expression-capable field) anywhere under `blockDeviceMappings`.\n- `blockDeviceMappings` remains a **static, per-EC2NodeClass** value, applied uniformly to every instance type a NodePool launches.\n- Consequently there is no way to size EBS proportionally to the instance (e.g. give larger instances larger or higher-performance volumes) within a single NodePool. Users must either over-provision small instances or under-provision large ones — or fracture into multiple EC2NodeClasses, one per instance-type band, which is exactly the fragmentation the expression feature was meant to avoid.\n\n### Ask\n\n1. Please **confirm** the assessment above — that expression-based config is kubelet-only today and does not support per-instance-type `blockDeviceMappings` / EBS.\n2. Is there any **planned work** (PR, design doc, or roadmap item) to extend CEL expressions — or any other mechanism — to `blockDeviceMappings`, enabling dynamic per-instance-type EBS `volumeSize` / `volumeType` / `iops` / `throughput`? If so, please link it so this can be tracked.\n\n### Use case\n\nA single NodePool spanning a range of instance sizes (e.g. `large` → `4xlarge`) where the ideal EBS volume size scales with the instance. Today this requires one EC2NodeClass per size band; expression-based `blockDeviceMappings` would collapse that back to a single NodeClass, mirroring what `maxPodsExpression` already does for kubelet.\n\n### References\n\n- Tracking issue: #8742\n- Implementation PR: #9461\n- Docs PR: #9508\n- Closed-in-favor-of: #8507\n","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583/timeline","performed_via_github_app":null,"state_reason":null,"pinned_comment":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5615155356","html_url":"https://github.com/aws/karpenter-provider-aws/issues/9583#issuecomment-5615155356","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/9583","id":5615155356,"node_id":"IC_kwDOEJlGCc8AAAABTrB4nA","user":{"login":"AlexanderYastrebov","id":697976,"node_id":"MDQ6VXNlcjY5Nzk3Ng==","avatar_url":"https://avatars.githubusercontent.com/u/697976?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexanderYastrebov","html_url":"https://github.com/AlexanderYastrebov","followers_url":"https://api.github.com/users/AlexanderYastrebov/followers","following_url":"https://api.github.com/users/AlexanderYastrebov/following{/other_user}","gists_url":"https://api.github.com/users/AlexanderYastrebov/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexanderYastrebov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexanderYastrebov/subscriptions","organizations_url":"https://api.github.com/users/AlexanderYastrebov/orgs","repos_url":"https://api.github.com/users/AlexanderYastrebov/repos","events_url":"https://api.github.com/users/AlexanderYastrebov/events{/privacy}","received_events_url":"https://api.github.com/users/AlexanderYastrebov/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T07:57:53Z","updated_at":"2026-09-10T07:57:53Z","body":"It would be also nice to:\n- support variable number of mappings by skipping an entry when volumeSize evaluates to zero\n- expose InstanceStorageInfo.TotalSizeInGB as a CEL variable","pin":null,"reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5615155356/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null,"minimized":null}},"public":true,"created_at":"2026-09-10T07:57:53Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"20662417806","type":"DeleteEvent","actor":{"id":217795880,"login":"ryan-mist","display_login":"ryan-mist","gravatar_id":"","url":"https://api.github.com/users/ryan-mist","avatar_url":"https://avatars.githubusercontent.com/u/217795880?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"ref":"dependabot/npm_and_yarn/website/picomatch-4.0.7","ref_type":"branch","full_ref":"refs/heads/dependabot/npm_and_yarn/website/picomatch-4.0.7","pusher_type":"user"},"public":true,"created_at":"2026-09-08T16:21:05Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14766292492","type":"IssueCommentEvent","actor":{"id":219117505,"login":"evheniyt-pillar","display_login":"evheniyt-pillar","gravatar_id":"","url":"https://api.github.com/users/evheniyt-pillar","avatar_url":"https://avatars.githubusercontent.com/u/219117505?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/events","html_url":"https://github.com/aws/karpenter-provider-aws/issues/3798","id":1680427454,"node_id":"I_kwDOEJlGCc5kKUm-","number":3798,"title":"Warm Up Nodes Options (Hibernation)","user":{"login":"abebars","id":1381372,"node_id":"MDQ6VXNlcjEzODEzNzI=","avatar_url":"https://avatars.githubusercontent.com/u/1381372?v=4","gravatar_id":"","url":"https://api.github.com/users/abebars","html_url":"https://github.com/abebars","followers_url":"https://api.github.com/users/abebars/followers","following_url":"https://api.github.com/users/abebars/following{/other_user}","gists_url":"https://api.github.com/users/abebars/gists{/gist_id}","starred_url":"https://api.github.com/users/abebars/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abebars/subscriptions","organizations_url":"https://api.github.com/users/abebars/orgs","repos_url":"https://api.github.com/users/abebars/repos","events_url":"https://api.github.com/users/abebars/events{/privacy}","received_events_url":"https://api.github.com/users/abebars/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":2193236766,"node_id":"MDU6TGFiZWwyMTkzMjM2NzY2","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/feature","name":"feature","color":"62FC92","default":false,"description":"New feature or request"},{"id":2889925901,"node_id":"MDU6TGFiZWwyODg5OTI1OTAx","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/needs-design","name":"needs-design","color":"3EA4D7","default":false,"description":"Design required"},{"id":7150869733,"node_id":"LA_kwDOEJlGCc8AAAABqjmc5Q","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/triage/needs-information","name":"triage/needs-information","color":"b60205","default":false,"description":"Marks that the issue still needs more information to properly triage"},{"id":7473893276,"node_id":"LA_kwDOEJlGCc8AAAABvXqPnA","url":"https://api.github.com/repos/aws/karpenter-provider-aws/labels/triage/needs-owner","name":"triage/needs-owner","color":"006b75","default":false,"description":"Indicates that the issue needs an owner to address it"}],"state":"closed","locked":false,"assignees":[],"milestone":null,"comments":60,"created_at":"2023-04-24T04:22:04Z","updated_at":"2026-09-10T21:38:52Z","closed_at":"2026-09-04T17:30:40Z","assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"### Tell us about your request\n\nAllow Kaprneter to provision more nodes in a hibernated state which would decrease the new nodes provisioning time for rapid scaling. \n\n### Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?\n\nKaprneter is excellent for optimizing the cluster capacity; however, on the other side, applications that require rapid scaling will need to wait until the new nodes are provisioned.\r\nThere is a proposal [here](https://github.com/aws/karpenter/issues/3240) to add headroom logic, But that means we are still going to have running nodes with no workloads which they are being charged for.\r\n\r\nAnother option is to support Hibernation (Stopped Instances), which will be bootstrapped and ready to join the clusters once needed. This feature is already supported out of the box as [Warm Pool for Auto Scaling Group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html) \n\n### Are you currently working around this issue?\n\nUsing Low Priority Pods could be less practical from a cost-saving perspective. Similar to https://github.com/aws/karpenter/issues/3240\n\n### Additional Context\n\n_No response_\n\n### Attachments\n\n_No response_\n\n### Community Note\n\n* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request\r\n* Please do not leave \"+1\" or \"me too\" comments, they generate extra noise for issue followers and do not help prioritize the request\r\n* If you are interested in working on this issue or have submitted a pull request, please leave a comment\r\n","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/reactions","total_count":208,"+1":207,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":1,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798/timeline","performed_via_github_app":null,"state_reason":"completed","pinned_comment":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5614672093","html_url":"https://github.com/aws/karpenter-provider-aws/issues/3798#issuecomment-5614672093","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/3798","id":5614672093,"node_id":"IC_kwDOEJlGCc8AAAABTqkY3Q","user":{"login":"evheniyt-pillar","id":219117505,"node_id":"U_kgDODQ93wQ","avatar_url":"https://avatars.githubusercontent.com/u/219117505?v=4","gravatar_id":"","url":"https://api.github.com/users/evheniyt-pillar","html_url":"https://github.com/evheniyt-pillar","followers_url":"https://api.github.com/users/evheniyt-pillar/followers","following_url":"https://api.github.com/users/evheniyt-pillar/following{/other_user}","gists_url":"https://api.github.com/users/evheniyt-pillar/gists{/gist_id}","starred_url":"https://api.github.com/users/evheniyt-pillar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evheniyt-pillar/subscriptions","organizations_url":"https://api.github.com/users/evheniyt-pillar/orgs","repos_url":"https://api.github.com/users/evheniyt-pillar/repos","events_url":"https://api.github.com/users/evheniyt-pillar/events{/privacy}","received_events_url":"https://api.github.com/users/evheniyt-pillar/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T07:16:26Z","updated_at":"2026-09-10T07:16:26Z","body":"@sergiy-slobodyan is it implemented? Any reference to the PR or docs?","pin":null,"reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5614672093/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null,"minimized":null}},"public":true,"created_at":"2026-09-10T07:16:26Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"14764562131","type":"IssueCommentEvent","actor":{"id":697976,"login":"AlexanderYastrebov","display_login":"AlexanderYastrebov","gravatar_id":"","url":"https://api.github.com/users/AlexanderYastrebov","avatar_url":"https://avatars.githubusercontent.com/u/697976?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357","repository_url":"https://api.github.com/repos/aws/karpenter-provider-aws","labels_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357/labels{/name}","comments_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357/comments","events_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357/events","html_url":"https://github.com/aws/karpenter-provider-aws/pull/8357","id":3316164822,"node_id":"PR_kwDOEJlGCc6jXae2","number":8357,"title":"RFC: template variables for ec2nodeclass userData","user":{"login":"maxcao13","id":69827283,"node_id":"MDQ6VXNlcjY5ODI3Mjgz","avatar_url":"https://avatars.githubusercontent.com/u/69827283?v=4","gravatar_id":"","url":"https://api.github.com/users/maxcao13","html_url":"https://github.com/maxcao13","followers_url":"https://api.github.com/users/maxcao13/followers","following_url":"https://api.github.com/users/maxcao13/following{/other_user}","gists_url":"https://api.github.com/users/maxcao13/gists{/gist_id}","starred_url":"https://api.github.com/users/maxcao13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxcao13/subscriptions","organizations_url":"https://api.github.com/users/maxcao13/orgs","repos_url":"https://api.github.com/users/maxcao13/repos","events_url":"https://api.github.com/users/maxcao13/events{/privacy}","received_events_url":"https://api.github.com/users/maxcao13/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignees":[],"milestone":null,"comments":4,"created_at":"2025-08-12T22:39:53Z","updated_at":"2026-09-10T15:06:34Z","closed_at":"2026-02-03T00:14:22Z","assignee":null,"issue_field_values":[],"type":null,"active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/pulls/8357","html_url":"https://github.com/aws/karpenter-provider-aws/pull/8357","diff_url":"https://github.com/aws/karpenter-provider-aws/pull/8357.diff","patch_url":"https://github.com/aws/karpenter-provider-aws/pull/8357.patch","merged_at":null},"body":"Related to https://github.com/aws/karpenter-provider-aws/issues/8336\r\nRelated to https://github.com/aws/karpenter-provider-aws/issues/5134\r\n\r\n**Description**\r\nThis is a RFC related to the two issues above which introduces template variables for the userData field in the `EC2NodeClass`.\r\n\r\n**Does this change impact docs?**\r\n- [ ] Yes, PR includes docs updates <!-- docs must be added to /preview to be included in future version releases -->\r\n- [ ] Yes, issue opened: # <!-- issue number -->\r\n- [x] No\r\n\r\nBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5614322253","html_url":"https://github.com/aws/karpenter-provider-aws/pull/8357#issuecomment-5614322253","issue_url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/8357","id":5614322253,"node_id":"IC_kwDOEJlGCc8AAAABTqPCTQ","user":{"login":"AlexanderYastrebov","id":697976,"node_id":"MDQ6VXNlcjY5Nzk3Ng==","avatar_url":"https://avatars.githubusercontent.com/u/697976?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexanderYastrebov","html_url":"https://github.com/AlexanderYastrebov","followers_url":"https://api.github.com/users/AlexanderYastrebov/followers","following_url":"https://api.github.com/users/AlexanderYastrebov/following{/other_user}","gists_url":"https://api.github.com/users/AlexanderYastrebov/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexanderYastrebov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexanderYastrebov/subscriptions","organizations_url":"https://api.github.com/users/AlexanderYastrebov/orgs","repos_url":"https://api.github.com/users/AlexanderYastrebov/repos","events_url":"https://api.github.com/users/AlexanderYastrebov/events{/privacy}","received_events_url":"https://api.github.com/users/AlexanderYastrebov/received_events","type":"User","user_view_type":"public","site_admin":false},"created_at":"2026-09-10T06:43:34Z","updated_at":"2026-09-10T06:43:34Z","body":"@maxcao13 Hi, this is a useful feature, why was the proposal abandoned?","reactions":{"url":"https://api.github.com/repos/aws/karpenter-provider-aws/issues/comments/5614322253/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null,"minimized":null}},"public":true,"created_at":"2026-09-10T06:43:34Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"20638486521","type":"DeleteEvent","actor":{"id":217795880,"login":"ryan-mist","display_login":"ryan-mist","gravatar_id":"","url":"https://api.github.com/users/ryan-mist","avatar_url":"https://avatars.githubusercontent.com/u/217795880?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"ref":"dependabot/npm_and_yarn/website/website-deps-2ab6d2e807","ref_type":"branch","full_ref":"refs/heads/dependabot/npm_and_yarn/website/website-deps-2ab6d2e807","pusher_type":"user"},"public":true,"created_at":"2026-09-08T15:54:11Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}},{"id":"20638404250","type":"PushEvent","actor":{"id":217795880,"login":"ryan-mist","display_login":"ryan-mist","gravatar_id":"","url":"https://api.github.com/users/ryan-mist","avatar_url":"https://avatars.githubusercontent.com/u/217795880?"},"repo":{"id":278480393,"name":"aws/karpenter-provider-aws","url":"https://api.github.com/repos/aws/karpenter-provider-aws"},"payload":{"repository_id":278480393,"push_id":42953755556,"ref":"refs/heads/main","head":"d1e743b87e0029292dbbc50d64ccdaf1db38dcab","before":"961054d4f0b99bff81f4b691289fe2e19df7e3f3"},"public":true,"created_at":"2026-09-08T15:53:38Z","org":{"id":2232217,"login":"aws","gravatar_id":"","url":"https://api.github.com/orgs/aws","avatar_url":"https://avatars.githubusercontent.com/u/2232217?"}}]