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

Declarative Node Maintenance #4212

Open
4 tasks
atiratree opened this issue Sep 15, 2023 · 31 comments
Open
4 tasks

Declarative Node Maintenance #4212

atiratree opened this issue Sep 15, 2023 · 31 comments
Assignees
Labels
sig/apps Categorizes an issue or PR as relevant to SIG Apps. sig/node Categorizes an issue or PR as relevant to SIG Node. stage/alpha Denotes an issue tracking an enhancement targeted for Alpha status tracked/no Denotes an enhancement issue is NOT actively being tracked by the Release Team

Comments

@atiratree
Copy link
Member

atiratree commented Sep 15, 2023

Enhancement Description

Please keep this description up to date. This will help the Enhancement Team to track the evolution of the enhancement efficiently.

@k8s-ci-robot k8s-ci-robot added the needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. label Sep 15, 2023
@atiratree
Copy link
Member Author

/sig apps

@k8s-ci-robot k8s-ci-robot added sig/apps Categorizes an issue or PR as relevant to SIG Apps. and removed needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Sep 15, 2023
@npolshakova
Copy link

Hello @atiratree, 1.29 Enhancements team here! Is this enhancement targeting 1.29? If it is, can you follow the instructions here to opt in the enhancements and make sure the lead-opted-in label is set so it can get added to the tracking board? Thanks!

@sftim
Copy link
Contributor

sftim commented Sep 23, 2023

Title suggestion: “Declarative node maintenance”

(all KEPs are implicitly improvements, or at least they aim to be)

@atiratree
Copy link
Member Author

atiratree commented Sep 25, 2023

Thanks for the suggestion. I have updated the title and the KEP.

@atiratree
Copy link
Member Author

@npolshakova this still needs to be discussed with all the interested sigs before we can target this.

@atiratree
Copy link
Member Author

this has been discussed and the KEP still needs some work and additional discussions, so we will try to target this for the next release

@alculquicondor
Copy link
Member

/sig node

@k8s-ci-robot k8s-ci-robot added the sig/node Categorizes an issue or PR as relevant to SIG Node. label Nov 27, 2023
@sftim
Copy link
Contributor

sftim commented Dec 29, 2023

@atiratree, how can people best help move this work forward?

@atiratree
Copy link
Member Author

I will revisit this one soon. I need to process the reviews and my personal notes.

@atiratree
Copy link
Member Author

The KEP should be up to date now.

@sftim
Copy link
Contributor

sftim commented Feb 3, 2024

Some relevance to: kubernetes/website#44998 (about the existing docs for node maintenance)

@beekhof
Copy link

beekhof commented Mar 26, 2024

In case it helps, Red Hat has been shipping https://github.com/medik8s/node-maintenance-operator for ~5 years.
It almost certainly contains some OpenShift-isms, but I'm sure they can be addressed if there is interest.

@atiratree atiratree mentioned this issue Mar 28, 2024
4 tasks
@atiratree
Copy link
Member Author

@atiratree
Copy link
Member Author

The Declarative Node Maintenance KEP is becoming too complex and it is hard to capture all aspects and review everything in a single place. I have opened a second KEP just for the Evacuation API: #4563 and it will be a prerequisite for the Node Maintenance.

@sftim
Copy link
Contributor

sftim commented Mar 28, 2024

@beekhof if we did prototype node maintenance out of tree, with an alpha API group, we'd want to teach Kubernetes tooling about using it (for example, kubectl drain - but also many other in-project pieces).

To me, the value comes from that integration work more than from writing the actual controller. If you agree, we could look at rallying effort around an out-of-tree prototype. The integrations would remain valuable even after a move to in-tree implementation.

@soltysh
Copy link
Contributor

soltysh commented Jun 6, 2024

/assign @atiratree

/label lead-opted-in
/stage alpha
/milestone v1.31

@k8s-ci-robot k8s-ci-robot added the stage/alpha Denotes an issue tracking an enhancement targeted for Alpha status label Jun 6, 2024
@k8s-ci-robot k8s-ci-robot added this to the v1.31 milestone Jun 6, 2024
@k8s-ci-robot k8s-ci-robot added the lead-opted-in Denotes that an issue has been opted in to a release label Jun 6, 2024
@atiratree
Copy link
Member Author

@soltysh I would like to consider this for alpha in 1.32, not in this release. To get more feedback on the feature and to lead the way with the Evacuation API (dependency) first.

@soltysh
Copy link
Contributor

soltysh commented Jun 6, 2024

/milestone clear

@k8s-ci-robot k8s-ci-robot removed this from the v1.31 milestone Jun 6, 2024
@dipesh-rawat
Copy link
Member

Hello @soltysh @atiratree 👋, 1.31 Enhancements team here.

Now that this KEP is not targeting for release 1.31 (reference #4212 (comment)), should we also consider removing the lead-opted-in label too?

@soltysh
Copy link
Contributor

soltysh commented Jun 6, 2024

Yeah, I guess you're right.

/remove-label lead-opted-in

@k8s-ci-robot k8s-ci-robot removed the lead-opted-in Denotes that an issue has been opted in to a release label Jun 6, 2024
@sftim
Copy link
Contributor

sftim commented Jun 10, 2024

Is there a baseline of detail that we can define and merge as provisional?

@soltysh
Copy link
Contributor

soltysh commented Jun 11, 2024

This and #4563 where discussed heavily again during Monday's SIG-Apps call, with the general hesitation from SIG leads we're going to hold on with these efforts in favor of looking into extending PDB and eviction API.

@sreeram-venkitesh
Copy link
Member

/label tracked/no

@k8s-ci-robot k8s-ci-robot added the tracked/no Denotes an enhancement issue is NOT actively being tracked by the Release Team label Jun 24, 2024
@sftim
Copy link
Contributor

sftim commented Aug 20, 2024

I'm tempted to propose an out-of-tree implementation (CRD, controller) and maybe kubectl plugin.
kubectl experimental-drain perhaps?

@kannon92
Copy link
Contributor

Reading this, we are not considering this for 1.32?

@atiratree
Copy link
Member Author

Not considering for 1.32. We have to get a broader consensus before we can accept this into the core. Please see https://groups.google.com/g/kubernetes-sig-architecture/c/Tb_3oDMAHrg for more details. I would like to build the consensus with the community, but did not have a time to pick up the topic yet. Hopefully we can do that soon.

We are also having discussions about the #4565 and will follow up on that in the next sig-apps meeting, which would help the NodeMaintenance feature.

@atiratree
Copy link
Member Author

I'm tempted to propose an out-of-tree implementation (CRD, controller) and maybe kubectl plugin.
kubectl experimental-drain perhaps?

What would be the benefit when compared to the other drain solutions? Or extending the other drain solutions? Nevertheless, I think it is better to start with the discussions first.

@sftim
Copy link
Contributor

sftim commented Aug 27, 2024

What would be the benefit when compared to the other drain solutions? Or extending the other drain solutions?

Personally, I want to be able to initiate a declarative drain via kubectl. The only in-tree element there would be a change to kubectl drain.

@atiratree
Copy link
Member Author

We cannot make it declarative unless we have the API and I am not positive we can accept 3rd party APIs into kubectl. But we could consider starting with the NodeMaintenance logic + Evacuation API in kubectl.

@sftim
Copy link
Contributor

sftim commented Aug 28, 2024

I am not positive we can accept 3rd party APIs into kubectl

Did you mean “out of tree”? The out-of-tree implementation I had in mine would still be part of Kubernetes, but not part of https://github.com/kubernetes/kubernetes (other than the kubectl support, which needs to be in-tree if not done using a plugin).

@atiratree
Copy link
Member Author

Ah, yeah, that could work if sig-cli would accept it. However, if there is an API, there is less need for kubectl integration and just creating the object could be enough.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sig/apps Categorizes an issue or PR as relevant to SIG Apps. sig/node Categorizes an issue or PR as relevant to SIG Node. stage/alpha Denotes an issue tracking an enhancement targeted for Alpha status tracked/no Denotes an enhancement issue is NOT actively being tracked by the Release Team
Projects
Status: Needs Triage
Status: Not for release
Status: Deferred
Development

No branches or pull requests

10 participants