Migrate docker module to podman
This also enables podman on mayushii.
This commit is contained in:
parent
af2ed9d7b2
commit
76e1ec00af
|
@ -19,6 +19,7 @@
|
||||||
gui.enable = true;
|
gui.enable = true;
|
||||||
media-proxy.enable = true;
|
media-proxy.enable = true;
|
||||||
mullvad.enable = true;
|
mullvad.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
restic.system = {
|
restic.system = {
|
||||||
enable = true;
|
enable = true;
|
||||||
qos = true;
|
qos = true;
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
./ausweisapp.nix
|
./ausweisapp.nix
|
||||||
./authoritative-dns.nix
|
./authoritative-dns.nix
|
||||||
./cups.nix
|
./cups.nix
|
||||||
./docker.nix
|
|
||||||
./fancontrol.nix
|
./fancontrol.nix
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
./fonts.nix
|
./fonts.nix
|
||||||
|
@ -55,6 +54,7 @@
|
||||||
./nix.nix
|
./nix.nix
|
||||||
./office.nix
|
./office.nix
|
||||||
./pipewire.nix
|
./pipewire.nix
|
||||||
|
./podman.nix
|
||||||
./prometheus/node_exporter.nix
|
./prometheus/node_exporter.nix
|
||||||
./pubkeys.nix
|
./pubkeys.nix
|
||||||
./qbittorrent
|
./qbittorrent
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Simon Bruder <simon@sbruder.de>
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# This uses a custom option (instead of `virtualisation.docker.enable`) since
|
|
||||||
# `virtualisation.oci-containers` conditionally sets
|
|
||||||
# `virtualisation.docker.enable` and therefore causes an infinite recursion.
|
|
||||||
options.sbruder.docker.enable = lib.mkEnableOption "docker with ipv6nat";
|
|
||||||
|
|
||||||
config = lib.mkIf config.sbruder.docker.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
docker-compose
|
|
||||||
docker-credential-helpers
|
|
||||||
docker-ls
|
|
||||||
];
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
docker = {
|
|
||||||
enable = true;
|
|
||||||
logDriver = "journald";
|
|
||||||
extraOptions = lib.concatStringsSep " " [
|
|
||||||
"--ipv6"
|
|
||||||
"--fixed-cidr-v6=fd00:d0ce:d0ce:d0ce::/64"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
oci-containers.containers.ipv6nat = {
|
|
||||||
image = "robbertkl/ipv6nat";
|
|
||||||
volumes = [
|
|
||||||
"/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--network=host"
|
|
||||||
"--cap-drop=ALL"
|
|
||||||
"--cap-add=NET_ADMIN"
|
|
||||||
"--cap-add=NET_RAW"
|
|
||||||
"--cap-add=SYS_MODULE"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.etc."modules-load.d/ipv6nat.conf".text = "ip6_tables\n";
|
|
||||||
};
|
|
||||||
}
|
|
29
modules/podman.nix
Normal file
29
modules/podman.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# SPDX-FileCopyrightText: 2020-2024 Simon Bruder <simon@sbruder.de>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.sbruder.podman.enable = lib.mkEnableOption "podman";
|
||||||
|
|
||||||
|
config = lib.mkIf config.sbruder.podman.enable {
|
||||||
|
boot.enableContainers = false; # FIXME: this only needs to be set for some stateVersions
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
buildah
|
||||||
|
podman-compose
|
||||||
|
skopeo
|
||||||
|
];
|
||||||
|
|
||||||
|
virtualisation = {
|
||||||
|
podman = {
|
||||||
|
enable = true;
|
||||||
|
dockerSocket.enable = true;
|
||||||
|
defaultNetwork.settings = {
|
||||||
|
ipv6_enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: 2020-2023 Simon Bruder <simon@sbruder.de>
|
# SPDX-FileCopyrightText: 2020-2024 Simon Bruder <simon@sbruder.de>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
@ -28,6 +28,8 @@ let
|
||||||
"/home/*/mounts"
|
"/home/*/mounts"
|
||||||
|
|
||||||
# Docker (state should be kept somewhere else)
|
# Docker (state should be kept somewhere else)
|
||||||
|
"/home/*/.local/share/containers" # podman
|
||||||
|
"/var/lib/containers/"
|
||||||
"/var/lib/docker/"
|
"/var/lib/docker/"
|
||||||
|
|
||||||
# Static configuration (generated from this repository)
|
# Static configuration (generated from this repository)
|
||||||
|
|
Loading…
Reference in a new issue