@@ -12,6 +12,99 @@ hosts:
12
12
role : corerouter
13
13
model : " x86-64"
14
14
openwrt_version : snapshot
15
+ imagebuilder_config :
16
+ CONFIG_TARGET_ROOTFS_PARTSIZE : 256
17
+ # host__disabled_services__to_merge:
18
+ # - bgpdisco
19
+ host__packages__to_merge :
20
+ - podman conmon crun catatonit netavark external-protocol
21
+ host__rclocal__to_merge :
22
+ - " sed -i 's|#firewall_driver|firewall_driver|g' /etc/containers/containers.conf"
23
+ # - "mount /dev/nvme0n1p1 /mnt/data"
24
+ host__files__to_merge :
25
+ # podman run -it --net bridge:ip6=2001:bf7:750:5503::2,ip=10.31.174.146 --dns 10.31.174.145 --no-hosts docker.io/library/alpine:edge
26
+ - path : /etc/init.d/hway-buildbot1
27
+ mode : 0755
28
+ content : |
29
+ #!/bin/sh /etc/rc.common
30
+ USE_PROCD=1
31
+ START=99
32
+ STOP=1
33
+ password="trustno1"
34
+ name="hway-buildbot1"
35
+ ip6="2001:bf7:750:5503::2"
36
+ ip4="10.31.174.146"
37
+ dns="10.31.174.145"
38
+ start_service() {
39
+ podman build -t buildworker /usr/share/buildworker
40
+ procd_open_instance
41
+ procd_set_param command /usr/bin/podman run -it --net bridge:ip6=$ip6,ip=$ip4 --dns $dns --no-hosts --name $name buildworker
42
+ procd_set_param respawn 60 10 0 # respawn indefinitely, wait 10s before retry
43
+ procd_set_param env \
44
+ BUILDWORKER_NAME=$name \
45
+ BUILDWORKER_PASSWORD=$password \
46
+ BUILDWORKER_MASTER=buildbot.berlin.freifunk.net \
47
+ BUILDWORKER_ADMIN=pktpls@systemli.org \
48
+ BUILDWORKER_DESCRIPTION=Container testing
49
+ procd_close_instance
50
+ }
51
+ - path : /usr/share/buildworker/Dockerfile
52
+ mode : 0644
53
+ content : |
54
+ FROM docker.io/library/debian:11
55
+ MAINTAINER pktpls@systemli.org
56
+ ARG DEBIAN_FRONTEND=noninteractive
57
+ ARG BUILDBOT_VERSION=2.10.1
58
+ USER root
59
+ RUN apt-get update && apt-get install -y build-essential ccache curl file gawk g++-multilib gcc-multilib genisoimage git-core gosu libdw-dev libelf-dev libncurses5-dev locales pv pwgen python3 python3-venv python3-pip python3-pyelftools python3-cryptography qemu-utils rsync signify-openbsd subversion swig unzip wget zstd && apt-get clean && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
60
+ RUN python3 -m venv /opt/venv
61
+ ENV PATH="/opt/venv/bin:$PATH"
62
+ RUN pip3 install -U pip
63
+ RUN pip3 install "buildbot-worker==$BUILDBOT_VERSION" pyelftools pyOpenSSL service_identity
64
+ ENV LANG=en_US.utf8
65
+ COPY entry.sh /entry.sh
66
+ COPY start.sh /start.sh
67
+ RUN groupadd buildbot && useradd --create-home --home-dir /builder --comment "Freifunk Berlin buildbot" --gid buildbot --shell /bin/bash buildbot && chown buildbot:buildbot /builder && chmod 0755 /entry.sh /start.sh
68
+ VOLUME [ "/builder" ]
69
+ ENTRYPOINT [ "/entry.sh" ]
70
+ CMD [ "/start.sh" ]
71
+ - path : /usr/share/buildworker/entry.sh
72
+ mode : 0755
73
+ content : |
74
+ #!/usr/bin/env bash
75
+ chown buildbot:buildbot /builder
76
+ /usr/sbin/gosu buildbot "$@"
77
+ - path : /usr/share/buildworker/start.sh
78
+ mode : 0755
79
+ content : |
80
+ #!/usr/bin/env bash
81
+ cleanup_buildworker_env_variables() {
82
+ for var in "${!BUILDWORKER_@}"; do
83
+ unset "$var"
84
+ done
85
+ }
86
+ [ -n "$BUILDWORKER_NAME" ] || {
87
+ echo "Please supply a name via --env BUILDWORKER_NAME=XXX" >&2
88
+ exit 1
89
+ }
90
+ [ -n "$BUILDWORKER_PASSWORD" ] || {
91
+ echo "Please supply a password via --env BUILDWORKER_PASSWORD=XXX" >&2
92
+ exit 2
93
+ }
94
+ rm -f /builder/buildbot.tac
95
+ /opt/venv/bin/buildbot-worker create-worker \
96
+ --force \
97
+ --umask="0o22" \
98
+ ${BUILDWORKER_TLS:+--connection-string="SSL:$BUILDWORKER_MASTER"} \
99
+ /builder \
100
+ "$BUILDWORKER_MASTER" \
101
+ "$BUILDWORKER_NAME" \
102
+ "$BUILDWORKER_PASSWORD"
103
+ echo "$BUILDWORKER_ADMIN" > /builder/info/admin
104
+ echo "$BUILDWORKER_DESCRIPTION" > /builder/info/host
105
+ cleanup_buildworker_env_variables
106
+ rm -f /builder/twistd.pid
107
+ exec /opt/venv/bin/buildbot-worker start --nodaemon /builder
15
108
16
109
# Custom APK feed: snapshot
17
110
# feed: "file:///home/user/w/ff/falter-packages/out/main/x86_64/falter/packages.adb"
@@ -27,7 +120,7 @@ location__packages__to_merge:
27
120
# 10.31.174.128/26 - pktpls+bbb@systemli.org
28
121
# - 10.31.174.128/29 - mgmt
29
122
# - 10.31.174.136/29 - mesh
30
- # - 10.31.174.144/28 - prdhcp
123
+ # - 10.31.174.144/28 - podman
31
124
# - 10.31.174.160/27 - dhcp
32
125
ipv6_prefix : 2001:bf7:750:5500::/56
33
126
@@ -58,10 +151,17 @@ networks:
58
151
assignments :
59
152
pktpls-core : 1
60
153
154
+ - role : podman
155
+ ifname : podman0
156
+ prefix : 10.31.174.144/28
157
+ ipv6_subprefix : 3
158
+ assignments :
159
+ pktpls-buildbot1 : 2
160
+
161
+ # DHCP is available on both eth0.50 and eth1 in the MV
61
162
# - vid: 50
62
163
# role: uplink
63
164
# untagged: false
64
-
65
165
- vid : 50
66
166
ifname : eth1
67
167
role : uplink
0 commit comments