Description of problem: The automated In-Place upgrade playbook is failing while migrating the servicebindig Version-Release number of the following components: # rpm -qa openshift-ansible openshift-ansible-3.9.14-1.git.3.c62bc34.el7.noarch Run the Automated In-Place Upgrade Playbook. # ansible-playbook -i </path/to/inventory/file> /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_9/upgrade.yml -vvv Failed with error: <os-master1.example.com> (0, '\r\n{"changed": true, "end": "2018-04-06 13:04:08.719025", "stdout": "E0406 13:03:59.282720 error: -n portal-dev servicebindings/eap64-basic-s2i-qnh9f-7tb2z: ServiceBinding.servicecatalog.k8s.io \\"eap64-basic-s2i-qnh9f-7tb2z\\" is invalid: status.unbindStatus: Unsupported value: \\"\\": supported values: \\"NotRequired\\", \\"Required\\", \\"Succeeded\\", \\"Failed\\"\\nsummary: total=4994 errors=1 ignored=0 unchanged=4992 migrated=1\\ninfo: to rerun only failing resources, add --include=servicebindings\\nerror: 1 resources failed to migrate", "cmd": ["oc", "adm", "--config=/etc/origin/master/admin.kubeconfig", "migrate", "storage", "--include=*", "--confirm"], "failed": true, "delta": "0:01:52.488851", "stderr": "", "rc": 1, "invocation": {"module_args": {"warn": true, "executable": null, "_uses_shell": false, "_raw_params": "oc adm --config=/etc/origin/master/admin.kubeconfig migrate storage --include=* --confirm", "removes": null, "creates": null, "chdir": null, "stdin": null}}, "start": "2018-04-06 13:02:16.230174", "msg": "non-zero return code"}\r\n', 'Shared connection to os-master1.example.com closed.\r\n') fatal: [os-master1.example.com]: FAILED! => { "changed": true, "cmd": [ "oc", "adm", "--config=/etc/origin/master/admin.kubeconfig", "migrate", "storage", "--include=*", "--confirm" ], "delta": "0:01:52.488851", "end": "2018-04-06 13:04:08.719025", "failed_when_result": true, "invocation": { "module_args": { "_raw_params": "oc adm --config=/etc/origin/master/admin.kubeconfig migrate storage --include=* --confirm", "_uses_shell": false, "chdir": null, "creates": null, "executable": null, "removes": null, "stdin": null, "warn": true } }, "msg": "non-zero return code", "rc": 1, "start": "2018-04-06 13:02:16.230174", "stderr": "", "stderr_lines": [], "stdout": "E0406 13:03:59.282720 error: -n portal-dev servicebindings/eap64-basic-s2i-qnh9f-7tb2z: ServiceBinding.servicecatalog.k8s.io \"eap64-basic-s2i-qnh9f-7tb2z\" is invalid: status.unbindStatus: Unsupported value: \"\": supported values: \"NotRequired\", \"Required\", \"Succeeded\", \"Failed\"\nsummary: total=4994 errors=1 ignored=0 unchanged=4992 migrated=1\ninfo: to rerun only failing resources, add --include=servicebindings\nerror: 1 resources failed to migrate", "stdout_lines": [ "E0406 13:03:59.282720 error: -n portal-dev servicebindings/eap64-basic-s2i-qnh9f-7tb2z: ServiceBinding.servicecatalog.k8s.io \"eap64-basic-s2i-qnh9f-7tb2z\" is invalid: status.unbindStatus: Unsupported value: \"\": supported values: \"NotRequired\", \"Required\", \"Succeeded\", \"Failed\"", "summary: total=4994 errors=1 ignored=0 unchanged=4992 migrated=1", "info: to rerun only failing resources, add --include=servicebindings", "error: 1 resources failed to migrate" ] } to retry, use: --limit @/usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_9/upgrade.retry When manually ran the command: :>oc adm migrate storage --include=* --confirm E0404 18:53:15.075747 error: -n portal-dev servicebindings/eap64-basic-s2i-qnh9f-7tb2z: ServiceBinding.servicecatalog.k8s.io "eap64-basic-s2i-qnh9f-7tb2z" is invalid: st atus.unbindStatus: Unsupported value: "": supported values: "Succeeded", "Failed", "NotRequired", "Required" summary: total=5001 errors=1 ignored=0 unchanged=4998 migrated=2 info: to rerun only failing resources, add --include=servicebindings error: 1 resources failed to migrate Actual results: Please include the entire output from the last TASK line through the end of output if an error is generated Expected results: Then upgrade should be successfull.
It looks like this is happening because there was a validation added for this field, but no default for resources where it is unset.
Upstream PR that introduced this bug: https://github.com/kubernetes-incubator/service-catalog/pull/1544 I think we need to: - Relax the validation on update - Add a conversion that sets the field value to the right value (NotRequired) if it is unset
Created an issue for this upstream: https://github.com/kubernetes-incubator/service-catalog/issues/1960
Sudarshan, For this scenario, you can delete the `finalizers` field of the `servicebindings` first and have a try. For example: #oc edit servicebinding rh-postgresql-apb-xcrd4-f6vgc (PS: delete the below two lines.) finalizers: - kubernetes-incubator/service-catalog
Thanks for the update, I will try this and will get back to you.
Upstream PR: https://github.com/kubernetes-incubator/service-catalog/pull/1972
The upstream PR in comment 10 was merged upstream in 0.1.17 and is already available in openshift for 3.10.
@Jeff Ok, I see, thank you for your clarification!
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2018:1816