-
Notifications
You must be signed in to change notification settings - Fork 6.6k
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
Fine grained OS packages installation #11131
Fine grained OS packages installation #11131
Conversation
Skipping CI for Draft Pull Request. |
/label tide-merge-method/merge |
@VannTen: The label(s) In response to this:
Instructions 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. |
/label tide/merge-method-merge
|
ddf1e52
to
ef1fee6
Compare
If anyone can provide insight on why |
ef1fee6
to
d8a54f9
Compare
openssl 1.1.1 is EOL since 12 September 2023, so just use the default version on tumbleweed like we do on other distributions.
Since the structure we're setting in place for installing packages has some complexity, add a JSON schema to avoid frustrating errors when modifying the informations (adding/removing packages install).
Adds infrastructure to install OS packages depending not only on OS (family, versions, etc) but on groups. All the informations related to a particular package should reside in the `pkgs` dictionnary, which takes inspiration from the `downloads` dictionary structure.
Uses the logic introduced in the previous patch to convert all kubernetes/preinstall/vars/* os specific files to the `pkgs` dictionary. Some niceties for devs: - always validate the `pkgs` variable to catch mistakes in CI. - ensure that `pkgs` is always sorted. This makes it easier to find the packages you're looking for.
The empty dict means that packages will always be installed on the host.
Some packages requirements depends on inventory variables (`kube_proxy_mode` in that case but it could apply to others). As the case seems pretty rare, instead of adding complexity to pkgs, we add an escape hatch to use jinja conditions. That should be revisited if we find ourselves shoehorning lots of logic in this later on.
d8a54f9
to
088b1b0
Compare
/cc @MrFreezeex @mzaian |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: mzaian, VannTen 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 |
What type of PR is this?
/kind design
What this PR does / why we need it:
Refactor the installation of OS packages to select them on two dimensions:
ansible_distribution
,ansible_os_family
, etc)This is similar to the structure used by
downloads
for the download role.Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
This is preparatory work for #10701
Best reviewed commit by commits.
Does this PR introduce a user-facing change?: