Skip to content

Commit 84912ca

Browse files
MDBF-1163 - Replace minio with Garage
Concurrent S3 tests can operate within a single bucket given that MDEV-38754 is accepted and merged up to main, thus, no need for create/delete bucket tasks, nor using master's `mc` client.
1 parent c788c48 commit 84912ca

11 files changed

Lines changed: 15 additions & 359 deletions

File tree

common_factories.py

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -475,24 +475,12 @@ def addGaleraTests(factory, mtrDbPool):
475475

476476
def addS3Tests(factory, mtrDbPool):
477477
runS3 = lambda props: hasS3(props) and props.hasProperty("compile_step_completed")
478-
factory.addStep(
479-
steps.MasterShellCommand(
480-
name="Create minio S3 bucket",
481-
alwaysRun=True,
482-
command=[
483-
"mc",
484-
"mb",
485-
util.Interpolate("minio/%(prop:buildername)s-%(prop:buildnumber)s"),
486-
],
487-
doStepIf=runS3,
488-
)
489-
)
490478
factory.addStep(
491479
steps.MTR(
492-
name="S3 minio tests",
480+
name="MTR - S3",
493481
alwaysRun=True,
494-
description="testing S3 minio",
495-
descriptionDone="test s3 minio",
482+
description="testing S3",
483+
descriptionDone="test s3",
496484
logfiles={"mysqld*": "./buildbot/mysql_logs.html"},
497485
test_type="s3",
498486
command=[
@@ -512,34 +500,18 @@ def addS3Tests(factory, mtrDbPool):
512500
dbpool=mtrDbPool,
513501
autoCreateTables=True,
514502
env={
515-
"S3_HOST_NAME": "minio.mariadb.org",
503+
"S3_HOST_NAME": "s3bb.mariadb.org",
516504
"S3_PORT": "443",
517-
"S3_ACCESS_KEY": util.Interpolate("%(secret:minio_access_key)s"),
518-
"S3_SECRET_KEY": util.Interpolate("%(secret:minio_secret_key)s"),
519-
"S3_BUCKET": util.Interpolate(
520-
"%(prop:buildername)s-%(prop:buildnumber)s"
521-
),
505+
"S3_ACCESS_KEY": util.Interpolate("%(secret:s3_access_key)s"),
506+
"S3_SECRET_KEY": util.Interpolate("%(secret:s3_secret_key)s"),
507+
"S3_BUCKET": "mariadb-buildbot",
522508
"S3_USE_HTTP": "OFF",
523509
"S3_PROTOCOL_VERSION": "Path",
510+
"S3_REGION": "garage",
524511
},
525512
doStepIf=runS3,
526513
)
527514
)
528-
529-
factory.addStep(
530-
steps.MasterShellCommand(
531-
name="Delete minio S3 bucket",
532-
alwaysRun=True,
533-
command=[
534-
"mc",
535-
"rb",
536-
"--force",
537-
util.Interpolate("minio/%(prop:buildername)s-%(prop:buildnumber)s"),
538-
],
539-
doStepIf=runS3,
540-
)
541-
)
542-
543515
factory.addStep(
544516
steps.ShellCommand(
545517
name="move mariadb S3 log files",

configuration/builders/sequences/helpers.py

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,7 @@
55
from configuration.steps.base import StepOptions
66
from configuration.steps.commands.base import URL
77
from configuration.steps.commands.mtr import MTRReporter, MTRTest
8-
from configuration.steps.commands.util import (
9-
CreateS3Bucket,
10-
DeleteS3Bucket,
11-
SaveCompressedTar,
12-
)
8+
from configuration.steps.commands.util import SaveCompressedTar
139
from configuration.steps.generators.mtr.generator import MTRGenerator
1410
from configuration.steps.generators.mtr.options import (
1511
MTR,
@@ -224,12 +220,6 @@ def get_mtr_s3_steps(
224220
env_vars: list[tuple] = [],
225221
):
226222
steps = []
227-
steps.append(
228-
MasterShellStep(
229-
command=CreateS3Bucket(bucket=f"%(prop:buildername)s-%(prop:buildnumber)s")
230-
)
231-
)
232-
233223
steps.append(
234224
step_wrapping_fn(
235225
ShellStep(
@@ -254,13 +244,14 @@ def get_mtr_s3_steps(
254244
),
255245
),
256246
env_vars=[
257-
("S3_HOST_NAME", "minio.mariadb.org"),
247+
("S3_HOST_NAME", "s3bb.mariadb.org"),
258248
("S3_PORT", "443"),
259-
("S3_ACCESS_KEY", "%(secret:minio_access_key)s"),
260-
("S3_SECRET_KEY", "%(secret:minio_secret_key)s"),
261-
("S3_BUCKET", "%(prop:buildername)s-%(prop:buildnumber)s"),
249+
("S3_ACCESS_KEY", "%(secret:s3_access_key)s"),
250+
("S3_SECRET_KEY", "%(secret:s3_secret_key)s"),
251+
("S3_BUCKET", "mariadb-buildbot"),
262252
("S3_USE_HTTPS", "OFF"),
263253
("S3_PROTOCOL_VERSION", "Path"),
254+
("S3_REGION", "garage"),
264255
]
265256
+ env_vars,
266257
options=StepOptions(
@@ -269,12 +260,6 @@ def get_mtr_s3_steps(
269260
)
270261
)
271262
)
272-
steps.append(
273-
MasterShellStep(
274-
command=DeleteS3Bucket(bucket=f"%(prop:buildername)s-%(prop:buildnumber)s"),
275-
options=StepOptions(alwaysRun=True),
276-
),
277-
)
278263
return steps
279264

280265

configuration/steps/commands/util.py

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -4,50 +4,6 @@
44
from configuration.steps.commands.base import BashScriptCommand, Command
55

66

7-
class CreateS3Bucket(Command):
8-
"""
9-
A command to create an S3 bucket using MinIO client (mc).
10-
This command initializes a new S3 bucket in the MinIO server.
11-
Attributes:
12-
bucket (str): The name of the S3 bucket to create.
13-
workdir (PurePath): The working directory for the command.
14-
"""
15-
16-
def __init__(self, bucket: str, workdir: PurePath = PurePath(".")):
17-
name = "Create S3 bucket"
18-
self.bucket = bucket
19-
super().__init__(name=name, workdir=workdir)
20-
21-
def as_cmd_arg(self) -> list[str]:
22-
return [
23-
"bash",
24-
"-exc",
25-
util.Interpolate(f"mc mb minio/{self.bucket}"),
26-
]
27-
28-
29-
class DeleteS3Bucket(Command):
30-
"""
31-
A command to delete an S3 bucket using MinIO client (mc).
32-
This command removes an existing S3 bucket from the MinIO server.
33-
Attributes:
34-
bucket (str): The name of the S3 bucket to delete.
35-
workdir (PurePath): The working directory for the command.
36-
"""
37-
38-
def __init__(self, bucket: str, workdir: PurePath = PurePath(".")):
39-
name = "Delete S3 bucket"
40-
self.bucket = bucket
41-
super().__init__(name=name, workdir=workdir)
42-
43-
def as_cmd_arg(self) -> list[str]:
44-
return [
45-
"bash",
46-
"-exc",
47-
util.Interpolate(f"mc rb --force minio/{self.bucket}"),
48-
]
49-
50-
517
class SaveCompressedTar(Command):
528
"""
539
A command to create a compressed tar archive of the current working directory.

docker-compose/docker-compose.yaml

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ services:
111111
- MASTER_CREDENTIALS_DIR
112112
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
113113
- MASTER_PACKAGES_DIR
114-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
115114
- MQ_ROUTER_URL
116115
- PORT=9995
117116
- TITLE
@@ -148,7 +147,6 @@ services:
148147
- MASTER_CREDENTIALS_DIR
149148
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
150149
- MASTER_PACKAGES_DIR
151-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
152150
- MQ_ROUTER_URL
153151
- PORT=9996
154152
- TITLE
@@ -184,7 +182,6 @@ services:
184182
- MASTER_CREDENTIALS_DIR
185183
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
186184
- MASTER_PACKAGES_DIR
187-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
188185
- MQ_ROUTER_URL
189186
- PORT=9997
190187
- TITLE
@@ -220,7 +217,6 @@ services:
220217
- MASTER_CREDENTIALS_DIR
221218
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
222219
- MASTER_PACKAGES_DIR
223-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
224220
- MQ_ROUTER_URL
225221
- PORT=9998
226222
- TITLE
@@ -256,7 +252,6 @@ services:
256252
- MASTER_CREDENTIALS_DIR
257253
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
258254
- MASTER_PACKAGES_DIR
259-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
260255
- MQ_ROUTER_URL
261256
- PORT=9999
262257
- TITLE
@@ -292,7 +287,6 @@ services:
292287
- MASTER_CREDENTIALS_DIR
293288
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
294289
- MASTER_PACKAGES_DIR
295-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
296290
- MQ_ROUTER_URL
297291
- PORT=10000
298292
- TITLE
@@ -328,7 +322,6 @@ services:
328322
- MASTER_CREDENTIALS_DIR
329323
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
330324
- MASTER_PACKAGES_DIR
331-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
332325
- MQ_ROUTER_URL
333326
- PORT=10001
334327
- TITLE
@@ -364,7 +357,6 @@ services:
364357
- MASTER_CREDENTIALS_DIR
365358
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
366359
- MASTER_PACKAGES_DIR
367-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
368360
- MQ_ROUTER_URL
369361
- PORT=10002
370362
- TITLE
@@ -400,7 +392,6 @@ services:
400392
- MASTER_CREDENTIALS_DIR
401393
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
402394
- MASTER_PACKAGES_DIR
403-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
404395
- MQ_ROUTER_URL
405396
- PORT=10003
406397
- TITLE
@@ -437,7 +428,6 @@ services:
437428
- MASTER_CREDENTIALS_DIR
438429
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
439430
- MASTER_PACKAGES_DIR
440-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
441431
- MQ_ROUTER_URL
442432
- PORT=10004
443433
- TITLE
@@ -473,7 +463,6 @@ services:
473463
- MASTER_CREDENTIALS_DIR
474464
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
475465
- MASTER_PACKAGES_DIR
476-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
477466
- MQ_ROUTER_URL
478467
- PORT=10005
479468
- TITLE
@@ -509,7 +498,6 @@ services:
509498
- MASTER_CREDENTIALS_DIR
510499
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
511500
- MASTER_PACKAGES_DIR
512-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
513501
- MQ_ROUTER_URL
514502
- PORT=10006
515503
- TITLE
@@ -546,7 +534,6 @@ services:
546534
- MASTER_CREDENTIALS_DIR
547535
- MASTER_NONLATENT_DOCKERLIBRARY_WORKER
548536
- MASTER_PACKAGES_DIR
549-
- MC_HOST_minio=https://access_key:secret_key@minio.mariadb.org
550537
- MQ_ROUTER_URL
551538
- PORT=10007
552539
- TITLE

docker-compose/generate-config.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def construct_env_section(env_vars):
143143
for key, value in sorted(env_vars.items()):
144144
if key.startswith("NGINX_"):
145145
continue
146-
elif key not in ["PORT", "MC_HOST_minio"]:
146+
elif key not in ["PORT"]:
147147
env_section += f" - {key}\n"
148148
else:
149149
env_section += f" - {key}={value}\n"
@@ -186,14 +186,12 @@ def main(args):
186186
f"container_name: master-web\n{construct_env_section(env_vars)}",
187187
)
188188

189-
env_vars["MC_HOST_minio"] = "{mc_host}"
190189
# Modify the docker_compose_template to include the environment variables
191190
docker_compose_template = DOCKER_COMPOSE_TEMPLATE.replace(
192191
"container_name: {master_name}",
193192
f"container_name: {{master_name}}\n{construct_env_section(env_vars)}",
194193
)
195194

196-
mc_host = config["private"]["minio_url"]
197195
starting_port = config["private"]["master-variables"]["starting_port"]
198196
master_web_port = 8010
199197
# Generate startup scripts and Docker Compose pieces for each master directory
@@ -223,7 +221,6 @@ def main(args):
223221
master_hostname=master_hostname,
224222
master_directory=master_directory,
225223
port=port,
226-
mc_host=mc_host,
227224
volumes=generate_volumes(master_volumes[master_name]),
228225
environment="" if args.env == "prod" else "dev_",
229226
buildbot_stop_grace_period=BUILDBOT_STOP_GRACE_PERIOD,

master-private.cfg-sample

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ private["db_user"] = "buildmaster"
44
private["db_password"] = "password"
55
private["db_mtr_db"] = "buildbot"
66
private["gh_secret"] = "gh_secret"
7-
private["minio_url"] = "https://access_key:secret_key@minio.mariadb.org"
87
private["zabbix_server"] = "https://zabbix.server"
98
private["zabbix_token"] = "zabbix_token"
109
private["user_pass"]= {

minio/README.md

Lines changed: 0 additions & 52 deletions
This file was deleted.

0 commit comments

Comments
 (0)