feat: switch to incus-lts and fix lab-tool SSH syntax
- Use incus-lts (6.0.4) instead of latest incus to avoid cowsql build issues - Re-enable incus on congenital-optimist with LTS version - Restore incus-admin group membership for users - Fix missing parentheses in lab-tool SSH module - This provides stable containerization without build failures
This commit is contained in:
parent
2069f289ff
commit
250ba5e2ea
5 changed files with 9 additions and 28 deletions
|
@ -46,7 +46,7 @@
|
||||||
../../modules/users/sma.nix
|
../../modules/users/sma.nix
|
||||||
|
|
||||||
# Virtualization configuration
|
# Virtualization configuration
|
||||||
# ../../modules/virtualization/incus.nix # Disabled: cowsql build issue
|
../../modules/virtualization/incus.nix # Re-enabled with LTS version
|
||||||
../../modules/virtualization/libvirt.nix
|
../../modules/virtualization/libvirt.nix
|
||||||
../../modules/virtualization/podman.nix
|
../../modules/virtualization/podman.nix
|
||||||
];
|
];
|
||||||
|
|
|
@ -20,6 +20,7 @@ in {
|
||||||
"wheel"
|
"wheel"
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
"libvirt"
|
"libvirt"
|
||||||
|
"incus-admin"
|
||||||
"podman"
|
"podman"
|
||||||
"audio"
|
"audio"
|
||||||
"video"
|
"video"
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
"wheel" # sudo access
|
"wheel" # sudo access
|
||||||
"networkmanager" # network management
|
"networkmanager" # network management
|
||||||
"libvirt" # virtualization management
|
"libvirt" # virtualization management
|
||||||
|
"incus-admin" # container management
|
||||||
"podman" # container runtime
|
"podman" # container runtime
|
||||||
"docker" # docker compatibility (if needed)
|
"docker" # docker compatibility (if needed)
|
||||||
"media" # shared media access for NFS shares
|
"media" # shared media access for NFS shares
|
||||||
|
|
|
@ -1,37 +1,13 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
|
||||||
# Fix cowsql build issue with glibc 2.40
|
|
||||||
cowsql-fixed = pkgs.cowsql.overrideAttrs (oldAttrs: {
|
|
||||||
patches = (oldAttrs.patches or []) ++ [
|
|
||||||
(pkgs.writeText "cowsql-float-t-fix.patch" ''
|
|
||||||
--- a/src/lib/serialize.h
|
|
||||||
+++ b/src/lib/serialize.h
|
|
||||||
@@ -37,7 +37,9 @@
|
|
||||||
#define SERIALIZE_H_
|
|
||||||
|
|
||||||
#include <uv.h>
|
|
||||||
+#ifndef _MATH_H
|
|
||||||
typedef double float_t;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
struct serialize;
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
incus-fixed = pkgs.incus.override {
|
|
||||||
cowsql = cowsql-fixed;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
virtualisation.incus = {
|
virtualisation.incus = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ui.enable = true;
|
ui.enable = true;
|
||||||
package = incus-fixed;
|
package = pkgs.incus-lts; # Use LTS version to avoid cowsql build issues
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
incus-fixed
|
pkgs.incus-lts
|
||||||
pkgs.lxc
|
pkgs.lxc
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,10 @@
|
||||||
(port (open-pipe* OPEN_READ "/bin/sh" "-c" ssh-cmd))
|
(port (open-pipe* OPEN_READ "/bin/sh" "-c" ssh-cmd))
|
||||||
(output (get-string-all port))
|
(output (get-string-all port))
|
||||||
(status (close-pipe port)))
|
(status (close-pipe port)))
|
||||||
(values (zero? status) output)))))))
|
(values (zero? status) output)))
|
||||||
|
(lambda (key . args)
|
||||||
|
(log-error "SSH command failed for ~a: ~a ~a" machine-name key args)
|
||||||
|
(values #f "")))))))))))
|
||||||
|
|
||||||
;; Copy file to remote machine using scp
|
;; Copy file to remote machine using scp
|
||||||
(define (copy-file-to-remote machine-name local-path remote-path)
|
(define (copy-file-to-remote machine-name local-path remote-path)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue