Skip to content

test(e2e): enable kubelet configuration files by default - #9841

Open
Abigail Liang (abigailliang-aks-sig-node) wants to merge 1 commit into
mainfrom
abigailliang/e2e-kubelet-config-file-default
Open

Abigail Liang (abigailliang-aks-sig-node) wants to merge 1 commit into
mainfrom
abigailliang/e2e-kubelet-config-file-default

Conversation

@abigailliang-aks-sig-node

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:

Switch ordinary Linux AgentBaker E2E scenarios to kubelet configuration-file mode by default, rather than enabling it only in selected scenarios.

  • Enable the shared NBC and scriptless kubelet configuration defaults.
  • Carry the effective mode and kubelet configuration through NBC-to-ANC conversion using AgentBaker's existing configuration generator, preserving scenario overrides and custom settings.
  • Add common Linux validation that checks the running kubelet's --config /etc/default/kubeletconfig.json argument and the configuration file's type.
  • Preserve the two explicit legacy CLI-flags scenarios with opt-outs. Windows defaults and provisioning-mode selection remain unchanged.
  • Document the defaults and add regression coverage for configuration generation, overrides, and CLI opt-outs.

Which issue(s) this PR fixes:

No linked issue.

Validation:

From e2e/:

go test ./... -count=1 -skip '^TestCollectCommandLogs(Concurrency|OutputAndRemoteCleanup|TimeoutPreservesPartialOutput)$'
go build ./...

Both commands passed after rebasing onto the latest main. The unfiltered local test run failed only the three existing log-collection tests above because GNU timeout is not installed on the macOS test host; those tests were excluded from the passing run.

New regression tests cover default configuration generation for Kubernetes 1.33, 1.36, and 1.37 on amd64/arm64, preservation of scenario-specific and custom kubelet settings, and the existing CLI opt-outs.

Before the permanent default change, a targeted Kubernetes 1.37.1 staging smoke passed for both NBC/CSE and AKSNodeConfig/scriptless provisioning with Ubuntu 24.04 Gen2. Each path created a real VM, confirmed the active kubelet used the configuration file, reached Node Ready, and ran test pods. Those smoke scenarios explicitly enabled the feature; they are supporting evidence, not a cloud E2E run against this PR's new defaults or common validator. All resources from that smoke were deleted.

The full cloud E2E suite has not been run against this PR.

Use kubelet configuration files for ordinary Linux scenarios across NBC and ANC provisioning, preserve effective scenario settings and legacy CLI opt-outs, and validate the live kubelet configuration.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 30eea18e-9ed3-40c2-81a6-a2f16ba2d0e4
@github-actions

Copy link
Copy Markdown
Contributor

Windows Unit Test Results

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

Results for commit 8566f0c.

@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage

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

@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Health
github.com/Azure/agentbaker/aks-node-controller 73% ➖
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 0% ❌
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% (5735 / 7646) ➖

@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Health
shellspec spec 28% ❌
Summary 28% (4518 / 15935) ❌

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The suite-wide Linux defaults and common validator have not been exercised together in cloud E2E runs against this PR.

No open issues 🎉

What changed in this PR

Makes kubelet configuration-file mode the default for Linux AgentBaker E2E scenarios, while preserving legacy CLI opt-outs and Windows behavior.

Changes:

  • Enable shared defaults and preserve effective settings during NBC-to-ANC conversion.
  • Validate the running kubelet’s configuration argument and file type.
  • Add regression tests and document defaults and opt-outs.
File Description
e2e/​scenario/​validators.go Checks active kubelet arguments and configuration type.
e2e/​scenario/​validation.go Registers common Linux configuration validation.
e2e/​scenario/​scenario.go Preserves two explicit legacy CLI scenarios.
e2e/​scenario/​node_config.go Enables defaults and preserves converted settings.
e2e/​scenario/​node_config_test.go Tests defaults, overrides, and opt-outs.
e2e/​README.md Documents configuration defaults and legacy opt-outs.

Review effort: Balanced

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.

2 participants