Skip to content

Add Azure Storage Blob as an image source#431

Merged
oukoedwin merged 8 commits into
microsoft:mainfrom
oukoedwin:edwinouko/agc-image-provisioning
Jul 6, 2026
Merged

Add Azure Storage Blob as an image source#431
oukoedwin merged 8 commits into
microsoft:mainfrom
oukoedwin:edwinouko/agc-image-provisioning

Conversation

@oukoedwin

Copy link
Copy Markdown
Contributor

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
Contributor 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

blairurish
blairurish previously approved these changes Jul 1, 2026
rbalwani
rbalwani previously approved these changes Jul 1, 2026
Add 'endpoint' to sensitiveKeys in redactJsonSensitiveField and
redactErrorJsonSensitiveField so that Azure Blob storage endpoints
are scrubbed from error messages and logged struct fields.

This future-proofs the redaction in case endpoint values contain
internal infrastructure details that should not leak in diagnostics.
@oukoedwin

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@oukoedwin oukoedwin merged commit 62157de into microsoft:main Jul 6, 2026
7 checks passed
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.

5 participants