From 6c949065c9942291f235b04177a8c2b6c8755cb2 Mon Sep 17 00:00:00 2001 From: Sophie Schiller Date: Mon, 22 Jul 2024 21:21:48 +0200 Subject: [PATCH 1/7] vmhost: document interface change --- nodes/sophie/vmhost.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodes/sophie/vmhost.py b/nodes/sophie/vmhost.py index d9321d1..d6e56f3 100644 --- a/nodes/sophie/vmhost.py +++ b/nodes/sophie/vmhost.py @@ -53,7 +53,7 @@ nodes['sophie.vmhost'] = { 'bridges': { 'br0': { 'match': { - 'eno2', + 'eno1', }, }, 'br1': { From 242279636f8d1a4008eb7a156ec415caf4be5bcb Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Tue, 30 Jul 2024 17:44:09 +0200 Subject: [PATCH 2/7] bundles/raspberrypi: things have changed since buster --- bundles/raspberrypi/files/config.txt | 1 + bundles/raspberrypi/items.py | 4 ++-- bundles/raspberrypi/metadata.py | 9 +++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/bundles/raspberrypi/files/config.txt b/bundles/raspberrypi/files/config.txt index 00079b2..445fc63 100644 --- a/bundles/raspberrypi/files/config.txt +++ b/bundles/raspberrypi/files/config.txt @@ -12,6 +12,7 @@ gpu_mem=${node.metadata['raspberrypi'].get('gpu_mem', 128)} % if node.os == 'debian': arm_64bit=1 % endif +arm_boost=1 % for item in sorted(node.metadata['raspberrypi'].get('config.txt', set())): ${item} diff --git a/bundles/raspberrypi/items.py b/bundles/raspberrypi/items.py index aab459a..41f5544 100644 --- a/bundles/raspberrypi/items.py +++ b/bundles/raspberrypi/items.py @@ -15,11 +15,11 @@ actions = { } files = { - '/boot/cmdline.txt': { + '/boot/firmware/cmdline.txt': { 'content': ' '.join(sorted(node.metadata['raspberrypi']['cmdline'])), **file_perms, }, - '/boot/config.txt': { + '/boot/firmware/config.txt': { 'content_type': 'mako', 'context': node.metadata['raspberrypi'], **file_perms, diff --git a/bundles/raspberrypi/metadata.py b/bundles/raspberrypi/metadata.py index a4c10c2..5c8f42a 100644 --- a/bundles/raspberrypi/metadata.py +++ b/bundles/raspberrypi/metadata.py @@ -1,5 +1,6 @@ defaults = { 'apt': { + 'clean_old_kernels': False, 'packages': { 'dhcpcd5': { 'installed': False, @@ -14,6 +15,14 @@ defaults = { 'installed': False, }, }, + 'repos': { + 'raspi': { + 'install_gpg_key': False, + 'items': { + 'deb http://archive.raspberrypi.org/debian/ {os_release} main', + }, + }, + }, }, 'raspberrypi': { 'default-target': 'multi-user.target', From b1790ece358f9b2d9fe0f611f899efeb19b73b42 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Tue, 30 Jul 2024 17:45:05 +0200 Subject: [PATCH 3/7] bundles/apt: 32bit raspbian is no longer supported --- bundles/apt/files/sources.list-raspbian-buster | 1 - bundles/apt/items.py | 3 --- 2 files changed, 4 deletions(-) delete mode 100644 bundles/apt/files/sources.list-raspbian-buster diff --git a/bundles/apt/files/sources.list-raspbian-buster b/bundles/apt/files/sources.list-raspbian-buster deleted file mode 100644 index d52d1f9..0000000 --- a/bundles/apt/files/sources.list-raspbian-buster +++ /dev/null @@ -1 +0,0 @@ -deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi diff --git a/bundles/apt/items.py b/bundles/apt/items.py index 05528d0..0f3f92d 100644 --- a/bundles/apt/items.py +++ b/bundles/apt/items.py @@ -7,9 +7,6 @@ supported_os = { 12: 'bookworm', 99: 'unstable', }, - 'raspbian': { - 10: 'buster', - }, } try: From 7649396b8a102d9676b53d74fc21fda6338a60a4 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Tue, 30 Jul 2024 17:54:24 +0200 Subject: [PATCH 4/7] bundles/mosquitto: only install telegraf plugin if we have telegraf --- bundles/mosquitto/items.py | 16 ++++++++-------- bundles/mosquitto/metadata.py | 4 +++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/bundles/mosquitto/items.py b/bundles/mosquitto/items.py index 92eb1b5..1b16413 100644 --- a/bundles/mosquitto/items.py +++ b/bundles/mosquitto/items.py @@ -5,12 +5,6 @@ files = { 'svc_systemd:mosquitto:restart', }, }, - '/usr/local/bin/tasmota-telegraf-plugin': { - 'mode': '0755', - 'needs': { - 'pkg_apt:python3-paho-mqtt', - }, - }, } svc_systemd = { @@ -23,6 +17,12 @@ svc_systemd = { } if node.has_bundle('telegraf'): - files['/usr/local/bin/tasmota-telegraf-plugin']['triggers'] = { - 'svc_systemd:telegraf:restart', + files['/usr/local/bin/tasmota-telegraf-plugin'] = { + 'mode': '0755', + 'needs': { + 'pkg_apt:python3-paho-mqtt', + }, + 'triggers': { + 'svc_systemd:telegraf:restart', + }, } diff --git a/bundles/mosquitto/metadata.py b/bundles/mosquitto/metadata.py index 66199ac..213dac6 100644 --- a/bundles/mosquitto/metadata.py +++ b/bundles/mosquitto/metadata.py @@ -5,7 +5,6 @@ defaults = { 'packages': { 'mosquitto': {}, 'mosquitto-clients': {}, - 'python3-paho-mqtt': {}, # for telegraf plugin }, }, 'icinga2_api': { @@ -24,6 +23,9 @@ defaults = { }, } +if node.has_bundle('telegraf'): + defaults['apt']['packages']['python3-paho-mqtt'] = {} + @metadata_reactor.provides( 'firewall/port_rules', From de6073bdcf2d69fbd2869154ac2d69996a6acd46 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Wed, 31 Jul 2024 14:53:22 +0200 Subject: [PATCH 5/7] bundles/apt: add option to disable unattended upgrades --- bundles/apt/metadata.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bundles/apt/metadata.py b/bundles/apt/metadata.py index df84473..526f318 100644 --- a/bundles/apt/metadata.py +++ b/bundles/apt/metadata.py @@ -21,6 +21,9 @@ defaults = { 'cron/jobs/upgrade-and-reboot' ) def patchday(metadata): + if not node.metadata.get('apt/unattended-upgrades/enabled', True): + return {} + day = metadata.get('apt/unattended-upgrades/day') hour = metadata.get('apt/unattended-upgrades/hour') From fa47322bb0268224d189f2745d8cde47e15f0a49 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Wed, 31 Jul 2024 15:30:48 +0200 Subject: [PATCH 6/7] bundles/raspberrypi: fix config.txt for lcd display --- bundles/raspberrypi/files/config.txt | 23 +++++++++++++++-------- bundles/raspberrypi/metadata.py | 19 ++++++++++++++++++- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/bundles/raspberrypi/files/config.txt b/bundles/raspberrypi/files/config.txt index 445fc63..bf6751e 100644 --- a/bundles/raspberrypi/files/config.txt +++ b/bundles/raspberrypi/files/config.txt @@ -1,23 +1,30 @@ disable_overscan=1 -hdmi_force_hotplug=1 -dtparam=spi=on dtparam=audio=on -dtoverlay=vc4-fkms-v3d +dtoverlay=vc4-kms-v3d max_framebuffers=2 -hdmi_drive=2 force_turbo=1 -gpu_mem=${node.metadata['raspberrypi'].get('gpu_mem', 128)} +gpu_mem=${node.metadata.get('raspberrypi/gpu_mem', 128)} + +% if node.metadata.get('raspberrypi/enable_display'): +display_auto_detect=1 +% else: +dtparam=i2c_arm=on +dtparam=i2s=on +dtparam=spi=on +hdmi_drive=2 +hdmi_force_hotplug=1 +% endif % if node.os == 'debian': arm_64bit=1 % endif arm_boost=1 -% for item in sorted(node.metadata['raspberrypi'].get('config.txt', set())): +% for item in sorted(node.metadata.get('raspberrypi/config.txt', set())): ${item} % endfor -% if node.metadata['raspberrypi'].get('camera', False): -start_x=1 +% if node.metadata.get('raspberrypi/enable_camera', False): +camera_auto_detect=1 % endif diff --git a/bundles/raspberrypi/metadata.py b/bundles/raspberrypi/metadata.py index 5c8f42a..80eac1a 100644 --- a/bundles/raspberrypi/metadata.py +++ b/bundles/raspberrypi/metadata.py @@ -25,7 +25,6 @@ defaults = { }, }, 'raspberrypi': { - 'default-target': 'multi-user.target', 'cmdline': { 'console=tty1', 'root=/dev/mmcblk0p2', @@ -37,6 +36,8 @@ defaults = { 'plymouth.ignore-serial-consoles', 'net.ifnames=0', }, + 'default-target': 'multi-user.target', + 'enable_display': False, }, 'systemd': { 'journal': { @@ -46,3 +47,19 @@ defaults = { }, }, } + + +@metadata_reactor.provides( + 'raspberrypi/cmdline', +) +def display(metadata): + if not metadata.get('raspberrypi/enable_display'): + return {} + + return { + 'raspberrypi': { + 'cmdline': { + 'video=DSI-1:800x480@60,rotate=180', + }, + }, + } From 89000c12e64aea7a7e608ba9a441ef861032f3ce Mon Sep 17 00:00:00 2001 From: Sophie Schiller Date: Mon, 22 Jul 2024 21:21:48 +0200 Subject: [PATCH 7/7] vmhost: document interface change --- nodes/sophie/vmhost.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodes/sophie/vmhost.py b/nodes/sophie/vmhost.py index d9321d1..d6e56f3 100644 --- a/nodes/sophie/vmhost.py +++ b/nodes/sophie/vmhost.py @@ -53,7 +53,7 @@ nodes['sophie.vmhost'] = { 'bridges': { 'br0': { 'match': { - 'eno2', + 'eno1', }, }, 'br1': {