f978b2bb53
#### Why I did it To fix the timezone sync issue between the containers and the host. If a certain timezone has been configured on the host (SONIC) then the expectation is to reflect the same across all the containers. This will fix [Issue:13046](https://github.com/sonic-net/sonic-buildimage/issues/13046). For instance, a PST timezone has been set on the host and if the user checks the link flap logs (inside the FRR), it shows the UTC timestamp. Ideally, it should be PST.
78 lines
2.9 KiB
Django/Jinja
Executable File
78 lines
2.9 KiB
Django/Jinja
Executable File
#!/usr/bin/env bash
|
|
|
|
mkdir -p /etc/swss/config.d/
|
|
mkdir -p /etc/supervisor/
|
|
mkdir -p /etc/supervisor/conf.d/
|
|
|
|
|
|
CFGGEN_PARAMS=" \
|
|
-d \
|
|
{% if ENABLE_ASAN == "y" %}
|
|
-a "{\"ENABLE_ASAN\":\"{{ENABLE_ASAN}}\"}" \
|
|
{% endif %}
|
|
-y /etc/sonic/constants.yml \
|
|
-t /usr/share/sonic/templates/switch.json.j2,/etc/swss/config.d/switch.json \
|
|
-t /usr/share/sonic/templates/vxlan.json.j2,/etc/swss/config.d/vxlan.json \
|
|
-t /usr/share/sonic/templates/ipinip.json.j2,/etc/swss/config.d/ipinip.json \
|
|
-t /usr/share/sonic/templates/ports.json.j2,/etc/swss/config.d/ports.json \
|
|
-t /usr/share/sonic/templates/vlan_vars.j2 \
|
|
-t /usr/share/sonic/templates/ndppd.conf.j2,/etc/ndppd.conf \
|
|
-t /usr/share/sonic/templates/critical_processes.j2,/etc/supervisor/critical_processes \
|
|
-t /usr/share/sonic/templates/watchdog_processes.j2,/etc/supervisor/watchdog_processes \
|
|
-t /usr/share/sonic/templates/supervisord.conf.j2,/etc/supervisor/conf.d/supervisord.conf
|
|
-t /usr/share/sonic/templates/wait_for_link.sh.j2,/usr/bin/wait_for_link.sh \
|
|
"
|
|
VLAN=$(sonic-cfggen $CFGGEN_PARAMS)
|
|
SUBTYPE=$(sonic-cfggen -d -v "DEVICE_METADATA['localhost']['subtype']")
|
|
SWITCH_TYPE=${SWITCH_TYPE:-`sonic-cfggen -d -v "DEVICE_METADATA['localhost']['switch_type']"`}
|
|
chmod +x /usr/bin/wait_for_link.sh
|
|
|
|
# Executed platform specific initialization tasks.
|
|
if [ -x /usr/share/sonic/platform/platform-init ]; then
|
|
/usr/share/sonic/platform/platform-init
|
|
fi
|
|
|
|
# Executed HWSKU specific initialization tasks.
|
|
if [ -x /usr/share/sonic/hwsku/hwsku-init ]; then
|
|
/usr/share/sonic/hwsku/hwsku-init
|
|
fi
|
|
|
|
# Start arp update when VLAN exists or switch type as chassis packet for backend port channel interfaces
|
|
if [[ "$VLAN" != "" ]] || [[ "$SWITCH_TYPE" == "chassis-packet" ]]; then
|
|
cp /usr/share/sonic/templates/arp_update.conf /etc/supervisor/conf.d/
|
|
fi
|
|
|
|
if [ "$VLAN" != "" ]; then
|
|
cp /usr/share/sonic/templates/ndppd.conf /etc/supervisor/conf.d/
|
|
fi
|
|
|
|
if [ "$SUBTYPE" == "DualToR" ]; then
|
|
cp /usr/share/sonic/templates/tunnel_packet_handler.conf /etc/supervisor/conf.d/
|
|
fi
|
|
|
|
IS_SUPERVISOR=/etc/sonic/chassisdb.conf
|
|
USE_PCI_ID_IN_CHASSIS_STATE_DB=/usr/share/sonic/platform/use_pci_id_chassis
|
|
ASIC_ID="asic$NAMESPACE_ID"
|
|
if [ -f "$IS_SUPERVISOR" ]; then
|
|
if [ -f "$USE_PCI_ID_IN_CHASSIS_STATE_DB" ]; then
|
|
while true; do
|
|
PCI_ID=$(sonic-db-cli -s CHASSIS_STATE_DB HGET "CHASSIS_FABRIC_ASIC_TABLE|$ASIC_ID" asic_pci_address)
|
|
if [ -z "$PCI_ID" ]; then
|
|
sleep 3
|
|
else
|
|
# Update asic_id in CONFIG_DB, which is used by orchagent and fed to syncd
|
|
if [[ $PCI_ID == ????:??:??.? ]]; then
|
|
sonic-db-cli CONFIG_DB HSET 'DEVICE_METADATA|localhost' 'asic_id' ${PCI_ID#*:}
|
|
break
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
fi
|
|
|
|
TZ=$(cat /etc/timezone)
|
|
rm -rf /etc/localtime
|
|
ln -sf /usr/share/zoneinfo/$TZ /etc/localtime
|
|
|
|
exec /usr/local/bin/supervisord
|