feat(ci): support private Docker registry via env vars
Add DOCKER_REGISTRY and DOCKER_REGISTRY_PREFIX environment variables to ci/build_matrix.py for pulling base images from a private registry (Artifactory, Harbor, etc.) instead of Docker Hub. Document CI usage and registry configuration in README.
This commit is contained in:
+11
-1
@@ -2,6 +2,7 @@
|
||||
"""Parse meta/main.yml platforms and output a Docker test matrix as JSON."""
|
||||
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
@@ -18,6 +19,14 @@ PLATFORM_IMAGE_MAP = {
|
||||
"Ubuntu": "ubuntu",
|
||||
}
|
||||
|
||||
def _resolve_image(image: str) -> str:
|
||||
"""Prefix image with registry and namespace if configured via env vars."""
|
||||
registry = os.environ.get("DOCKER_REGISTRY", "").strip().rstrip("/")
|
||||
prefix = os.environ.get("DOCKER_REGISTRY_PREFIX", "").strip()
|
||||
if registry:
|
||||
return f"{registry}/{prefix}{image}"
|
||||
return image
|
||||
|
||||
def build_matrix(meta_path: str = "roles/remote_users_fact/meta/main.yml") -> list[dict]:
|
||||
meta_file = Path(meta_path)
|
||||
if not meta_file.exists():
|
||||
@@ -43,9 +52,10 @@ def build_matrix(meta_path: str = "roles/remote_users_fact/meta/main.yml") -> li
|
||||
for version in platform.get("versions", []):
|
||||
version_str = str(version)
|
||||
slug = f"{name.lower()}{version_str}" if name == "EL" else f"{name.lower()}-{version_str}"
|
||||
base_image = f"{image_prefix}:{version_str}"
|
||||
matrix.append({
|
||||
"slug": slug,
|
||||
"image": f"{image_prefix}:{version_str}",
|
||||
"image": _resolve_image(base_image),
|
||||
"platform": name,
|
||||
"version": version_str,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user