Skip to content

CLOUDP-295785 - add dockerfile_path to build_info.json #335

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: maciejk/use-ar-related-versions
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions build_info.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"images": {
"operator": {
"dockerfile-path": "docker/mongodb-kubernetes-operator/Dockerfile.atomic",
"patch": {
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes",
"platforms": [
Expand All @@ -25,6 +26,7 @@
}
},
"init-database": {
"dockerfile-path": "docker/mongodb-kubernetes-init-database/Dockerfile.atomic",
"patch": {
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-init-database",
"platforms": [
Expand All @@ -49,6 +51,7 @@
}
},
"init-appdb": {
"dockerfile-path": "docker/mongodb-kubernetes-init-appdb/Dockerfile.atomic",
"patch": {
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-init-appdb",
"platforms": [
Expand All @@ -73,6 +76,7 @@
}
},
"init-ops-manager": {
"dockerfile-path": "docker/mongodb-kubernetes-init-ops-manager/Dockerfile.atomic",
"patch": {
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-init-ops-manager",
"platforms": [
Expand All @@ -97,6 +101,7 @@
}
},
"database": {
"dockerfile-path": "docker/mongodb-kubernetes-database/Dockerfile.atomic",
"patch": {
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-database",
"platforms": [
Expand All @@ -121,6 +126,7 @@
}
},
"meko-tests": {
"dockerfile-path": "docker/mongodb-kubernetes-tests/Dockerfile",
"patch": {
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-tests",
"platforms": [
Expand All @@ -135,6 +141,7 @@
}
},
"mco-tests": {
"dockerfile-path": "docker/mongodb-community-tests/Dockerfile",
"patch": {
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-community-tests",
"platforms": [
Expand All @@ -149,6 +156,7 @@
}
},
"readiness-probe": {
"dockerfile-path": "docker/mongodb-kubernetes-readinessprobe/Dockerfile.atomic",
"patch": {
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-readinessprobe",
"platforms": [
Expand All @@ -174,6 +182,7 @@
}
},
"upgrade-hook": {
"dockerfile-path": "docker/mongodb-kubernetes-upgrade-hook/Dockerfile.atomic",
"patch": {
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-kubernetes-operator-version-upgrade-post-start-hook",
"platforms": [
Expand All @@ -199,6 +208,7 @@
}
},
"agent": {
"dockerfile-path": "docker/mongodb-agent/Dockerfile.atomic",
"patch": {
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi",
"platforms": [
Expand All @@ -223,6 +233,7 @@
}
},
"ops-manager": {
"dockerfile-path": "docker/mongodb-enterprise-ops-manager/Dockerfile.atomic",
"patch": {
"version": "om-version-from-release.json",
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-enterprise-ops-manager",
Expand Down
29 changes: 9 additions & 20 deletions scripts/release/atomic_pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@

@TRACER.start_as_current_span("build_image")
def build_image(
dockerfile_path: str,
build_configuration: ImageBuildConfiguration,
build_args: Dict[str, str] = None,
build_path: str = ".",
Expand All @@ -41,23 +40,24 @@ def build_image(
span = trace.get_current_span()
span.set_attribute("mck.image_name", image_name)

registry = build_configuration.base_registry
base_registry = build_configuration.base_registry()
build_args = build_args or {}

if build_args:
span.set_attribute("mck.build_args", str(build_args))

logger.info(f"Building {image_name}, dockerfile args: {build_args}")
logger.debug(f"Build args: {build_args}")
logger.debug(f"Building {image_name} for platforms={build_configuration.platforms}")
logger.debug(f"build image generic - registry={registry}")
span.set_attribute("mck.registry", base_registry)
span.set_attribute("mck.platforms", build_configuration.platforms)

# Build docker registry URI and call build_image
image_full_uri = f"{build_configuration.registry}:{build_configuration.version}"

logger.info(
f"Building {image_full_uri} for platforms={build_configuration.platforms}, dockerfile args: {build_args}"
)

execute_docker_build(
tag=image_full_uri,
dockerfile=dockerfile_path,
dockerfile=build_configuration.dockerfile_path,
path=build_path,
args=build_args,
push=True,
Expand All @@ -72,7 +72,7 @@ def build_image(
verify_signature(build_configuration.registry, build_configuration.version)


def build_tests_image(build_configuration: ImageBuildConfiguration):
def build_meko_tests_image(build_configuration: ImageBuildConfiguration):
"""
Builds image used to run tests.
"""
Expand Down Expand Up @@ -101,7 +101,6 @@ def build_tests_image(build_configuration: ImageBuildConfiguration):
build_args = dict({"PYTHON_VERSION": python_version})

build_image(
dockerfile_path="docker/mongodb-kubernetes-tests/Dockerfile",
build_configuration=build_configuration,
build_args=build_args,
build_path="docker/mongodb-kubernetes-tests",
Expand All @@ -114,7 +113,6 @@ def build_mco_tests_image(build_configuration: ImageBuildConfiguration):
"""

build_image(
dockerfile_path="docker/mongodb-community-tests/Dockerfile",
build_configuration=build_configuration,
)

Expand All @@ -135,7 +133,6 @@ def build_operator_image(build_configuration: ImageBuildConfiguration):
logger.info(f"Building Operator args: {args}")

build_image(
dockerfile_path="docker/mongodb-kubernetes-operator/Dockerfile.atomic",
build_configuration=build_configuration,
build_args=args,
)
Expand All @@ -148,7 +145,6 @@ def build_database_image(build_configuration: ImageBuildConfiguration):
args = {"version": build_configuration.version}

build_image(
dockerfile_path="docker/mongodb-kubernetes-database/Dockerfile.atomic",
build_configuration=build_configuration,
build_args=args,
)
Expand Down Expand Up @@ -199,7 +195,6 @@ def build_init_om_image(build_configuration: ImageBuildConfiguration):
args = {"version": build_configuration.version}

build_image(
dockerfile_path="docker/mongodb-kubernetes-init-ops-manager/Dockerfile.atomic",
build_configuration=build_configuration,
build_args=args,
)
Expand All @@ -225,7 +220,6 @@ def build_om_image(build_configuration: ImageBuildConfiguration):
}

build_image(
dockerfile_path="docker/mongodb-enterprise-ops-manager/Dockerfile.atomic",
build_configuration=build_configuration,
build_args=args,
)
Expand All @@ -238,7 +232,6 @@ def build_init_appdb_image(build_configuration: ImageBuildConfiguration):
args = {"version": build_configuration.version, "mongodb_tools_url_ubi": mongodb_tools_url_ubi}

build_image(
dockerfile_path="docker/mongodb-kubernetes-init-appdb/Dockerfile.atomic",
build_configuration=build_configuration,
build_args=args,
)
Expand All @@ -252,7 +245,6 @@ def build_init_database_image(build_configuration: ImageBuildConfiguration):
args = {"version": build_configuration.version, "mongodb_tools_url_ubi": mongodb_tools_url_ubi}

build_image(
"docker/mongodb-kubernetes-init-database/Dockerfile.atomic",
build_configuration=build_configuration,
build_args=args,
)
Expand All @@ -264,7 +256,6 @@ def build_readiness_probe_image(build_configuration: ImageBuildConfiguration):
"""

build_image(
dockerfile_path="docker/mongodb-kubernetes-readinessprobe/Dockerfile.atomic",
build_configuration=build_configuration,
)

Expand All @@ -275,7 +266,6 @@ def build_upgrade_hook_image(build_configuration: ImageBuildConfiguration):
"""

build_image(
dockerfile_path="docker/mongodb-kubernetes-upgrade-hook/Dockerfile.atomic",
build_configuration=build_configuration,
)

Expand Down Expand Up @@ -430,7 +420,6 @@ def build_agent_pipeline(
}

build_image(
dockerfile_path="docker/mongodb-agent/Dockerfile.atomic",
build_configuration=build_configuration_copy,
build_args=args,
)
Expand Down
44 changes: 23 additions & 21 deletions scripts/release/build/build_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ class ImageInfo:
repository: str
platforms: list[str]
version: str
dockerfile_path: str
sign: bool


Expand Down Expand Up @@ -81,49 +82,50 @@ def load_build_info(scenario: BuildScenario,
build_info_scenario = BuildScenario.PATCH

images = {}
for name, env_data in build_info["images"].items():
data = env_data.get(build_info_scenario)
if not data:
# If no data is available for the scenario, skip this image
for name, data in build_info["images"].items():
scenario_data = data.get(build_info_scenario)
if not scenario_data:
# If no scenario_data is available for the scenario, skip this image
continue

# Only update the image_version if it is not already set in the build_info.json file
image_version = data.get("version")
image_version = scenario_data.get("version")
if not image_version:
image_version = version

images[name] = ImageInfo(
repository=data["repository"],
platforms=data["platforms"],
repository=scenario_data["repository"],
platforms=scenario_data["platforms"],
version=image_version,
sign=data.get("sign", False),
dockerfile_path=data["dockerfile-path"],
sign=scenario_data.get("sign", False),
)

binaries = {}
for name, env_data in build_info["binaries"].items():
data = env_data.get(build_info_scenario)
if not data:
# If no data is available for the scenario, skip this binary
for name, data in build_info["binaries"].items():
scenario_data = data.get(build_info_scenario)
if not scenario_data:
# If no scenario_data is available for the scenario, skip this binary
continue

binaries[name] = BinaryInfo(
s3_store=data["s3-store"],
platforms=data["platforms"],
s3_store=scenario_data["s3-store"],
platforms=scenario_data["platforms"],
version=version,
sign=data.get("sign", False),
sign=scenario_data.get("sign", False),
)

helm_charts = {}
for name, env_data in build_info["helm-charts"].items():
data = env_data.get(build_info_scenario)
if not data:
# If no data is available for the scenario, skip this helm-chart
for name, data in build_info["helm-charts"].items():
scenario_data = data.get(build_info_scenario)
if not scenario_data:
# If no scenario_data is available for the scenario, skip this helm-chart
continue

helm_charts[name] = HelmChartInfo(
repository=data["repository"],
repository=scenario_data["repository"],
version=version,
sign=data.get("sign", False),
sign=scenario_data.get("sign", False),
)

return BuildInfo(images=images, binaries=binaries, helm_charts=helm_charts)
Loading
Loading