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

Centos/RHEL8 support #2164

Closed
6 tasks done
thomasdanan opened this issue Dec 26, 2019 · 0 comments · Fixed by #2997
Closed
6 tasks done

Centos/RHEL8 support #2164

thomasdanan opened this issue Dec 26, 2019 · 0 comments · Fixed by #2997
Assignees
Labels
kind:epic High-level description of a feature iteration topic:deployment Bugs in or enhancements to deployment stages

Comments

@thomasdanan
Copy link
Contributor

thomasdanan commented Dec 26, 2019

Component:

'all'

Why this is needed:

Since centos/RHEL 8 is out since few months now, some users will want to deploy MetalK8s on it.

What should be done:

  • Adapt Vagrantfile to be able to deploy CentOS / RHEL 8 VMs
  • Adapt buildchain to download and build packages for CentOS 8
  • Ensure installation / upgrade / downgrade work well
  • Add tests in CI
  • Update documentation if needs be
  • Update CHANGELOG

Implementation proposal (strongly recommended):

Test plan:

@thomasdanan thomasdanan added topic:deployment Bugs in or enhancements to deployment stages moonshot kind:epic High-level description of a feature iteration labels Dec 26, 2019
@alexandre-allard alexandre-allard self-assigned this Nov 16, 2020
alexandre-allard added a commit that referenced this issue Dec 21, 2020
Create a tree under packages/redhat to handle
multiple releases.
Adapt paths in the buildchain to the new scheme.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
Create a tree under `packages/debian` to handle
multiple releases.
Adapt paths in the buildchain to the new scheme.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
Depending on the Linux distribution and release
we could need to install different packages.
Here we have 2 different package names for python3.6
for RedHat/CentOS 7 and 8.
We define a "common packages" variable and one per
dist + version couple, then we compute the variable
name based on the information retrieved.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
Since we now support multiple release, we need
to append the release in the path to retrieve
the right repository.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
It looks like on CentOS 8, repoquery returns some
SRPMs when looking for a package dependency.
So, let's filter them out since we don't care about
these.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
btrfs is no longer supported on RHEL 8 and
since we do not use it, we now build containerd
without it.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
Since we now have migrated from Python 2 to 3 and
RHEL 8 does not ship Python 2, we build this
package for Python 3 instead of 2.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
This is the definition to build the container
image used to download and build MetalK8s packages
and dependencies for RHEL 8.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
The purpose of this builder is to download
and build RHEL 8 packages.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
Download and build packages for CentOS 8

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
In RHEL 8, the package name in repoquery command
is no longer a positional argument, but the
argument of the `--whatrequires` option, so we
need to move this option right after the package
name.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
alexandre-allard added a commit that referenced this issue Dec 21, 2020
Create a tree under packages/redhat to handle
multiple releases.
Adapt paths in the buildchain to the new scheme.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
Create a tree under `packages/debian` to handle
multiple releases.
Adapt paths in the buildchain to the new scheme.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
Depending on the Linux distribution and release
we could need to install different packages.
Here we have 2 different package names for python3.6
for RedHat/CentOS 7 and 8.
We define a "common packages" variable and one per
dist + version couple, then we compute the variable
name based on the information retrieved.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
Since we now support multiple release, we need
to append the release in the path to retrieve
the right repository.

Refs: #2164
alexandre-allard added a commit that referenced this issue Dec 21, 2020
It looks like on CentOS 8, repoquery returns some
SRPMs when looking for a package dependency.
So, let's filter them out since we don't care about
these.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
Since we now support multiple release, we need
to append the release in the path to retrieve
the right repository.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
It looks like on CentOS 8, repoquery returns some
SRPMs when looking for a package dependency.
So, let's filter them out since we don't care about
these.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
btrfs is no longer supported on RHEL 8, so we
disable btrfs support for containerd on RHEL 8.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
Since RHEL 8 does not ship Python 2, we build
this package for Python 3 instead 2.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
This is the definition to build the container
image used to download and build MetalK8s packages
and dependencies for RHEL 8.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
The purpose of this builder is to download
and build RHEL 8 packages.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
Download and build packages for CentOS 8

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
In RHEL 8, the package name in repoquery command
is no longer a positional argument, but the
argument of the `--whatrequires` option, so we
need to move this option right after the package
name.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
On CentOS/RHEL 8, ensure Python3 is installed
prior to do anything else.
This is needed because there is no Python installed
otherwise and we need it for some scripts
(e.g. to check packages presence, before proceeding
to bootstrap)

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
alexandre-allard added a commit that referenced this issue Jan 15, 2021
We need this option on RHEL 8, otherwise we end
up with RHSM information polluting stdout which
then breaks the module waiting for a specific
output format `<package-name> <version>`.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
Since we now support RHEL 8, we want to test it
in pre-merge on a single-node instead of RHEL 7.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
alexandre-allard added a commit that referenced this issue Jan 15, 2021
Create a tree under packages/redhat to handle
multiple releases.
Adapt paths in the buildchain to the new scheme.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
Create a tree under `packages/debian` to handle
multiple releases.
Adapt paths in the buildchain to the new scheme.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
Since we now support multiple release, we need
to append the release in the path to retrieve
the right repository.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
It looks like on CentOS 8, repoquery returns some
SRPMs when looking for a package dependency.
So, let's filter them out since we don't care about
these.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
btrfs is no longer supported on RHEL 8, so we
disable btrfs support for containerd on RHEL 8.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
Since RHEL 8 does not ship Python 2, we build
this package for Python 3 instead 2.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
This is the definition to build the container
image used to download and build MetalK8s packages
and dependencies for RHEL 8.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
The purpose of this builder is to download
and build RHEL 8 packages.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
Download and build packages for CentOS 8

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
In RHEL 8, the package name in repoquery command
is no longer a positional argument, but the
argument of the `--whatrequires` option, so we
need to move this option right after the package
name.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
On CentOS/RHEL 8, ensure Python3 is installed
prior to do anything else.
This is needed because there is no Python installed
otherwise and we need it for some scripts
(e.g. to check packages presence, before proceeding
to bootstrap)

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
alexandre-allard added a commit that referenced this issue Jan 15, 2021
We need this option on RHEL 8, otherwise we end
up with RHSM information polluting stdout which
then breaks the module waiting for a specific
output format `<package-name> <version>`.

Refs: #2164
alexandre-allard added a commit that referenced this issue Jan 15, 2021
Since we now support RHEL 8, we want to test it
in pre-merge on a single-node instead of RHEL 7.

Refs: #2164
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:epic High-level description of a feature iteration topic:deployment Bugs in or enhancements to deployment stages
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants