Browse code

Add example systemd units for running as container

Scott Dodson authored on 2015/11/04 23:47:47
Showing 6 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1 @@
0
+Example systemd units for running openshift in a container
0 1
new file mode 100644
... ...
@@ -0,0 +1,14 @@
0
+[Unit]
1
+After=docker.service
2
+Requires=docker.service
3
+Before=origin-master.service
4
+
5
+[Service]
6
+EnvironmentFile=/etc/sysconfig/origin-node
7
+ExecStartPre=-/usr/bin/docker rm -f openvswitch
8
+ExecStart=/usr/bin/docker run --name openvswitch --rm --privileged --net=host --pid=host -v /lib/modules:/lib/modules -v /run:/run -v /sys:/sys:ro -v /etc/origin/openvswitch:/etc/openvswitch:Z openshift/openvswitch
9
+ExecStop=/usr/bin/docker stop openvswitch
10
+Restart=always
11
+
12
+[Install]
13
+WantedBy=multi-user.target
0 14
new file mode 100644
... ...
@@ -0,0 +1,15 @@
0
+[Unit]
1
+After=docker.service
2
+Requires=docker.service
3
+
4
+
5
+[Service]
6
+EnvironmentFile=-/etc/sysconfig/origin-master
7
+ExecStartPre=-/usr/bin/docker rm -f origin-master
8
+ExecStart=/usr/bin/docker run --rm --privileged --net=host --name origin-master -v /var/lib/origin:/var/lib/origin:Z -v /var/run/docker.sock:/var/run/docker.sock -v /etc/origin:/etc/origin --entrypoint /usr/bin/openshift openshift/origin start master --config=${CONFIG_FILE} ${OPTIONS}
9
+ExecStartPost=/usr/bin/sleep 10
10
+ExecStop=/usr/bin/docker stop origin-master
11
+Restart=always
12
+
13
+[Install]
14
+WantedBy=multi-user.target
0 15
new file mode 100644
... ...
@@ -0,0 +1,17 @@
0
+[Unit]
1
+After=docker.service
2
+Requires=docker.service
3
+Wants=openvswitch.service
4
+After=origin-master.service
5
+
6
+[Service]
7
+EnvironmentFile=/etc/sysconfig/origin-node
8
+ExecStartPre=-/usr/bin/docker rm -f origin-node
9
+ExecStart=/usr/bin/docker run --name origin-node --rm --privileged --net=host --pid=host -v /:/rootfs:ro -e CONFIG_FILE=${CONFIG_FILE} -e OPTIONS=${OPTIONS} -e HOST=/rootfs -v /etc/systemd/system:/host-etc/systemd/system -e HOST_ETC=/host-etc -v /etc/localtime:/etc/localtime:ro -v /etc/machine-id:/etc/machine-id:ro -v /lib/modules:/lib/modules -v /run:/run -v /sys:/sys:ro -v /usr/bin/docker:/usr/bin/docker:ro -v /var/lib/docker:/var/lib/docker -v /etc/origin/node:/etc/origin/node:z -v /etc/origin/openvswitch:/etc/openvswitch:Z -v /etc/origin/sdn:/etc/openshift-sdn:Z -v /var/lib/origin:/var/lib/origin:Z openshift/node
10
+ExecStartPost=/usr/bin/sleep 10
11
+ExecStop=/usr/bin/docker stop origin-node
12
+Restart=always
13
+TimeoutStartSec=5m
14
+
15
+[Install]
16
+WantedBy=multi-user.target
... ...
@@ -2,7 +2,7 @@
2 2
 # This is an OpenShift Origin node image with integrated OpenvSwitch SDN
3 3
 # If you do not require OVS SDN you should just use the origin image
4 4
 #
5
-# The standard name for this image is openshift/origin-node
5
+# The standard name for this image is openshift/node
6 6
 #
7 7
 
8 8
 FROM openshift/origin
... ...
@@ -2,6 +2,9 @@
2 2
 
3 3
 set -eu
4 4
 
5
+conf=${CONFIG_FILE:-/etc/origin/node/node-config.yaml}
6
+opts=${OPTIONS:---loglevel=2}
7
+
5 8
 function quit {
6 9
     pkill openshift
7 10
     exit 0
... ...
@@ -14,6 +17,6 @@ if [ ! -f ${HOST_ETC}/systemd/system/docker.service.d/docker-sdn-ovs.conf ]; the
14 14
     cp /usr/lib/systemd/system/docker.service.d/docker-sdn-ovs.conf ${HOST_ETC}/systemd/system/docker.service.d
15 15
 fi
16 16
 
17
-/usr/bin/openshift start node --config=${CONFIG_FILE} ${OPTIONS}
17
+/usr/bin/openshift start node "--config=${conf}" "${opts}"
18 18
 
19 19
 while true; do sleep 5; done