kudo
kudo copied to clipboard
Operator upgrade fails after making one of the parameters immutable
What happened:
Got the following error during the upgrade after adding immutable: true to one of the operator's parameters (default value is set and don't change in a new version):
admission webhook "instance-admission.kudo.dev" denied the request: failed to check immutable parameters for Instance test/operator-instance: parameter 'foo' was changed to immutable in operator version operator-1.0.0-0.0.2 but no value was provided
There is also another variation of this error, even though the use-case is the same (parameter became immutable without changing its value):
Error: failed to update instance for new operatorversion operator/operator-1.2.0-1.0.1-rc1: admission webhook "instance-admission.kudo.dev" denied the request: failed to check immutable parameters for Instance operator/instance: parameter 'clusterDomainName' was added in operator version operator-1.2.0-1.0.1-rc1, but no value was provided (default would be cluster.local)
What you expected to happen: Upgrade completes successfully, the default value of the parameter is used.
How to reproduce it (as minimally and precisely as possible):
- Create a simple operator with a single parameter:
apiVersion: kudo.dev/v1beta1
parameters:
- name: foo
default: "bar"
- Install the operator.
- Make the parameter immutable:
apiVersion: kudo.dev/v1beta1
parameters:
- name: foo
default: "bar"
immutable: true
- Bump operator version and run the upgrade.
Anything else we need to know?:
Environment:
- Kubernetes version (use
kubectl version):1.19 - Kudo version (use
kubectl kudo version):0.18.2 - Operator:
- operatorVersion:
- Cloud provider or hardware configuration:
- OS (e.g. from /etc/os-release):
- Kernel (e.g.
uname -a): - Install tools:
- Others: