automation-tests/libpod
Paul Holzinger c0b1edd6a4
Network interface
Implement a new network interface to abstract CNI from libpod. The
interface is implemented for the CNI backend but in the future we can
add more backends.

The code is structured in three new packages:
- `libpod/network/types`: contains the interface definition
  and the necessary types for it.
- `libpod/network/cni` contains the interface implementation for the CNI
  backend.
- `libpod/network/util` a set of utility functions related to
  networking.

The CNI package uses ginkgo style unit tests. To test Setup/Teardown the
test must be run as root. Each test will run in their own namespace to
make the test independent from the host environment.

New features with the CNI backend:
- The default network will be created in memory if it does not exists on
  disk.
- It can set more than one static IP per container network.
- Networks are loaded once from disk and only if this interface is
  used, e.g. for commands such as `podman info` networks are not loaded.
  This reduces unnecessary disk IO.

This commit only adds the interface it is not wired into libpod. This
requires a lot of breaking changes which will be done in a followup
commit.

Once this is integrated into libpod the current network code under
`libpod/network` should be removed. Also the dependency on OCICNI
should be dropped.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-24 12:28:03 +02:00
..
common Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
define Podman info output plugin information 2021-08-19 17:33:20 +02:00
driver bump go module to v3 2021-02-22 09:03:51 +01:00
events Add ExecDied event and use it to retrieve exit codes 2021-06-10 14:17:41 -04:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
linkmode Add podman static build 2020-05-11 13:11:07 +02:00
lock bump go module to v3 2021-02-22 09:03:51 +01:00
logs Implemented Until Query Parameter for Containers/logs 2021-07-09 12:21:46 -04:00
network Network interface 2021-08-24 12:28:03 +02:00
plugin bump go module to v3 2021-02-22 09:03:51 +01:00
shutdown make sure that signal buffers are sufficiently big 2021-08-17 12:10:20 +02:00
boltdb_state.go Removing a non existing container API should return 404 2021-03-10 04:08:29 -05:00
boltdb_state_internal.go Add --requires flag to podman run/create 2021-04-06 14:01:31 -04:00
boltdb_state_linux.go bump go module to v3 2021-02-22 09:03:51 +01:00
boltdb_state_unsupported.go podman-remote inspect 2019-01-18 15:43:11 -06:00
common_test.go bump go module to v3 2021-02-22 09:03:51 +01:00
container.go Implement SD-NOTIFY proxy in conmon 2021-08-20 11:12:05 +02:00
container_api.go Merge pull request #10910 from adrianreber/2021-07-12-checkpoint-restore-into-pod 2021-07-28 14:48:28 +02:00
container_commit.go migrate Podman to containers/common/libimage 2021-05-05 11:30:12 +02:00
container_config.go rename oneshot initcontainers to once 2021-08-12 12:57:15 -05:00
container_copy_linux.go support container to container copy 2021-07-27 15:32:23 +02:00
container_copy_unsupported.go podman cp: support copying on tmpfs mounts 2021-03-04 15:43:12 +01:00
container_exec.go Fix resize race with podman exec -it 2021-06-16 16:43:30 +02:00
container_graph.go implement init containers in podman 2021-08-04 14:14:36 -05:00
container_graph_test.go bump go module to v3 2021-02-22 09:03:51 +01:00
container_inspect.go ps: support the container notation for ps --filter network=... 2021-07-30 19:31:05 +05:30
container_internal.go Add support for pod inside of user namespace. 2021-08-09 15:17:22 -04:00
container_internal_linux.go Implement SD-NOTIFY proxy in conmon 2021-08-20 11:12:05 +02:00
container_internal_linux_test.go Make an entry in /etc/group when we modify /etc/passwd 2020-09-10 13:02:31 -04:00
container_internal_test.go Refactor container config 2020-07-23 10:18:14 -04:00
container_internal_unsupported.go Fix permissions on initially created named volumes 2021-06-14 11:56:48 -04:00
container_linux.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
container_log.go Podman info output plugin information 2021-08-19 17:33:20 +02:00
container_log_linux.go Podman info output plugin information 2021-08-19 17:33:20 +02:00
container_log_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00
container_path_resolution.go Fix infinite loop in isPathOnVolume 2021-05-06 19:24:14 +03:00
container_stat_linux.go podman cp: evaluate symlink correctly when copying from container 2021-03-09 10:45:15 +01:00
container_stat_unsupported.go podman cp: support copying on tmpfs mounts 2021-03-04 15:43:12 +01:00
container_top_linux.go bump go module to v3 2021-02-22 09:03:51 +01:00
container_top_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00
container_unsupported.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
container_validate.go implement init containers in podman 2021-08-04 14:14:36 -05:00
diff.go Implement SD-NOTIFY proxy in conmon 2021-08-20 11:12:05 +02:00
events.go Add ExecDied event and use it to retrieve exit codes 2021-06-10 14:17:41 -04:00
healthcheck.go bump go module to v3 2021-02-22 09:03:51 +01:00
healthcheck_linux.go bump go module to v3 2021-02-22 09:03:51 +01:00
healthcheck_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00
info.go Podman info output plugin information 2021-08-19 17:33:20 +02:00
kube.go Adds support to preserve auto update labels in generate and play kube 2021-05-06 21:21:43 -06:00
mounts_linux.go set root propagation based on volume properties 2018-11-26 13:55:02 +01:00
networking_linux.go Fix rootless cni dns without systemd stub resolver 2021-08-16 11:30:11 +02:00
networking_slirp4netns.go fix rootless port forwarding with network dis-/connect 2021-08-03 16:29:09 +02:00
networking_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00
oci.go Fix resize race with podman exec -it 2021-06-16 16:43:30 +02:00
oci_attach_linux.go Fix resize race with podman exec -it 2021-06-16 16:43:30 +02:00
oci_attach_unsupported.go prune remotecommand dependency 2021-02-25 10:02:41 -06:00
oci_conmon.go podman: add new cgroup mode split 2020-06-25 17:16:12 +02:00
oci_conmon_exec_linux.go Implement SD-NOTIFY proxy in conmon 2021-08-20 11:12:05 +02:00
oci_conmon_linux.go Implement SD-NOTIFY proxy in conmon 2021-08-20 11:12:05 +02:00
oci_conmon_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00
oci_missing.go Fix resize race with podman exec -it 2021-06-16 16:43:30 +02:00
oci_util.go bump go module to v3 2021-02-22 09:03:51 +01:00
options.go libpod/option.go remove error stutter from wrap/wraf 2021-08-17 16:14:02 +05:30
pod.go Add support for pod inside of user namespace. 2021-08-09 15:17:22 -04:00
pod_api.go rename oneshot initcontainers to once 2021-08-12 12:57:15 -05:00
pod_internal.go cgroup: fix rootless --cgroup-parent with pods 2021-05-06 08:33:28 +02:00
pod_status.go bump go module to v3 2021-02-22 09:03:51 +01:00
pod_top_linux.go bump go module to v3 2021-02-22 09:03:51 +01:00
pod_top_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00
reset.go migrate Podman to containers/common/libimage 2021-05-05 11:30:12 +02:00
runtime.go Update /version endpoint to add components 2021-08-19 14:19:45 -07:00
runtime_cstorage.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_ctr.go Fix network aliases with network id 2021-08-20 10:49:33 +02:00
runtime_img.go migrate Podman to containers/common/libimage 2021-05-05 11:30:12 +02:00
runtime_migrate.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_migrate_unsupported.go Use Libpod tmpdir for pause path 2020-12-02 14:18:37 -05:00
runtime_pod.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_pod_infra_linux.go Add support for pod inside of user namespace. 2021-08-09 15:17:22 -04:00
runtime_pod_linux.go podman pod create --pid flag 2021-07-15 10:34:09 -04:00
runtime_pod_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_renumber.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_volume.go bump go module to v3 2021-02-22 09:03:51 +01:00
runtime_volume_linux.go Volumes: Only remove from DB if plugin removal succeeds 2021-08-18 14:19:11 -04:00
runtime_volume_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00
state.go Rewrite Rename backend in a more atomic fashion 2021-03-02 13:30:28 -05:00
state_test.go Remove in-memory state implementation 2021-04-13 14:00:38 -04:00
stats.go Podman Stats additional features 2021-06-23 09:23:40 -04:00
stats_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00
storage.go turn hidden --trace into a NOP 2021-03-08 09:22:42 +01:00
util.go podman info: try qfile before equery 2021-08-03 14:54:06 -06:00
util_linux.go bump go module to v3 2021-02-22 09:03:51 +01:00
util_linux_test.go Fix mismatch between log messages and behavior of libpod.LabelVolumePath. 2020-09-13 23:24:15 -04:00
util_test.go bump go module to v3 2021-02-22 09:03:51 +01:00
util_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00
volume.go volumes: Add support for exporting volumes to external tar 2021-08-23 20:42:41 +05:30
volume_inspect.go bump go module to v3 2021-02-22 09:03:51 +01:00
volume_internal.go Support size and inode options on builtin volumes 2021-08-02 10:32:45 -04:00
volume_internal_linux.go Support size and inode options on builtin volumes 2021-08-02 10:32:45 -04:00
volume_internal_unsupported.go bump go module to v3 2021-02-22 09:03:51 +01:00