- Update to version 2.12.0:

* news: add notes for 2.12.0
  * stages/files: add previousReport to result report
  * tests: fix linter warning
  * workflows: limit permissions to reading repo contents
  * workflows: bump linter version
  * go.mod: revendor
  * Drop EOL Go versions
  * internal/distro: drop DiskByIDDir
  * providers/azure: add support for azure gen2 VMs
  * stages/mount: correctly relabel the root of a fresh ext4 filesystem
  * exec: fix permissions for mountpoints in home dirs
  * tests: drop os.ModeDir requirement in mode of output directories
  * examples: reboot with --force
  * exec/util: add blkid API to query block devices based on FSTYPE
  * stages/files: use IntToPtr() in createCrypttabEntries()
  * stages/files: write result report to /var/lib/ignition
  * engine: persist fetched config summaries in State
  * stages/disks: use State to persist keyfiles for files stage
  * *: add general mechanism for persisting state between stages
  * main: drop -clear-cache flag
  * engine: don't hardcode neednet path
  * fetch-offline: return ErrNeedNet if we need net
  * engine: switch Engine.logReport() to pointer receiver
  * engine: fix incorrect error in log message
  * dracut: drop ignition-setup-user.service
  * dracut: drop reference to ignition-setup-base.service
  * providers/gcp: access GCP metadata service by IP address
  * Remove ignition-firstboot-complete.service
  * OWNERS: remove
  * internal/exec/util: drop device argument from cResultToErr()
  * docs/config*: document storage.luks.clevis.threshold default
  * ci: disable spec bump external test workaround
  * docs: Add Ignition release / Spec version table
  * templates: update example releng signing ticket
  * templates: don't update %gotest lines
* Provide ignition-firstboot-complete.service (removed by upstream
  due to correctly being considered distro spcific), based on the
  old upstream version; removed all non-SUSE specific stuff and
  integrated our own changes
* Removed change-ignition-firstboot-path.conf (changes are
  integrated into ignition-firstboot-complete.service now).
* Provide ignition-setup-user.service  (removed by upstream due
  to correctly being considered distro spcific), based on the old
  upstream version.
* Renamed ignition-setup-user-suse.sh to ignition-setup-user.sh
* Adapted ignition-generator-suse and module-setup.sh to use the
  custom ignition-setup-user.service (no overriding of parts of the
  service file necessary any more).
* Synced ignition-kargs-helper script with upstream example
* Raising minimum Go version to 1.15 as required by upstream

OBS-URL: https://build.opensuse.org/package/show/devel:kubic:ignition/ignition?expand=0&rev=79
This commit is contained in:
Ignaz Forster 2021-08-09 15:33:18 +00:00 committed by Git OBS Bridge
parent 9cfdb5f96a
commit 406cbf31e8
14 changed files with 139 additions and 36 deletions

View File

@ -10,13 +10,17 @@ 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-suse.sh / ignition-userconfig-timeout*.conf: * ignition-setup-user.service / ignition-setup-use.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 putting the (e.g. by attaching a USB flash drive with that name) instead of using the
file onto the root partition. platform specific configuration storage mechanism.
* ignition-userconfig-timeout*.conf:
Set timeout for Ignition device so boot will just continue if no physical
Ignition configuration device is attached (e.g. when using platform
specific configuration).
* ignition-suse-generator: * ignition-suse-generator:
Supplements the upstream generator by adding dependencies to Supplements the upstream generator by adding dependencies to
ignition-setup-user-suse.sh and ignition-mount-initrd-fstab.service. ignition-setup-user.service and ignition-mount-initrd-fstab.service.
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: * 02_ignition_firstboot:
@ -28,8 +32,14 @@ Changes for openSUSE / SLE:
Ignition run if a flag file does not exist (e.g. on first boot). To trigger Ignition run if a flag file does not exist (e.g. on first boot). To trigger
an Ignition run manually just delete the file an Ignition run manually just delete the file
"/boot/writable/firstboot_happened". "/boot/writable/firstboot_happened".
* change-ignition-firstboot-path.conf: * ignition-firstboot-complete.service:
Overwrite CoreOS specific path. 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,7 +1,7 @@
<services> <services>
<service name="tar_scm" mode="disabled"> <service name="tar_scm" mode="disabled">
<param name="version">2.11.0</param> <param name="version">2.12.0</param>
<param name="revision">v2.11.0</param> <param name="revision">v2.12.0</param>
<param name="url">git://github.com/coreos/ignition.git</param> <param name="url">git://github.com/coreos/ignition.git</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>

View File

@ -1,6 +1,6 @@
<servicedata> <servicedata>
<service name="tar_scm"> <service name="tar_scm">
<param name="url">git://github.com/coreos/ignition.git</param> <param name="url">git://github.com/coreos/ignition.git</param>
<param name="changesrevision">c10c5d4ed00ea05d42223e2877d8f9bdb9f1ce49</param> <param name="changesrevision">02f4e481faf0d5aed0cd173437b3ae7a07a7388c</param>
</service> </service>
</servicedata> </servicedata>

View File

@ -1,3 +0,0 @@
[Service]
ExecStart=
ExecStart=/usr/bin/touch /boot/writable/firstboot_happened

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d3f05956d04ce608d8f613313c5462e9bcddcbdc9feb2671ac73925a3c1dace9
size 2280028

3
ignition-2.12.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:690f8f03c9c97f30929f87f4a82b383a8fede6bbb093d6de97e68a8a720e0905
size 2282292

View File

@ -0,0 +1,13 @@
[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/touch /boot/writable/firstboot_happened
[Install]
# Part of basic.target so this happens early on in firstboot
WantedBy=basic.target

View File

@ -74,6 +74,6 @@ EOF
echo "Clearing GRUB flag" echo "Clearing GRUB flag"
chroot /sysroot grub2-editenv - set health_checker_flag=0 || true chroot /sysroot grub2-editenv - set health_checker_flag=0 || true
reboot systemctl reboot --force
fi fi

View File

@ -0,0 +1,18 @@
[Unit]
Description=Ignition User Config Setup
Documentation=https://build.opensuse.org/package/view_file/devel:kubic:ignition/ignition/README.SUSE?expand=1
ConditionPathExists=/etc/initrd-release
DefaultDependencies=false
# We run before config fetch because we may copy in new/different configs
# for Ignition to consume.
Before=ignition-fetch-offline.service
OnFailure=emergency.target
OnFailureJobMode=isolate
[Service]
Type=oneshot
RemainAfterExit=yes
MountFlags=slave
ExecStart=/usr/sbin/ignition-setup-user

View File

@ -11,15 +11,14 @@ set -e
add_requires ignition-mount-initrd-fstab.service ignition-files.service add_requires ignition-mount-initrd-fstab.service ignition-files.service
add_requires ignition-enable-network.service ignition-fetch.service add_requires ignition-enable-network.service ignition-fetch.service
if [ -e "${UNIT_DIR}/ignition-setup-user.service.d/diskful.conf" ]; then if ! is-live-image; then
# ignition-setup-user.service should depend on the boot device node
# only on diskful boots
mkdir -p "${UNIT_DIR}/ignition-setup-user.service.d"
cat > "${UNIT_DIR}/ignition-setup-user.service.d/diskful.conf" <<EOF cat > "${UNIT_DIR}/ignition-setup-user.service.d/diskful.conf" <<EOF
[Unit] [Unit]
Wants=dev-disk-by\x2dlabel-ignition.device Wants=dev-disk-by\x2dlabel-ignition.device
After=dev-disk-by\x2dlabel-ignition.device After=dev-disk-by\x2dlabel-ignition.device
[Service]
ExecStart=
ExecStart=/usr/sbin/ignition-setup-user-suse
EOF EOF
fi fi

View File

@ -1,3 +1,58 @@
-------------------------------------------------------------------
Mon Aug 09 08:51:52 UTC 2021 - iforster@suse.com
- Update to version 2.12.0:
* news: add notes for 2.12.0
* stages/files: add previousReport to result report
* tests: fix linter warning
* workflows: limit permissions to reading repo contents
* workflows: bump linter version
* go.mod: revendor
* Drop EOL Go versions
* internal/distro: drop DiskByIDDir
* providers/azure: add support for azure gen2 VMs
* stages/mount: correctly relabel the root of a fresh ext4 filesystem
* exec: fix permissions for mountpoints in home dirs
* tests: drop os.ModeDir requirement in mode of output directories
* examples: reboot with --force
* exec/util: add blkid API to query block devices based on FSTYPE
* stages/files: use IntToPtr() in createCrypttabEntries()
* stages/files: write result report to /var/lib/ignition
* engine: persist fetched config summaries in State
* stages/disks: use State to persist keyfiles for files stage
* *: add general mechanism for persisting state between stages
* main: drop -clear-cache flag
* engine: don't hardcode neednet path
* fetch-offline: return ErrNeedNet if we need net
* engine: switch Engine.logReport() to pointer receiver
* engine: fix incorrect error in log message
* dracut: drop ignition-setup-user.service
* dracut: drop reference to ignition-setup-base.service
* providers/gcp: access GCP metadata service by IP address
* Remove ignition-firstboot-complete.service
* OWNERS: remove
* internal/exec/util: drop device argument from cResultToErr()
* docs/config*: document storage.luks.clevis.threshold default
* ci: disable spec bump external test workaround
* docs: Add Ignition release / Spec version table
* templates: update example releng signing ticket
* templates: don't update %gotest lines
* Provide ignition-firstboot-complete.service (removed by upstream
due to correctly being considered distro spcific), based on the
old upstream version; removed all non-SUSE specific stuff and
integrated our own changes
* Removed change-ignition-firstboot-path.conf (changes are
integrated into ignition-firstboot-complete.service now).
* Provide ignition-setup-user.service (removed by upstream due
to correctly being considered distro spcific), based on the old
upstream version.
* Renamed ignition-setup-user-suse.sh to ignition-setup-user.sh
* Adapted ignition-generator-suse and module-setup.sh to use the
custom ignition-setup-user.service (no overriding of parts of the
service file necessary any more).
* Synced ignition-kargs-helper script with upstream example
* Raising minimum Go version to 1.15 as required by upstream
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Jul 28 09:16:19 UTC 2021 - Thorsten Kukuk <kukuk@suse.com> Wed Jul 28 09:16:19 UTC 2021 - Thorsten Kukuk <kukuk@suse.com>

View File

@ -17,7 +17,7 @@
Name: ignition Name: ignition
Version: 2.11.0 Version: 2.12.0
Release: 0 Release: 0
Summary: First boot installer and configuration tool Summary: First boot installer and configuration tool
License: Apache-2.0 License: Apache-2.0
@ -29,12 +29,13 @@ Source2: ignition-rpmlintrc
Source3: ignition-suse-generator Source3: ignition-suse-generator
Source4: module-setup.sh Source4: module-setup.sh
Source5: 02_ignition_firstboot Source5: 02_ignition_firstboot
Source6: change-ignition-firstboot-path.conf Source6: ignition-firstboot-complete.service
Source7: README.SUSE Source7: README.SUSE
Source8: ignition-setup-user-suse.sh Source8: ignition-setup-user.sh
Source9: ignition-enable-network.service Source9: ignition-setup-user.service
Source10: ignition-enable-network.sh Source10: ignition-enable-network.service
Source11: ignition-kargs-helper Source11: ignition-enable-network.sh
Source12: ignition-kargs-helper
Source20: ignition-userconfig-timeout.conf Source20: ignition-userconfig-timeout.conf
Source21: ignition-userconfig-timeout-arm.conf Source21: ignition-userconfig-timeout-arm.conf
Patch2: 0002-allow-multiple-mounts-of-same-device.patch Patch2: 0002-allow-multiple-mounts-of-same-device.patch
@ -42,7 +43,7 @@ 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.13 BuildRequires: golang(API) >= 1.15
Requires: %{name}-dracut-grub2 Requires: %{name}-dracut-grub2
Requires: dracut Requires: dracut
Recommends: %{_sbindir}/groupadd Recommends: %{_sbindir}/groupadd
@ -86,8 +87,8 @@ which creates firstboot_happened after the first boot.
%patch2 -p1 %patch2 -p1
mkdir dracut/30ignition-microos grub systemd_suse mkdir dracut/30ignition-microos grub systemd_suse
chmod +x %{SOURCE3} %{SOURCE4} %{SOURCE8} %{SOURCE11} chmod +x %{SOURCE3} %{SOURCE4} %{SOURCE8} %{SOURCE12}
cp %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE8} %{SOURCE9} %{SOURCE10} dracut/30ignition-microos/ cp %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE8} %{SOURCE9} %{SOURCE10} %{SOURCE11} dracut/30ignition-microos/
%ifarch aarch64 %{arm} %ifarch aarch64 %{arm}
cp %{SOURCE21} dracut/30ignition-microos/ignition-userconfig-timeout.conf cp %{SOURCE21} dracut/30ignition-microos/ignition-userconfig-timeout.conf
%else %else
@ -96,7 +97,7 @@ cp %{SOURCE20} dracut/30ignition-microos/ignition-userconfig-timeout.conf
cp %{SOURCE5} grub/ cp %{SOURCE5} grub/
cp %{SOURCE6} systemd_suse/ cp %{SOURCE6} systemd_suse/
cp %{SOURCE7} . cp %{SOURCE7} .
cp %{SOURCE11} dracut/30ignition/ignition-kargs-helper.sh cp %{SOURCE12} dracut/30ignition/ignition-kargs-helper.sh
%build %build
sed -i -e 's|go build -ldflags|go build -buildmode=pie -ldflags|g' build sed -i -e 's|go build -ldflags|go build -buildmode=pie -ldflags|g' build
@ -106,9 +107,9 @@ env VERSION=%{version} GLDFLAGS='-X github.com/coreos/ignition/v2/internal/distr
make -o all install DESTDIR=%{buildroot} make -o all install DESTDIR=%{buildroot}
install -d %{buildroot}%{_sysconfdir}/grub.d install -d %{buildroot}%{_sysconfdir}/grub.d
install -d %{buildroot}%{_prefix}/lib/systemd/system/ignition-firstboot-complete.service.d install -d %{buildroot}%{_prefix}/lib/systemd/system
install -p -m 0755 grub/* %{buildroot}%{_sysconfdir}/grub.d/ install -p -m 0755 grub/* %{buildroot}%{_sysconfdir}/grub.d/
install -p -m 0644 systemd_suse/*.conf %{buildroot}%{_prefix}/lib/systemd/system/ignition-firstboot-complete.service.d/ install -p -m 0644 systemd_suse/* %{buildroot}%{_prefix}/lib/systemd/system/
%post %post
%{?regenerate_initrd_post} %{?regenerate_initrd_post}
@ -159,6 +160,5 @@ fi
%doc README.SUSE %doc README.SUSE
%{_sysconfdir}/grub.d/02_ignition_firstboot %{_sysconfdir}/grub.d/02_ignition_firstboot
%{_prefix}/lib/systemd/system/ignition-firstboot-complete.service %{_prefix}/lib/systemd/system/ignition-firstboot-complete.service
%{_prefix}/lib/systemd/system/ignition-firstboot-complete.service.d/
%changelog %changelog

View File

@ -6,6 +6,16 @@ depends() {
echo ignition echo ignition
} }
install_ignition_unit() {
local unit="$1"; shift
local target="${1:-ignition-complete.target}"; shift
local instantiated="${1:-$unit}"; shift
inst_simple "$moddir/$unit" "$systemdsystemunitdir/$unit"
# note we `|| exit 1` here so we error out if e.g. the units are missing
# see https://github.com/coreos/fedora-coreos-config/issues/799
systemctl -q --root="$initdir" add-requires "$target" "$instantiated" || exit 1
}
install() { install() {
inst_simple "$moddir/ignition-enable-network.service" \ inst_simple "$moddir/ignition-enable-network.service" \
"$systemdsystemunitdir/ignition-enable-network.service" "$systemdsystemunitdir/ignition-enable-network.service"
@ -17,9 +27,10 @@ install() {
"/etc/systemd/system-generators/ignition-generator" "/etc/systemd/system-generators/ignition-generator"
inst_script "$moddir/ignition-enable-network.sh" \ inst_script "$moddir/ignition-enable-network.sh" \
"/usr/sbin/ignition-enable-network" "/usr/sbin/ignition-enable-network"
inst_script "$moddir/ignition-setup-user-suse.sh" \ inst_script "$moddir/ignition-setup-user.sh" \
"/usr/sbin/ignition-setup-user-suse" "/usr/sbin/ignition-setup-user"
inst_multiple awk systemd-detect-virt inst_multiple awk systemd-detect-virt
install_ignition_unit ignition-setup-user.service
} }
installkernel() { installkernel() {