Replace gogoprotobuf with golang protobuf
Description
This change replaces gogoprotobuf with golang protobuf for Calico components. Gogoprotobuf is deprecated since Oct 2022 and is not updated. Replacing gogoprotobuf with golang protobuf can bring in new protobuf features/fixes and reduce outdated package dependencies.
To work with golang protobuf, we need (1) a calico/go-build change to include protoc in the toolchain image and (2) workaround an issue that protobuf generated types are not comparable.
Related issues/PRs
Require https://github.com/projectcalico/go-build/pull/574 to be merged and pick to release branches first.
Todos
- [ ] Tests
- [ ] Documentation
- [ ] Release note
Release Note
TBD
Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.
-
docs-pr-required: This change requires a change to the documentation that has not been completed yet. -
docs-completed: This change has all necessary documentation completed. -
docs-not-required: This change has no user-facing impact and requires no docs.
Every PR needs one release-note-* label.
-
release-note-required: This PR has user-facing changes. Most PRs should have this label. -
release-note-not-required: This PR has no user-facing changes.
Other optional labels:
-
cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only. -
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.
/sem-approve
/sem-approve
/sem-approve