Skip to content

v1.8.1

Choose a tag to compare

@NitinKumar004 NitinKumar004 released this 02 Jul 08:01
· 1135 commits to master since this release
8b7d9eb

cloudemu 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.
  • BatchDeleteImage returns per-image failures; a missing repository throws RepositoryNotFoundException. Timestamps as Unix epoch seconds. Typed errors: RepositoryNotFoundException, RepositoryAlreadyExistsException, RepositoryNotEmptyException, InvalidParameterException, LimitExceededException.
GCP Artifact Registry
  • SDK-compat REST server (artifactregistry.googleapis.com v1) driving the container-registry driver.
  • Repositories: Create (async), Get, List, Delete (async); Images: dockerImages.list.
  • Create / Delete return a completed long-running Operation inline; canonical projects/{p}/locations/{l}/repositories/{id} names; format DOCKER; imageSizeBytes rendered 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 via azcontainerregistry.
  • _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.
  • CreatePolicy auto-seeds v1; 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 by GetPolicy).
  • 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.