Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseOnePasswordURI ¶ added in v0.4.1
ParseOnePasswordURI は `op://<host>/<vault>/<item>` 形式の URI をパースして vault と item を返します。op CLI で一般的な `op://<vault>/<item>` 形式は host 部が欠けているため明示的にエラーとします。
Types ¶
type EnvFileProvider ¶ added in v0.2.0
type EnvFileProvider struct {
// contains filtered or unexported fields
}
EnvFileProvider は .env 形式のファイルから値を取得する SecretProvider 実装です。 1 行ごとに `KEY=VALUE` の形式でパースし、`s.Items` のキーを envfile 側の KEY と 読み替えて map を返します。
仕様上の制約:
- シェル展開や複数行値はサポートしない。
- 行頭の '#' から始まる行と空行は無視する。
- 値が一対のシングル/ダブルクォートで囲まれている場合のみ剥がす。
- preferLabel は envfile に label の概念がないため無視される。
- s.URI は使用しない (envfile では item 概念がない)。
- ファイルは Fetch のたびに毎回読み直す (キャッシュしない)。
func NewEnvFileProvider ¶ added in v0.2.0
func NewEnvFileProvider(path string) *EnvFileProvider
NewEnvFileProvider creates a new EnvFileProvider that reads from the given path.
func (*EnvFileProvider) Fetch ¶ added in v0.2.0
func (p *EnvFileProvider) Fetch(_ context.Context, s v1.GenesisSecretGenerate) (map[string]string, error)
Fetch implements SecretProvider.
type OnePasswordProvider ¶
type OnePasswordProvider struct {
// contains filtered or unexported fields
}
func NewOnePasswordProvider ¶
func NewOnePasswordProvider(client op.Client) *OnePasswordProvider
func (*OnePasswordProvider) Fetch ¶
func (o *OnePasswordProvider) Fetch(ctx context.Context, s v1.GenesisSecretGenerate) (map[string]string, error)
Fetch implements SecretProvider.
type ProviderRegistry ¶ added in v0.2.0
type ProviderRegistry struct {
// contains filtered or unexported fields
}
ProviderRegistry は name -> SecretProvider のマップです。 runner.setupManagers から差し込まれ、GenesisSecret manager が manifest の .spec.provider の値を name として SecretProvider を解決するために使われます。
Register は同一 name の重複登録をエラーにします。Get は登録されていない name に対してエラーを返します。両者ともスレッドセーフです。
func NewProviderRegistry ¶ added in v0.2.0
func NewProviderRegistry() *ProviderRegistry
NewProviderRegistry creates an empty provider registry.
func (*ProviderRegistry) Get ¶ added in v0.2.0
func (r *ProviderRegistry) Get(name string) (SecretProvider, error)
Get returns the SecretProvider registered under the given name. It returns an error including the list of available providers if not found.
func (*ProviderRegistry) Has ¶ added in v0.2.0
func (r *ProviderRegistry) Has(name string) bool
Has reports whether a SecretProvider is registered under the given name.
func (*ProviderRegistry) Register ¶ added in v0.2.0
func (r *ProviderRegistry) Register(name string, p SecretProvider) error
Register adds a SecretProvider under the given name. It returns an error if the name is empty, the provider is nil, or a provider with the same name has already been registered.
type SecretProvider ¶
type SecretProvider interface {
// Fetch はProviderを経由して秘匿情報のアイテムを取得します
Fetch(ctx context.Context, s v1.GenesisSecretGenerate) (map[string]string, error)
}
SecretProvider はGenesisSecretが秘匿情報を取得する先を抽象化して提供します NOTE: SecretProvider[Arg comparable] というジェネリクスを利用して、
各Providerが受け取る型を制約付ける実装を検討しましたが、 Fetch時に渡すargがManagerからみて決定的でないため、採用しないことにしました