Documentation
¶
Index ¶
- type Config
- type CredentialManager
- type DataStoreType
- type InMemoryCredentialManager
- func (m *InMemoryCredentialManager) DeleteBMC(ctx context.Context, mac net.HardwareAddr) error
- func (m *InMemoryCredentialManager) DeleteNVOS(ctx context.Context, mac net.HardwareAddr) error
- func (m *InMemoryCredentialManager) GetBMC(ctx context.Context, mac net.HardwareAddr) (*credential.Credential, error)
- func (m *InMemoryCredentialManager) GetNVOS(ctx context.Context, mac net.HardwareAddr) (*credential.Credential, error)
- func (m *InMemoryCredentialManager) Keys(ctx context.Context) ([]net.HardwareAddr, error)
- func (m *InMemoryCredentialManager) PatchBMC(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
- func (m *InMemoryCredentialManager) PatchNVOS(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
- func (m *InMemoryCredentialManager) PutBMC(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
- func (m *InMemoryCredentialManager) PutNVOS(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
- func (m *InMemoryCredentialManager) Start(ctx context.Context) error
- func (m *InMemoryCredentialManager) Stop(ctx context.Context) error
- type VaultConfig
- type VaultCredentialManager
- func (m *VaultCredentialManager) DeleteBMC(ctx context.Context, mac net.HardwareAddr) error
- func (m *VaultCredentialManager) DeleteNVOS(ctx context.Context, mac net.HardwareAddr) error
- func (m *VaultCredentialManager) GetBMC(ctx context.Context, mac net.HardwareAddr) (*credential.Credential, error)
- func (m *VaultCredentialManager) GetNVOS(ctx context.Context, mac net.HardwareAddr) (*credential.Credential, error)
- func (m *VaultCredentialManager) Keys(ctx context.Context) ([]net.HardwareAddr, error)
- func (m *VaultCredentialManager) PatchBMC(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
- func (m *VaultCredentialManager) PatchNVOS(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
- func (m *VaultCredentialManager) PutBMC(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
- func (m *VaultCredentialManager) PutNVOS(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
- func (m *VaultCredentialManager) Start(ctx context.Context) error
- func (m *VaultCredentialManager) Stop(ctx context.Context) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
DataStoreType DataStoreType
VaultConfig *VaultConfig
}
Config holds the selected backend and provider config (Vault).
type CredentialManager ¶
type CredentialManager interface {
Start(ctx context.Context) error
Stop(ctx context.Context) error
// BMC credential operations
GetBMC(ctx context.Context, mac net.HardwareAddr) (*credential.Credential, error)
PutBMC(ctx context.Context, mac net.HardwareAddr, credentials *credential.Credential) error
PatchBMC(ctx context.Context, mac net.HardwareAddr, credentials *credential.Credential) error
DeleteBMC(ctx context.Context, mac net.HardwareAddr) error
// NVOS credential operations
GetNVOS(ctx context.Context, mac net.HardwareAddr) (*credential.Credential, error)
PutNVOS(ctx context.Context, mac net.HardwareAddr, credentials *credential.Credential) error
PatchNVOS(ctx context.Context, mac net.HardwareAddr, credentials *credential.Credential) error
DeleteNVOS(ctx context.Context, mac net.HardwareAddr) error
// List all registered MACs
Keys(ctx context.Context) ([]net.HardwareAddr, error)
}
CredentialManager defines a key-value store for BMC and NVOS credentials keyed by MAC address.
type DataStoreType ¶
type DataStoreType string
DataStoreType selects credential store backend.
const ( DatastoreTypeVault DataStoreType = "Vault" DatastoreTypeInMemory DataStoreType = "InMemory" )
type InMemoryCredentialManager ¶
type InMemoryCredentialManager struct {
// contains filtered or unexported fields
}
InMemoryCredentialManager implements the CredentialManager interface with an in-memory store.
func NewInMemoryCredentialManager ¶
func NewInMemoryCredentialManager() *InMemoryCredentialManager
func (*InMemoryCredentialManager) DeleteBMC ¶
func (m *InMemoryCredentialManager) DeleteBMC(ctx context.Context, mac net.HardwareAddr) error
DeleteBMC removes the BMC credential for mac (no error if absent).
func (*InMemoryCredentialManager) DeleteNVOS ¶
func (m *InMemoryCredentialManager) DeleteNVOS(ctx context.Context, mac net.HardwareAddr) error
DeleteNVOS removes the NVOS credential for mac (no error if absent).
func (*InMemoryCredentialManager) GetBMC ¶
func (m *InMemoryCredentialManager) GetBMC(ctx context.Context, mac net.HardwareAddr) (*credential.Credential, error)
GetBMC returns the BMC credential for mac or an error if missing/invalid.
func (*InMemoryCredentialManager) GetNVOS ¶
func (m *InMemoryCredentialManager) GetNVOS(ctx context.Context, mac net.HardwareAddr) (*credential.Credential, error)
GetNVOS returns the NVOS credential for mac or an error if missing/invalid.
func (*InMemoryCredentialManager) Keys ¶
func (m *InMemoryCredentialManager) Keys(ctx context.Context) ([]net.HardwareAddr, error)
Keys returns all MACs with stored credentials (checking for BMC credentials).
func (*InMemoryCredentialManager) PatchBMC ¶
func (m *InMemoryCredentialManager) PatchBMC(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
PatchBMC updates the BMC credential for mac (replaces current value).
func (*InMemoryCredentialManager) PatchNVOS ¶
func (m *InMemoryCredentialManager) PatchNVOS(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
PatchNVOS updates the NVOS credential for mac (replaces current value).
func (*InMemoryCredentialManager) PutBMC ¶
func (m *InMemoryCredentialManager) PutBMC(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
PutBMC stores or replaces the BMC credential for mac.
func (*InMemoryCredentialManager) PutNVOS ¶
func (m *InMemoryCredentialManager) PutNVOS(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
PutNVOS stores or replaces the NVOS credential for mac.
type VaultConfig ¶
VaultConfig configures access to Vault (address and token). The token should be scoped minimally for KV operations.
func (*VaultConfig) NewManager ¶
func (c *VaultConfig) NewManager() (*VaultCredentialManager, error)
NewManager initializes a Vault client with the configured address and token. TLS verification is skipped to handle self-signed certificates in Kubernetes environments.
func (VaultConfig) String ¶
func (c VaultConfig) String() string
String returns the canonical string form of the version.
func (*VaultConfig) Validate ¶
func (c *VaultConfig) Validate() error
Validate ensures required Vault fields are provided.
type VaultCredentialManager ¶
type VaultCredentialManager struct {
// contains filtered or unexported fields
}
VaultCredentialManager implements the CredentialManager interface with a Vault store.
func (*VaultCredentialManager) DeleteBMC ¶
func (m *VaultCredentialManager) DeleteBMC(ctx context.Context, mac net.HardwareAddr) error
DeleteBMC removes the BMC credential from Vault.
func (*VaultCredentialManager) DeleteNVOS ¶
func (m *VaultCredentialManager) DeleteNVOS(ctx context.Context, mac net.HardwareAddr) error
DeleteNVOS removes the NVOS credential from Vault.
func (*VaultCredentialManager) GetBMC ¶
func (m *VaultCredentialManager) GetBMC(ctx context.Context, mac net.HardwareAddr) (*credential.Credential, error)
GetBMC retrieves and validates BMC credentials for the given MAC from Vault.
func (*VaultCredentialManager) GetNVOS ¶
func (m *VaultCredentialManager) GetNVOS(ctx context.Context, mac net.HardwareAddr) (*credential.Credential, error)
GetNVOS retrieves and validates NVOS credentials for the given MAC from Vault.
func (*VaultCredentialManager) Keys ¶
func (m *VaultCredentialManager) Keys(ctx context.Context) ([]net.HardwareAddr, error)
Keys returns a list of MACs for which the credential manager has BMC secrets for.
func (*VaultCredentialManager) PatchBMC ¶
func (m *VaultCredentialManager) PatchBMC(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
PatchBMC replaces the BMC's credentials in Vault (equivalent to Put).
func (*VaultCredentialManager) PatchNVOS ¶
func (m *VaultCredentialManager) PatchNVOS(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
PatchNVOS replaces the NVOS credentials in Vault (equivalent to Put).
func (*VaultCredentialManager) PutBMC ¶
func (m *VaultCredentialManager) PutBMC(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
PutBMC writes the BMC credentials to Vault.
func (*VaultCredentialManager) PutNVOS ¶
func (m *VaultCredentialManager) PutNVOS(ctx context.Context, mac net.HardwareAddr, cred *credential.Credential) error
PutNVOS writes the NVOS credentials to Vault.