feat(helm): make gateway PVC size and StorageClass configurable
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 52/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- helm, kubernetes
- Domaine
- devops, infrastructure
Piste de recherche
Commencez par localiser les volumeClaimTemplates du StatefulSet gateway et les valeurs existantes du PVC workspace dans le chart Helm, en utilisant le chart publié 0.0.116 comme baseline. Exécutez helm template avec les valeurs par défaut et des valeurs remplacées afin de vérifier la taille du claim et la StorageClass du gateway, puis couvrez ces cas dans les tests Helm et documentez les implications de l’immuabilité de StatefulSet/PVC pour les mises à niveau.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
User Story
As a Kubernetes platform operator deploying the OpenShell gateway through Helm, I want to select the gateway PVC's size and StorageClass, so that encrypted gateway state lands on the cluster's retained stateful storage with capacity appropriate to the deployment.
Problem Statement
OpenShell Helm chart 0.0.116 hard-codes the StatefulSet volumeClaimTemplates request to 1Gi and does not set or expose storageClassName. The chart exposes workspace PVC size/class values, but not the gateway database claim.
Impact / Why This Matters
Without chart values, operators must accept the cluster's default StorageClass and fixed capacity or carry a post-render patch. This can put the gateway's encrypted credential database and control-plane state on an unintended storage tier. A later correction may require StatefulSet/PVC migration because volumeClaimTemplates fields are immutable in common upgrade paths. Post-render patches are also coupled to the template's claim order.
Proposed Design
Expose a small gateway persistence block in Helm values, for example:
persistence:
size: 1Gi
storageClassName: ""
The existing observable behavior should remain the default: a 1Gi claim using the cluster's default StorageClass when no values are set. Setting these values should render the requested capacity and storageClassName into the gateway StatefulSet. Naming is illustrative; the important user workflow is being able to declare both fields without a post-renderer.
Acceptance Criteria
- The gateway PVC request size is configurable through a documented chart value.
- The gateway PVC StorageClass is configurable through a documented chart value.
- Omitting the new values preserves the current
1Gi/default-StorageClass behavior. -
helm templatetests cover default and overridden values. - Upgrade documentation notes the StatefulSet/PVC immutability implications for existing releases.
Alternatives Considered
- Use the cluster's default StorageClass and expand the claim later. This does not guarantee the required retention/storage tier and depends on expansion support.
- Pre-create a PVC. The StatefulSet currently owns a
volumeClaimTemplateand has no existing-claim workflow. - Carry a Flux/Helm post-render patch. This works, but is coupled to the StatefulSet resource name and claim index, and it shifts a normal storage choice out of the chart's supported interface.
Agent Investigation
- Verified the behavior against the released chart
0.0.116at OCI digestsha256:df55cd1538bdfb7836834c30dfcf8373b85ffea83bbfd70d50dbe69407a0d2b3. - Rendering with production values still produces
resources.requests.storage: 1Giand nostorageClassNameuntil a post-render patch is applied. - Searched open and closed issues for Helm persistence,
volumeClaimTemplates, storage size, and StorageClass; no existing issue matched this gateway PVC gap.
Checklist
- I've reviewed existing issues and the architecture docs
- This is a design proposal, not a "please build this" request
- Langage dominant
- Rust
- Étoiles
- 8.7k
- Forks
- 1.3k
- Merge moyen
- 1 j 22 h
- PR mergées (30 j)
- 328
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de NVIDIA/OpenShell
-
state:triage-needed
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
state:triage-needed
Difficulté 1/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
area:docs
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
state:triage-needed
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
NVIDIA/OpenShell#3400 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area:cli state:validated
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
NVIDIA/OpenShell#2888 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de NVIDIA/OpenShell
Issues similaires
-
Fix large enum variantOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
software-challenge/player_rust#22 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
foundry-rs/foundry#17175 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
github/copilot-sdk#2793 ·
Les mainteneurs répondent en général sous 1 jour
-
Delta overflow errorOuverteB - bug DS - win32
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
rust-windowing/winit#4722 ·
Les mainteneurs répondent en général sous 2 jours