genesissecret

package
v0.4.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ParseOnePasswordURI added in v0.4.1

func ParseOnePasswordURI(uri string) (vault, item string, err error)

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

Fetch implements SecretProvider.

type OnePasswordProvider

type OnePasswordProvider struct {
	// contains filtered or unexported fields
}

func NewOnePasswordProvider

func NewOnePasswordProvider(client op.Client) *OnePasswordProvider

func (*OnePasswordProvider) Fetch

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からみて決定的でないため、採用しないことにしました

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL