distro/rhel8: add RHEL for Edge
Initial definition for RHEL for edge package set on x86. This is based marginally on the upstream Fedora IoT package set but slimmed down and adjusted for RHEL package naming. Based on Tom's patch. Signed-off-by: Tom Gundersen <teg@jklm.no> Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
This commit is contained in:
parent
d9c7c2dd0b
commit
f32770fed6
2 changed files with 116 additions and 0 deletions
|
|
@ -3,6 +3,7 @@ package rhel8
|
|||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strconv"
|
||||
|
||||
|
|
@ -581,10 +582,122 @@ func tarAssembler(filename, compression string) *osbuild.Assembler {
|
|||
})
|
||||
}
|
||||
|
||||
func ostreeCommitAssembler(options distro.ImageOptions, arch distro.Arch) *osbuild.Assembler {
|
||||
ref := options.OSTree.Ref
|
||||
if ref == "" {
|
||||
ref = fmt.Sprintf("rhel/8/%s/edge", arch.Name())
|
||||
}
|
||||
return osbuild.NewOSTreeCommitAssembler(
|
||||
&osbuild.OSTreeCommitAssemblerOptions{
|
||||
Ref: ref,
|
||||
Parent: options.OSTree.Parent,
|
||||
Tar: osbuild.OSTreeCommitAssemblerTarOptions{
|
||||
Filename: "commit.tar",
|
||||
},
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
// New creates a new distro object, defining the supported architectures and image types
|
||||
func New() distro.Distro {
|
||||
const GigaByte = 1024 * 1024 * 1024
|
||||
|
||||
edgeImgTypeX86_64 := imageType{
|
||||
name: "rhel-edge-commit",
|
||||
filename: "commit.tar",
|
||||
mimeType: "application/x-tar",
|
||||
packages: []string{
|
||||
"redhat-release", // TODO: is this correct for Edge?
|
||||
"glibc", "glibc-minimal-langpack", "nss-altfiles",
|
||||
"kernel",
|
||||
"dracut-config-generic", "dracut-network",
|
||||
"basesystem", "bash", "platform-python",
|
||||
"shadow-utils", "chrony", "setup", "shadow-utils",
|
||||
"sudo", "systemd", "coreutils", "util-linux",
|
||||
"curl", "vim-minimal",
|
||||
"rpm", "rpm-ostree", "polkit",
|
||||
"lvm2", "cryptsetup", "pinentry",
|
||||
"e2fsprogs", "dosfstools",
|
||||
"keyutils", "gnupg2",
|
||||
"attr", "xz", "gzip",
|
||||
"firewalld", "iptables",
|
||||
"NetworkManager", "NetworkManager-wifi", "NetworkManager-wwan",
|
||||
"wpa_supplicant",
|
||||
"dnsmasq", "traceroute",
|
||||
"hostname", "iproute", "iputils",
|
||||
"openssh-clients", "procps-ng", "rootfiles",
|
||||
"openssh-server", "passwd",
|
||||
"policycoreutils", "policycoreutils-python-utils",
|
||||
"selinux-policy-targeted", "setools-console",
|
||||
"less", "tar", "rsync",
|
||||
"fwupd", "usbguard",
|
||||
"bash-completion", "tmux",
|
||||
"ima-evm-utils",
|
||||
"audit", "rng-tools",
|
||||
"podman", "container-selinux", "skopeo", "criu",
|
||||
"slirp4netns", "fuse-overlayfs",
|
||||
"clevis", "clevis-dracut", "clevis-luks",
|
||||
// x86 specific
|
||||
"grub2", "grub2-efi-x64", "efibootmgr", "shim-x64", "microcode_ctl",
|
||||
"iwl1000-firmware", "iwl100-firmware", "iwl105-firmware", "iwl135-firmware",
|
||||
"iwl2000-firmware", "iwl2030-firmware", "iwl3160-firmware", "iwl5000-firmware",
|
||||
"iwl5150-firmware", "iwl6000-firmware", "iwl6050-firmware", "iwl7260-firmware",
|
||||
},
|
||||
enabledServices: []string{
|
||||
"NetworkManager.service", "firewalld.service", "rngd.service", "sshd.service",
|
||||
},
|
||||
rpmOstree: true,
|
||||
assembler: func(uefi bool, options distro.ImageOptions, arch distro.Arch) *osbuild.Assembler {
|
||||
return ostreeCommitAssembler(options, arch)
|
||||
},
|
||||
}
|
||||
edgeImgTypeAarch64 := imageType{
|
||||
name: "rhel-edge-commit",
|
||||
filename: "commit.tar",
|
||||
mimeType: "application/x-tar",
|
||||
packages: []string{
|
||||
"redhat-release", // TODO: is this correct for Edge?
|
||||
"glibc", "glibc-minimal-langpack", "nss-altfiles",
|
||||
"kernel",
|
||||
"dracut-config-generic", "dracut-network",
|
||||
"basesystem", "bash", "platform-python",
|
||||
"shadow-utils", "chrony", "setup", "shadow-utils",
|
||||
"sudo", "systemd", "coreutils", "util-linux",
|
||||
"curl", "vim-minimal",
|
||||
"rpm", "rpm-ostree", "polkit",
|
||||
"lvm2", "cryptsetup", "pinentry",
|
||||
"e2fsprogs", "dosfstools",
|
||||
"keyutils", "gnupg2",
|
||||
"attr", "xz", "gzip",
|
||||
"firewalld", "iptables",
|
||||
"NetworkManager", "NetworkManager-wifi", "NetworkManager-wwan",
|
||||
"wpa_supplicant",
|
||||
"dnsmasq", "traceroute",
|
||||
"hostname", "iproute", "iputils",
|
||||
"openssh-clients", "procps-ng", "rootfiles",
|
||||
"openssh-server", "passwd",
|
||||
"policycoreutils", "policycoreutils-python-utils",
|
||||
"selinux-policy-targeted", "setools-console",
|
||||
"less", "tar", "rsync",
|
||||
"fwupd", "usbguard",
|
||||
"bash-completion", "tmux",
|
||||
"ima-evm-utils",
|
||||
"audit", "rng-tools",
|
||||
"podman", "container-selinux", "skopeo", "criu",
|
||||
"slirp4netns", "fuse-overlayfs",
|
||||
"clevis", "clevis-dracut", "clevis-luks",
|
||||
// aarch64 specific
|
||||
"grub2-efi-aa64", "efibootmgr", "shim-aa64",
|
||||
"iwl7260-firmware",
|
||||
},
|
||||
enabledServices: []string{
|
||||
"NetworkManager.service", "firewalld.service", "rngd.service", "sshd.service",
|
||||
},
|
||||
rpmOstree: true,
|
||||
assembler: func(uefi bool, options distro.ImageOptions, arch distro.Arch) *osbuild.Assembler {
|
||||
return ostreeCommitAssembler(options, arch)
|
||||
},
|
||||
}
|
||||
amiImgType := imageType{
|
||||
name: "ami",
|
||||
filename: "image.vhdx",
|
||||
|
|
@ -887,6 +1000,7 @@ func New() distro.Distro {
|
|||
}
|
||||
x8664.setImageTypes(
|
||||
amiImgType,
|
||||
edgeImgTypeX86_64,
|
||||
qcow2ImageType,
|
||||
openstackImgType,
|
||||
tarImgType,
|
||||
|
|
@ -908,6 +1022,7 @@ func New() distro.Distro {
|
|||
}
|
||||
aarch64.setImageTypes(
|
||||
amiImgType,
|
||||
edgeImgTypeAarch64,
|
||||
qcow2ImageType,
|
||||
openstackImgType,
|
||||
tarImgType,
|
||||
|
|
|
|||
|
|
@ -336,6 +336,7 @@ var imageTypeCompatMapping = map[string]string{
|
|||
"partitioned-disk": "Partitioned-disk",
|
||||
"tar": "Tar",
|
||||
"fedora-iot-commit": "fedora-iot-commit",
|
||||
"rhel-edge-commit": "rhel-edge-commit",
|
||||
"test_type": "test_type", // used only in json_test.go
|
||||
"test_type_invalid": "test_type_invalid", // used only in json_test.go
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue