Skip to content

chart: system-services-monitor subchart + parent registration - #1385

Draft
dmvevents wants to merge 1 commit into
NVIDIA:mainfrom
dmvevents:helm-system-services-monitor
Draft

chart: system-services-monitor subchart + parent registration#1385
dmvevents wants to merge 1 commit into
NVIDIA:mainfrom
dmvevents:helm-system-services-monitor

Conversation

@dmvevents

Copy link
Copy Markdown

Per #891 split (4 of 5). Marked draft — depends on the implementation PR (#1382) landing first.

Series progress

What this contains

  • distros/kubernetes/nvsentinel/charts/system-services-monitor/ Helm subchart (10 files: Chart.yaml, values.yaml, .helmignore, 7 templates including DaemonSet, ServiceMonitor, ClusterRole/Binding, ServiceAccount, Service, PrometheusRule, _helpers.tpl)
  • distros/kubernetes/nvsentinel/Chart.yaml — subchart dependency registration
  • distros/kubernetes/nvsentinel/values.yaml — defaults wiring

What this does NOT contain

Notes

The subchart's .Values.global.* references (e.g. imagePullSecrets, metricsPort) are supplied by the parent chart at deploy time. Standalone helm lint reports nil-pointer errors on these — that's expected and matches the same pattern in the merged sibling subchart (nic-health-monitor/templates/daemonset.yaml). Validated via helm template against the parent chart context.

cc @XRFXLP

@copy-pr-bot

copy-pr-bot Bot commented Jun 10, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 206e4d7c-4a0d-4647-b3b3-714c47d6fb74

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

@dmvevents this PR has been inactive for 14 days. Do you need help finishing it, or should we close it for now? Feel free to reopen anytime.

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

@dmvevents this PR now has merge conflicts with main. Please rebase to resolve them.

Lands the Helm chart for system-services-monitor (NVIDIA#891 split, 4 of 5).
Subchart under distros/kubernetes/nvsentinel/charts/ + values.yaml +
Chart.yaml dependency registration in the parent chart.

The chart is aligned to the actual runtime contract of the app on the
implementation branch (cli.py / metrics.py), not an assumed one:

DaemonSet
- The app's entrypoint is a Click CLI whose --platform-connector-socket
  option is required=True with no env fallback. The container now passes
  it (plus --port/--poll-interval/--boot-grace-period/--flap-window/
  --flap-threshold/--enable-fabric-check/--processing-strategy) via args:,
  and mounts the platform-connector Unix socket (hostPath /var/run/nvsentinel
  at /var/run, mirroring the slurm/nic/csp siblings). The app prepends
  unix:// itself, so the flag value is a bare path.
- Dropped the envFrom configMapRef and the unused /var/run/dbus mount --
  the app reads host systemd state via nsenter into PID 1, not dbus.
- Keeps NODE_NAME (fieldRef) and LOG_LEVEL, the only env the app reads.

Metrics / alerts
- metricsPort now binds global.metricsPort (2112), matching siblings and
  the --port flag the app actually honors.
- PrometheusRule alerts only on metrics the monitor exports: fabric_manager_up,
  fabric_state_healthy, nvidia_service_up, and fabric_manager_restarts_total
  (added in NVIDIA#1382). The flapping alert fires on
  increase(fabric_manager_restarts_total[10m]) > 3. Removed the
  CUDAValidationFailed alert -- cuda validation is an exit-code-only init
  container (NVIDIA#1384), no cuda_validation_passed metric.
- Alert names follow the ADR-049 check taxonomy: FabricManagerServiceDown,
  FabricStateUnhealthy, GpuServiceDown.

Config
- Deleted the ConfigMap: its keys were either dead or are real CLI flags,
  now templated into args: from values.yaml. LOG_LEVEL is a plain env var.
- ServiceMonitor + PrometheusRule default enabled: false (no health-monitor
  sibling ships them enabled) and ServiceMonitor's release label is now
  driven by .Values.serviceMonitor.labels (empty default) instead of a
  hardcoded release: prometheus.

Mirrors the sibling pattern (nic-health-monitor) for .Values.global
references; the parent chart supplies globals, so validate by rendering
the parent chart (helm template distros/kubernetes/nvsentinel
--set global.systemServicesMonitor.enabled=true), not standalone lint.

Signed-off-by: Anton Alexander <dmvevents@users.noreply.github.com>
@dmvevents
dmvevents force-pushed the helm-system-services-monitor branch from ebf37fa to 2083bfa Compare July 24, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant