Skip to content

[common][helm] helm support for config providers#3685

Open
fresh-borzoni wants to merge 2 commits into
apache:mainfrom
fresh-borzoni:config-provider-review-followups
Open

[common][helm] helm support for config providers#3685
fresh-borzoni wants to merge 2 commits into
apache:mainfrom
fresh-borzoni:config-provider-review-followups

Conversation

@fresh-borzoni

@fresh-borzoni fresh-borzoni commented Jul 17, 2026

Copy link
Copy Markdown
Member

closes #3686

On the helm side, secrets become declarative:

 secrets:
   mounts:
     - name: paimon-creds
       secretName: fluss-paimon-creds

 configurationOverrides:
   datalake.paimon.s3.secret-key: ${directory:/etc/fluss/secrets/paimon-creds:secret-key}

The chart generates the config.providers config with allowed.paths/env allowlist derived from the declared entries, so the rendered server.yaml stays a plain ConfigMap with no secret material.

Plus some follow-ups from the #3658 review threads:

  • allowed.paths canonicalization now fails closed
  • duplicate provider identifiers on the classpath fail fast
  • test + docs pinning the gated $${ escape semantics

@fresh-borzoni fresh-borzoni changed the title Config provider review followups [common][helm] helm support for config providers Jul 17, 2026
@fresh-borzoni
fresh-borzoni force-pushed the config-provider-review-followups branch 4 times, most recently from 0a20066 to 806f2f7 Compare July 17, 2026 16:21
@fresh-borzoni
fresh-borzoni force-pushed the config-provider-review-followups branch from 806f2f7 to 228def5 Compare July 17, 2026 16:23
@fresh-borzoni
fresh-borzoni force-pushed the config-provider-review-followups branch from 228def5 to d167c44 Compare July 17, 2026 16:30
@fresh-borzoni

Copy link
Copy Markdown
Member Author

@morazow @affo A bit more helm conveniences :) PTAL 🙏

@affo affo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fresh-borzoni thank you so much for this contrib!

Most of my comments are nits, the contribution looks already very good

--from-literal=access-key=... --from-literal=secret-key=...
```

```yaml

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we also add an example for env?

Base directory under which each secret mount gets its own subdirectory.
*/}}
{{- define "fluss.secrets.basePath" -}}
/etc/fluss/secrets

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you think it is better to make this overridable by the user in case?

Comment thread helm/values.yaml
# Secrets referenced from configurationOverrides via config provider markers:
# mounts are read with ${directory:/etc/fluss/secrets/<name>:<key>}, env entries
# with ${env:<NAME>}. The chart generates the matching config.providers lines.
secrets:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can add a basePath here, so that the user can override, and it defaults to etc/fluss/secrets

Comment thread helm/values.yaml
# mounts are read with ${directory:/etc/fluss/secrets/<name>:<key>}, env entries
# with ${env:<NAME>}. The chart generates the matching config.providers lines.
secrets:
# - name: paimon-creds

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you think in this case it would be better to rename name to something similar to subDir?

I think this would be more explicit for the user to understand that to use it it should be ${directory:<basePath>/<SubDir>:key}.

Just a nit, name still fits well, it took me some time to understand :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[helm] Declarative secrets support for config provider markers

2 participants