aboutsummaryrefslogtreecommitdiff
path: root/libpod/container_config.go
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@pm.me>2020-10-26 17:17:45 -0400
committerMatthew Heon <matthew.heon@pm.me>2020-10-27 14:17:41 -0400
commit6af7e544636ae66ce237489ce6948123e1b3249d (patch)
treeb95ead53ec2419d750c56ca008ed0965457d6d10 /libpod/container_config.go
parent51fa8ded9ffb7924288a2728ce92af7f6cc66d34 (diff)
downloadpodman-6af7e544636ae66ce237489ce6948123e1b3249d.tar.gz
podman-6af7e544636ae66ce237489ce6948123e1b3249d.tar.bz2
podman-6af7e544636ae66ce237489ce6948123e1b3249d.zip
Add network aliases for containers to DB
This adds the database backend for network aliases. Aliases are additional names for a container that are used with the CNI dnsname plugin - the container will be accessible by these names in addition to its name. Aliases are allowed to change over time as the container connects to and disconnects from networks. Aliases are implemented as another bucket in the database to register all aliases, plus two buckets for each container (one to hold connected CNI networks, a second to hold its aliases). The aliases are only unique per-network, to the global and per-container aliases buckets have a sub-bucket for each CNI network that has aliases, and the aliases are stored within that sub-bucket. Aliases are formatted as alias (key) to container ID (value) in both cases. Three DB functions are defined for aliases: retrieving current aliases for a given network, setting aliases for a given network, and removing all aliases for a given network. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
Diffstat (limited to 'libpod/container_config.go')
-rw-r--r--libpod/container_config.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/libpod/container_config.go b/libpod/container_config.go
index e264da4da..fb1ba373b 100644
--- a/libpod/container_config.go
+++ b/libpod/container_config.go
@@ -239,6 +239,15 @@ type ContainerNetworkConfig struct {
NetMode namespaces.NetworkMode `json:"networkMode,omitempty"`
// NetworkOptions are additional options for each network
NetworkOptions map[string][]string `json:"network_options,omitempty"`
+ // NetworkAliases are aliases that will be added to each network.
+ // These are additional names that this container can be accessed as via
+ // DNS when the CNI dnsname plugin is in use.
+ // Please note that these can be altered at runtime. As such, the actual
+ // list is stored in the database and should be retrieved from there;
+ // this is only the set of aliases the container was *created with*.
+ // Formatted as map of network name to aliases. All network names must
+ // be present in the Networks list above.
+ NetworkAliases map[string][]string `json:"network_alises,omitempty"`
}
// ContainerImageConfig is an embedded sub-config providing image configuration