UBI: Convert to using ubi-micro as basis of final service containers
What does this MR do?
Bring in the changes from https://gitlab.com/gitlab-org/cloud-native/distroless/ubi, as part of Convert all GitLab Application Images (CNG) to ... (gitlab-org/cloud-native/distroless&4 - closed)
Implement ubi-micro
as the basis for final service containers. This is done by refactoring the final image Dockerfiles to futher multi-stage patterns, and building out the final rootfs state via the --install-root
functionality of microdnf
. This does complicate the systems overall, but effectively we are using a chroot across stages in order to act upon the ubi-micro
basis without having the tooling within the image.
This change requires the shift to the containerd-snapshotter, which has already been enabled within this repo.
I expect that we'll want to squash, or at least compress the commit histories as a means of improving the commit contents.
Related issues
Related to gitlab-org/cloud-native/distroless&4 (closed)
Closes gitlab-org/cloud-native/distroless/ubi#62 (closed)
Checklist
See Definition of done.
For anything in this list which will not be completed, please provide a reason in the MR discussion
Required
-
Merge Request Title, and Description are up to date, accurate, and descriptive -
MR targeting the appropriate branch -
MR has a green pipeline on GitLab.com -
When ready for review, MR is labeled "~workflow::ready for review" per the Distribution MR workflow
Expected (please provide an explanation if not completing)
-
Test plan indicating conditions for success has been posted and passes -
Documentation created/updated -
Integration tests added to GitLab QA -
The impact any change in container size has should be evaluated -- See Convert all GitLab Application Images (CNG) to ... (gitlab-org/cloud-native/distroless&4 - closed) -
New dependencies are managed with dependencies.io