feat: standardize timeout environment-variable semantics
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 45/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- helm, kubernetes, rust
- Bereich
- cli, devops, documentation, testing
Rechercherichtung
Beginne damit, das Parsing und die Validierung der benannten Timeout-Umgebungsvariablen nachzuverfolgen, einschließlich des durch PR #3001 eingeführten Lebenszyklusmusters, und untersuche die bestehende CLI, die Bereitstellungsdokumentation und die automatisierten Tests. Erledigt bedeutet, dass die Konvention Einheiten, Standardwerte, Null, ungültige und außerhalb des zulässigen Bereichs liegende Werte abdeckt; betroffene Variablen ihr folgen oder Ausnahmen dokumentieren; und Tests sowie benutzerseitige Dokumentation das gewählte Verhalten widerspiegeln.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
User Story
As an OpenShell operator or automation author, I want timeout environment variables to have consistent, documented zero and invalid-value behavior, so that configuration does not unexpectedly cause commands to fail immediately or wait forever.
Problem Statement
OpenShell exposes timeout environment variables with inconsistent parsing and zero-value semantics. For example, OPENSHELL_PROVISION_TIMEOUT and proposed OPENSHELL_LIFECYCLE_TIMEOUT parse 0 as an immediate deadline, OPENSHELL_BUILD_NO_PROGRESS_TIMEOUT_SECS falls back to its default for zero or invalid values, OPENSHELL_VAULT_TIMEOUT_SECS rejects zero, and the local Helm collector timeout passes 0s to kubectl rollout status, where it means wait indefinitely.
This makes it difficult to safely configure automation and obscures whether zero means disabled, immediate, default, or unlimited.
Impact / Why This Matters
Operators must infer each variable's contract from implementation details. A copied value such as 0 can cause a CLI workflow to fail immediately or a local cluster setup to block indefinitely. Invalid values also vary between being silently ignored and causing a clear error, making configuration mistakes harder to detect.
Proposed Design
Define and document a shared timeout environment-variable contract for OpenShell-owned tooling. For each timeout setting, specify its unit, default, valid range, behavior for zero, and behavior for invalid or out-of-range values. Apply the chosen contract consistently where practical, while retaining an explicitly documented exception only when the underlying dependency imposes a different meaning.
Acceptance Criteria
- The project has a documented timeout environment-variable convention covering units, defaults, zero, invalid, and out-of-range values.
- The contract is applied or an explicit exception is documented for
OPENSHELL_PROVISION_TIMEOUT,OPENSHELL_LIFECYCLE_TIMEOUT,OPENSHELL_BUILD_NO_PROGRESS_TIMEOUT_SECS,OPENSHELL_VAULT_TIMEOUT_SECS,OPENSHELL_STOP_TIMEOUT, andHELM_K3S_COLLECTOR_HEALTH_TIMEOUT. - CLI-facing timeout environment variables reject invalid configuration with actionable errors, or deliberately and consistently fall back with that behavior documented.
- Automated tests cover the selected zero and invalid-value behavior for affected OpenShell-owned timeout parsing.
- User-facing CLI and deployment documentation states the selected semantics.
Alternatives Considered
Leave each timeout setting to its owning component. This preserves existing behavior but keeps configuration surprising across adjacent workflows and makes automation less portable.
Agent Investigation
OPENSHELL_PROVISION_TIMEOUT=0produces an immediate provisioning-idle timeout.- PR #3001 introduces
OPENSHELL_LIFECYCLE_TIMEOUTwith the same parsing pattern and therefore the same zero behavior. OPENSHELL_BUILD_NO_PROGRESS_TIMEOUT_SECSaccepts only positive parsed values; zero and invalid values use the 1800-second default.- Vault validation rejects non-positive
timeout_secs. kubectl rollout status --timeout=0swaits indefinitely, so the Helm local-development setting has distinct zero semantics.
- Vorherrschende Sprache
- Rust
- Sterne
- 15.4k
- Forks
- 1.7k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 347
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus NVIDIA/OpenShell
-
state:triage-needed
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Maintainer antworten meist innerhalb von 1 Tag
-
state:triage-needed
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
Maintainer antworten meist innerhalb von 1 Tag
-
docs: document workspace and provider label capabilitiesEvtl. vergeben @johntmyers hat das vor 5 Tagen übernommen. Offenarea:docs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
NVIDIA/OpenShell#4250 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug(driver-mxc): test helper fails to compile after gateway-name argumentEvtl. vergeben @feloy hat das vor 6 Tagen übernommen. Offenstate:triage-needed
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug: install.sh ignores XDG_CONFIG_HOME for the local gateway configEvtl. vergeben @fede-kamel hat das vor 10 Tagen übernommen. Offenarea:cli os:linux os:macos state:validated
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
NVIDIA/OpenShell#4042 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in NVIDIA/OpenShell
Ähnliche Issues
-
llm translation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
CybercentreCanada/sawp#13 ·
-
area: backend type: enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 61/100
armadavalor/WinKnife#6 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
5omeOtherGuy/phaseone#870 ·
Maintainer antworten meist innerhalb von 1 Tag