Accepting request 1105491 from home:favogt:combustion

- Omit ignition module in initrds for already configured systems:
  * Add 0001-dracut-Don-t-include-the-ignition-module-by-default.patch
  * Edit module-setup.sh
- Add explicit dep on combustion in module-setup.sh
- Replace ignition-dracut-grub2 with combustion's firstboot.target:
  * Add 0001-Order-ignition-disks.service-before-systemd-fsck-roo.patch
  * Edit ignition-suse-generator
  * Edit ignition-umount-initrd-fstab.service
  * Edit module-setup.sh
  * Drop 02_ignition_firstboot
  * Drop ignition-firstboot-complete.service
  * Adjust README.SUSE
- Edit ignition-umount-initrd-fstab.service to not rely on combustion
  units forcing proper order

- Add 0003-Move-the-GPT-header-on-resized-disks.patch to make it
- Fix patch file metadata in 0001-ignore-missing-qemu-blockdev.patch
  and 0002-allow-multiple-mounts-of-same-device.patch

OBS-URL: https://build.opensuse.org/request/show/1105491
OBS-URL: https://build.opensuse.org/package/show/devel:kubic:ignition/ignition?expand=0&rev=111
This commit is contained in:
Ignaz Forster 2023-08-23 14:09:02 +00:00 committed by Git OBS Bridge
parent f1241dbb88
commit 569fa9e2a7
12 changed files with 191 additions and 156 deletions

View File

@ -0,0 +1,38 @@
From c30af974e1487e4a23d773e2061873afd6dcb8bf Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.de>
Date: Thu, 17 Aug 2023 13:51:24 +0200
Subject: [PATCH] Order ignition-disks.service before systemd-fsck-root.service
firstboot-detect.service needs initrd-root-device.target but has to be before
any ignition units, so ignition units can't use
Before=initrd-root-device.target. Use systemd-fsck-root.service instead, which
fits the comment above more anyway.
---
dracut/30ignition/ignition-disks.service | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dracut/30ignition/ignition-disks.service b/dracut/30ignition/ignition-disks.service
index 730063f1..2c817408 100644
--- a/dracut/30ignition/ignition-disks.service
+++ b/dracut/30ignition/ignition-disks.service
@@ -9,7 +9,7 @@ Before=ignition-complete.target
After=ignition-fetch.service
Before=ignition-mount.service
-# This stage runs between `basic.target` and `initrd-root-device.target`,
+# This stage runs between `basic.target` and `systemd-fsck-root.service`,
# see https://www.freedesktop.org/software/systemd/man/bootup.html
# Make sure to run before the file system checks, as sgdisk will trigger
# udev events, potentially resulting in race conditions due to disappearing
@@ -18,7 +18,7 @@ Before=ignition-mount.service
# Note that CL runs this before `local-fs-pre.target` to allow for configs that
# completely wipe the rootfs. Though we're not there yet. But we still run
# before `sysroot.mount` on principle.
-Before=initrd-root-device.target
+Before=systemd-fsck-root.service
Before=sysroot.mount
OnFailure=emergency.target
--
2.41.0

View File

@ -0,0 +1,48 @@
From 7b753b963953392aca6e44a7be9441e01e70ff2d Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.de>
Date: Mon, 21 Aug 2023 14:17:01 +0200
Subject: [PATCH] dracut: Don't include the ignition module by default
Currently the module is automatically included in all initrds, hostonly or
generic. Leave it to the distro provided module to pull it in explicitly.
---
docs/release-notes.md | 4 ++++
dracut/30ignition/module-setup.sh | 7 +++++++
2 files changed, 11 insertions(+)
diff --git a/docs/release-notes.md b/docs/release-notes.md
index e53bdf8d..65ce77ce 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -8,6 +8,10 @@ nav_order: 9
### Breaking changes
+- The dracut module is not automatically included in initramfs images anymore.
+ Distributions need to explicitly request inclusion, either by ensuring that
+ it is pulled in by another module, for instance the module providing distro
+ integration and customization, or by installing a dracut configuration file.
### Features
diff --git a/dracut/30ignition/module-setup.sh b/dracut/30ignition/module-setup.sh
index ad7e80fd..f431b7dc 100755
--- a/dracut/30ignition/module-setup.sh
+++ b/dracut/30ignition/module-setup.sh
@@ -2,6 +2,13 @@
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
+check() {
+ # Only include this if another module requests it.
+ # In our case it'll be the distro provided module with integration and customizations
+ # (coreos-ignition/ignition-microos/...).
+ return 255
+}
+
depends() {
echo qemu systemd url-lib network
}
--
2.41.0

View File

@ -6,78 +6,73 @@ Upstream: Ticket opened [gh#coreos/ignition#890]
e.g. to mount several subvolumes from a Btrfs device or bind mounting e.g. to mount several subvolumes from a Btrfs device or bind mounting
the device to multiple places, by also adding the path to the key. the device to multiple places, by also adding the path to the key.
Index: ignition-2.15.0/config/v3_1/types/filesystem.go Index: ignition-2.16.2/config/v3_1/types/filesystem.go
=================================================================== ===================================================================
--- ignition-2.15.0.orig/config/v3_1/types/filesystem.go --- ignition-2.16.2.orig/config/v3_1/types/filesystem.go
+++ ignition-2.15.0/config/v3_1/types/filesystem.go +++ ignition-2.16.2/config/v3_1/types/filesystem.go
@@ -23,7 +23,10 @@ import ( @@ -23,6 +23,9 @@ import (
) )
func (f Filesystem) Key() string { func (f Filesystem) Key() string {
+ if (f.Path != nil) { + if (f.Path != nil) {
+ f.Device += *f.Path + return f.Device + *f.Path
+ } + }
return f.Device return f.Device
} }
func (f Filesystem) IgnoreDuplicates() map[string]struct{} { Index: ignition-2.16.2/config/v3_2/types/filesystem.go
Index: ignition-2.15.0/config/v3_2/types/filesystem.go
=================================================================== ===================================================================
--- ignition-2.15.0.orig/config/v3_2/types/filesystem.go --- ignition-2.16.2.orig/config/v3_2/types/filesystem.go
+++ ignition-2.15.0/config/v3_2/types/filesystem.go +++ ignition-2.16.2/config/v3_2/types/filesystem.go
@@ -23,7 +23,10 @@ import ( @@ -23,6 +23,9 @@ import (
) )
func (f Filesystem) Key() string { func (f Filesystem) Key() string {
+ if (f.Path != nil) { + if (f.Path != nil) {
+ f.Device += *f.Path + return f.Device + *f.Path
+ } + }
return f.Device return f.Device
} }
func (f Filesystem) IgnoreDuplicates() map[string]struct{} { Index: ignition-2.16.2/config/v3_3/types/filesystem.go
Index: ignition-2.15.0/config/v3_3/types/filesystem.go
=================================================================== ===================================================================
--- ignition-2.15.0.orig/config/v3_3/types/filesystem.go --- ignition-2.16.2.orig/config/v3_3/types/filesystem.go
+++ ignition-2.15.0/config/v3_3/types/filesystem.go +++ ignition-2.16.2/config/v3_3/types/filesystem.go
@@ -23,7 +23,10 @@ import ( @@ -23,6 +23,9 @@ import (
) )
func (f Filesystem) Key() string { func (f Filesystem) Key() string {
+ if (f.Path != nil) { + if (f.Path != nil) {
+ f.Device += *f.Path + return f.Device + *f.Path
+ } + }
return f.Device return f.Device
} }
func (f Filesystem) IgnoreDuplicates() map[string]struct{} { Index: ignition-2.16.2/config/v3_4/types/filesystem.go
Index: ignition-2.15.0/config/v3_4/types/filesystem.go
=================================================================== ===================================================================
--- ignition-2.15.0.orig/config/v3_4/types/filesystem.go --- ignition-2.16.2.orig/config/v3_4/types/filesystem.go
+++ ignition-2.15.0/config/v3_4/types/filesystem.go +++ ignition-2.16.2/config/v3_4/types/filesystem.go
@@ -23,7 +23,10 @@ import ( @@ -23,6 +23,9 @@ import (
) )
func (f Filesystem) Key() string { func (f Filesystem) Key() string {
+ if (f.Path != nil) { + if (f.Path != nil) {
+ f.Device += *f.Path + return f.Device + *f.Path
+ } + }
return f.Device return f.Device
} }
func (f Filesystem) IgnoreDuplicates() map[string]struct{} { Index: ignition-2.16.2/config/v3_5_experimental/types/filesystem.go
Index: ignition-2.15.0/config/v3_5_experimental/types/filesystem.go
=================================================================== ===================================================================
--- ignition-2.15.0.orig/config/v3_5_experimental/types/filesystem.go --- ignition-2.16.2.orig/config/v3_5_experimental/types/filesystem.go
+++ ignition-2.15.0/config/v3_5_experimental/types/filesystem.go +++ ignition-2.16.2/config/v3_5_experimental/types/filesystem.go
@@ -23,7 +23,10 @@ import ( @@ -23,6 +23,9 @@ import (
) )
func (f Filesystem) Key() string { func (f Filesystem) Key() string {
+ if (f.Path != nil) { + if (f.Path != nil) {
+ f.Device += *f.Path + return f.Device + *f.Path
+ } + }
return f.Device return f.Device
} }
func (f Filesystem) IgnoreDuplicates() map[string]struct{} {

View File

@ -1,6 +1,6 @@
From: Ignaz Forster <iforster@suse.com> From: Ignaz Forster <iforster@suse.com>
Date: Tue, 22 Aug 2023 16:13:07 +0200 Date: Tue, 22 Aug 2023 16:13:07 +0200
Subject: [PATCH] Move the GTP header on resized disks Subject: [PATCH] Move the GPT header on resized disks
--- ---
internal/sgdisk/sgdisk.go | 1 + internal/sgdisk/sgdisk.go | 1 +

View File

@ -1,24 +0,0 @@
#!/bin/sh
exec tail -n +3 $0
# On read-only systems /boot/writable provides a writeable
# subvolume which also stores the Ignition flag file.
set flagpath="/boot/writable"
# Determine if this is a first boot and set the variable
# to be used later on the kernel command line.
set ignition_firstboot=""
if ! [ -f "${flagpath}/firstboot_happened" ]; then
# This defaults to DHCP in dracut
set ignition_network_kcmdline=''
# source in the `ignition.firstboot` file which could override the
# above $ignition_network_kcmdline with static networking config.
# This override feature is primarily used by coreos-installer to
# persist static networking config provided during install to the
# first boot of the machine.
if [ -e "${flagpath}/ignition.firstboot" ]; then
source "${flagpath}/ignition.firstboot"
fi
set ignition_firstboot="ignition.firstboot dasd_mod.dasd=autodetect $ignition_network_kcmdline"
fi

View File

@ -10,7 +10,7 @@ Changes for openSUSE / SLE:
For better usability in addition to Ignition's own mount / umount stage all For better usability in addition to Ignition's own mount / umount stage all
files systems tagged for being mounted in the initrd ("x-initrd.mount" mount files systems tagged for being mounted in the initrd ("x-initrd.mount" mount
flag) will automatically be mounted / umounted. flag) will automatically be mounted / umounted.
* ignition-setup-user.service / ignition-setup-use.sh: * ignition-setup-user.service / ignition-setup-user.sh:
The user configuration can be stored on a device with the label "ignition" The user configuration can be stored on a device with the label "ignition"
(e.g. by attaching a USB flash drive with that name) instead of using the (e.g. by attaching a USB flash drive with that name) instead of using the
platform specific configuration storage mechanism. platform specific configuration storage mechanism.
@ -28,27 +28,10 @@ Changes for openSUSE / SLE:
SELinux itself, however this is a compile time option, so it can't be SELinux itself, however this is a compile time option, so it can't be
used here. used here.
* ignition-suse-generator: * ignition-suse-generator:
Supplements the upstream generator by adding dependencies to Replaces the upstream generator by making use of firstboot.target provided
ignition-setup-user.service and ignition-mount-initrd-fstab.service. by combustion and hooking up the services provided by this module.
Additionally it will try to autodect the platform if it is not set on the Additionally it will try to autodect the platform if it is not set on the
kernel command line. kernel command line.
* 02_ignition_firstboot:
This file has been part of upstream ignition-dracut, but has since then been
moved to a static CoreOS specific configuration
(https://github.com/coreos/coreos-assembler/pull/616); it is now used in a
modified version adapted to SUSE's needs.
This script will automatically set the kernel parameters to trigger an
Ignition run if a flag file does not exist (e.g. on first boot). To trigger
an Ignition run manually just delete the file
"/boot/writable/firstboot_happened".
* ignition-firstboot-complete.service:
This file has been part of upstream ignition-dracut, but has since then been
moved to a static CoreOS specific configuration
(https://github.com/coreos/fedora-coreos-config/pull/1087); it is now used
in a simpified version adapted to SUSE's needs.
Sets the flag file "/boot/writable/firstboot_happened" to indicate a
successful first boot. This flag file is evaluated by the GRUB script
02_ignition_firstboot from above.
* ignition-enable-network.service / ignition-enable-network.sh: * ignition-enable-network.service / ignition-enable-network.sh:
Ignition supports detection whether the configuration requires networking Ignition supports detection whether the configuration requires networking
to avoid having to boot with networking enabled even when it isn't to avoid having to boot with networking enabled even when it isn't

View File

@ -1,14 +0,0 @@
[Unit]
Description=Mark boot complete
Documentation=https://build.opensuse.org/package/view_file/devel:kubic:ignition/ignition/README.SUSE?expand=1
ConditionKernelCommandLine=ignition.firstboot
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/mkdir -p /boot/writable
ExecStart=/usr/bin/touch /boot/writable/firstboot_happened
[Install]
# Part of basic.target so this happens early on in firstboot
WantedBy=basic.target

View File

@ -4,8 +4,37 @@
set -e set -e
# Call upstream generator # Generators don't have logging right now
. /usr/lib/systemd/system-generators/ignition-generator # https://github.com/systemd/systemd/issues/15638
exec 1>/dev/kmsg; exec 2>&1
UNIT_DIR="${1:-/tmp}"
cmdline=( $(</proc/cmdline) )
cmdline_arg() {
local name="$1" value="$2"
for arg in "${cmdline[@]}"; do
if [[ "${arg%%=*}" == "${name}" ]]; then
value="${arg#*=}"
fi
done
echo "${value}"
}
add_requires() {
local name="$1"; shift
local target="$1"; shift
local requires_dir="${UNIT_DIR}/${target}.requires"
mkdir -p "${requires_dir}"
ln -sf "../${name}" "${requires_dir}/${name}"
}
add_requires ignition-complete.target firstboot.target
add_requires ignition-diskful.target ignition-complete.target
# TODO: Add support for ignition-subsequent.target, when needed?
echo "PLATFORM_ID=$(cmdline_arg ignition.platform.id)" > /run/ignition.env
. /run/ignition.env . /run/ignition.env
add_requires ignition-mount-initrd-fstab.service ignition-files.service add_requires ignition-mount-initrd-fstab.service ignition-files.service

View File

@ -3,6 +3,8 @@ Description=Unmount initrd fstab entries for Ignition
DefaultDependencies=false DefaultDependencies=false
Before=ignition-complete.target Before=ignition-complete.target
After=ignition-files.service After=ignition-files.service
# Make sure not to unmount the real sysroot-*.mount units
Before=initrd-parse-etc.service
[Service] [Service]
Type=oneshot Type=oneshot

View File

@ -1,13 +1,32 @@
-------------------------------------------------------------------
Wed Aug 23 13:47:34 UTC 2023 - Fabian Vogt <fvogt@suse.com>
- Omit ignition module in initrds for already configured systems:
* Add 0001-dracut-Don-t-include-the-ignition-module-by-default.patch
* Edit module-setup.sh
- Add explicit dep on combustion in module-setup.sh
- Replace ignition-dracut-grub2 with combustion's firstboot.target:
* Add 0001-Order-ignition-disks.service-before-systemd-fsck-roo.patch
* Edit ignition-suse-generator
* Edit ignition-umount-initrd-fstab.service
* Edit module-setup.sh
* Drop 02_ignition_firstboot
* Drop ignition-firstboot-complete.service
* Adjust README.SUSE
- Edit ignition-umount-initrd-fstab.service to not rely on combustion
units forcing proper order
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Aug 23 13:33:29 UTC 2023 - Ignaz Forster <iforster@suse.com> Wed Aug 23 13:33:29 UTC 2023 - Ignaz Forster <iforster@suse.com>
- Fix segmentation fault if filesystem section of Ignition JSON - Fix segmentation fault if filesystem section of Ignition JSON
doesn't contain path entry doesn't contain path entry
- Add 0003-Move-the-GTP-header-on-resized-disks.patch to make it - Add 0003-Move-the-GPT-header-on-resized-disks.patch to make it
possible to create partitions on resized disk images possible to create partitions on resized disk images
- Add dm and crypt modules as dependencies to make it possible to - Add dm and crypt modules as dependencies to make it possible to
configure a luks device configure a luks device
- Fix patch file metadata - Fix patch file metadata in 0001-ignore-missing-qemu-blockdev.patch
and 0002-allow-multiple-mounts-of-same-device.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Jul 13 20:08:51 UTC 2023 - iforster@suse.com Thu Jul 13 20:08:51 UTC 2023 - iforster@suse.com

View File

@ -28,8 +28,6 @@ Source1: ignition-mount-initrd-fstab.service
Source2: ignition-umount-initrd-fstab.service Source2: ignition-umount-initrd-fstab.service
Source3: ignition-suse-generator Source3: ignition-suse-generator
Source4: module-setup.sh Source4: module-setup.sh
Source5: 02_ignition_firstboot
Source6: ignition-firstboot-complete.service
Source7: README.SUSE Source7: README.SUSE
Source8: ignition-setup-user.sh Source8: ignition-setup-user.sh
Source9: ignition-setup-user.service Source9: ignition-setup-user.service
@ -43,13 +41,17 @@ Source20: ignition-userconfig-timeout.conf
Source21: ignition-userconfig-timeout-arm.conf Source21: ignition-userconfig-timeout-arm.conf
Patch1: 0001-ignore-missing-qemu-blockdev.patch Patch1: 0001-ignore-missing-qemu-blockdev.patch
Patch2: 0002-allow-multiple-mounts-of-same-device.patch Patch2: 0002-allow-multiple-mounts-of-same-device.patch
Patch3: 0003-Move-the-GTP-header-on-resized-disks.patch Patch3: 0003-Move-the-GPT-header-on-resized-disks.patch
Patch4: 0001-Order-ignition-disks.service-before-systemd-fsck-roo.patch
# https://github.com/coreos/ignition/pull/1698
Patch5: 0001-dracut-Don-t-include-the-ignition-module-by-default.patch
BuildRequires: dracut BuildRequires: dracut
BuildRequires: libblkid-devel BuildRequires: libblkid-devel
BuildRequires: systemd-rpm-macros BuildRequires: systemd-rpm-macros
BuildRequires: update-bootloader-rpm-macros BuildRequires: update-bootloader-rpm-macros
BuildRequires: golang(API) >= 1.18 BuildRequires: golang(API) >= 1.18
Requires: %{name}-dracut-grub2 # combustion provides firstboot.target and ignition-kargs-helper calls combustion
Requires: combustion >= 1.2
Requires: dracut Requires: dracut
Recommends: %{_sbindir}/groupadd Recommends: %{_sbindir}/groupadd
Recommends: %{_sbindir}/sgdisk Recommends: %{_sbindir}/sgdisk
@ -64,6 +66,8 @@ Recommends: /sbin/udevadm
Suggests: /sbin/mdadm Suggests: /sbin/mdadm
Provides: ignition-dracut = 0.0+git20200722.98ed51d Provides: ignition-dracut = 0.0+git20200722.98ed51d
Obsoletes: ignition-dracut < 0.0+git20200722.98ed51d Obsoletes: ignition-dracut < 0.0+git20200722.98ed51d
# Not provided because the mechanism is different
Obsoletes: ignition-dracut-grub2 < %{version}-%{release}
%{update_bootloader_requires} %{update_bootloader_requires}
%description %description
@ -75,18 +79,6 @@ On first boot, Ignition reads its configuration from a source of truth
(remote URL, network metadata service, hypervisor bridge, etc.) and (remote URL, network metadata service, hypervisor bridge, etc.) and
applies the configuration. applies the configuration.
%package dracut-grub2
Summary: Files to trigger ignition firstboot with grub2
Group: System/Management
Requires: grub2
Requires(post): grub2
Requires(post): sed
%description dracut-grub2
GRUB2 configuration which sets ignition.firstboot based on
/boot/writable/firstboot_happened and ignition.firstboot and a matching service
which creates firstboot_happened after the first boot.
%prep %prep
%autosetup -p1 %autosetup -p1
@ -98,8 +90,6 @@ cp %{SOURCE21} dracut/30ignition-microos/ignition-userconfig-timeout.conf
%else %else
cp %{SOURCE20} dracut/30ignition-microos/ignition-userconfig-timeout.conf cp %{SOURCE20} dracut/30ignition-microos/ignition-userconfig-timeout.conf
%endif %endif
cp %{SOURCE5} grub/
cp %{SOURCE6} systemd_suse/
cp %{SOURCE15} systemd_suse/ignition-delete-config.service.d/ cp %{SOURCE15} systemd_suse/ignition-delete-config.service.d/
cp %{SOURCE7} . cp %{SOURCE7} .
cp %{SOURCE12} dracut/30ignition/ignition-kargs-helper.sh cp %{SOURCE12} dracut/30ignition/ignition-kargs-helper.sh
@ -113,8 +103,6 @@ make -o all install DESTDIR=%{buildroot}
install -d %{buildroot}%{_sysconfdir}/grub.d install -d %{buildroot}%{_sysconfdir}/grub.d
install -d %{buildroot}%{_unitdir}/ignition-delete-config.service.d install -d %{buildroot}%{_unitdir}/ignition-delete-config.service.d
install -p -m 0755 grub/* %{buildroot}%{_sysconfdir}/grub.d/
install -p -m 0644 systemd_suse/*.service %{buildroot}%{_prefix}/lib/systemd/system/
install -p -m 0644 systemd_suse/ignition-delete-config.service.d/* %{buildroot}%{_prefix}/lib/systemd/system/ignition-delete-config.service.d install -p -m 0644 systemd_suse/ignition-delete-config.service.d/* %{buildroot}%{_prefix}/lib/systemd/system/ignition-delete-config.service.d
install -d %{buildroot}%{_sbindir}/ install -d %{buildroot}%{_sbindir}/
mv %{buildroot}/usr/libexec/* %{buildroot}/%{_sbindir}/ mv %{buildroot}/usr/libexec/* %{buildroot}/%{_sbindir}/
@ -125,13 +113,6 @@ rmdir %{buildroot}/usr/libexec
%post %post
%{?regenerate_initrd_post} %{?regenerate_initrd_post}
# Trigger creating the firstboot_happened file (in posttrans) on upgrades.
# This is needed for systems where the first boot happened before
# firstboot_happened got introduced and can be removed in the future.
if [ "$1" -ne 1 ]; then
mkdir -p %{_rundir}/ignition-dracut/
touch %{_rundir}/ignition-dracut/isupgrade
fi
%service_add_post ignition-delete-config.service %service_add_post ignition-delete-config.service
%preun %preun
@ -142,30 +123,6 @@ fi
%posttrans %posttrans
%{?regenerate_initrd_posttrans} %{?regenerate_initrd_posttrans}
if [ -f %{_rundir}/ignition-dracut/isupgrade ]; then
# Done in posttrans so that read-only-root-fs could create the subvol
mkdir -p /boot/writable
[ -e /boot/writable/firstboot_happened ] || touch /boot/writable/firstboot_happened
fi
%pre dracut-grub2
%service_add_pre ignition-firstboot-complete.service
%post dracut-grub2
if [ "$1" = 1 ] ; then
sed -i 's/^\(GRUB_CMDLINE_LINUX_DEFAULT="\)\(.*\)/\1\\$ignition_firstboot \2/' %{_sysconfdir}/default/grub
%{?update_bootloader_refresh_post}
fi
%service_add_post ignition-firstboot-complete.service
%preun dracut-grub2
%service_del_preun ignition-firstboot-complete.service
%postun dracut-grub2
if [ "$1" = 0 ] ; then
sed -i -E '/^GRUB_CMDLINE_LINUX_DEFAULT="/s/(\\\$)?ignition[._][^[:space:]"]+ ?//g' %{_sysconfdir}/default/grub
fi
%service_del_postun_without_restart ignition-firstboot-complete.service
%files %files
%license LICENSE %license LICENSE
@ -180,10 +137,4 @@ fi
%dir %{_unitdir}/ignition-delete-config.service.d %dir %{_unitdir}/ignition-delete-config.service.d
%{_unitdir}/ignition-delete-config.service.d/ignition-rmcfg-suse.conf %{_unitdir}/ignition-delete-config.service.d/ignition-rmcfg-suse.conf
%files dracut-grub2
%license LICENSE
%doc README.SUSE
%{_sysconfdir}/grub.d/02_ignition_firstboot
%{_prefix}/lib/systemd/system/ignition-firstboot-complete.service
%changelog %changelog

View File

@ -2,8 +2,16 @@
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh # ex: ts=8 sw=4 sts=4 et filetype=sh
check() {
# Omit if building for this already configured system
if [[ $hostonly ]] && [ -e /etc/machine-id ]; then
return 255
fi
return 0
}
depends() { depends() {
echo ignition dm crypt echo combustion crypt dm firstboot ignition
} }
install_ignition_unit() { install_ignition_unit() {