Skip to content

feat: [4/5] add native RepoDepot initialization - #9903

Draft
Abigail Liang (abigailliang-aks-sig-node) wants to merge 2 commits into
abigailliang/anc-cloud-refreshfrom
abigailliang/anc-cloud-repodepot
Draft

Abigail Liang (abigailliang-aks-sig-node) wants to merge 2 commits into
abigailliang/anc-cloud-refreshfrom
abigailliang/anc-cloud-repodepot

Conversation

@abigailliang-aks-sig-node

@abigailliang-aks-sig-node Abigail Liang (abigailliang-aks-sig-node) commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:

Part [4/5] of the native ANC cloud-initialization series split from #9891.
Depends on [3/5] #9909 and is based on its branch so this diff contains only
RepoDepot capabilities: 4 files, +454/-0, the same scope as this PR before
the certificate layer was split further.

  • Extract the unchanged Go RepoDepot implementation into its own review unit.
  • Configure Ubuntu sources/keyrings, Mariner mirrors, and Azure Linux repository
    files; preserve existing source backup behavior and immutable-OS skips.
  • Retry package-cache refresh up to ten times and preserve explicit errors,
    distinguishing ordinary exhaustion from context cancellation.
  • Include direct repository-configuration, endpoint, retry, and cancellation
    coverage alongside the implementation.

This PR does not connect these operations to App.Provision, remove the shell
initialization call, or change refresh scheduling. Existing provisioning still
uses init-aks-cloud.sh. This layer returns a classified cache-refresh error
after ordinary retry exhaustion; part [5/5] #9904 supplies the orchestration
that reports that error and continues provisioning, matching the agreed shell
policy. Repository setup errors and cancellation are not suppressed.

Series and merge order

  1. [1/5] feat: [1/5] add cloud platform and trust-store capabilities #9910: Platform and trust-store capabilities -- based on main.
  2. [2/5] feat: [2/5] add cloud certificate retrieval protocols #9911: Certificate retrieval protocols -- based on part 1.
  3. [3/5] feat: [3/5] add cloud certificate refresh orchestration and CLI #9909: Certificate refresh and CLI -- based on part 2.
  4. [4/5] feat: [4/5] add native RepoDepot initialization #9903: RepoDepot capabilities -- this PR, based on part 3.
  5. [5/5] feat: [5/5] enable native cloud initialization before provisioning #9904: Native activation -- based on this PR.

The current base is abigailliang/anc-cloud-refresh for an incremental review
diff. After the preceding PRs merge, merge the updated main into this branch,
then retarget this PR to main and run required CI. Updating the branch first
preserves the incremental diff even when prerequisites were squash-merged.
Do not merge this PR into the dependency's feature branch.
This PR is a draft while its prerequisites are pending, not because the
implementation or local validation is incomplete.

This PR's original ID, discussion, and branch history are retained through an
additive merge; no force push was used. The aggregate #9891 and former
certificate PR #9902 are retained for reference.

Validation

From aks-node-controller, passed the ANC/parser race suites, CI-pinned
golangci-lint v2.14.0 against the preceding layer, and Linux AMD64/ARM64 builds.
Declaration-level equivalence and the exact non-cloud transplant comparison
also passed. Azure/VHD end-to-end provisioning has not been run.

Which issue(s) this PR fixes:

No linked issue.

Split repository configuration and package-cache refresh from #9891 on top of the certificate/runtime layer. Keep provisioning on its existing shell path, preserve explicit cache and cancellation errors, and include direct source/keyring, retry, and endpoint coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: be499bac-1283-498e-b5b1-59d8c91047a4
@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Windows Unit Test Results

  3 files   18 suites   1m 8s ⏱️
563 tests 563 ✅ 0 💤 0 ❌
585 runs  585 ✅ 0 💤 0 ❌

Results for commit d1a8ea8.

♻️ This comment has been updated with latest results.

Preserve the published RepoDepot branch with an additive merge onto the finer-grained certificate stack. The incremental RepoDepot implementation and tests remain unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: be499bac-1283-498e-b5b1-59d8c91047a4
@github-actions

Copy link
Copy Markdown
Contributor

Changes cached containers or packages on windows VHDs

Please get a Windows SIG member to approve.

The following dif file shows any additions or deletions from what will be cached on windows VHDs organised by VHD type.

  • Additions are new things cached.
  • Deletions are things no longer cached.
diff --git a/vhd_files/2022-containerd-gen2.txt b/vhd_files/2022-containerd-gen2.txt
index dc3e7f9..6b4de1f 100644
--- a/vhd_files/2022-containerd-gen2.txt
+++ b/vhd_files/2022-containerd-gen2.txt
@@ -1 +1 @@
-c:\aks-tools\oras\: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_windows_amd64.zip
+c:\aks-tools\oras\: https://github.com/oras-project/oras/releases/download/v1.3.5/oras_1.3.5_windows_amd64.zip
@@ -144 +144 @@ Windows 2022-containerd-gen2 package kubernetes-binaries default: https://packag
-Windows 2022-containerd-gen2 package oras default: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_windows_amd64.zip
+Windows 2022-containerd-gen2 package oras default: https://github.com/oras-project/oras/releases/download/v1.3.5/oras_1.3.5_windows_amd64.zip
diff --git a/vhd_files/2022-containerd.txt b/vhd_files/2022-containerd.txt
index 2a115bc..2dfdd85 100644
--- a/vhd_files/2022-containerd.txt
+++ b/vhd_files/2022-containerd.txt
@@ -1 +1 @@
-c:\aks-tools\oras\: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_windows_amd64.zip
+c:\aks-tools\oras\: https://github.com/oras-project/oras/releases/download/v1.3.5/oras_1.3.5_windows_amd64.zip
@@ -144 +144 @@ Windows 2022-containerd package kubernetes-binaries default: https://packages.ak
-Windows 2022-containerd package oras default: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_windows_amd64.zip
+Windows 2022-containerd package oras default: https://github.com/oras-project/oras/releases/download/v1.3.5/oras_1.3.5_windows_amd64.zip
diff --git a/vhd_files/2025-gen2-tl.txt b/vhd_files/2025-gen2-tl.txt
index ace02d5..93f8d8d 100644
--- a/vhd_files/2025-gen2-tl.txt
+++ b/vhd_files/2025-gen2-tl.txt
@@ -1 +1 @@
-c:\aks-tools\oras\: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_windows_amd64.zip
+c:\aks-tools\oras\: https://github.com/oras-project/oras/releases/download/v1.3.5/oras_1.3.5_windows_amd64.zip
@@ -80 +80 @@ Windows 2025-gen2-tl package kubernetes-binaries default: https://packages.aks.a
-Windows 2025-gen2-tl package oras default: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_windows_amd64.zip
+Windows 2025-gen2-tl package oras default: https://github.com/oras-project/oras/releases/download/v1.3.5/oras_1.3.5_windows_amd64.zip
diff --git a/vhd_files/2025-gen2.txt b/vhd_files/2025-gen2.txt
index 6db9c2b..51a92d5 100644
--- a/vhd_files/2025-gen2.txt
+++ b/vhd_files/2025-gen2.txt
@@ -1 +1 @@
-c:\aks-tools\oras\: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_windows_amd64.zip
+c:\aks-tools\oras\: https://github.com/oras-project/oras/releases/download/v1.3.5/oras_1.3.5_windows_amd64.zip
@@ -80 +80 @@ Windows 2025-gen2 package kubernetes-binaries default: https://packages.aks.azur
-Windows 2025-gen2 package oras default: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_windows_amd64.zip
+Windows 2025-gen2 package oras default: https://github.com/oras-project/oras/releases/download/v1.3.5/oras_1.3.5_windows_amd64.zip
diff --git a/vhd_files/2025.txt b/vhd_files/2025.txt
index fa47bf4..97db201 100644
--- a/vhd_files/2025.txt
+++ b/vhd_files/2025.txt
@@ -1 +1 @@
-c:\aks-tools\oras\: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_windows_amd64.zip
+c:\aks-tools\oras\: https://github.com/oras-project/oras/releases/download/v1.3.5/oras_1.3.5_windows_amd64.zip
@@ -80 +80 @@ Windows 2025 package kubernetes-binaries default: https://packages.aks.azure.com
-Windows 2025 package oras default: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_windows_amd64.zip
+Windows 2025 package oras default: https://github.com/oras-project/oras/releases/download/v1.3.5/oras_1.3.5_windows_amd64.zip

@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Health
test 0% ❌
windows 27% ❌
staging_cse_windows Package 1 65% ➖
debug 0% ❌
provisioningscripts 2% ❌
parts_windows Package 1 73% ➖
Summary 38% (1652 / 6834) ❌

@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Health
github.com/Azure/agentbaker/aks-node-controller 74% ➖
github.com/Azure/agentbaker/aks-node-controller/common 100% ✔
github.com/Azure/agentbaker/aks-node-controller/helpers 68% ➖
github.com/Azure/agentbaker/aks-node-controller/parser 88% ✔
github.com/Azure/agentbaker/aks-node-controller/pkg/gpu 100% ✔
github.com/Azure/agentbaker/aks-node-controller/pkg/nodeconfigutils 89% ✔
github.com/Azure/agentbaker/aks-node-controller/utils 0% ❌
github.com/Azure/agentbaker/apiserver 24% ❌
github.com/Azure/agentbaker/cmd 0% ❌
github.com/Azure/agentbaker/cmd/starter 0% ❌
github.com/Azure/agentbaker/fuzz/api 0% ❌
github.com/Azure/agentbaker/hotfix/render-nodecustomdata 35% ❌
github.com/Azure/agentbaker/pkg/agent 78% ➖
github.com/Azure/agentbaker/pkg/agent/datamodel 77% ➖
github.com/Azure/agentbaker/pkg/agent/toggles 0% ❌
github.com/Azure/agentbaker/pkg/vhdbuilder/datamodel 87% ✔
Summary 75% (6457 / 8561) ➖

@abigailliang-aks-sig-node Abigail Liang (abigailliang-aks-sig-node) changed the title feat: [2/3] add native RepoDepot initialization feat: [4/5] add native RepoDepot initialization Oct 27, 2026
@abigailliang-aks-sig-node
Abigail Liang (abigailliang-aks-sig-node) changed the base branch from abigailliang/anc-cloud-certificates to abigailliang/anc-cloud-refresh October 27, 2026 00:46
@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Health
shellspec spec 29% ❌
Summary 29% (4595 / 16086) ❌

This branch has not been deployed

No deployments
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.

1 participant