tellerops / teller

Cloud native secrets management for developers - never leave your command line for secrets.
https://github.com/tellerops/teller
Apache License 2.0
2.8k stars 183 forks source link

Support externally defined providers #280

Open vetsin opened 3 months ago

vetsin commented 3 months ago

So that one may write custom providers of which are 'internal', a good example would be how docker does it:

So in teller world that may be:

providers:
  ecr-1: 
    kind: ecr-login

or more likely:

providers:
  ecr-1:
    kind: credential-helper
    bin: ecr-login

The idea being we use use stdin/out from other binaries as the interface, optionally.

Something like ProviderKind::CredentialHelper which literally just calls format!("teller-credential-{} {}", bin, action)? Albeit without the command injection

This may also allow fancier credential syncing where we may have needed a template before, e.g. if i wanted to setup a docker registry auth where our secret is an arbitrary provider, we may teller put it by essentially calling docker login ${registry:-} -u ${user} --password-stdin. I think before i would have needed docker-temp.t and then overloaded DOCKER_CONFIG locations, or some shell logic.