Fix agent state get init (#643)

This commit is contained in:
Itxaka 2024-01-31 13:11:16 +01:00 committed by GitHub
parent 3cce86e58f
commit 9fd7387342
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 47 additions and 31 deletions

View File

@ -1,4 +1,4 @@
packages:
- name: "kairos-overlay-files"
category: "static"
version: "1.1.24"
version: "1.1.25"

View File

@ -1,11 +1,11 @@
name: "Start agent"
stages:
boot:
- if: '[ ! -f "/run/cos/recovery_mode" ] && [ "$(kairos-agent state get kairos.init)" == "systemd" ]'
- if: '[ ! -f "/run/cos/recovery_mode" ] && [ -d "/usr/share/systemd" ]'
commands:
- systemctl start kairos-agent
- systemctl enable kairos-agent
initramfs:
- if: '[ ! -f "/run/cos/recovery_mode" ] && [ "$(kairos-agent state get kairos.init)" == "systemd" ]'
- if: '[ ! -f "/run/cos/recovery_mode" ] && [ -d "/usr/share/systemd" ]'
commands:
- systemctl enable kairos-agent

View File

@ -2,7 +2,7 @@ name: "Default network configuration"
stages:
rootfs.before:
- name: "Enable systemd-network config files for DHCP" # Needed if systemd-networkd runs in the initramfs!
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
directories:
- path: "/etc/systemd/network/" # doesnt exist on initramfs
permissions: 0775
@ -35,7 +35,7 @@ stages:
- networkctl reload # make sure it reloads our config files
initramfs:
- name: "Enable systemd-network config files for DHCP"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
files:
- path: /etc/systemd/network/20-dhcp.network
permissions: 0644
@ -62,30 +62,30 @@ stages:
commands:
- networkctl reload # make sure it reloads our config files
- name: "Disable NetworkManager and wicked"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
systemctl:
disable:
- NetworkManager
- wicked
- name: "Enable systemd-network and systemd-resolved"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
systemctl:
enable:
- systemd-networkd
- systemd-resolved
- name: "Link /etc/resolv.conf to systemd resolv.conf"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ] && [ -f /etc/hosts ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] && [ -f /etc/hosts ]'
commands:
- rm /etc/resolv.conf
- ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
boot:
- name: "Reload systemd-networkd config"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
commands:
- networkctl reload # make sure it reloads our config files
fs:
- name: "Reload systemd-networkd config"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
commands:
- networkctl reload # make sure it reloads our config files
# dns:

View File

@ -3,7 +3,7 @@ stages:
initramfs:
- name: "Create OpenRC services"
if: |
[ "$(kairos-agent state get kairos.init)" == "openrc" ]
[ -f "/sbin/openrc" ]
files:
- path: /etc/init.d/cos-setup-boot
permissions: 0755
@ -118,7 +118,7 @@ stages:
group: 0
- name: "Enable OpenRC services"
if: |
[ "$(kairos-agent state get kairos.init)" == "openrc" ]
[ -f "/sbin/openrc" ]
commands:
- mkdir -p /etc/runlevels/default
- ln -sf ../../init.d/cos-setup-boot /etc/runlevels/default/cos-setup-boot

View File

@ -13,7 +13,7 @@ stages:
fs.inotify.max_user_watches: 524288
initramfs:
- name: "Default systemd config"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
systemctl:
enable:
- multi-user.target
@ -34,7 +34,7 @@ stages:
commands:
- ssh-keygen -A
- name: "Create systemd services"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
files:
- path: /etc/systemd/system/cos-setup-boot.service
permissions: 0644
@ -123,7 +123,7 @@ stages:
[Install]
WantedBy=multi-user.target
- name: "Enable systemd services"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
commands:
- ln -sf /etc/systemd/system/cos-setup-reconcile.timer /etc/systemd/system/multi-user.target.wants/cos-setup-reconcile.timer
- ln -sf /etc/systemd/system/cos-setup-fs.service /etc/systemd/system/sysinit.target.wants/cos-setup-fs.service

View File

@ -52,7 +52,7 @@ stages:
# Run this in the after stage so it doesnt collide with other initramfs changes to the /etc/inittab
# Otherwise this can lead to 2 steps modifying the inittab at the same time and overriding or not cleaning it properly
- name: "Enable serial login for alpine" # https://wiki.alpinelinux.org/wiki/Enable_Serial_Console_on_Boot
if: '[ "$(kairos-agent state get kairos.init)" == "openrc" ]'
if: '[ -e /sbin/openrc ]'
commands:
- sed -i -e 's/ttyS0.*//g' /etc/inittab
- echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab

View File

@ -2,7 +2,7 @@ name: "sysext"
stages:
fs.after:
- name: "Default sysext extensions dirs"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
directories:
- path: /etc/extensions
- path: /run/extensions
@ -11,7 +11,7 @@ stages:
- path: /usr/local/lib/extensions
initramfs:
- name: "systemd-sysext initramfs settings"
if: '[ "$(kairos-agent state get kairos.init)" == "systemd" ]'
if: '[ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ]'
systemctl:
enable:
- systemd-sysext

View File

@ -4,7 +4,8 @@ stages:
# TODO: Drop interactive-install keyword in Kairos 4.0.0
- if: |
(grep -qv "interactive-install" /proc/cmdline || grep -qv "install-mode-interactive" /proc/cmdline ) && \
[ -f /run/cos/live_mode ] || [ -f /run/cos/uki_install_mode ] && [ "$(kairos-agent state get kairos.init)" == "systemd" ]
[ -f /run/cos/live_mode ] || [ -f /run/cos/uki_install_mode ] && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
files:
- path: /etc/systemd/system/serial-getty@ttyS0.service.d/override.conf
content: |
@ -23,7 +24,7 @@ stages:
if: |
(grep -qv "interactive-install" /proc/cmdline || grep -qv "install-mode-interactive" /proc/cmdline) && \
[ -f /run/cos/live_mode ] && \
[ "$(kairos-agent state get kairos.init)" == "openrc" ]
[ -f "/sbin/openrc" ]
files:
- path: /etc/motd
content: |

View File

@ -1,6 +1,6 @@
stages:
initramfs.before:
- name: "Blacklist bpfilter on Alpine ( bug: https://github.com/kairos-io/kairos/issues/277 )"
if: '[ "$(kairos-agent state get kairos.init)" == "openrc" ]'
if: '[ -e /sbin/openrc ]'
commands:
- echo "install bpfilter /bin/false" > /etc/modprobe.d/blacklist_bpfilter.conf

View File

@ -3,14 +3,15 @@ stages:
initramfs:
- name: "Starts kairos-recovery and generate a temporary pass"
if: |
grep -q "kairos.remote_recovery_mode" /proc/cmdline && [ "$(kairos-agent state get kairos.init)" == "systemd" ]
grep -q "kairos.remote_recovery_mode" /proc/cmdline && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
commands:
- systemctl disable getty@tty1
- systemctl stop getty@tty1
- systemctl mask getty@tty1
- systemctl enable kairos-recovery
- name: "Starts kairos-recovery for openRC based systems"
if: grep -q "kairos.remote_recovery_mode" /proc/cmdline && [ "$(kairos-agent state get kairos.init)" == "openrc" ]
if: grep -q "kairos.remote_recovery_mode" /proc/cmdline && [ -f "/sbin/openrc" ]
commands:
- sed -i -e 's/tty1.*//g' /etc/inittab
- echo "tty1::respawn:/usr/bin/kairos-agent recovery tty1" >> /etc/inittab

View File

@ -3,14 +3,15 @@ stages:
initramfs:
- name: "Starts kairos-reset for systemd based systems"
if: |
grep -q "kairos.reset" /proc/cmdline && [ "$(kairos-agent state get kairos.init)" == "systemd" ]
grep -q "kairos.reset" /proc/cmdline && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
commands:
- systemctl disable getty@tty1
- systemctl stop getty@tty1
- systemctl mask getty@tty1
- systemctl enable kairos-reset
- name: "Starts kairos-reset for openRC-based systems"
if: grep -q "kairos.reset" /proc/cmdline && [ "$(kairos-agent state get kairos.init)" == "openrc" ]
if: grep -q "kairos.reset" /proc/cmdline && [ -f "/sbin/openrc" ]
commands:
- sed -i -e 's/tty1.*//g' /etc/inittab
- echo "tty1::respawn:/usr/bin/kairos-agent reset tty1" >> /etc/inittab

View File

@ -5,7 +5,10 @@ stages:
# and we dont want to trigger both
# Works in livecd or uki install mode
# TODO: Drop nodepair.enable keyword in Kairos 4.0.0
- if: (grep -q "install-mode" /proc/cmdline || grep -q "nodepair.enable" /proc/cmdline ) && grep -vq "install-mode-interactive" && ([ "$(kairos-agent state get boot)" == "livecd_boot" ] || [ -f /run/cos/uki_install_mode ]) && [ "$(kairos-agent state get kairos.init)" == "systemd" ]
- if: |
(grep -q "install-mode" /proc/cmdline || grep -q "nodepair.enable" /proc/cmdline ) && \
([ -f /run/cos/live_mode ] || [ -f /run/cos/uki_install_mode ]) && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
commands:
- systemctl disable getty@tty1
- systemctl stop getty@tty1
@ -14,14 +17,19 @@ stages:
- systemctl enable kairos-webui
# Starts installer on boot for openRC based systems
# TODO: Drop nodepair.enable keyword in Kairos 4.0.0
- if: (grep -q "install-mode" /proc/cmdline || grep -q "nodepair.enable" /proc/cmdline ) && grep -vq "install-mode-interactive" && [ "$(kairos-agent state get kairos.init)" == "openrc" ]
- if: |
(grep -q "install-mode" /proc/cmdline || grep -q "nodepair.enable" /proc/cmdline ) && \
([ -f /run/cos/live_mode ] || [ -f /run/cos/uki_install_mode ]) && \
[ -f "/sbin/openrc" ]
commands:
- sed -i -e 's/tty1.*//g' /etc/inittab
- echo "tty1::respawn:/usr/bin/kairos-agent install tty1" >> /etc/inittab
# Starts interactive installer on boot for systemd based systems in livecd or uki install mode
# TODO: Drop interactive-install keyword in Kairos 4.0.0
- if: |
(grep -q "interactive-install" /proc/cmdline || grep -q "install-mode-interactive" /proc/cmdline) && ([ "$(kairos-agent state get boot)" == "livecd_boot" ] || [ -f /run/cos/uki_install_mode ]) && [ "$(kairos-agent state get kairos.init)" == "systemd" ]
(grep -q "interactive-install" /proc/cmdline || grep -q "install-mode-interactive" /proc/cmdline) && \
([ -f /run/cos/live_mode ] || [ -f /run/cos/uki_install_mode ]) && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
commands:
- systemctl stop kairos
- systemctl disable kairos
@ -31,16 +39,21 @@ stages:
- systemctl enable kairos-interactive
# Starts installer on boot for openRC based systems
# TODO: Drop interactive-install keyword in Kairos 4.0.0
- if: (grep -q "interactive-install" /proc/cmdline || grep -q "install-mode-interactive" /proc/cmdline) && [ "$(kairos-agent state get kairos.init)" == "openrc" ]
- if: |
(grep -q "interactive-install" /proc/cmdline || grep -q "install-mode-interactive" /proc/cmdline) && \
([ -f /run/cos/live_mode ] || [ -f /run/cos/uki_install_mode ]) && \
[ -f "/sbin/openrc" ]
commands:
- sed -i -e 's/tty1.*//g' /etc/inittab
- echo "tty1::respawn:/usr/bin/kairos-agent interactive-install --shell tty1" >> /etc/inittab
boot:
- if: |
[ "$(kairos-agent state get boot)" == "livecd_boot" ] && [ "$(kairos-agent state get kairos.init)" == "openrc" ]
([ -f /run/cos/live_mode ] || [ -f /run/cos/uki_install_mode ]) && \
[ -f "/sbin/openrc" ]
commands:
- rc-service kairos-webui start
- if: |
([ "$(kairos-agent state get boot)" == "livecd_boot" ] || [ -f /run/cos/uki_install_mode ]) && [ "$(kairos-agent state get kairos.init)" == "systemd" ]
([ -f /run/cos/live_mode ] || [ -f /run/cos/uki_install_mode ]) && \
( [ -e "/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] || [ -e "/usr/sbin/systemctl" ] || [ -e "/usr/bin/systemctl" ] )
commands:
- systemctl start kairos-webui