The podman network create
defaults include DNS, so if you don’t hand-craft a json for it that isn’t necessary. In the docker world this interface doesn’t exist at all, but now we know this is about podman that’s a bit easier 
That’s… Odd. Are you sure? This smells like an upstream bug, might be worth reporting. You’re sure this is not caused by adding that dns_enabled
? It may actually pass all DNS requests to your host DNS server, but it’s not documented anywhere, so who knows…
Pods effectively work the same as the rest of the podman container infrastructure, the only difference is that you can more conveniently configure a little group of containers like this.
There also is no integration for them in NixOS yet, if you’re interested I have an old module that needs updating, refactoring, and perhaps upstreaming, but could be used to run pods fully from NixOS configuration: tlaternet-server/pods.nix at b6f39969cc50293b6dce493ef3273bc0573939f5 - tlaternet-server - Gitea: Git with a cup of tea
I suppose this could also be done with JSON files, but I prefer sticking to the more cleanly documented API.
Used e.g. like so for nextcloud: tlaternet-server/nextcloud.nix at b6f39969cc50293b6dce493ef3273bc0573939f5 - tlaternet-server - Gitea: Git with a cup of tea
Ultimately it’s just prettier though, there should be little real difference.
There is currently no services.podman.networks
option or anything like that in NixOS. However, podman supports writing these json files to create networks instead, which makes things easier.
There is scarce documentation for this (which I believe to be the only official reference), so use at your own peril. It should still be relatively stable, as this is used to keep track of state internally, and non-podman sources (such as oracle’s documentation) do mention it, so it needs to be upgraded with podman anyway.
This is also why things like the id
are hard to find explanations for, but you’ll probably find that id
is just a generated string used for internal uniqueness and identification (generally what IDs are for).
You probably shouldn’t change the ID after you’ve started using it, but the NixOS config sets up a network with the id 000000000..0
, so I don’t believe the actual string matters, as long as it’s hexadecimal with the same number of digits: https://github.com/NixOS/nixpkgs/blob/9a74ffb2ca1fc91c6ccc48bd3f8cbc1501bf7b8a/nixos/modules/virtualisation/podman/default.nix#L163
The question remains though, why is the network not found? While I agree you should be using double quotes, that clearly has no effect, otherwise this message would be impossible:
It shouldn’t matter because of the shell escape things in NixOS’ modules; except if the evaluated network name is actually lavalink\n
.
With the environments.etc
config, that lavalink.json
file should now exist. What does cat /etc/containers/networks/lavalink.json
give you? Would be nice to compare it to podman network inspect lavalink
, to check the network is actually properly set up according to podman too.
And try a cat /etc/containers/networks/podman.json
while we’re at it, if that file exists no podman networking should be working, and something is going horribly wrong with your NixOS activation.
You’re using nixos-rebuild switch
, and not boot
or build
or something, right?