Skip to main content

Secrets and Parameters

Greyhound never acts as a long-term secrets store. The only credentials it issues are short-lived, internally generated tokens that exist just long enough to orchestrate an environment. Everything else must originate from the underlying Kubernetes cluster or the cloud provider's secret and configuration services.

When designing an application definition, decide which category each value falls into and place it in the appropriate provider. The platform ensures these providers handle encryption at rest and in flight. CSI volumes can project the values as files into a pod; environment variables remain in memory only.

Classification Matrix

CategoryTypical ExamplesSource of TruthDelivery MechanismNotes
Hard secretsDatabase passwords, encryption keys, PCI artifacts, PII/PHI assetsSecrets Manager (AWS Secrets Manager, GCP Secret Manager, etc.)CSI SecretProviderClass mounted as filesHighest sensitivity; these should never be committed to git or emitted as environment variables.
Soft secretsThird-party API keys, passwords, OAuth tokens, webhook credentialsSecrets Manager or Parameter StoreCSI SecretProviderClass mounted as files or injected at runtimeRotate on the provider side; keep scope and TTL narrow.
ParametersFeature flags, configuration toggles, magic values, endpoint URLsParameter Store (e.g. AWS SSM) or ConfigMapsMounted as files or exposed via env vars by the runtimeImmutable parameters fit well in ConfigMaps; mutable values prefer Parameter Store.
Environment variablesRuntime copies of parameter values or plaintext stringsSame provider as the backing parameterExported into the container environmentUse only for non-secret configuration; these are checked in to your repository so they could even be public.

Usage Guidance

  • Provision and rotate sensitive material in your cloud provider; greyhound references those entries but never stores the payload.
  • Prefer CSI SecretProviderClass projections for pods. They keep credentials on the node filesystem and out of deployment specs.
  • For builds, jobs, and services, reference secret providers rather than embedding literal values. Inline secrets exist only for low-sensitivity defaults during development.
  • Treat environment variables as a delivery convenience, not a storage mechanism. Source them from Parameter Store or ConfigMaps and scope their usage to the minimum necessary process.
  • All providers supported by greyhound enforce encryption at rest and TLS in flight. Mounts render readable files only within the target container's namespace.

For schema-level details see: