[docker-syncd-*]: Properly manage syncd with supervisord (#617)
- This PR allows supervisord to log syncd exit events to syslog - Syncd dockers now are built from docker-config-engine instead of docker-base - Supervisord in all syncd dockers now call syncd_start.s which is installed by sonic-sairedis repo
This commit is contained in:
parent
5cc45a991d
commit
a2eda30a03
@ -1,4 +1,4 @@
|
|||||||
FROM docker-base
|
FROM docker-config-engine
|
||||||
|
|
||||||
## Make apt-get non-interactive
|
## Make apt-get non-interactive
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
@ -19,7 +19,7 @@ debs/{{ deb }}{{' '}}
|
|||||||
## TODO: add kmod into Depends
|
## TODO: add kmod into Depends
|
||||||
RUN apt-get install -f kmod
|
RUN apt-get install -f kmod
|
||||||
|
|
||||||
COPY ["debs/dsserve", "debs/bcmcmd", "start.sh", "syncd.sh", "/usr/bin/"]
|
COPY ["debs/dsserve", "debs/bcmcmd", "start.sh", "/usr/bin/"]
|
||||||
RUN chmod +x /usr/bin/dsserve /usr/bin/bcmcmd
|
RUN chmod +x /usr/bin/dsserve /usr/bin/bcmcmd
|
||||||
|
|
||||||
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
||||||
|
@ -20,7 +20,7 @@ stdout_logfile=syslog
|
|||||||
stderr_logfile=syslog
|
stderr_logfile=syslog
|
||||||
|
|
||||||
[program:syncd]
|
[program:syncd]
|
||||||
command=/usr/bin/syncd.sh
|
command=/usr/bin/syncd_start.sh
|
||||||
priority=3
|
priority=3
|
||||||
autostart=false
|
autostart=false
|
||||||
autorestart=false
|
autorestart=false
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function clean_up {
|
|
||||||
service syncd stop
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
trap clean_up SIGTERM SIGKILL
|
|
||||||
|
|
||||||
service syncd start
|
|
||||||
|
|
||||||
read
|
|
@ -1,4 +1,4 @@
|
|||||||
FROM docker-base
|
FROM docker-config-engine
|
||||||
|
|
||||||
## Make apt-get non-interactive
|
## Make apt-get non-interactive
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
@ -18,7 +18,7 @@ RUN dpkg -i \
|
|||||||
debs/{{ deb }}{{' '}}
|
debs/{{ deb }}{{' '}}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
COPY ["start.sh", "syncd.sh", "/usr/bin/"]
|
COPY ["start.sh", "/usr/bin/"]
|
||||||
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
||||||
|
|
||||||
COPY ["profile.ini", "/etc/ssw/AS7512/"]
|
COPY ["profile.ini", "/etc/ssw/AS7512/"]
|
||||||
|
@ -20,7 +20,7 @@ stdout_logfile=syslog
|
|||||||
stderr_logfile=syslog
|
stderr_logfile=syslog
|
||||||
|
|
||||||
[program:syncd]
|
[program:syncd]
|
||||||
command=/usr/bin/syncd.sh
|
command=/usr/bin/syncd_start.sh
|
||||||
priority=3
|
priority=3
|
||||||
autostart=false
|
autostart=false
|
||||||
autorestart=false
|
autorestart=false
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
export XP_ROOT=/usr/bin/
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
|
|
||||||
# Check if redis-server starts
|
|
||||||
|
|
||||||
result=$(redis-cli ping)
|
|
||||||
|
|
||||||
if [ "$result" == "PONG" ]; then
|
|
||||||
|
|
||||||
redis-cli FLUSHALL
|
|
||||||
syncd -p /etc/ssw/AS7512/profile.ini -N
|
|
||||||
break
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
FROM docker-base
|
FROM docker-config-engine
|
||||||
|
|
||||||
## Make apt-get non-interactive
|
## Make apt-get non-interactive
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
@ -19,7 +19,7 @@ debs/{{ deb }}{{' '}}
|
|||||||
## TODO: add kmod into Depends
|
## TODO: add kmod into Depends
|
||||||
RUN apt-get install -f kmod
|
RUN apt-get install -f kmod
|
||||||
|
|
||||||
COPY ["start.sh", "syncd.sh", "/usr/bin/"]
|
COPY ["start.sh", "/usr/bin/"]
|
||||||
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
||||||
|
|
||||||
## Clean up
|
## Clean up
|
||||||
|
@ -20,7 +20,7 @@ stdout_logfile=syslog
|
|||||||
stderr_logfile=syslog
|
stderr_logfile=syslog
|
||||||
|
|
||||||
[program:syncd]
|
[program:syncd]
|
||||||
command=/usr/bin/syncd.sh
|
command=/usr/bin/syncd_start.sh
|
||||||
priority=3
|
priority=3
|
||||||
autostart=false
|
autostart=false
|
||||||
autorestart=false
|
autorestart=false
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function clean_up {
|
|
||||||
service syncd stop
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
trap clean_up SIGTERM SIGKILL
|
|
||||||
|
|
||||||
service syncd start
|
|
||||||
|
|
||||||
read
|
|
@ -1,4 +1,4 @@
|
|||||||
FROM docker-base
|
FROM docker-config-engine
|
||||||
|
|
||||||
## Make apt-get non-interactive
|
## Make apt-get non-interactive
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
@ -18,7 +18,7 @@ RUN dpkg -i \
|
|||||||
debs/{{ deb }}{{' '}}
|
debs/{{ deb }}{{' '}}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
COPY ["start.sh", "syncd.sh", "mlnx-fw-upgrade.sh", "/usr/bin/"]
|
COPY ["start.sh", "mlnx-fw-upgrade.sh", "/usr/bin/"]
|
||||||
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
||||||
COPY ["/debs/fw-SPC.mfa", "/etc/mlnx/"]
|
COPY ["/debs/fw-SPC.mfa", "/etc/mlnx/"]
|
||||||
|
|
||||||
|
@ -4,5 +4,8 @@ rm -f /var/run/rsyslogd.pid
|
|||||||
|
|
||||||
supervisorctl start rsyslogd
|
supervisorctl start rsyslogd
|
||||||
|
|
||||||
supervisorctl start syncd
|
# mlnx-fw-upgrade.sh will exit if firmware was actually upgraded
|
||||||
|
# or if some error occurs
|
||||||
|
. mlnx-fw-upgrade.sh
|
||||||
|
|
||||||
|
supervisorctl start syncd
|
||||||
|
@ -20,7 +20,7 @@ stdout_logfile=syslog
|
|||||||
stderr_logfile=syslog
|
stderr_logfile=syslog
|
||||||
|
|
||||||
[program:syncd]
|
[program:syncd]
|
||||||
command=/usr/bin/syncd.sh
|
command=/usr/bin/syncd_start.sh
|
||||||
priority=3
|
priority=3
|
||||||
autostart=false
|
autostart=false
|
||||||
autorestart=false
|
autorestart=false
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function clean_up {
|
|
||||||
service syncd stop
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
trap clean_up SIGTERM SIGKILL
|
|
||||||
|
|
||||||
# fw-upgrade will exit if firmware was actually upgraded or if some error
|
|
||||||
# occures
|
|
||||||
. mlnx-fw-upgrade.sh
|
|
||||||
|
|
||||||
# FIXME: the script cannot trap SIGTERM signal and it exits without clean_up
|
|
||||||
# Remove rsyslogd.pid file manually so that to start the rsyslog instantly
|
|
||||||
service syncd start
|
|
||||||
|
|
||||||
read
|
|
||||||
|
|
@ -1 +1 @@
|
|||||||
Subproject commit 9fe1e696c6a9b5e99406ff2548c6f52db4e0b604
|
Subproject commit 31131d7d76fa68619b90d88528270a0740daa438
|
Loading…
Reference in New Issue
Block a user