v1.8.1
Release Notes — v1.8.1
✨ Features
Container Registry — SDK-compat servers across AWS, Azure, and GCP
Point the real registry clients at in-memory backends: AWS ECR (aws-sdk-go-v2), GCP Artifact Registry (artifactregistry/v1), and Azure Container Registry (azcontainerregistry) now drive the existing container-registry driver over each cloud's native wire protocol — repository and image/tag operations, matching each provider's real create / list / delete semantics and typed error codes.
🔧 Enhancements
IAM — managed policy versions across AWS, Azure, and GCP
Managed policies now carry versions: create, get, list, set-default, and delete, mirroring AWS semantics — an auto-seeded v1, monotonic never-reused version IDs, a five-version cap, and a protected default version whose document becomes the policy's effective document. Wired through the AWS IAM SDK surface with faithful error codes; Azure and GCP are covered at the portable API level.
Technical Details
AWS ECR
- SDK-compat server (AWS JSON 1.1, dispatched on
X-Amz-Target) driving the existing container-registry driver. - Repositories: CreateRepository, DescribeRepositories (get-by-name + list-all), DeleteRepository. Images: PutImage, ListImages, DescribeImages, BatchDeleteImage.
BatchDeleteImagereturns per-image failures; a missing repository throwsRepositoryNotFoundException. Timestamps as Unix epoch seconds. Typed errors:RepositoryNotFoundException,RepositoryAlreadyExistsException,RepositoryNotEmptyException,InvalidParameterException,LimitExceededException.
GCP Artifact Registry
- SDK-compat REST server (
artifactregistry.googleapis.comv1) driving the container-registry driver. - Repositories: Create (async), Get, List, Delete (async); Images:
dockerImages.list. - Create / Delete return a completed long-running
Operationinline; canonicalprojects/{p}/locations/{l}/repositories/{id}names;formatDOCKER;imageSizeBytesrendered as an int64 string. Errors map to GCP status codes (404 notFound, 409 alreadyExists, …).
Azure Container Registry
- SDK-compat data-plane server (
/acr/v1/…) driving the container-registry driver viaazcontainerregistry. _catalog(list), repository properties,_tags(list), delete. No create call — repositories appear on image push, as in real ACR.- Served anonymously (no challenge-token exchange); delete returns 202 Accepted, missing repo returns 404 (idempotent delete). Errors map to ACR codes (
NAME_UNKNOWN, …).
IAM managed policy versions
- New driver + portable API + AWS/Azure/GCP mock operations: CreatePolicyVersion, GetPolicyVersion, ListPolicyVersions, DeletePolicyVersion, SetDefaultPolicyVersion.
CreatePolicyauto-seedsv1; version IDs never reused; at most five versions; the default version cannot be deleted; the default's document is the policy's effective document (reflected byGetPolicy).- AWS wire surface (query / XML) with faithful errors:
DeleteConflict(delete default),LimitExceeded(version cap),NoSuchEntity(unknown policy / version). Azure and GCP covered at the portable / driver level, as their SDKs have no equivalent API.