fix: make anc even faster by 7s#8902
Conversation
There was a problem hiding this comment.
Pull request overview
This PR aims to reduce Linux node provisioning time by warming the aks-node-controller binary early and by removing an unnecessary systemd ordering dependency on SSH, so ANC can start sooner.
Changes:
- Preload
aks-node-controllerby invoking itsversioncommand during early boot cache warming. - Validate SSHD candidate config with
sshd -Tinstead ofsshd -tinconfigureSSHPubkeyAuth. - Remove
ssh.service/sshd.servicefromaks-node-controller.serviceAfter=ordering.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| parts/linux/cloud-init/artifacts/cse_preload.sh | Adds ANC binary invocation to warm the page cache early. |
| parts/linux/cloud-init/artifacts/cse_config.sh | Changes how the generated sshd_config candidate is validated. |
| parts/linux/cloud-init/artifacts/aks-node-controller.service | Removes SSH-related unit ordering so ANC can start earlier. |
44db5f1 to
d9c1549
Compare
d9c1549 to
0e59d03
Compare
6c9111e to
a5e3fcf
Compare
e3b2937 to
a5e3fcf
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
vhdbuilder/packer/install-ig.sh:251
- Now that the IG import systemd unit is being disabled, ignoring an
ig_import_gadgetsfailure and still writing the/etc/ig.d/skip_vhd_igsentinel can leave the VHD in a broken state (no gadgets imported, and no boot-time import fallback because the unit is disabled). This can also make validations think IG is present even when import failed.
Make gadget import a hard failure (or only create the sentinel when import succeeds) so the VHD build can’t silently bake a VHD without the required assets.
# disable the systemd service (baseline files copied by packer_source.sh)
ig_disable_service_unit || echo "[ig] Failed to disable ${IG_SERVICE_NAME}"
ig_import_gadgets || echo "[ig] Gadget import failed during build"
# Create skip sentinel file to indicate IG was installed from VHD
mkdir -p /etc/ig.d
touch "${IG_SKIP_FILE}"
chmod 644 "${IG_SKIP_FILE}"
a5e3fcf to
92d3c58
Compare
92d3c58 to
a2c1a0f
Compare
36fe37b to
4d1705f
Compare
| if ! systemctl disable --now "${IG_SERVICE_NAME}"; then | ||
| echo "[ig] Failed to disable ${IG_SERVICE_NAME}" | ||
| return 1 | ||
| fi |
| list, err := components.ParseList(opts.componentsPath) | ||
| if err != nil { | ||
| fmt.Printf("parsing components json: %s", err) | ||
| os.Exit(1) | ||
| } |
| func resolvePostfixPath(t *testing.T) string { | ||
| repoBasePath, err := exec.Command("git", "rev-parse", "--show-toplevel").Output() | ||
| assert.NoError(t, err, "unable to determine repo root with git rev-parse") | ||
| basePath := strings.TrimSpace(string(repoBasePath)) | ||
| return filepath.Join(basePath, artifactsRelPath, "cse_preload.sh") | ||
| } |
AgentBaker Linux gate detectiveRun: https://msazure.visualstudio.com/CloudNativeCompute/_build/results?buildId=172147607 Detective summary: Narrow E2E failure in Likely cause / signature: $aclSig. Confidence: Medium-high; PR author action recommended. Recommended owner/action: Inspect scenario kernel-log call trace and compare scriptless NBC vs default ACL Gen2 FIPS TL provisioning path. Strongest alternative: Generic E2E reporting flake; less likely because this is a narrow failed leaf with a concrete kernel-call-trace validation signature. Evidence: ADO timeline marks E2E task failed; test results show two failed IDs; gotestsum leaf summary isolates ACL Gen2 FIPS TL scriptless NBC while default passed. Wiki signature: $aclSig |
|
@awesomenix how can we ensure that we don't have regression on the timing improvements ? can we augment the cse perf suites to ensure we don't regress ? |
Uh oh!
There was an error while loading. Please reload this page.