-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
'genproto' workaround blocks Google Cloud imports #1212
Comments
@yoheiueda ptal |
I don't have a quick answer to this problem... We could work around the issue, if golang could allow coexistance of multiple module versions in a single binary, but I guess it is not allowed in the go module system. https://go.dev/ref/mod#minimal-version-selection The best solution is to eliminate the dependency in the Kata Containers. I removed the replace line from Kata's go.mod file, and I was able to build the kata shim.
I haven't tested its functionality yet. If we can confirm that peer pods work with the modified kata shim, we can raise a PR to Kata Containers. |
The protobuf API for agent protocol defined in Kata is referenced in Cloud API Adaptor, so I think removing dependency to Kata is difficult for now. cloud-api-adaptor/pkg/adaptor/server.go Line 16 in 1cd66fe
|
How do you normally test these changes? I assume Kata has an automatic e2e testing environment? Did all the unit-tests pass? Were you able to build a new podvm image and run "confidential-containers" e2e tests against it? |
I didn't tested the functionality when I posted my previous comment. I just tested the updated go.mod using cloud-api-adaptor, and got the the following error.
I think Kata needs to migrate to the google/protobuf from gogo/protobuf, since goto/protobuf has been deprecated. gogo/protobuf is widely used in Kata, so replacing all of them will require some work... |
Thanks for testing, @yoheiueda. |
@cfircohen That would be great. I am trying to update the protobuf code in Kata Containers, but haven't succeeded yet. I am currently facing this issue containerd/containerd#8850. |
To fix this issue, I believe we need to remove the dependency to gogo in Kata. I raised an issue about it kata-containers/kata-containers#7420. I think we need some volunteers to fix the issue in Kata, since it is complicated, and needs knowledge of both Kata and protobuf. If fixing the issue in Kata needs some time, we may need to develop some work around in the cloud-api-adaptor side. @bpradipt @stevenhorsman @littlejawa any comments? |
Hi @yoheiueda and @cfircohen , sorry for the late reply here. Just to give an update: we are working to remove gogoprotobuff from Kata and make this move as soon as possible. It is a high-priority for us right now. In meanwhile I will check with others if workarounds are possible here. |
genproto workaround is not in place since #1754. Closing this. |
Hello, I'm adding Peer-pod support on GCP, see https://github.com/cfircohen/cloud-api-adaptor/tree/peerpod_gcp/gcp.
I'm currently blocked by issue 62 ("panic: protobuf tag not enough fields in Status.state") which has a workaround that replaces
genproto
with an older 2020 version. Workaround was removed in issue 175 ("go.mod contains unnecesary replace directive") and reintroduced in issue 180 ("Removal of the TTRPC workaround causes panic").Google cloud GO SDK (
cloud.google.com/go/compute
) requires the latestgenproto
package: the older 2020 version doesn't have the necessary bindings, and downgrading GCP client SDK also doesn't work due to missing packages in the old 2020genproto
.Please advise how to proceed.
The text was updated successfully, but these errors were encountered: