Commit graph

5262 commits

Author SHA1 Message Date
Achilleas Koutsou
318fdf5ffd distro/rhel7: add osCustomizations() and liveImage()
Copied osCustomizations() and liveImage() functions from RHEL 8 and remove
unneeded customizations and options.
2023-01-25 20:37:12 +01:00
Achilleas Koutsou
b5795d18b2 distro/rhel7: update imageType implementation
Add environment, compression, and image fields and define the imageFunc
function type.
2023-01-25 20:37:12 +01:00
Achilleas Koutsou
cef5f3d3bd runner: add platform-python only for RHEL 8+
No platform-python for RHEL 7.
2023-01-25 20:37:12 +01:00
Achilleas Koutsou
c12f2c61e2 distro/rhel7: and add platforms to image types 2023-01-25 20:37:12 +01:00
Achilleas Koutsou
6fdf917271 distro/rhel7: update distribution implementation
Update the implementation of the distro.Distro interface to match the
one in RHEL 8, 9, and Fedora.  The main change is that the runner is a
runner.Runner and not a string.

The runner name is now rhel79 (changed from rhel7).  This is
functionally equivalent based on osbuild's runner version fallback
logic.
2023-01-25 20:37:12 +01:00
Achilleas Koutsou
a93ae83c5c distro/rhel7: add packageset chains to qcow2
The qcow2 image type for RHEL 7 doesn't have packageset chains defined.
This means that the blueprint packages are never merged into the os
pipeline.

This is unnecessary right now because of the upcoming rewrite, but it
will minimise the differences that will show up in the manifest.

The qcow2-customize manifest has an added block of options for the
grub2.legacy stage because now the dracut-config-rescue package is being
installed in the image.
2023-01-25 20:37:12 +01:00
Sarita Mahajan
0d16e2310e image: add new image type "minimal-raw" for fedora
Signed-off-by: Sarita Mahajan <sarmahaj@redhat.com>
2023-01-25 19:19:45 +01:00
Sanne Raymaekers
2e3dd16220 osbuild-service-maintenance: clean up all regions
Since we started cloning images to different regions, the maintenance
script should clean up all of these regions.
2023-01-25 14:20:51 +01:00
dependabot[bot]
dc1a770c0f build(deps): bump github.com/coreos/go-semver from 0.3.0 to 0.3.1
Bumps [github.com/coreos/go-semver](https://github.com/coreos/go-semver) from 0.3.0 to 0.3.1.
- [Release notes](https://github.com/coreos/go-semver/releases)
- [Commits](https://github.com/coreos/go-semver/compare/v0.3.0...v0.3.1)

---
updated-dependencies:
- dependency-name: github.com/coreos/go-semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-25 13:46:16 +01:00
schutzbot
77bd1cba08 Post release version bump
[skip ci]
2023-01-25 08:26:45 +00:00
Tomáš Hozza
8624ff65f8 distro/rhel8: ensure the Azure SAP RHUI image uses appropriate config
Azure RHUI and BYOS images use the respective BYOS / RHUI default image
configuration, inheriting the defaults from a common configuration. The
Azure SAP RHUI image was incorrectly using the common configuration and
was not inheriting any settings from the RHUI configuration. As a
result, the Azure SAP RHUI image was missing the following
configuration:
 - Required GPG keys were not imported from the file system as part of
   image build.
 - No RHSM configuration was applied at all.

Add "Rhui" to the image type definition, to make it explicit that it is
RHUI-based. Make sure that the image type default configuration is based
on the common RHUI configuration. Regenerate affected image manifests.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2023-01-24 19:57:14 +01:00
Sanne Raymaekers
4833f99070 tools/appsre-ansible: workaround missing authselect-compat
See PR#3237.
2023-01-24 16:04:40 +01:00
Tomáš Hozza
0a4a75e19e Packer: workaround missing authselect-compat-1.2.5-2.el9_1 in RHUI repos
`authselect-compat-1.2.5-2.el9_1` package is currently missing in AWS
RHUI el9 AppStream repositories, which makes `dnf upgrade` fail on
RHEL-9.1. This is a RHUI-specific issue, since the package is available
in CDN repos.

In order to workaround the issue for now, `authselect-compat` needs to
be removed as part of the upgrade in order for it to succeed. Use
`--allowerasing` instead of just removing the issue, because this will
ensure that `authselect-compat` will be upgraded just fine, once the
issue is resolved.

Fix the issue in the CI script that builds the image using Packer, as
well as the Ansible playbook used by Packer to build the image.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2023-01-24 15:40:02 +01:00
Achilleas Koutsou
73882b7289 test: update customized test manifests to include bluez
Our 'customize' test manifests include an option to disable the
bluetooth.service.  Originally this option was added for image types
that included bluez in their default package set (Fedora IoT commit) but
it was later copied to the qcow2 image type as a way of testing
customizations.

Until recently, building these caused no issues.  On distros with more
recent versions of systemd, disabling a non-existent service causes an
error and these manifests fail to build.

Added the 'bluez' package to all manifests that include the 'disable
bluetooth.service' customization and updated the manifests.  These
should all be buildable now.
2023-01-23 19:54:39 +01:00
Xiaofeng Wang
60e6107b42 Fix workflow shellcheck action deprecated set-output error
Use action-shellcheck@6d3f514f44620b9d4488e380339edc0d9bbe2fba to
have fix included
2023-01-20 15:02:33 +01:00
dependabot[bot]
8fe489ef7c build(deps): bump github.com/Azure/azure-sdk-for-go
Bumps [github.com/Azure/azure-sdk-for-go](https://github.com/Azure/azure-sdk-for-go) from 66.0.0+incompatible to 68.0.0+incompatible.
- [Release notes](https://github.com/Azure/azure-sdk-for-go/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-go/blob/main/documentation/release.md)
- [Commits](https://github.com/Azure/azure-sdk-for-go/compare/v66.0.0...v68.0.0)

---
updated-dependencies:
- dependency-name: github.com/Azure/azure-sdk-for-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-20 14:56:50 +01:00
Tomáš Hozza
8d0f2d7e79 osbuild/mkdir: make Mode a pointer
The default value for the `os.FileMode` is zero, but the actual default
value used by the stage if no value is specified in the options is
`0777`. By using the pointer, we'll allow one to specify `0000`
permissions as a value which won't be omitted from the stage options.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2023-01-19 11:15:33 +01:00
Tomáš Hozza
c1c26b2817 osbuild/mkdir: support exist_ok stage option
Add support for `exist_ok` stage option added as part of
PR#1224 [1], which allows to gracefully handle existence of a directory
path specified to the stage.

This will be helpful when creating custom directories in the image via
customizations, because one can't know in advance whether the directory
path won't be created by a package installed in the image.

Not bumping the requires on osbuild, because this new option is not yet
used by any image definition or customization.

[1] https://github.com/osbuild/osbuild/pull/1224

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2023-01-19 11:15:33 +01:00
Tomáš Hozza
7021c305e2 osbuild/mkdir: support parents stage option
The stage supports a `parents` property in stage path options, which
allows one to auto-create any parent directories as needed.

Add the property to stage options implementation.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2023-01-19 11:15:33 +01:00
Tomáš Hozza
5ff2f997f6 osbuild/mkdir: fix copy&paste error in function comment
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2023-01-19 11:15:33 +01:00
Tomáš Hozza
30c3ea791e osbuild/mkdir: rename Path struct to MkdirStagePath
The plain `Path` name was a bit unfortunate, since it was specific to
the `mkdir` stage, but it was used outside of the `osbuild` package as
`osbuild.Path` which was making a wrong impression of it being a generic
path structure. This is not true.

Rename the structure to contain the stage name.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2023-01-19 11:15:33 +01:00
Sanne Raymaekers
64dc942001 Schutzfile: bump osbuild commit for GA RHEL
Since composer is not updated into these distributions, it's safe to use
a newer version of osbuild on them without the risk of releasing a
composer version which would require an unreleased osbuild version.
2023-01-18 22:19:13 +01:00
Tomáš Hozza
7a5c2641ac schutzbot: delete ckellner's SSH key
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2023-01-18 12:53:30 +01:00
Achilleas Koutsou
e9d1e8a222 distro: fix pipeline names in Fedora and RHEL 9 image types
Some pipeline lists weren't updated when the image types were rewritten.
Discovered now from the new test and fixed.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
f102ae6b04 distro: add new test for pipeline names on image types
Every image type defines a list of build pipeline names and a list of
payload pipeline names.  These should match the names of the pipelines
that will exist in the manifest when it's generated.  They should match
exactly, otherwise issues can occur when reading the metadata from an
osbuild result.  The cloud API needs to know the names of the pipelines
and specifically the name of the build pipeline and the payload pipeline
in order to differentiated between build and payload packages in the
metadata.

This new test generates every manifest, parses it into a minimal struct,
and compares the pipeline names with the ones reported statically on the
image type definition.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
7f1a0a76b1 test: update manifests for "rhel-8"
The format-request-map is updated to remove the override for the
customized qcow for rhel-8.
The rhel-8 manifests are now identical to the rhel-87 counterparts.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
24ef584be9 Update repository configs for RHEL 8 (no minor)
- repositories/: add google-compute-engine and google-cloud-sdk repos to
  package repositories.
- test/data/repositories/: add rt, rhui, and rhui-azure to test
  repositories.
- test-case-generators/: update unversioned rhel-8 repos to point to
  RHEL 8.7 snapshots.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
c617b3b98c distro/rhel8: make rhel-8 point to rhel-87
Make RHEL 8 without a minor version point to RHEL 8.7, the current GA
version.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
e4bb7f4f16 distro: remove packageSetChains from image type in RHEL 8 & 9
Image types no longer report their chains.  Instead, pipelines report
their packages and chains and blueprint packages are added to the
workload.

The distro.ImageType interface retains the PackageSetsChains() methods
for RHEL 7 until that is rewritten as well.

The osbuild-dnf-json-test doesn't use the PackageSetsChains() method
anymore.  Instead, since it only test the centos-8 qcow2 image, it
hardcodes the expected package set names.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
5db70ed3f5 test: generate manifests for "rhel-9"
These are identical to the rhel-91 counterparts.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
7c8b9f4da8 Add repository configs for RHEL 9 (no minor)
Release repositories (in repositories/) for RHEL 9 are the CDN repos
without a minor release, which should always track GA.

Test repositories (in test/data/ and test-case-generators/) point to
RHEL 9.1, the current GA.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
b1d6792b26 distro/rhel9: make rhel-9 point to rhel-91
Make RHEL 9 without a minor version point to RHEL 9.1, the current GA
version.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
c049499322 test: use kernel-rt-core in ostree tests for CS8 2023-01-18 11:50:35 +01:00
Achilleas Koutsou
ca24ff4d47 distro/rhel8: remove old Manifest and PackageSets functions
Rename new implementations in their place.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
257684d9db test: update RHEL 8.x and CS9 edge commit and container manifests 2023-01-18 11:50:35 +01:00
Achilleas Koutsou
c2984d9832 distro/rhel8: resolve package names for RHEL 8
The python3-toml package is called python3-pytoml in RHEL 8, so the name
must be replaced before depsolving.  The package is defined in
manifest/os.go which does not have access to the distribution name or
version.
This solution is a temporary workaround.  The future solution should
depend on distributions resolving package names based on required
features.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
3b1a51fd0d distro/rhel8: update edge commit and container to new definitions 2023-01-18 11:50:35 +01:00
Achilleas Koutsou
fad1d528ee tools/format-request-map: override kernel-rt for CS8
Override the kernel-rt test case for CS8 with kernel-rt-core.
The kernel-rt package resolves to kernel-rt-core (no kernel-rt
metapackage exists).

More details can be found at https://github.com/osbuild/osbuild-composer/issues/3211
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
c50691c6bc test: update RHEL 8.x and CS8 edge installer manifests 2023-01-18 11:50:35 +01:00
Achilleas Koutsou
254623459f distro/rhel8: update edge installer to new definitions
Using the same pipeline functions as Fedora and RHEL 9 and copied the
image function from RHEL 9.  The most notable change is the replacment
of the deprecated bootiso.mono stage with the more granular stages, just
like with the image installer.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
1ec7de4caf test: update RHEL 8.x and CS8 image installer manifests 2023-01-18 11:50:35 +01:00
Achilleas Koutsou
62dcd99a9a distro/rhel8: update image installer to new definitions
Using the same pipeline functions as Fedora and RHEL 9 and copied the
image function from RHEL 9.  The most notable change is the replacement
of the deprecated bootiso.mono stage with the more granular stages.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
d91b2a7571 test: update RHEL 8.x and CS8 edge simplified installer manifests
The changes in these manifest are the same as for the edge raw image.
The installer definition isn't changed, only the raw image.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
b888a170a2 distro/rhel8: update edge simplified installer to new definitions 2023-01-18 11:50:35 +01:00
Achilleas Koutsou
fe1f61c662 test: update RHEL 8.x and CS8 edge raw image manifests
See previous commit for list of changes.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
e2b1baf47c distro/rhel8: update edge raw image to new definitions
Using the same pipeline code as RHEL 9 and Fedora introduces the
following changes to the image:
- ostree.config: moved and uses the stage mount instead of the old
  stage-specific options.
- lock root password like we do in Fedora and RHEL 9.
- set keymap to us and locale to C.UTF-8 like in Fedora and RHEL 9.
- grub2 contains kernel options and unified set to true.  This stage
  also now uses the ostree mount options to set up the deployment when
  running.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
2eb94fa269 test: update RHEL 8.x and CS8 tar manifests 2023-01-18 11:50:35 +01:00
Achilleas Koutsou
8fa3f6cc5c distro/rhel8: update tar image to new definitions 2023-01-18 11:50:35 +01:00
Achilleas Koutsou
7bf6f0ca66 test: update RHEL 8.x and CS8 vmdk manifests
Changes:
- Remove unneeded RPMs from the build root.
- /usr/bin/tar removed from selinux stage.
2023-01-18 11:50:35 +01:00
Achilleas Koutsou
97ed09cd69 distro/rhel8: update vmdk images to new definitions 2023-01-18 11:50:35 +01:00