Skip to content

test(scriptless): Enable scriptless phase 3 in AB e2es#8453

Open
lilypan26 wants to merge 5 commits intomainfrom
lily/scriptless/phase-3-e2e
Open

test(scriptless): Enable scriptless phase 3 in AB e2es#8453
lilypan26 wants to merge 5 commits intomainfrom
lily/scriptless/phase-3-e2e

Conversation

@lilypan26
Copy link
Copy Markdown
Contributor

What this PR does / why we need it:
Enables scriptless phase 3 in ab e2es

Which issue(s) this PR fixes:

Fixes #

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

PR Title Lint Failed ❌

Current Title: test(scriptless): Enable scriptless phase 3 in AB e2es

Your PR title doesn't follow the expected format. Please update your PR title to follow one of these patterns:

Conventional Commits Format:

  • feat: add new feature - for new features
  • fix: resolve bug in component - for bug fixes
  • docs: update README - for documentation changes
  • refactor: improve code structure - for refactoring
  • test: add unit tests - for test additions
  • chore: remove dead code - for maintenance tasks
  • chore(deps): update dependencies - for updating dependencies
  • ci: update build pipeline - for CI/CD changes

Guidelines:

  • Use lowercase for the type and description
  • Keep the description concise but descriptive
  • Use imperative mood (e.g., "add" not "adds" or "added")
  • Don't end with a period

Examples:

  • feat(windows): add secure TLS bootstrapping for Windows nodes
  • fix: resolve kubelet certificate rotation issue
  • docs: update installation guide
  • Added new feature
  • Fix bug.
  • Update docs

Please update your PR title and the lint check will run again automatically.

@lilypan26 lilypan26 changed the title Lily/scriptless/phase 3 e2e test(scriptless): Enable scriptless phase 3 in AB e2es May 5, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Enables “scriptless phase 3” coverage in the AgentBaker e2e suite by adding a new scriptless_anc subtest path that provisions nodes using AKSNodeConfig/aks-node-controller, plus wiring many existing scenarios to provide an AKSNodeConfigMutator.

Changes:

  • Added a new scriptless_anc subtest variant and runtime flag (EnableScriptlessANC) to drive scriptless phase-3 execution.
  • Refactored/expanded the e2e “aks-node-controller hack” customData generation to optionally include AKSNodeConfig and/or an nbc-cmd script.
  • Updated many scenarios to set equivalent AKSNodeConfigMutator fields alongside existing NBC mutators.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 6 comments.

File Description
e2e/vmss.go Refactors customData hack generation and wires scriptless ANC + NBC cmd hack paths into VMSS creation.
e2e/types.go Adds EnableScriptlessANC and adjusts kubelet-config-file detection logic for scriptless ANC scenarios.
e2e/test_helpers.go Adds scriptless_anc subtest generation and new gating helper.
e2e/scenario_test.go Adds AKSNodeConfigMutator coverage across many existing scenarios.

Comment thread e2e/vmss.go Outdated
Comment thread e2e/vmss.go Outdated
Comment thread e2e/vmss.go Outdated
Comment thread e2e/vmss.go
Comment thread e2e/test_helpers.go
Comment on lines 119 to 125
func supportsScriptlessNBCCSECmd(s *Scenario) bool {
return s.AKSNodeConfigMutator == nil && !s.IsWindows() && len(s.Config.CustomDataWriteFiles) <= 0 && !s.VHDCaching && !config.Config.TestPreProvision && !s.SkipScriptlessNBC
return !s.Tags.Scriptless && !s.IsWindows() && len(s.Config.CustomDataWriteFiles) <= 0 && !s.VHDCaching && !config.Config.TestPreProvision && !s.SkipScriptlessNBC
}

func supportsScriptlessAKSNodeConfig(s *Scenario) bool {
return s.AKSNodeConfigMutator != nil && !s.IsWindows() && len(s.Config.CustomDataWriteFiles) <= 0 && !s.VHDCaching && !config.Config.TestPreProvision
}
Comment thread e2e/vmss.go Outdated
if s.Runtime.AKSNodeConfig != nil {
aksNodeConfigJSON, err := nodeconfigutils.MarshalConfigurationV1(s.Runtime.AKSNodeConfig)
if err != nil {
return "", fmt.Errorf("failed to marshal nbc, error: %w", err)
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