linode / linode/linode-cloud-controller-manager

Lacks of permissions leads to new node being deleted

Open
#399 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
94
Forks
75
Avg merge
11h 19m
Merged PRs (30d)
20

Description

CCM should not be deleting nodes from the cluster - that's kubelet/apiserver job.

Steps to reproduce:
Create a cluster ( can be one node ), install linode-ccm.
When installing linode-ccm give it token with limited permissions ( not being able to list linodes ).
Try to join new k8s node to the cluster.

Expected:
Node joins and stays.

Actual:
Node joins, node object is being created.
In a second or two CCM removes node from the cluster:
`I0612 12:40:49.098700 1 node_lifecycle_controller.go:163] deleting node since it is no longer present in cloud provider: dev1-cp-2.acme.com
I0612 12:40:49.099228 1 event.go:389] "Event occurred" object="dev1-cp-2.acme.com" fieldPath="" kind="Node" apiVersion="" type="Normal" reason="DeletingNode" message="Deleting node dev1-cp-2.acme.com because it does not exist in the cloud provider"`

--
This also prevents from creating hybrid clusters ( nodes can be outside of linode ).
At least there should be a way to disable node manager ( if I need only balancert functionality for example ).

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

Reproduce the issue by joining a node while linode-ccm uses a token that cannot list Linodes. Start from the reported node_lifecycle_controller.go deletion log and trace how missing cloud-provider results are handled. Done means a newly joined external or otherwise unlisted node remains in the cluster without breaking the node manager's intended behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.