Skip to content

Restore userns Longhorn smoke harness to default-off #2619

Description

@devantler

🤖 Generated by the Daily AI Engineer

Objective

Return the disposable userns-longhorn-smoke component to its default-off state after the production idmapped-mount proof, recording both the proof and storage cleanup before any real stateful workload opts into user namespaces.

Details

#2599/#2600 added the default-off harness. #2604/#2605 activated it, but #2604 closed even though its checklist required a cleanup PR and garbage-collection verification.

Current main still includes - userns-longhorn-smoke/ in k8s/providers/hetzner/apps/kustomization.yaml. The short-lived proof therefore remains declaratively active, with no open issue or PR tracking cleanup. This leaves the sequencing promised by #1807 incomplete.

Proposed direction:

  • capture the existing Job's completion, UID/GID-map, round-trip, and warning-event evidence
  • comment userns-longhorn-smoke/ out of the Hetzner apps kustomization and restore its default-off lifecycle comment
  • retain the standalone component for future regression checks
  • after rollout, verify all generated Kubernetes and Longhorn storage objects are gone
  • record the completed proof on k8s 1.36 readiness: clean on removals; pilot user namespaces, watch VolumeGroupSnapshot #1807

No real application opt-in, Kyverno policy change, or local/CI rollout belongs in this slice.

Checklist

  • Before removal, the Job is Complete; logs show non-zero host UID/GID map starts and userns-longhorn-round-trip=passed; no attributable warning events exist.
  • Hetzner apps no longer includes the component; complete local and production renders contain zero smoke Namespace or Job objects.
  • The standalone component still renders exactly one restricted Namespace and one bounded, no-retry, tokenless Job using hostUsers: false and a 256Mi RWO generic-ephemeral longhorn-wffc claim.
  • Naming, embedded-JSON, local/prod Kustomize, local/prod KSail validation, NSA threshold, and git diff --check pass.
  • After rollout, the Namespace, Job/Pod, PVC/PV, and corresponding Longhorn volume are absent.
  • k8s 1.36 readiness: clean on removals; pilot user namespaces, watch VolumeGroupSnapshot #1807 records the successful proof and identifies Headlamp as the next separately gated stateful pilot.
  • This issue closes only after cleanup verification.

Dependencies

There is no external blocker; the live proof evidence must be captured before disabling the harness.

Notes

XS-Small: one kustomization gate/comment change, static validation, and read-only pre/post-deployment evidence.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions