kubernetes-csi/external-provisioner

Resolve conflicts with github.com/google/cel-go update

msau42 opened this issue · 8 comments

What happened:
We excluded cel-go from dependabot updates until we can resolve the merge conflicts

#1048

What you expected to happen:
After cel-go is updated, we may need to reenable dependabot with the unignore command.

How to reproduce it:

Anything else we need to know?:

Environment:

  • Driver version:
  • Kubernetes version (use kubectl version):
  • OS (e.g. from /etc/os-release):
  • Kernel (e.g. uname -a):
  • Install tools:
  • Others:

I investigated the merge conflicts.

The issue is incompatibility between cel-go 0.16.x and cel-go 0.18.x (really 0.17+). cel-go is also a dependency of k8s.io/apiserver, but at version 0.16

Vendor doesn't differentiate between unstable (<1.0) and stable (>1.0) versions for semver, and treats all minors of the same major as being compatible, meaning we can't have two incompatible 0.x dependencies in the same project. When we try to update external-provisioner's cel-go to 0.18, it forces all libraries with cel-go 0.x.x dependency to use the updated version. However, k8s.io/apiserver relies on types in 0.16 that were changed in 0.17.

We'll have to wait until k8s.io releases library versions with cel-go 0.17+ before we can update the external-provisioner's dependency.