From 3664cc336966fd8b214ba11cded3aed2b0811736 Mon Sep 17 00:00:00 2001 From: Alan Rominger Date: Mon, 27 Sep 2021 11:36:11 -0400 Subject: [PATCH] Disable autodiscovery except for docker-compose (#11142) --- awx/main/tasks.py | 15 +++------------ awx/settings/defaults.py | 4 ++++ awx/settings/development.py | 3 +++ 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 21727bf350..6e561dd079 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -480,10 +480,12 @@ def inspect_execution_nodes(instance_list): changed = False if hostname in node_lookup: instance = node_lookup[hostname] - else: + elif settings.MESH_AUTODISCOVERY_ENABLED: defaults = dict(enabled=False) (changed, instance) = Instance.objects.register(hostname=hostname, node_type='execution', defaults=defaults) logger.warn(f"Registered execution node '{hostname}' (marked disabled by default)") + else: + logger.warn(f"Unrecognized node on mesh advertising ansible-runner work type: {hostname}") was_lost = instance.is_lost(ref_time=nowtime) last_seen = parse_date(ad['Time']) @@ -494,17 +496,6 @@ def inspect_execution_nodes(instance_list): instance.save(update_fields=['last_seen']) if changed: - try: - default_ig = InstanceGroup.objects.get(name=settings.DEFAULT_EXECUTION_QUEUE_NAME) - if instance.hostname not in default_ig.policy_instance_list: - default_ig.policy_instance_list += [instance.hostname] - default_ig.save(update_fields=['policy_instance_list']) - logger.warn(f"Updated '{default_ig.name}' instance group's policy_instance_list to include execution node '{hostname}'") - else: - logger.warn(f"'{default_ig.name}' instance group's policy_instance_list already listed execution node '{hostname}'") - except InstanceGroup.DoesNotExist: - logger.error(f"Unable to add execution node '{hostname}' to '{default_ig.name}' instance group; group not found.") - execution_node_health_check.apply_async([hostname]) elif was_lost: # if the instance *was* lost, but has appeared again, diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index 7acccbea5e..e3c2787c57 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -263,6 +263,10 @@ CSRF_COOKIE_SECURE = True # Limit CSRF cookies to browser sessions CSRF_COOKIE_AGE = None +# Auto-discover new instances that appear on receptor mesh +# used for docker-compose environment, unsupported +MESH_AUTODISCOVERY_ENABLED = False + TEMPLATES = [ { 'NAME': 'default', diff --git a/awx/settings/development.py b/awx/settings/development.py index 3c41dde684..a8ef9535ae 100644 --- a/awx/settings/development.py +++ b/awx/settings/development.py @@ -69,6 +69,9 @@ AWX_ROLES_ENABLED = True PENDO_TRACKING_STATE = "off" INSIGHTS_TRACKING_STATE = False +# auto-discover receptor-* execution nodes +MESH_AUTODISCOVERY_ENABLED = True + # debug toolbar and swagger assume that requirements/requirements_dev.txt are installed INSTALLED_APPS += ['rest_framework_swagger', 'debug_toolbar'] # NOQA