Proto commits in Azure/AgentBaker

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:133c697
Author:Karen Chen
Committer:GitHub

Merge branch 'main' into codex/mig-profile-layout-runtime

Commit:14ae9d5
Author:Runzhen
Committer:GitHub

chore: add enable DRA flag in scriptless proto file (#9120) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Commit:0b10660
Author:Karen Chen
Committer:GitHub

feat: use MIG profile layout for partitioning

Commit:e909115
Author:Wen Huang

Merge remote-tracking branch 'origin/main' into wenhug/kubernetes-1.37-package-version-merge-main-signed # Conflicts: # parts/linux/cloud-init/artifacts/cse_config.sh

Commit:cf6ccd2
Author:RUNZHEN WANG

Merge branch 'main' into dra-scriptless

Commit:11663f4
Author:Saewon Kwak
Committer:GitHub

feat: add LocalDNS forward health knobs (#9174)

Commit:a8cf296
Author:Saewon Kwak
Committer:Saewon Kwak

feat: add LocalDNS forward health knobs

Commit:4c60857
Author:Karen Chen
Committer:GitHub

feat: use MIG profile layout for partitioning

Commit:076dd4f
Author:RUNZHEN WANG

dra

Commit:e2c4492
Author:Wen Huang

fix: carry Kubernetes package version through ANC

Commit:157a928
Author:RUNZHEN WANG

dra

Commit:df0019c
Author:RUNZHEN WANG

dra

Commit:7fc6928
Author:Karen Chen
Committer:GitHub

feat: add MIG profile layout configuration (#9081)

Commit:479c574
Author:Karen Chen
Committer:GitHub

docs: clarify MIG profile layout contract

Commit:d0454ee
Author:Karen Chen
Committer:GitHub

fix: use field 9 for MIG profile layout

Commit:c714b2c
Author:Karen Chen
Committer:GitHub

feat: add MIG profile layout config

Commit:51a22c2
Author:Karen Chen
Committer:GitHub

feat: add MIG profile layout configuration

Commit:ca8995a
Author:Karen Chen
Committer:GitHub

feat: replace mixed MIG calculation with profile layout

Commit:96caf4c
Author:Karen Chen
Committer:GitHub

Merge branch 'main' into codex/mig-profiles-contract

Commit:cc6daf4
Author:Saewon Kwak

Add LocalDNS live patching handler Wire localDNS into the generic knead live-patching loop and add ANC support for applying LocalDNS config from dispatched payloads or LPS. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Commit:6e39008
Author:Karen Chen
Committer:GitHub

refactor: rename MIG slice capacity proto field

Commit:4420bb9
Author:Karen Chen
Committer:GitHub

feat: make GPU instance partitioning capacity-aware

Commit:9d76635
Author:Thibault Cohen
Committer:GitHub

fix: ensure kubelet and containerd in kube.slice via systemd drop-ins (#8958)

Commit:9e43c8b
Author:Abigail Liang
Committer:GitHub

fix(kubelet): remove streamingConnectionIdleTimeout for k8s >= 1.34 (#8812)

Commit:deeee05
Author:Thibault Cohen
Committer:Thibault Cohen

rename from kube-reserved to kubereserved

Commit:b92dafe
Author:Thibault Cohen
Committer:Thibault Cohen

Rename kube.slice to kube-reserved.slice

Commit:478c1b4
Author:Thibault Cohen
Committer:Thibault Cohen

Place kubelet and containerd in kube.slice when node hardening is enabled

Commit:86a754b
Author:Karen Chen
Committer:GitHub

Merge branch main into codex/mig-profiles-contract

Commit:cbc7a71
Author:Thibault Cohen
Committer:Mark Ibrahim

rename from kube-reserved to kubereserved

Commit:bc3b582
Author:Thibault Cohen
Committer:Mark Ibrahim

Rename kube.slice to kube-reserved.slice

Commit:7163ae8
Author:Thibault Cohen
Committer:Mark Ibrahim

Place kubelet and containerd in kube.slice when node hardening is enabled

Commit:23dd03d
Author:Thibault Cohen

rename from kube-reserved to kubereserved

Commit:8a3573f
Author:C.YAO
Committer:GitHub

feat: add aks-live-patching module with live patching service proto (#8868) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Commit:13e1da0
Author:Thibault Cohen
Committer:Thibault Cohen

Rename kube.slice to kube-reserved.slice

Commit:a58d15f
Author:Thibault Cohen
Committer:Thibault Cohen

Place kubelet and containerd in kube.slice when node hardening is enabled

Commit:0ba6628
Author:Abigailliang

Merge remote-tracking branch 'origin/main' into remove-streaming-connection-idle-timeout # Conflicts: # aks-node-controller/parser/parser.go

Commit:dea3c28
Author:Thibault Cohen

Rename kube.slice to kube-reserved.slice

Commit:50681a8
Author:Thibault Cohen

Place kubelet and containerd in kube.slice when node hardening is enabled

Commit:db12a63
Author:Yao Cheng (AKS)
Committer:Yao Cheng (AKS)

feat: add aks-live-patching module with live patching service proto

Commit:98b6ee1
Author:Karen Chen
Committer:GitHub

feat: support mixed MIG profiles

Commit:d802cd6
Author:Yao Cheng (AKS)
Committer:Yao Cheng (AKS)

feat: add aks-live-patching module with live patching service proto

Commit:0e1dc0d
Author:Devinwong
Committer:GitHub

feat(anc): deliver node toggles via generic enabled_features map (2.1d) (#8917) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

The documentation is generated from this commit.

Commit:29afaec
Author:Abigailliang

Merge remote-tracking branch 'origin/main' into remove-streaming-connection-idle-timeout

Commit:32c9a87
Author:Saewon Kwak
Committer:GitHub

feat: support localdns hosts plugin refresh override (#8895)

Commit:5a5e2cf
Author:Saewon Kwak
Committer:Saewon Kwak

feat: support localdns hosts plugin refresh override

Commit:80e54ea
Author:Abigailliang
Committer:Abigailliang

fix(kubelet): remove streamingConnectionIdleTimeout for k8s >= 1.34 streamingConnectionIdleTimeout was removed from KubeletConfiguration in k8s 1.34. This ensures it does not appear on the command line or in the config file for those versions. Changes: - Delete --streaming-connection-idle-timeout from KubeletFlags in baker (Linux + Windows) - Filter deprecated flags from CustomConfiguration output path without mutating RP data - Add getDeprecatedKubeletFlags util for version-gated flag filtering - Clear the flag in aks-node-controller parser (scriptless path) - Mark proto field and Go struct field as deprecated - Regenerate kubelet_config.pb.go via make proto-generate - Add comprehensive unit tests covering version gating, final command line output, custom configuration path, and non-reintroduction - Add e2e test removing streaming-connection-idle-timeout from NBC template

Commit:398e69d
Author:Abigailliang

fix(kubelet): remove streamingConnectionIdleTimeout for k8s >= 1.34 streamingConnectionIdleTimeout was removed from KubeletConfiguration in k8s 1.34. This ensures it does not appear on the command line or in the config file for those versions. Changes: - Delete --streaming-connection-idle-timeout from KubeletFlags in baker (Linux + Windows) - Filter deprecated flags from CustomConfiguration output path without mutating RP data - Add getDeprecatedKubeletFlags util for version-gated flag filtering - Clear the flag in aks-node-controller parser (scriptless path) - Mark proto field and Go struct field as deprecated - Regenerate kubelet_config.pb.go via make proto-generate - Add comprehensive unit tests covering version gating, final command line output, custom configuration path, and non-reintroduction - Add e2e test removing streaming-connection-idle-timeout from NBC template

Commit:9147e26
Author:Devin Wong

docs(anc): drop 'or unset' from proto3 bool comment proto3 non-optional bool has no distinct unset state; false covers it. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Commit:6c7a49c
Author:Devin Wong

feat(anc): add enable_provisioning_hotfix contract field (2.1d) Add the AKSNodeConfig proto contract field enable_provisioning_hotfix (field 45, default false) and render the on-node enabled_features.sh from it in the scriptless boothook custom data. - proto: new bool enable_provisioning_hotfix = 45; regenerated Go bindings expose Configuration.GetEnableProvisioningHotfix(). - nodeconfigutils.CustomData: enabledFeaturesBlock(cfg) emits a cloud-boothook snippet writing /opt/azure/containers/enabled_features.sh with ENABLE_PROVISIONING_HOTFIX=true (0600) only when the field is true. When false/unset it returns "" so custom data is byte-identical to today, preserving the 6-month VHD backward-compat window. The 2.1c wrapper already reads enabled_features.sh and gates check-hotfix on ENABLE_PROVISIONING_HOTFIX=true (fail-open). aks-rp sets this field on the scriptless path to enable provisioning hotfix per region. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Commit:d03db7d
Author:Saewon Kwak
Committer:Saewon Kwak

feat: support localdns hosts plugin refresh override

Commit:9102831
Author:Devin Wong
Committer:Devin Wong

feat(anc): deliver ENABLE_PROVISIONING_HOTFIX via enabled_features.sh Adds the producer half of the provisioning-hotfix gate. The AKSNodeConfig contract field `enable_provisioning_hotfix` (tag 45) now drives an on-node feature-flag file: when true, the cloud-boothook writes /opt/azure/containers/enabled_features.sh containing the literal line `ENABLE_PROVISIONING_HOTFIX=true` (quoted heredoc, chmod 0600) before the aks-node-controller service is started. The 2.1c wrapper sources that file and keeps the existing gate, so this file is the single delivery channel. When the field is false/unset, nothing is written and the generated custom data is byte-identical to before this feature existed (6-month VHD backward-compat). Flatcar/Ignition path does not write enabled_features.sh in M1; provisioning- hotfix is a no-op on Flatcar (follow-up if product needs it). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Commit:69bbf8a
Author:Lily Pan

revert proto changes

Commit:7fcf159
Author:Devin Wong
Committer:Devin Wong

feat(anc): deliver ENABLE_PROVISIONING_HOTFIX via enabled_features.sh Adds the producer half of the provisioning-hotfix gate. The AKSNodeConfig contract field `enable_provisioning_hotfix` (tag 45) now drives an on-node feature-flag file: when true, the cloud-boothook writes /opt/azure/containers/enabled_features.sh containing the literal line `ENABLE_PROVISIONING_HOTFIX=true` (quoted heredoc, chmod 0600) before the aks-node-controller service is started. The 2.1c wrapper sources that file and keeps the existing gate, so this file is the single delivery channel. When the field is false/unset, nothing is written and the generated custom data is byte-identical to before this feature existed (6-month VHD backward-compat). Flatcar/Ignition path does not write enabled_features.sh in M1; provisioning- hotfix is a no-op on Flatcar (follow-up if product needs it). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Commit:0157c42
Author:Karen Chen
Committer:GitHub

feat: support mixed MIG profiles

Commit:a4130fc
Author:Yao Cheng (AKS)

feat: add aks-live-patching module with live patching service proto

Commit:1cd9637
Author:Lily Pan

add usecontainerdv2 to aksnodeconfig

Commit:3dc5629
Author:Cameron Meissner
Committer:GitHub

chore: remove secure TLS bootstrapping deadline configuration field (#8801)

Commit:c5c2a69
Author:Abigailliang

style: run buf format on kubelet_config.proto

Commit:c2dd0bb
Author:Abigailliang
Committer:Abigailliang

fix(kubelet): remove streamingConnectionIdleTimeout from Kubelet configuration files for k8s >= 1.34

Commit:aaa9706
Author:Abigailliang

fix(kubelet): remove streamingConnectionIdleTimeout from Kubelet configuration files for k8s >= 1.34

Commit:551a650
Author:cameronmeissner

chore: apply buf format to kubelet_config.proto

Commit:45ecec7
Author:cameronmeissner

cleanup: remove secure TLS bootstrapping deadline configuration field

Commit:5a5b74a
Author:Devin Wong
Committer:Devin Wong

feat(anc): gate check-hotfix on enable_provisioning_hotfix contract field Replaces the env-delivery approach (systemd drop-in + cse_cmd.sh) with a single contract field. check-hotfix self-gates on the new AKSNodeConfig field enable_provisioning_hotfix (proto tag 45, optional bool); when it is not true the command no-ops with telemetry outcome=disabled and makes no apiserver call. Default-off, fail-open. Relaxes the ENABLE_PROVISIONING_HOTFIX env gate introduced in 2.1c so the wrapper calls check-hotfix unconditionally; gating now lives in the Go binary via the contract field as the single source of truth. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Commit:21ae228
Author:Devin Wong
Committer:Devin Wong

feat(anc): gate check-hotfix on enable_provisioning_hotfix contract field Replaces the env-delivery approach (systemd drop-in + cse_cmd.sh) with a single contract field. check-hotfix self-gates on the new AKSNodeConfig field enable_provisioning_hotfix (proto tag 45, optional bool); when it is not true the command no-ops with telemetry outcome=disabled and makes no apiserver call. Default-off, fail-open. Relaxes the ENABLE_PROVISIONING_HOTFIX env gate introduced in 2.1c so the wrapper calls check-hotfix unconditionally; gating now lives in the Go binary via the contract field as the single source of truth. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Commit:d552a0a
Author:Devin Wong
Committer:Devin Wong

feat(anc): gate check-hotfix on enable_provisioning_hotfix contract field Replaces the env-delivery approach (systemd drop-in + cse_cmd.sh) with a single contract field. check-hotfix self-gates on the new AKSNodeConfig field enable_provisioning_hotfix (proto tag 45, optional bool); when it is not true the command no-ops with telemetry outcome=disabled and makes no apiserver call. Default-off, fail-open. Relaxes the ENABLE_PROVISIONING_HOTFIX env gate introduced in 2.1c so the wrapper calls check-hotfix unconditionally; gating now lives in the Go binary via the contract field as the single source of truth. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Commit:791735f
Author:jumpinthefire
Committer:GitHub

feat: add secondary nic count in NBC and NetworkConfig (#8697)

Commit:ec31c81
Author:Peter Damianov
Committer:GitHub

fix: Revert "fix: widen fs.file-max sysctl from int32 to int64 (#8640)" (#8658)

Commit:0af3ae2
Author:fcher
Committer:GitHub

fix: widen fs.file-max sysctl from int32 to int64 (#8640) Sets the right data type(int64) for fs.file-max sysctl parameter, matching the Linux kernel default that customers already see at runtime. Also matches the documentation here: https://learn.microsoft.com/en-us/azure/aks/custom-node-configuration?tabs=linux-node-pools

Commit:3b9a299
Author:Mark Ibrahim
Committer:GitHub

feat: add new kubeletconfigs for node hardening (#8497)

Commit:713194a
Author:Aadhar Agarwal

feat(acl): set enable_selinux=true in containerd config for ACL nodes

Commit:7e38971
Author:Sabina Miezah

Merged PR 15524133: Non-sec regkeys 5B Add non-security registry keys to Windows VHD settings. ---- #### AI description (iteration 1) #### PR Classification New feature: Adds comprehensive test suite for the DAG (Directed Acyclic Graph) execution framework. #### PR Summary This PR introduces extensive end-to-end testing for a DAG-based concurrent task execution library, covering success paths, error handling, dependency management, and edge cases. - `/e2e/dag/dag_test.go`: Adds 722 lines of test coverage including basic task execution tests (`TestGo`, `TestRun`), typed dependency chain tests (`TestGo1_Chain`, `TestGo2`, `TestGo3`), error propagation and skipping logic tests, diamond dependency pattern validation, context cancellation handling, and panic recovery verification - Tests verify dependency-based task skipping when upstream tasks fail, ensuring downstream tasks don't execute unnecessarily - Includes edge case testing for deadlock scenarios with cyclic dependencies and self-dependencies, DAGError aggregation, and proper error prioritization over context cancellation - Validates panic recovery in both `Go` and `Run` tasks, ensuring panics are surfaced as errors rather than crashing the process - Covers multi-error scenarios and verifies that real errors are preserved even when cancellation noise is present <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->

Commit:521c16e
Author:Saewon Kwak
Committer:GitHub

feat: add CoreDNS hosts plugin support for LocalDNS (#8165) Co-authored-by: Saewon Kwak <sakwa@microsoft.com> Co-authored-by: Jingwen Wu <jingwenw15@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

Commit:eacb8f7
Author:Saewon Kwak
Committer:Jingwen Wu

pass critical FQDNs from RP instead of hardcoding in VHD script The aks-hosts-setup.sh script previously hardcoded cloud→FQDN mappings in a case statement covering only 3 clouds (Public, China, USGov). This meant 5+ sovereign clouds were unsupported and every new cloud required a VHD release. Have the RP pass LOCALDNS_CRITICAL_FQDNS (comma-separated) through the CSE env pipeline. The script becomes a simple resolver loop with no cloud-specific logic. If the env var is empty (old RP), the script exits gracefully and the corefile falls back to the no-hosts variant. Changes: - Add CriticalFQDNs field to LocalDNSProfile (types.go, proto) - Add GetLocalDNSCriticalFQDNs template func (baker.go) - Add LOCALDNS_CRITICAL_FQDNS to CSE env (cse_cmd.sh, parser.go) - Replace TARGET_CLOUD case statement in enableAKSHostsSetup with LOCALDNS_CRITICAL_FQDNS check (cse_config.sh) - Replace cloud→FQDN case statement in aks-hosts-setup.sh with comma-separated FQDN list parsing - Update all shell spec and Go unit tests

Commit:1931fbd
Author:Saewon Kwak
Committer:Jingwen Wu

feat(localdns): add hosts plugin support for LocalDNS Add aks-hosts-setup.sh, aks-hosts-setup.service, and aks-hosts-setup.timer to resolve critical AKS FQDNs via LocalDNS hosts plugin. This enables authoritative DNS responses for MCR and other endpoints, reducing dependency on external DNS servers during node bootstrap. Changes include: - New systemd units for hosts file setup and periodic refresh - CSE integration: enableAKSHostsSetup() with VHD-presence guards - CoreDNS corefile generation with hosts plugin support - aks-node-controller scriptless path support - E2E tests for Ubuntu 2204/2404 and AzureLinux V3 - ShellSpec unit tests for all new shell scripts - Proto/pb.go updates for EnableHostsPlugin field

Commit:c5a3b50
Author:Saewon Kwak
Committer:Jingwen Wu

pass critical FQDNs from RP instead of hardcoding in VHD script The aks-hosts-setup.sh script previously hardcoded cloud→FQDN mappings in a case statement covering only 3 clouds (Public, China, USGov). This meant 5+ sovereign clouds were unsupported and every new cloud required a VHD release. Have the RP pass LOCALDNS_CRITICAL_FQDNS (comma-separated) through the CSE env pipeline. The script becomes a simple resolver loop with no cloud-specific logic. If the env var is empty (old RP), the script exits gracefully and the corefile falls back to the no-hosts variant. Changes: - Add CriticalFQDNs field to LocalDNSProfile (types.go, proto) - Add GetLocalDNSCriticalFQDNs template func (baker.go) - Add LOCALDNS_CRITICAL_FQDNS to CSE env (cse_cmd.sh, parser.go) - Replace TARGET_CLOUD case statement in enableAKSHostsSetup with LOCALDNS_CRITICAL_FQDNS check (cse_config.sh) - Replace cloud→FQDN case statement in aks-hosts-setup.sh with comma-separated FQDN list parsing - Update all shell spec and Go unit tests

Commit:212e749
Author:Saewon Kwak
Committer:Jingwen Wu

feat(localdns): add hosts plugin support for LocalDNS Add aks-hosts-setup.sh, aks-hosts-setup.service, and aks-hosts-setup.timer to resolve critical AKS FQDNs via LocalDNS hosts plugin. This enables authoritative DNS responses for MCR and other endpoints, reducing dependency on external DNS servers during node bootstrap. Changes include: - New systemd units for hosts file setup and periodic refresh - CSE integration: enableAKSHostsSetup() with VHD-presence guards - CoreDNS corefile generation with hosts plugin support - aks-node-controller scriptless path support - E2E tests for Ubuntu 2204/2404 and AzureLinux V3 - ShellSpec unit tests for all new shell scripts - Proto/pb.go updates for EnableHostsPlugin field

Commit:b4a50ec
Author:Mitch Zhu

draft agentbaker cse rdma support

Commit:6e249c2
Author:Saewon Kwak
Committer:Jingwen Wu

pass critical FQDNs from RP instead of hardcoding in VHD script The aks-hosts-setup.sh script previously hardcoded cloud→FQDN mappings in a case statement covering only 3 clouds (Public, China, USGov). This meant 5+ sovereign clouds were unsupported and every new cloud required a VHD release. Have the RP pass LOCALDNS_CRITICAL_FQDNS (comma-separated) through the CSE env pipeline. The script becomes a simple resolver loop with no cloud-specific logic. If the env var is empty (old RP), the script exits gracefully and the corefile falls back to the no-hosts variant. Changes: - Add CriticalFQDNs field to LocalDNSProfile (types.go, proto) - Add GetLocalDNSCriticalFQDNs template func (baker.go) - Add LOCALDNS_CRITICAL_FQDNS to CSE env (cse_cmd.sh, parser.go) - Replace TARGET_CLOUD case statement in enableAKSHostsSetup with LOCALDNS_CRITICAL_FQDNS check (cse_config.sh) - Replace cloud→FQDN case statement in aks-hosts-setup.sh with comma-separated FQDN list parsing - Update all shell spec and Go unit tests

Commit:5d54d03
Author:Saewon Kwak
Committer:Jingwen Wu

feat(localdns): add hosts plugin support for LocalDNS Add aks-hosts-setup.sh, aks-hosts-setup.service, and aks-hosts-setup.timer to resolve critical AKS FQDNs via LocalDNS hosts plugin. This enables authoritative DNS responses for MCR and other endpoints, reducing dependency on external DNS servers during node bootstrap. Changes include: - New systemd units for hosts file setup and periodic refresh - CSE integration: enableAKSHostsSetup() with VHD-presence guards - CoreDNS corefile generation with hosts plugin support - aks-node-controller scriptless path support - E2E tests for Ubuntu 2204/2404 and AzureLinux V3 - ShellSpec unit tests for all new shell scripts - Proto/pb.go updates for EnableHostsPlugin field

Commit:58eebff
Author:Saewon Kwak
Committer:Saewon Kwak

pass critical FQDNs from RP instead of hardcoding in VHD script The aks-hosts-setup.sh script previously hardcoded cloud→FQDN mappings in a case statement covering only 3 clouds (Public, China, USGov). This meant 5+ sovereign clouds were unsupported and every new cloud required a VHD release. Have the RP pass LOCALDNS_CRITICAL_FQDNS (comma-separated) through the CSE env pipeline. The script becomes a simple resolver loop with no cloud-specific logic. If the env var is empty (old RP), the script exits gracefully and the corefile falls back to the no-hosts variant. Changes: - Add CriticalFQDNs field to LocalDNSProfile (types.go, proto) - Add GetLocalDNSCriticalFQDNs template func (baker.go) - Add LOCALDNS_CRITICAL_FQDNS to CSE env (cse_cmd.sh, parser.go) - Replace TARGET_CLOUD case statement in enableAKSHostsSetup with LOCALDNS_CRITICAL_FQDNS check (cse_config.sh) - Replace cloud→FQDN case statement in aks-hosts-setup.sh with comma-separated FQDN list parsing - Update all shell spec and Go unit tests

Commit:2722e1b
Author:Saewon Kwak
Committer:Saewon Kwak

feat(localdns): add hosts plugin support for LocalDNS Add aks-hosts-setup.sh, aks-hosts-setup.service, and aks-hosts-setup.timer to resolve critical AKS FQDNs via LocalDNS hosts plugin. This enables authoritative DNS responses for MCR and other endpoints, reducing dependency on external DNS servers during node bootstrap. Changes include: - New systemd units for hosts file setup and periodic refresh - CSE integration: enableAKSHostsSetup() with VHD-presence guards - CoreDNS corefile generation with hosts plugin support - aks-node-controller scriptless path support - E2E tests for Ubuntu 2204/2404 and AzureLinux V3 - ShellSpec unit tests for all new shell scripts - Proto/pb.go updates for EnableHostsPlugin field

Commit:ef3cd75
Author:Saewon Kwak
Committer:Saewon Kwak

pass critical FQDNs from RP instead of hardcoding in VHD script The aks-hosts-setup.sh script previously hardcoded cloud→FQDN mappings in a case statement covering only 3 clouds (Public, China, USGov). This meant 5+ sovereign clouds were unsupported and every new cloud required a VHD release. Have the RP pass LOCALDNS_CRITICAL_FQDNS (comma-separated) through the CSE env pipeline. The script becomes a simple resolver loop with no cloud-specific logic. If the env var is empty (old RP), the script exits gracefully and the corefile falls back to the no-hosts variant. Changes: - Add CriticalFQDNs field to LocalDNSProfile (types.go, proto) - Add GetLocalDNSCriticalFQDNs template func (baker.go) - Add LOCALDNS_CRITICAL_FQDNS to CSE env (cse_cmd.sh, parser.go) - Replace TARGET_CLOUD case statement in enableAKSHostsSetup with LOCALDNS_CRITICAL_FQDNS check (cse_config.sh) - Replace cloud→FQDN case statement in aks-hosts-setup.sh with comma-separated FQDN list parsing - Update all shell spec and Go unit tests

Commit:e5a9d01
Author:Saewon Kwak
Committer:Saewon Kwak

feat(localdns): add hosts plugin support for LocalDNS Add aks-hosts-setup.sh, aks-hosts-setup.service, and aks-hosts-setup.timer to resolve critical AKS FQDNs via LocalDNS hosts plugin. This enables authoritative DNS responses for MCR and other endpoints, reducing dependency on external DNS servers during node bootstrap. Changes include: - New systemd units for hosts file setup and periodic refresh - CSE integration: enableAKSHostsSetup() with VHD-presence guards - CoreDNS corefile generation with hosts plugin support - aks-node-controller scriptless path support - E2E tests for Ubuntu 2204/2404 and AzureLinux V3 - ShellSpec unit tests for all new shell scripts - Proto/pb.go updates for EnableHostsPlugin field

Commit:ccb3417
Author:Cameron Meissner
Committer:GitHub

feat: add configuration support for secure TLS bootstrap client RPC timeouts (#8261)

Commit:e8710d7
Author:Saewon Kwak
Committer:Saewon Kwak

pass critical FQDNs from RP instead of hardcoding in VHD script The aks-hosts-setup.sh script previously hardcoded cloud→FQDN mappings in a case statement covering only 3 clouds (Public, China, USGov). This meant 5+ sovereign clouds were unsupported and every new cloud required a VHD release. Have the RP pass LOCALDNS_CRITICAL_FQDNS (comma-separated) through the CSE env pipeline. The script becomes a simple resolver loop with no cloud-specific logic. If the env var is empty (old RP), the script exits gracefully and the corefile falls back to the no-hosts variant. Changes: - Add CriticalFQDNs field to LocalDNSProfile (types.go, proto) - Add GetLocalDNSCriticalFQDNs template func (baker.go) - Add LOCALDNS_CRITICAL_FQDNS to CSE env (cse_cmd.sh, parser.go) - Replace TARGET_CLOUD case statement in enableAKSHostsSetup with LOCALDNS_CRITICAL_FQDNS check (cse_config.sh) - Replace cloud→FQDN case statement in aks-hosts-setup.sh with comma-separated FQDN list parsing - Update all shell spec and Go unit tests

Commit:22b5068
Author:Saewon Kwak
Committer:Saewon Kwak

feat(localdns): add hosts plugin support for LocalDNS Add aks-hosts-setup.sh, aks-hosts-setup.service, and aks-hosts-setup.timer to resolve critical AKS FQDNs via LocalDNS hosts plugin. This enables authoritative DNS responses for MCR and other endpoints, reducing dependency on external DNS servers during node bootstrap. Changes include: - New systemd units for hosts file setup and periodic refresh - CSE integration: enableAKSHostsSetup() with VHD-presence guards - CoreDNS corefile generation with hosts plugin support - aks-node-controller scriptless path support - E2E tests for Ubuntu 2204/2404 and AzureLinux V3 - ShellSpec unit tests for all new shell scripts - Proto/pb.go updates for EnableHostsPlugin field

Commit:5d491c3
Author:Saewon Kwak
Committer:Saewon Kwak

pass critical FQDNs from RP instead of hardcoding in VHD script The aks-hosts-setup.sh script previously hardcoded cloud→FQDN mappings in a case statement covering only 3 clouds (Public, China, USGov). This meant 5+ sovereign clouds were unsupported and every new cloud required a VHD release. Have the RP pass LOCALDNS_CRITICAL_FQDNS (comma-separated) through the CSE env pipeline. The script becomes a simple resolver loop with no cloud-specific logic. If the env var is empty (old RP), the script exits gracefully and the corefile falls back to the no-hosts variant. Changes: - Add CriticalFQDNs field to LocalDNSProfile (types.go, proto) - Add GetLocalDNSCriticalFQDNs template func (baker.go) - Add LOCALDNS_CRITICAL_FQDNS to CSE env (cse_cmd.sh, parser.go) - Replace TARGET_CLOUD case statement in enableAKSHostsSetup with LOCALDNS_CRITICAL_FQDNS check (cse_config.sh) - Replace cloud→FQDN case statement in aks-hosts-setup.sh with comma-separated FQDN list parsing - Update all shell spec and Go unit tests

Commit:125890c
Author:Saewon Kwak
Committer:Saewon Kwak

feat(localdns): add hosts plugin support for LocalDNS Add aks-hosts-setup.sh, aks-hosts-setup.service, and aks-hosts-setup.timer to resolve critical AKS FQDNs via LocalDNS hosts plugin. This enables authoritative DNS responses for MCR and other endpoints, reducing dependency on external DNS servers during node bootstrap. Changes include: - New systemd units for hosts file setup and periodic refresh - CSE integration: enableAKSHostsSetup() with VHD-presence guards - CoreDNS corefile generation with hosts plugin support - aks-node-controller scriptless path support - E2E tests for Ubuntu 2204/2404 and AzureLinux V3 - ShellSpec unit tests for all new shell scripts - Proto/pb.go updates for EnableHostsPlugin field

Commit:fd67d6f
Author:Saewon Kwak
Committer:Saewon Kwak

pass critical FQDNs from RP instead of hardcoding in VHD script The aks-hosts-setup.sh script previously hardcoded cloud→FQDN mappings in a case statement covering only 3 clouds (Public, China, USGov). This meant 5+ sovereign clouds were unsupported and every new cloud required a VHD release. Have the RP pass LOCALDNS_CRITICAL_FQDNS (comma-separated) through the CSE env pipeline. The script becomes a simple resolver loop with no cloud-specific logic. If the env var is empty (old RP), the script exits gracefully and the corefile falls back to the no-hosts variant. Changes: - Add CriticalFQDNs field to LocalDNSProfile (types.go, proto) - Add GetLocalDNSCriticalFQDNs template func (baker.go) - Add LOCALDNS_CRITICAL_FQDNS to CSE env (cse_cmd.sh, parser.go) - Replace TARGET_CLOUD case statement in enableAKSHostsSetup with LOCALDNS_CRITICAL_FQDNS check (cse_config.sh) - Replace cloud→FQDN case statement in aks-hosts-setup.sh with comma-separated FQDN list parsing - Update all shell spec and Go unit tests

Commit:489798a
Author:Saewon Kwak
Committer:Saewon Kwak

feat(localdns): add hosts plugin support for LocalDNS Add aks-hosts-setup.sh, aks-hosts-setup.service, and aks-hosts-setup.timer to resolve critical AKS FQDNs via LocalDNS hosts plugin. This enables authoritative DNS responses for MCR and other endpoints, reducing dependency on external DNS servers during node bootstrap. Changes include: - New systemd units for hosts file setup and periodic refresh - CSE integration: enableAKSHostsSetup() with VHD-presence guards - CoreDNS corefile generation with hosts plugin support - aks-node-controller scriptless path support - E2E tests for Ubuntu 2204/2404 and AzureLinux V3 - ShellSpec unit tests for all new shell scripts - Proto/pb.go updates for EnableHostsPlugin field

Commit:15f0468
Author:Saewon Kwak

pass critical FQDNs from RP instead of hardcoding in VHD script The aks-hosts-setup.sh script previously hardcoded cloud→FQDN mappings in a case statement covering only 3 clouds (Public, China, USGov). This meant 5+ sovereign clouds were unsupported and every new cloud required a VHD release. Have the RP pass LOCALDNS_CRITICAL_FQDNS (comma-separated) through the CSE env pipeline. The script becomes a simple resolver loop with no cloud-specific logic. If the env var is empty (old RP), the script exits gracefully and the corefile falls back to the no-hosts variant. Changes: - Add CriticalFQDNs field to LocalDNSProfile (types.go, proto) - Add GetLocalDNSCriticalFQDNs template func (baker.go) - Add LOCALDNS_CRITICAL_FQDNS to CSE env (cse_cmd.sh, parser.go) - Replace TARGET_CLOUD case statement in enableAKSHostsSetup with LOCALDNS_CRITICAL_FQDNS check (cse_config.sh) - Replace cloud→FQDN case statement in aks-hosts-setup.sh with comma-separated FQDN list parsing - Update all shell spec and Go unit tests

Commit:87100b0
Author:Saewon Kwak

feat(localdns): add hosts plugin support for LocalDNS Add aks-hosts-setup.sh, aks-hosts-setup.service, and aks-hosts-setup.timer to resolve critical AKS FQDNs via LocalDNS hosts plugin. This enables authoritative DNS responses for MCR and other endpoints, reducing dependency on external DNS servers during node bootstrap. Changes include: - New systemd units for hosts file setup and periodic refresh - CSE integration: enableAKSHostsSetup() with VHD-presence guards - CoreDNS corefile generation with hosts plugin support - aks-node-controller scriptless path support - E2E tests for Ubuntu 2204/2404 and AzureLinux V3 - ShellSpec unit tests for all new shell scripts - Proto/pb.go updates for EnableHostsPlugin field

Commit:f5a3ad2
Author:Calvin S.
Committer:GitHub

chore: deprecate acr teleport (#8052)

Commit:9aacf98
Author:Saewon Kwak

Merge remote-tracking branch 'origin/main' into sakwa/localdns_poc # Conflicts: # pkg/agent/testdata/AKSUbuntu2204+China/CustomData # pkg/agent/testdata/AKSUbuntu2204+Containerd+CDI/CustomData # pkg/agent/testdata/AKSUbuntu2204+Containerd+DevicePlugin/CustomData # pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG+ArtifactStreaming/CustomData # pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG/CustomData # pkg/agent/testdata/AKSUbuntu2204+CustomCloud+USNat/CustomData # pkg/agent/testdata/AKSUbuntu2204+CustomCloud+USSec/CustomData # pkg/agent/testdata/AKSUbuntu2204+CustomCloud+ootcredentialprovider/CustomData # pkg/agent/testdata/AKSUbuntu2204+CustomCloud/CustomData # pkg/agent/testdata/AKSUbuntu2204+CustomKubeletConfig+CustomLinuxOSConfig/CustomData # pkg/agent/testdata/AKSUbuntu2204+CustomKubeletConfig+SerializeImagePulls/CustomData # pkg/agent/testdata/AKSUbuntu2204+DisableKubeletServingCertificateRotation+CustomKubeletConfig/CustomData # pkg/agent/testdata/AKSUbuntu2204+DisableKubeletServingCertificateRotation/CustomData # pkg/agent/testdata/AKSUbuntu2204+EnableManagedGPU+Disabled/CustomData # pkg/agent/testdata/AKSUbuntu2204+EnableManagedGPU/CustomData # pkg/agent/testdata/AKSUbuntu2204+IMDSRestrictionOff/CustomData # pkg/agent/testdata/AKSUbuntu2204+IMDSRestrictionOnWithFilterTable/CustomData # pkg/agent/testdata/AKSUbuntu2204+IMDSRestrictionOnWithMangleTable/CustomData # pkg/agent/testdata/AKSUbuntu2204+ImplicitlyDisableKubeletServingCertificateRotation/CustomData # pkg/agent/testdata/AKSUbuntu2204+KubeletServingCertificateRotation+CustomKubeletConfig/CustomData # pkg/agent/testdata/AKSUbuntu2204+KubeletServingCertificateRotation/CustomData # pkg/agent/testdata/AKSUbuntu2204+ManagedGPUExperienceAFEC+Disabled/CustomData # pkg/agent/testdata/AKSUbuntu2204+ManagedGPUExperienceAFEC/CustomData # pkg/agent/testdata/AKSUbuntu2204+MigStrategy+Mixed/CustomData # pkg/agent/testdata/AKSUbuntu2204+MigStrategy+None/CustomData # pkg/agent/testdata/AKSUbuntu2204+MigStrategy+Single/CustomData # pkg/agent/testdata/AKSUbuntu2204+NoArtifactStreaming/CustomData # pkg/agent/testdata/AKSUbuntu2204+OutboundTypeBlocked/CustomData # pkg/agent/testdata/AKSUbuntu2204+OutboundTypeNil/CustomData # pkg/agent/testdata/AKSUbuntu2204+OutboundTypeNone/CustomData # pkg/agent/testdata/AKSUbuntu2204+SSHStatusEntraID/CustomData # pkg/agent/testdata/AKSUbuntu2204+SSHStatusOff/CustomData # pkg/agent/testdata/AKSUbuntu2204+SSHStatusOn/CustomData # pkg/agent/testdata/AKSUbuntu2204+SecurityProfile/CustomData # pkg/agent/testdata/AKSUbuntu2204+SerializeImagePulls/CustomData # pkg/agent/testdata/AKSUbuntu2204+cgroupv2/CustomData # pkg/agent/testdata/AKSUbuntu2204+ootcredentialprovider/CustomData # pkg/agent/testdata/AKSUbuntu2404+CustomLinuxOSConfigUlimit/CustomData # pkg/agent/testdata/AKSUbuntu2404+NetworkPolicy/CustomData # pkg/agent/testdata/AKSUbuntu2404+Teleport/CustomData # pkg/agent/testdata/AzureLinuxV2+Kata/CustomData # pkg/agent/testdata/AzureLinuxV3+Kata+DisableUnattendedUpgrades=false/CustomData # pkg/agent/testdata/AzureLinuxV3+Kata+DisableUnattendedUpgrades=true/CustomData # pkg/agent/testdata/AzureLinuxV3+Kata/CustomData # pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=false/CustomData # pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=true/CustomData # pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=false/CustomData # pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=true/CustomData # pkg/agent/testdata/CustomizedImage/CustomData # pkg/agent/testdata/CustomizedImageKata/CustomData # pkg/agent/testdata/CustomizedImageLinuxGuard/CustomData # pkg/agent/testdata/Flatcar+CustomCloud+USSec/CustomData # pkg/agent/testdata/Flatcar+CustomCloud+USSec/CustomData.inner # pkg/agent/testdata/Flatcar+CustomCloud/CustomData # pkg/agent/testdata/Flatcar+CustomCloud/CustomData.inner # pkg/agent/testdata/Flatcar/CustomData # pkg/agent/testdata/Flatcar/CustomData.inner # pkg/agent/testdata/MarinerV2+CustomCloud+USNat/CustomData # pkg/agent/testdata/MarinerV2+CustomCloud+USSec/CustomData # pkg/agent/testdata/MarinerV2+CustomCloud/CustomData # pkg/agent/testdata/MarinerV2+Kata/CustomData # pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=false/CustomData # pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=true/CustomData # pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=false/CustomData # pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=true/CustomData

Commit:2f6ce17
Author:Devinwong
Committer:GitHub

feat: add cloud provider configs into aks-node-config (#8018)

Commit:f97570a
Author:Saewon Kwak

Add scriptless path support for SHOULD_ENABLE_HOSTS_PLUGIN This change enables the aks-node-controller to pass SHOULD_ENABLE_HOSTS_PLUGIN environment variable to CSE scripts for scriptless node provisioning. Changes: - Added enable_hosts_plugin field to LocalDnsProfile proto definition - Added shouldEnableHostsPlugin() helper function in parser - Added SHOULD_ENABLE_HOSTS_PLUGIN to CSE environment variables - Added comprehensive unit tests (6 test cases) - Added integration tests (2 test cases) The environment variable returns "true" only when both enable_local_dns and enable_hosts_plugin are true, enabling the CSE scripts to select the correct localdns Corefile with hosts plugin support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Commit:18d3ddf
Author:Saewon Kwak
Committer:GitHub

delete the 6th property in LocalDnsProfile

Commit:e586737
Author:Saewon Kwak
Committer:GitHub

remove criticalhostsentry

Commit:965d35d
Author:Saewon Kwak

Merge main into sakwa/localdns_poc

Commit:eb6a0cc
Author:Saewon Kwak
Committer:GitHub

feat: add localdns hosts entries support for non-scriptless path