commit: 45fe4420dd0bc2057e50ff2382c070c214cfd68a
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 13 19:41:44 2022 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Jul 13 19:41:44 2022 +0000
URL:
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=45fe4420
Add support log docker worker
Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org>
buildbot_gentoo_ci/config/builders.py | 19 ++++----
buildbot_gentoo_ci/config/workers.py | 89 +++++++++++++++--------------------
master.cfg | 1 +
3 files changed, 48 insertions(+), 61 deletions(-)
diff --git a/buildbot_gentoo_ci/config/builders.py
b/buildbot_gentoo_ci/config/builders.py
index 6f3d606..e168cf5 100644
--- a/buildbot_gentoo_ci/config/builders.py
+++ b/buildbot_gentoo_ci/config/builders.py
@@ -23,12 +23,9 @@ def CanWorkerBuildProject(builder, wfb, request):
def gentoo_builders(worker_data):
b = []
g_ci_w = gentoo_ci_workers(worker_data)
- LocalWorkers = g_ci_w.getLocalWorkersUuid()
- BuildWorkers = g_ci_w.getBuildWorkersUuid()
- NodeWorkers = g_ci_w.getNodeWorkersUuid()
b.append(util.BuilderConfig(
name='update_db_check',
- workername=LocalWorkers[0],
+ workername=g_ci_w.getWorkersUuid('local')[0],
workerbuilddir='builds',
collapseRequests=False,
factory=buildfactorys.update_db_check()
@@ -36,7 +33,7 @@ def gentoo_builders(worker_data):
)
b.append(util.BuilderConfig(
name='update_repo_check',
- workername=LocalWorkers[1],
+ workername=g_ci_w.getWorkersUuid('local')[1],
workerbuilddir='builds',
collapseRequests=True,
factory=buildfactorys.update_repo_check()
@@ -48,7 +45,7 @@ def gentoo_builders(worker_data):
# first LocalWorker need to be done before we can use mulitplay workers
(git pull)
b.append(util.BuilderConfig(
name='update_cpv_data',
- workernames=LocalWorkers,
+ workernames=g_ci_w.getWorkersUuid('local'),
workerbuilddir='builds',
collapseRequests=False,
factory=buildfactorys.update_db_cp()
@@ -57,7 +54,7 @@ def gentoo_builders(worker_data):
# Use multiplay workers
b.append(util.BuilderConfig(
name='update_v_data',
- workernames=LocalWorkers,
+ workernames=g_ci_w.getWorkersUuid('local'),
workerbuilddir='builds',
collapseRequests=False,
factory=buildfactorys.update_db_v()
@@ -66,7 +63,7 @@ def gentoo_builders(worker_data):
# Use multiplay workers
b.append(util.BuilderConfig(
name='build_request_data',
- workernames=LocalWorkers,
+ workernames=g_ci_w.getWorkersUuid('local'),
collapseRequests=False,
factory=buildfactorys.build_request_check()
)
@@ -74,7 +71,7 @@ def gentoo_builders(worker_data):
# Use multiplay workers
b.append(util.BuilderConfig(
name='run_build_request',
- workernames=BuildWorkers,
+ workernames=g_ci_w.getWorkersUuid('docker'),
canStartBuild=CanWorkerBuildProject,
collapseRequests=False,
factory=buildfactorys.run_build_request()
@@ -83,7 +80,7 @@ def gentoo_builders(worker_data):
# Use multiplay workers
b.append(util.BuilderConfig(
name='parse_build_log',
- workernames=LocalWorkers,
+ workernames=g_ci_w.getWorkersUuid('log'),
collapseRequests=False,
factory=buildfactorys.parse_build_log()
)
@@ -91,7 +88,7 @@ def gentoo_builders(worker_data):
# For node workers
b.append(util.BuilderConfig(
name='run_build_stage4_request',
- workernames=NodeWorkers,
+ workernames=g_ci_w.getWorkersUuid('node'),
#FIXME: support more the one node
#canStartBuild=CanWorkerBuildProject,
collapseRequests=False,
diff --git a/buildbot_gentoo_ci/config/workers.py
b/buildbot_gentoo_ci/config/workers.py
index d4c20f7..42c6631 100644
--- a/buildbot_gentoo_ci/config/workers.py
+++ b/buildbot_gentoo_ci/config/workers.py
@@ -7,50 +7,30 @@ class gentoo_ci_workers():
def __init__(self, worker_data, **kwargs):
self.worker_data = worker_data
- def getLocalWorkersUuid(self):
- local_worker = []
+ def getWorkersUuid(self, worker_type):
+ worker_list = []
for worker in self.worker_data:
- if worker['type'] == 'local' and worker['enable'] is True:
- local_worker.append(worker['uuid'])
- print(local_worker)
- return local_worker
+ if worker['type'] == worker_type and worker['enable'] is True:
+ worker_list.append(worker['uuid'])
+ print(worker_list)
+ return worker_list
- def getBuildWorkersUuid(self):
- build_worker = []
+ def getWorkersAllData(self, worker_type):
+ worker_list = []
for worker in self.worker_data:
- if (worker['type'] != 'local' and worker['type'] != 'node') and
worker['enable'] is True:
- build_worker.append(worker['uuid'])
- print(build_worker)
- return build_worker
-
- def getBuildWorkersAllData(self):
- build_worker = []
- for worker in self.worker_data:
- if (worker['type'] != 'local' and worker['type'] != 'node') and
worker['enable'] is True:
- build_worker.append(worker)
- print(build_worker)
- return build_worker
-
- def getNodeWorkersUuid(self):
- node_worker = []
- for worker in self.worker_data:
- if worker['type'] == 'node' and worker['enable'] is True:
- node_worker.append(worker['uuid'])
- print(node_worker)
- return node_worker
-
- def getNodedWorkersAllData(self):
- node_worker = []
- for worker in self.worker_data:
- if worker['type'] == 'node' and worker['enable'] is True:
- node_worker.append(worker)
- print(node_worker)
- return node_worker
+ if worker['type'] == worker_type and worker['enable'] is True:
+ worker_list.append(worker)
+ print(worker_list)
+ return worker_list
@util.renderer
-def docker_images(props):
+def build_docker_images(props):
return 'bb-worker-' + props.getProperty('project_uuid') + ':latest'
[email protected]
+def log_docker_images(props):
+ return 'bb-worker-log' + ':latest'
+
@util.renderer
def docker_volumes(props):
volumes_list = []
@@ -66,9 +46,12 @@ def docker_volumes(props):
def gentoo_workers(worker_data):
w = []
g_ci_w = gentoo_ci_workers(worker_data)
- LocalWorkers = g_ci_w.getLocalWorkersUuid()
- BuildWorkers = g_ci_w.getBuildWorkersAllData()
- NodeWorkers = g_ci_w.getNodedWorkersAllData()
+
+ for local_worker in g_ci_w.getWorkersUuid('local'):
+ w.append(worker.LocalWorker(local_worker))
+ for node_worker in g_ci_w.getWorkersAllData('node'):
+ w.append(worker.Worker(node_worker['uuid'], node_worker['password']))
+ # docker workers
docker_hostconfig = {}
# For use of sandbox stuff
# FEATURES="ipc-sandbox network-sandbox pid-sandbox"
@@ -76,24 +59,30 @@ def gentoo_workers(worker_data):
# libseccomp overhead
# https://github.com/seccomp/libseccomp/issues/153
docker_hostconfig['security_opt'] = ['seccomp=unconfined']
- for local_worker in LocalWorkers:
- w.append(worker.LocalWorker(local_worker))
- for build_worker in BuildWorkers:
- if build_worker['type'] == 'default':
- w.append(worker.Worker(build_worker['uuid'],
build_worker['password']))
+ for build_worker in g_ci_w.getWorkersAllData('docker'):
#FIXME: set settings in master.cfg
if build_worker['type'] == 'docker':
w.append(worker.DockerLatentWorker(build_worker['uuid'],
build_worker['password'],
- docker_host='tcp://192.168.1.3:2375',
- image=docker_images,
+ docker_host='tcp://192.168.1.12:2375',
+ image=build_docker_images,
volumes=docker_volumes,
hostconfig=docker_hostconfig,
followStartupLogs=True,
masterFQDN='192.168.1.5',
build_wait_timeout=3600
))
- for node_worker in NodeWorkers:
- if node_worker['type'] == 'node':
- w.append(worker.Worker(node_worker['uuid'],
node_worker['password']))
+ for log_worker in g_ci_w.getWorkersAllData('log'):
+ #FIXME: set settings in master.cfg
+ if log_worker['type'] == 'log':
+ w.append(worker.DockerLatentWorker(log_worker['uuid'],
+ log_worker['password'],
+ docker_host='tcp://192.168.1.12:2375',
+ image=log_docker_images,
+ #volumes=docker_volumes,
+ hostconfig=docker_hostconfig,
+ followStartupLogs=True,
+ masterFQDN='192.168.1.5',
+ build_wait_timeout=3600
+ ))
return w
diff --git a/master.cfg b/master.cfg
index f61fdc4..7d5af61 100644
--- a/master.cfg
+++ b/master.cfg
@@ -12,6 +12,7 @@ worker_data = [
{'uuid' : 'updatedb_2', 'password' : '', 'type' : 'local', 'enable' :
True, },
{'uuid' : 'updatedb_3', 'password' : '', 'type' : 'local', 'enable' :
True, },
{'uuid' : 'updatedb_4', 'password' : '', 'type' : 'local', 'enable' :
True, },
+ {'uuid' : 'c89c2c1a-46e0-4ded-81dd-c51afeb7fcfa', 'password' : 'test',
'type' : 'log', 'enable' : True, },
{'uuid' : 'a89c2c1a-46e0-4ded-81dd-c51afeb7fcfa', 'password' : 'test',
'type' : 'docker', 'enable' : True, },
{'uuid' : 'a89c2c1a-46e0-4ded-81dd-c51afeb7fcfb', 'password' : 'test',
'type' : 'docker', 'enable' : True, },
{'uuid' : 'a89c2c1a-46e0-4ded-81dd-c51afeb7fcfd', 'password' : 'test',
'type' : 'docker', 'enable' : True, },