Skip to content

Add Azure Storage Blob as an image source#431

Open
oukoedwin wants to merge 7 commits into
microsoft:mainfrom
oukoedwin:edwinouko/agc-image-provisioning
Open

Add Azure Storage Blob as an image source#431
oukoedwin wants to merge 7 commits into
microsoft:mainfrom
oukoedwin:edwinouko/agc-image-provisioning

Conversation

@oukoedwin

Copy link
Copy Markdown

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 sfs is not available

Changes

  • Added AZURESTORAGEBLOB_SOURCE = 4 to the ImageSource enum in moc_common_common.proto
  • Regenerated the corresponding Go protobuf code (moc_common_common.pb.go)

Edwin Ouko and others added 2 commits April 16, 2026 17:34
…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.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 = 4 to ImageSource in moc_common_common.proto.
  • Regenerated moc_common_common.pb.go so 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.

Comment thread rpc/common/moc_common_common.proto
Edwin Ouko and others added 4 commits June 8, 2026 23:05
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`.
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
@oukoedwin

oukoedwin commented Jun 10, 2026

Copy link
Copy Markdown
Author

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 azurestorageblob download provider). The underlying MOC makes use of binaries built from feature branches corresponding to these related PRs:

Here is the mini-design doc for the corresponding workstream

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants