You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Decide what happens to the 14 SKYHOOK_* environment variables before the v1 API freeze. Like the on-host paths, these are package-author contract surface, so this is a compatibility decision first and a rename second.
Part of the rename tracked in #310. Related: #436 (namespace), #437 (on-host paths).
The variables
Occurrence counts across *.go, *.py, *.yaml, *.md, *.sh (excluding vendor):
Variable
Refs
Notes
SKYHOOK_RESOURCE_ID
58
Gates interrupt re-runs; unique per package config
SKYHOOK_AGENT_WRITE_LOGS
37
SKYHOOK_NODE_ORDER
31
User-facing, documented in docs/ordering_of_skyhooks.md
SKYHOOK_DIR
17
Used in the operator's copy command, skyhook_controller.go:2690
SKYHOOK_ROOT_DIR
15
Defaults to /etc/skyhook
SKYHOOK_LOG_DIR
15
Defaults to /var/log/skyhook
SKYHOOK_DATA_DIR
14
Defaults to /skyhook-package
SKYHOOK_NAME
11
SKYHOOK_VAR
6
SKYHOOK_AGENT_BUFFER_LIMIT
3
SKYHOOK_YAML
2
SKYHOOK_COMPLETE_TIMEOUT
2
SKYHOOK_CONFIGMAP_DIR
1
SKYHOOK_AGENT_MODE
1
Why this is not a mechanical rename
These are read by package step scripts, not just by our own code. A package author writing a shell step reads $SKYHOOK_RESOURCE_ID or $SKYHOOK_DATA_DIR directly. Renaming the variable without dual-export silently changes behavior in user packages: the variable is simply unset, the script sees an empty string, and there is no error.
SKYHOOK_NODE_ORDER is additionally documented user-facing configuration.
Option 2 is meaningfully more attractive here than in #437, and the Go agent rewrite is the natural place to implement it.
Why it needs a decision now
v1 is meant to freeze the package contract. If these variables are part of it, decide before the freeze rather than inheriting them as stable by default.
Acceptance criteria
Decision recorded (rename / dual-export / never), with rationale
If dual-exporting: both names set by the agent, deprecation window defined, warning emitted when only the legacy name is consumed if that is detectable
Outcome documented in agent/README.md and the package authoring docs
docs/ordering_of_skyhooks.md updated if SKYHOOK_NODE_ORDER changes
Summary
Decide what happens to the 14
SKYHOOK_*environment variables before the v1 API freeze. Like the on-host paths, these are package-author contract surface, so this is a compatibility decision first and a rename second.Part of the rename tracked in #310. Related: #436 (namespace), #437 (on-host paths).
The variables
Occurrence counts across
*.go,*.py,*.yaml,*.md,*.sh(excluding vendor):SKYHOOK_RESOURCE_IDSKYHOOK_AGENT_WRITE_LOGSSKYHOOK_NODE_ORDERdocs/ordering_of_skyhooks.mdSKYHOOK_DIRskyhook_controller.go:2690SKYHOOK_ROOT_DIR/etc/skyhookSKYHOOK_LOG_DIR/var/log/skyhookSKYHOOK_DATA_DIR/skyhook-packageSKYHOOK_NAMESKYHOOK_VARSKYHOOK_AGENT_BUFFER_LIMITSKYHOOK_YAMLSKYHOOK_COMPLETE_TIMEOUTSKYHOOK_CONFIGMAP_DIRSKYHOOK_AGENT_MODEWhy this is not a mechanical rename
These are read by package step scripts, not just by our own code. A package author writing a shell step reads
$SKYHOOK_RESOURCE_IDor$SKYHOOK_DATA_DIRdirectly. Renaming the variable without dual-export silently changes behavior in user packages: the variable is simply unset, the script sees an empty string, and there is no error.SKYHOOK_NODE_ORDERis additionally documented user-facing configuration.Options
SKYHOOK_*andNODEWRIGHT_*for a deprecation window; new packages read the new names. This is cheap for env vars, much cheaper than the equivalent for paths (Decide the fate of the skyhook-named on-host paths before v1 freeze (/skyhook-package, /var/lib/skyhook, /var/log/skyhook, /etc/skyhook) #437), because exporting two names costs nothing at runtime.Option 2 is meaningfully more attractive here than in #437, and the Go agent rewrite is the natural place to implement it.
Why it needs a decision now
v1 is meant to freeze the package contract. If these variables are part of it, decide before the freeze rather than inheriting them as stable by default.
Acceptance criteria
agent/README.mdand the package authoring docsdocs/ordering_of_skyhooks.mdupdated ifSKYHOOK_NODE_ORDERchangesSKYHOOK_DATA_DIR/SKYHOOK_ROOT_DIR/SKYHOOK_LOG_DIRare the defaults for those paths