Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Support kubeletConfiguration.featureGates in Provisioner spec #662

Closed
OrBin opened this issue Oct 29, 2023 · 5 comments
Closed

Support kubeletConfiguration.featureGates in Provisioner spec #662

OrBin opened this issue Oct 29, 2023 · 5 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.

Comments

@OrBin
Copy link

OrBin commented Oct 29, 2023

Description

What problem are you trying to solve? Set feature gates for a kubelet.

How important is this feature to you? It's necessary for us to be able to use swap memory on Karpenter-controlled nodes when using kubelet version 1.27 or lower.

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment
@OrBin OrBin added the kind/feature Categorizes issue or PR as related to a new feature. label Oct 29, 2023
@njtran
Copy link
Contributor

njtran commented Oct 31, 2023

Karpenter recently added v1beta1 APIs, where we're in the process of deprecating v1alpha5 APIs. Which feature gates are you looking to enable? Are you using EKS?

@njtran njtran transferred this issue from aws/karpenter-provider-aws Nov 2, 2023
@OrBin
Copy link
Author

OrBin commented Nov 2, 2023

I want to enable NodeSwap and I am using EKS.

Now I see this, which I didn't see before; Is Drift the only supported feature gate?

@alec-w
Copy link

alec-w commented Dec 12, 2023

I think this is a separate item to the feature gates for the Karpenter APIs. This is about being able to pass featureGates through to the kubelet to enable feature gates for a set of nodes.

In our case we wanted to enable the feature gate MinDomainsInPodTopologySpread and so had node pool config

spec:
  template:
    spec:
      kubelet:
        featureGates:
          MinDomainsInPodTopologySpread: true

but got error when applying this
strict decoding error: unknown field "spec.template.spec.kubelet.featureGates"

Our attempt was based on https://karpenter.sh/preview/concepts/nodepools/#spectemplatespeckubelet, kubelet configuration API reference https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/#kubelet-config-k8s-io-v1beta1-KubeletConfiguration and available feature gates https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/

Server version: v1.25.15-eks-4f4795d
Client version: v1.25.15
kubeletVersion: v1.25.15-eks-e71965b

Although I see that the kubelet configuration (and therefore featureGates) doesn't exist under the v1 reference https://kubernetes.io/docs/reference/config-api/kubelet-config.v1/ - so could it be that this is supported by Karpenter but not the kubelet version we're using?

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 11, 2024
@jonathan-innis
Copy link
Member

I'm closing this one as Not Planned since I don't think there is any plan among CloudProviders to surface this set of arguments generally. If you are interested in adding more feedback for AWS, here's the larger GH issue: aws/karpenter-provider-aws#5833

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

No branches or pull requests

6 participants