Skip to content

Commit 91dd191

Browse files
committed
Pass Build Configuration object directly
1 parent 4570e54 commit 91dd191

File tree

1 file changed

+28
-36
lines changed

1 file changed

+28
-36
lines changed

scripts/release/atomic_pipeline.py

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,9 @@ def create_and_push_manifest(image: str, tag: str, architectures: list[str]) ->
118118
@TRACER.start_as_current_span("sonar_build_image")
119119
def pipeline_process_image(
120120
image_name: str,
121-
image_tag: str, # TODO how to define tag properly
122121
dockerfile_path: str,
122+
build_configuration: BuildConfiguration,
123123
dockerfile_args: Dict[str, str] = None,
124-
base_registry: str = None,
125-
platforms: list[str] = None,
126-
sign: bool = False,
127124
build_path: str = ".",
128125
with_sbom: bool = True,
129126
):
@@ -149,11 +146,12 @@ def pipeline_process_image(
149146
process_image(
150147
image_name,
151148
image_tag=image_tag,
149+
image_tag=build_configuration.version,
152150
dockerfile_path=dockerfile_path,
153151
dockerfile_args=dockerfile_args,
154-
base_registry=base_registry,
155-
platforms=platforms,
156-
sign=sign,
152+
base_registry=build_configuration.base_registry,
153+
platforms=build_configuration.platforms,
154+
sign=build_configuration.sign,
157155
build_path=build_path,
158156
)
159157

@@ -230,10 +228,9 @@ def build_tests_image(build_configuration: BuildConfiguration):
230228

231229
pipeline_process_image(
232230
image_name,
233-
image_tag=build_configuration.version,
234231
dockerfile_path="Dockerfile",
232+
build_configuration=build_configuration,
235233
dockerfile_args=buildargs,
236-
base_registry=build_configuration.base_registry,
237234
build_path="docker/mongodb-kubernetes-tests",
238235
)
239236

@@ -251,10 +248,9 @@ def build_mco_tests_image(build_configuration: BuildConfiguration):
251248

252249
pipeline_process_image(
253250
image_name,
254-
image_tag=build_configuration.version,
255251
dockerfile_path="docker/mongodb-community-tests/Dockerfile",
252+
build_configuration=build_configuration,
256253
dockerfile_args=buildargs,
257-
base_registry=build_configuration.base_registry,
258254
)
259255

260256

@@ -278,9 +274,8 @@ def build_operator_image(build_configuration: BuildConfiguration):
278274
build_image_generic(
279275
image_name=image_name,
280276
dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile",
281-
registry_address=build_configuration.base_registry,
277+
build_configuration=build_configuration,
282278
extra_args=args,
283-
sign=build_configuration.sign,
284279
)
285280

286281

@@ -299,9 +294,8 @@ def build_database_image(build_configuration: BuildConfiguration):
299294
build_image_generic(
300295
image_name="mongodb-kubernetes-database",
301296
dockerfile_path="docker/mongodb-kubernetes-database/Dockerfile",
302-
registry_address=build_configuration.base_registry,
297+
build_configuration=build_configuration,
303298
extra_args=args,
304-
sign=build_configuration.sign,
305299
)
306300

307301

@@ -397,9 +391,8 @@ def build_init_om_image(build_configuration: BuildConfiguration):
397391
build_image_generic(
398392
image_name="mongodb-kubernetes-init-ops-manager",
399393
dockerfile_path="docker/mongodb-kubernetes-init-ops-manager/Dockerfile",
400-
registry_address=build_configuration.base_registry,
394+
build_configuration=build_configuration,
401395
extra_args=args,
402-
sign=build_configuration.sign,
403396
)
404397

405398

@@ -422,28 +415,26 @@ def build_om_image(build_configuration: BuildConfiguration):
422415
build_image_generic(
423416
image_name="mongodb-enterprise-ops-manager-ubi",
424417
dockerfile_path="docker/mongodb-enterprise-ops-manager/Dockerfile",
425-
registry_address=build_configuration.base_registry,
418+
build_configuration=build_configuration,
426419
extra_args=args,
427-
sign=build_configuration.sign,
428420
)
429421

430422

431423
def build_image_generic(
432424
image_name: str,
433425
dockerfile_path: str,
434-
registry_address: str,
426+
build_configuration: BuildConfiguration,
435427
extra_args: dict | None = None,
436428
multi_arch_args_list: list[dict] | None = None,
437429
is_multi_arch: bool = False,
438-
sign: bool = False,
439430
):
440431
"""
441432
Build one or more architecture-specific images, then (optionally)
442433
push a manifest and sign the result.
443434
"""
444435

445436
# 1) Defaults
446-
registry = registry_address
437+
registry = build_configuration.base_registry
447438
args_list = multi_arch_args_list or [extra_args or {}]
448439
version = args_list[0].get("version", "")
449440
architectures = [args.get("architecture") for args in args_list]
@@ -473,7 +464,7 @@ def build_image_generic(
473464
create_and_push_manifest(registry + "/" + image_name, version, architectures=architectures)
474465

475466
# 4) Signing (only on real releases)
476-
if sign:
467+
if build_configuration.sign:
477468
sign_image(registry, version)
478469
verify_signature(registry, version)
479470

@@ -487,9 +478,8 @@ def build_init_appdb(build_configuration: BuildConfiguration):
487478
build_image_generic(
488479
image_name="mongodb-kubernetes-init-appdb",
489480
dockerfile_path="docker/mongodb-kubernetes-init-appdb/Dockerfile",
490-
registry_address=build_configuration.base_registry,
481+
build_configuration=build_configuration,
491482
extra_args=args,
492-
sign=build_configuration.sign,
493483
)
494484

495485

@@ -503,9 +493,8 @@ def build_init_database(build_configuration: BuildConfiguration):
503493
build_image_generic(
504494
"mongodb-kubernetes-init-database",
505495
"docker/mongodb-kubernetes-init-database/Dockerfile",
506-
registry_address=build_configuration.base_registry,
496+
build_configuration=build_configuration,
507497
extra_args=args,
508-
sign=build_configuration.sign,
509498
)
510499

511500

@@ -532,11 +521,13 @@ def build_community_image(build_configuration: BuildConfiguration, image_type: s
532521

533522
# Use only amd64 if we should skip arm64 builds
534523
if should_skip_arm64():
535-
architectures = ["amd64"]
524+
platforms = ["linux/amd64"]
536525
logger.info("Skipping ARM64 builds for community image as this is running in EVG pipeline as a patch")
537526
else:
538-
architectures = build_configuration.platforms or ["amd64", "arm64"]
527+
platforms = build_configuration.platforms or ["linux/amd64", "linux/arm64"]
539528

529+
# Extract architectures from platforms for build args
530+
architectures = [platform.split("/")[-1] for platform in platforms]
540531
multi_arch_args_list = []
541532

542533
for arch in architectures:
@@ -548,13 +539,17 @@ def build_community_image(build_configuration: BuildConfiguration, image_type: s
548539
}
549540
multi_arch_args_list.append(arch_args)
550541

542+
# Create a copy of build_configuration with overridden platforms
543+
from copy import copy
544+
build_config_copy = copy(build_configuration)
545+
build_config_copy.platforms = platforms
546+
551547
build_image_generic(
552548
image_name=image_name,
553549
dockerfile_path=dockerfile_path,
554-
registry_address=build_configuration.base_registry,
550+
build_configuration=build_config_copy,
555551
multi_arch_args_list=multi_arch_args_list,
556552
is_multi_arch=True,
557-
sign=build_configuration.sign,
558553
)
559554

560555

@@ -596,9 +591,8 @@ def build_agent_pipeline(
596591
build_image_generic(
597592
image_name="mongodb-agent-ubi",
598593
dockerfile_path="docker/mongodb-agent/Dockerfile",
599-
registry_address=build_configuration.base_registry,
594+
build_configuration=build_configuration,
600595
extra_args=args,
601-
sign=build_configuration.sign,
602596
)
603597

604598

@@ -647,11 +641,9 @@ def build_multi_arch_agent_in_sonar(
647641
build_image_generic(
648642
image_name="mongodb-agent-ubi",
649643
dockerfile_path="docker/mongodb-agent-non-matrix/Dockerfile",
650-
registry_address=build_configuration.base_registry,
644+
build_configuration=build_config_copy,
651645
is_multi_arch=True,
652646
multi_arch_args_list=joined_args,
653-
is_run_in_parallel=True,
654-
sign=build_configuration.sign,
655647
)
656648

657649
# TODO: why versions are wrong -> 13.35.0.9498-1_13.35.0.9498-1_6874c19d2aab5d0007820c51 ; duplicate

0 commit comments

Comments
 (0)