From 6dd0499f4cb97dd749f3f9aa5b649039ae7cf6c4 Mon Sep 17 00:00:00 2001 From: Viacheslav Hletenko Date: Thu, 31 Aug 2023 08:37:17 +0000 Subject: T5531: Containers add label option Ability to set labels for container set container name c1 allow-host-networks set container name c1 image 'busybox' set container name c1 label mypods value 'My label for containers' --- interface-definitions/container.xml.in | 20 ++++++++++++++++++++ src/conf_mode/container.py | 11 +++++++++++ 2 files changed, 31 insertions(+) diff --git a/interface-definitions/container.xml.in b/interface-definitions/container.xml.in index baab6104f..8259e7bdf 100644 --- a/interface-definitions/container.xml.in +++ b/interface-definitions/container.xml.in @@ -145,6 +145,26 @@ The command's arguments must be ascii characters, use " and &apos for double and single quotes respectively + + + Add label variables + + [a-z0-9](?:[a-z0-9.-]*[a-z0-9])? + + Label variable name must be alphanumeric and can contain hyphen, dots and underscores + + + + + Set label option value + + txt + Set label option value + + + + + Memory (RAM) available to this container diff --git a/src/conf_mode/container.py b/src/conf_mode/container.py index 79b605ffb..46eb10714 100755 --- a/src/conf_mode/container.py +++ b/src/conf_mode/container.py @@ -178,6 +178,11 @@ def verify(container): if 'value' not in cfg: raise ConfigError(f'Environment variable {var} has no value assigned!') + if 'label' in container_config: + for var, cfg in container_config['label'].items(): + if 'value' not in cfg: + raise ConfigError(f'Label variable {var} has no value assigned!') + if 'volume' in container_config: for volume, volume_config in container_config['volume'].items(): if 'source' not in volume_config: @@ -268,6 +273,12 @@ def generate_run_arguments(name, container_config): for k, v in container_config['environment'].items(): env_opt += f" --env \"{k}={v['value']}\"" + # Check/set label options "--label foo=bar" + env_opt = '' + if 'label' in container_config: + for k, v in container_config['label'].items(): + env_opt += f" --label \"{k}={v['value']}\"" + hostname = '' if 'host_name' in container_config: hostname = container_config['host_name'] -- cgit v1.2.3