diff --git a/files/build_templates/init_cfg.json.j2 b/files/build_templates/init_cfg.json.j2 index 17617ee1a3c..98ba84d9aa1 100644 --- a/files/build_templates/init_cfg.json.j2 +++ b/files/build_templates/init_cfg.json.j2 @@ -1,3 +1,5 @@ +{%- set optional_feature_list = optional_features.split(' ') -%} +{%- set docker_containers_list = docker_containers.split(' ') -%} { "DEVICE_METADATA": { "localhost": { @@ -14,19 +16,18 @@ "{{crm_res}}_threshold_type": "percentage", "{{crm_res}}_low_threshold": "70", "{{crm_res}}_high_threshold": "85"{% if not loop.last %},{% endif -%} -{% endfor %} +{%- endfor %} } }, "FEATURE": { -{%- for feature in ["sflow", "telemetry"] %} - "{{feature}}": { +{%- for feature in optional_feature_list %} + "{{ feature }}": { "status": "disabled" }{% if not loop.last %},{% endif -%} -{% endfor %} +{%- endfor %} }, "CONTAINER_FEATURE": { -{%- for container in ["bgp", "database", "dhcp_relay", "lldp", "pmon", "radv", "restapi", "sflow", - "snmp", "swss", "syncd", "teamd", "telemetry"] %} +{%- for container in docker_containers_list %} "{{container}}": { "auto_restart": "disabled", "high_mem_alert": "disabled" diff --git a/rules/docker-sflow.mk b/rules/docker-sflow.mk index 67724ad7c54..a32b4d0fd88 100644 --- a/rules/docker-sflow.mk +++ b/rules/docker-sflow.mk @@ -25,6 +25,10 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_SFLOW_DBG) SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_SFLOW_DBG) endif +ifeq ($(ENABLE_SFLOW), y) +SONIC_OPTIONAL_DOCKER_CONTAINERS += $(DOCKER_SFLOW) +endif + $(DOCKER_SFLOW)_CONTAINER_NAME = sflow $(DOCKER_SFLOW)_RUN_OPT += --privileged -t $(DOCKER_SFLOW)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro diff --git a/rules/docker-telemetry.mk b/rules/docker-telemetry.mk index 04f1871f334..d165428f75f 100644 --- a/rules/docker-telemetry.mk +++ b/rules/docker-telemetry.mk @@ -29,5 +29,9 @@ $(DOCKER_TELEMETRY)_RUN_OPT += --privileged -t $(DOCKER_TELEMETRY)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro $(DOCKER_TELEMETRY)_RUN_OPT += --mount type=bind,source="/var/platform/",target="/mnt/platform/" +ifeq ($(ENABLE_SYSTEM_TELEMETRY), y) +SONIC_OPTIONAL_DOCKER_CONTAINERS += $(DOCKER_TELEMETRY) +endif + $(DOCKER_TELEMETRY)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) $(DOCKER_TELEMETRY)_BASE_IMAGE_FILES += monit_telemetry:/etc/monit/conf.d diff --git a/slave.mk b/slave.mk index 71e6aeb3a86..d47139e0bca 100644 --- a/slave.mk +++ b/slave.mk @@ -667,6 +667,8 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ export platform_common_py2_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PLATFORM_COMMON_PY2))" export redis_dump_load_py2_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(REDIS_DUMP_LOAD_PY2))" export install_debug_image="$(INSTALL_DEBUG_TOOLS)" + export optional_features="$(foreach docker,$(SONIC_OPTIONAL_DOCKER_CONTAINERS),$($(docker:-dbg.gz=.gz)_CONTAINER_NAME))" + export docker_containers="$(foreach docker,$($*_DOCKERS),$($(docker:-dbg.gz=.gz)_CONTAINER_NAME))" $(foreach docker, $($*_DOCKERS),\ export docker_image="$(docker)" @@ -706,7 +708,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ ) ) export installer_services="$(SERVICES)" - + export installer_extra_files="$(foreach docker, $($*_DOCKERS), $(foreach file, $($(docker:-dbg.gz=.gz)_BASE_IMAGE_FILES), $($(docker:-dbg.gz=.gz)_PATH)/base_image_files/$(file)))" j2 -f env files/initramfs-tools/union-mount.j2 onie-image.conf > files/initramfs-tools/union-mount