Skip to content

Commit 1bf761b

Browse files
authored
Fix for Dockerfile conflict with sonar + agent and tools missing distros propagation (#328)
# Summary Fixes issue with conflicting `Dockerfile` files on master. Sonar is creating Dockerfiles in the directory where new Dockerfile existed already. They were added here -> #289. Additionally another PR #267 made changes to how the agent images were built and especially to agent Dockerfile ARGs: https://github.com/mongodb/mongodb-kubernetes/blob/89866b79233745e27ade51dc2d9fd0e73c6124e5/docker/mongodb-agent/Dockerfile#L3-L6 This conflicted with #303 where new `atomic_pipeline.py` was still depending on the old Dockerfile structure: https://github.com/mongodb/mongodb-kubernetes/blob/774bbaca930a1752060cfe5e5bf60f24cd6c999c/docker/mongodb-agent/Dockerfile#L25-L26 ## Proof of Work Passing CI (especially agent build task) ## Checklist - [ ] Have you linked a jira ticket and/or is the ticket in the title? - [ ] Have you checked whether your jira ticket required DOCSP changes? - [x] Have you added changelog file? - use `skip-changelog` label if not needed - refer to [Changelog files and Release Notes](https://github.com/mongodb/mongodb-kubernetes/blob/master/CONTRIBUTING.md#changelog-files-and-release-notes) section in CONTRIBUTING.md for more details
1 parent 3e482c3 commit 1bf761b

File tree

10 files changed

+30
-38
lines changed

10 files changed

+30
-38
lines changed

scripts/release/atomic_pipeline.py

Lines changed: 30 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def build_operator_image(build_configuration: BuildConfiguration):
118118
image_name = "mongodb-kubernetes"
119119
build_image(
120120
image_name=image_name,
121-
dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile",
121+
dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile.atomic",
122122
build_configuration=build_configuration,
123123
extra_args=args,
124124
)
@@ -131,7 +131,7 @@ def build_database_image(build_configuration: BuildConfiguration):
131131
args = {"version": build_configuration.version}
132132
build_image(
133133
image_name="mongodb-kubernetes-database",
134-
dockerfile_path="docker/mongodb-kubernetes-database/Dockerfile",
134+
dockerfile_path="docker/mongodb-kubernetes-database/Dockerfile.atomic",
135135
build_configuration=build_configuration,
136136
extra_args=args,
137137
)
@@ -182,7 +182,7 @@ def build_init_om_image(build_configuration: BuildConfiguration):
182182
args = {"version": build_configuration.version}
183183
build_image(
184184
image_name="mongodb-kubernetes-init-ops-manager",
185-
dockerfile_path="docker/mongodb-kubernetes-init-ops-manager/Dockerfile",
185+
dockerfile_path="docker/mongodb-kubernetes-init-ops-manager/Dockerfile.atomic",
186186
build_configuration=build_configuration,
187187
extra_args=args,
188188
)
@@ -206,7 +206,7 @@ def build_om_image(build_configuration: BuildConfiguration):
206206

207207
build_image(
208208
image_name="mongodb-enterprise-ops-manager-ubi",
209-
dockerfile_path="docker/mongodb-enterprise-ops-manager/Dockerfile",
209+
dockerfile_path="docker/mongodb-enterprise-ops-manager/Dockerfile.atomic",
210210
build_configuration=build_configuration,
211211
extra_args=args,
212212
)
@@ -268,7 +268,7 @@ def build_init_appdb(build_configuration: BuildConfiguration):
268268
args = {"version": build_configuration.version, "mongodb_tools_url_ubi": mongodb_tools_url_ubi}
269269
build_image(
270270
image_name="mongodb-kubernetes-init-appdb",
271-
dockerfile_path="docker/mongodb-kubernetes-init-appdb/Dockerfile",
271+
dockerfile_path="docker/mongodb-kubernetes-init-appdb/Dockerfile.atomic",
272272
build_configuration=build_configuration,
273273
extra_args=args,
274274
)
@@ -282,7 +282,7 @@ def build_init_database(build_configuration: BuildConfiguration):
282282
args = {"version": build_configuration.version, "mongodb_tools_url_ubi": mongodb_tools_url_ubi}
283283
build_image(
284284
"mongodb-kubernetes-init-database",
285-
"docker/mongodb-kubernetes-init-database/Dockerfile",
285+
"docker/mongodb-kubernetes-init-database/Dockerfile.atomic",
286286
build_configuration=build_configuration,
287287
extra_args=args,
288288
)
@@ -299,10 +299,10 @@ def build_community_image(build_configuration: BuildConfiguration, image_type: s
299299

300300
if image_type == "readiness-probe":
301301
image_name = "mongodb-kubernetes-readinessprobe"
302-
dockerfile_path = "docker/mongodb-kubernetes-readinessprobe/Dockerfile"
302+
dockerfile_path = "docker/mongodb-kubernetes-readinessprobe/Dockerfile.atomic"
303303
elif image_type == "upgrade-hook":
304304
image_name = "mongodb-kubernetes-operator-version-upgrade-post-start-hook"
305-
dockerfile_path = "docker/mongodb-kubernetes-upgrade-hook/Dockerfile"
305+
dockerfile_path = "docker/mongodb-kubernetes-upgrade-hook/Dockerfile.atomic"
306306
else:
307307
raise ValueError(f"Unsupported community image type: {image_type}")
308308

@@ -338,28 +338,27 @@ def build_upgrade_hook_image(build_configuration: BuildConfiguration):
338338

339339
def build_agent_pipeline(
340340
build_configuration: BuildConfiguration,
341-
image_version,
342-
init_database_image,
343-
mongodb_tools_url_ubi,
344-
mongodb_agent_url_ubi: str,
345-
agent_version,
341+
operator_version: str,
342+
agent_version: str,
343+
agent_distro: str,
344+
tools_version: str,
345+
tools_distro: str,
346346
):
347+
image_version = f"{agent_version}_{operator_version}"
348+
347349
build_configuration_copy = copy(build_configuration)
348350
build_configuration_copy.version = image_version
349351
args = {
350352
"version": image_version,
351353
"agent_version": agent_version,
352-
"ubi_suffix": "-ubi",
353-
"release_version": image_version,
354-
"init_database_image": init_database_image,
355-
"mongodb_tools_url_ubi": mongodb_tools_url_ubi,
356-
"mongodb_agent_url_ubi": mongodb_agent_url_ubi,
357-
"quay_registry": build_configuration.base_registry,
354+
"agent_distro": agent_distro,
355+
"tools_version": tools_version,
356+
"tools_distro": tools_distro,
358357
}
359358

360359
build_image(
361360
image_name="mongodb-agent-ubi",
362-
dockerfile_path="docker/mongodb-agent/Dockerfile",
361+
dockerfile_path="docker/mongodb-agent/Dockerfile.atomic",
363362
build_configuration=build_configuration_copy,
364363
extra_args=args,
365364
)
@@ -392,15 +391,14 @@ def build_agent_default_case(build_configuration: BuildConfiguration):
392391
with ProcessPoolExecutor(max_workers=max_workers) as executor:
393392
logger.info(f"Running with factor of {max_workers}")
394393
logger.info(f"======= Agent versions to build {agent_versions_to_build} =======")
395-
for idx, agent_version in enumerate(agent_versions_to_build):
394+
for idx, agent_tools_version in enumerate(agent_versions_to_build):
396395
# We don't need to keep create and push the same image on every build.
397396
# It is enough to create and push the non-operator suffixed images only during releases to ecr and quay.
398-
logger.info(f"======= Building Agent {agent_version} ({idx}/{len(agent_versions_to_build)})")
397+
logger.info(f"======= Building Agent {agent_tools_version} ({idx}/{len(agent_versions_to_build)})")
399398
_build_agent_operator(
400-
agent_version,
399+
agent_tools_version,
401400
build_configuration,
402401
executor,
403-
build_configuration.version,
404402
tasks_queue,
405403
)
406404

@@ -420,31 +418,25 @@ def queue_exception_handling(tasks_queue):
420418

421419

422420
def _build_agent_operator(
423-
agent_version: Tuple[str, str],
421+
agent_tools_version: Tuple[str, str],
424422
build_configuration: BuildConfiguration,
425423
executor: ProcessPoolExecutor,
426-
operator_version: str,
427424
tasks_queue: Queue,
428425
):
426+
agent_version = agent_tools_version[0]
429427
agent_distro = "rhel9_x86_64"
430-
tools_version = agent_version[1]
428+
tools_version = agent_tools_version[1]
431429
tools_distro = get_tools_distro(tools_version)["amd"]
432-
image_version = f"{agent_version[0]}_{operator_version}"
433-
mongodb_tools_url_ubi = (
434-
f"https://downloads.mongodb.org/tools/db/mongodb-database-tools-{tools_distro}-{tools_version}.tgz"
435-
)
436-
mongodb_agent_url_ubi = f"https://mciuploads.s3.amazonaws.com/mms-automation/mongodb-mms-build-agent/builds/automation-agent/prod/mongodb-mms-automation-agent-{agent_version[0]}.{agent_distro}.tar.gz"
437-
init_database_image = f"{build_configuration.base_registry}/mongodb-kubernetes-init-database:{operator_version}"
438430

439431
tasks_queue.put(
440432
executor.submit(
441433
build_agent_pipeline,
442434
build_configuration,
443-
image_version,
444-
init_database_image,
445-
mongodb_tools_url_ubi,
446-
mongodb_agent_url_ubi,
447-
agent_version[0],
435+
build_configuration.version,
436+
agent_version,
437+
agent_distro,
438+
tools_version,
439+
tools_distro,
448440
)
449441
)
450442

0 commit comments

Comments
 (0)