public inbox for kdevops@lists.linux.dev
 help / color / mirror / Atom feed
* [PATCH 0/3] kdevops: add initial nixos support
@ 2025-08-27  9:32 Luis Chamberlain
  2025-08-27  9:32 ` [PATCH 1/3] common: use fallback for group inference on remote systems Luis Chamberlain
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Luis Chamberlain @ 2025-08-27  9:32 UTC (permalink / raw)
  To: Chuck Lever, Daniel Gomez, kdevops; +Cc: Luis Chamberlain

This adds a barebones nixos support. Enough to get ssh going and initial
mirror support. The mirror works but its empty as it has no packages.
So all we can do is bringup. Enough to kick the tires off. Some initial
packages are added in preparation for future workflows suppor but that
is a bit more complex and requires moer work. This should be enough to
let the ball get rolling.

Luis Chamberlain (3):
  common: use fallback for group inference on remote systems
  nixos: add NixOS support as third bringup option with libvirt
    integration
  mirror: add Nix binary cache mirroring support

 .gitignore                                    |   3 +
 defconfigs/mirror                             |   1 +
 defconfigs/nixos                              |  27 +
 docs/kdevops-nixos.md                         | 404 +++++++++++++
 kconfigs/Kconfig.bringup                      |  22 +-
 kconfigs/Kconfig.mirror                       |  68 ++-
 kconfigs/Kconfig.nixos                        | 130 +++++
 nixos/flake.nix                               |  32 ++
 .../files/scripts/detect_libvirt_session.sh   |  26 +
 playbooks/linux-mirror.yml                    |   2 +
 playbooks/nixos.yml                           | 540 ++++++++++++++++++
 playbooks/roles/common/tasks/main.yml         |  29 +-
 .../devconfig/tasks/install-deps/main.yml     |   1 +
 playbooks/roles/devconfig/tasks/main.yml      |   4 +-
 playbooks/roles/gen_hosts/tasks/main.yml      |  15 +
 .../roles/gen_hosts/templates/fstests.j2      |  20 +
 playbooks/roles/gen_hosts/templates/hosts.j2  |  16 +
 playbooks/roles/gen_nodes/tasks/main.yml      |  24 +
 .../roles/gen_nodes/templates/nixos_nodes.j2  |  14 +
 .../linux-mirror/python/start-mirroring.py    |  29 +-
 .../roles/nix-cache-mirror/defaults/main.yml  |   7 +
 .../roles/nix-cache-mirror/handlers/main.yml  |  11 +
 .../roles/nix-cache-mirror/tasks/main.yml     | 161 ++++++
 .../templates/nix-cache-mirror-cache.conf.j2  |   3 +
 .../templates/nix-cache-mirror.nginx.j2       |  81 +++
 .../templates/nix-cache-sync.service.j2       |  17 +
 .../templates/nix-cache-sync.timer.j2         |  11 +
 .../roles/update_etc_hosts/tasks/main.yml     |   2 +
 .../templates/nixos/configuration.nix.j2      | 138 +++++
 playbooks/templates/nixos/flake.nix.j2        |  38 ++
 .../nixos/hardware-configuration.nix.j2       |  42 ++
 .../templates/nixos/run-vm-wrapper.sh.j2      | 159 ++++++
 playbooks/templates/nixos/vm-libvirt.xml.j2   |  96 ++++
 playbooks/templates/nixos/vms.nix.j2          |  45 ++
 .../templates/nixos/workflow-deps.nix.j2      | 127 ++++
 playbooks/update_ssh_config_nixos.yml         |  57 ++
 scripts/check_nix_mirror.sh                   |  66 +++
 scripts/detect_libvirt_session.sh             |  26 +
 scripts/nixos.Makefile                        |  93 +++
 scripts/nixos_ssh_key_name.py                 |  55 ++
 scripts/provision.Makefile                    |   4 +
 scripts/status_nixos.sh                       |  57 ++
 scripts/update_ssh_config_nixos.py            | 133 +++++
 43 files changed, 2826 insertions(+), 10 deletions(-)
 create mode 100644 defconfigs/nixos
 create mode 100644 docs/kdevops-nixos.md
 create mode 100644 kconfigs/Kconfig.nixos
 create mode 100644 nixos/flake.nix
 create mode 100755 playbooks/files/scripts/detect_libvirt_session.sh
 create mode 100644 playbooks/nixos.yml
 create mode 100644 playbooks/roles/gen_nodes/templates/nixos_nodes.j2
 create mode 100644 playbooks/roles/nix-cache-mirror/defaults/main.yml
 create mode 100644 playbooks/roles/nix-cache-mirror/handlers/main.yml
 create mode 100644 playbooks/roles/nix-cache-mirror/tasks/main.yml
 create mode 100644 playbooks/roles/nix-cache-mirror/templates/nix-cache-mirror-cache.conf.j2
 create mode 100644 playbooks/roles/nix-cache-mirror/templates/nix-cache-mirror.nginx.j2
 create mode 100644 playbooks/roles/nix-cache-mirror/templates/nix-cache-sync.service.j2
 create mode 100644 playbooks/roles/nix-cache-mirror/templates/nix-cache-sync.timer.j2
 create mode 100644 playbooks/templates/nixos/configuration.nix.j2
 create mode 100644 playbooks/templates/nixos/flake.nix.j2
 create mode 100644 playbooks/templates/nixos/hardware-configuration.nix.j2
 create mode 100644 playbooks/templates/nixos/run-vm-wrapper.sh.j2
 create mode 100644 playbooks/templates/nixos/vm-libvirt.xml.j2
 create mode 100644 playbooks/templates/nixos/vms.nix.j2
 create mode 100644 playbooks/templates/nixos/workflow-deps.nix.j2
 create mode 100644 playbooks/update_ssh_config_nixos.yml
 create mode 100755 scripts/check_nix_mirror.sh
 create mode 100755 scripts/detect_libvirt_session.sh
 create mode 100644 scripts/nixos.Makefile
 create mode 100755 scripts/nixos_ssh_key_name.py
 create mode 100755 scripts/status_nixos.sh
 create mode 100755 scripts/update_ssh_config_nixos.py

-- 
2.50.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-08-29  7:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-27  9:32 [PATCH 0/3] kdevops: add initial nixos support Luis Chamberlain
2025-08-27  9:32 ` [PATCH 1/3] common: use fallback for group inference on remote systems Luis Chamberlain
2025-08-27  9:32 ` [PATCH 2/3] nixos: add NixOS support as third bringup option with libvirt integration Luis Chamberlain
2025-08-27  9:32 ` [PATCH 3/3] mirror: add Nix binary cache mirroring support Luis Chamberlain
2025-08-29  7:50 ` [PATCH 0/3] kdevops: add initial nixos support Luis Chamberlain

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox