Skip to content

Commit 7e2497f

Browse files
committed
Add latest tag for some images
1 parent e18d87f commit 7e2497f

File tree

6 files changed

+22
-9
lines changed

6 files changed

+22
-9
lines changed

build_info.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
},
3232
"staging": {
3333
"sign": true,
34+
"latest-tag": true,
3435
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-init-database",
3536
"platforms": [
3637
"linux/amd64"
@@ -53,6 +54,7 @@
5354
},
5455
"staging": {
5556
"sign": true,
57+
"latest-tag": true,
5658
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-init-appdb",
5759
"platforms": [
5860
"linux/amd64"
@@ -75,6 +77,7 @@
7577
},
7678
"staging": {
7779
"sign": true,
80+
"latest-tag": true,
7881
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-init-ops-manager",
7982
"platforms": [
8083
"linux/amd64"
@@ -97,6 +100,7 @@
97100
},
98101
"staging": {
99102
"sign": true,
103+
"latest-tag": true,
100104
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-database",
101105
"platforms": [
102106
"linux/amd64"
@@ -147,6 +151,7 @@
147151
},
148152
"staging": {
149153
"sign": true,
154+
"latest-tag": true,
150155
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-readinessprobe",
151156
"platforms": [
152157
"linux/amd64"
@@ -170,6 +175,7 @@
170175
},
171176
"staging": {
172177
"sign": true,
178+
"latest-tag": true,
173179
"repository": "268558157000.dkr.ecr.us-east-1.amazonaws.com/staging/mongodb-kubernetes-operator-version-upgrade-post-start-hook",
174180
"platforms": [
175181
"linux/amd64"

scripts/release/atomic_pipeline.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,12 @@ def build_image(
5353
logger.debug(f"build image generic - registry={registry}")
5454

5555
# Build docker registry URI and call build_image
56-
image_full_uri = f"{build_configuration.registry}:{build_configuration.version}"
56+
tags = [f"{build_configuration.registry}:{build_configuration.version}"]
57+
if build_configuration.latest_tag:
58+
tags.append(f"{build_configuration.registry}:{"latest"}")
5759

5860
execute_docker_build(
59-
tag=image_full_uri,
61+
tags=tags,
6062
dockerfile=dockerfile_path,
6163
path=build_path,
6264
args=build_args,

scripts/release/build/build_info.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class ImageInfo:
2525
platforms: list[str]
2626
version: str
2727
sign: bool
28+
latest_tag: bool
2829

2930

3031
@dataclass
@@ -92,6 +93,7 @@ def load_build_info(scenario: BuildScenario,
9293
platforms=data["platforms"],
9394
version=image_version,
9495
sign=data.get("sign", False),
96+
latest_tag=data.get("latest-tag", False),
9597
)
9698

9799
binaries = {}

scripts/release/build/image_build_configuration.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
class ImageBuildConfiguration:
1111
scenario: BuildScenario
1212
version: str
13+
latest_tag: bool
1314
registry: str
1415

1516
parallel: bool = False

scripts/release/build/image_build_process.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def ensure_buildx_builder(builder_name: str = DEFAULT_BUILDER_NAME) -> str:
7373

7474

7575
def execute_docker_build(
76-
tag: str,
76+
tags: list[str],
7777
dockerfile: str,
7878
path: str, args:
7979
Dict[str, str],
@@ -84,7 +84,7 @@ def execute_docker_build(
8484
"""
8585
Build a Docker image using python_on_whales and Docker Buildx for multi-architecture support.
8686
87-
:param tag: Image tag (name:tag)
87+
:param tags: Image tags (name:tag)
8888
:param dockerfile: Name or relative path of the Dockerfile within `path`
8989
:param path: Build context path (directory with the Dockerfile)
9090
:param args: Build arguments dictionary
@@ -101,7 +101,7 @@ def execute_docker_build(
101101
# Convert build args to the format expected by python_on_whales
102102
build_args = {k: str(v) for k, v in args.items()}
103103

104-
logger.info(f"Building image: {tag}")
104+
logger.info(f"Building image: {tags}")
105105
logger.info(f"Platforms: {platforms}")
106106
logger.info(f"Dockerfile: {dockerfile}")
107107
logger.info(f"Build context: {path}")
@@ -116,7 +116,7 @@ def execute_docker_build(
116116
context_path=path,
117117
file=dockerfile,
118118
# TODO: add tag for release builds (OLM immutable tag)
119-
tags=[tag],
119+
tags=tags,
120120
platforms=platforms,
121121
builder=builder_name,
122122
build_args=build_args,
@@ -125,8 +125,8 @@ def execute_docker_build(
125125
pull=False, # Don't always pull base images
126126
)
127127

128-
logger.info(f"Successfully built {'and pushed' if push else ''} {tag}")
128+
logger.info(f"Successfully built {'and pushed' if push else ''} {tags}")
129129

130130
except Exception as e:
131-
logger.error(f"Failed to build image {tag}: {e}")
132-
raise RuntimeError(f"Failed to build image {tag}: {str(e)}")
131+
logger.error(f"Failed to build image {tags}: {e}")
132+
raise RuntimeError(f"Failed to build image {tags}: {str(e)}")

scripts/release/pipeline_main.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,15 @@ def image_build_config_from_args(args) -> ImageBuildConfiguration:
107107

108108
# Resolve final values with overrides
109109
version = args.version or image_build_info.version
110+
latest_tag = image_build_info.latest_tag
110111
registry = args.registry or image_build_info.repository
111112
platforms = get_platforms_from_arg(args.platform) or image_build_info.platforms
112113
sign = args.sign or image_build_info.sign
113114

114115
return ImageBuildConfiguration(
115116
scenario=build_scenario,
116117
version=version,
118+
latest_tag=latest_tag,
117119
registry=registry,
118120
parallel=args.parallel,
119121
platforms=platforms,

0 commit comments

Comments
 (0)