kudo icon indicating copy to clipboard operation
kudo copied to clipboard

Operator upgrade fails after making one of the parameters immutable

Open alembiewski opened this issue 4 years ago • 0 comments

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):

  1. Create a simple operator with a single parameter:
apiVersion: kudo.dev/v1beta1
parameters:
  - name: foo
    default: "bar"
  1. Install the operator.
  2. Make the parameter immutable:
apiVersion: kudo.dev/v1beta1
parameters:
  - name: foo
    default: "bar"
    immutable: true
  1. 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:

alembiewski avatar Mar 12 '21 14:03 alembiewski