mirror of
				https://github.com/Telecominfraproject/ols-nos.git
				synced 2025-10-31 18:17:52 +00:00 
			
		
		
		
	Move k8s script to docker-config-engine (#14788)
Why I did it To reduce the container's dependency from host system Work item tracking Microsoft ADO (number only): 17713469 How I did it Move the k8s container startup script to config engine container, other than mount it from host. How to verify it Check file path(/usr/share/sonic/scripts/container_startup.py) inside config engine container. Signed-off-by: Yun Li <yunli1@microsoft.com> Co-authored-by: Qi Luo <qiluo-msft@users.noreply.github.com>
This commit is contained in:
		| @@ -44,6 +44,7 @@ RUN pip3 install redis==4.5.4 | |||||||
|  |  | ||||||
| # Copy files | # Copy files | ||||||
| COPY ["files/swss_vars.j2", "/usr/share/sonic/templates/"] | COPY ["files/swss_vars.j2", "/usr/share/sonic/templates/"] | ||||||
|  | COPY ["files/container_startup.py", "/usr/share/sonic/scripts/"] | ||||||
|  |  | ||||||
| ## Clean up | ## Clean up | ||||||
| RUN apt-get purge -y               \ | RUN apt-get purge -y               \ | ||||||
|   | |||||||
| @@ -44,6 +44,7 @@ RUN pip3 install redis==4.5.4 | |||||||
|  |  | ||||||
| # Copy files | # Copy files | ||||||
| COPY ["files/swss_vars.j2", "/usr/share/sonic/templates/"] | COPY ["files/swss_vars.j2", "/usr/share/sonic/templates/"] | ||||||
|  | COPY ["files/container_startup.py", "/usr/share/sonic/scripts/"] | ||||||
|  |  | ||||||
| ## Clean up | ## Clean up | ||||||
| RUN apt-get purge -y               \ | RUN apt-get purge -y               \ | ||||||
|   | |||||||
| @@ -579,7 +579,6 @@ start() { | |||||||
| {%- endif -%} | {%- endif -%} | ||||||
| {%- if docker_container_name == "bgp" %} | {%- if docker_container_name == "bgp" %} | ||||||
|         -v /etc/sonic/frr/$DEV:/etc/frr:rw \ |         -v /etc/sonic/frr/$DEV:/etc/frr:rw \ | ||||||
|         -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro \ |  | ||||||
| {%- endif %} | {%- endif %} | ||||||
| {%- if docker_container_name == "database" %} | {%- if docker_container_name == "database" %} | ||||||
|         $DB_OPT \ |         $DB_OPT \ | ||||||
|   | |||||||
| @@ -503,12 +503,6 @@ sudo cp {{sonic_ctrmgmt_py3_wheel_path}} $FILESYSTEM_ROOT/$SONIC_CTRMGMT_WHEEL_N | |||||||
| sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install $SONIC_CTRMGMT_WHEEL_NAME | sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install $SONIC_CTRMGMT_WHEEL_NAME | ||||||
| sudo rm -rf $FILESYSTEM_ROOT/$SONIC_CTRMGMT_WHEEL_NAME | sudo rm -rf $FILESYSTEM_ROOT/$SONIC_CTRMGMT_WHEEL_NAME | ||||||
|  |  | ||||||
| # Copy remote container mangement files |  | ||||||
| # File called from each container upon start/stop to record the state |  | ||||||
| sudo mkdir -p ${FILESYSTEM_ROOT_USR_SHARE_SONIC_SCRIPTS} |  | ||||||
| sudo cp ${files_path}/container_startup.py ${FILESYSTEM_ROOT_USR_SHARE_SONIC_SCRIPTS}/ |  | ||||||
| sudo chmod a+x ${FILESYSTEM_ROOT_USR_SHARE_SONIC_SCRIPTS}/container_startup.py |  | ||||||
|  |  | ||||||
| # Config file used by container mgmt scripts/service | # Config file used by container mgmt scripts/service | ||||||
| fl="${files_path}/remote_ctr.config.json" | fl="${files_path}/remote_ctr.config.json" | ||||||
| use_k8s_as_http_proxy=$(python3 -c 'import json | use_k8s_as_http_proxy=$(python3 -c 'import json | ||||||
|   | |||||||
| @@ -19,6 +19,7 @@ $(DOCKER_CONFIG_ENGINE_BULLSEYE)_LOAD_DOCKERS += $(DOCKER_BASE_BULLSEYE) | |||||||
| $(DOCKER_CONFIG_ENGINE_BULLSEYE)_FILES += $(SWSS_VARS_TEMPLATE) | $(DOCKER_CONFIG_ENGINE_BULLSEYE)_FILES += $(SWSS_VARS_TEMPLATE) | ||||||
| $(DOCKER_CONFIG_ENGINE_BULLSEYE)_FILES += $(RSYSLOG_PLUGIN_CONF_J2) | $(DOCKER_CONFIG_ENGINE_BULLSEYE)_FILES += $(RSYSLOG_PLUGIN_CONF_J2) | ||||||
| $(DOCKER_CONFIG_ENGINE_BULLSEYE)_FILES += $($(SONIC_CTRMGRD)_CONTAINER_SCRIPT) | $(DOCKER_CONFIG_ENGINE_BULLSEYE)_FILES += $($(SONIC_CTRMGRD)_CONTAINER_SCRIPT) | ||||||
|  | $(DOCKER_CONFIG_ENGINE_BULLSEYE)_FILES += $($(SONIC_CTRMGRD)_STARTUP_SCRIPT) | ||||||
|  |  | ||||||
| $(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS = $($(DOCKER_BASE_BULLSEYE)_DBG_DEPENDS) \ | $(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS = $($(DOCKER_BASE_BULLSEYE)_DBG_DEPENDS) \ | ||||||
|                                              $(LIBSWSSCOMMON_DBG) \ |                                              $(LIBSWSSCOMMON_DBG) \ | ||||||
|   | |||||||
| @@ -18,6 +18,7 @@ $(DOCKER_CONFIG_ENGINE_BUSTER)_LOAD_DOCKERS += $(DOCKER_BASE_BUSTER) | |||||||
| $(DOCKER_CONFIG_ENGINE_BUSTER)_FILES += $(SWSS_VARS_TEMPLATE) | $(DOCKER_CONFIG_ENGINE_BUSTER)_FILES += $(SWSS_VARS_TEMPLATE) | ||||||
| $(DOCKER_CONFIG_ENGINE_BUSTER)_FILES += $(RSYSLOG_PLUGIN_CONF_J2) | $(DOCKER_CONFIG_ENGINE_BUSTER)_FILES += $(RSYSLOG_PLUGIN_CONF_J2) | ||||||
| $(DOCKER_CONFIG_ENGINE_BUSTER)_FILES += $($(SONIC_CTRMGRD)_CONTAINER_SCRIPT) | $(DOCKER_CONFIG_ENGINE_BUSTER)_FILES += $($(SONIC_CTRMGRD)_CONTAINER_SCRIPT) | ||||||
|  | $(DOCKER_CONFIG_ENGINE_BUSTER)_FILES += $($(SONIC_CTRMGRD)_STARTUP_SCRIPT) | ||||||
|  |  | ||||||
| $(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_DEPENDS = $($(DOCKER_BASE_BUSTER)_DBG_DEPENDS) \ | $(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_DEPENDS = $($(DOCKER_BASE_BUSTER)_DBG_DEPENDS) \ | ||||||
|                                              $(LIBSWSSCOMMON_DBG) \ |                                              $(LIBSWSSCOMMON_DBG) \ | ||||||
|   | |||||||
| @@ -48,7 +48,6 @@ $(DOCKER_DHCP_RELAY)_CONTAINER_NAME = dhcp_relay | |||||||
| $(DOCKER_DHCP_RELAY)_CONTAINER_PRIVILEGED = true | $(DOCKER_DHCP_RELAY)_CONTAINER_PRIVILEGED = true | ||||||
| $(DOCKER_DHCP_RELAY)_CONTAINER_VOLUMES += /etc/sonic:/etc/sonic:ro | $(DOCKER_DHCP_RELAY)_CONTAINER_VOLUMES += /etc/sonic:/etc/sonic:ro | ||||||
| $(DOCKER_DHCP_RELAY)_CONTAINER_VOLUMES += /etc/timezone:/etc/timezone:ro | $(DOCKER_DHCP_RELAY)_CONTAINER_VOLUMES += /etc/timezone:/etc/timezone:ro | ||||||
| $(DOCKER_DHCP_RELAY)_CONTAINER_VOLUMES += /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro |  | ||||||
| $(DOCKER_DHCP_RELAY)_CONTAINER_TMPFS += /tmp/ | $(DOCKER_DHCP_RELAY)_CONTAINER_TMPFS += /tmp/ | ||||||
| $(DOCKER_DHCP_RELAY)_CONTAINER_TMPFS += /var/tmp/ | $(DOCKER_DHCP_RELAY)_CONTAINER_TMPFS += /var/tmp/ | ||||||
|  |  | ||||||
|   | |||||||
| @@ -31,7 +31,6 @@ $(DOCKER_LLDP)_CONTAINER_NAME = lldp | |||||||
| $(DOCKER_LLDP)_RUN_OPT += --privileged -t | $(DOCKER_LLDP)_RUN_OPT += --privileged -t | ||||||
| $(DOCKER_LLDP)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro | $(DOCKER_LLDP)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro | ||||||
| $(DOCKER_LLDP)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro  | $(DOCKER_LLDP)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro  | ||||||
| $(DOCKER_LLDP)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro |  | ||||||
|  |  | ||||||
| $(DOCKER_LLDP)_BASE_IMAGE_FILES += lldpctl:/usr/bin/lldpctl | $(DOCKER_LLDP)_BASE_IMAGE_FILES += lldpctl:/usr/bin/lldpctl | ||||||
| $(DOCKER_LLDP)_BASE_IMAGE_FILES += lldpcli:/usr/bin/lldpcli | $(DOCKER_LLDP)_BASE_IMAGE_FILES += lldpcli:/usr/bin/lldpcli | ||||||
|   | |||||||
| @@ -51,7 +51,6 @@ $(DOCKER_PLATFORM_MONITOR)_CONTAINER_NAME = pmon | |||||||
| $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += --privileged -t | $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += --privileged -t | ||||||
| $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro | $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro | ||||||
| $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro  | $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro  | ||||||
| $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro |  | ||||||
| $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /var/run/platform_cache:/var/run/platform_cache:ro | $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /var/run/platform_cache:/var/run/platform_cache:ro | ||||||
| $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /usr/share/sonic/device/pddf:/usr/share/sonic/device/pddf:ro | $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /usr/share/sonic/device/pddf:/usr/share/sonic/device/pddf:ro | ||||||
|  |  | ||||||
|   | |||||||
| @@ -32,5 +32,4 @@ $(DOCKER_ROUTER_ADVERTISER)_CONTAINER_NAME = radv | |||||||
| $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += --privileged -t | $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += --privileged -t | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro | $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro | $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro |  | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) | $(DOCKER_ROUTER_ADVERTISER)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) | ||||||
|   | |||||||
| @@ -31,7 +31,6 @@ $(DOCKER_SNMP)_CONTAINER_NAME = snmp | |||||||
| $(DOCKER_SNMP)_RUN_OPT += --privileged -t | $(DOCKER_SNMP)_RUN_OPT += --privileged -t | ||||||
| $(DOCKER_SNMP)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro | $(DOCKER_SNMP)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro | ||||||
| $(DOCKER_SNMP)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro  | $(DOCKER_SNMP)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro  | ||||||
| $(DOCKER_SNMP)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro |  | ||||||
| $(DOCKER_SNMP)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) | $(DOCKER_SNMP)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) | ||||||
| $(DOCKER_SNMP)_BASE_IMAGE_FILES += monit_snmp:/etc/monit/conf.d | $(DOCKER_SNMP)_BASE_IMAGE_FILES += monit_snmp:/etc/monit/conf.d | ||||||
|  |  | ||||||
|   | |||||||
| @@ -31,7 +31,6 @@ $(DOCKER_TELEMETRY)_CONTAINER_NAME = telemetry | |||||||
| $(DOCKER_TELEMETRY)_RUN_OPT += --privileged -t | $(DOCKER_TELEMETRY)_RUN_OPT += --privileged -t | ||||||
| $(DOCKER_TELEMETRY)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro | $(DOCKER_TELEMETRY)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro | ||||||
| $(DOCKER_TELEMETRY)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro  | $(DOCKER_TELEMETRY)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro  | ||||||
| $(DOCKER_TELEMETRY)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro |  | ||||||
| ifneq ($(INCLUDE_SYSTEM_GNMI), y) | ifneq ($(INCLUDE_SYSTEM_GNMI), y) | ||||||
| $(DOCKER_TELEMETRY)_RUN_OPT += -v /var/run/dbus:/var/run/dbus:rw | $(DOCKER_TELEMETRY)_RUN_OPT += -v /var/run/dbus:/var/run/dbus:rw | ||||||
| endif | endif | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ import datetime | |||||||
| import docker | import docker | ||||||
| from swsscommon import swsscommon | from swsscommon import swsscommon | ||||||
|  |  | ||||||
| CTR_STATE_SCR_PATH = '/usr/share/sonic/scripts/container_startup.py' | CTRMGRD_SERVICE_PATH = '/lib/systemd/system/ctrmgrd.service' | ||||||
|  |  | ||||||
| state_db = None | state_db = None | ||||||
|  |  | ||||||
| @@ -62,7 +62,7 @@ def init(): | |||||||
|     cfg_db = swsscommon.DBConnector("CONFIG_DB", 0) |     cfg_db = swsscommon.DBConnector("CONFIG_DB", 0) | ||||||
|     state_db = swsscommon.DBConnector("STATE_DB", 0) |     state_db = swsscommon.DBConnector("STATE_DB", 0) | ||||||
|  |  | ||||||
|     remote_ctr_enabled = os.path.exists(CTR_STATE_SCR_PATH) |     remote_ctr_enabled = os.path.exists(CTRMGRD_SERVICE_PATH) | ||||||
|  |  | ||||||
|  |  | ||||||
| def get_config_data(fld, dflt): | def get_config_data(fld, dflt): | ||||||
|   | |||||||
| @@ -221,6 +221,9 @@ def container_up(feature, owner, version): | |||||||
|     debug_msg("args: feature={}, owner={}, version={} DB: set_owner={} state_data={}".format( |     debug_msg("args: feature={}, owner={}, version={} DB: set_owner={} state_data={}".format( | ||||||
|         feature, owner, version, set_owner, json.dumps(state_data, indent=4))) |         feature, owner, version, set_owner, json.dumps(state_data, indent=4))) | ||||||
|  |  | ||||||
|  |     if state_data[SYSTEM_STATE] == '': | ||||||
|  |         return | ||||||
|  |  | ||||||
|     if owner == "local": |     if owner == "local": | ||||||
|         update_state(state_db, feature, owner, version) |         update_state(state_db, feature, owner, version) | ||||||
|     else: |     else: | ||||||
|   | |||||||
| @@ -23,6 +23,13 @@ startup_test_data = { | |||||||
|                         "set_owner": "local" |                         "set_owner": "local" | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             common_test.STATE_DB_NO: { | ||||||
|  |                 common_test.FEATURE_TABLE: { | ||||||
|  |                     "snmp": { | ||||||
|  |                         "system_state": "up" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         common_test.POST: { |         common_test.POST: { | ||||||
|   | |||||||
| @@ -468,7 +468,7 @@ wait_test_data = { | |||||||
| class TestContainer(object): | class TestContainer(object): | ||||||
|  |  | ||||||
|     def init(self): |     def init(self): | ||||||
|         container.CTR_STATE_SCR_PATH = __file__ |         container.CTRMGRD_SERVICE_PATH = __file__ | ||||||
|         container.SONIC_CTR_CONFIG = ( |         container.SONIC_CTR_CONFIG = ( | ||||||
|                 common_test.create_remote_ctr_config_json()) |                 common_test.create_remote_ctr_config_json()) | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 lixiaoyuner
					lixiaoyuner