diff --git a/ansible/library/generate_golden_config_db.py b/ansible/library/generate_golden_config_db.py index a35f04d2a..b8ff3ebb3 100644 --- a/ansible/library/generate_golden_config_db.py +++ b/ansible/library/generate_golden_config_db.py @@ -152,6 +152,13 @@ def check_version_for_bmp(self): return True return True + def has_otel_image(self): + rc, out, _ = self.module.run_command("docker images --format '{{.Repository}}'") + if rc != 0: + return False + repos = [line.strip().lower() for line in out.splitlines() if line.strip()] + return "docker-sonic-otel" in repos + def get_config_from_minigraph(self): rc, out, err = self.module.run_command("sonic-cfggen -H -m -j /etc/sonic/init_cfg.json --print-data") if rc != 0: @@ -325,6 +332,10 @@ def generate(self): else: config = "{}" + # Enable otel feature when docker-sonic-otel image exists + if self.has_otel_image(): + config = self.overwrite_feature_golden_config_db_singleasic(config, "otel", "enabled", "enabled") + with open(GOLDEN_CONFIG_DB_PATH, "w") as temp_file: temp_file.write(config) self.module.run_command("sudo rm -f {}".format(TEMP_DHCP_SERVER_CONFIG_PATH))