summaryrefslogtreecommitdiffstats
path: root/molecule
AgeCommit message (Collapse)AuthorFilesLines
3 daysFix archlinux testAhmed Abdelhalim1-10/+8
Co-Authored-By: Claude.ai
3 daysAdd awscli role with configuration on pi for garage backend w/testingAhmed Abdelhalim5-0/+25
3 daysDisable pacman sandbox in archlinux molecule image for QEMU compatAhmed Abdelhalim1-0/+8
pacman 7.0+'s alpm sandbox runs package download/extraction under a restricted user + seccomp filter. That filter needs syscalls QEMU's user-mode emulation doesn't support, so building this amd64 image on an arm64 host (e.g. Apple Silicon) fails immediately on the first pacman call: error: error restricting syscalls via seccomp: 22! error: switching to sandbox user 'alpm' failed! Confirmed directly: `pacman -Sy` fails with the sandbox enabled and succeeds cleanly with `DisableSandbox` set in pacman.conf. Scoped entirely to this test image, not any real role/target this repo manages. Safe for CI too — the sandbox is a defense-in-depth layer protecting the host from a compromised download during package fetch, irrelevant to a container that's destroyed immediately after each test run; disabling it changes no package-resolution or install behavior, only removes that extra isolation layer. Native (non-emulated) CI runners were never affected by the underlying bug either way. Co-Authored-By: Claude.ai
3 daysMask dhcpcd in molecule images to fix DNS resolution failuresAhmed Abdelhalim3-0/+18
dhcpcd is installed (and enabled by its package's default preset) in the raspberrypi/debian/ubuntu/proxmox molecule images to mimic each distro's default boot environment. Inside podman's virtual network there's no real DHCP server for it to negotiate with, so it only ever gets a link-local address and overwrites /etc/resolv.conf with an empty file (just dhcpcd's template comments, no nameserver line). This happens within the first minute or two of container boot — fast enough to break DNS resolution for apt-get tasks later in the same converge run. Reproduced and confirmed on all four affected scenarios (raspberrypi, debian, ubuntu, proxmox — each installs dhcpcd the same way): apt-get tasks failed with repeated "Temporary failure resolving" errors at varying points in the play depending on timing. archlinux/archlinux-gnome and git (Alpine) don't install dhcpcd and are unaffected. The network role already intends to remove dhcpcd/avahi-daemon entirely (replacing them with NetworkManager/systemd-resolved), but that removal task runs after earlier package-install steps — so the very service being phased out was sabotaging tasks that ran before it got purged. Masking dhcpcd.service at image-build time prevents it from ever running in these test containers, closing the race without touching any role's actual task order or logic (which reflects real hardware, where dhcpcd does get a valid lease from an actual router). Co-Authored-By: Claude.ai
4 daysFix molecule testing DNS resolution failuresAhmed Abdelhalim1-0/+6
dhcpcd is installed (and enabled by its package's default preset) in the test container to mimic Raspberry Pi OS's default boot environment. Inside podman's virtual network there's no real DHCP server for it to negotiate with, so it only ever gets a link-local address and overwrites /etc/resolv.conf with an empty file (just dhcpcd's template comments, no nameserver line). This happens within the first ~1-2 minutes of container boot, which is fast enough to break DNS resolution for later apt-get tasks in the same converge run — observed failing on "network : Ensure network_packages are installed" with repeated "Temporary failure resolving 'deb.debian.org'". The network role already intends to remove dhcpcd/avahi-daemon entirely (replacing them with NetworkManager/systemd-resolved), but that removal task runs after the package-install step that was failing — so the very service being phased out was sabotaging the install of its replacement. Masking dhcpcd.service at image-build time prevents it from ever running in the test container, closing the race without touching the network role's actual task order or logic (which reflects real hardware, where dhcpcd does get a valid lease from an actual router). Confidence in this is medium Co-Authored-By: Claude.ai
4 daysAdd missing crond dependency for alpineAhmed Abdelhalim1-0/+1
4 daysFix restic install and add backup roleAhmed Abdelhalim1-0/+4
Co-Authored-By: Claude.ai
6 daysRefactor and clean up codeAhmed Abdelhalim1-2/+2
6 daysRename backup -> mount as a roleAhmed Abdelhalim1-5/+5
8 daysRefactor proxy setup on cgit to simplify setupAhmed Abdelhalim2-22/+0
8 daysFix testing git service on alpineAhmed Abdelhalim3-2/+25
8 daysTest proxy/cgit setupAhmed Abdelhalim2-0/+12
10 daysRename services to use .home.arpa network instead .localAhmed Abdelhalim2-3/+2
11 daysAdd tcpdump w/testingAhmed Abdelhalim6-0/+6
2026-07-10Extract logind lid configuration into it's own roleAhmed Abdelhalim5-0/+5
2026-07-07Add cgit role with testing of molecule serviceAhmed Abdelhalim3-0/+62
2026-07-06Fix network setup on pveAhmed Abdelhalim1-1/+1
2026-07-06Fix pve network setupAhmed Abdelhalim1-2/+1
2026-07-03Add missing testing vars and rolesAhmed Abdelhalim1-0/+4
2026-07-03Refactor pve and add pve-network role to configure the pve networkAhmed Abdelhalim1-0/+1
2026-07-02Add ethtool testingAhmed Abdelhalim6-0/+6
2026-07-01Add proxmoxer dependency roleAhmed Abdelhalim1-0/+1
2026-06-29Move group_vars around and explicitly set group in molecule testingAhmed Abdelhalim7-0/+15
2026-06-27Add restic role w/testingAhmed Abdelhalim6-0/+6
2026-06-25Fix mount point testing on rpiAhmed Abdelhalim1-1/+1
This is fixing the tmpfs mount point default mode 1777 to 0755 Co-authored-by: Claude.ai
2026-06-24Add garage health check before provisioning keysAhmed Abdelhalim1-2/+2
2026-06-24Test backup role using tmpfs instead of mounted loop deviceAhmed Abdelhalim3-45/+3
Co-authored-by: Claude.ai
2026-06-23Fix testingAhmed Abdelhalim3-4/+3
The timezone module was reading back the Etc/GMT instead of GMT, this fixes the issue and avoid unnecessary code that needs to handle different distro quirks (debian) Fix grafana testing to use the URL
2026-06-22Refactor installing grafana dashboards using URL onlyAhmed Abdelhalim1-3/+2
Refactor prometheus extra scraping jobs
2026-06-22Add garage to rpi to use as s3-compatible backend for backupsAhmed Abdelhalim1-0/+1
2026-06-22Add readme on using backup role and fix testingAhmed Abdelhalim1-0/+1
2026-06-22Use more stable approach for testing devices and fix linting issuesAhmed Abdelhalim2-7/+22
This approach uses losetup to query the devices instead of flaky unstable cache!
2026-06-22Add testing with virtual disk (as backup) for rpi scenarioAhmed Abdelhalim3-0/+31
2026-06-22Rename proxmox-ve role to pveAhmed Abdelhalim1-1/+1
2026-06-19Ignore the failing task from the test as it is irrelevant to real PVEAhmed Abdelhalim1-2/+1
2026-06-19Update docker image to simulate proxmox envAhmed Abdelhalim1-1/+2
2026-06-18Implement support for conditional proxy (nginx or caddy)Ahmed Abdelhalim1-1/+2
2026-05-06Add testing for proxmoxAhmed Abdelhalim3-0/+145
2026-04-12Add libheif (heif-convert script) w/testingAhmed Abdelhalim5-0/+5
2026-04-10Pass GITHUB_TOKEN to docker to avoid rate limiting testsAhmed Abdelhalim5-0/+5
2026-04-10Add gnome-newsflash (RSS reader) role w/testingAhmed Abdelhalim5-0/+5
2026-04-07Add gnome-disk-utility role w/testingAhmed Abdelhalim5-0/+5
2026-04-01Add localsend role w/testingAhmed Abdelhalim5-0/+5
2026-03-06Add planify gnome appAhmed Abdelhalim4-0/+4
2026-03-03Add mise roleAhmed Abdelhalim5-0/+5
2026-03-02Create specific prometheus node exporter roleAhmed Abdelhalim5-0/+5
2026-03-02Add tmuxinator CLI w/testing and tmux dependencyAhmed Abdelhalim4-4/+4
2026-03-01Refactor graphics driver rolesAhmed Abdelhalim2-2/+0
Now with the gpu_driver, the installing of the correct driver is delegated to this role, which orchestrate the installing of one or more drivers. This refactoring of the role/testing, means that the roles don't run on testing (intentionally), if a driver needs to be tested it will be added but for now it's not really all that beneficial to keep this 30+ minutes testing roles running just to test the packages existence. It also simplifies the roles, and added as a dependency for steam which is the main reason why these are needed to be installed (also better hyprland animations, but that's not as crucial as steam failing without the drivers).
2026-02-23Replace old evince with new papersAhmed Abdelhalim5-5/+5
2026-02-23Replace rnote with gradia and fix typo in teams roleAhmed Abdelhalim5-5/+5