File tree 8 files changed +82
-6
lines changed
dockers/docker-sonic-restapi
8 files changed +82
-6
lines changed Original file line number Diff line number Diff line change @@ -20,6 +20,9 @@ RUN apt-get update
20
20
## Clean up
21
21
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
22
22
23
+ COPY ["start.sh", "restapi.sh", "/usr/bin/"]
23
24
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
25
+ COPY ["files/supervisor-proc-exit-listener", "/usr/bin"]
26
+ COPY ["critical_processes", "/etc/supervisor"]
24
27
25
28
ENTRYPOINT ["/usr/bin/supervisord"]
Original file line number Diff line number Diff line change
1
+ ###############################################################################
2
+ ## Monit configuration for restapi container
3
+ ## process list:
4
+ ## restapi
5
+ ###############################################################################
6
+ check process restapi matching "/usr/sbin/go-server-server"
7
+ if does not exist for 5 times within 5 cycles then alert
Original file line number Diff line number Diff line change
1
+ restapi
Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+
3
+ RESTAPI_ARGS=" "
4
+ while true
5
+ do
6
+ client_auth=` sonic-cfggen -d -v " RESTAPI['config']['client_auth']" `
7
+ if [[ $client_auth == ' true' ]]; then
8
+ certs=` sonic-cfggen -d -v " RESTAPI['certs']" `
9
+ allow_insecure=` sonic-cfggen -d -v " RESTAPI['config']['allow_insecure']" `
10
+ if [[ $allow_insecure == ' true' ]]; then
11
+ RESTAPI_ARGS=" -enablehttp=true"
12
+ else
13
+ RESTAPI_ARGS=" -enablehttp=false"
14
+ fi
15
+ if [[ -n " $certs " ]]; then
16
+ SERVER_CRT=` sonic-cfggen -d -v " RESTAPI['certs']['server_crt']" `
17
+ SERVER_KEY=` sonic-cfggen -d -v " RESTAPI['certs']['server_key']" `
18
+ CLIENT_CA_CRT=` sonic-cfggen -d -v " RESTAPI['certs']['client_ca_crt']" `
19
+ CLIENT_CRT_CNAME=` sonic-cfggen -d -v " RESTAPI['certs']['client_crt_cname']" `
20
+ if [[ -f $SERVER_CRT && -f $SERVER_KEY && -f $CLIENT_CA_CRT ]]; then
21
+ RESTAPI_ARGS+=" -enablehttps=true -servercert=$SERVER_CRT -serverkey=$SERVER_KEY -clientcert=$CLIENT_CA_CRT -clientcertcommonname=$CLIENT_CRT_CNAME "
22
+ break
23
+ fi
24
+ fi
25
+ fi
26
+ logger " Waiting for certificates..."
27
+ sleep 60
28
+ done
29
+
30
+ LOG_LEVEL=` sonic-cfggen -d -v " RESTAPI['config']['log_level']" `
31
+ if [ ! -z $LOG_LEVEL ]; then
32
+ RESTAPI_ARGS+=" -loglevel=$LOG_LEVEL "
33
+ else
34
+ RESTAPI_ARGS+=" -loglevel=trace"
35
+ fi
36
+
37
+ logger " RESTAPI_ARGS: $RESTAPI_ARGS "
38
+ exec /usr/sbin/go-server-server ${RESTAPI_ARGS}
Original file line number Diff line number Diff line change @@ -6,5 +6,4 @@ echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status
6
6
rm -f /var/run/rsyslogd.pid
7
7
8
8
supervisorctl start rsyslogd
9
-
10
9
supervisorctl start restapi
Original file line number Diff line number Diff line change @@ -3,10 +3,32 @@ logfile_maxbytes=1MB
3
3
logfile_backups=2
4
4
nodaemon=true
5
5
6
- [program:restapi]
7
- command=/usr/sbin/go-server-server -loglevel trace
6
+ [eventlistener:supervisor-proc-exit-listener]
7
+ command=/usr/bin/supervisor-proc-exit-listener --container-name restapi
8
+ events=PROCESS_STATE_EXITED
9
+ autostart=true
10
+ autorestart=false
11
+
12
+ [program:start.sh]
13
+ command=/usr/bin/start.sh
8
14
priority=1
9
15
autostart=true
10
16
autorestart=false
11
- stdout_logfile=/tmp/rest-api.out.log
12
- stderr_logfile=/tmp/rest-api.err.log
17
+ stdout_logfile=syslog
18
+ stderr_logfile=syslog
19
+
20
+ [program:restapi]
21
+ command=/usr/bin/restapi.sh
22
+ priority=1
23
+ autostart=false
24
+ autorestart=true
25
+ stdout_logfile=syslog
26
+ stderr_logfile=syslog
27
+
28
+ [program:rsyslogd]
29
+ command=/usr/sbin/rsyslogd -n
30
+ priority=2
31
+ autostart=false
32
+ autorestart=true
33
+ stdout_logfile=syslog
34
+ stderr_logfile=syslog
Original file line number Diff line number Diff line change 18
18
19
19
$(DOCKER_RESTAPI)_CONTAINER_NAME = restapi
20
20
$(DOCKER_RESTAPI)_RUN_OPT += --cap-add NET_ADMIN --privileged -t
21
+ $(DOCKER_RESTAPI)_RUN_OPT += --network="host"
21
22
$(DOCKER_RESTAPI)_RUN_OPT += -v /var/run/redis/redis.sock:/var/run/redis/redis.sock
23
+ $(DOCKER_RESTAPI)_RUN_OPT += -v /etc/sonic/certificates:/etc/sonic/certificates:ro
24
+ $(DOCKER_RESTAPI)_RUN_OPT += -p=8081:8081/tcp
22
25
$(DOCKER_RESTAPI)_RUN_OPT += -p=8090:8090/tcp
26
+
27
+ $(DOCKER_RESTAPI)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT )
28
+ $(DOCKER_RESTAPI)_BASE_IMAGE_FILES += monit_restapi:/etc/monit/conf.d
You can’t perform that action at this time.
0 commit comments