diff --git a/.gitignore b/.gitignore
index 955a202f..5569953a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -169,3 +169,6 @@ bandit-report.json
# zot
test-data/zot
+
+s3_downloads/
+.github_release_id
diff --git a/src/gardenlinux/github/__main__.py b/src/gardenlinux/github/__main__.py
index 9ded0bce..de2a6f63 100644
--- a/src/gardenlinux/github/__main__.py
+++ b/src/gardenlinux/github/__main__.py
@@ -1,5 +1,6 @@
import argparse
+from gardenlinux.constants import GARDENLINUX_GITHUB_RELEASE_BUCKET_NAME
from gardenlinux.logger import LoggerSetup
from .release import create_github_release, upload_to_github_release_page, write_to_release_id_file
@@ -30,7 +31,7 @@ def main():
args = parser.parse_args()
if args.command == "create":
- body = create_github_release_notes(args.tag, args.commit)
+ body = create_github_release_notes(args.tag, args.commit, GARDENLINUX_GITHUB_RELEASE_BUCKET_NAME)
if args.dry_run:
print("Dry Run ...")
print("This release would be created:")
diff --git a/src/gardenlinux/github/release_notes/__init__.py b/src/gardenlinux/github/release_notes/__init__.py
index e977bc96..2a9804f9 100644
--- a/src/gardenlinux/github/release_notes/__init__.py
+++ b/src/gardenlinux/github/release_notes/__init__.py
@@ -1,12 +1,13 @@
-from .helpers import get_package_list
+from .helpers import download_all_metadata_files, get_package_list
from .sections import (
release_notes_changes_section,
release_notes_compare_package_versions_section,
+ release_notes_image_ids_section,
release_notes_software_components_section,
)
-def create_github_release_notes(gardenlinux_version, commitish):
+def create_github_release_notes(gardenlinux_version, commitish, releases_s3_bucket_name):
package_list = get_package_list(gardenlinux_version)
output = ""
@@ -19,7 +20,9 @@ def create_github_release_notes(gardenlinux_version, commitish):
gardenlinux_version, package_list
)
- # TODO: image ids
+ metadata_files = download_all_metadata_files(gardenlinux_version, commitish, releases_s3_bucket_name)
+
+ output += release_notes_image_ids_section(metadata_files)
output += "\n"
output += "## Kernel Module Build Container (kmodbuild)"
diff --git a/src/gardenlinux/github/release_notes/deployment_platform/__init__.py b/src/gardenlinux/github/release_notes/deployment_platform/__init__.py
new file mode 100644
index 00000000..0c859ec9
--- /dev/null
+++ b/src/gardenlinux/github/release_notes/deployment_platform/__init__.py
@@ -0,0 +1,104 @@
+from gardenlinux.constants import GARDENLINUX_GITHUB_RELEASE_BUCKET_NAME
+
+
+class DeploymentPlatform():
+ artifacts_bucket_name = GARDENLINUX_GITHUB_RELEASE_BUCKET_NAME
+
+ def short_name(self):
+ return "generic"
+
+ def full_name(self):
+ return "Generic Deployment Platform"
+
+ def published_images_by_regions(self, image_metadata):
+ published_image_metadata = image_metadata["published_image_metadata"]
+ flavor_name = image_metadata["s3_key"].split("/")[-1]
+
+ regions = []
+ for pset in published_image_metadata:
+ for p in published_image_metadata[pset]:
+ regions.append({"region": p["region_id"], "image_id": p["image_id"]})
+
+ return {"flavor": flavor_name, "regions": regions}
+
+ def image_extension(self):
+ return "raw"
+
+ def artifact_for_flavor(self, flavor, markdown_format=True):
+ base_url = f"https://{self.__class__.artifacts_bucket_name}.s3.amazonaws.com/objects"
+ filename = f"{flavor}.{self.image_extension()}"
+ download_url = f"{base_url}/{flavor}/{filename}"
+ if markdown_format:
+ return f"[{filename}]({download_url})"
+ else:
+ return download_url
+
+ def region_details(self, image_metadata):
+ """
+ Generate the detailed region information for the collapsible section
+ """
+ details = ""
+
+ match self.published_images_by_regions(image_metadata):
+ case {"regions": regions}:
+ for region in regions:
+ match region:
+ case {
+ "region": region_name,
+ "image_id": image_id,
+ "image_name": image_name,
+ }:
+ details += f"**{region_name}:** {image_id} ({image_name})
"
+ case {"region": region_name, "image_id": image_id}:
+ details += f"**{region_name}:** {image_id}
"
+ case {"details": details_dict}:
+ for key, value in details_dict.items():
+ details += f"**{key.replace('_', ' ').title()}:** {value}
"
+ case {
+ "gallery_images": gallery_images,
+ "marketplace_images": marketplace_images,
+ }:
+ if gallery_images:
+ details += "**Gallery Images:**
"
+ for img in gallery_images:
+ details += f"• {img['hyper_v_generation']} ({img['azure_cloud']}): {img['image_id']}
"
+ if marketplace_images:
+ details += "**Marketplace Images:**
"
+ for img in marketplace_images:
+ details += f"• {img['hyper_v_generation']}: {img['urn']}
"
+ case {"gallery_images": gallery_images}:
+ details += "**Gallery Images:**
"
+ for img in gallery_images:
+ details += f"• {img['hyper_v_generation']} ({img['azure_cloud']}): {img['image_id']}
"
+ case {"marketplace_images": marketplace_images}:
+ details += "**Marketplace Images:**
"
+ for img in marketplace_images:
+ details += f"• {img['hyper_v_generation']}: {img['urn']}
"
+
+ return details
+
+ def summary_text(self, image_metadata):
+ """
+ Generate the summary text for the collapsible section
+ """
+ match self.published_images_by_regions(image_metadata):
+ case {"regions": regions}:
+ count = len(regions)
+ return f"{count} regions"
+ case {"details": _}:
+ return "Global availability"
+ case {
+ "gallery_images": gallery_images,
+ "marketplace_images": marketplace_images,
+ }:
+ gallery_count = len(gallery_images)
+ marketplace_count = len(marketplace_images)
+ return f"{gallery_count} gallery + {marketplace_count} marketplace images"
+ case {"gallery_images": gallery_images}:
+ gallery_count = len(gallery_images)
+ return f"{gallery_count} gallery images"
+ case {"marketplace_images": marketplace_images}:
+ marketplace_count = len(marketplace_images)
+ return f"{marketplace_count} marketplace images"
+ case _:
+ return "Details available"
diff --git a/src/gardenlinux/github/release_notes/deployment_platform/ali_cloud.py b/src/gardenlinux/github/release_notes/deployment_platform/ali_cloud.py
new file mode 100644
index 00000000..a9d38c08
--- /dev/null
+++ b/src/gardenlinux/github/release_notes/deployment_platform/ali_cloud.py
@@ -0,0 +1,12 @@
+from . import DeploymentPlatform
+
+
+class AliCloud(DeploymentPlatform):
+ def short_name(self):
+ return "ali"
+
+ def full_name(self):
+ return "Alibaba Cloud"
+
+ def image_extension(self):
+ return "qcow2"
diff --git a/src/gardenlinux/github/release_notes/deployment_platform/amazon_web_services.py b/src/gardenlinux/github/release_notes/deployment_platform/amazon_web_services.py
new file mode 100644
index 00000000..4353fe80
--- /dev/null
+++ b/src/gardenlinux/github/release_notes/deployment_platform/amazon_web_services.py
@@ -0,0 +1,20 @@
+from . import DeploymentPlatform
+
+
+class AmazonWebServices(DeploymentPlatform):
+ def short_name(self):
+ return "aws"
+
+ def full_name(self):
+ return "Amazon Web Services"
+
+ def published_images_by_regions(self, image_metadata):
+ published_image_metadata = image_metadata["published_image_metadata"]
+ flavor_name = image_metadata["s3_key"].split("/")[-1]
+
+ regions = []
+ for pset in published_image_metadata:
+ for p in published_image_metadata[pset]:
+ regions.append({"region": p["aws_region_id"], "image_id": p["ami_id"]})
+
+ return {"flavor": flavor_name, "regions": regions}
diff --git a/src/gardenlinux/github/release_notes/deployment_platform/azure.py b/src/gardenlinux/github/release_notes/deployment_platform/azure.py
new file mode 100644
index 00000000..ee416658
--- /dev/null
+++ b/src/gardenlinux/github/release_notes/deployment_platform/azure.py
@@ -0,0 +1,45 @@
+from . import DeploymentPlatform
+
+
+class Azure(DeploymentPlatform):
+ def short_name(self):
+ return "azure"
+
+ def full_name(self):
+ return "Microsoft Azure"
+
+ def image_extension(self):
+ return "vhd"
+
+ def published_images_by_regions(self, image_metadata):
+ published_image_metadata = image_metadata["published_image_metadata"]
+ flavor_name = image_metadata["s3_key"].split("/")[-1]
+
+ gallery_images = []
+ marketplace_images = []
+
+ for pset in published_image_metadata:
+ if pset == "published_gallery_images":
+ for gallery_image in published_image_metadata[pset]:
+ gallery_images.append(
+ {
+ "hyper_v_generation": gallery_image["hyper_v_generation"],
+ "azure_cloud": gallery_image["azure_cloud"],
+ "image_id": gallery_image["community_gallery_image_id"],
+ }
+ )
+
+ if pset == "published_marketplace_images":
+ for market_image in published_image_metadata[pset]:
+ marketplace_images.append(
+ {
+ "hyper_v_generation": market_image["hyper_v_generation"],
+ "urn": market_image["urn"],
+ }
+ )
+
+ return {
+ "flavor": flavor_name,
+ "gallery_images": gallery_images,
+ "marketplace_images": marketplace_images,
+ }
diff --git a/src/gardenlinux/github/release_notes/deployment_platform/google_cloud.py b/src/gardenlinux/github/release_notes/deployment_platform/google_cloud.py
new file mode 100644
index 00000000..f42457c7
--- /dev/null
+++ b/src/gardenlinux/github/release_notes/deployment_platform/google_cloud.py
@@ -0,0 +1,25 @@
+from . import DeploymentPlatform
+
+
+class GoogleCloud(DeploymentPlatform):
+ def short_name(self):
+ return "gcp"
+
+ def full_name(self):
+ return "Google Cloud Platform"
+
+ def image_extension(self):
+ return "gcpimage.tar.gz"
+
+ def published_images_by_regions(self, image_metadata):
+ published_image_metadata = image_metadata["published_image_metadata"]
+ flavor_name = image_metadata["s3_key"].split("/")[-1]
+
+ details = {}
+ if "gcp_image_name" in published_image_metadata:
+ details["image_name"] = published_image_metadata["gcp_image_name"]
+ if "gcp_project_name" in published_image_metadata:
+ details["project"] = published_image_metadata["gcp_project_name"]
+ details["availability"] = "Global (all regions)"
+
+ return {"flavor": flavor_name, "details": details}
diff --git a/src/gardenlinux/github/release_notes/deployment_platform/openstack.py b/src/gardenlinux/github/release_notes/deployment_platform/openstack.py
new file mode 100644
index 00000000..06cdd9c2
--- /dev/null
+++ b/src/gardenlinux/github/release_notes/deployment_platform/openstack.py
@@ -0,0 +1,26 @@
+from . import DeploymentPlatform
+
+
+class OpenStack(DeploymentPlatform):
+ def short_name(self):
+ return "openstack"
+
+ def full_name(self):
+ return "OpenStack"
+
+ def published_images_by_regions(self, image_metadata):
+ published_image_metadata = image_metadata["published_image_metadata"]
+ flavor_name = image_metadata["s3_key"].split("/")[-1]
+
+ regions = []
+ if "published_openstack_images" in published_image_metadata:
+ for image in published_image_metadata["published_openstack_images"]:
+ regions.append(
+ {
+ "region": image["region_name"],
+ "image_id": image["image_id"],
+ "image_name": image["image_name"],
+ }
+ )
+
+ return {"flavor": flavor_name, "regions": regions}
diff --git a/src/gardenlinux/github/release_notes/deployment_platform/openstack_baremetal.py b/src/gardenlinux/github/release_notes/deployment_platform/openstack_baremetal.py
new file mode 100644
index 00000000..ddef8fd7
--- /dev/null
+++ b/src/gardenlinux/github/release_notes/deployment_platform/openstack_baremetal.py
@@ -0,0 +1,9 @@
+from .openstack import OpenStack
+
+
+class OpenStackBareMetal(OpenStack):
+ def short_name(self):
+ return "openstackbaremetal"
+
+ def full_name(self):
+ return "OpenStack Baremetal"
diff --git a/src/gardenlinux/github/release_notes/helpers.py b/src/gardenlinux/github/release_notes/helpers.py
index 78a8f344..de8c6c9c 100644
--- a/src/gardenlinux/github/release_notes/helpers.py
+++ b/src/gardenlinux/github/release_notes/helpers.py
@@ -9,7 +9,6 @@
from gardenlinux.apt import DebsrcFile, GardenLinuxRepo
from gardenlinux.apt.package_repo_info import compare_repo
from gardenlinux.constants import (
- GARDENLINUX_GITHUB_RELEASE_BUCKET_NAME,
GL_DEB_REPO_BASE_URL,
IMAGE_VARIANTS,
REQUESTS_TIMEOUTS,
@@ -49,7 +48,7 @@ def compare_apt_repo_versions(previous_version, current_version):
return output
-def download_all_metadata_files(version, commitish):
+def download_all_metadata_files(version, commitish, s3_bucket_name):
repo = Repo(".")
commit = repo.commit(commitish)
flavors_data = commit.tree["flavors.yaml"].data_stream.read().decode("utf-8")
@@ -60,7 +59,7 @@ def download_all_metadata_files(version, commitish):
shutil.rmtree(local_dest_path)
local_dest_path.mkdir(mode=0o755, exist_ok=False)
- s3_artifacts = S3Artifacts(GARDENLINUX_GITHUB_RELEASE_BUCKET_NAME)
+ s3_artifacts = S3Artifacts(s3_bucket_name)
commitish_short = commitish[:8]
@@ -116,3 +115,17 @@ def download_metadata_file(
s3_artifacts.bucket.download_file(
release_object.key, artifacts_dir.joinpath(f"{cname}.s3_metadata.yaml")
)
+
+
+def get_variant_from_flavor(flavor_name):
+ """
+ Determine the variant from a flavor name by checking for variant suffixes.
+ Returns the variant key (e.g., 'legacy', 'usi', 'tpm2_trustedboot').
+ """
+ match flavor_name:
+ case name if "_usi" in name:
+ return "usi"
+ case name if "_tpm2_trustedboot" in name:
+ return "tpm2_trustedboot"
+ case _:
+ return "legacy"
diff --git a/src/gardenlinux/github/release_notes/sections.py b/src/gardenlinux/github/release_notes/sections.py
index fbfa21e2..40e2a02d 100644
--- a/src/gardenlinux/github/release_notes/sections.py
+++ b/src/gardenlinux/github/release_notes/sections.py
@@ -2,14 +2,38 @@
import textwrap
import requests
+import yaml
+from yaml import SafeLoader
from gardenlinux.constants import GLVD_BASE_URL, REQUESTS_TIMEOUTS
from gardenlinux.logger import LoggerSetup
-from .helpers import compare_apt_repo_versions
+from .deployment_platform.ali_cloud import AliCloud
+from .deployment_platform.amazon_web_services import AmazonWebServices
+from .deployment_platform.azure import Azure
+from .deployment_platform.google_cloud import GoogleCloud
+from .deployment_platform.openstack import OpenStack
+from .deployment_platform.openstack_baremetal import OpenStackBareMetal
+from .helpers import compare_apt_repo_versions, get_variant_from_flavor
LOGGER = LoggerSetup.get_logger("gardenlinux.github.release_notes", "INFO")
+IMAGE_IDS_VARIANT_ORDER = ["legacy", "usi", "tpm2_trustedboot"]
+IMAGE_IDS_VARIANT_TABLE_NAMES = {"legacy": "Default", "usi": "USI", "tpm2_trustedboot": "TPM2"}
+IMAGE_IDS_VARIANT_NAMES = {
+ "legacy": "Default",
+ "usi": "USI (Unified System Image)",
+ "tpm2_trustedboot": "TPM2 Trusted Boot",
+}
+PLATFORMS = {
+ "ali": AliCloud(),
+ "aws": AmazonWebServices(),
+ "gcp": GoogleCloud(),
+ "azure": Azure(),
+ "openstack": OpenStack(),
+ "openstackbaremetal": OpenStackBareMetal(),
+}
+
def release_notes_changes_section(gardenlinux_version):
"""
@@ -110,3 +134,162 @@ def release_notes_compare_package_versions_section(gardenlinux_version, package_
f"Unexpected version number format {gardenlinux_version}, expected format (major is int).(patch is int)"
)
return output
+
+
+def generate_table_format(grouped_data):
+ """
+ Generate the table format with collapsible region details
+ """
+ output = "| Variant | Platform | Architecture | Flavor | Regions & Image IDs | Download Links |\n"
+ output += "|---------|----------|--------------|--------|---------------------|----------------|\n"
+
+ for variant in IMAGE_IDS_VARIANT_ORDER:
+ if variant not in grouped_data:
+ continue
+
+ for platform in sorted(grouped_data[variant].keys()):
+ for arch in sorted(grouped_data[variant][platform].keys()):
+ for metadata in grouped_data[variant][platform][arch]:
+ data = PLATFORMS[platform].published_images_by_regions(metadata)
+ if data is None:
+ continue
+
+ details_content = PLATFORMS[platform].region_details(metadata)
+ summary_text = PLATFORMS[platform].summary_text(metadata)
+
+ download_link = PLATFORMS[platform].artifact_for_flavor(data['flavor'])
+
+ variant_display = IMAGE_IDS_VARIANT_TABLE_NAMES[variant]
+ output += (f"| {variant_display} "
+ f"| {PLATFORMS[platform].full_name()} "
+ f"| {arch} "
+ f"| `{data['flavor']}` "
+ f"| {summary_text}
{details_content} "
+ f"| Download
{download_link} "
+ "|\n")
+
+ return output
+
+
+def generate_detailed_format(grouped_data):
+ """
+ Generate the old detailed format with YAML
+ """
+ output = ""
+
+ for variant in IMAGE_IDS_VARIANT_ORDER:
+ if variant not in grouped_data:
+ continue
+
+ output += (
+ f"\nVariant - {IMAGE_IDS_VARIANT_NAMES[variant]}
\n\n"
+ )
+ output += f"### Variant - {IMAGE_IDS_VARIANT_NAMES[variant]}\n\n"
+
+ for platform in sorted(grouped_data[variant].keys()):
+ platform_long_name = PLATFORMS[platform].full_name()
+ platform_short_name = PLATFORMS[platform].short_name().upper()
+ output += f"\n{platform_short_name} - {platform_long_name}
\n\n"
+ output += f"#### {platform_short_name} - {platform_long_name}\n\n"
+
+ for arch in sorted(grouped_data[variant][platform].keys()):
+ output += f"\n{arch}
\n\n"
+ output += f"##### {arch}\n\n"
+ output += "```\n"
+
+ # Process all metadata for this variant/platform/architecture
+ for metadata in grouped_data[variant][platform][arch]:
+ data = PLATFORMS[platform].published_images_by_regions(metadata)
+ if data is None:
+ continue
+
+ output += f"- flavor: {data['flavor']}\n"
+
+ download_url = PLATFORMS[platform].artifact_for_flavor(data['flavor'], markdown_format=False)
+ output += f" download_url: {download_url}\n"
+
+ if "regions" in data:
+ output += " regions:\n"
+ for region in data["regions"]:
+ if "image_name" in region:
+ output += f" - region: {region['region']}\n"
+ output += f" image_id: {region['image_id']}\n"
+ output += f" image_name: {region['image_name']}\n"
+ else:
+ output += f" - region: {region['region']}\n"
+ output += f" image_id: {region['image_id']}\n"
+ elif "details" in data and platform != "gcp":
+ output += " details:\n"
+ for key, value in data["details"].items():
+ output += f" {key}: {value}\n"
+ elif platform == "gcp" and "details" in data:
+ # For GCP, move details up to same level as flavor
+ for key, value in data["details"].items():
+ output += f" {key}: {value}\n"
+ elif "gallery_images" in data or "marketplace_images" in data:
+ if data.get("gallery_images"):
+ output += " gallery_images:\n"
+ for img in data["gallery_images"]:
+ output += f" - hyper_v_generation: {img['hyper_v_generation']}\n"
+ output += f" azure_cloud: {img['azure_cloud']}\n"
+ output += f" image_id: {img['image_id']}\n"
+ if data.get("marketplace_images"):
+ output += " marketplace_images:\n"
+ for img in data["marketplace_images"]:
+ output += f" - hyper_v_generation: {img['hyper_v_generation']}\n"
+ output += f" urn: {img['urn']}\n"
+
+ output += "```\n\n"
+ output += " \n\n"
+
+ output += " \n\n"
+
+ output += " \n\n"
+
+ return output
+
+
+def release_notes_image_ids_section(metadata_files):
+ """
+ Groups metadata files by image variant, then platform, then architecture
+ """
+ # Group metadata by variant, platform, and architecture
+ grouped_data = {}
+
+ for metadata_file_path in metadata_files:
+ with open(metadata_file_path) as f:
+ metadata = yaml.load(f, Loader=SafeLoader)
+
+ published_image_metadata = metadata["published_image_metadata"]
+ # Skip if no publishing metadata found
+ if published_image_metadata is None:
+ continue
+
+ platform = metadata["platform"]
+ arch = metadata["architecture"]
+
+ # Determine variant from flavor name
+ flavor_name = metadata["s3_key"].split("/")[-1]
+ variant = get_variant_from_flavor(flavor_name)
+
+ if variant not in grouped_data:
+ grouped_data[variant] = {}
+ if platform not in grouped_data[variant]:
+ grouped_data[variant][platform] = {}
+ if arch not in grouped_data[variant][platform]:
+ grouped_data[variant][platform][arch] = []
+
+ grouped_data[variant][platform][arch].append(metadata)
+
+ output = "## Published Images\n\n"
+
+ output += "\n📊 Table View
\n\n"
+ output += generate_table_format(grouped_data)
+ output += "\n \n\n"
+
+ # Old format
+ output += "\n📝 Detailed View
\n\n"
+ output += generate_detailed_format(grouped_data)
+ output += "\n \n\n"
+
+ return output
diff --git a/test-data/release_notes/github_release_notes_1877.3.md b/test-data/release_notes/github_release_notes_1877.3.md
new file mode 100644
index 00000000..ac22830f
--- /dev/null
+++ b/test-data/release_notes/github_release_notes_1877.3.md
@@ -0,0 +1,1208 @@
+## Changes
+The following packages have been upgraded, to address the mentioned CVEs:
+- upgrade 'gnutls28' from `3.8.9-2` to `3.8.9-3gl0+bp1877`
+ - CVE-2025-32988
+ - CVE-2025-32989
+ - CVE-2025-32990
+ - CVE-2025-6395
+- upgrade 'sqlite3' from `3.46.1-4` to `3.46.1-7gl0+bp1877`
+ - CVE-2025-6965
+- upgrade 'dpkg' from `1.22.18` to `1.22.21gl0+bp1877`
+ - CVE-2025-6297
+- upgrade 'linux' from `6.12.40-2gl0` to `6.12.44-3gl0`
+ - CVE-2025-38676
+ - CVE-2025-38683
+ - CVE-2025-38684
+ - CVE-2025-38686
+ - CVE-2025-38687
+ - CVE-2025-38688
+ - CVE-2025-38691
+ - CVE-2025-38692
+ - CVE-2025-38695
+ - CVE-2025-38696
+ - CVE-2025-38699
+ - CVE-2025-38700
+ - CVE-2025-38701
+ - CVE-2025-38704
+ - CVE-2025-38708
+ - CVE-2025-38709
+ - CVE-2025-38710
+ - CVE-2025-38711
+ - CVE-2025-38717
+ - CVE-2025-38718
+ - CVE-2025-38721
+ - CVE-2025-38722
+ - CVE-2025-38724
+ - CVE-2025-38726
+ - CVE-2025-38727
+ - CVE-2025-38728
+ - CVE-2025-38730
+ - CVE-2025-38601
+ - CVE-2025-38604
+ - CVE-2025-38608
+ - CVE-2025-38609
+ - CVE-2025-38610
+ - CVE-2025-38614
+ - CVE-2022-50031
+ - CVE-2022-50083
+ - CVE-2023-53137
+ - CVE-2025-37744
+ - CVE-2025-38500
+ - CVE-2025-38501
+ - CVE-2025-38732
+ - CVE-2025-38734
+ - CVE-2025-38735
+ - CVE-2025-38737
+ - CVE-2025-39673
+ - CVE-2025-39676
+ - CVE-2025-39681
+ - CVE-2025-39682
+ - CVE-2025-39683
+ - CVE-2025-39684
+ - CVE-2025-39685
+ - CVE-2025-39686
+ - CVE-2025-39689
+ - CVE-2025-39691
+ - CVE-2025-39692
+ - CVE-2025-39695
+ - CVE-2025-39697
+ - CVE-2025-39698
+ - CVE-2025-39700
+ - CVE-2025-39701
+ - CVE-2025-39702
+ - CVE-2025-39703
+ - CVE-2025-39718
+ - CVE-2025-39720
+ - CVE-2025-39721
+ - CVE-2025-39722
+ - CVE-2025-39724
+ - CVE-2025-39727
+ - CVE-2025-39730
+ - CVE-2025-39732
+ - CVE-2025-21884
+ - CVE-2025-38335
+ - CVE-2025-38351
+ - CVE-2025-38553
+ - CVE-2025-38559
+ - CVE-2025-38560
+ - CVE-2025-38561
+ - CVE-2025-38562
+ - CVE-2025-38563
+ - CVE-2025-38565
+ - CVE-2025-38566
+ - CVE-2025-38568
+ - CVE-2025-38569
+ - CVE-2025-38571
+ - CVE-2025-38572
+ - CVE-2025-38574
+ - CVE-2025-38581
+ - CVE-2025-38582
+ - CVE-2025-38583
+ - CVE-2025-38586
+ - CVE-2025-38587
+ - CVE-2025-38588
+ - CVE-2025-38590
+ - CVE-2025-38593
+ - CVE-2025-38616
+ - CVE-2025-38617
+ - CVE-2025-38618
+ - CVE-2025-38622
+ - CVE-2025-38624
+ - CVE-2025-38625
+ - CVE-2025-38628
+ - CVE-2025-38631
+ - CVE-2025-38632
+ - CVE-2025-38634
+ - CVE-2025-38635
+ - CVE-2025-38639
+ - CVE-2025-38640
+ - CVE-2025-38644
+ - CVE-2025-38645
+ - CVE-2025-38646
+ - CVE-2025-38653
+ - CVE-2025-38659
+ - CVE-2025-38660
+ - CVE-2025-38666
+ - CVE-2025-38668
+ - CVE-2025-38670
+ - CVE-2025-38675
+ - CVE-2025-39736
+ - CVE-2025-39737
+ - CVE-2025-39738
+ - CVE-2025-39739
+ - CVE-2025-39742
+ - CVE-2025-39744
+ - CVE-2025-39746
+ - CVE-2025-39748
+ - CVE-2025-39749
+ - CVE-2025-39750
+ - CVE-2025-39752
+ - CVE-2025-39753
+ - CVE-2025-39754
+ - CVE-2025-39756
+ - CVE-2025-39758
+ - CVE-2025-39759
+ - CVE-2025-39761
+ - CVE-2025-39763
+ - CVE-2025-39766
+ - CVE-2025-39770
+ - CVE-2025-39773
+ - CVE-2025-39776
+ - CVE-2025-39779
+ - CVE-2025-39780
+ - CVE-2025-39782
+ - CVE-2025-39783
+ - CVE-2025-39787
+ - CVE-2025-39788
+ - CVE-2025-39790
+ - CVE-2025-39791
+- upgrade 'iputils' from `3:20240905-3` to `3:20250605-1gl0~bp1877`
+ - CVE-2025-47268
+
+## Software Component Versions
+```
+containerd 2.1.4-0gl1+bp1877
+curl 8.14.1-2gl0+bp1877
+libc-bin 2.41-7
+linux-image-amd64 6.12.44-3gl0
+openssh-server 1:10.0p1-5gl0
+openssl 3.5.0-1gl0
+runc 1.3.0-1gl0+bp1877
+systemd 257.5-2gl0
+```
+
+## Changes in Package Versions Compared to 1877.2
+| Package | 1877.2 | 1877.3 |
+|---------|--------------------|-------------------|
+|bpftool | 7.5.0+6.12.40-2gl0 | 7.5.0+6.12.44-3gl0 |
+|bpftool-dbgsym | 7.5.0+6.12.40-2gl0 | 7.5.0+6.12.44-3gl0 |
+|dpkg | 1.22.18 | 1.22.21gl0+bp1877 |
+|dpkg-dbgsym | - | 1.22.21gl0+bp1877 |
+|dpkg-dev | 1.22.18 | 1.22.21gl0+bp1877 |
+|dselect | - | 1.22.21gl0+bp1877 |
+|dselect-dbgsym | - | 1.22.21gl0+bp1877 |
+|gnutls-bin | - | 3.8.9-3gl0+bp1877 |
+|gnutls-bin-dbgsym | - | 3.8.9-3gl0+bp1877 |
+|gnutls-doc | - | 3.8.9-3gl0+bp1877 |
+|golang-github-opencontainers-runc-dev | 1.1.15+ds1-2gl1+bp1877 | 1.3.0-1gl0+bp1877 |
+|hyperv-daemons | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|hyperv-daemons-dbgsym | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|intel-sdsi | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|intel-sdsi-dbgsym | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|iputils-arping | 3:20240905-3 | 3:20250605-1gl0~bp1877 |
+|iputils-arping-dbgsym | - | 3:20250605-1gl0~bp1877 |
+|iputils-clockdiff | - | 3:20250605-1gl0~bp1877 |
+|iputils-clockdiff-dbgsym | - | 3:20250605-1gl0~bp1877 |
+|iputils-ping | 3:20240905-3 | 3:20250605-1gl0~bp1877 |
+|iputils-ping-dbgsym | - | 3:20250605-1gl0~bp1877 |
+|iputils-tracepath | 3:20240905-3 | 3:20250605-1gl0~bp1877 |
+|iputils-tracepath-dbgsym | - | 3:20250605-1gl0~bp1877 |
+|lemon | - | 3.46.1-7gl0+bp1877 |
+|lemon-dbgsym | - | 3.46.1-7gl0+bp1877 |
+|libcpupower-dev | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|libcpupower1 | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|libcpupower1-dbgsym | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|libdpkg-dev | - | 1.22.21gl0+bp1877 |
+|libdpkg-perl | 1.22.18 | 1.22.21gl0+bp1877 |
+|libgnutls-dane0t64 | 3.8.9-2 | 3.8.9-3gl0+bp1877 |
+|libgnutls-dane0t64-dbgsym | - | 3.8.9-3gl0+bp1877 |
+|libgnutls-openssl27t64 | 3.8.9-2 | 3.8.9-3gl0+bp1877 |
+|libgnutls-openssl27t64-dbgsym | - | 3.8.9-3gl0+bp1877 |
+|libgnutls28-dev | 3.8.9-2 | 3.8.9-3gl0+bp1877 |
+|libgnutls30t64 | 3.8.9-2 | 3.8.9-3gl0+bp1877 |
+|libgnutls30t64-dbgsym | - | 3.8.9-3gl0+bp1877 |
+|libmd-dev | - | 1.1.0-2+b1 |
+|libsqlite3-0 | 3.46.1-4 | 3.46.1-7gl0+bp1877 |
+|libsqlite3-0-dbgsym | - | 3.46.1-7gl0+bp1877 |
+|libsqlite3-dev | - | 3.46.1-7gl0+bp1877 |
+|libsqlite3-ext-csv | - | 3.46.1-7gl0+bp1877 |
+|libsqlite3-ext-csv-dbgsym | - | 3.46.1-7gl0+bp1877 |
+|libsqlite3-ext-icu | - | 3.46.1-7gl0+bp1877 |
+|libsqlite3-ext-icu-dbgsym | - | 3.46.1-7gl0+bp1877 |
+|libsqlite3-tcl | - | 3.46.1-7gl0+bp1877 |
+|libsqlite3-tcl-dbgsym | - | 3.46.1-7gl0+bp1877 |
+|linux-base | 4.11 | 4.12gl0+bp1877 |
+|linux-bpf-dev | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-config-6.12 | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-cpupower | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-cpupower-dbgsym | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-headers-6.12.40-amd64 | 6.12.40-2gl0 | - |
+|linux-headers-6.12.40-cloud-amd64 | 6.12.40-2gl0 | - |
+|linux-headers-6.12.40-common | 6.12.40-2gl0 | - |
+|linux-headers-6.12.40-firecracker-amd64 | 6.12.40-2gl0 | - |
+|linux-headers-6.12.44-amd64 | - | 6.12.44-3gl0 |
+|linux-headers-6.12.44-cloud-amd64 | - | 6.12.44-3gl0 |
+|linux-headers-6.12.44-common | - | 6.12.44-3gl0 |
+|linux-headers-6.12.44-firecracker-amd64 | - | 6.12.44-3gl0 |
+|linux-headers-amd64 | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-headers-cloud-amd64 | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-headers-firecracker-amd64 | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-image-6.12.40-amd64 | 6.12.40-2gl0 | - |
+|linux-image-6.12.40-amd64-dbg | 6.12.40-2gl0 | - |
+|linux-image-6.12.40-cloud-amd64 | 6.12.40-2gl0 | - |
+|linux-image-6.12.40-cloud-amd64-dbg | 6.12.40-2gl0 | - |
+|linux-image-6.12.40-firecracker-amd64 | 6.12.40-2gl0 | - |
+|linux-image-6.12.40-firecracker-amd64-dbg | 6.12.40-2gl0 | - |
+|linux-image-6.12.44-amd64 | - | 6.12.44-3gl0 |
+|linux-image-6.12.44-amd64-dbg | - | 6.12.44-3gl0 |
+|linux-image-6.12.44-cloud-amd64 | - | 6.12.44-3gl0 |
+|linux-image-6.12.44-cloud-amd64-dbg | - | 6.12.44-3gl0 |
+|linux-image-6.12.44-firecracker-amd64 | - | 6.12.44-3gl0 |
+|linux-image-6.12.44-firecracker-amd64-dbg | - | 6.12.44-3gl0 |
+|linux-image-amd64 | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-image-amd64-dbg | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-image-cloud-amd64 | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-image-cloud-amd64-dbg | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-image-firecracker-amd64 | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-image-firecracker-amd64-dbg | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-kbuild-6.12.40 | 6.12.40-2gl0 | - |
+|linux-kbuild-6.12.40-dbgsym | 6.12.40-2gl0 | - |
+|linux-kbuild-6.12.44 | - | 6.12.44-3gl0 |
+|linux-kbuild-6.12.44-dbgsym | - | 6.12.44-3gl0 |
+|linux-libc-dev | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-source | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-source-6.12 | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|linux-support-6.12.40 | 6.12.40-2gl0 | - |
+|linux-support-6.12.44 | - | 6.12.44-3gl0 |
+|linux-sysctl-defaults | 4.11 | 4.12gl0+bp1877 |
+|rtla | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|rtla-dbgsym | 6.12.40-2gl0 | 6.12.44-3gl0 |
+|runc | 1.1.15+ds1-2gl1+bp1877 | 1.3.0-1gl0+bp1877 |
+|runc-dbgsym | 1.1.15+ds1-2gl1+bp1877 | 1.3.0-1gl0+bp1877 |
+|sqlite3 | - | 3.46.1-7gl0+bp1877 |
+|sqlite3-dbgsym | - | 3.46.1-7gl0+bp1877 |
+|sqlite3-doc | - | 3.46.1-7gl0+bp1877 |
+|sqlite3-tools | - | 3.46.1-7gl0+bp1877 |
+|sqlite3-tools-dbgsym | - | 3.46.1-7gl0+bp1877 |
+|usbip | 2.0+6.12.40-2gl0 | 2.0+6.12.44-3gl0 |
+|usbip-dbgsym | 2.0+6.12.40-2gl0 | 2.0+6.12.44-3gl0 |
+## Published Images
+
+
+📊 Table View
+
+| Variant | Platform | Architecture | Flavor | Regions & Image IDs | Download Links |
+|---------|----------|--------------|--------|---------------------|----------------|
+| Default | Alibaba Cloud | amd64 | `ali-gardener_prod-amd64-1877.3-75df9f40` | 28 regions
**cn-qingdao:** m-m5efm8l2bltkbloui235
**cn-beijing:** m-2zee5ebi20ltzy5et7in
**cn-zhangjiakou:** m-8vbddy2wfex9nb29afcy
**cn-huhehaote:** m-hp3bx14og6cw9thujw1d
**cn-wulanchabu:** m-0jlh1iq2f3bryb5okjdk
**cn-hangzhou:** m-bp13aseh5a2wn0s5rdz6
**cn-shanghai:** m-uf61jbe9n8a9291h4u21
**cn-nanjing:** m-gc77bfbctuzphl2bpk0o
**cn-shenzhen:** m-wz9gio8m5ey0foj0g4xx
**cn-heyuan:** m-f8zdn54v0blnsafxb1t5
**cn-guangzhou:** m-7xv0q5feffsxxyttxdy9
**cn-fuzhou:** m-gw07bfbctuzphl2bpk0p
**cn-wuhan-lr:** m-n4a1u2avlb9pq0u5bdms
**cn-chengdu:** m-2vc5saul2saa2z57h216
**cn-hongkong:** m-j6c4zk6mwb2673iq5wrz
**ap-northeast-1:** m-6weibwo3vrt7ar7nelc9
**ap-northeast-2:** m-mj73oldn06th2vy0ymhv
**ap-southeast-1:** m-t4ngrf81d0fohwq493pw
**ap-southeast-3:** m-8psd64gzc1eru0qld7cc
**ap-southeast-6:** m-5tsdd6k3z1vvdyyio7zn
**ap-southeast-5:** m-k1aj4usnhqcssa2fpy0c
**ap-southeast-7:** m-0jo6uwekvn0gnwhwnq3s
**us-east-1:** m-0xi8netpfc2fdwfstz3c
**us-west-1:** m-rj9gwpx907qv6p6x8w45
**na-south-1:** m-4hfi34x77oaeznwuulq6
**eu-west-1:** m-d7o2ny5xc0m3kacxjbem
**me-east-1:** m-eb39mgohcec6gaynet9l
**eu-central-1:** m-gw86dlqmpaugljiykx91
| Download
[ali-gardener_prod-amd64-1877.3-75df9f40.qcow2](https://gardenlinux-github-releases.s3.amazonaws.com/objects/ali-gardener_prod-amd64-1877.3-75df9f40/ali-gardener_prod-amd64-1877.3-75df9f40.qcow2) |
+| Default | Amazon Web Services | amd64 | `aws-gardener_prod-amd64-1877.3-75df9f40` | 21 regions
**ap-south-1:** ami-00c6adf1de4dd746a
**eu-north-1:** ami-07ad3940828172b90
**eu-west-3:** ami-071f4f48679d86638
**eu-south-1:** ami-0b10af1a19df9f038
**eu-west-2:** ami-0e2b7fe07573b71cd
**eu-west-1:** ami-01c547eb85d61da61
**ap-northeast-3:** ami-0dad917ede94cd3c7
**ap-northeast-2:** ami-0ecbeaf40d4643016
**ap-northeast-1:** ami-0b7225242babad11c
**me-central-1:** ami-0d298e552bf051bc7
**ca-central-1:** ami-0af8422162c8f056e
**sa-east-1:** ami-05d885175e942fc80
**ap-southeast-1:** ami-0a9802680adf7e430
**ap-southeast-2:** ami-07ed6f1e62fbd6d66
**us-east-1:** ami-055a0ce37433fcdee
**us-east-2:** ami-07e9069631850755a
**us-west-1:** ami-08c18abab76066f71
**us-west-2:** ami-00eca0475f90a1f8c
**eu-central-1:** ami-0198822fa7d539f8c
**cn-north-1:** ami-093c993faaca89b4d
**cn-northwest-1:** ami-05e1cc73d997d67b7
| Download
[aws-gardener_prod-amd64-1877.3-75df9f40.raw](https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod-amd64-1877.3-75df9f40/aws-gardener_prod-amd64-1877.3-75df9f40.raw) |
+| Default | Amazon Web Services | arm64 | `aws-gardener_prod-arm64-1877.3-75df9f40` | 21 regions
**ap-south-1:** ami-00cd00c30d19609a2
**eu-north-1:** ami-0a969a1a1c4726831
**eu-west-3:** ami-0b579f6c70b7c4fe6
**eu-south-1:** ami-06c38608e2e7223d3
**eu-west-2:** ami-005c7058c3923b2eb
**eu-west-1:** ami-0395c3cd38a0a5cd6
**ap-northeast-3:** ami-0db3697cea87a5104
**ap-northeast-2:** ami-084444f62c7c580fb
**ap-northeast-1:** ami-017237dd9abeae8dd
**me-central-1:** ami-08efdb3153d0cd184
**ca-central-1:** ami-05b535ae9418fee3d
**sa-east-1:** ami-036ded98bad763e3c
**ap-southeast-1:** ami-03fcefb2fd18519d0
**ap-southeast-2:** ami-040f9d0caa5d79e84
**us-east-1:** ami-04110d6a1970e748c
**us-east-2:** ami-0c8dc664a21d5ca08
**us-west-1:** ami-0ddc462d075935666
**us-west-2:** ami-0e67c2546e54fed06
**eu-central-1:** ami-06a2a1e7da947b192
**cn-north-1:** ami-0b3755339496a3158
**cn-northwest-1:** ami-06fc0f74b500d2d82
| Download
[aws-gardener_prod-arm64-1877.3-75df9f40.raw](https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod-arm64-1877.3-75df9f40/aws-gardener_prod-arm64-1877.3-75df9f40.raw) |
+| Default | Microsoft Azure | amd64 | `azure-gardener_prod-amd64-1877.3-75df9f40` | 4 gallery + 0 marketplace images
**Gallery Images:**
• V1 (public): /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme/Versions/1877.3.0
• V2 (public): /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-gen2/Versions/1877.3.0
• V1 (china): /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme/Versions/1877.3.0
• V2 (china): /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-gen2/Versions/1877.3.0
| Download
[azure-gardener_prod-amd64-1877.3-75df9f40.vhd](https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod-amd64-1877.3-75df9f40/azure-gardener_prod-amd64-1877.3-75df9f40.vhd) |
+| Default | Microsoft Azure | arm64 | `azure-gardener_prod-arm64-1877.3-75df9f40` | 2 gallery + 0 marketplace images
**Gallery Images:**
• V2 (public): /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-arm64-gen2/Versions/1877.3.0
• V2 (china): /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-arm64-gen2/Versions/1877.3.0
| Download
[azure-gardener_prod-arm64-1877.3-75df9f40.vhd](https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod-arm64-1877.3-75df9f40/azure-gardener_prod-arm64-1877.3-75df9f40.vhd) |
+| Default | Google Cloud Platform | amd64 | `gcp-gardener_prod-amd64-1877.3-75df9f40` | Global availability
**Image Name:** gardenlinux-gcp-ff804026cbe7b5f2d6f729e4-1877-3-75df9f40
**Project:** sap-se-gcp-gardenlinux
**Availability:** Global (all regions)
| Download
[gcp-gardener_prod-amd64-1877.3-75df9f40.gcpimage.tar.gz](https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod-amd64-1877.3-75df9f40/gcp-gardener_prod-amd64-1877.3-75df9f40.gcpimage.tar.gz) |
+| Default | Google Cloud Platform | arm64 | `gcp-gardener_prod-arm64-1877.3-75df9f40` | Global availability
**Image Name:** gardenlinux-gcp-c8504d3c3e67cf2fc7c3408c-1877-3-75df9f40
**Project:** sap-se-gcp-gardenlinux
**Availability:** Global (all regions)
| Download
[gcp-gardener_prod-arm64-1877.3-75df9f40.gcpimage.tar.gz](https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod-arm64-1877.3-75df9f40/gcp-gardener_prod-arm64-1877.3-75df9f40.gcpimage.tar.gz) |
+| Default | OpenStack | amd64 | `openstack-gardener_prod-amd64-1877.3-75df9f40` | 15 regions
**eu-de-1:** ed3b4c3d-941f-456a-a551-bd52b8397443 (gardenlinux-1877.3)
**eu-de-2:** 5ea6fb4f-20fc-43b8-8ffe-af8da6d61d6a (gardenlinux-1877.3)
**eu-nl-1:** ac9b5d43-ff53-494d-8adf-2249c324a9db (gardenlinux-1877.3)
**la-br-1:** 404f22a3-9822-4696-a60f-8566eedb93e3 (gardenlinux-1877.3)
**na-ca-1:** b69b72f3-574a-4f76-b4eb-ac9185ea2681 (gardenlinux-1877.3)
**na-us-1:** 40e99366-f13b-402a-a264-e7e4773ab8ba (gardenlinux-1877.3)
**na-us-2:** c50200c6-95fd-4a97-bef2-90b2d6afa3d3 (gardenlinux-1877.3)
**na-us-3:** d5b1d8c0-3420-4a82-931d-0506a6b8f166 (gardenlinux-1877.3)
**ap-ae-1:** 81c26cb7-c515-4610-949a-92c275640325 (gardenlinux-1877.3)
**ap-au-1:** 2d6e3edd-5596-41e6-a640-4b1b8e7310e7 (gardenlinux-1877.3)
**ap-cn-1:** 3564b5ef-9b37-4926-bb23-5655cf90de69 (gardenlinux-1877.3)
**ap-jp-1:** 2ff61187-f004-4317-bd4c-a17d93b475bc (gardenlinux-1877.3)
**ap-jp-2:** 2bc58951-9bf7-445b-a6e4-f634c7522d9b (gardenlinux-1877.3)
**ap-sa-1:** e4a4aa92-335a-454b-83bb-643cb918cf6a (gardenlinux-1877.3)
**ap-sa-2:** d3ac5df8-ce38-4a23-b611-dfef6b7a0db9 (gardenlinux-1877.3)
| Download
[openstack-gardener_prod-amd64-1877.3-75df9f40.raw](https://gardenlinux-github-releases.s3.amazonaws.com/objects/openstack-gardener_prod-amd64-1877.3-75df9f40/openstack-gardener_prod-amd64-1877.3-75df9f40.raw) |
+| Default | OpenStack Baremetal | amd64 | `openstackbaremetal-gardener_prod-amd64-1877.3-75df9f40` | 15 regions
**eu-de-1:** 01c3ab26-5b93-4655-a743-1fef60f64b53 (gardenlinux-1877.3-baremetal)
**eu-de-2:** 7488d07b-65f1-4b85-8df8-13244b895d71 (gardenlinux-1877.3-baremetal)
**eu-nl-1:** 1926a818-55d5-49e1-9af8-eab8450705eb (gardenlinux-1877.3-baremetal)
**la-br-1:** 6fda686d-d2f7-4018-ab4c-1250e898197a (gardenlinux-1877.3-baremetal)
**na-ca-1:** a032ecc1-3bee-4d65-9f68-3e3f99e2c291 (gardenlinux-1877.3-baremetal)
**na-us-1:** d663d5f1-1b44-41af-9039-e36cc64a5920 (gardenlinux-1877.3-baremetal)
**na-us-2:** 818bbfdd-4ee4-49ee-8294-dc3a3c66971f (gardenlinux-1877.3-baremetal)
**na-us-3:** b154b48b-050f-48d6-997f-b6c2756079a6 (gardenlinux-1877.3-baremetal)
**ap-ae-1:** 5992e19c-2ca2-47be-ae55-50e2fd26b662 (gardenlinux-1877.3-baremetal)
**ap-au-1:** 986403a6-e254-4689-8f81-e32dc33c9b64 (gardenlinux-1877.3-baremetal)
**ap-cn-1:** 0c794890-a690-4881-b0c2-39a939b020e2 (gardenlinux-1877.3-baremetal)
**ap-jp-1:** f5be2c30-8e8e-4713-9e34-eb0a18922af5 (gardenlinux-1877.3-baremetal)
**ap-jp-2:** 8edb20a7-f0f2-47f2-9112-faa2569c3893 (gardenlinux-1877.3-baremetal)
**ap-sa-1:** dc12514b-b0a8-40dd-b756-a4d27421029c (gardenlinux-1877.3-baremetal)
**ap-sa-2:** 617f5ae7-91fd-4149-b783-7a3701a5f420 (gardenlinux-1877.3-baremetal)
| Download
[openstackbaremetal-gardener_prod-amd64-1877.3-75df9f40.raw](https://gardenlinux-github-releases.s3.amazonaws.com/objects/openstackbaremetal-gardener_prod-amd64-1877.3-75df9f40/openstackbaremetal-gardener_prod-amd64-1877.3-75df9f40.raw) |
+| USI | Amazon Web Services | amd64 | `aws-gardener_prod_usi-amd64-1877.3-75df9f40` | 21 regions
**ap-south-1:** ami-0e904b4c264dbe923
**eu-north-1:** ami-016f506d46abb5c06
**eu-west-3:** ami-052404d8a97e9ec57
**eu-south-1:** ami-002193c185fb2d939
**eu-west-2:** ami-0225bc62c7d291107
**eu-west-1:** ami-0f737c34ae9ccfe10
**ap-northeast-3:** ami-0ecf19a78a7259c02
**ap-northeast-2:** ami-029152bf0a15cf306
**ap-northeast-1:** ami-0bf003b58ed636124
**me-central-1:** ami-0546ca7d7c2e00077
**ca-central-1:** ami-0a0081cbd4b479d33
**sa-east-1:** ami-086d3b7282338bcd1
**ap-southeast-1:** ami-04973efd023e5883f
**ap-southeast-2:** ami-00389783d0b7ef01b
**us-east-1:** ami-0f5c28bbc45608e9b
**us-east-2:** ami-08c7494a2a00b74e5
**us-west-1:** ami-0e2290963849dba62
**us-west-2:** ami-0fb86d519a38da40f
**eu-central-1:** ami-0c6394e4fdbefe8c0
**cn-north-1:** ami-0b4c979b27a0a7714
**cn-northwest-1:** ami-0cab977e76e274599
| Download
[aws-gardener_prod_usi-amd64-1877.3-75df9f40.raw](https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod_usi-amd64-1877.3-75df9f40/aws-gardener_prod_usi-amd64-1877.3-75df9f40.raw) |
+| USI | Amazon Web Services | arm64 | `aws-gardener_prod_usi-arm64-1877.3-75df9f40` | 21 regions
**ap-south-1:** ami-029f2b705d69f9d50
**eu-north-1:** ami-0b1a9e403ea563206
**eu-west-3:** ami-067465814788be84a
**eu-south-1:** ami-092d7cf152ef6df29
**eu-west-2:** ami-0441298c8ae55a62b
**eu-west-1:** ami-012e58abe02f904c1
**ap-northeast-3:** ami-08c18c5f1aa7e9fba
**ap-northeast-2:** ami-0277ca365657bd9c2
**ap-northeast-1:** ami-006a3f35202f6edd4
**me-central-1:** ami-0aa9e8af8c777e400
**ca-central-1:** ami-0f8225fd2d6009961
**sa-east-1:** ami-0e945c537aef91eff
**ap-southeast-1:** ami-0f30b29a4428f7cea
**ap-southeast-2:** ami-0129e3a207e3e6f9d
**us-east-1:** ami-0cc9f69e3a7594e7b
**us-east-2:** ami-046243dad95d56f2a
**us-west-1:** ami-03ae03953c81a43c1
**us-west-2:** ami-0cbe1dbfeda64dc9b
**eu-central-1:** ami-0dd2780bfcddbda6b
**cn-north-1:** ami-0d993477d25affb3c
**cn-northwest-1:** ami-0a7fe5959bb23fab8
| Download
[aws-gardener_prod_usi-arm64-1877.3-75df9f40.raw](https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod_usi-arm64-1877.3-75df9f40/aws-gardener_prod_usi-arm64-1877.3-75df9f40.raw) |
+| USI | Microsoft Azure | amd64 | `azure-gardener_prod_usi-amd64-1877.3-75df9f40` | 2 gallery + 0 marketplace images
**Gallery Images:**
• V2 (public): /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-gen2-usi/Versions/1877.3.0
• V2 (china): /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-gen2-usi/Versions/1877.3.0
| Download
[azure-gardener_prod_usi-amd64-1877.3-75df9f40.vhd](https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod_usi-amd64-1877.3-75df9f40/azure-gardener_prod_usi-amd64-1877.3-75df9f40.vhd) |
+| USI | Microsoft Azure | arm64 | `azure-gardener_prod_usi-arm64-1877.3-75df9f40` | 2 gallery + 0 marketplace images
**Gallery Images:**
• V2 (public): /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-arm64-gen2-usi/Versions/1877.3.0
• V2 (china): /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-arm64-gen2-usi/Versions/1877.3.0
| Download
[azure-gardener_prod_usi-arm64-1877.3-75df9f40.vhd](https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod_usi-arm64-1877.3-75df9f40/azure-gardener_prod_usi-arm64-1877.3-75df9f40.vhd) |
+| USI | Google Cloud Platform | amd64 | `gcp-gardener_prod_usi-amd64-1877.3-75df9f40` | Global availability
**Image Name:** gardenlinux-gcp-51db8a4be084c3b640095f4b-1877-3-75df9f40
**Project:** sap-se-gcp-gardenlinux
**Availability:** Global (all regions)
| Download
[gcp-gardener_prod_usi-amd64-1877.3-75df9f40.gcpimage.tar.gz](https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod_usi-amd64-1877.3-75df9f40/gcp-gardener_prod_usi-amd64-1877.3-75df9f40.gcpimage.tar.gz) |
+| USI | Google Cloud Platform | arm64 | `gcp-gardener_prod_usi-arm64-1877.3-75df9f40` | Global availability
**Image Name:** gardenlinux-gcp-c00f1e20ffeed4d8b80a76b9-1877-3-75df9f40
**Project:** sap-se-gcp-gardenlinux
**Availability:** Global (all regions)
| Download
[gcp-gardener_prod_usi-arm64-1877.3-75df9f40.gcpimage.tar.gz](https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod_usi-arm64-1877.3-75df9f40/gcp-gardener_prod_usi-arm64-1877.3-75df9f40.gcpimage.tar.gz) |
+| USI | OpenStack | amd64 | `openstack-gardener_prod_usi-amd64-1877.3-75df9f40` | 15 regions
**eu-de-1:** 15fc38b3-1cee-4c0a-829a-ef1f7faa1920 (gardenlinux-1877.3)
**eu-de-2:** c4e8e8e5-8c92-4c73-b21b-333087e7b092 (gardenlinux-1877.3)
**eu-nl-1:** e6f9e054-0613-4204-98c7-84676680418a (gardenlinux-1877.3)
**la-br-1:** 04416634-2eaf-44a1-a653-b1ae36bf0e0e (gardenlinux-1877.3)
**na-ca-1:** b548d8fd-0e6b-4cb6-9cd1-68b258df00cc (gardenlinux-1877.3)
**na-us-1:** 0a97e9af-a1f3-4ae4-bf44-98c432aa436c (gardenlinux-1877.3)
**na-us-2:** b1705d73-3f67-427c-8ade-5e245a857338 (gardenlinux-1877.3)
**na-us-3:** da3234f1-307c-431e-80bb-9e51dd75673d (gardenlinux-1877.3)
**ap-ae-1:** 16f24b39-b9ba-4756-8dcd-82473182f1e4 (gardenlinux-1877.3)
**ap-au-1:** 49de0ff1-2c7e-439d-a065-07c837fe48a8 (gardenlinux-1877.3)
**ap-cn-1:** 23a94a40-1e9a-4f4b-b2b6-4c167493fbb0 (gardenlinux-1877.3)
**ap-jp-1:** 1558417d-14bb-413e-9194-88b2bc5f18aa (gardenlinux-1877.3)
**ap-jp-2:** 8d39ad55-2f09-490e-8fa7-0bdf5c854ed7 (gardenlinux-1877.3)
**ap-sa-1:** 62be0147-062a-4375-b142-278a811e9754 (gardenlinux-1877.3)
**ap-sa-2:** 510d1ff1-4fc6-49ec-ad2f-a0985217dd14 (gardenlinux-1877.3)
| Download
[openstack-gardener_prod_usi-amd64-1877.3-75df9f40.raw](https://gardenlinux-github-releases.s3.amazonaws.com/objects/openstack-gardener_prod_usi-amd64-1877.3-75df9f40/openstack-gardener_prod_usi-amd64-1877.3-75df9f40.raw) |
+| TPM2 | Amazon Web Services | amd64 | `aws-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40` | 19 regions
**ap-south-1:** ami-0052561d7bccfe6b7
**eu-north-1:** ami-06623180935c63669
**eu-west-3:** ami-026632e35fe37f9f4
**eu-south-1:** ami-0b60116fac38c2556
**eu-west-2:** ami-0ecd844859adf35c5
**eu-west-1:** ami-0313333df0acd7eb0
**ap-northeast-3:** ami-04e53edbd6ce18fc6
**ap-northeast-2:** ami-0ae03e19777874cef
**ap-northeast-1:** ami-079e68ce96cc03e78
**me-central-1:** ami-01e368d192a479934
**ca-central-1:** ami-02cabce931cafcf1f
**sa-east-1:** ami-075d5fa3b98620e15
**ap-southeast-1:** ami-0a26b478c0a210190
**ap-southeast-2:** ami-0f226413240aec4aa
**us-east-1:** ami-07dea60f619226e1b
**us-east-2:** ami-0e8e852987ee840c3
**us-west-1:** ami-0d9314ee5a439ab29
**us-west-2:** ami-04dc4614abf1649ab
**eu-central-1:** ami-005f7dab618420a91
| Download
[aws-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40.raw](https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40/aws-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40.raw) |
+| TPM2 | Amazon Web Services | arm64 | `aws-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40` | 19 regions
**ap-south-1:** ami-035b751a08f528e47
**eu-north-1:** ami-04c60d1feb092d00f
**eu-west-3:** ami-0443172a73fe4fb27
**eu-south-1:** ami-02f8a867d02227542
**eu-west-2:** ami-06a900dd59c84620d
**eu-west-1:** ami-056a9d8447a991bff
**ap-northeast-3:** ami-0769caf50f7b7fb6f
**ap-northeast-2:** ami-06ad8c60e1093b543
**ap-northeast-1:** ami-0b8313d62dfeec78b
**me-central-1:** ami-0fa388dcaca7b3baf
**ca-central-1:** ami-02e7a07f60a5e0411
**sa-east-1:** ami-000ca39b22f2a695c
**ap-southeast-1:** ami-04f521cff21b58f50
**ap-southeast-2:** ami-02f5afcce42276457
**us-east-1:** ami-0a25256d5aaf8fdd7
**us-east-2:** ami-07bcfed39a329b612
**us-west-1:** ami-0b2e93f36b5a8bff2
**us-west-2:** ami-063f4f34958917b5c
**eu-central-1:** ami-0b15b442dd5e90d50
| Download
[aws-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40.raw](https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40/aws-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40.raw) |
+| TPM2 | Microsoft Azure | amd64 | `azure-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40` | 2 gallery + 0 marketplace images
**Gallery Images:**
• V2 (public): /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-gen2-usi-secureboot/Versions/1877.3.0
• V2 (china): /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-gen2-usi-secureboot/Versions/1877.3.0
| Download
[azure-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40.vhd](https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40/azure-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40.vhd) |
+| TPM2 | Microsoft Azure | arm64 | `azure-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40` | 2 gallery + 0 marketplace images
**Gallery Images:**
• V2 (public): /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-arm64-gen2-usi-secureboot/Versions/1877.3.0
• V2 (china): /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-arm64-gen2-usi-secureboot/Versions/1877.3.0
| Download
[azure-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40.vhd](https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40/azure-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40.vhd) |
+| TPM2 | Google Cloud Platform | amd64 | `gcp-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40` | Global availability
**Image Name:** gardenlinux-gcp-b4636aa3660a8d166531aab9-1877-3-75df9f40
**Project:** sap-se-gcp-gardenlinux
**Availability:** Global (all regions)
| Download
[gcp-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40.gcpimage.tar.gz](https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40/gcp-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40.gcpimage.tar.gz) |
+| TPM2 | Google Cloud Platform | arm64 | `gcp-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40` | Global availability
**Image Name:** gardenlinux-gcp-63fd9d7dd465420fd4e499ab-1877-3-75df9f40
**Project:** sap-se-gcp-gardenlinux
**Availability:** Global (all regions)
| Download
[gcp-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40.gcpimage.tar.gz](https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40/gcp-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40.gcpimage.tar.gz) |
+
+
+
+
+📝 Detailed View
+
+
+Variant - Default
+
+### Variant - Default
+
+
+ALI - Alibaba Cloud
+
+#### ALI - Alibaba Cloud
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: ali-gardener_prod-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/ali-gardener_prod-amd64-1877.3-75df9f40/ali-gardener_prod-amd64-1877.3-75df9f40.qcow2
+ regions:
+ - region: cn-qingdao
+ image_id: m-m5efm8l2bltkbloui235
+ - region: cn-beijing
+ image_id: m-2zee5ebi20ltzy5et7in
+ - region: cn-zhangjiakou
+ image_id: m-8vbddy2wfex9nb29afcy
+ - region: cn-huhehaote
+ image_id: m-hp3bx14og6cw9thujw1d
+ - region: cn-wulanchabu
+ image_id: m-0jlh1iq2f3bryb5okjdk
+ - region: cn-hangzhou
+ image_id: m-bp13aseh5a2wn0s5rdz6
+ - region: cn-shanghai
+ image_id: m-uf61jbe9n8a9291h4u21
+ - region: cn-nanjing
+ image_id: m-gc77bfbctuzphl2bpk0o
+ - region: cn-shenzhen
+ image_id: m-wz9gio8m5ey0foj0g4xx
+ - region: cn-heyuan
+ image_id: m-f8zdn54v0blnsafxb1t5
+ - region: cn-guangzhou
+ image_id: m-7xv0q5feffsxxyttxdy9
+ - region: cn-fuzhou
+ image_id: m-gw07bfbctuzphl2bpk0p
+ - region: cn-wuhan-lr
+ image_id: m-n4a1u2avlb9pq0u5bdms
+ - region: cn-chengdu
+ image_id: m-2vc5saul2saa2z57h216
+ - region: cn-hongkong
+ image_id: m-j6c4zk6mwb2673iq5wrz
+ - region: ap-northeast-1
+ image_id: m-6weibwo3vrt7ar7nelc9
+ - region: ap-northeast-2
+ image_id: m-mj73oldn06th2vy0ymhv
+ - region: ap-southeast-1
+ image_id: m-t4ngrf81d0fohwq493pw
+ - region: ap-southeast-3
+ image_id: m-8psd64gzc1eru0qld7cc
+ - region: ap-southeast-6
+ image_id: m-5tsdd6k3z1vvdyyio7zn
+ - region: ap-southeast-5
+ image_id: m-k1aj4usnhqcssa2fpy0c
+ - region: ap-southeast-7
+ image_id: m-0jo6uwekvn0gnwhwnq3s
+ - region: us-east-1
+ image_id: m-0xi8netpfc2fdwfstz3c
+ - region: us-west-1
+ image_id: m-rj9gwpx907qv6p6x8w45
+ - region: na-south-1
+ image_id: m-4hfi34x77oaeznwuulq6
+ - region: eu-west-1
+ image_id: m-d7o2ny5xc0m3kacxjbem
+ - region: me-east-1
+ image_id: m-eb39mgohcec6gaynet9l
+ - region: eu-central-1
+ image_id: m-gw86dlqmpaugljiykx91
+```
+
+
+
+
+
+
+AWS - Amazon Web Services
+
+#### AWS - Amazon Web Services
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: aws-gardener_prod-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod-amd64-1877.3-75df9f40/aws-gardener_prod-amd64-1877.3-75df9f40.raw
+ regions:
+ - region: ap-south-1
+ image_id: ami-00c6adf1de4dd746a
+ - region: eu-north-1
+ image_id: ami-07ad3940828172b90
+ - region: eu-west-3
+ image_id: ami-071f4f48679d86638
+ - region: eu-south-1
+ image_id: ami-0b10af1a19df9f038
+ - region: eu-west-2
+ image_id: ami-0e2b7fe07573b71cd
+ - region: eu-west-1
+ image_id: ami-01c547eb85d61da61
+ - region: ap-northeast-3
+ image_id: ami-0dad917ede94cd3c7
+ - region: ap-northeast-2
+ image_id: ami-0ecbeaf40d4643016
+ - region: ap-northeast-1
+ image_id: ami-0b7225242babad11c
+ - region: me-central-1
+ image_id: ami-0d298e552bf051bc7
+ - region: ca-central-1
+ image_id: ami-0af8422162c8f056e
+ - region: sa-east-1
+ image_id: ami-05d885175e942fc80
+ - region: ap-southeast-1
+ image_id: ami-0a9802680adf7e430
+ - region: ap-southeast-2
+ image_id: ami-07ed6f1e62fbd6d66
+ - region: us-east-1
+ image_id: ami-055a0ce37433fcdee
+ - region: us-east-2
+ image_id: ami-07e9069631850755a
+ - region: us-west-1
+ image_id: ami-08c18abab76066f71
+ - region: us-west-2
+ image_id: ami-00eca0475f90a1f8c
+ - region: eu-central-1
+ image_id: ami-0198822fa7d539f8c
+ - region: cn-north-1
+ image_id: ami-093c993faaca89b4d
+ - region: cn-northwest-1
+ image_id: ami-05e1cc73d997d67b7
+```
+
+
+
+
+arm64
+
+##### arm64
+
+```
+- flavor: aws-gardener_prod-arm64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod-arm64-1877.3-75df9f40/aws-gardener_prod-arm64-1877.3-75df9f40.raw
+ regions:
+ - region: ap-south-1
+ image_id: ami-00cd00c30d19609a2
+ - region: eu-north-1
+ image_id: ami-0a969a1a1c4726831
+ - region: eu-west-3
+ image_id: ami-0b579f6c70b7c4fe6
+ - region: eu-south-1
+ image_id: ami-06c38608e2e7223d3
+ - region: eu-west-2
+ image_id: ami-005c7058c3923b2eb
+ - region: eu-west-1
+ image_id: ami-0395c3cd38a0a5cd6
+ - region: ap-northeast-3
+ image_id: ami-0db3697cea87a5104
+ - region: ap-northeast-2
+ image_id: ami-084444f62c7c580fb
+ - region: ap-northeast-1
+ image_id: ami-017237dd9abeae8dd
+ - region: me-central-1
+ image_id: ami-08efdb3153d0cd184
+ - region: ca-central-1
+ image_id: ami-05b535ae9418fee3d
+ - region: sa-east-1
+ image_id: ami-036ded98bad763e3c
+ - region: ap-southeast-1
+ image_id: ami-03fcefb2fd18519d0
+ - region: ap-southeast-2
+ image_id: ami-040f9d0caa5d79e84
+ - region: us-east-1
+ image_id: ami-04110d6a1970e748c
+ - region: us-east-2
+ image_id: ami-0c8dc664a21d5ca08
+ - region: us-west-1
+ image_id: ami-0ddc462d075935666
+ - region: us-west-2
+ image_id: ami-0e67c2546e54fed06
+ - region: eu-central-1
+ image_id: ami-06a2a1e7da947b192
+ - region: cn-north-1
+ image_id: ami-0b3755339496a3158
+ - region: cn-northwest-1
+ image_id: ami-06fc0f74b500d2d82
+```
+
+
+
+
+
+
+AZURE - Microsoft Azure
+
+#### AZURE - Microsoft Azure
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: azure-gardener_prod-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod-amd64-1877.3-75df9f40/azure-gardener_prod-amd64-1877.3-75df9f40.vhd
+ gallery_images:
+ - hyper_v_generation: V1
+ azure_cloud: public
+ image_id: /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme/Versions/1877.3.0
+ - hyper_v_generation: V2
+ azure_cloud: public
+ image_id: /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-gen2/Versions/1877.3.0
+ - hyper_v_generation: V1
+ azure_cloud: china
+ image_id: /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme/Versions/1877.3.0
+ - hyper_v_generation: V2
+ azure_cloud: china
+ image_id: /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-gen2/Versions/1877.3.0
+```
+
+
+
+
+arm64
+
+##### arm64
+
+```
+- flavor: azure-gardener_prod-arm64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod-arm64-1877.3-75df9f40/azure-gardener_prod-arm64-1877.3-75df9f40.vhd
+ gallery_images:
+ - hyper_v_generation: V2
+ azure_cloud: public
+ image_id: /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-arm64-gen2/Versions/1877.3.0
+ - hyper_v_generation: V2
+ azure_cloud: china
+ image_id: /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-arm64-gen2/Versions/1877.3.0
+```
+
+
+
+
+
+
+GCP - Google Cloud Platform
+
+#### GCP - Google Cloud Platform
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: gcp-gardener_prod-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod-amd64-1877.3-75df9f40/gcp-gardener_prod-amd64-1877.3-75df9f40.gcpimage.tar.gz
+ image_name: gardenlinux-gcp-ff804026cbe7b5f2d6f729e4-1877-3-75df9f40
+ project: sap-se-gcp-gardenlinux
+ availability: Global (all regions)
+```
+
+
+
+
+arm64
+
+##### arm64
+
+```
+- flavor: gcp-gardener_prod-arm64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod-arm64-1877.3-75df9f40/gcp-gardener_prod-arm64-1877.3-75df9f40.gcpimage.tar.gz
+ image_name: gardenlinux-gcp-c8504d3c3e67cf2fc7c3408c-1877-3-75df9f40
+ project: sap-se-gcp-gardenlinux
+ availability: Global (all regions)
+```
+
+
+
+
+
+
+OPENSTACK - OpenStack
+
+#### OPENSTACK - OpenStack
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: openstack-gardener_prod-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/openstack-gardener_prod-amd64-1877.3-75df9f40/openstack-gardener_prod-amd64-1877.3-75df9f40.raw
+ regions:
+ - region: eu-de-1
+ image_id: ed3b4c3d-941f-456a-a551-bd52b8397443
+ image_name: gardenlinux-1877.3
+ - region: eu-de-2
+ image_id: 5ea6fb4f-20fc-43b8-8ffe-af8da6d61d6a
+ image_name: gardenlinux-1877.3
+ - region: eu-nl-1
+ image_id: ac9b5d43-ff53-494d-8adf-2249c324a9db
+ image_name: gardenlinux-1877.3
+ - region: la-br-1
+ image_id: 404f22a3-9822-4696-a60f-8566eedb93e3
+ image_name: gardenlinux-1877.3
+ - region: na-ca-1
+ image_id: b69b72f3-574a-4f76-b4eb-ac9185ea2681
+ image_name: gardenlinux-1877.3
+ - region: na-us-1
+ image_id: 40e99366-f13b-402a-a264-e7e4773ab8ba
+ image_name: gardenlinux-1877.3
+ - region: na-us-2
+ image_id: c50200c6-95fd-4a97-bef2-90b2d6afa3d3
+ image_name: gardenlinux-1877.3
+ - region: na-us-3
+ image_id: d5b1d8c0-3420-4a82-931d-0506a6b8f166
+ image_name: gardenlinux-1877.3
+ - region: ap-ae-1
+ image_id: 81c26cb7-c515-4610-949a-92c275640325
+ image_name: gardenlinux-1877.3
+ - region: ap-au-1
+ image_id: 2d6e3edd-5596-41e6-a640-4b1b8e7310e7
+ image_name: gardenlinux-1877.3
+ - region: ap-cn-1
+ image_id: 3564b5ef-9b37-4926-bb23-5655cf90de69
+ image_name: gardenlinux-1877.3
+ - region: ap-jp-1
+ image_id: 2ff61187-f004-4317-bd4c-a17d93b475bc
+ image_name: gardenlinux-1877.3
+ - region: ap-jp-2
+ image_id: 2bc58951-9bf7-445b-a6e4-f634c7522d9b
+ image_name: gardenlinux-1877.3
+ - region: ap-sa-1
+ image_id: e4a4aa92-335a-454b-83bb-643cb918cf6a
+ image_name: gardenlinux-1877.3
+ - region: ap-sa-2
+ image_id: d3ac5df8-ce38-4a23-b611-dfef6b7a0db9
+ image_name: gardenlinux-1877.3
+```
+
+
+
+
+
+
+OPENSTACKBAREMETAL - OpenStack Baremetal
+
+#### OPENSTACKBAREMETAL - OpenStack Baremetal
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: openstackbaremetal-gardener_prod-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/openstackbaremetal-gardener_prod-amd64-1877.3-75df9f40/openstackbaremetal-gardener_prod-amd64-1877.3-75df9f40.raw
+ regions:
+ - region: eu-de-1
+ image_id: 01c3ab26-5b93-4655-a743-1fef60f64b53
+ image_name: gardenlinux-1877.3-baremetal
+ - region: eu-de-2
+ image_id: 7488d07b-65f1-4b85-8df8-13244b895d71
+ image_name: gardenlinux-1877.3-baremetal
+ - region: eu-nl-1
+ image_id: 1926a818-55d5-49e1-9af8-eab8450705eb
+ image_name: gardenlinux-1877.3-baremetal
+ - region: la-br-1
+ image_id: 6fda686d-d2f7-4018-ab4c-1250e898197a
+ image_name: gardenlinux-1877.3-baremetal
+ - region: na-ca-1
+ image_id: a032ecc1-3bee-4d65-9f68-3e3f99e2c291
+ image_name: gardenlinux-1877.3-baremetal
+ - region: na-us-1
+ image_id: d663d5f1-1b44-41af-9039-e36cc64a5920
+ image_name: gardenlinux-1877.3-baremetal
+ - region: na-us-2
+ image_id: 818bbfdd-4ee4-49ee-8294-dc3a3c66971f
+ image_name: gardenlinux-1877.3-baremetal
+ - region: na-us-3
+ image_id: b154b48b-050f-48d6-997f-b6c2756079a6
+ image_name: gardenlinux-1877.3-baremetal
+ - region: ap-ae-1
+ image_id: 5992e19c-2ca2-47be-ae55-50e2fd26b662
+ image_name: gardenlinux-1877.3-baremetal
+ - region: ap-au-1
+ image_id: 986403a6-e254-4689-8f81-e32dc33c9b64
+ image_name: gardenlinux-1877.3-baremetal
+ - region: ap-cn-1
+ image_id: 0c794890-a690-4881-b0c2-39a939b020e2
+ image_name: gardenlinux-1877.3-baremetal
+ - region: ap-jp-1
+ image_id: f5be2c30-8e8e-4713-9e34-eb0a18922af5
+ image_name: gardenlinux-1877.3-baremetal
+ - region: ap-jp-2
+ image_id: 8edb20a7-f0f2-47f2-9112-faa2569c3893
+ image_name: gardenlinux-1877.3-baremetal
+ - region: ap-sa-1
+ image_id: dc12514b-b0a8-40dd-b756-a4d27421029c
+ image_name: gardenlinux-1877.3-baremetal
+ - region: ap-sa-2
+ image_id: 617f5ae7-91fd-4149-b783-7a3701a5f420
+ image_name: gardenlinux-1877.3-baremetal
+```
+
+
+
+
+
+
+
+
+Variant - USI (Unified System Image)
+
+### Variant - USI (Unified System Image)
+
+
+AWS - Amazon Web Services
+
+#### AWS - Amazon Web Services
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: aws-gardener_prod_usi-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod_usi-amd64-1877.3-75df9f40/aws-gardener_prod_usi-amd64-1877.3-75df9f40.raw
+ regions:
+ - region: ap-south-1
+ image_id: ami-0e904b4c264dbe923
+ - region: eu-north-1
+ image_id: ami-016f506d46abb5c06
+ - region: eu-west-3
+ image_id: ami-052404d8a97e9ec57
+ - region: eu-south-1
+ image_id: ami-002193c185fb2d939
+ - region: eu-west-2
+ image_id: ami-0225bc62c7d291107
+ - region: eu-west-1
+ image_id: ami-0f737c34ae9ccfe10
+ - region: ap-northeast-3
+ image_id: ami-0ecf19a78a7259c02
+ - region: ap-northeast-2
+ image_id: ami-029152bf0a15cf306
+ - region: ap-northeast-1
+ image_id: ami-0bf003b58ed636124
+ - region: me-central-1
+ image_id: ami-0546ca7d7c2e00077
+ - region: ca-central-1
+ image_id: ami-0a0081cbd4b479d33
+ - region: sa-east-1
+ image_id: ami-086d3b7282338bcd1
+ - region: ap-southeast-1
+ image_id: ami-04973efd023e5883f
+ - region: ap-southeast-2
+ image_id: ami-00389783d0b7ef01b
+ - region: us-east-1
+ image_id: ami-0f5c28bbc45608e9b
+ - region: us-east-2
+ image_id: ami-08c7494a2a00b74e5
+ - region: us-west-1
+ image_id: ami-0e2290963849dba62
+ - region: us-west-2
+ image_id: ami-0fb86d519a38da40f
+ - region: eu-central-1
+ image_id: ami-0c6394e4fdbefe8c0
+ - region: cn-north-1
+ image_id: ami-0b4c979b27a0a7714
+ - region: cn-northwest-1
+ image_id: ami-0cab977e76e274599
+```
+
+
+
+
+arm64
+
+##### arm64
+
+```
+- flavor: aws-gardener_prod_usi-arm64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod_usi-arm64-1877.3-75df9f40/aws-gardener_prod_usi-arm64-1877.3-75df9f40.raw
+ regions:
+ - region: ap-south-1
+ image_id: ami-029f2b705d69f9d50
+ - region: eu-north-1
+ image_id: ami-0b1a9e403ea563206
+ - region: eu-west-3
+ image_id: ami-067465814788be84a
+ - region: eu-south-1
+ image_id: ami-092d7cf152ef6df29
+ - region: eu-west-2
+ image_id: ami-0441298c8ae55a62b
+ - region: eu-west-1
+ image_id: ami-012e58abe02f904c1
+ - region: ap-northeast-3
+ image_id: ami-08c18c5f1aa7e9fba
+ - region: ap-northeast-2
+ image_id: ami-0277ca365657bd9c2
+ - region: ap-northeast-1
+ image_id: ami-006a3f35202f6edd4
+ - region: me-central-1
+ image_id: ami-0aa9e8af8c777e400
+ - region: ca-central-1
+ image_id: ami-0f8225fd2d6009961
+ - region: sa-east-1
+ image_id: ami-0e945c537aef91eff
+ - region: ap-southeast-1
+ image_id: ami-0f30b29a4428f7cea
+ - region: ap-southeast-2
+ image_id: ami-0129e3a207e3e6f9d
+ - region: us-east-1
+ image_id: ami-0cc9f69e3a7594e7b
+ - region: us-east-2
+ image_id: ami-046243dad95d56f2a
+ - region: us-west-1
+ image_id: ami-03ae03953c81a43c1
+ - region: us-west-2
+ image_id: ami-0cbe1dbfeda64dc9b
+ - region: eu-central-1
+ image_id: ami-0dd2780bfcddbda6b
+ - region: cn-north-1
+ image_id: ami-0d993477d25affb3c
+ - region: cn-northwest-1
+ image_id: ami-0a7fe5959bb23fab8
+```
+
+
+
+
+
+
+AZURE - Microsoft Azure
+
+#### AZURE - Microsoft Azure
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: azure-gardener_prod_usi-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod_usi-amd64-1877.3-75df9f40/azure-gardener_prod_usi-amd64-1877.3-75df9f40.vhd
+ gallery_images:
+ - hyper_v_generation: V2
+ azure_cloud: public
+ image_id: /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-gen2-usi/Versions/1877.3.0
+ - hyper_v_generation: V2
+ azure_cloud: china
+ image_id: /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-gen2-usi/Versions/1877.3.0
+```
+
+
+
+
+arm64
+
+##### arm64
+
+```
+- flavor: azure-gardener_prod_usi-arm64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod_usi-arm64-1877.3-75df9f40/azure-gardener_prod_usi-arm64-1877.3-75df9f40.vhd
+ gallery_images:
+ - hyper_v_generation: V2
+ azure_cloud: public
+ image_id: /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-arm64-gen2-usi/Versions/1877.3.0
+ - hyper_v_generation: V2
+ azure_cloud: china
+ image_id: /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-arm64-gen2-usi/Versions/1877.3.0
+```
+
+
+
+
+
+
+GCP - Google Cloud Platform
+
+#### GCP - Google Cloud Platform
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: gcp-gardener_prod_usi-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod_usi-amd64-1877.3-75df9f40/gcp-gardener_prod_usi-amd64-1877.3-75df9f40.gcpimage.tar.gz
+ image_name: gardenlinux-gcp-51db8a4be084c3b640095f4b-1877-3-75df9f40
+ project: sap-se-gcp-gardenlinux
+ availability: Global (all regions)
+```
+
+
+
+
+arm64
+
+##### arm64
+
+```
+- flavor: gcp-gardener_prod_usi-arm64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod_usi-arm64-1877.3-75df9f40/gcp-gardener_prod_usi-arm64-1877.3-75df9f40.gcpimage.tar.gz
+ image_name: gardenlinux-gcp-c00f1e20ffeed4d8b80a76b9-1877-3-75df9f40
+ project: sap-se-gcp-gardenlinux
+ availability: Global (all regions)
+```
+
+
+
+
+
+
+OPENSTACK - OpenStack
+
+#### OPENSTACK - OpenStack
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: openstack-gardener_prod_usi-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/openstack-gardener_prod_usi-amd64-1877.3-75df9f40/openstack-gardener_prod_usi-amd64-1877.3-75df9f40.raw
+ regions:
+ - region: eu-de-1
+ image_id: 15fc38b3-1cee-4c0a-829a-ef1f7faa1920
+ image_name: gardenlinux-1877.3
+ - region: eu-de-2
+ image_id: c4e8e8e5-8c92-4c73-b21b-333087e7b092
+ image_name: gardenlinux-1877.3
+ - region: eu-nl-1
+ image_id: e6f9e054-0613-4204-98c7-84676680418a
+ image_name: gardenlinux-1877.3
+ - region: la-br-1
+ image_id: 04416634-2eaf-44a1-a653-b1ae36bf0e0e
+ image_name: gardenlinux-1877.3
+ - region: na-ca-1
+ image_id: b548d8fd-0e6b-4cb6-9cd1-68b258df00cc
+ image_name: gardenlinux-1877.3
+ - region: na-us-1
+ image_id: 0a97e9af-a1f3-4ae4-bf44-98c432aa436c
+ image_name: gardenlinux-1877.3
+ - region: na-us-2
+ image_id: b1705d73-3f67-427c-8ade-5e245a857338
+ image_name: gardenlinux-1877.3
+ - region: na-us-3
+ image_id: da3234f1-307c-431e-80bb-9e51dd75673d
+ image_name: gardenlinux-1877.3
+ - region: ap-ae-1
+ image_id: 16f24b39-b9ba-4756-8dcd-82473182f1e4
+ image_name: gardenlinux-1877.3
+ - region: ap-au-1
+ image_id: 49de0ff1-2c7e-439d-a065-07c837fe48a8
+ image_name: gardenlinux-1877.3
+ - region: ap-cn-1
+ image_id: 23a94a40-1e9a-4f4b-b2b6-4c167493fbb0
+ image_name: gardenlinux-1877.3
+ - region: ap-jp-1
+ image_id: 1558417d-14bb-413e-9194-88b2bc5f18aa
+ image_name: gardenlinux-1877.3
+ - region: ap-jp-2
+ image_id: 8d39ad55-2f09-490e-8fa7-0bdf5c854ed7
+ image_name: gardenlinux-1877.3
+ - region: ap-sa-1
+ image_id: 62be0147-062a-4375-b142-278a811e9754
+ image_name: gardenlinux-1877.3
+ - region: ap-sa-2
+ image_id: 510d1ff1-4fc6-49ec-ad2f-a0985217dd14
+ image_name: gardenlinux-1877.3
+```
+
+
+
+
+
+
+
+
+Variant - TPM2 Trusted Boot
+
+### Variant - TPM2 Trusted Boot
+
+
+AWS - Amazon Web Services
+
+#### AWS - Amazon Web Services
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: aws-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40/aws-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40.raw
+ regions:
+ - region: ap-south-1
+ image_id: ami-0052561d7bccfe6b7
+ - region: eu-north-1
+ image_id: ami-06623180935c63669
+ - region: eu-west-3
+ image_id: ami-026632e35fe37f9f4
+ - region: eu-south-1
+ image_id: ami-0b60116fac38c2556
+ - region: eu-west-2
+ image_id: ami-0ecd844859adf35c5
+ - region: eu-west-1
+ image_id: ami-0313333df0acd7eb0
+ - region: ap-northeast-3
+ image_id: ami-04e53edbd6ce18fc6
+ - region: ap-northeast-2
+ image_id: ami-0ae03e19777874cef
+ - region: ap-northeast-1
+ image_id: ami-079e68ce96cc03e78
+ - region: me-central-1
+ image_id: ami-01e368d192a479934
+ - region: ca-central-1
+ image_id: ami-02cabce931cafcf1f
+ - region: sa-east-1
+ image_id: ami-075d5fa3b98620e15
+ - region: ap-southeast-1
+ image_id: ami-0a26b478c0a210190
+ - region: ap-southeast-2
+ image_id: ami-0f226413240aec4aa
+ - region: us-east-1
+ image_id: ami-07dea60f619226e1b
+ - region: us-east-2
+ image_id: ami-0e8e852987ee840c3
+ - region: us-west-1
+ image_id: ami-0d9314ee5a439ab29
+ - region: us-west-2
+ image_id: ami-04dc4614abf1649ab
+ - region: eu-central-1
+ image_id: ami-005f7dab618420a91
+```
+
+
+
+
+arm64
+
+##### arm64
+
+```
+- flavor: aws-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/aws-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40/aws-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40.raw
+ regions:
+ - region: ap-south-1
+ image_id: ami-035b751a08f528e47
+ - region: eu-north-1
+ image_id: ami-04c60d1feb092d00f
+ - region: eu-west-3
+ image_id: ami-0443172a73fe4fb27
+ - region: eu-south-1
+ image_id: ami-02f8a867d02227542
+ - region: eu-west-2
+ image_id: ami-06a900dd59c84620d
+ - region: eu-west-1
+ image_id: ami-056a9d8447a991bff
+ - region: ap-northeast-3
+ image_id: ami-0769caf50f7b7fb6f
+ - region: ap-northeast-2
+ image_id: ami-06ad8c60e1093b543
+ - region: ap-northeast-1
+ image_id: ami-0b8313d62dfeec78b
+ - region: me-central-1
+ image_id: ami-0fa388dcaca7b3baf
+ - region: ca-central-1
+ image_id: ami-02e7a07f60a5e0411
+ - region: sa-east-1
+ image_id: ami-000ca39b22f2a695c
+ - region: ap-southeast-1
+ image_id: ami-04f521cff21b58f50
+ - region: ap-southeast-2
+ image_id: ami-02f5afcce42276457
+ - region: us-east-1
+ image_id: ami-0a25256d5aaf8fdd7
+ - region: us-east-2
+ image_id: ami-07bcfed39a329b612
+ - region: us-west-1
+ image_id: ami-0b2e93f36b5a8bff2
+ - region: us-west-2
+ image_id: ami-063f4f34958917b5c
+ - region: eu-central-1
+ image_id: ami-0b15b442dd5e90d50
+```
+
+
+
+
+
+
+AZURE - Microsoft Azure
+
+#### AZURE - Microsoft Azure
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: azure-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40/azure-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40.vhd
+ gallery_images:
+ - hyper_v_generation: V2
+ azure_cloud: public
+ image_id: /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-gen2-usi-secureboot/Versions/1877.3.0
+ - hyper_v_generation: V2
+ azure_cloud: china
+ image_id: /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-gen2-usi-secureboot/Versions/1877.3.0
+```
+
+
+
+
+arm64
+
+##### arm64
+
+```
+- flavor: azure-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/azure-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40/azure-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40.vhd
+ gallery_images:
+ - hyper_v_generation: V2
+ azure_cloud: public
+ image_id: /CommunityGalleries/gardenlinux-13e998fe-534d-4b0a-8a27-f16a73aef620/Images/gardenlinux-nvme-arm64-gen2-usi-secureboot/Versions/1877.3.0
+ - hyper_v_generation: V2
+ azure_cloud: china
+ image_id: /CommunityGalleries/gardenlinux-8e6518fb-9ae0-4f66-abfd-9a06997e2492/Images/gardenlinux-nvme-arm64-gen2-usi-secureboot/Versions/1877.3.0
+```
+
+
+
+
+
+
+GCP - Google Cloud Platform
+
+#### GCP - Google Cloud Platform
+
+
+amd64
+
+##### amd64
+
+```
+- flavor: gcp-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40/gcp-gardener_prod_tpm2_trustedboot-amd64-1877.3-75df9f40.gcpimage.tar.gz
+ image_name: gardenlinux-gcp-b4636aa3660a8d166531aab9-1877-3-75df9f40
+ project: sap-se-gcp-gardenlinux
+ availability: Global (all regions)
+```
+
+
+
+
+arm64
+
+##### arm64
+
+```
+- flavor: gcp-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40
+ download_url: https://gardenlinux-github-releases.s3.amazonaws.com/objects/gcp-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40/gcp-gardener_prod_tpm2_trustedboot-arm64-1877.3-75df9f40.gcpimage.tar.gz
+ image_name: gardenlinux-gcp-63fd9d7dd465420fd4e499ab-1877-3-75df9f40
+ project: sap-se-gcp-gardenlinux
+ availability: Global (all regions)
+```
+
+
+
+
+
+
+
+
+
+
+
+## Kernel Module Build Container (kmodbuild)
+```
+ghcr.io/gardenlinux/gardenlinux/kmodbuild:1877.3
+```
diff --git a/test-data/release_notes/glvd_1877.3.json b/test-data/release_notes/glvd_1877.3.json
new file mode 100644
index 00000000..d739cdb8
--- /dev/null
+++ b/test-data/release_notes/glvd_1877.3.json
@@ -0,0 +1,193 @@
+{
+ "version": "1877.3",
+ "packageList": [
+ {
+ "sourcePackageName": "gnutls28",
+ "oldVersion": "3.8.9-2",
+ "newVersion": "3.8.9-3gl0+bp1877",
+ "fixedCves": [
+ "CVE-2025-32988",
+ "CVE-2025-32989",
+ "CVE-2025-32990",
+ "CVE-2025-6395"
+ ]
+ },
+ {
+ "sourcePackageName": "sqlite3",
+ "oldVersion": "3.46.1-4",
+ "newVersion": "3.46.1-7gl0+bp1877",
+ "fixedCves": [
+ "CVE-2025-6965"
+ ]
+ },
+ {
+ "sourcePackageName": "dpkg",
+ "oldVersion": "1.22.18",
+ "newVersion": "1.22.21gl0+bp1877",
+ "fixedCves": [
+ "CVE-2025-6297"
+ ]
+ },
+ {
+ "sourcePackageName": "linux",
+ "oldVersion": "6.12.40-2gl0",
+ "newVersion": "6.12.44-3gl0",
+ "fixedCves": [
+ "CVE-2025-38676",
+ "CVE-2025-38683",
+ "CVE-2025-38684",
+ "CVE-2025-38686",
+ "CVE-2025-38687",
+ "CVE-2025-38688",
+ "CVE-2025-38691",
+ "CVE-2025-38692",
+ "CVE-2025-38695",
+ "CVE-2025-38696",
+ "CVE-2025-38699",
+ "CVE-2025-38700",
+ "CVE-2025-38701",
+ "CVE-2025-38704",
+ "CVE-2025-38708",
+ "CVE-2025-38709",
+ "CVE-2025-38710",
+ "CVE-2025-38711",
+ "CVE-2025-38717",
+ "CVE-2025-38718",
+ "CVE-2025-38721",
+ "CVE-2025-38722",
+ "CVE-2025-38724",
+ "CVE-2025-38726",
+ "CVE-2025-38727",
+ "CVE-2025-38728",
+ "CVE-2025-38730",
+ "CVE-2025-38601",
+ "CVE-2025-38604",
+ "CVE-2025-38608",
+ "CVE-2025-38609",
+ "CVE-2025-38610",
+ "CVE-2025-38614",
+ "CVE-2022-50031",
+ "CVE-2022-50083",
+ "CVE-2023-53137",
+ "CVE-2025-37744",
+ "CVE-2025-38500",
+ "CVE-2025-38501",
+ "CVE-2025-38732",
+ "CVE-2025-38734",
+ "CVE-2025-38735",
+ "CVE-2025-38737",
+ "CVE-2025-39673",
+ "CVE-2025-39676",
+ "CVE-2025-39681",
+ "CVE-2025-39682",
+ "CVE-2025-39683",
+ "CVE-2025-39684",
+ "CVE-2025-39685",
+ "CVE-2025-39686",
+ "CVE-2025-39689",
+ "CVE-2025-39691",
+ "CVE-2025-39692",
+ "CVE-2025-39695",
+ "CVE-2025-39697",
+ "CVE-2025-39698",
+ "CVE-2025-39700",
+ "CVE-2025-39701",
+ "CVE-2025-39702",
+ "CVE-2025-39703",
+ "CVE-2025-39718",
+ "CVE-2025-39720",
+ "CVE-2025-39721",
+ "CVE-2025-39722",
+ "CVE-2025-39724",
+ "CVE-2025-39727",
+ "CVE-2025-39730",
+ "CVE-2025-39732",
+ "CVE-2025-21884",
+ "CVE-2025-38335",
+ "CVE-2025-38351",
+ "CVE-2025-38553",
+ "CVE-2025-38559",
+ "CVE-2025-38560",
+ "CVE-2025-38561",
+ "CVE-2025-38562",
+ "CVE-2025-38563",
+ "CVE-2025-38565",
+ "CVE-2025-38566",
+ "CVE-2025-38568",
+ "CVE-2025-38569",
+ "CVE-2025-38571",
+ "CVE-2025-38572",
+ "CVE-2025-38574",
+ "CVE-2025-38581",
+ "CVE-2025-38582",
+ "CVE-2025-38583",
+ "CVE-2025-38586",
+ "CVE-2025-38587",
+ "CVE-2025-38588",
+ "CVE-2025-38590",
+ "CVE-2025-38593",
+ "CVE-2025-38616",
+ "CVE-2025-38617",
+ "CVE-2025-38618",
+ "CVE-2025-38622",
+ "CVE-2025-38624",
+ "CVE-2025-38625",
+ "CVE-2025-38628",
+ "CVE-2025-38631",
+ "CVE-2025-38632",
+ "CVE-2025-38634",
+ "CVE-2025-38635",
+ "CVE-2025-38639",
+ "CVE-2025-38640",
+ "CVE-2025-38644",
+ "CVE-2025-38645",
+ "CVE-2025-38646",
+ "CVE-2025-38653",
+ "CVE-2025-38659",
+ "CVE-2025-38660",
+ "CVE-2025-38666",
+ "CVE-2025-38668",
+ "CVE-2025-38670",
+ "CVE-2025-38675",
+ "CVE-2025-39736",
+ "CVE-2025-39737",
+ "CVE-2025-39738",
+ "CVE-2025-39739",
+ "CVE-2025-39742",
+ "CVE-2025-39744",
+ "CVE-2025-39746",
+ "CVE-2025-39748",
+ "CVE-2025-39749",
+ "CVE-2025-39750",
+ "CVE-2025-39752",
+ "CVE-2025-39753",
+ "CVE-2025-39754",
+ "CVE-2025-39756",
+ "CVE-2025-39758",
+ "CVE-2025-39759",
+ "CVE-2025-39761",
+ "CVE-2025-39763",
+ "CVE-2025-39766",
+ "CVE-2025-39770",
+ "CVE-2025-39773",
+ "CVE-2025-39776",
+ "CVE-2025-39779",
+ "CVE-2025-39780",
+ "CVE-2025-39782",
+ "CVE-2025-39783",
+ "CVE-2025-39787",
+ "CVE-2025-39788",
+ "CVE-2025-39790",
+ "CVE-2025-39791"
+ ]
+ },
+ {
+ "sourcePackageName": "iputils",
+ "oldVersion": "3:20240905-3",
+ "newVersion": "3:20250605-1gl0~bp1877",
+ "fixedCves": [
+ "CVE-2025-47268"
+ ]
+ }
+ ]
+}
diff --git a/tests/github/test_create_github_release.py b/tests/github/test_create_github_release.py
index 3e11a2af..a2919a60 100644
--- a/tests/github/test_create_github_release.py
+++ b/tests/github/test_create_github_release.py
@@ -4,7 +4,10 @@
from gardenlinux.github.release import create_github_release, write_to_release_id_file
-from ..constants import TEST_GARDENLINUX_COMMIT, TEST_GARDENLINUX_RELEASE
+from ..constants import (
+ TEST_GARDENLINUX_COMMIT,
+ TEST_GARDENLINUX_RELEASE,
+)
def test_create_github_release_needs_github_token():
diff --git a/tests/github/test_create_github_release_notes.py b/tests/github/test_create_github_release_notes.py
index 1a36fb26..a900082e 100644
--- a/tests/github/test_create_github_release_notes.py
+++ b/tests/github/test_create_github_release_notes.py
@@ -1,12 +1,28 @@
+import pytest
import requests_mock
+from git import Repo
+from moto import mock_aws
from gardenlinux.constants import GLVD_BASE_URL
from gardenlinux.github.release_notes import (
release_notes_changes_section,
release_notes_compare_package_versions_section,
)
+from gardenlinux.github.release_notes.deployment_platform import DeploymentPlatform
+from gardenlinux.github.release_notes.helpers import get_variant_from_flavor
-from ..constants import TEST_GARDENLINUX_RELEASE
+from ..constants import (
+ RELEASE_NOTES_S3_ARTIFACTS_DIR,
+ RELEASE_NOTES_TEST_DATA_DIR,
+ TEST_GARDENLINUX_COMMIT,
+ TEST_GARDENLINUX_RELEASE,
+)
+
+TEST_FLAVORS = [("foo_bar_baz", "legacy"),
+ ("aws-gardener_prod_trustedboot_tpm2-amd64", "legacy"),
+ ("openstack-gardener_prod_tpm2_trustedboot-arm64", "tpm2_trustedboot"),
+ ("azure-gardener_prod_usi-amd64", "usi"),
+ ("", "legacy")]
def test_release_notes_changes_section_empty_packagelist():
@@ -37,3 +53,58 @@ def test_release_notes_compare_package_versions_section_semver_is_not_recognized
def test_release_notes_compare_package_versions_section_unrecognizable_version():
assert release_notes_compare_package_versions_section("garden.linux", []) == ""
+
+
+@pytest.mark.parametrize("flavor", TEST_FLAVORS)
+def test_get_variant_from_flavor(flavor):
+ assert get_variant_from_flavor(flavor[0]) == flavor[1]
+
+
+def test_default_get_file_extension_for_deployment_platform():
+ assert DeploymentPlatform().image_extension() == "raw"
+
+
+@mock_aws
+def test_github_release_page(monkeypatch, downloads_dir, release_s3_bucket):
+
+ class SubmoduleAsRepo(Repo):
+ """This will fake a git submodule as a git repository object."""
+ def __new__(cls, *args, **kwargs):
+ r = super().__new__(Repo)
+ r.__init__(*args, **kwargs)
+
+ maybe_gl_submodule = [submodule for submodule in r.submodules if submodule.name.endswith("/gardenlinux")]
+ if not maybe_gl_submodule:
+ return r
+ else:
+ gl = maybe_gl_submodule[0]
+
+ sr = gl.module()
+ sr.remotes.origin.pull("main")
+ return sr
+
+ monkeypatch.setattr("gardenlinux.github.release_notes.helpers.Repo", SubmoduleAsRepo)
+ import gardenlinux.github
+
+ release_fixture_path = RELEASE_NOTES_TEST_DATA_DIR / f"github_release_notes_{TEST_GARDENLINUX_RELEASE}.md"
+ glvd_response_fixture_path = RELEASE_NOTES_TEST_DATA_DIR / f"glvd_{TEST_GARDENLINUX_RELEASE}.json"
+
+ with requests_mock.Mocker(real_http=True) as m:
+ for yaml_file in RELEASE_NOTES_S3_ARTIFACTS_DIR.glob("*.yaml"):
+ filename = yaml_file.name
+ base = filename[:-len(".s3_metadata.yaml")]
+ key = f"meta/singles/{base}-{TEST_GARDENLINUX_RELEASE}-{TEST_GARDENLINUX_COMMIT}"
+ release_s3_bucket.upload_file(str(yaml_file), key)
+
+ m.get(
+ f"{GLVD_BASE_URL}/patchReleaseNotes/{TEST_GARDENLINUX_RELEASE}",
+ text=glvd_response_fixture_path.read_text(),
+ status_code=200
+ )
+ generated_release_notes = gardenlinux.github.release_notes.create_github_release_notes(
+ TEST_GARDENLINUX_RELEASE,
+ TEST_GARDENLINUX_COMMIT,
+ release_s3_bucket.name
+ )
+
+ assert generated_release_notes == release_fixture_path.read_text()
diff --git a/tests/github/test_github_script.py b/tests/github/test_github_script.py
new file mode 100644
index 00000000..c94885a4
--- /dev/null
+++ b/tests/github/test_github_script.py
@@ -0,0 +1,80 @@
+import sys
+
+import pytest
+
+import gardenlinux.github.__main__ as gh
+from gardenlinux.constants import GARDENLINUX_GITHUB_RELEASE_BUCKET_NAME
+
+from ..constants import TEST_GARDENLINUX_COMMIT, TEST_GARDENLINUX_RELEASE
+
+
+def test_script_parse_args_wrong_command(monkeypatch, capfd):
+ monkeypatch.setattr(sys, "argv", ["gh", "rejoice"])
+
+ with pytest.raises(SystemExit):
+ gh.main()
+ captured = capfd.readouterr()
+
+ assert "argument command: invalid choice: 'rejoice'" in captured.err, "Expected help message printed"
+
+
+def test_script_parse_args_create_command_required_args(monkeypatch, capfd):
+ monkeypatch.setattr(sys, "argv", ["gh", "create", "--owner", "gardenlinux", "--repo", "gardenlinux"])
+
+ with pytest.raises(SystemExit):
+ gh.main()
+ captured = capfd.readouterr()
+
+ assert "the following arguments are required: --tag, --commit" in captured.err, \
+ "Expected help message on missing arguments for 'create' command"
+
+
+def test_script_parse_args_upload_command_required_args(monkeypatch, capfd):
+ monkeypatch.setattr(sys, "argv", ["gh", "upload", "--owner", "gardenlinux", "--repo", "gardenlinux"])
+
+ with pytest.raises(SystemExit):
+ gh.main()
+ captured = capfd.readouterr()
+
+ assert "the following arguments are required: --release_id, --file_path" in captured.err, \
+ "Expected help message on missing arguments for 'upload' command"
+
+
+def test_script_create_dry_run(monkeypatch, capfd):
+
+ monkeypatch.setattr(sys, "argv", ["gh", "create", "--owner", "gardenlinux", "--repo",
+ "gardenlinux", "--tag", TEST_GARDENLINUX_RELEASE, "--commit", TEST_GARDENLINUX_COMMIT, "--dry-run"])
+ monkeypatch.setattr("gardenlinux.github.__main__.create_github_release_notes",
+ lambda tag, commit, bucket: f"{tag} {commit} {bucket}")
+
+ gh.main()
+ captured = capfd.readouterr()
+
+ assert captured.out == f"Dry Run ...\nThis release would be created:\n{TEST_GARDENLINUX_RELEASE} {TEST_GARDENLINUX_COMMIT} {GARDENLINUX_GITHUB_RELEASE_BUCKET_NAME}\n", \
+ "Expected dry-run create to return generated release notes text"
+
+
+def test_script_create(monkeypatch, caplog):
+ monkeypatch.setattr(sys, "argv", ["gh", "create", "--owner", "gardenlinux", "--repo",
+ "gardenlinux", "--tag", TEST_GARDENLINUX_RELEASE, "--commit", TEST_GARDENLINUX_COMMIT])
+ monkeypatch.setattr("gardenlinux.github.__main__.create_github_release_notes",
+ lambda tag, commit, bucket: f"{tag} {commit} {bucket}")
+ monkeypatch.setattr("gardenlinux.github.__main__.create_github_release",
+ lambda a1, a2, a3, a4, a5, a6: TEST_GARDENLINUX_RELEASE)
+
+ gh.main()
+
+ assert any(f"Release created with ID: {TEST_GARDENLINUX_RELEASE}" in record.message for record in caplog.records), \
+ "Expected a release creation confirmation log entry"
+
+
+def test_script_upload_dry_run(monkeypatch, capfd):
+ monkeypatch.setattr(sys, "argv", ["gh", "upload", "--owner", "gardenlinux", "--repo",
+ "gardenlinux", "--release_id", TEST_GARDENLINUX_RELEASE, "--file_path", "foo", "--dry-run"])
+ monkeypatch.setattr("gardenlinux.github.__main__.upload_to_github_release_page",
+ lambda a1, a2, a3, a4, dry_run: print(f"dry-run: {dry_run}"))
+
+ gh.main()
+ captured = capfd.readouterr()
+
+ assert captured.out == "dry-run: True\n"