31
Release osbuild-composer 31
This commit is contained in:
parent
c443df5d20
commit
b896ee4d8c
14 changed files with 23 additions and 1 deletions
|
|
@ -1,7 +0,0 @@
|
|||
# Retrieve metadata about a compose through the Cloud API
|
||||
|
||||
A new endpoint is available in the Cloud API at `compose/id/metadata`. This
|
||||
endpoint returns a full package list (NEVRA) for the image that was built and
|
||||
the OSTree commit ID for Edge (OSTree) image types.
|
||||
|
||||
PR: https://github.com/osbuild/osbuild-composer/pull/1490
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
# Support multiple repository subscriptions
|
||||
|
||||
RHEL systems can have multiple subscriptions to different repositories.
|
||||
Each repository can use its certificate authority and require the users
|
||||
to authenticate with a client-side TLS certificate.
|
||||
|
||||
This is common while using Red Hat Satellite, for example.
|
||||
|
||||
osbuild-composer can now work with multiple subscriptions that are available
|
||||
on the host system. If used with a remote worker, the same subscriptions
|
||||
must be available on both systems.
|
||||
|
||||
Relevant PRs:
|
||||
https://github.com/osbuild/osbuild-composer/pull/1405
|
||||
https://github.com/osbuild/osbuild/pull/645
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# Support for building artifacts for Fedora 32 is now dropped
|
||||
|
||||
Fedora 32 is now EOL so we decided to drop support for building images for it.
|
||||
If you need an image for this distribution, you can use an older version of
|
||||
osbuild-composer.
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# Build Edge commits in Image Builder and upload to S3
|
||||
|
||||
Edge commit image types can now be built through the Cloud API (Image Builder). Edge commits are uploaded to an S3 bucket and are downloadable through a presigned URL that is available for up to 7 days.
|
||||
|
||||
PR: https://github.com/osbuild/osbuild-composer/pull/1439
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
# Add support for new / extended osbuild stages
|
||||
|
||||
Add support for the following new osbuild stages:
|
||||
|
||||
- `org.osbuild.modprobe` - allows to configure modprobe using configuration files
|
||||
- `org.osbuild.dracut.conf` - allows to create dracut configuration files
|
||||
- `org.osbuild.systemd-logind` - allows to create system-logind configuration drop-ins
|
||||
- `org.osbuild.cloud-init` - allows to configure cloud-init
|
||||
- `org.osbuild.authselect` - allows to set system identity and auth sources using authselect
|
||||
|
||||
Add support for new functionality of existing osbuild stages:
|
||||
|
||||
- `org.osbuild.sysconfig` - allows to create network-scripts ifcfg files
|
||||
- `org.osbuild.systemd` - allows to create `.service` file drop-ins
|
||||
- `org.osbuild.chrony` - allows to configure NTP `servers` with lower level configuration options
|
||||
- `org.osbuild.keymap` - allows to configure X11 keyboard layout
|
||||
|
|
@ -1,145 +0,0 @@
|
|||
# Building images for other distributions
|
||||
|
||||
Previously osbuild-composer could only build images for the same distribution
|
||||
as the host. With the addition of the distro field in blueprint it is now
|
||||
possible to build for any supported distribution shipped with osbuild-composer.
|
||||
|
||||
|
||||
## New API route: /distros/list
|
||||
|
||||
The API now supports listing the available distributions. It will return a JSON
|
||||
object listing the installed distro names that can be used by blueprints,
|
||||
sources, and the optional `?distro=` selection on API routes.
|
||||
|
||||
eg. `curl --unix-socket /run/weldr/api.socket http://localhost/api/v1/distros/list`
|
||||
|
||||
{
|
||||
"distros": [
|
||||
"centos-8",
|
||||
"fedora-32",
|
||||
"fedora-33",
|
||||
"rhel-8",
|
||||
"rhel-84",
|
||||
"rhel-85",
|
||||
"rhel-90"
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
## Distribution selection with blueprints
|
||||
|
||||
The blueprint now supports a new `distro` field that will be used to select the
|
||||
distribution to use when composing images, or depsolving the blueprint. If
|
||||
`distro` is left blank it will use the host distribution. If you upgrade the
|
||||
host operating system the blueprints with no `distro` set will build using the
|
||||
new os.
|
||||
|
||||
eg. A blueprint that will always build a fedora-32 image, no matter what
|
||||
version is running on the host:
|
||||
|
||||
name = "tmux"
|
||||
description = "tmux image with openssh"
|
||||
version = "1.2.16"
|
||||
distro = "fedora-32"
|
||||
|
||||
[[packages]]
|
||||
name = "tmux"
|
||||
version = "*"
|
||||
|
||||
[[packages]]
|
||||
name = "openssh-server"
|
||||
version = "*"
|
||||
|
||||
|
||||
## Using sources with specific distributions
|
||||
|
||||
A new optional field has been added to the repository source format. It is a
|
||||
list of distribution strings that the source will be used with when depsolving
|
||||
and building images.
|
||||
|
||||
Sources with no `distros` will be used with all composes. If you want to use a
|
||||
source for a specific distro you set the `distros` list to the distro name(s)
|
||||
to use it with.
|
||||
|
||||
eg. A source that is only used when depsolving or building fedora 32:
|
||||
|
||||
check_gpg = true
|
||||
check_ssl = true
|
||||
distros = ["fedora-32"]
|
||||
id = "f32-local"
|
||||
name = "local packages for fedora32"
|
||||
system = false
|
||||
type = "yum-baseurl"
|
||||
url = "http://local/repos/fedora32/projectrepo/"
|
||||
|
||||
This source will be used for any requests that specify fedora-32, eg. listing
|
||||
packages and specifying fedora-32 will include this source, but listing
|
||||
packages for the host distro will not.
|
||||
|
||||
|
||||
## Optional distribution selection for routes
|
||||
|
||||
Many of the API routes now support selecting the distribution to use when
|
||||
returning results. Add `?distro=<DISTRO-NAME>` to the API request and it will
|
||||
return results using `fedora-32` instead of the host distro.
|
||||
|
||||
The following routes support distro selection:
|
||||
|
||||
* /compose/types
|
||||
* /modules/list
|
||||
* /modules/info
|
||||
* /projects/list
|
||||
* /projects/info
|
||||
* /projects/depsolve
|
||||
|
||||
The compose start uses the distribution specified by the blueprint to select
|
||||
which one to use.
|
||||
|
||||
eg. Show the image types supported by `centos-8`:
|
||||
|
||||
curl --unix-socket /run/weldr/api.socket http://localhost/api/v1/compose/types?distro=centos-8
|
||||
{
|
||||
"types": [
|
||||
{
|
||||
"name": "ami",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"name": "openstack",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"name": "qcow2",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"name": "tar",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"name": "vhd",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"name": "vmdk",
|
||||
"enabled": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
## Unknown Distributions
|
||||
|
||||
If an unknown distribution is selected the response from the API server will be
|
||||
a `DistroError`, like this:
|
||||
|
||||
{
|
||||
"status": false,
|
||||
"errors": [
|
||||
{
|
||||
"id": "DistroError",
|
||||
"msg": "Invalid distro: fedora-1"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
# Add support for RHEL 8.5 Edge images
|
||||
|
||||
OSBuild Composer can now build RHEL 8.5 Edge images. The following image types
|
||||
are supported: edge-commit, edge-container, and edge-installer.
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
# Add support for RHEL 8.5 main image types
|
||||
|
||||
OSBuild Composer can now build RHEL 8.5 images. The following new image types
|
||||
are supported:
|
||||
|
||||
- `qcow2`
|
||||
- `vhd`
|
||||
- `vmdk`
|
||||
- `openstack`
|
||||
- `ami`
|
||||
- `ec2`
|
||||
- `ec2-ha`
|
||||
|
||||
## RHEL-8.5 AWS images
|
||||
|
||||
The `ami` image type have been redefined based on the official RHEL EC2 images.
|
||||
|
||||
Notable changes compared to RHEL-8.4 are:
|
||||
|
||||
- the default user created by cloud-init is `ec2-user`
|
||||
- NTP client configuration uses `169.254.169.123` NTP server by default
|
||||
- the boot mode was changed from hybrid to legacy only
|
||||
|
||||
The `ec2` and `ec2-ha` images represent the official RHEL EC2 images, which are
|
||||
produced as part of RHEL release. These contain RHUI client packages, which are
|
||||
available only from within Red Hat internal network. For this reason, these
|
||||
image types are by default not exposed via Weldr API (in the on-premise use
|
||||
case) for all RHEL releases.
|
||||
|
||||
This default configuration can be overridden by placing the following line in
|
||||
the osbuild-composer configuration `/etc/osbuild-composer/osbuild-composer.toml`:
|
||||
|
||||
```toml
|
||||
[weldr_api.distros."rhel-*"]
|
||||
# no lines below this section
|
||||
```
|
||||
|
||||
## Extended osbuild support
|
||||
To support these image types, the following new types were added to support the
|
||||
functionality in osbuild.
|
||||
|
||||
Stages:
|
||||
- org.osbuild.copy
|
||||
- org.osbuild.truncate
|
||||
- org.osbuild.sfdisk
|
||||
- org.osbuild.qemu
|
||||
- org.osbuild.mkfs.btrfs
|
||||
- org.osbuild.mkfs.ext4
|
||||
- org.osbuild.mkfs.fat
|
||||
- org.osbuild.mkfs.xfs
|
||||
- org.osbuild.grub2.inst
|
||||
|
||||
|
||||
Devices:
|
||||
- org.osbuild.loopback
|
||||
|
||||
Mounts:
|
||||
- org.osbuild.btrfs
|
||||
- org.osbuild.ext4
|
||||
- org.osbuild.fat
|
||||
- org.osbuild.xfs
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
# Add support for RHEL 9.0 Beta
|
||||
|
||||
OSBuild Composer can now build RHEL 9.0 Beta images. All image types are based
|
||||
off RHEL 8.5 ones, thus the same set of image types is supported.
|
||||
|
||||
Note that the test coverage isn't complete at this point. Fully supported is
|
||||
just cross-building RHEL 9 qcow2 images on RHEL 8. Everything else is just
|
||||
a technical preview.
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
# Weldr API: introduce the ablility to limit exposed Image Types by configuration
|
||||
|
||||
Extend Weldr API to accept a map of distribution-specific lists of denied
|
||||
image types, which should not be exposed via API. It is allowed to use
|
||||
globing patterns as Distribution and Image Type names. This functionality
|
||||
is needed to not expose image types which can't be successfully built outside
|
||||
of Red Hat VPN.
|
||||
|
||||
The list of denied Image Types is defined in `osbuild-composer` configuration,
|
||||
`/etc/osbuild-composer/osbuild-composer.toml`.
|
||||
|
||||
Example configuration denying the building of `qcow2` and `vmdk` Image Types
|
||||
via Weldr API for any distribution:
|
||||
```toml
|
||||
[weldr_api.distros."*"]
|
||||
image_type_denylist = [ "qcow2", "vmdk" ]
|
||||
```
|
||||
|
||||
Example configuration denying the building of `qcow2` and `vmdk` Image Types
|
||||
via Weldr API for `rhel-84` distribution:
|
||||
```toml
|
||||
[weldr_api.distros.rhel-84]
|
||||
image_type_denylist = [ "qcow2", "vmdk" ]
|
||||
```
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# Workers: heartbeat
|
||||
|
||||
Workers check in with composer every 15 seconds to see if their job hasn't been
|
||||
cancelled. We can use this to introduce a heartbeat. If the worker fails to
|
||||
check in for over 2 minutes, composer assumes the worker crashed or was stopped,
|
||||
marking the job as failed.
|
||||
|
||||
This will mitigate the issue where jobs who had their worker crash or stopped,
|
||||
would remain in a 'building' state forever.
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# Workers: oauth2 support
|
||||
|
||||
This change is mainly targeted for getting composer into `cloud.redhat.com`. It
|
||||
allows remote workers to connect to composer starting from a refresh token, and
|
||||
is offered as an alternative to the client certificate authentication.
|
||||
Loading…
Add table
Add a link
Reference in a new issue