@@ -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" )
119119def 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
431423def 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