spiegel_podman/libpod
Matthew Heon 5e94c95ad0 Move to deterministic network setup order
This was implemented by containers/netavark #1369; this commit
completes the process by wiring it into Podman. We now respect
the CLI order for configured networks - if a user passes
`--net net1,net2` we guarantee that net1 will be configured
before net2.

For containers created before this patch, we don't retain enough
information to configure networks in CLI order, so we use
alphabetical order instead to still guarantee consistency.

No breaking API changes have been made, but we do add a new
field to supplement the existing map to (optionally) provide
ordering information. The Podman CLI will always pass this.
Existing applications that do not will, again, receive]
deterministic ordering based on an alphabetical sort of network
names.

This requires the latest version of Netavark to work properly.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2026-04-17 10:00:32 -04:00
..
define Remove unused slirp4netns imports and Slirp4NetNS field 2026-04-13 09:04:41 -04:00
driver Bump Go version to v6 2025-10-23 11:00:15 -04:00
events Improve OOMKilled visibility in podman events and in podman inspect docs 2026-03-11 10:15:56 -05:00
layers Switch common, storage and image to monorepo. 2025-09-01 12:33:04 +02:00
linkmode chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
lock Fix compilation of tests without CGo 2026-03-03 21:30:05 +01:00
logs enable gofumpt formatter 2025-11-11 12:32:46 +01:00
namesgenerator libpod: include names-generator.go 2026-03-09 16:08:43 +01:00
plugin Bump Go version to v6 2025-10-23 11:00:15 -04:00
shutdown enable gofumpt formatter 2025-11-11 12:32:46 +01:00
common_test.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
container.go Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
container_api.go Clean up outdated slirp4netns references in comments 2026-04-13 09:05:09 -04:00
container_commit.go Merge pull request #28166 from mtrmac/platform-restriction 2026-03-03 10:27:57 -05:00
container_config.go Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
container_copy_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_copy_freebsd.go Mount volumes before copying into a container 2024-11-27 08:09:50 -05:00
container_copy_linux.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_exec.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
container_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_graph.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
container_graph_test.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
container_healthcheck_test.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
container_inspect.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
container_inspect_freebsd.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_inspect_linux.go Fix: set Swappiness when no mem limits 2026-04-08 15:10:11 +02:00
container_internal.go Fix unless-stopped containers not restarting after podman-restart.service stop them 2026-03-16 13:51:17 +01:00
container_internal_common.go Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
container_internal_freebsd.go Remove unused slirp4netns imports and Slirp4NetNS field 2026-04-13 09:04:41 -04:00
container_internal_linux.go Clean up outdated slirp4netns references in comments 2026-04-13 09:05:09 -04:00
container_internal_linux_test.go libpod: --user works with --hostuser entries 2025-04-07 18:11:06 +02:00
container_internal_test.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:53 +01:00
container_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_log.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
container_log_linux.go enable gofumpt formatter 2025-11-11 12:32:46 +01:00
container_log_unsupported.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:53 +01:00
container_path_resolution.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
container_path_resolution_test.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
container_secrets_test.go run modernize -fix ./... 2026-03-12 17:22:01 +01:00
container_stat_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_stat_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_stat_linux.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_top_freebsd.go Inline the initial slice into append 2026-02-11 11:41:10 -08:00
container_top_linux.c libpod/container_top_linux.c: fix missing header 2024-06-27 10:50:17 +02:00
container_top_linux.go Inline the initial slice into append 2026-02-11 11:41:10 -08:00
container_top_unsupported.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:53 +01:00
container_validate.go libpod: Validate that log tag requires journald driver 2026-03-04 14:48:46 +02:00
diff.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
doc.go document that using libpod package directly is not supported 2022-03-23 19:05:29 +01:00
events.go Improve OOMKilled visibility in podman events and in podman inspect docs 2026-03-11 10:15:56 -05:00
healthcheck.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
healthcheck_config.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
healthcheck_linux.go Fix healthcheck failing silently with --transient-store 2026-04-14 14:13:20 +02:00
healthcheck_nosystemd_linux.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
healthcheck_unsupported.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:53 +01:00
info.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
info_freebsd.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
info_linux.go Remove unused slirp4netns imports and Slirp4NetNS field 2026-04-13 09:04:41 -04:00
info_test.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
kube.go Fixes: #27620 replace dots by hyphens in kubectl volume names generation 2026-03-26 12:02:31 +01:00
mounts_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
networking_common.go Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
networking_freebsd.go Remove slirp4netns setup functions (preserve RLK) 2026-04-13 09:04:41 -04:00
networking_linux.go Remove slirp4netns setup functions (preserve RLK) 2026-04-13 09:04:41 -04:00
networking_linux_test.go Remove BoltDB state support 2025-10-28 12:09:04 -04:00
networking_machine.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
networking_pasta_linux.go Switch common, storage and image to monorepo. 2025-09-01 12:33:04 +02:00
networking_rootlessport.go Remove slirp4netns setup functions (preserve RLK) 2026-04-13 09:04:41 -04:00
oci.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
oci_conmon.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
oci_conmon_attach_common.go remove dep on github.com/containers/conmon 2026-01-30 12:51:50 +01:00
oci_conmon_attach_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
oci_conmon_attach_linux.go add missing O_CLOEXEC to open calls 2026-04-02 15:06:37 +02:00
oci_conmon_common.go Remove slirp4netns setup functions (preserve RLK) 2026-04-13 09:04:41 -04:00
oci_conmon_exec_common.go libpod: fix data race on deferredErr in attachExecHTTP 2026-03-29 12:03:59 +08:00
oci_conmon_exec_freebsd.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
oci_conmon_exec_linux.go Switch common, storage and image to monorepo. 2025-09-01 12:33:04 +02:00
oci_conmon_freebsd.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
oci_conmon_linux.go update golangci-lint to v2.10.1 2026-02-23 10:13:48 +01:00
oci_missing.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
oci_util.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
options.go Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
pod.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
pod_api.go Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
pod_internal.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
pod_internal_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
pod_internal_linux.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
pod_status.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
pod_top_freebsd.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
pod_top_linux.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
reset.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
rlimit_int64.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
rlimit_uint64.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime.go libpod: include names-generator.go 2026-03-09 16:08:43 +01:00
runtime_cstorage.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
runtime_ctr.go Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
runtime_ctr_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_ctr_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_freebsd.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
runtime_img.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
runtime_linux.go libpod/runtime_linux.go: Remove Cgroups v1 2025-11-12 15:15:32 -05:00
runtime_migrate.go Add slirp4netns to pasta migration 2026-04-13 08:22:36 -04:00
runtime_migrate_freebsd.go libpod: fix a confusing error message from 'podman system reset' on FreeBSD 2025-02-11 15:13:29 +00:00
runtime_migrate_linux.go rootless: use nsfs file handles to persist namespaces 2026-01-20 18:41:59 +01:00
runtime_pod.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
runtime_pod_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
runtime_pod_freebsd.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
runtime_pod_linux.go libpod/runtime_pod_linux.go: Remove Cgroups v1 2025-11-12 15:15:32 -05:00
runtime_pre_go1.20.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_renumber.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
runtime_test.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
runtime_volume.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
runtime_volume_common.go Simplify setting up Runtime.imageContext 2026-03-02 23:16:49 +01:00
runtime_worker.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
service.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
sqlite_state.go Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
sqlite_state_internal.go Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
state.go Move to deterministic network setup order 2026-04-17 10:00:32 -04:00
state_test.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
stats_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
stats_freebsd.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
stats_linux.go Remove ContainerStats.PerCPU: CGV1 only 2025-11-12 15:15:34 -05:00
storage.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
util.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
util_freebsd.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
util_linux.go libpod/util_linux.go: Remove Cgroups v1 2025-11-12 15:15:33 -05:00
util_linux_test.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
util_test.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
volume.go use chrootarchive over plain archive package 2026-04-08 19:58:07 +02:00
volume_inspect.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
volume_internal.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00
volume_internal_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
volume_internal_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
volume_internal_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
volume_test.go Make most of libpod, and everything that relies on it, non-darwin 2026-02-27 22:18:36 +01:00