Skip to content
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

infra container: replace pause with catatonit #12218

Merged
merged 3 commits into from
Nov 16, 2021

Conversation

vrothberg
Copy link
Member

Podman has been using catatonit for a number of years already.
Thanks to @giuseppe, catatonit is now able to run as a pause
process which allows us to replace the pause binary entirely.

[NO NEW TESTS NEEDED] since no functionality has been added.

Signed-off-by: Valentin Rothberg [email protected]

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 8, 2021
Copy link
Member

@Luap99 Luap99 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
We have to highlight this in the release notes to make sure catatonit is a hard dependency in all distros.

Copy link
Member

@giuseppe giuseppe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 8, 2021

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: giuseppe, vrothberg

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@vrothberg
Copy link
Member Author

Probably need to update the VMs and images to include catatonit 0.1.7. @cevich WDYT?

@rhatdan
Copy link
Member

rhatdan commented Nov 8, 2021

I updated fedora to use newer catatonit.

@cevich
Copy link
Member

cevich commented Nov 8, 2021

Roger, I'll add it to my list.

@vrothberg
Copy link
Member Author

Thanks, @cevich. I think we can also rerun hack/install_catatonit.sh on the images

@cevich
Copy link
Member

cevich commented Nov 8, 2021

I think we can also rerun hack/install_catatonit.sh on the images

Yep, that's exactly what we do. So I'll just bump it up in podman, and the images will cache it for us as I build them.

cevich added a commit to cevich/podman that referenced this pull request Nov 8, 2021
@vrothberg
Copy link
Member Author

@cevich do we need to change the images or shall we force-install catatonit?

@cevich
Copy link
Member

cevich commented Nov 9, 2021

do we need to change the images or shall we force-install catatonit?

Nope, no new images needed - they only cache catatonit based on podman main-branch. So forcing it (as my PR did) is sufficient. It'll just run a few seconds slower until new VM images pick up the change and cache it for us.

@vrothberg
Copy link
Member Author

do we need to change the images or shall we force-install catatonit?

Nope, no new images needed - they only cache catatonit based on podman main-branch. So forcing it (as my PR did) is sufficient. It'll just run a few seconds slower until new VM images pick up the change and cache it for us.

The script will only install catatonit if it's not already present on the host. Bumping the version will not automatically reinstall it if executed. Or am I missing something?

@cevich
Copy link
Member

cevich commented Nov 10, 2021

The script will only install catatonit if it's not already present on the host.

Oh crud, good catch! So we do need the new images then (I just started a build this morning). I believe I have all the testing-problems worked out for F35, but new ones could creep in at any moment 😞 So if that workflow ends up being "too slow" for this PR, I can work on adding a '--force' option to the installer script - since that will be more reliable than trying to do version-detection/conditional install.

@vrothberg
Copy link
Member Author

@cevich, thanks for confirming. I can do the --force here and once we have new images, we can drop that.

@cevich
Copy link
Member

cevich commented Nov 10, 2021

Another possibility is #12256 (freshly built yesterday) which could go in before the F35 update (assuming tests pass).

@vrothberg vrothberg force-pushed the pause-catatonit branch 2 times, most recently from 41fe528 to a0a2746 Compare November 10, 2021 16:11
@vrothberg
Copy link
Member Author

Added another commit to force-install catatonit ✔️

.cirrus.yml Outdated
@@ -93,6 +93,9 @@ ext_svc_check_task:
git reset --hard $CIRRUS_CHANGE_IN_REPO
fi
make install.tools
# FIXME: this is just a temporary workaround to force-install
# catatonit 0.17.0. Please remove once the images are updated.
./hack/install_catatonit.sh --force
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfect.

@edsantiago
Copy link
Member

@vrothberg test failures look real: I restarted both of them once (flake check) but both failed again, same way.

@TomSweeneyRedHat
Copy link
Member

LGTM
assuming the tests get happy

@vrothberg
Copy link
Member Author

It doesn't seem to install catatonit yet:

[+0002s] ./hack/install_catatonit.sh
[+0002s] skipping ... catatonit is already installed

@vrothberg
Copy link
Member Author

Trying an alternative via contrib/cirrus/setup_environment.sh

@vrothberg
Copy link
Member Author

APIv2 fail is legit. Fixed it already but I want to wait for e2e and system tests before pushing.

@cevich
Copy link
Member

cevich commented Nov 12, 2021

...confirmed, 0.1.7 is in the current VM images.

@rhatdan
Copy link
Member

rhatdan commented Nov 12, 2021

The spec file should be updated to require it.

@vrothberg
Copy link
Member Author

The spec file should be updated to require it.

We have a chicken-egg problem or is catatonit 0.17.0 already available in F3{3,4,5}?

@vrothberg
Copy link
Member Author

The spec file should be updated to require it.

Ah, already done in this PR. I will drop the force-install of catatonit now and hope VMs are good.

@rhatdan
Copy link
Member

rhatdan commented Nov 12, 2021

BTW F33 support should be dropped now.

@siretart
Copy link
Contributor

siretart commented Nov 12, 2021 via email

@vrothberg
Copy link
Member Author

@cevich, it doesn't seem to be in the Ubuntu 2110 images.

This reverts commit 9d2b8d2 since
catatonit's new pause functionality can replace the `pause` binary
entirely.

Signed-off-by: Valentin Rothberg <[email protected]>
Podman has been using catatonit for a number of years already.
Thanks to @giuseppe, catatonit is now able to run as a pause
process which allows us to replace the pause binary entirely.

Signed-off-by: Valentin Rothberg <[email protected]>
A temporary workaround until the CI images are updated.

Signed-off-by: Valentin Rothberg <[email protected]>
@vrothberg
Copy link
Member Author

Went back to force-installing to unblock the PR.

@vrothberg
Copy link
Member Author

@containers/podman-maintainers lets get this in

Comment on lines +26 to +27
# catatonit 0.17.0. Please remove once the images are updated.
./hack/install_catatonit.sh --force
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What will this mean for bodhi gating tests? I see catatonit-0.1.6-1 on f34 and f35. Will 0.17.0 be packaged for those, or will this podman version never exist for f34/f35?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's currently in testing for 34/35 -> https://bodhi.fedoraproject.org/updates/?search=catatonit

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ack, thanks. Guess I better go play with it & give it karma.

@edsantiago
Copy link
Member

I built this on f34 and f35. Tested using catatonit-0.1.6-1, tests fail. Then 0.1.7-1, tests pass. This is not an LGTM, I haven't done an actual code review; it's just a super-basic sanity check.

@cevich
Copy link
Member

cevich commented Nov 15, 2021

Went back to force-installing to unblock the PR.

Hmmm, pretty sure I remember grabbing a VM and checking it was there and --version said 0.1.7. I think I checked the F35 image only though.

$ podman run -it --rm quay.io/libpod/fedora_podman:c4955591916388352 /usr/libexec/catatonit/catatonit --version
tini version 0.1.7_catatonit
podman run -it --rm quay.io/libpod/ubuntu_podman:c4955591916388352
root@a94ec970614f:/var/tmp/go/src/github.com/containers/podman# type -p catatonit
/usr/bin/catatonit
root@a94ec970614f:/var/tmp/go/src/github.com/containers/podman# catatonit --version
tini version 0.1.5_catatonit

Aww nuts. I think in Ubuntu it must get installed from a package, then the hack script finds it and doesn't install the newer one. We don't mention the package by name during image build, so it must get pulled in by dependency 😢

@cevich
Copy link
Member

cevich commented Nov 15, 2021

Update: Yep, found it (repo). @lsm5 - something in kubik testing has a dependency on catatonit 0.1.5, could you update that and the package to 0.1.7?

@cevich
Copy link
Member

cevich commented Nov 15, 2021

@vrothberg a --force install from the script (to /usr/libexec/...) could be dangerous given the packaged version is installed in /usr/bin/. That means the tests or whatever is running in the VM is a $PATH sequence|presence away from using the wrong binary 😞

Let's see if @lsm5 can turn around a package update quickly, then I can rebuild the VM images (doing it for 'main' branch should be mostly painless).

@edsantiago
Copy link
Member

/lgtm
/hold

I'm totally OK with this approach, just to get this PR in and give it testing time. There are plenty of update-the-VMs PRs in flight and upcoming, we can remove the install-catatonit hack soon.

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Nov 16, 2021
@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Nov 16, 2021
@rhatdan
Copy link
Member

rhatdan commented Nov 16, 2021

/hold cancel

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Nov 16, 2021
@openshift-merge-robot openshift-merge-robot merged commit 197ebe8 into containers:main Nov 16, 2021
@vrothberg vrothberg deleted the pause-catatonit branch November 17, 2021 07:21
@github-actions github-actions bot added the locked - please file new issue/PR Assist humans wanting to comment on an old issue or PR with locked comments. label Sep 22, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 22, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. locked - please file new issue/PR Assist humans wanting to comment on an old issue or PR with locked comments.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants