kubernetes-sigs / kubernetes-sigs/cluster-api

Improve API around machine deletion strategy

Open
#7,021 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted kind/api-change priority/important-longterm triage/accepted
Dominant language
Go
Stars
4.3k
Forks
1.6k
Avg merge
1d 3h
Merged PRs (30d)
113

Description

User Story

As a user, I would like to have a clean and simple API for configuring machine deletion strategy

Detailed Description

In recent version we expanded MachineSpec with fields allowing us to configure machine deletion strategy, nodeDeletionTimeout, nodeDrainTimeout and also volumeDetachTimeout (https://github.com/kubernetes-sigs/cluster-api/pull/6413); there are also annotations allowing to enable/disable one of the machine deletion steps, like e.g machine.cluster.x-k8s.io/exclude-node-draining

Last but not least we have more requests in the pipeline, like e.g. the request for adding support for DaemonSet eviction when draining nodes

This ticket is about discussing how to normalize the API surface for machine deletion strategy by (some ideas):

  • create a struct that groups all the flags related to this topic
  • introduce a more explicit way to enable/disable one of the machine deletion steps vs using annotations

/kind api-change
/triage accepted

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing MachineSpec, the nodeDeletionTimeout, nodeDrainTimeout, and volumeDetachTimeout fields, and the machine deletion annotations described in the issue. Compare these with the proposed DaemonSet eviction support in issue #6158; the work is done when the project agrees on and documents a consistent API for configuring deletion steps and related timeouts.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.