Add Azure Storage Blob as an image source#431
Conversation
…orage download provider in AGC Add new ImageSource enum value for Azure Storage Blob as an image source option (AZURESTORAGEBLOB_SOURCE = 4) in the protobuf definition and regenerated Go code.
There was a problem hiding this comment.
Pull request overview
Adds a new ImageSource enum value (AZURESTORAGEBLOB_SOURCE = 4) to the shared protobuf contract and updates the generated Go bindings accordingly, extending the set of image source identifiers available to RPC consumers.
Changes:
- Added
AZURESTORAGEBLOB_SOURCE = 4toImageSourceinmoc_common_common.proto. - Regenerated
moc_common_common.pb.goso Go code includes the new enum constant and name/value mappings.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| rpc/common/moc_common_common.proto | Adds the new ImageSource enum value for Azure Storage Blob. |
| rpc/common/moc_common_common.pb.go | Regenerated Go protobuf output reflecting the new enum value. |
Add AzureBlobImageProperties as a sibling typed message alongside SFSImageProperties, HttpImageProperties, and AzureGalleryImageProperties in both the cloudagent gallery image and nodeagent virtual hard disk proto definitions. Field names (catalogName, audience, version, releaseName, parts, cloud, endpoint) match the JSON keys produced by compute.AzureBlobImageProperties in moc-sdk-for-go, so the on-the-wire encoding inside GalleryImage.sourcePath / VirtualHardDisk.source is unchanged. Regenerated .pb.go files via `make generate`.
…/oukoedwin/moc into edwinouko/agc-image-provisioning
Add unit tests around the AzureBlobImageProperties typed message added in 88f4406: * Cloudagent and nodeagent JSON-key tests pin the exact wire keys (catalogName, audience, version, releaseName, parts, cloud, endpoint) that mgmtappl/moc-sdk-for-go encode and wssdagent's parseBlobConfig decodes. A rename of any proto field becomes a loud test failure rather than a silent break of AGC downloads. * A reflection-based parity test asserts the cloudagent and nodeagent AzureBlobImageProperties types expose identical Go field names and JSON tags. Editing only one of the two .proto files would otherwise silently break wire compatibility between SDK encode and agent decode
|
Since this is the first PR for the AGC support, I have added a screenshot below of a successful ARB deployment (provisioned using the new Here is the mini-design doc for the corresponding workstream
|
| string releaseName = 4; | ||
| uint32 parts = 5; | ||
| string cloud = 6; | ||
| string endpoint = 7; |
There was a problem hiding this comment.
On the nodeagent side, VirtualHardDisk.source is annotated [(sensitivejson) = true] , and the JSON redactor ( pkg/redact/redact.go ) only redacts the keys "private-key" and "sasURI" . The new endpoint field holds a blob URL — if a SAS-bearing URL is ever placed in it, the token would be logged unredacted, since endpoint isn't in the redaction key list.
Please confirm

Adds a new AZURESTORAGEBLOB_SOURCE image source type to support pulling images from Azure Storage Blob thus extending the set of supported image sources beyond local, SFS, HTTP, and clone. This allows images to be pulled from Azure storage blob in AGC where
sfsis not availableChanges