[build]: combine feature and container feature table (#5081)

1. remove container feature table
2. do not generate feature entry if the feature is not included
   in the image
3. rename ENABLE_* to INCLUDE_* for better clarity
4. rename feature status to feature state
5. [submodule]: update sonic-utilities

* 9700e45 2020-08-03 | [show/config]: combine feature and container feature cli (#1015) (HEAD, origin/master, origin/HEAD) [lguohan]
* c9d3550 2020-08-03 | [tests]: fix drops_group_test failure on second run (#1023) [lguohan]
* dfaae69 2020-08-03 | [lldpshow]: Fix input device is not a TTY error (#1016) [Arun Saravanan Balachandran]
* 216688e 2020-08-02 | [tests]: rename sonic-utilitie-tests to tests (#1022) [lguohan]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
This commit is contained in:
lguohan 2020-08-05 13:23:12 -07:00 committed by GitHub
parent 6c2c9fe93c
commit 082c26a27d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 112 additions and 99 deletions

View File

@ -9,7 +9,7 @@
# through http. # through http.
# * ENABLE_ZTP: Enables zero touch provisioning. # * ENABLE_ZTP: Enables zero touch provisioning.
# * SHUTDOWN_BGP_ON_START: Sets admin-down state for all bgp peerings after restart. # * SHUTDOWN_BGP_ON_START: Sets admin-down state for all bgp peerings after restart.
# * INSTALL_KUBERNETES: Allows including Kubernetes # * INCLUDE_KUBERNETES: Allows including Kubernetes
# * ENABLE_PFCWD_ON_START: Enable PFC Watchdog (PFCWD) on server-facing ports # * ENABLE_PFCWD_ON_START: Enable PFC Watchdog (PFCWD) on server-facing ports
# * by default for TOR switch. # * by default for TOR switch.
# * ENABLE_SYNCD_RPC: Enables rpc-based syncd builds. # * ENABLE_SYNCD_RPC: Enables rpc-based syncd builds.
@ -188,7 +188,7 @@ SONIC_BUILD_INSTRUCTION := make \
ENABLE_DHCP_GRAPH_SERVICE=$(ENABLE_DHCP_GRAPH_SERVICE) \ ENABLE_DHCP_GRAPH_SERVICE=$(ENABLE_DHCP_GRAPH_SERVICE) \
ENABLE_ZTP=$(ENABLE_ZTP) \ ENABLE_ZTP=$(ENABLE_ZTP) \
SHUTDOWN_BGP_ON_START=$(SHUTDOWN_BGP_ON_START) \ SHUTDOWN_BGP_ON_START=$(SHUTDOWN_BGP_ON_START) \
INSTALL_KUBERNETES=$(INSTALL_KUBERNETES) \ INCLUDE_KUBERNETES=$(INCLUDE_KUBERNETES) \
KUBERNETES_VERSION=$(KUBERNETES_VERSION) \ KUBERNETES_VERSION=$(KUBERNETES_VERSION) \
KUBERNETES_CNI_VERSION=$(KUBERNETES_CNI_VERSION) \ KUBERNETES_CNI_VERSION=$(KUBERNETES_CNI_VERSION) \
K8s_GCR_IO_PAUSE_VERSION=$(K8s_GCR_IO_PAUSE_VERSION) \ K8s_GCR_IO_PAUSE_VERSION=$(K8s_GCR_IO_PAUSE_VERSION) \
@ -207,8 +207,8 @@ SONIC_BUILD_INSTRUCTION := make \
SONIC_DPKG_CACHE_SOURCE=$(SONIC_DPKG_CACHE_SOURCE) \ SONIC_DPKG_CACHE_SOURCE=$(SONIC_DPKG_CACHE_SOURCE) \
HTTP_PROXY=$(http_proxy) \ HTTP_PROXY=$(http_proxy) \
HTTPS_PROXY=$(https_proxy) \ HTTPS_PROXY=$(https_proxy) \
SONIC_ENABLE_SYSTEM_TELEMETRY=$(ENABLE_SYSTEM_TELEMETRY) \ SONIC_INCLUDE_SYSTEM_TELEMETRY=$(INCLUDE_SYSTEM_TELEMETRY) \
SONIC_ENABLE_RESTAPI=$(ENABLE_RESTAPI) \ SONIC_INCLUDE_RESTAPI=$(INCLUDE_RESTAPI) \
TELEMETRY_WRITABLE=$(TELEMETRY_WRITABLE) \ TELEMETRY_WRITABLE=$(TELEMETRY_WRITABLE) \
EXTRA_DOCKER_TARGETS=$(EXTRA_DOCKER_TARGETS) \ EXTRA_DOCKER_TARGETS=$(EXTRA_DOCKER_TARGETS) \
BUILD_LOG_TIMESTAMP=$(BUILD_LOG_TIMESTAMP) \ BUILD_LOG_TIMESTAMP=$(BUILD_LOG_TIMESTAMP) \

View File

@ -212,7 +212,7 @@ fi
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y remove software-properties-common gnupg2 sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y remove software-properties-common gnupg2
if [ "$INSTALL_KUBERNETES" == "y" ] if [ "$INCLUDE_KUBERNETES" == "y" ]
then then
## Install Kubernetes ## Install Kubernetes
echo '[INFO] Install kubernetes' echo '[INFO] Install kubernetes'

View File

@ -9,5 +9,5 @@ with open(INIT_CFG_FILE_PATH) as init_cfg_file:
init_cfg = json.load(init_cfg_file) init_cfg = json.load(init_cfg_file)
if 'FEATURE' in init_cfg: if 'FEATURE' in init_cfg:
for feature_name, feature_props in init_cfg['FEATURE'].items(): for feature_name, feature_props in init_cfg['FEATURE'].items():
if 'status' in feature_props and feature_props['status'] == 'disabled': if 'state' in feature_props and feature_props['state'] == 'disabled':
subprocess.run(['systemctl', 'mask', '{}.service'.format(feature_name)]) subprocess.run(['systemctl', 'mask', '{}.service'.format(feature_name)])

View File

@ -17,18 +17,27 @@
{% endfor %} {% endfor %}
} }
}, },
{%- set features = [("bgp", "enabled", "enabled"),
("database", "enabled", "disabled"),
("dhcp_relay", "enabled", "enabled"),
("lldp", "enabled", "enabled"),
("pmon", "enabled", "enabled"),
("radv", "enabled", "enabled"),
("snmp", "enabled", "enabled"),
("swss", "enabled", "enabled"),
("syncd", "enabled", "enabled"),
("teamd", "enabled", "enabled")] %}
{%- if include_iccpd == "y" %}{% do features.append(("iccpd", "disabled", "enabled")) %}{% endif %}
{%- if include_mgmt_framework == "y" %}{% do features.append(("mgmt-framework", "enabled", "enabled")) %}{% endif %}
{%- if include_nat == "y" %}{% do features.append(("nat", "disabled", "enabled")) %}{% endif %}
{%- if include_restapi == "y" %}{% do features.append(("restapi", "disabled", "enabled")) %}{% endif %}
{%- if include_sflow == "y" %}{% do features.append(("sflow", "disabled", "enabled")) %}{% endif %}
{%- if include_system_telemetry == "y" %}{% do features.append(("telemetry", "enabled", "enabled")) %}{% endif %}
"FEATURE": { "FEATURE": {
{%- for feature, status in [("sflow", "disabled"), ("telemetry", "enabled")] %} {%- for feature, state, autorestart in features %}
"{{feature}}": { "{{feature}}": {
"status": "{{status}}" "state": "{{state}}",
}{% if not loop.last %},{% endif -%} "auto_restart": "{{autorestart}}",
{% endfor %}
},
"CONTAINER_FEATURE": {
{%- for container in ["bgp", "database", "dhcp_relay", "lldp", "nat", "pmon", "radv", "restapi", "sflow",
"snmp", "swss", "syncd", "teamd", "telemetry"] %}
"{{container}}": {
"auto_restart": "{% if container == "database" %}disabled{% else %}enabled{% endif %}",
"high_mem_alert": "disabled" "high_mem_alert": "disabled"
}{% if not loop.last %},{% endif -%} }{% if not loop.last %},{% endif -%}
{% endfor %} {% endfor %}

View File

@ -307,7 +307,7 @@ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install azure-s
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install watchdog==0.10.2 sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install watchdog==0.10.2
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install futures==3.3.0 sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install futures==3.3.0
{% if install_kubernetes == "y" %} {% if include_kubernetes == "y" %}
# Copy kubelet service files # Copy kubelet service files
# Keep it disabled until join, else it continuously restart and as well spew too many # Keep it disabled until join, else it continuously restart and as well spew too many
# non-required log lines wasting syslog resources. # non-required log lines wasting syslog resources.
@ -481,7 +481,7 @@ sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS ta
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% if install_kubernetes == "y" %} {% if include_kubernetes == "y" %}
## Pull in kubernetes docker images ## Pull in kubernetes docker images
echo "pulling universal k8s images ..." echo "pulling universal k8s images ..."
FLANNEL_ARCH=$([ "${CONFIGURED_ARCH}" == "armhf" ] && echo "arm64" || echo "${CONFIGURED_ARCH}") FLANNEL_ARCH=$([ "${CONFIGURED_ARCH}" == "armhf" ] && echo "arm64" || echo "${CONFIGURED_ARCH}")
@ -537,7 +537,7 @@ sudo LANG=C cp $SCRIPTS_DIR/sonic-netns-exec $FILESYSTEM_ROOT/usr/bin/sonic-netn
# It implements delayed start of services # It implements delayed start of services
sudo cp $BUILD_TEMPLATES/snmp.timer $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM sudo cp $BUILD_TEMPLATES/snmp.timer $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
echo "snmp.timer" | sudo tee -a $GENERATED_SERVICE_FILE echo "snmp.timer" | sudo tee -a $GENERATED_SERVICE_FILE
{% if enable_system_telemetry == 'y' %} {% if include_system_telemetry == 'y' %}
sudo cp $BUILD_TEMPLATES/telemetry.timer $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM sudo cp $BUILD_TEMPLATES/telemetry.timer $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
echo "telemetry.timer" | sudo tee -a $GENERATED_SERVICE_FILE echo "telemetry.timer" | sudo tee -a $GENERATED_SERVICE_FILE
{% endif %} {% endif %}

View File

@ -41,8 +41,8 @@ def obfuscate(data):
return data return data
def update_feature_status(feature_name, status): def update_feature_state(feature_name, state):
if status == "enabled": if state == "enabled":
start_cmds = [] start_cmds = []
start_cmds.append("sudo systemctl unmask {}.service".format(feature_name)) start_cmds.append("sudo systemctl unmask {}.service".format(feature_name))
start_cmds.append("sudo systemctl enable {}.service".format(feature_name)) start_cmds.append("sudo systemctl enable {}.service".format(feature_name))
@ -56,7 +56,7 @@ def update_feature_status(feature_name, status):
.format(err.cmd, err.returncode, err.output)) .format(err.cmd, err.returncode, err.output))
continue continue
syslog.syslog(syslog.LOG_INFO, "Feature '{}' is enabled and started".format(feature_name)) syslog.syslog(syslog.LOG_INFO, "Feature '{}' is enabled and started".format(feature_name))
elif status == "disabled": elif state == "disabled":
stop_cmds = [] stop_cmds = []
stop_cmds.append("sudo systemctl stop {}.service".format(feature_name)) stop_cmds.append("sudo systemctl stop {}.service".format(feature_name))
stop_cmds.append("sudo systemctl disable {}.service".format(feature_name)) stop_cmds.append("sudo systemctl disable {}.service".format(feature_name))
@ -71,7 +71,7 @@ def update_feature_status(feature_name, status):
continue continue
syslog.syslog(syslog.LOG_INFO, "Feature '{}' is stopped and disabled".format(feature_name)) syslog.syslog(syslog.LOG_INFO, "Feature '{}' is stopped and disabled".format(feature_name))
else: else:
syslog.syslog(syslog.LOG_ERR, "Unexpected status value '{}' for feature '{}'".format(status, feature_name)) syslog.syslog(syslog.LOG_ERR, "Unexpected state value '{}' for feature '{}'".format(state, feature_name))
class Iptables(object): class Iptables(object):
@ -272,19 +272,19 @@ class HostConfigDaemon:
self.iptables = Iptables() self.iptables = Iptables()
self.iptables.load(lpbk_table) self.iptables.load(lpbk_table)
def update_all_feature_statuses(self): def update_all_feature_states(self):
feature_table = self.config_db.get_table('FEATURE') feature_table = self.config_db.get_table('FEATURE')
for feature_name in feature_table.keys(): for feature_name in feature_table.keys():
if not feature_name: if not feature_name:
syslog.syslog(syslog.LOG_WARNING, "Feature is None") syslog.syslog(syslog.LOG_WARNING, "Feature is None")
continue continue
status = feature_table[feature_name]['status'] state = feature_table[feature_name]['state']
if not status: if not state:
syslog.syslog(syslog.LOG_WARNING, "Status of feature '{}' is None".format(feature_name)) syslog.syslog(syslog.LOG_WARNING, "Eanble state of feature '{}' is None".format(feature_name))
continue continue
update_feature_status(feature_name, status) update_feature_state(feature_name, state)
def aaa_handler(self, key, data): def aaa_handler(self, key, data):
self.aaacfg.aaa_update(key, data) self.aaacfg.aaa_update(key, data)
@ -314,29 +314,29 @@ class HostConfigDaemon:
self.iptables.iptables_handler(key, data, add) self.iptables.iptables_handler(key, data, add)
def feature_status_handler(self, key, data): def feature_state_handler(self, key, data):
feature_name = key feature_name = key
feature_table = self.config_db.get_table('FEATURE') feature_table = self.config_db.get_table('FEATURE')
if feature_name not in feature_table.keys(): if feature_name not in feature_table.keys():
syslog.syslog(syslog.LOG_WARNING, "Feature '{}' not in FEATURE table".format(feature_name)) syslog.syslog(syslog.LOG_WARNING, "Feature '{}' not in FEATURE table".format(feature_name))
return return
status = feature_table[feature_name]['status'] state = feature_table[feature_name]['state']
if not status: if not state:
syslog.syslog(syslog.LOG_WARNING, "Status of feature '{}' is None".format(feature_name)) syslog.syslog(syslog.LOG_WARNING, "Enable state of feature '{}' is None".format(feature_name))
return return
update_feature_status(feature_name, status) update_feature_state(feature_name, state)
def start(self): def start(self):
# Update all feature statuses once upon starting # Update all feature states once upon starting
self.update_all_feature_statuses() self.update_all_feature_states()
self.config_db.subscribe('AAA', lambda table, key, data: self.aaa_handler(key, data)) self.config_db.subscribe('AAA', lambda table, key, data: self.aaa_handler(key, data))
self.config_db.subscribe('TACPLUS_SERVER', lambda table, key, data: self.tacacs_server_handler(key, data)) self.config_db.subscribe('TACPLUS_SERVER', lambda table, key, data: self.tacacs_server_handler(key, data))
self.config_db.subscribe('TACPLUS', lambda table, key, data: self.tacacs_global_handler(key, data)) self.config_db.subscribe('TACPLUS', lambda table, key, data: self.tacacs_global_handler(key, data))
self.config_db.subscribe('LOOPBACK_INTERFACE', lambda table, key, data: self.lpbk_handler(key, data)) self.config_db.subscribe('LOOPBACK_INTERFACE', lambda table, key, data: self.lpbk_handler(key, data))
self.config_db.subscribe('FEATURE', lambda table, key, data: self.feature_status_handler(key, data)) self.config_db.subscribe('FEATURE', lambda table, key, data: self.feature_state_handler(key, data))
self.config_db.listen() self.config_db.listen()

View File

@ -11,21 +11,20 @@ import swsssdk
from supervisor import childutils from supervisor import childutils
# Each line of this file should specify either one critical process or one # Each line of this file should specify either one critical process or one
# critical process group, (as defined in supervisord.conf file), in the # critical process group, (as defined in supervisord.conf file), in the
# following format: # following format:
# #
# program:<process_name> # program:<process_name>
# group:<group_name> # group:<group_name>
CRITICAL_PROCESSES_FILE = '/etc/supervisor/critical_processes' CRITICAL_PROCESSES_FILE = '/etc/supervisor/critical_processes'
# This table in databse contains the features for container and each # The FEATURE table in config db contains auto-restart field
# feature for a row will be configured a state or number. FEATURE_TABLE_NAME = 'FEATURE'
CONTAINER_FEATURE_TABLE_NAME = 'CONTAINER_FEATURE'
# Read the critical processes/group names from CRITICAL_PROCESSES_FILE # Read the critical processes/group names from CRITICAL_PROCESSES_FILE
def get_critical_group_and_process_list(): def get_critical_group_and_process_list():
critical_group_list = [] critical_group_list = []
critical_process_list = [] critical_process_list = []
with open(CRITICAL_PROCESSES_FILE, 'r') as file: with open(CRITICAL_PROCESSES_FILE, 'r') as file:
for line in file: for line in file:
@ -43,7 +42,7 @@ def get_critical_group_and_process_list():
else: else:
syslog.syslog(syslog.LOG_ERR, "Syntax of the line {} in critical_processes file is incorrect. Exiting...".format(line)) syslog.syslog(syslog.LOG_ERR, "Syntax of the line {} in critical_processes file is incorrect. Exiting...".format(line))
sys.exit(6) sys.exit(6)
return critical_group_list, critical_process_list return critical_group_list, critical_process_list
def main(argv): def main(argv):
@ -82,23 +81,23 @@ def main(argv):
if container_name != 'database': if container_name != 'database':
config_db = swsssdk.ConfigDBConnector() config_db = swsssdk.ConfigDBConnector()
config_db.connect() config_db.connect()
container_features_table = config_db.get_table(CONTAINER_FEATURE_TABLE_NAME) features_table = config_db.get_table(FEATURE_TABLE_NAME)
if not container_features_table: if not features_table:
syslog.syslog(syslog.LOG_ERR, "Unable to retrieve container features table from Config DB. Exiting...") syslog.syslog(syslog.LOG_ERR, "Unable to retrieve features table from Config DB. Exiting...")
sys.exit(2) sys.exit(2)
if not container_features_table.has_key(container_name): if not features_table.has_key(container_name):
syslog.syslog(syslog.LOG_ERR, "Unable to retrieve features for container '{}'. Exiting...".format(container_name)) syslog.syslog(syslog.LOG_ERR, "Unable to retrieve feature '{}'. Exiting...".format(container_name))
sys.exit(3) sys.exit(3)
restart_feature = container_features_table[container_name].get('auto_restart') restart_feature = features_table[container_name].get('auto_restart')
if not restart_feature: if not restart_feature:
syslog.syslog(syslog.LOG_ERR, "Unable to determine auto-restart feature status for container '{}'. Exiting...".format(container_name)) syslog.syslog(syslog.LOG_ERR, "Unable to determine auto-restart feature status for '{}'. Exiting...".format(container_name))
sys.exit(4) sys.exit(4)
# If container is database or auto-restart feature is enabled and at the same time # If container is database or auto-restart feature is enabled and at the same time
# a critical process exited unexpectedly, terminate supervisor # a critical process exited unexpectedly, terminate supervisor
if ((container_name == 'database' or restart_feature == 'enabled') and expected == 0 and if ((container_name == 'database' or restart_feature == 'enabled') and expected == 0 and
(processname in critical_process_list or groupname in critical_group_list)): (processname in critical_process_list or groupname in critical_group_list)):
MSG_FORMAT_STR = "Process {} exited unxepectedly. Terminating supervisor..." MSG_FORMAT_STR = "Process {} exited unxepectedly. Terminating supervisor..."
msg = MSG_FORMAT_STR.format(payload_headers['processname']) msg = MSG_FORMAT_STR.format(payload_headers['processname'])

View File

@ -7,7 +7,7 @@ include $(PLATFORM_PATH)/libsaithrift-dev.mk
include $(PLATFORM_PATH)/docker-ptf-mrvl.mk include $(PLATFORM_PATH)/docker-ptf-mrvl.mk
include $(PLATFORM_PATH)/one-image.mk include $(PLATFORM_PATH)/one-image.mk
include $(PLATFORM_PATH)/linux-kernel-arm64.mk include $(PLATFORM_PATH)/linux-kernel-arm64.mk
ENABLE_SYSTEM_TELEMETRY = "" INCLUDE_SYSTEM_TELEMETRY = ""
SONIC_ALL += $(SONIC_ONE_IMAGE) \ SONIC_ALL += $(SONIC_ONE_IMAGE) \

View File

@ -9,7 +9,7 @@ include $(PLATFORM_PATH)/one-image.mk
include $(PLATFORM_PATH)/linux-kernel-armhf.mk include $(PLATFORM_PATH)/linux-kernel-armhf.mk
include $(PLATFORM_PATH)/platform-et6448m.mk include $(PLATFORM_PATH)/platform-et6448m.mk
ENABLE_SYSTEM_TELEMETRY = "" INCLUDE_SYSTEM_TELEMETRY = ""
ENABLE_SYNCD_RPC = "" ENABLE_SYNCD_RPC = ""
SONIC_ALL += $(SONIC_ONE_IMAGE) \ SONIC_ALL += $(SONIC_ONE_IMAGE) \

View File

@ -83,9 +83,6 @@ ENABLE_ORGANIZATION_EXTENSIONS = y
#SONIC_DEBUGGING_ON = y #SONIC_DEBUGGING_ON = y
#SONIC_PROFILING_ON = y #SONIC_PROFILING_ON = y
# ENABLE_SYSTEM_TELEMETRY - build docker-sonic-telemetry for system telemetry support
ENABLE_SYSTEM_TELEMETRY = y
# DEFAULT_KERNEL_PROCURE_METHOD - default method for obtaining kernel # DEFAULT_KERNEL_PROCURE_METHOD - default method for obtaining kernel
# build: build kernel from source # build: build kernel from source
# download: download pre-built kernel from Azure storage. # download: download pre-built kernel from Azure storage.
@ -116,32 +113,35 @@ SONIC_DPKG_CACHE_SOURCE ?= /var/cache/sonic/artifacts
DEFAULT_VS_PREPARE_MEM = yes DEFAULT_VS_PREPARE_MEM = yes
# ENABLE_ICCPD - build docker-iccpd for mclag support # INCLUDE_SYSTEM_TELEMETRY - build docker-sonic-telemetry for system telemetry support
ENABLE_ICCPD = n INCLUDE_SYSTEM_TELEMETRY = y
# ENABLE_SYSTEM_SFLOW - build docker-sonic-sflow for sFlow support # INCLUDE_ICCPD - build docker-iccpd for mclag support
ENABLE_SFLOW = y INCLUDE_ICCPD = n
# ENABLE_MGMT_FRAMEWORK - build docker-sonic-mgt-framework for CLI and REST server support # INCLUDE_SFLOW - build docker-sflow for sFlow support
ENABLE_MGMT_FRAMEWORK = y INCLUDE_SFLOW = y
# ENABLE_RESTAPI - build docker-sonic-restapi for configuring the switch using REST APIs # INCLUDE_MGMT_FRAMEWORK - build docker-sonic-mgmt-framework for CLI and REST server support
ENABLE_RESTAPI = n INCLUDE_MGMT_FRAMEWORK = y
# ENABLE_NAT - build docker-sonic-nat for nat support # INCLUDE_RESTAPI - build docker-sonic-restapi for configuring the switch using REST APIs
ENABLE_NAT = y INCLUDE_RESTAPI = n
# INCLUDE_NAT - build docker-nat for nat support
INCLUDE_NAT = y
# TELEMETRY_WRITABLE - Enable write/config operations via the gNMI interface. # TELEMETRY_WRITABLE - Enable write/config operations via the gNMI interface.
# Uncomment to enable: # Uncomment to enable:
# TELEMETRY_WRITABLE = y # TELEMETRY_WRITABLE = y
# INSTALL_KUBERNETES - if set to y kubernetes packages are installed to be able to # INCLUDE_KUBERNETES - if set to y kubernetes packages are installed to be able to
# run as worker node in kubernetes cluster. # run as worker node in kubernetes cluster.
INSTALL_KUBERNETES = n INCLUDE_KUBERNETES = n
# KUBERNETES_VERSION - Set to the required version. # KUBERNETES_VERSION - Set to the required version.
# K8s_GCR_IO_PAUSE_VERSION - Version of k8s universal pause container image # K8s_GCR_IO_PAUSE_VERSION - Version of k8s universal pause container image
# K8s_CNI_FLANNEL_VERSION - Flannel used as CNI; Appropriate version for this Kubernetes version # K8s_CNI_FLANNEL_VERSION - Flannel used as CNI; Appropriate version for this Kubernetes version
# These are Used *only* when INSTALL_KUBERNETES=y # These are Used *only* when INCLUDE_KUBERNETES=y
# NOTE: As a worker node it has to run version compatible to kubernetes master. # NOTE: As a worker node it has to run version compatible to kubernetes master.
# #
KUBERNETES_VERSION = 1.18.6 KUBERNETES_VERSION = 1.18.6

View File

@ -10,7 +10,7 @@ $(DOCKER_ICCPD)_DBG_DEPENDS += $(SWSS_DBG) $(LIBSWSSCOMMON_DBG) $(ICCPD_DBG)
$(DOCKER_ICCPD)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES) $(DOCKER_ICCPD)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES)
$(DOCKER_ICCPD)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER) $(DOCKER_ICCPD)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
ifeq ($(ENABLE_ICCPD), y) ifeq ($(INCLUDE_ICCPD), y)
SONIC_DOCKER_IMAGES += $(DOCKER_ICCPD) SONIC_DOCKER_IMAGES += $(DOCKER_ICCPD)
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_ICCPD) SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_ICCPD)
SONIC_DOCKER_DBG_IMAGES += $(DOCKER_ICCPD_DBG) SONIC_DOCKER_DBG_IMAGES += $(DOCKER_ICCPD_DBG)

View File

@ -13,12 +13,12 @@ $(DOCKER_NAT)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PA
$(DOCKER_NAT)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER) $(DOCKER_NAT)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
ifeq ($(ENABLE_NAT), y) ifeq ($(INCLUDE_NAT), y)
SONIC_DOCKER_IMAGES += $(DOCKER_NAT) SONIC_DOCKER_IMAGES += $(DOCKER_NAT)
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_NAT) SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_NAT)
endif endif
ifeq ($(ENABLE_NAT), y) ifeq ($(INCLUDE_NAT), y)
SONIC_DOCKER_DBG_IMAGES += $(DOCKER_NAT_DBG) SONIC_DOCKER_DBG_IMAGES += $(DOCKER_NAT_DBG)
SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_NAT_DBG) SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_NAT_DBG)
endif endif

View File

@ -10,7 +10,7 @@ $(DOCKER_RESTAPI)_PATH = $(DOCKERS_PATH)/$(DOCKER_RESTAPI_STEM)
$(DOCKER_RESTAPI)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_STRETCH) $(DOCKER_RESTAPI)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_STRETCH)
ifeq ($(ENABLE_RESTAPI), y) ifeq ($(INCLUDE_RESTAPI), y)
SONIC_DOCKER_IMAGES += $(DOCKER_RESTAPI) SONIC_DOCKER_IMAGES += $(DOCKER_RESTAPI)
SONIC_STRETCH_DOCKERS += $(DOCKER_RESTAPI) SONIC_STRETCH_DOCKERS += $(DOCKER_RESTAPI)
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_RESTAPI) SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_RESTAPI)

View File

@ -14,12 +14,12 @@ $(DOCKER_SFLOW)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_
$(DOCKER_SFLOW)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER) $(DOCKER_SFLOW)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
SONIC_DOCKER_IMAGES += $(DOCKER_SFLOW) SONIC_DOCKER_IMAGES += $(DOCKER_SFLOW)
ifeq ($(ENABLE_SFLOW), y) ifeq ($(INCLUDE_SFLOW), y)
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SFLOW) SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SFLOW)
endif endif
SONIC_DOCKER_DBG_IMAGES += $(DOCKER_SFLOW_DBG) SONIC_DOCKER_DBG_IMAGES += $(DOCKER_SFLOW_DBG)
ifeq ($(ENABLE_SFLOW), y) ifeq ($(INCLUDE_SFLOW), y)
SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_SFLOW_DBG) SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_SFLOW_DBG)
endif endif

View File

@ -15,12 +15,12 @@ SONIC_DOCKER_IMAGES += $(DOCKER_MGMT_FRAMEWORK)
$(DOCKER_MGMT_FRAMEWORK)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER) $(DOCKER_MGMT_FRAMEWORK)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
$(DOCKER_MGMT_FRAMEWORK)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES) $(DOCKER_MGMT_FRAMEWORK)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES)
ifeq ($(ENABLE_MGMT_FRAMEWORK), y) ifeq ($(INCLUDE_MGMT_FRAMEWORK), y)
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_MGMT_FRAMEWORK) SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_MGMT_FRAMEWORK)
endif endif
SONIC_DOCKER_DBG_IMAGES += $(DOCKER_MGMT_FRAMEWORK_DBG) SONIC_DOCKER_DBG_IMAGES += $(DOCKER_MGMT_FRAMEWORK_DBG)
ifeq ($(ENABLE_MGMT_FRAMEWORK), y) ifeq ($(INCLUDE_MGMT_FRAMEWORK), y)
SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_MGMT_FRAMEWORK_DBG) SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_MGMT_FRAMEWORK_DBG)
endif endif

View File

@ -14,12 +14,12 @@ $(DOCKER_TELEMETRY)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
$(DOCKER_TELEMETRY)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES) $(DOCKER_TELEMETRY)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES)
SONIC_DOCKER_IMAGES += $(DOCKER_TELEMETRY) SONIC_DOCKER_IMAGES += $(DOCKER_TELEMETRY)
ifeq ($(ENABLE_SYSTEM_TELEMETRY), y) ifeq ($(INCLUDE_SYSTEM_TELEMETRY), y)
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_TELEMETRY) SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_TELEMETRY)
endif endif
SONIC_DOCKER_DBG_IMAGES += $(DOCKER_TELEMETRY_DBG) SONIC_DOCKER_DBG_IMAGES += $(DOCKER_TELEMETRY_DBG)
ifeq ($(ENABLE_SYSTEM_TELEMETRY), y) ifeq ($(INCLUDE_SYSTEM_TELEMETRY), y)
SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_TELEMETRY_DBG) SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_TELEMETRY_DBG)
endif endif

View File

@ -1,6 +1,6 @@
# SONiC mgmt-framework package # SONiC mgmt-framework package
ifeq ($(ENABLE_MGMT_FRAMEWORK), y) ifeq ($(INCLUDE_MGMT_FRAMEWORK), y)
SONIC_MGMT_FRAMEWORK = sonic-mgmt-framework_1.0-01_$(CONFIGURED_ARCH).deb SONIC_MGMT_FRAMEWORK = sonic-mgmt-framework_1.0-01_$(CONFIGURED_ARCH).deb
$(SONIC_MGMT_FRAMEWORK)_SRC_PATH = $(SRC_PATH)/sonic-mgmt-framework $(SONIC_MGMT_FRAMEWORK)_SRC_PATH = $(SRC_PATH)/sonic-mgmt-framework

View File

@ -99,8 +99,8 @@ ifeq ($(SONIC_ENABLE_PFCWD_ON_START),y)
ENABLE_PFCWD_ON_START = y ENABLE_PFCWD_ON_START = y
endif endif
ifeq ($(SONIC_ENABLE_SYSTEM_TELEMETRY),y) ifeq ($(SONIC_INCLUDE_SYSTEM_TELEMETRY),y)
ENABLE_SYSTEM_TELEMETRY = y INCLUDE_SYSTEM_TELEMETRY = y
endif endif
ifneq (,$(filter $(CONFIGURED_ARCH), armhf arm64)) ifneq (,$(filter $(CONFIGURED_ARCH), armhf arm64))
@ -108,11 +108,11 @@ ifneq (,$(filter $(CONFIGURED_ARCH), armhf arm64))
# Issue: qemu crashes when it uses "go get url" # Issue: qemu crashes when it uses "go get url"
# Qemu Support: https://bugs.launchpad.net/qemu/+bug/1838946 # Qemu Support: https://bugs.launchpad.net/qemu/+bug/1838946
# Golang Support: https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/golang-nuts/1txPOGa4aGc # Golang Support: https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/golang-nuts/1txPOGa4aGc
ENABLE_SYSTEM_TELEMETRY = N INCLUDE_SYSTEM_TELEMETRY = n
endif endif
ifeq ($(SONIC_ENABLE_RESTAPI),y) ifeq ($(SONIC_INCLUDE_RESTAPI),y)
ENABLE_RESTAPI = y INCLUDE_RESTAPI = y
endif endif
ifeq ($(SONIC_ENABLE_SYNCD_RPC),y) ifeq ($(SONIC_ENABLE_SYNCD_RPC),y)
@ -123,12 +123,12 @@ ifeq ($(SONIC_INSTALL_DEBUG_TOOLS),y)
INSTALL_DEBUG_TOOLS = y INSTALL_DEBUG_TOOLS = y
endif endif
ifeq ($(SONIC_ENABLE_SFLOW),y) ifeq ($(SONIC_INCLUDE_SFLOW),y)
ENABLE_SFLOW = y INCLUDE_SFLOW = y
endif endif
ifeq ($(SONIC_ENABLE_NAT),y) ifeq ($(SONIC_INCLUDE_NAT),y)
ENABLE_NAT = y INCLUDE_NAT = y
endif endif
@ -202,7 +202,6 @@ $(info "USERNAME" : "$(USERNAME)")
$(info "PASSWORD" : "$(PASSWORD)") $(info "PASSWORD" : "$(PASSWORD)")
$(info "ENABLE_DHCP_GRAPH_SERVICE" : "$(ENABLE_DHCP_GRAPH_SERVICE)") $(info "ENABLE_DHCP_GRAPH_SERVICE" : "$(ENABLE_DHCP_GRAPH_SERVICE)")
$(info "SHUTDOWN_BGP_ON_START" : "$(SHUTDOWN_BGP_ON_START)") $(info "SHUTDOWN_BGP_ON_START" : "$(SHUTDOWN_BGP_ON_START)")
$(info "INSTALL_KUBERNETES" : "$(INSTALL_KUBERNETES)")
$(info "ENABLE_PFCWD_ON_START" : "$(ENABLE_PFCWD_ON_START)") $(info "ENABLE_PFCWD_ON_START" : "$(ENABLE_PFCWD_ON_START)")
$(info "INSTALL_DEBUG_TOOLS" : "$(INSTALL_DEBUG_TOOLS)") $(info "INSTALL_DEBUG_TOOLS" : "$(INSTALL_DEBUG_TOOLS)")
$(info "ROUTING_STACK" : "$(SONIC_ROUTING_STACK)") $(info "ROUTING_STACK" : "$(SONIC_ROUTING_STACK)")
@ -214,8 +213,6 @@ $(info "ENABLE_SYNCD_RPC" : "$(ENABLE_SYNCD_RPC)")
$(info "ENABLE_ORGANIZATION_EXTENSIONS" : "$(ENABLE_ORGANIZATION_EXTENSIONS)") $(info "ENABLE_ORGANIZATION_EXTENSIONS" : "$(ENABLE_ORGANIZATION_EXTENSIONS)")
$(info "HTTP_PROXY" : "$(HTTP_PROXY)") $(info "HTTP_PROXY" : "$(HTTP_PROXY)")
$(info "HTTPS_PROXY" : "$(HTTPS_PROXY)") $(info "HTTPS_PROXY" : "$(HTTPS_PROXY)")
$(info "ENABLE_SYSTEM_TELEMETRY" : "$(ENABLE_SYSTEM_TELEMETRY)")
$(info "ENABLE_RESTAPI" : "$(ENABLE_RESTAPI)")
$(info "ENABLE_ZTP" : "$(ENABLE_ZTP)") $(info "ENABLE_ZTP" : "$(ENABLE_ZTP)")
$(info "SONIC_DEBUGGING_ON" : "$(SONIC_DEBUGGING_ON)") $(info "SONIC_DEBUGGING_ON" : "$(SONIC_DEBUGGING_ON)")
$(info "SONIC_PROFILING_ON" : "$(SONIC_PROFILING_ON)") $(info "SONIC_PROFILING_ON" : "$(SONIC_PROFILING_ON)")
@ -224,8 +221,13 @@ $(info "BUILD_TIMESTAMP" : "$(BUILD_TIMESTAMP)")
$(info "BUILD_LOG_TIMESTAMP" : "$(BUILD_LOG_TIMESTAMP)") $(info "BUILD_LOG_TIMESTAMP" : "$(BUILD_LOG_TIMESTAMP)")
$(info "BLDENV" : "$(BLDENV)") $(info "BLDENV" : "$(BLDENV)")
$(info "VS_PREPARE_MEM" : "$(VS_PREPARE_MEM)") $(info "VS_PREPARE_MEM" : "$(VS_PREPARE_MEM)")
$(info "ENABLE_SFLOW" : "$(ENABLE_SFLOW)") $(info "INCLUDE_MGMT_FRAMEWORK" : "$(INCLUDE_MGMT_FRAMEWORK)")
$(info "ENABLE_NAT" : "$(ENABLE_NAT)") $(info "INCLUDE_ICCPD" : "$(INCLUDE_ICCPD)")
$(info "INCLUDE_SYSTEM_TELEMETRY" : "$(INCLUDE_SYSTEM_TELEMETRY)")
$(info "INCLUDE_RESTAPI" : "$(INCLUDE_RESTAPI)")
$(info "INCLUDE_SFLOW" : "$(INCLUDE_SFLOW)")
$(info "INCLUDE_NAT" : "$(INCLUDE_NAT)")
$(info "INCLUDE_KUBERNETES" : "$(INCLUDE_KUBERNETES)")
$(info "TELEMETRY_WRITABLE" : "$(TELEMETRY_WRITABLE)") $(info "TELEMETRY_WRITABLE" : "$(TELEMETRY_WRITABLE)")
$(info ) $(info )
@ -815,12 +817,15 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
export sonic_asic_platform="$(patsubst %-$(CONFIGURED_ARCH),%,$(CONFIGURED_PLATFORM))" export sonic_asic_platform="$(patsubst %-$(CONFIGURED_ARCH),%,$(CONFIGURED_PLATFORM))"
export enable_organization_extensions="$(ENABLE_ORGANIZATION_EXTENSIONS)" export enable_organization_extensions="$(ENABLE_ORGANIZATION_EXTENSIONS)"
export enable_dhcp_graph_service="$(ENABLE_DHCP_GRAPH_SERVICE)" export enable_dhcp_graph_service="$(ENABLE_DHCP_GRAPH_SERVICE)"
export enable_system_telemetry="$(ENABLE_SYSTEM_TELEMETRY)"
export enable_restapi="$(ENABLE_RESTAPI)"
export enable_ztp="$(ENABLE_ZTP)" export enable_ztp="$(ENABLE_ZTP)"
export enable_nat="$(ENABLE_NAT)" export include_system_telemetry="$(INCLUDE_SYSTEM_TELEMETRY)"
export include_restapi="$(INCLUDE_RESTAPI)"
export include_nat="$(INCLUDE_NAT)"
export include_sflow="$(INCLUDE_SFLOW)"
export include_mgmt_framework="$(INCLUDE_MGMT_FRAMEWORK)"
export include_iccpd="$(INCLUDE_ICCPD)"
export shutdown_bgp_on_start="$(SHUTDOWN_BGP_ON_START)" export shutdown_bgp_on_start="$(SHUTDOWN_BGP_ON_START)"
export install_kubernetes="$(INSTALL_KUBERNETES)" export include_kubernetes="$(INCLUDE_KUBERNETES)"
export enable_pfcwd_on_start="$(ENABLE_PFCWD_ON_START)" export enable_pfcwd_on_start="$(ENABLE_PFCWD_ON_START)"
export installer_debs="$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$($*_INSTALLS))" export installer_debs="$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$($*_INSTALLS))"
export lazy_installer_debs="$(foreach deb, $($*_LAZY_INSTALLS),$(foreach device, $($(deb)_PLATFORM),$(addprefix $(device)@, $(IMAGE_DISTRO_DEBS_PATH)/$(deb))))" export lazy_installer_debs="$(foreach deb, $($*_LAZY_INSTALLS),$(foreach device, $($(deb)_PLATFORM),$(addprefix $(device)@, $(IMAGE_DISTRO_DEBS_PATH)/$(deb))))"

@ -1 +1 @@
Subproject commit c0c3cce6bee0e335cf1b5528f1172b511d48ee12 Subproject commit 9700e45322a4a58076e5cef604ed15803ffb9314