diff --git a/broker/providers/ansible_tower.py b/broker/providers/ansible_tower.py index 489f9310..1906303c 100644 --- a/broker/providers/ansible_tower.py +++ b/broker/providers/ansible_tower.py @@ -602,6 +602,10 @@ def execute(self, **kwargs): # noqa: PLR0912,PLR0915 - Possible TODO refactor payload["labels"] = self._resolve_labels(labels, target) # record labels also as extra vars - use key=value format kwargs["provider_labels"] = kwargs.get("provider_labels", {}) + # include eventual common labels, specified at each level of configuration + # typically imported from dynaconf env vars + kwargs["provider_labels"].update(settings.get("provider_labels", {})) + kwargs["provider_labels"].update(settings.ANSIBLETOWER.get("provider_labels", {})) kwargs["provider_labels"].update( {label[0]: "=".join(label[1:]) for label in labels.items()} ) diff --git a/broker/providers/container.py b/broker/providers/container.py index 753d4f92..fa646e39 100644 --- a/broker/providers/container.py +++ b/broker/providers/container.py @@ -274,6 +274,10 @@ def run_container(self, container_host, **kwargs): if origin[1]: envars["JENKINS_URL"] = origin[1] kwargs["environment"] = envars + + # process provider labels for each setting level + kwargs["provider_labels"].update(settings.get("provider_labels", {})) + kwargs["provider_labels"].update(settings.CONTAINER.get("provider_labels", {})) # prefix eventual label keys with 'broker.' to conform to the docker guidelines # https://docs.docker.com/config/labels-custom-metadata/#key-format-recommendations kwargs["provider_labels"] = {