Documentation
¶
Index ¶
Constants ¶
const ( KindAWSECR = "aws/ecr" KindAWSEKS = "aws/eks" )
Integration kind constants.
Variables ¶
This section is empty.
Functions ¶
func IsRegistered ¶
IsRegistered checks if an integration kind is registered.
func ListKinds ¶
func ListKinds() []string
ListKinds returns all registered integration kinds in sorted order.
func Register ¶
func Register(kind string, factory IntegrationFactory)
Register adds an integration factory for a kind. This should be called from init() functions in integration packages. Panics if kind is empty or factory is nil to catch configuration errors early.
Types ¶
type Integration ¶
type Integration interface {
// Kind returns the integration type (e.g., "aws/ecr", "aws/eks").
Kind() string
// Execute performs the integration using the provided credentials.
// Returns nil on success, error on failure.
Execute(ctx context.Context, creds types.ICredentials) error
// Cleanup reverses the effects of Execute (e.g., removes kubeconfig entries, docker logout).
// Called during identity/provider logout to clean up integration artifacts.
// Idempotent — returns nil if nothing to clean up.
// Errors are non-fatal during logout (logged as warnings, do not block logout).
Cleanup(ctx context.Context) error
// Environment returns environment variables contributed by this integration.
// Returns vars based on configuration (deterministic), not Execute() output.
// Called by the manager when composing env vars for atmos auth env / auth shell.
Environment() (map[string]string, error)
}
Integration represents a client-only credential materialization. Integrations derive credentials from identities for service-specific access (e.g., ECR docker login, EKS kubeconfig).
func Create ¶
func Create(config *IntegrationConfig) (Integration, error)
Create instantiates an integration from config.
type IntegrationConfig ¶
type IntegrationConfig struct {
Name string
Config *schema.Integration
}
IntegrationConfig wraps the schema.Integration with the integration name.
type IntegrationFactory ¶
type IntegrationFactory func(config *IntegrationConfig) (Integration, error)
IntegrationFactory creates integrations from configuration.