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

Update payloads to using the ubuntu base image #180

Conversation

fidencio
Copy link
Member


enclave-cc: Fix preInstall image tag / hostPath / mountPath

We've updated the preInstall image to use Ubuntu 20.04 instead of
CentOS, but we didn't fully reflect the changes for Enclave CC.


payloads: Update to an image using ubuntu as base

Both Enclave CC and Kata Containers have switched to using a base image
for their payloads, and we should make sure it works on our side.

As part of the change, we need to update the hostPath / mountPath to
reflect what's needed in order to be able to call systemctl restart ... using the new Ubuntu base image.


@fidencio
Copy link
Member Author

/test

@fidencio fidencio force-pushed the topic/update-kata-payload-image-to-using-ubuntu-as-base branch from 12208e8 to b3a6dbd Compare March 14, 2023 14:41
@fidencio
Copy link
Member Author

/test

@wainersm
Copy link
Member

The SEV job failed because it hit pull limit to docker.io:

13:28:22 TASK [Start a docker registry] *************************************************
13:28:24 fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error pulling docker.io/library/registry - code: None message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: [https://www.docker.com/increase-rate-limit"}](https://www.docker.com/increase-rate-limit%22%7D)

Have you seen that problem often, @ryansavino , @UnmeshDeodhar ?

Copy link
Member

@wainersm wainersm left a comment

Choose a reason for hiding this comment

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

LGTM. IIUC it is going to fix the operator that got problem by changes on kata-deploy (http://jenkins.katacontainers.io/blue/organizations/jenkins/confidential-containers-ci/detail/confidential-containers-ci/16/pipeline)

@fidencio
Copy link
Member Author

LGTM. IIUC it is going to fix the operator that got problem by changes on kata-deploy (http://jenkins.katacontainers.io/blue/organizations/jenkins/confidential-containers-ci/detail/confidential-containers-ci/16/pipeline)

Yep, thanks @wainersm! I still need to figure out why the enclave-cc test is not passing though.

@ryansavino
Copy link
Member

The SEV job failed because it hit pull limit to docker.io:

13:28:22 TASK [Start a docker registry] *************************************************
13:28:24 fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error pulling docker.io/library/registry - code: None message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: [https://www.docker.com/increase-rate-limit"}](https://www.docker.com/increase-rate-limit%22%7D)

Have you seen that problem often, @ryansavino , @UnmeshDeodhar ?

I've retriggered the sev job. Looks like the docker hub rate limit affects the operator ci. Maybe we should consider pulling from GHCR or quay?

@wainersm
Copy link
Member

The SEV job failed because it hit pull limit to docker.io:

13:28:22 TASK [Start a docker registry] *************************************************
13:28:24 fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error pulling docker.io/library/registry - code: None message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: [https://www.docker.com/increase-rate-limit"}](https://www.docker.com/increase-rate-limit%22%7D)

Have you seen that problem often, @ryansavino , @UnmeshDeodhar ?

I've retriggered the sev job. Looks like the docker hub rate limit affects the operator ci. Maybe we should consider pulling from GHCR or quay?

I've opened an issue to track that issue: tests/e2e: hitting docker.io/library/registry pull rate limit and @UnmeshDeodhar will be working on a fix.

@mythi
Copy link
Contributor

mythi commented Mar 20, 2023

I debugged the enclave-cc failure and my conclusion is it will not work: kind nodes don't have dbus running so all systemctl commands are failing. Not sure why it worked with CentOS 7. It's using systemd-219 which is from 2015 so it could be systemctl was just very different then?

I managed to test a workaround but it has implications: when running without dbus, the pods deployed by the operator could run with hostPID: true to get access to PID 1. After that, SYSTEMD_IGNORE_CHROOT=1 systemctl works.

One observation while debugging this was that we restart systemd twice. I believe pre/post-install daemon could run unprivileged if it just copied containerd...

@fidencio
Copy link
Member Author

I debugged the enclave-cc failure and my conclusion is it will not work: kind nodes don't have dbus running so all systemctl commands are failing. Not sure why it worked with CentOS 7. It's using systemd-219 which is from 2015 so it could be systemctl was just very different then?

I managed to test a workaround but it has implications: when running without dbus, the pods deployed by the operator could run with hostPID: true to get access to PID 1. After that, SYSTEMD_IGNORE_CHROOT=1 systemctl works.

One observation while debugging this was that we restart systemd twice. I believe pre/post-install daemon could run unprivileged if it just copied containerd...

Hmm. This ia bad, sincerely bad.

@mythi
Copy link
Contributor

mythi commented Mar 20, 2023

@fidencio I could try to ask kind to add dbus and explain our use-case (install custom runtimehandlers)

@fidencio
Copy link
Member Author

/test

@fidencio fidencio force-pushed the topic/update-kata-payload-image-to-using-ubuntu-as-base branch from 79e4252 to dc8d03d Compare March 27, 2023 08:53
@fidencio
Copy link
Member Author

/test

@stevenhorsman
Copy link
Member

The TDX failures are do to a pre-existing error: kata-containers/kata-containers#6529

Copy link
Member

@stevenhorsman stevenhorsman left a comment

Choose a reason for hiding this comment

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

A couple of questions about versions

newName: quay.io/confidential-containers/runtime-payload
newTag: kata-containers-129e43d1ea5cca528b7b97234b7561219208a244-x86_64
newName: quay.io/confidential-containers/runtime-payload-ci
newTag: kata-containers-c9d6b46ea0923672a89e85a01e0d380249e3993f-x86_64
Copy link
Member

Choose a reason for hiding this comment

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

The runtime-payload tags are 13 and 14 days old now. Can we bump this to the latest and re-run the tests, or do you want to do that as a separate PR?

Copy link
Member Author

Choose a reason for hiding this comment

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

Hmmm. I'd prefer having this one merged and unblock possible work, but I'm fine on waiting a little bit on that and actually have the TDX fix merged on Kata Containers first.

Copy link
Member

Choose a reason for hiding this comment

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

That works fine for me - as long as we have it on the list to update this soon :)

@fidencio fidencio force-pushed the topic/update-kata-payload-image-to-using-ubuntu-as-base branch from dc8d03d to 3d418f4 Compare March 27, 2023 19:13
@fidencio
Copy link
Member Author

/test

We've updated the preInstall image to use Ubuntu 20.04 instead of
CentOS, but we didn't fully reflect the changes for Enclave CC.

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
@fidencio fidencio force-pushed the topic/update-kata-payload-image-to-using-ubuntu-as-base branch from 3d418f4 to a61ba8f Compare March 28, 2023 08:41
@fidencio
Copy link
Member Author

/test

fidencio and others added 2 commits March 28, 2023 11:23
Both Enclave CC and Kata Containers have switched to using a base image
for their payloads, and we should make sure it works on our side.

As part of the change, we need to update the hostPath / mountPath to
reflect what's needed in order to be able to call `systemctl restart
...` using the new Ubuntu base image.

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
@fidencio fidencio force-pushed the topic/update-kata-payload-image-to-using-ubuntu-as-base branch from a61ba8f to c0d0080 Compare March 28, 2023 09:23
@fidencio
Copy link
Member Author

/test

Copy link
Member

@stevenhorsman stevenhorsman left a comment

Choose a reason for hiding this comment

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

Thanks for bumping the runtime payload versions. Assuming the tests are passing, LGTM!

@fidencio fidencio merged commit 973a9f9 into confidential-containers:main Mar 28, 2023
stevenhorsman added a commit to stevenhorsman/cloud-api-adaptor that referenced this pull request May 5, 2023
- The upstream runtime-payload is based on ubuntu now,
so we need to update systemd and dbus paths to be
compatible
- See confidential-containers/operator#180

Fixes: confidential-containers#869
Signed-off-by: stevenhorsman <steven@uk.ibm.com>
bpradipt pushed a commit to confidential-containers/cloud-api-adaptor that referenced this pull request May 8, 2023
- The upstream runtime-payload is based on ubuntu now,
so we need to update systemd and dbus paths to be
compatible
- See confidential-containers/operator#180

Fixes: #869
Signed-off-by: stevenhorsman <steven@uk.ibm.com>
bpradipt pushed a commit to bpradipt/cloud-api-adaptor that referenced this pull request Aug 12, 2023
- The upstream runtime-payload is based on ubuntu now,
so we need to update systemd and dbus paths to be
compatible
- See confidential-containers/operator#180

Fixes: confidential-containers#869
Signed-off-by: stevenhorsman <steven@uk.ibm.com>
wainersm pushed a commit to wainersm/cc-cloud-api-adaptor that referenced this pull request Sep 5, 2023
- The upstream runtime-payload is based on ubuntu now,
so we need to update systemd and dbus paths to be
compatible
- See confidential-containers/operator#180

Fixes: confidential-containers#869
Signed-off-by: stevenhorsman <steven@uk.ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants