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

RFC: switch to using the full oraclelinux:8 base image for the Oracle Linux Developer images #2020

Merged
merged 7 commits into from Aug 30, 2021
Merged

RFC: switch to using the full oraclelinux:8 base image for the Oracle Linux Developer images #2020

merged 7 commits into from Aug 30, 2021

Conversation

Djelibeybi
Copy link
Member

This makes the developer images far more developer-friendly by including such useful tools as a module-aware dnf and more. Yes, the images jump in size, but then developer images are inherently larger because of their purpose.

Of particular importance is for folks to test the builds at https://github.com/Djelibeybi?tab=packages to make sure current functionality is unaffected, including any downstream CI/CD tooling that assumes the existence of microdnf.

crush-157
crush-157 previously approved these changes Jul 15, 2021
Copy link
Member

@crush-157 crush-157 left a comment

Choose a reason for hiding this comment

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

The 2.7-node image seems fine. I've hit an issue with compiling native gem extensions in the 2.7 image, but it's consistent with the current (official) image, so I'll look at this once we've fattened the images.

@Djelibeybi
Copy link
Member Author

I've hit an issue with compiling native gem extensions in the 2.7 image, but it's consistent with the current (official) image, so I'll look at this once we've fattened the images.

That would be great.

@AmedeeBulle
Copy link
Member

Can you clarify how you would like to transition to oraclelinux:8 beyond this RFC?

Is the plan to re-base all dev images on the compat image and as second step have the code owners move from microdnf to dnf and drop the dependency on compat?

For the migrated images (like your golan/latest) shouldn't we drop the module file?

@Djelibeybi
Copy link
Member Author

No, we have to maintain microdnf and the module files until at least the next Oracle Linux update is released, to give downstream consumers of the images time to update their tooling. My plan is actually to provide two updates cycles for this.

When the next update is released, my plan is to replace microdnf with a script that outputs a notice saying the image has changed and to switch to dnf before the next update is released, at which point microdnf will be removed from this image. Then the script will pause for 30 seconds. That pause should be sufficient for folks to notice their CI jobs are taking longer and to check the logs.

At the next update, we can finalise the switch by removing the module files and switching directly to the oraclelinux:8 base image.

@Djelibeybi
Copy link
Member Author

Once #2044 is merged and the oraclelinux8-compat:8-slim image is built, I will update this PR to use that image from Oracle's GHCR.

@Djelibeybi
Copy link
Member Author

@AmedeeBulle I would deeply appreciate it if you could fix the workflow breakage I caused. :)

@Djelibeybi Djelibeybi dismissed cjbj’s stale review August 18, 2021 23:53

Changes applied

@Djelibeybi
Copy link
Member Author

@AmedeeBulle @mark-au @totalamateurhour can I please get another review/approval from one of you? I'd like to merge this sooner rather than later.

This change modifies the base image used by the Oracle Linux 8
based images from the slim variant to the full variant for better
developer alignment, i.e. availability of the dnf tool.

An intermediate compat image is used to install microdnf so that
existing tooling for these images doesn't break.

Signed-off-by: Avi Miller <avi.miller@oracle.com>
Signed-off-by: Avi Miller <avi.miller@oracle.com>
Signed-off-by: Avi Miller <avi.miller@oracle.com>
But ensure that microdnf still works for users with existing
downstream automation.

Signed-off-by: Avi Miller <avi.miller@oracle.com>
cjbj
cjbj previously approved these changes Aug 19, 2021
Copy link
Member

@cjbj cjbj left a comment

Choose a reason for hiding this comment

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

I checked the two with DB drivers; they build and run fine.

  • Can/should you augment the slim note to say whether users should migrate from microdnf?
  • Technically you can remove the explicit install of oracle-instantclient-basic since that gets pulled in automatically. I'm in two minds about 'hiding' this, since the result is the same.
  • There is at least one changed file with only a 2020 copyright.

Signed-off-by: Avi Miller <avi.miller@oracle.com>
Signed-off-by: Avi Miller <avi.miller@oracle.com>
@Djelibeybi
Copy link
Member Author

Thanks @cjbj, I've pushed changes to the main README.md with a deprecation notice for microdnf and I've updated all the applicable copyright notices. I'm going to leave the explicit installation of oracle-instantclient-basic because there's no change in the result and it makes it more obvious that it's part of the image when only reviewing the source.

@Djelibeybi Djelibeybi requested a review from cjbj August 19, 2021 08:08
@Djelibeybi
Copy link
Member Author

@AmedeeBulle @totalamateurhour @mark-au it would be great to get another review, but I will be merging this change in regardless by the end of the week, because we need to stop using 8-slim.

Making this two distinct steps as an example of how modularity
works.

Signed-off-by: Avi Miller <avi.miller@oracle.com>
@Djelibeybi Djelibeybi merged commit 89080ab into oracle:main Aug 30, 2021
@Djelibeybi Djelibeybi deleted the fatten-the-dev-images branch August 30, 2021 22:51
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.

None yet

4 participants