Skip to content

docs(configuration): warn about Jackson errors when injecting storage credentials via env vars#4765

Merged
aj-emerich merged 2 commits into
kestra-io:mainfrom
ChrisJr404:docs-helm-env-var-naming
May 26, 2026
Merged

docs(configuration): warn about Jackson errors when injecting storage credentials via env vars#4765
aj-emerich merged 2 commits into
kestra-io:mainfrom
ChrisJr404:docs-helm-env-var-naming

Conversation

@ChrisJr404

Copy link
Copy Markdown
Contributor

What

Adds a warning callout to three places in the Configuration docs explaining the env-var naming pitfall that affects Helm deployments of the S3 and GCS internal-storage backends:

  • configuration/01.configuration-basics/index.md — Environment variable conversion section
  • configuration/02.runtime-and-storage/index.md — S3 section
  • configuration/02.runtime-and-storage/index.md — Google Cloud Storage section

Why

Per kestra-io/kestra#15964, a user on v1.3.16 hit a fatal pod startup error when injecting KESTRA_STORAGE_S3_ACCESS_KEY through extraEnvVars:

Failed to create storage 's3'. Error: Unrecognized field "access"

The single-underscore env-var form is read by Micronaut's relaxed binding as the path kestra.storage.s3.access.key, producing a nested {access: {key: ...}} shape. The S3/GCS storage plugins then deserialize that subtree with Jackson into a flat config bean and crash with UnrecognizedPropertyException. The same problem affects every multi-word property under kestra.storage.<backend>.*.

The reporter's own workaround (double-underscore on the last hop, or YAML interpolation from a simpler env var) is shown in each callout, with a back-link from S3/GCS to the Configuration Basics rule.

What's not changed

  • The existing KESTRA_STORAGE_S3_ACCESS_KEY=myKey example on the Configuration Basics page is left in place because it remains correct for Micronaut's documented relaxed binding. The new callout flags the storage-plugin-specific case where Jackson observes the nested form and refuses it.
  • No plugin reference pages are touched; those are auto-generated from plugin sources and live outside this repo.

Refs

… credentials via env vars

Helm deployments that inject KESTRA_STORAGE_S3_ACCESS_KEY (single underscore)
hit an UnrecognizedPropertyException at startup because the path is parsed
as kestra.storage.s3.access.key (nested) and the storage plugin's Jackson
mapper rejects the nested shape.

Add a warning callout on the S3 and GCS sections of the Runtime and Storage
page and on the Environment variable conversion section of Configuration
Basics, showing the double-underscore env-var form and the YAML interpolation
alternative as working approaches.

Refs kestra-io/kestra#15964

Signed-off-by: ChrisJr404 <chris@hacknow.com>
@github-actions

Copy link
Copy Markdown
Contributor

Hey @ChrisJr404 👋

Thanks for raising your first pull request - we really appreciate it! ❤️

Make sure you've checked our contribution guide, and don't forget to give us a star! ⭐

If you're looking for more issues to contribute to, we'd suggest checking our curated list of good first issues to see if there's something you find interesting and feel comfortable tackling independently. You can further filter the list by labels to narrow down the results (we recommend area/backend, area/frontend, or area/plugin, depending on your preferences).

@MilosPaunovic MilosPaunovic added kind/external Pull requests raised by community contributors area/docs Issues related to documentation, plugin examples, blueprints, and guides labels May 25, 2026
@MilosPaunovic
MilosPaunovic requested a review from aj-emerich May 25, 2026 08:26
@github-project-automation github-project-automation Bot moved this to To review in Pull Requests May 25, 2026
Comment thread src/contents/docs/configuration/02.runtime-and-storage/index.md Outdated
@aj-emerich

Copy link
Copy Markdown
Member

Thank you ! @ChrisJr404 <3

@aj-emerich
aj-emerich merged commit 3f23c1a into kestra-io:main May 26, 2026
@github-project-automation github-project-automation Bot moved this from To review to Done in Pull Requests May 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Issues related to documentation, plugin examples, blueprints, and guides kind/external Pull requests raised by community contributors

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants