[release/1.7] Update hcsshim tag to v0.10.0#8903
[release/1.7] Update hcsshim tag to v0.10.0#8903kiashok wants to merge 3 commits intocontainerd:release/1.7from
Conversation
|
Hi @kiashok. Thanks for your PR. I'm waiting for a containerd member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
80f49c1 to
794cb6d
Compare
|
Looks like this is a backport of #8811, correct? Are there specific fixes in this update in the vendored code? microsoft/hcsshim@v0.10.0-rc.8...v0.10.0-rc.9 I'm curious if we're still updating vendoring for the binary (
If we're updating for the binary, we should really look if we can change the build-scripts to use a separate file (as we did for |
794cb6d to
9da2882
Compare
No, I am updating the shim tag to primarily get this change - microsoft/hcsshim#1821 cc @helsaawy |
|
Arf... right, so we need to bring in 26K lines of dependencies, to get a ~10 line fix 😞 😭 |
|
I recall there was some work being done on moving that package (microsoft/go-winio#279) But I wonder if instead, it would make sense to make it its own module (adding a |
|
It looks like a lot of unnecessary dependencies are being updated to support this shim update. Some of them are Linux only. I am curious why this is needed? EDIT: It was explained that hcsshim does do stuff with Linux. |
I did move For the other ones, it looks like its a case of hcsshim and other
Our experience with multiple modules in a repo (ie, |
Ah, thanks! It looks like that commit is not yet in a tagged version (but GitHub sometimes doesn't show that properly) (microsoft/hcsshim@b02ce5b). We can try a draft PR against main to see if that works as expected.
Yes, containerd (through plugins) depending on itself is, erm... not great, and also gonna be a fun challenge to move to "v2" (see #8478 for a "fun" try to see what would happen).
Yes, they are a pain. In my experience, they "work" (somewhat) only if your repository is just a "collection of modules" with no inter-dependencies between them. For example, for https://github.com/moby/sys, it works "reasonably", but even there there's at least 1 dependency between modules in that repo, and it's very (VERY) confusing to work with, because the code in your current branch is NOT the code that you're actually using. For As to hcsshim and vendoring (same applies to containerd, which also has a lot of issues w.r.t. modules); vendoring is generally for binaries (keep the source you're building from) for hcsshim, that could mean only maintaining a vendor directory for the |
|
f.w.i.w, we are working on removing the need for
I was hoping workspaces would solve that problem, but that still requires running looking around, the otel repo has several dozen |
draft PR: #8911 |
|
@helsaawy should we look at making Dependabot only auto-update to patch versions? I think we mostly just care about ensuring we are continuously getting bug fixes, and could take feature updates as-needed. There might be a concern here with ensuring we stay on a minor version number for dependencies that is still getting bug fixes, though. |
Yup, I was planning on keeping up to date with patches, but manually skipping updates if they don't affect us, so that it reduces the amount of (indirect) dependency updates containerd sees when they use a newer version of hcsshim |
9da2882 to
909d03a
Compare
909d03a to
b8dee7d
Compare
@MikeZappa87 @thaJeztah could you please check if the current changes look ok? Updating hcsshim to v0.10.0 tag which brings in containerd/1.7 to hcsshim. |
68cccd0 to
ca300f6
Compare
Looks like the PR on main is failing; do we know why? I'd prefer to have changes to main first before including them into release branches where possible |
it was just a rough draft Hamza had - go.mod in integration/client was not updated and since v1.10.0 is updating containerd in hcsshim to 1.7 so has a bunch of protobuf dependency references that need to be updated that you can see in the last two commits of this PR. I can submit a PR to do the same for containerd/main as well. But that shouldn't block updating hcsshim tag on release/1.7? |
ca300f6 to
6cf36e1
Compare
|
@estesp could you please restart the failed test runs? The same test passes in Linux integration test suites on v2 runc and the failure seems to be unrelated to the changes being made. |
@MikeZappa87 updated the PR to reflect changes. Could you please take a look? |
Signed-off-by: Kirtana Ashok <kiashok@microsoft.com>
Signed-off-by: Kirtana Ashok <kiashok@microsoft.com>
Signed-off-by: Kirtana Ashok <kiashok@microsoft.com>
6cf36e1 to
158af22
Compare
Hi @thaJeztah could you take a look when you have some time? The PR to update the hcsshim tag to v0.10.0 was merged into main and all the tests are passing here as well. |
cpuguy83
left a comment
There was a problem hiding this comment.
I really don't like how much of our dependencies are being bumped here.
I would definitely prefer a much more surgical change for a backport.
What really stands out is the grpc and protobuf updates, which have been problematic in the past.
I'm hesitant to bring all these unrelated changes into a well established release.
hcsshim tag v0.10.0 is switching to containerd/1.7 from containerd/1.6 so the grpc/protobuf updates are necessary. Should we force prevent grpc and protobuf version from being updated to what hcsshim is using in this PR to reduce the changes? @dmcgowan any thoughts? |
|
Update: Discussed the concerns being brought up here with @kevpar. @helsaawy did make some great changes in v0.10.0 to reduce the dependencies like mo microsoft/hcsshim@619018c that greatly helped to reduce the churn from v0.10.0-rc.9 . But since v0.10.0 also has the changes to move hcsshim to containerd/1.7, it is bringing in grpc and protobuf changes. |
|
Tried to update hcsshim by cherry-picking @helsaawy's go modules related changes to reduce dependencies on top of v0.10.0.rc-8 (which is the current tag of hcsshim on release/1.7 branch). vendoring that into a branch of containerd/1.7 and created a draft PR of it here - #8976. cc @kevpar |
Ping on this :) @thaJeztah @MikeZappa87 @cpuguy83 |
|
Seems even the draft change still bumps grpc and protobuf. I think the only way to avoid that would be downgrading in hcsshim and making a new tag. I'm alright with this change given we have a rigorous CI but ideally we put in some effort to try and figure out a better story for hcsshim. Something that doesn't require vendoring and is more towards the runc model like @thaJeztah mentioned. We maintain a file that just has a version string in it that we bump, and that's the source we'll pull and include in release builds. |
the draft PR was made checking out a branch at the exisiting hcsshm tag on containerd/1.7 + changes to the test directory as suggested by @thaJeztah early on in this PR. I'll try to see where this grpc and protobuf update is coming from. cc @helsaawy for awareness |
Looks like those updates were from this PR; Which was a combination of various depenabot updates bundled |
The draft PR I linked does not have those changes included in them - its is v0.0.10.rc-8 which is the current hcsshim tag + some changes to remove dependencies in hcsshim/test etc |
Currently working on checking out a branch at hcsshim tag v0.10.0-rc.8 (which is the current tag that containerd/1.7 is using) and cherry picking the stable ABI commit that is needed + cutting a tag. Will use this tag to unblock this PR. Please let me know if this sounds good. |
|
Superseded by #9063 |




Update hcsshim tag to v0.10.0 + go mod tidy/vendor and update dependencies after updating protobuf in hcsshim