Skip to content

Node orphaned and stuck after early deletion of Machine #7237

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

Closed
lentzi90 opened this issue Sep 19, 2022 · 13 comments
Closed

Node orphaned and stuck after early deletion of Machine #7237

lentzi90 opened this issue Sep 19, 2022 · 13 comments
Labels
kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.

Comments

@lentzi90
Copy link
Contributor

lentzi90 commented Sep 19, 2022

What steps did you take and what happened:

This is a bit tricky because it depends on timing. We accidentally stumbled across it in the Metal3 provider because we made a mistake in our e2e tests. The gist is that we didn't wait for a Machine to become running before it was deleted as part of a change to the MachineDeployment (but the underlying infrastructure was provisioned).
It goes something like this:

  1. Create a cluster
  2. Create a MachineDeployment
  3. Wait for the worker machine to be almost ready and then delete it in some way. (What we did was change the template so the MachineDeployment rolled the Machine.)
  4. The Node had just time to join the cluster, but the Machine never got a NodeRef.
  5. The Machine was deleted but the Node stuck.

What did you expect to happen:

The Node should be removed together with the Machine.

Anything else you would like to add:

Logs from CAPI about the relevant Machine/Node when this happens (grep <machine-name):

I0913 21:24:50.075139       1 machineset_controller.go:433] "Created machine 1 of 1 with name \"test1-6b5bd59967-gss78\"" controller="machineset" controllerGroup="cluster.x-k8s.io" controllerKind="MachineSet" machineSet="metal3/test1-6b5bd59967" namespace="metal3" name="test1-6b5bd59967" reconcileID=1e192f54-bdb1-4924-8e6a-c6cadbfc9334
I0913 21:24:50.219900       1 machine_controller_phases.go:221] "Bootstrap provider is not ready, requeuing" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-gss78" namespace="metal3" name="test1-6b5bd59967-gss78" reconcileID=83ad3474-9b4a-41dd-a18e-95fbe99b29f9 cluster="test1"
I0913 21:24:50.331085       1 machine_controller_phases.go:283] "Infrastructure provider is not ready, requeuing" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-gss78" namespace="metal3" name="test1-6b5bd59967-gss78" reconcileID=83ad3474-9b4a-41dd-a18e-95fbe99b29f9 cluster="test1"
I0913 21:24:50.363158       1 machine_controller_noderef.go:49] "Cannot reconcile Machine's Node, no valid ProviderID yet" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" name="test1-6b5bd59967-gss78" reconcileID=83ad3474-9b4a-41dd-a18e-95fbe99b29f9 machine="test1-6b5bd59967-gss78" namespace="metal3" cluster="test1"
... [MORE OF THE SAME HERE]
I0913 21:28:37.018999       1 machine_controller_noderef.go:49] "Cannot reconcile Machine's Node, no valid ProviderID yet" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" name="test1-6b5bd59967-gss78" reconcileID=851fdd19-b347-4c43-a7c1-4e237bdc338b machine="test1-6b5bd59967-gss78" namespace="metal3" cluster="test1"
I0913 21:28:42.363816       1 machineset_controller.go:460] "Deleted machine" controller="machineset" controllerGroup="cluster.x-k8s.io" controllerKind="MachineSet" machineSet="metal3/test1-6b5bd59967" namespace="metal3" name="test1-6b5bd59967" reconcileID=0b5f65f6-1be0-428c-aee0-968cedb080e5 machine="test1-6b5bd59967-gss78"
I0913 21:28:42.486604       1 machine_controller.go:296] "Deleting Kubernetes Node associated with Machine is not allowed" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-gss78" namespace="metal3" name="test1-6b5bd59967-gss78" reconcileID=442b17db-b320-4eb8-80b5-792f3cf79b7c cluster="test1" node="nil" cause="noderef is nil"
I0913 21:28:43.059987       1 machine_controller.go:296] "Deleting Kubernetes Node associated with Machine is not allowed" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-gss78" namespace="metal3" name="test1-6b5bd59967-gss78" reconcileID=0981c553-b15a-4a47-9143-34b9f8bd7b53 cluster="test1" node="nil" cause="noderef is nil"
I0913 21:28:43.144901       1 machineset_controller.go:460] "Deleted machine" controller="machineset" controllerGroup="cluster.x-k8s.io" controllerKind="MachineSet" machineSet="metal3/test1-6b5bd59967" namespace="metal3" name="test1-6b5bd59967" reconcileID=48d84deb-df5c-434e-b9cd-14a5a3c9484d machine="test1-6b5bd59967-gss78"
I0913 21:28:43.862823       1 machineset_controller.go:460] "Deleted machine" controller="machineset" controllerGroup="cluster.x-k8s.io" controllerKind="MachineSet" machineSet="metal3/test1-6b5bd59967" namespace="metal3" name="test1-6b5bd59967" reconcileID=fc30ea28-5e5e-4074-a4cc-913ebfd91c08 machine="test1-6b5bd59967-gss78"
... [MORE OF THE SAME HERE]
I0913 21:28:51.270311       1 machine_controller.go:296] "Deleting Kubernetes Node associated with Machine is not allowed" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-gss78" namespace="metal3" name="test1-6b5bd59967-gss78" reconcileID=d35477ed-6eb3-4b1a-a99c-ccc543a69644 cluster="test1" node="nil" cause="noderef is nil"
I0913 21:30:53.896363       1 machine_controller.go:296] "Deleting Kubernetes Node associated with Machine is not allowed" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-gss78" namespace="metal3" name="test1-6b5bd59967-gss78" reconcileID=f90d4dfb-043f-4abb-b568-3838052c0035 cluster="test1" node="nil" cause="noderef is nil"
I0913 21:30:57.144934       1 machine_controller.go:296] "Deleting Kubernetes Node associated with Machine is not allowed" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-gss78" namespace="metal3" name="test1-6b5bd59967-gss78" reconcileID=3d3a87f2-671b-42b3-874f-c1d0d5be7b72 cluster="test1" node="nil" cause="noderef is nil"
I0913 21:30:58.663075       1 machineset_controller.go:460] "Deleted machine" controller="machineset" controllerGroup="cluster.x-k8s.io" controllerKind="MachineSet" machineSet="metal3/test1-6b5bd59967" namespace="metal3" name="test1-6b5bd59967" reconcileID=3f65b3cd-9f75-41cb-9886-d87226347e6b machine="test1-6b5bd59967-gss78"
E0913 21:31:00.593662       1 controller.go:326] "Reconciler error" err="machines.cluster.x-k8s.io \"test1-6b5bd59967-gss78\" not found" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-gss78" namespace="metal3" name="test1-6b5bd59967-gss78" reconcileID=3d3a87f2-671b-42b3-874f-c1d0d5be7b72

For comparison, this is how the logs looks like for a Machine/Node where this does not happen. Note the message when setting NodeRef. This is missing in the above logs. Also some other differences, like draining, but I guess that could be because no draining is needed when the node never got ready?

I0913 20:49:55.986635       1 machineset_controller.go:433] "Created machine 1 of 1 with name \"test1-6b5bd59967-h8dxp\"" controller="machineset" controllerGroup="cluster.x-k8s.io" controllerKind="MachineSet" machineSet="metal3/test1-6b5bd59967" namespace="metal3" name="test1-6b5bd59967" reconcileID=fc59244e-431a-40b2-b3e3-831d58f048ea
I0913 20:49:56.123462       1 tracker.go:57] "Adding watcher on external object" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=64d850c8-c51f-4ea3-a65a-a7ca8fe9080b cluster="test1" GroupVersionKind="bootstrap.cluster.x-k8s.io/v1beta1, Kind=KubeadmConfig"
I0913 20:49:56.127678       1 machine_controller_phases.go:221] "Bootstrap provider is not ready, requeuing" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=64d850c8-c51f-4ea3-a65a-a7ca8fe9080b cluster="test1"
I0913 20:49:56.271231       1 tracker.go:57] "Adding watcher on external object" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=64d850c8-c51f-4ea3-a65a-a7ca8fe9080b cluster="test1" GroupVersionKind="infrastructure.cluster.x-k8s.io/v1beta1, Kind=Metal3Machine"
I0913 20:49:56.272138       1 machine_controller_phases.go:283] "Infrastructure provider is not ready, requeuing" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=64d850c8-c51f-4ea3-a65a-a7ca8fe9080b cluster="test1"
I0913 20:49:56.273303       1 machine_controller_noderef.go:49] "Cannot reconcile Machine's Node, no valid ProviderID yet" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" name="test1-6b5bd59967-h8dxp" reconcileID=64d850c8-c51f-4ea3-a65a-a7ca8fe9080b machine="test1-6b5bd59967-h8dxp" namespace="metal3" cluster="test1"
... [MORE OF THE SAME HERE]
I0913 20:57:03.605451       1 machine_controller_noderef.go:91] "Set Machine's NodeRef" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" name="test1-6b5bd59967-h8dxp" reconcileID=7b02ea9a-1855-4f70-9146-2566b141af56 machine="test1-6b5bd59967-h8dxp" namespace="metal3" cluster="test1" noderef="test1-6b5bd59967-h8dxp"
E0913 21:00:50.438774       1 machineset_controller.go:664] "Unable to retrieve Node status" err="error retrieving node test1-6b5bd59967-h8dxp for machine metal3/test1-6b5bd59967-h8dxp: Node \"test1-6b5bd59967-h8dxp\" not found" controller="machineset" controllerGroup="cluster.x-k8s.io" controllerKind="MachineSet" machineSet="metal3/test1-6b5bd59967" namespace="metal3" name="test1-6b5bd59967" reconcileID=7e6730f7-6b0b-45f8-9cd6-8147d1a40f3b
E0913 21:00:50.460915       1 controller.go:326] "Reconciler error" err="no matching Node for Machine \"test1-6b5bd59967-h8dxp\" in namespace \"metal3\": cannot find node with matching ProviderID" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=9d281ca3-9751-40ad-b868-37abd20d5e77
... [MORE OF THE SAME HERE]
I0913 21:23:40.267975       1 machine_controller.go:318] "Draining node" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=5be0c445-09a2-458a-aaaf-3202c8da904d cluster="test1" node="test1-6b5bd59967-h8dxp"
E0913 21:23:40.479770       1 machine_controller.go:551] "WARNING: ignoring DaemonSet-managed Pods: kube-system/calico-node-crrcj, kube-system/kube-proxy-2gk6q\n" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=5be0c445-09a2-458a-aaaf-3202c8da904d cluster="test1" node="test1-6b5bd59967-h8dxp"
I0913 21:23:40.486485       1 machine_controller.go:769] "evicting pod kube-system/calico-kube-controllers-78fd8f5cdd-br974\n" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=5be0c445-09a2-458a-aaaf-3202c8da904d cluster="test1" node="test1-6b5bd59967-h8dxp"
I0913 21:23:40.486485       1 machine_controller.go:769] "evicting pod kube-system/coredns-64897985d-8hzd7\n" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=5be0c445-09a2-458a-aaaf-3202c8da904d cluster="test1" node="test1-6b5bd59967-h8dxp"
I0913 21:23:42.563769       1 machine_controller.go:546] "Evicted pod from Node" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=5be0c445-09a2-458a-aaaf-3202c8da904d cluster="test1" node="test1-6b5bd59967-h8dxp" pod="calico-kube-controllers-78fd8f5cdd-br974/kube-system"
I0913 21:23:46.535558       1 machine_controller.go:546] "Evicted pod from Node" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=5be0c445-09a2-458a-aaaf-3202c8da904d cluster="test1" node="test1-6b5bd59967-h8dxp" pod="coredns-64897985d-8hzd7/kube-system"
I0913 21:23:46.535647       1 machine_controller.go:572] "Drain successful" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=5be0c445-09a2-458a-aaaf-3202c8da904d cluster="test1" node="test1-6b5bd59967-h8dxp"
I0913 21:23:46.708882       1 machine_controller.go:318] "Draining node" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=484f3157-94fd-4274-80ff-4bc30aa2f3fe cluster="test1" node="test1-6b5bd59967-h8dxp"
E0913 21:23:46.780890       1 machine_controller.go:551] "WARNING: ignoring DaemonSet-managed Pods: kube-system/calico-node-crrcj, kube-system/kube-proxy-2gk6q\n" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=484f3157-94fd-4274-80ff-4bc30aa2f3fe cluster="test1" node="test1-6b5bd59967-h8dxp"
I0913 21:23:46.780932       1 machine_controller.go:572] "Drain successful" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=484f3157-94fd-4274-80ff-4bc30aa2f3fe cluster="test1" node="test1-6b5bd59967-h8dxp"
I0913 21:24:33.196684       1 machine_controller.go:318] "Draining node" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=f75cade4-84e7-4985-91da-f730b0ec686f cluster="test1" node="test1-6b5bd59967-h8dxp"
E0913 21:24:33.245493       1 machine_controller.go:551] "WARNING: ignoring DaemonSet-managed Pods: kube-system/calico-node-crrcj, kube-system/kube-proxy-2gk6q\n" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=f75cade4-84e7-4985-91da-f730b0ec686f cluster="test1" node="test1-6b5bd59967-h8dxp"
... [MORE OF THE SAME HERE]
I0913 21:24:49.668239       1 machine_controller.go:572] "Drain successful" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=c75ce970-416f-4eec-af03-04d1ee51ac94 cluster="test1" node="test1-6b5bd59967-h8dxp"
I0913 21:24:49.719816       1 machine_controller.go:390] "Deleting node" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=c75ce970-416f-4eec-af03-04d1ee51ac94 cluster="test1" node="test1-6b5bd59967-h8dxp"
E0913 21:24:49.820210       1 machineset_controller.go:664] "Unable to retrieve Node status" err="error retrieving node test1-6b5bd59967-h8dxp for machine metal3/test1-6b5bd59967-h8dxp: Node \"test1-6b5bd59967-h8dxp\" not found" controller="machineset" controllerGroup="cluster.x-k8s.io" controllerKind="MachineSet" machineSet="metal3/test1-6b5bd59967" namespace="metal3" name="test1-6b5bd59967" reconcileID=7ca9245e-dd02-47a1-b1e8-cd9c79293021
E0913 21:24:49.901772       1 controller.go:326] "Reconciler error" err="machines.cluster.x-k8s.io \"test1-6b5bd59967-h8dxp\" not found" controller="machine" controllerGroup="cluster.x-k8s.io" controllerKind="Machine" machine="metal3/test1-6b5bd59967-h8dxp" namespace="metal3" name="test1-6b5bd59967-h8dxp" reconcileID=c75ce970-416f-4eec-af03-04d1ee51ac94

Environment:

  • Cluster-api version: v1.2.2
  • minikube/kind version:
  • Kubernetes version: (use kubectl version): v1.23.8
  • OS (e.g. from /etc/os-release): CentOS Stream 9

/kind bug

@k8s-ci-robot k8s-ci-robot added kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Sep 19, 2022
@fabriziopandini
Copy link
Member

This is a tricky one.
CAPI relies on the infra provider to get the node ref, and thus it cannot handle node deletion if the node ref is not set.
Also, setting a constraint on node ref existing before deletion/rollout seems not viable, because in some cases the node never comes out and you want to delete to fix the problem...

It is required to think carefully if/how we can handle this use case... could the infra provider should surface node ref even if it pops up during the delete, but this doesn't really ensure this happens before deletion kicks in.

@lentzi90
Copy link
Contributor Author

Thanks for your insights @fabriziopandini ! I had a feeling this may not be easily solved but wanted to at least create an issue after spending the time to figure out what happened. 😄
Anyway, it is not critical for us to get this fixed. As mentioned above, we only saw it because of a mistake and don't expect to run into it normally.

@fabriziopandini
Copy link
Member

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Sep 19, 2022
@maxdrib
Copy link

maxdrib commented Nov 9, 2022

We have observed the same issue when working in a slow CloudStack environment. Basically we're trying to scale up our cluster and request new machines. These CAPI machines get created, then the MachineHealthCheck activates and deletes them while the node is coming up, before nodeRef is set. Increasing the MachineHealthCheck timeout is one option. What would the team think about some process which cleans up orphaned nodes? They could be detected as nodes on a cluster missing the CAPI annotations such as

    cluster.x-k8s.io/cluster-name: drib-large-cluster-w-0
    cluster.x-k8s.io/cluster-namespace: eksa-system
    cluster.x-k8s.io/machine: drib-large-cluster-w-0-md-5-6d8889cfb5-6827s
    cluster.x-k8s.io/owner-kind: MachineSet
    cluster.x-k8s.io/owner-name: drib-large-cluster-w-0-md-5-6d8889cfb5

@sbueringer
Copy link
Member

sbueringer commented Nov 18, 2022

Not sure about just cleaning up all Nodes which are not annotated by Cluster API. Wondering if that breaks some use cases. Also our annotations are not set immediately so we have to be careful regarding race conditions.

One alternative could look like this:

Essentially during deletion if the node ref is not set we could list the nodes of the workload cluster filtered by the machine name label and then delete it.

(I think setting the label would be something that the bootstrap provider has to implement and Cluster API can act on it in case a node with that label exists, if not the behavior is as of today)

@vansikagupta
Copy link

The CloudNodeLifecycleController monitors nodes and would delete the node if it's not found in the cloud-provider. Refer https://github.com/kubernetes/cloud-provider/blob/a40fcba9db0de1bd377f8c146e41a2c2809ea3cd/controllers/nodelifecycle/node_lifecycle_controller.go#L147

@lentzi90
Copy link
Contributor Author

The CloudNodeLifecycleController monitors nodes and would delete the node if it's not found in the cloud-provider. Refer https://github.com/kubernetes/cloud-provider/blob/a40fcba9db0de1bd377f8c146e41a2c2809ea3cd/controllers/nodelifecycle/node_lifecycle_controller.go#L147

Not all providers have a cloud-provider. See for example Metal3.

@fabriziopandini
Copy link
Member

Reading the last comments I'm starting to think that a pragmatic way to start addressing this problem is that the providers without a cloud provider should implement their own cleanup loop deleting nodes without a corresponding machine; CAPI is already providing a couple of building blocks that should make this possible, like the cluster cache tracker.

In a follow-up iteration, we can eventually pick one of the controllers implementing this cleanup loop and try to make it a "optional, generic controller" hosted in CAPI and used by all the providers that need it, but I will defer this to when we have a few implementations to look at try to figure out what is generic and what instead should be pluggable/extensible.

@k8s-triage-robot
Copy link

This issue has not been updated in over 1 year, and should be re-triaged.

You can:

  • Confirm that this issue is still relevant with /triage accepted (org members only)
  • Close this issue with /close

For more details on the triage process, see https://www.kubernetes.dev/docs/guide/issue-triage/

/remove-triage accepted

@k8s-ci-robot k8s-ci-robot added needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. and removed triage/accepted Indicates an issue or PR is ready to be actively worked on. labels Mar 19, 2024
@fabriziopandini
Copy link
Member

/priority important-longterm

@k8s-ci-robot k8s-ci-robot added the priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. label Apr 12, 2024
@fabriziopandini
Copy link
Member

This problem is addressed in CPI controllers; if some infrastructure provider doesn't have a CPI construct, they should think about building at least a subset of it to solve this problem (but potentially many others that requires a deep knowledge of the infrastructure like e.g volumes)

/close

@k8s-ci-robot
Copy link
Contributor

@fabriziopandini: Closing this issue.

In response to this:

This problem is addressed in CPI controllers; if some infrastructure provider doesn't have a CPI construct, they should think about building at least a subset of it to solve this problem (but potentially many others that requires a deep knowledge of the infrastructure like e.g volumes)

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@fabriziopandini
Copy link
Member

FYI https://github.com/kubernetes-sigs/cloud-provider-kind this should be a small CPI implementation (but did not have time to look into yet)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Projects
None yet
Development

No branches or pull requests

7 participants