Skip to content

feat(helm): bundle optional NVMe prerequisites - #137

Merged
jmclong (jmclong) merged 2 commits into
mainfrom
feature/bundled-prerequisites
Oct 28, 2026
Merged

jmclong (jmclong) merged 2 commits into
mainfrom
feature/bundled-prerequisites

Conversation

@jmclong

@jmclong jmclong (jmclong) commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Bundle dacs-prereq as an optional, disabled-by-default dependency of both parent charts.
  • Add namespace-scoped rollout verification, opt-in registry-host replacement, and image pull secrets.
  • Match the rollout-check Job to the controller Deployment scheduling defaults: tolerate CriticalAddonsOnly, require Linux amd64/arm64, and softly prefer AKS system nodes. Job tolerations and affinity are independently configurable; other taints still need matching tolerations.
  • Install the controller and bundled prerequisites first, wait for the release to succeed, then apply a standalone Cache fixture. Cache resources remain outside Helm ownership.
  • Preserve the standalone prerequisite install/uninstall Make targets for older baseline charts and retain DACS development-registry chart publication and metadata.
  • Update deployment documentation and preserve prerequisite/global-image regression coverage separately from standalone-Cache and cleanup tests.

Main integration

Rebased onto main at d2f8a210 with two linear commits: 7add25bf (bundled prerequisites and main-integration conflict resolutions) followed by 6b42db5a (rollout-check Job scheduling). This incorporates the merged standalone-Cache (#138), ext4 compatibility (#136), and webhook startup-probe (#115) changes without a merge commit. The final tree is identical to the pre-rebase PR tip d012e1f3; no code or behavior changed during this history-only rebase.

  • Removed the obsolete chart-managed Cache enable/upgrade flow; AKS uses the standalone fixture step already on main, after prerequisite rollout succeeds.
  • Minikube keeps prerequisites disabled and uses its standalone Cache fixture without cache.enabled=true.
  • Restored the standalone prerequisite fallback for the older Helm-upgrade baseline.
  • Kept the merged filesystem compatibility and startup-probe behavior intact.

Standalone development-chart publication is unchanged. Public MCR promotion is handled separately by dacs-internal PR 17719330, which publishes only the parent dacs chart and rewrites its bundled cache-setup image.

Validation

  • After the history-only rebase, re-ran controller formatting, vet, build, and focused Helm tests; test-helper formatting, vet, build, and package compilation using the external modfile; Helm publication regression tests; dependency builds and lint for all three charts; and diff checks. All passed, and the final Git tree matches the pre-rebase tip exactly.
  • Controller go fmt, go vet ./..., go build ./..., and focused TestHelm regression tests passed.
  • Test-helper formatting, vet, build, and package test command passed. The test module still requests a dependency-metadata update with its checked-in manifests, so these checks used an external tidied modfile; repository dependency files are unchanged. The helper package has no unit tests.
  • Helm publication regression tests, dependency builds, and lint passed for all three charts.
  • The scheduling follow-up passed controller formatting, vet, build, and focused TestHelm regressions, including scheduling overrides. Direct rendering of the standalone prerequisite chart and both parent bundles confirmed the Job tolerations and affinity exactly match controller defaults, with no DaemonSet node selector.
  • Bash/POSIX shell syntax, ShellCheck, pipeline YAML and 21 embedded-shell syntax checks, install-order assertions, and local/OCI/fallback Make dry-runs passed.
  • The repository-pinned zizmor pre-commit hook passed. The older system-installed zizmor could not parse current main workflow syntax.
  • The actual integrated chart passed an offline simulation through the bundled-only dacs-internal publisher, including default/enabled rendering and public image-path checks, with no standalone prerequisite package available.
  • git diff --check passed.

Live AKS rollout, reboot, upgrade/uninstall, Azure Pipelines server-side compilation, and MCR publication were not performed.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@jmclong

Copy link
Copy Markdown
Contributor Author

/azp run dacs-pullrequest

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Add optional prerequisite dependencies, rollout verification, registry settings, and DACS build and pipeline integration. Preserve standalone chart publication.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4e7adc4d-b2ae-4e92-9e76-2d857187198d
Tolerate CriticalAddonsOnly and prefer AKS system nodes without requiring a system pool. Match the controller's Linux amd64/arm64 eligibility, expose independent Job scheduling values, and cover defaults and overrides in Helm regression tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f5ab036a-4dfa-4f96-809f-5f4a4d7f6b54
@jmclong
jmclong (jmclong) force-pushed the feature/bundled-prerequisites branch from d012e1f to 6b42db5 Compare October 28, 2026 20:12
@jmclong
jmclong (jmclong) merged commit 5e9eed6 into main Oct 28, 2026
26 checks passed
@jmclong
jmclong (jmclong) deleted the feature/bundled-prerequisites branch October 28, 2026 20:16
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.

3 participants