Squashed merge master
This commit is contained in:
parent
06ed5f61f7
commit
cc7f15094c
14
.gitignore
vendored
14
.gitignore
vendored
@ -1,2 +1,14 @@
|
|||||||
deps/
|
deps/
|
||||||
|
dockers/*/files/
|
||||||
|
*.bin
|
||||||
|
*.deb
|
||||||
|
*.zip
|
||||||
|
fsroot/
|
||||||
|
fs.*
|
||||||
|
src/hiredis/hiredis_*
|
||||||
|
src/hiredis/hiredis-*/
|
||||||
|
src/quagga/quagga_*
|
||||||
|
src/quagga/quagga/
|
||||||
|
src/initramfs-tools/initramfs-tools/
|
||||||
|
src/redis/redis_*
|
||||||
|
src/redis/redis-*/
|
||||||
|
@ -39,7 +39,8 @@ The target directory is ./target, containing the NOS installer image and docker
|
|||||||
- docker-base.gz: base docker image where others are built from (gzip tar archive)
|
- docker-base.gz: base docker image where others are built from (gzip tar archive)
|
||||||
- docker-fpm.gz: docker image for quagga with fpm module enabled (gzip tar archive)
|
- docker-fpm.gz: docker image for quagga with fpm module enabled (gzip tar archive)
|
||||||
- docker-orchagent.gz: docker image for SWitch State Service (SWSS)
|
- docker-orchagent.gz: docker image for SWitch State Service (SWSS)
|
||||||
- docker-syncd.gz: docker image for the daemon to sync database and switch ASIC
|
- docker-syncd.gz: docker image for the daemon to sync database and Broadcom switch ASIC
|
||||||
|
- docker-syncd-mlnx.gz: docker image for the daemon to sync database and Mellanox switch ASIC
|
||||||
|
|
||||||
# Contribution guide
|
# Contribution guide
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ set -e
|
|||||||
usage() {
|
usage() {
|
||||||
cat >&2 <<EOF
|
cat >&2 <<EOF
|
||||||
Usage:
|
Usage:
|
||||||
sudo ./build_docker.sh -i=DOCKER_IMAGE_NAME DOCKER_BUILD_DIR [REGISTRY_SERVER REGISTRY_PORT]
|
sudo ./build_docker.sh -i=DOCKER_IMAGE_NAME DOCKER_BUILD_DIR [REGISTRY_SERVER REGISTRY_PORT REGISTRY_USERNAME REGISTRY_PASSWD]
|
||||||
|
|
||||||
Description:
|
Description:
|
||||||
-i DOCKER_IMAGE_NAME
|
-i DOCKER_IMAGE_NAME
|
||||||
@ -125,4 +125,5 @@ fi
|
|||||||
|
|
||||||
mkdir -p target
|
mkdir -p target
|
||||||
rm -f target/$docker_image_name.*.gz
|
rm -f target/$docker_image_name.*.gz
|
||||||
docker save $docker_image_name | gzip -c > target/$docker_image_name.$image_sha.gz
|
docker save $docker_image_name | gzip -c > target/$docker_image_name.$build_version.gz
|
||||||
|
echo "Image sha256: $image_sha"
|
||||||
|
@ -10,23 +10,12 @@ COPY deps/*py2*.whl deps/lldpsyncd_*.deb deps/lldpd_*.deb /deps/
|
|||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } && \
|
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } && \
|
||||||
dpkg_apt /deps/lldpd_*.deb && \
|
dpkg_apt /deps/lldpd_*.deb && \
|
||||||
dpkg_apt /deps/lldpsyncd_*.deb && \
|
dpkg_apt /deps/lldpsyncd_*.deb && \
|
||||||
apt-get install -y python-pip && \
|
apt-get install -y python-pip supervisor && \
|
||||||
pip install /deps/*.whl && \
|
pip install /deps/*.whl && \
|
||||||
apt-get remove -y python-pip && \
|
apt-get remove -y python-pip && \
|
||||||
apt-get clean -y && apt-get autoclean -y && apt-get autoremove -y && \
|
apt-get purge -y && apt-get autoclean -y && apt-get autoremove -y && \
|
||||||
rm -rf /deps
|
rm -rf /deps
|
||||||
|
|
||||||
## There is a known bug: agetty processes at 100% cpu
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
## When:
|
|
||||||
## 1. running container in --privileged mode
|
|
||||||
## 2. container runs /sbin/init
|
|
||||||
## ref: https://github.com/docker/docker/issues/4040
|
|
||||||
## Temporary solution:
|
|
||||||
## Disable tty services permanently
|
|
||||||
RUN systemctl --no-pager list-unit-files --type=service | grep getty | awk '{print $1}' | xargs systemctl mask
|
|
||||||
## Note: getty@.service in last grep output will not mask below cases
|
|
||||||
RUN systemctl mask getty@tty1.service
|
|
||||||
|
|
||||||
## Specify init as CMD to enable systemd
|
ENTRYPOINT ["/usr/bin/supervisord"]
|
||||||
## Note: don't provide ENTRYPOINT at the same time
|
|
||||||
CMD ["/sbin/init"]
|
|
||||||
|
16
dockers/docker-lldp/supervisord.conf
Normal file
16
dockers/docker-lldp/supervisord.conf
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
|
||||||
|
[program:lldpd]
|
||||||
|
## -d: Do not daemonize. If this option is specified, lldpd will run in
|
||||||
|
## the foreground and log to stderr. This option can be specified
|
||||||
|
## many times to increase verbosity
|
||||||
|
command=/usr/sbin/lldpd -dd
|
||||||
|
## route stderr to the syslog service instead of being saved to files
|
||||||
|
stderr_logfile=syslog
|
||||||
|
|
||||||
|
[program:lldpsyncd]
|
||||||
|
command=/usr/sbin/lldpsyncd
|
||||||
|
|
||||||
|
[program:rsyslogd]
|
||||||
|
command=/usr/sbin/rsyslogd -n
|
@ -11,7 +11,7 @@ RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return
|
|||||||
RUN apt-get install -f -y ifupdown bridge-utils
|
RUN apt-get install -f -y ifupdown bridge-utils
|
||||||
|
|
||||||
## Copy executable binaries
|
## Copy executable binaries
|
||||||
COPY ["deps/orchagent","deps/swssconfig","deps/portsyncd","deps/intfsyncd","deps/neighsyncd","/usr/local/bin/"]
|
COPY ["deps/orchagent","deps/swssconfig","deps/portsyncd","deps/intfsyncd","deps/neighsyncd","/usr/bin/"]
|
||||||
|
|
||||||
COPY start.sh /usr/bin/start.sh
|
COPY start.sh /usr/bin/start.sh
|
||||||
|
|
||||||
@ -19,5 +19,5 @@ COPY start.sh /usr/bin/start.sh
|
|||||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||||
RUN rm -rf /deps
|
RUN rm -rf /deps
|
||||||
|
|
||||||
ENTRYPOINT /usr/bin/start.sh \
|
ENTRYPOINT ["/bin/bash"]
|
||||||
&& /bin/bash
|
CMD ["/usr/bin/start.sh"]
|
||||||
|
@ -1,5 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
function clean_up {
|
||||||
|
kill -9 $ORCHAGENT_PID
|
||||||
|
kill -9 $PORTSYNCD_PID
|
||||||
|
kill -9 $INTFSYNCD_PID
|
||||||
|
kill -9 $NEIGHSYNCD_PID
|
||||||
|
service rsyslog stop
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
trap clean_up SIGTERM SIGKILL
|
||||||
|
|
||||||
. /host/machine.conf
|
. /host/machine.conf
|
||||||
|
|
||||||
MAC_ADDRESS=`ip link show eth0 | grep ether | awk '{print $2}'`
|
MAC_ADDRESS=`ip link show eth0 | grep ether | awk '{print $2}'`
|
||||||
@ -17,9 +28,15 @@ fi
|
|||||||
|
|
||||||
service rsyslog start
|
service rsyslog start
|
||||||
orchagent $ORCHAGENT_ARGS &
|
orchagent $ORCHAGENT_ARGS &
|
||||||
|
ORCHAGENT_PID=$!
|
||||||
sleep 5
|
sleep 5
|
||||||
portsyncd $PORTSYNCD_ARGS &
|
portsyncd $PORTSYNCD_ARGS &
|
||||||
|
PORTSYNCD_PID=$!
|
||||||
sleep 5
|
sleep 5
|
||||||
intfsyncd &
|
intfsyncd &
|
||||||
|
INTFSYNCD_PID=$!
|
||||||
sleep 5
|
sleep 5
|
||||||
neighsyncd &
|
neighsyncd &
|
||||||
|
NEIGHSYNCD_PID=$!
|
||||||
|
|
||||||
|
read
|
||||||
|
@ -9,11 +9,11 @@ COPY deps /root/deps
|
|||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
## Set the apt source, update package cache and install necessary packages
|
## Set the apt source, update package cache and install necessary packages
|
||||||
RUN echo "deb http://ftp.us.debian.org/debian/ jessie main contrib non-free" > /etc/apt/sources.list \
|
RUN sed --in-place 's/httpredir.debian.org/debian-archive.trafficmanager.net/' /etc/apt/sources.list \
|
||||||
&& apt-get update \
|
&& apt-get update \
|
||||||
&& apt-get upgrade -y \
|
&& apt-get upgrade -y \
|
||||||
&& apt-get dist-upgrade -y \
|
&& apt-get dist-upgrade -y \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y \
|
||||||
openssh-server \
|
openssh-server \
|
||||||
vim \
|
vim \
|
||||||
python \
|
python \
|
||||||
@ -47,14 +47,15 @@ RUN echo "deb http://ftp.us.debian.org/debian/ jessie main contrib non-free" > /
|
|||||||
&& tar xvfz 1.0.0.tar.gz \
|
&& tar xvfz 1.0.0.tar.gz \
|
||||||
&& cd nanomsg-1.0.0 \
|
&& cd nanomsg-1.0.0 \
|
||||||
&& mkdir -p build \
|
&& mkdir -p build \
|
||||||
&& cmake . \
|
&& cd build \
|
||||||
|
&& cmake .. \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& ldconfig \
|
&& ldconfig \
|
||||||
&& cd .. \
|
&& cd ../.. \
|
||||||
&& rm -fr nanomsg-1.0.0 \
|
&& rm -fr nanomsg-1.0.0 \
|
||||||
&& rm -f 1.0.0.tar.gz \
|
&& rm -f 1.0.0.tar.gz \
|
||||||
&& pip install cffi \
|
&& pip install cffi==1.7.0 \
|
||||||
&& pip install --upgrade cffi \
|
&& pip install --upgrade cffi==1.7.0 \
|
||||||
&& pip install nnpy \
|
&& pip install nnpy \
|
||||||
&& mkdir -p /opt \
|
&& mkdir -p /opt \
|
||||||
&& cd /opt \
|
&& cd /opt \
|
||||||
@ -69,7 +70,10 @@ RUN mkdir /var/run/sshd \
|
|||||||
&& mkdir /root/deps
|
&& mkdir /root/deps
|
||||||
|
|
||||||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
COPY sshd.conf /etc/supervisor/conf.d/sshd.conf
|
||||||
|
COPY ptf_nn_agent.conf /etc/supervisor/conf.d/ptf_nn_agent.conf
|
||||||
|
|
||||||
EXPOSE 22
|
EXPOSE 22
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/bin/supervisord"]
|
ENTRYPOINT while [ "x$( ifconfig eth3 | grep RUNNING )" = 'x' ] ; do sleep 1 ; done \
|
||||||
|
&& /usr/bin/supervisord
|
||||||
|
10
dockers/docker-ptf/ptf_nn_agent.conf
Normal file
10
dockers/docker-ptf/ptf_nn_agent.conf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[program:ptf_nn_agent]
|
||||||
|
command=/usr/bin/python /opt/ptf_nn_agent.py --device-socket 0@tcp://127.0.0.1:10900 -i 0-3@eth3
|
||||||
|
process_name=ptf_nn_agent
|
||||||
|
stdout_logfile=/tmp/ptf_nn_agent.out.log
|
||||||
|
stderr_logfile=/tmp/ptf_nn_agent.err.log
|
||||||
|
redirect_stderr=false
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
startsecs=1
|
||||||
|
numprocs=1
|
10
dockers/docker-ptf/sshd.conf
Normal file
10
dockers/docker-ptf/sshd.conf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[program:sshd]
|
||||||
|
command=/usr/sbin/sshd -D
|
||||||
|
process_name=sshd
|
||||||
|
stdout_logfile=/tmp/sshd.out.log
|
||||||
|
stderr_logfile=/tmp/sshd.err.log
|
||||||
|
redirect_stderr=false
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
startsecs=1
|
||||||
|
numprocs=1
|
@ -1,13 +1,2 @@
|
|||||||
[supervisord]
|
[supervisord]
|
||||||
nodaemon=true
|
nodaemon=true
|
||||||
|
|
||||||
[program:sshd]
|
|
||||||
command=/usr/sbin/sshd -D
|
|
||||||
process_name=sshd
|
|
||||||
stdout_logfile=/tmp/sshd.out.log
|
|
||||||
stderr_logfile=/tmp/sshd.err.log
|
|
||||||
redirect_stderr=false
|
|
||||||
autostart=true
|
|
||||||
autorestart=true
|
|
||||||
startsecs=1
|
|
||||||
numprocs=1
|
|
@ -19,7 +19,7 @@ RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return
|
|||||||
rm -rf /deps
|
rm -rf /deps
|
||||||
|
|
||||||
# install subagent
|
# install subagent
|
||||||
RUN apt-get -y install build-essential wget libssl-dev openssl && \
|
RUN apt-get -y install build-essential wget libssl-dev openssl supervisor && \
|
||||||
rm -rf /var/lib/apt/lists/* && \
|
rm -rf /var/lib/apt/lists/* && \
|
||||||
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz && \
|
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz && \
|
||||||
tar xvf Python-3.5.2.tgz && cd Python-3.5.2 && \
|
tar xvf Python-3.5.2.tgz && cd Python-3.5.2 && \
|
||||||
@ -36,27 +36,14 @@ RUN apt-get -y install build-essential wget libssl-dev openssl && \
|
|||||||
rm -rf /usr/lib/python3.5/idlelib && \
|
rm -rf /usr/lib/python3.5/idlelib && \
|
||||||
rm -rf /usr/lib/python3.5/email && \
|
rm -rf /usr/lib/python3.5/email && \
|
||||||
rm -rf /usr/lib/python3.5/test && \
|
rm -rf /usr/lib/python3.5/test && \
|
||||||
apt-get -y remove build-essential wget libssl-dev openssl && \
|
apt-get -y purge build-essential wget libssl-dev openssl && \
|
||||||
apt-get clean -y && apt-get autoclean -y && apt-get autoremove -y && \
|
apt-get clean -y && apt-get autoclean -y && apt-get autoremove -y && \
|
||||||
python3 -m acs_ax_impl install && \
|
|
||||||
find / | grep -E "__pycache__" | xargs rm -rf && \
|
find / | grep -E "__pycache__" | xargs rm -rf && \
|
||||||
rm -rf ~/.cache && \
|
rm -rf ~/.cache
|
||||||
systemctl enable acs-snmp-subagent.service
|
|
||||||
|
|
||||||
## There is a known bug: agetty processes at 100% cpu
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
## When:
|
|
||||||
## 1. running container in --privileged mode
|
|
||||||
## 2. container runs /sbin/init
|
|
||||||
## ref: https://github.com/docker/docker/issues/4040
|
|
||||||
## Temporary solution:
|
|
||||||
## Disable tty services permanently
|
|
||||||
RUN systemctl --no-pager list-unit-files --type=service | grep getty | awk '{print $1}' | xargs systemctl mask
|
|
||||||
## Note: getty@.service in last grep output will not mask below cases
|
|
||||||
RUN systemctl mask getty@tty1.service
|
|
||||||
|
|
||||||
## Although exposing ports is not need for host net mode, keep it for possible bridge mode
|
## Although exposing ports is not need for host net mode, keep it for possible bridge mode
|
||||||
EXPOSE 161/udp 162/udp
|
EXPOSE 161/udp 162/udp
|
||||||
|
|
||||||
## Specify init as CMD to enable systemd
|
ENTRYPOINT ["/usr/bin/supervisord"]
|
||||||
## Note: don't provide ENTRYPOINT at the same time
|
|
||||||
CMD ["/sbin/init"]
|
|
||||||
|
11
dockers/docker-snmp/supervisord.conf
Normal file
11
dockers/docker-snmp/supervisord.conf
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
|
||||||
|
[program:snmpd]
|
||||||
|
command=/usr/sbin/snmpd -f -LS4d -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf,ifTable,ifXTable -p /run/snmpd.pid
|
||||||
|
|
||||||
|
[program:acs-snmp-subagent]
|
||||||
|
command=/usr/bin/env python3 -m acs_ax_impl
|
||||||
|
|
||||||
|
[program:rsyslogd]
|
||||||
|
command=/usr/sbin/rsyslogd -n
|
@ -3,6 +3,8 @@ FROM docker-syncd-mlnx
|
|||||||
## Make apt-get non-interactive
|
## Make apt-get non-interactive
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
COPY deps /deps
|
||||||
|
|
||||||
## Pre-install the fundamental packages
|
## Pre-install the fundamental packages
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get -y install \
|
&& apt-get -y install \
|
||||||
@ -23,24 +25,24 @@ RUN apt-get update \
|
|||||||
&& ldconfig \
|
&& ldconfig \
|
||||||
&& cd .. \
|
&& cd .. \
|
||||||
&& rm -fr nanomsg-1.0.0 \
|
&& rm -fr nanomsg-1.0.0 \
|
||||||
|
&& rm -f 1.0.0.tar.gz \
|
||||||
&& pip install cffi \
|
&& pip install cffi \
|
||||||
&& pip install --upgrade cffi \
|
&& pip install --upgrade cffi \
|
||||||
&& pip install nnpy \
|
&& pip install nnpy \
|
||||||
&& mkdir -p /opt \
|
&& mkdir -p /opt \
|
||||||
&& cd /opt \
|
&& cd /opt \
|
||||||
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py
|
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \
|
||||||
|
&& dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } \
|
||||||
|
&& dpkg -r syncd \
|
||||||
|
&& dpkg_apt /deps/syncd_*.deb \
|
||||||
|
&& dpkg_apt /deps/libthrift-0.9.2_*.deb \
|
||||||
|
&& apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y \
|
||||||
|
&& rm -rf /deps
|
||||||
|
|
||||||
COPY deps /deps
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
COPY ptf_nn_agent.conf /etc/supervisor/conf.d/ptf_nn_agent.conf
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } \
|
|
||||||
&& dpkg -r syncd \
|
|
||||||
&& dpkg_apt /deps/syncd_*.deb \
|
|
||||||
&& dpkg_apt /deps/libthrift-0.9.2_*.deb
|
|
||||||
|
|
||||||
## Clean up
|
|
||||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
|
||||||
RUN rm -rf /deps
|
|
||||||
|
|
||||||
ENTRYPOINT service rsyslog start \
|
ENTRYPOINT service rsyslog start \
|
||||||
&& service syncd start \
|
&& service syncd start \
|
||||||
&& /bin/bash
|
&& while [ "x$( ifconfig Ethernet12 | grep RUNNING )" = 'x' ] ; do sleep 1 ; done \
|
||||||
|
&& /usr/bin/supervisord
|
||||||
|
10
dockers/docker-syncd-mlnx-rpc/ptf_nn_agent.conf
Normal file
10
dockers/docker-syncd-mlnx-rpc/ptf_nn_agent.conf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[program:ptf_nn_agent]
|
||||||
|
command=/usr/bin/python /opt/ptf_nn_agent.py --device-socket 1@tcp://0.0.0.0:10900 -i 1-3@Ethernet12
|
||||||
|
process_name=ptf_nn_agent
|
||||||
|
stdout_logfile=/tmp/ptf_nn_agent.out.log
|
||||||
|
stderr_logfile=/tmp/ptf_nn_agent.err.log
|
||||||
|
redirect_stderr=false
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
startsecs=1
|
||||||
|
numprocs=1
|
2
dockers/docker-syncd-mlnx-rpc/supervisord.conf
Normal file
2
dockers/docker-syncd-mlnx-rpc/supervisord.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
@ -24,10 +24,11 @@ RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return
|
|||||||
|
|
||||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/syncd_*.deb
|
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/syncd_*.deb
|
||||||
|
|
||||||
|
COPY ["start.sh", "/usr/bin/"]
|
||||||
|
|
||||||
## Clean up
|
## Clean up
|
||||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||||
RUN rm -rf /deps
|
RUN rm -rf /deps
|
||||||
|
|
||||||
ENTRYPOINT service rsyslog start \
|
ENTRYPOINT ["/bin/bash"]
|
||||||
&& service syncd start \
|
CMD ["/usr/bin/start.sh"]
|
||||||
&& /bin/bash
|
|
||||||
|
14
dockers/docker-syncd-mlnx/start.sh
Executable file
14
dockers/docker-syncd-mlnx/start.sh
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
function clean_up {
|
||||||
|
service syncd stop
|
||||||
|
service rsyslog stop
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
trap clean_up SIGTERM SIGKILL
|
||||||
|
|
||||||
|
service rsyslog start
|
||||||
|
service syncd start
|
||||||
|
|
||||||
|
read
|
48
dockers/docker-syncd-rpc/Dockerfile
Normal file
48
dockers/docker-syncd-rpc/Dockerfile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
FROM docker-syncd
|
||||||
|
|
||||||
|
## Make apt-get non-interactive
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
COPY deps /deps
|
||||||
|
|
||||||
|
## Pre-install the fundamental packages
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get -y install \
|
||||||
|
net-tools \
|
||||||
|
python-pip \
|
||||||
|
build-essential \
|
||||||
|
libssl-dev \
|
||||||
|
libffi-dev \
|
||||||
|
python-dev \
|
||||||
|
wget \
|
||||||
|
cmake \
|
||||||
|
&& wget https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz \
|
||||||
|
&& tar xvfz 1.0.0.tar.gz \
|
||||||
|
&& cd nanomsg-1.0.0 \
|
||||||
|
&& mkdir -p build \
|
||||||
|
&& cmake . \
|
||||||
|
&& make install \
|
||||||
|
&& ldconfig \
|
||||||
|
&& cd .. \
|
||||||
|
&& rm -fr nanomsg-1.0.0 \
|
||||||
|
&& rm -f 1.0.0.tar.gz \
|
||||||
|
&& pip install cffi \
|
||||||
|
&& pip install --upgrade cffi \
|
||||||
|
&& pip install nnpy \
|
||||||
|
&& mkdir -p /opt \
|
||||||
|
&& cd /opt \
|
||||||
|
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \
|
||||||
|
&& dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } \
|
||||||
|
&& dpkg -r syncd \
|
||||||
|
&& dpkg_apt /deps/syncd_*.deb \
|
||||||
|
&& dpkg_apt /deps/libthrift-0.9.2_*.deb \
|
||||||
|
&& apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y \
|
||||||
|
&& rm -rf /deps
|
||||||
|
|
||||||
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
COPY ptf_nn_agent.conf /etc/supervisor/conf.d/ptf_nn_agent.conf
|
||||||
|
|
||||||
|
ENTRYPOINT service rsyslog start \
|
||||||
|
&& service syncd start \
|
||||||
|
&& while [ "x$( ifconfig Ethernet12 | grep RUNNING )" = 'x' ] ; do sleep 1 ; done \
|
||||||
|
&& /usr/bin/supervisord
|
10
dockers/docker-syncd-rpc/ptf_nn_agent.conf
Normal file
10
dockers/docker-syncd-rpc/ptf_nn_agent.conf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[program:ptf_nn_agent]
|
||||||
|
command=/usr/bin/python /opt/ptf_nn_agent.py --device-socket 1@tcp://0.0.0.0:10900 -i 1-3@Ethernet12
|
||||||
|
process_name=ptf_nn_agent
|
||||||
|
stdout_logfile=/tmp/ptf_nn_agent.out.log
|
||||||
|
stderr_logfile=/tmp/ptf_nn_agent.err.log
|
||||||
|
redirect_stderr=false
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
startsecs=1
|
||||||
|
numprocs=1
|
2
dockers/docker-syncd-rpc/supervisord.conf
Normal file
2
dockers/docker-syncd-rpc/supervisord.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
@ -21,5 +21,5 @@ COPY ["deps/dsserve", "deps/bcmcmd", "start.sh", "/usr/bin/"]
|
|||||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||||
RUN rm -rf /deps
|
RUN rm -rf /deps
|
||||||
|
|
||||||
ENTRYPOINT /usr/bin/start.sh \
|
ENTRYPOINT ["/bin/bash"]
|
||||||
&& /bin/bash
|
CMD ["/usr/bin/start.sh"]
|
||||||
|
@ -1,4 +1,14 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
function clean_up {
|
||||||
|
service syncd stop
|
||||||
|
service rsyslog stop
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
trap clean_up SIGTERM SIGKILL
|
||||||
|
|
||||||
service rsyslog start
|
service rsyslog start
|
||||||
service syncd start
|
service syncd start
|
||||||
|
|
||||||
|
read
|
||||||
|
@ -51,15 +51,7 @@ CONSOLE_SPEED=9600
|
|||||||
|
|
||||||
# Get platform specific linux kernel command line arguments
|
# Get platform specific linux kernel command line arguments
|
||||||
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX=""
|
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX=""
|
||||||
# platform specific configurations
|
source platforms/$onie_platform
|
||||||
if [ "$onie_platform" == "x86_64-dell_s6000_s1220-r0" ]; then
|
|
||||||
`pwd`/dell-s6000-replace-reboot.sh
|
|
||||||
elif [ "$onie_platform" == "x86_64-mlnx_x86-r5.0.1400" ]; then
|
|
||||||
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="acpi_enforce_resources=lax acpi=noirq"
|
|
||||||
elif [ "$onie_platform" == "x86_64-dell_s6100_c2538-r0" ]; then
|
|
||||||
CONSOLE_PORT=0x2f8
|
|
||||||
CONSOLE_DEV=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install demo on same block device as ONIE
|
# Install demo on same block device as ONIE
|
||||||
onie_dev=$(blkid | grep ONIE-BOOT | head -n 1 | awk '{print $1}' | sed -e 's/:.*$//')
|
onie_dev=$(blkid | grep ONIE-BOOT | head -n 1 | awk '{print $1}' | sed -e 's/:.*$//')
|
||||||
@ -362,7 +354,7 @@ demo_install_uefi_grub()
|
|||||||
grub_install_log=$(mktemp)
|
grub_install_log=$(mktemp)
|
||||||
grub-install \
|
grub-install \
|
||||||
--no-nvram \
|
--no-nvram \
|
||||||
--bootloader-id="$onie_initrd_tmp/$demo_volume_label" \
|
--bootloader-id="$demo_volume_label" \
|
||||||
--efi-directory="/boot/efi" \
|
--efi-directory="/boot/efi" \
|
||||||
--boot-directory="$demo_mnt" \
|
--boot-directory="$demo_mnt" \
|
||||||
--recheck \
|
--recheck \
|
||||||
|
2
installer/x86_64/platforms/x86_64-dell_s6000_s1220-r0
Normal file
2
installer/x86_64/platforms/x86_64-dell_s6000_s1220-r0
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="processor.max_cstate=1 intel_idle.max_cstate=0"
|
||||||
|
./dell-s6000-replace-reboot.sh
|
2
installer/x86_64/platforms/x86_64-dell_s6100_c2538-r0
Normal file
2
installer/x86_64/platforms/x86_64-dell_s6100_c2538-r0
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
CONSOLE_PORT=0x2f8
|
||||||
|
CONSOLE_DEV=1
|
1
installer/x86_64/platforms/x86_64-mlnx_x86-r5.0.1400
Normal file
1
installer/x86_64/platforms/x86_64-mlnx_x86-r5.0.1400
Normal file
@ -0,0 +1 @@
|
|||||||
|
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="acpi_enforce_resources=lax acpi=noirq"
|
@ -76,7 +76,7 @@ tmp_dir=$(mktemp --directory)
|
|||||||
tmp_installdir="$tmp_dir/installer"
|
tmp_installdir="$tmp_dir/installer"
|
||||||
mkdir $tmp_installdir || clean_up 1
|
mkdir $tmp_installdir || clean_up 1
|
||||||
|
|
||||||
cp $installer_dir/$arch/* $tmp_installdir || clean_up 1
|
cp -r $installer_dir/$arch/* $tmp_installdir || clean_up 1
|
||||||
cp onie-image.conf $tmp_installdir
|
cp onie-image.conf $tmp_installdir
|
||||||
|
|
||||||
# Escape special chars in the user provide kernel cmdline string for use in
|
# Escape special chars in the user provide kernel cmdline string for use in
|
||||||
|
Loading…
Reference in New Issue
Block a user