Skip to content
This repository has been archived by the owner on Dec 15, 2021. It is now read-only.

Cannot update a function label #1211

Open
lorenzo-ange opened this issue Jan 7, 2021 · 0 comments
Open

Cannot update a function label #1211

lorenzo-ange opened this issue Jan 7, 2021 · 0 comments

Comments

@lorenzo-ange
Copy link
Contributor

Is this a BUG REPORT or FEATURE REQUEST?:
BUG REPORT
What happened:
I deploy a function with a label:
kubeless function deploy hello --runtime python2.7 --from-file func.py --handler func.hello --label my-label=a
I try to update the function label:
kubeless function update hello --label my-label=b
The deployment label does NOT get updated and I get this error in the kubeless-controller logs:

time="2021-01-07T09:50:49Z" level=error msg="Function can not be created/updated: Deployment.apps \"hello\" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{\"created-by\":\"kubeless\", \"function\":\"hello\", \"my-label\":\"b\"}: `selector` does not match template `labels`" pkg=function-controller
time="2021-01-07T09:50:49Z" level=error msg="Error processing default/hello (will retry): Deployment.apps \"hello\" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{\"created-by\":\"kubeless\", \"function\":\"hello\", \"my-label\":\"b\"}: `selector` does not match template `labels`" pkg=function-controller

What you expected to happen:
The deployment label gets updated and no error log in the kubeless-controller logs.

How to reproduce it (as minimally and precisely as possible):
kubeless function deploy hello --runtime python2.7 --from-file func.py --handler func.hello --label my-label=a
kubeless function update hello --label my-label=b
kubectl -n kubeless logs kubeless-controller-manager-7c9b96cc7-758fk -c kubeless-function-controller
Anything else we need to know?:
If I first deploy the function without any labels and then I add the label my-label with "kubeless update" then I can change the value of my-label how many times I want.

I think the problem is related to the fact that my-label is inserted in the deployment spec.selector.matchLabels section.
Environment:

  • Kubernetes version (use kubectl version): 1.14
  • Kubeless version (use kubeless version): v1.0.5-dirty
  • Cloud provider or physical cluster: minikube
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant