Skip to content

Commit ea546c8

Browse files
authored
[innovium]: Enable syncd container autorestart for Innovium platforms (#11497)
Why I did it Enable syncd container autorestart for Innovium platforms How I did it Add critical_process file and sypervisord.conf entry How to verify it Tested with autorestart/test_container_autorestart.py::test_containers_autorestart PASSED autorestart/test_container_autorestart.py::test_containers_autorestart[sonic-xxx-dut-sonic-xxx-dut|syncd] Signed-off-by: rck-innovium [email protected]
1 parent 3b79c83 commit ea546c8

File tree

4 files changed

+29
-5
lines changed

4 files changed

+29
-5
lines changed

platform/innovium/docker-syncd-invm-rpc.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_INVM_RPC)
1010
endif
1111

1212
$(DOCKER_SYNCD_INVM_RPC)_CONTAINER_NAME = syncd
13-
$(DOCKER_SYNCD_INVM_RPC)_VERSION = 1.0.0+rpc
13+
$(DOCKER_SYNCD_INVM_RPC)_VERSION = 1.0.0-rpc
1414
$(DOCKER_SYNCD_INVM_RPC)_PACKAGE_NAME = syncd
1515
$(DOCKER_SYNCD_INVM_RPC)_RUN_OPT += --privileged -t
1616
$(DOCKER_SYNCD_INVM_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf

platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2

+3
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ RUN wget https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz \
4646
&& pip install cffi==1.7.0 \
4747
&& pip install --upgrade cffi==1.7.0 \
4848
&& pip install nnpy \
49+
&& pip install numpy \
50+
&& pip install scipy \
51+
&& pip install setuptools \
4952
&& mkdir -p /opt \
5053
&& cd /opt \
5154
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \

platform/innovium/docker-syncd-invm/Dockerfile.j2

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
FROM docker-config-engine-stretch-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}}
22

33
ARG docker_container_name
4-
54
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
65

76
## Make apt-get non-interactive
@@ -25,7 +24,11 @@ RUN dpkg -i \
2524
debs/{{ deb }}{{' '}}
2625
{%- endfor %}
2726

27+
COPY ["start.sh", "/usr/bin/"]
28+
COPY ["ivm_start.sh", "/usr/bin/"]
2829
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
30+
COPY ["files/supervisor-proc-exit-listener", "/usr/bin"]
31+
COPY ["critical_processes", "/etc/supervisor/"]
2932

3033
## Clean up
3134
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y

platform/innovium/docker-syncd-invm/supervisord.conf

+21-3
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,47 @@ logfile_backups=2
44
nodaemon=true
55

66
[eventlistener:dependent-startup]
7-
command=python2 -m supervisord_dependent_startup
7+
command=python3 -m supervisord_dependent_startup
88
autostart=true
99
autorestart=unexpected
1010
startretries=0
1111
exitcodes=0,3
1212
events=PROCESS_STATE
13+
buffer_size=25
14+
15+
[eventlistener:supervisor-proc-exit-listener]
16+
command=/usr/bin/supervisor-proc-exit-listener --container-name syncd
17+
events=PROCESS_STATE_EXITED,PROCESS_STATE_RUNNING
18+
autostart=true
19+
autorestart=unexpected
1320
buffer_size=1024
1421

1522
[program:rsyslogd]
1623
command=/usr/sbin/rsyslogd -n -iNONE
1724
priority=1
1825
autostart=false
26+
autorestart=unexpected
27+
stdout_logfile=syslog
28+
stderr_logfile=syslog
29+
dependent_startup=true
30+
31+
[program:start]
32+
command=/usr/bin/start.sh
33+
priority=2
34+
autostart=false
1935
autorestart=false
36+
startsecs=0
2037
stdout_logfile=syslog
2138
stderr_logfile=syslog
2239
dependent_startup=true
40+
dependent_startup_wait_for=rsyslogd:running
2341

2442
[program:syncd]
2543
command=/usr/bin/syncd_start.sh
26-
priority=2
44+
priority=3
2745
autostart=false
2846
autorestart=false
2947
stdout_logfile=syslog
3048
stderr_logfile=syslog
3149
dependent_startup=true
32-
dependent_startup_wait_for=rsyslogd:running
50+
dependent_startup_wait_for=start:exited

0 commit comments

Comments
 (0)