-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor how config/secrets are managed so that all operations go through the controller #1473
Comments
When we pick this up, should we also think about possibly renaming the existing structs in |
…ted (#1565) Fixes #1473 by providing an `AdminService` and refactoring `cmd_config.go` and `cmd_secret.go` to use that service. The following CLI changes are included that may break existing clients: - `ftl config` and `ftl secret` now require a running controller - `ftl secret set <ref> --op=VAULT` is no longer supported - `ftl-controller` and `ftl dev` accept a 1Password vault using `--opvault=VAULT` - `ftl secret set <ref> --op` is supported, where `op` is a bool flag that requires the controller to have an `--opvault`
Currently the controller and CLI both operate directly on
ftl-project.toml
, as there was previously no mechanism for propagating config down to modules. But now that we haveModuleContext
we should change this. We'll need to for the production launch to support AWS anyway, but also because it's quite annoying.This will entail adding new gRPC endpoints for secrets/config. Another consideration is that currently the CLI allows users to select a different provider (eg. 1Password, Keychain, etc.) per secret. To preserve this behaviour the desired provider will need to be passed to the Controller. However, the valid set of providers will vary depending on the target environment, so the Controller may error if an invalid provider is specified. eg. only ASM will be valid in production, so setting
--keychain
must error.We want to start separating out "backend traffic" from "admin traffic", so to that end this new endpoint should be part of a new
AdminService
gRPC service rather than being part of theControllerService
.The text was updated successfully, but these errors were encountered: