Documentation
¶
Index ¶
- type Command
- type Config
- type JoinToken
- type Manager
- func (m *Manager) AddVoter(nodeID, address string) error
- func (m *Manager) Apply(cmd Command) error
- func (m *Manager) Bootstrap() error
- func (m *Manager) CertToPEM(cert *tls.Certificate) (certPEM, keyPEM []byte, err error)
- func (m *Manager) CreateIngress(ingress *types.Ingress) error
- func (m *Manager) CreateNode(node *types.Node) error
- func (m *Manager) CreateSecret(secret *types.Secret) error
- func (m *Manager) CreateService(service *types.Service) error
- func (m *Manager) CreateTLSCertificate(cert *types.TLSCertificate) error
- func (m *Manager) CreateTask(task *types.Task) error
- func (m *Manager) CreateVolume(volume *types.Volume) error
- func (m *Manager) DeleteIngress(ingressID string) error
- func (m *Manager) DeleteNode(id string) error
- func (m *Manager) DeleteSecret(id string) error
- func (m *Manager) DeleteService(id string) error
- func (m *Manager) DeleteTLSCertificate(certID string) error
- func (m *Manager) DeleteTask(id string) error
- func (m *Manager) DeleteVolume(id string) error
- func (m *Manager) EnableACME(email string) error
- func (m *Manager) EncryptSecret(plaintext []byte) ([]byte, error)
- func (m *Manager) GenerateJoinToken(role string) (*JoinToken, error)
- func (m *Manager) GetCACertPEM() []byte
- func (m *Manager) GetClusterServers() ([]raft.Server, error)
- func (m *Manager) GetEventBroker() *events.Broker
- func (m *Manager) GetIngress(id string) (*types.Ingress, error)
- func (m *Manager) GetIngressByName(name string) (*types.Ingress, error)
- func (m *Manager) GetNetwork(id string) (*types.Network, error)
- func (m *Manager) GetNode(id string) (*types.Node, error)
- func (m *Manager) GetRaftStats() map[string]interface{}
- func (m *Manager) GetSecret(id string) (*types.Secret, error)
- func (m *Manager) GetSecretByName(name string) (*types.Secret, error)
- func (m *Manager) GetService(id string) (*types.Service, error)
- func (m *Manager) GetServiceByName(name string) (*types.Service, error)
- func (m *Manager) GetTLSCertificate(id string) (*types.TLSCertificate, error)
- func (m *Manager) GetTLSCertificateByName(name string) (*types.TLSCertificate, error)
- func (m *Manager) GetTask(id string) (*types.Task, error)
- func (m *Manager) GetVolume(id string) (*types.Volume, error)
- func (m *Manager) GetVolumeByName(name string) (*types.Volume, error)
- func (m *Manager) IsLeader() bool
- func (m *Manager) IssueACMECertificate(domains []string) error
- func (m *Manager) IssueCertificate(nodeID, role string) (*tls.Certificate, error)
- func (m *Manager) Join(leaderAddr string, token string) error
- func (m *Manager) LeaderAddr() string
- func (m *Manager) ListIngresses() ([]*types.Ingress, error)
- func (m *Manager) ListNetworks() ([]*types.Network, error)
- func (m *Manager) ListNodes() ([]*types.Node, error)
- func (m *Manager) ListSecrets() ([]*types.Secret, error)
- func (m *Manager) ListServices() ([]*types.Service, error)
- func (m *Manager) ListTLSCertificates() ([]*types.TLSCertificate, error)
- func (m *Manager) ListTasks() ([]*types.Task, error)
- func (m *Manager) ListTasksByNode(nodeID string) ([]*types.Task, error)
- func (m *Manager) ListTasksByService(serviceID string) ([]*types.Task, error)
- func (m *Manager) ListVolumes() ([]*types.Volume, error)
- func (m *Manager) NodeID() string
- func (m *Manager) PublishEvent(event *events.Event)
- func (m *Manager) ReloadIngress() error
- func (m *Manager) RemoveServer(nodeID string) error
- func (m *Manager) Shutdown() error
- func (m *Manager) StartIngress() error
- func (m *Manager) StopIngress()
- func (m *Manager) UpdateIngress(ingress *types.Ingress) error
- func (m *Manager) UpdateNode(node *types.Node) error
- func (m *Manager) UpdateService(service *types.Service) error
- func (m *Manager) UpdateTask(task *types.Task) error
- func (m *Manager) ValidateJoinToken(token string) (string, error)
- func (m *Manager) ValidateToken(token string) (string, error)
- type TokenManager
- func (tm *TokenManager) CleanupExpiredTokens()
- func (tm *TokenManager) GenerateToken(role string, duration time.Duration) (*JoinToken, error)
- func (tm *TokenManager) ListTokens() []*JoinToken
- func (tm *TokenManager) RevokeToken(token string)
- func (tm *TokenManager) ValidateToken(token string) (string, error)
- type WarrenFSM
- type WarrenSnapshot
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Command ¶
type Command struct {
Op string `json:"op"`
Data json.RawMessage `json:"data"`
}
Command represents a state change operation in the Raft log
type JoinToken ¶
type JoinToken struct {
Token string
Role string // "manager" or "worker"
CreatedAt time.Time
ExpiresAt time.Time
}
JoinToken represents a token for joining the cluster
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager represents a Warren cluster manager node
func NewManager ¶
NewManager creates a new Manager instance
func (*Manager) CertToPEM ¶
func (m *Manager) CertToPEM(cert *tls.Certificate) (certPEM, keyPEM []byte, err error)
CertToPEM converts a TLS certificate to PEM format
func (*Manager) CreateIngress ¶
CreateIngress creates a new ingress via Raft
func (*Manager) CreateNode ¶
CreateNode adds a node to the cluster
func (*Manager) CreateSecret ¶
CreateSecret creates a new secret (data should already be encrypted)
func (*Manager) CreateService ¶
CreateService creates a new service
func (*Manager) CreateTLSCertificate ¶
func (m *Manager) CreateTLSCertificate(cert *types.TLSCertificate) error
CreateTLSCertificate creates a new TLS certificate via Raft
func (*Manager) CreateTask ¶
CreateTask creates a new task
func (*Manager) CreateVolume ¶
CreateVolume creates a new volume
func (*Manager) DeleteIngress ¶
DeleteIngress deletes an ingress via Raft
func (*Manager) DeleteNode ¶
DeleteNode removes a node from the cluster
func (*Manager) DeleteSecret ¶
DeleteSecret removes a secret
func (*Manager) DeleteService ¶
DeleteService removes a service
func (*Manager) DeleteTLSCertificate ¶
DeleteTLSCertificate deletes a TLS certificate via Raft
func (*Manager) DeleteTask ¶
DeleteTask removes a task
func (*Manager) DeleteVolume ¶
DeleteVolume removes a volume
func (*Manager) EnableACME ¶
EnableACME initializes the ACME client for Let's Encrypt
func (*Manager) EncryptSecret ¶
EncryptSecret encrypts plaintext secret data
func (*Manager) GenerateJoinToken ¶
GenerateJoinToken generates a new join token for adding nodes
func (*Manager) GetCACertPEM ¶
GetCACertPEM returns the CA certificate in PEM format
func (*Manager) GetClusterServers ¶
GetClusterServers returns information about all servers in the Raft cluster
func (*Manager) GetEventBroker ¶
GetEventBroker returns the event broker
func (*Manager) GetIngress ¶
GetIngress retrieves an ingress by ID
func (*Manager) GetIngressByName ¶
GetIngressByName retrieves an ingress by name
func (*Manager) GetNetwork ¶
GetNetwork retrieves a network by ID (read from local store)
func (*Manager) GetRaftStats ¶
GetRaftStats returns Raft statistics
func (*Manager) GetSecretByName ¶
GetSecretByName retrieves a secret by name (read from local store)
func (*Manager) GetService ¶
GetService retrieves a service by ID (read from local store)
func (*Manager) GetServiceByName ¶
GetServiceByName retrieves a service by name (read from local store)
func (*Manager) GetTLSCertificate ¶
func (m *Manager) GetTLSCertificate(id string) (*types.TLSCertificate, error)
GetTLSCertificate retrieves a TLS certificate by ID
func (*Manager) GetTLSCertificateByName ¶
func (m *Manager) GetTLSCertificateByName(name string) (*types.TLSCertificate, error)
GetTLSCertificateByName retrieves a TLS certificate by name
func (*Manager) GetVolumeByName ¶
GetVolumeByName retrieves a volume by name (read from local store)
func (*Manager) IssueACMECertificate ¶
IssueACMECertificate requests a new certificate from Let's Encrypt
func (*Manager) IssueCertificate ¶
func (m *Manager) IssueCertificate(nodeID, role string) (*tls.Certificate, error)
IssueCertificate issues a certificate for a node
func (*Manager) LeaderAddr ¶
LeaderAddr returns the address of the current Raft leader
func (*Manager) ListIngresses ¶
ListIngresses lists all ingresses
func (*Manager) ListNetworks ¶
ListNetworks returns all networks (read from local store)
func (*Manager) ListSecrets ¶
ListSecrets returns all secrets (read from local store)
func (*Manager) ListServices ¶
ListServices returns all services (read from local store)
func (*Manager) ListTLSCertificates ¶
func (m *Manager) ListTLSCertificates() ([]*types.TLSCertificate, error)
ListTLSCertificates lists all TLS certificates
func (*Manager) ListTasksByNode ¶
ListTasksByNode returns all tasks on a node (read from local store)
func (*Manager) ListTasksByService ¶
ListTasksByService returns all tasks for a service (read from local store)
func (*Manager) ListVolumes ¶
ListVolumes returns all volumes (read from local store)
func (*Manager) PublishEvent ¶
PublishEvent publishes an event to all subscribers
func (*Manager) ReloadIngress ¶
ReloadIngress reloads ingress rules from storage
func (*Manager) RemoveServer ¶
RemoveServer removes a server from the Raft cluster
func (*Manager) StartIngress ¶
StartIngress starts the ingress HTTP proxy on port 80
func (*Manager) UpdateIngress ¶
UpdateIngress updates an ingress via Raft
func (*Manager) UpdateNode ¶
UpdateNode updates a node in the cluster
func (*Manager) UpdateService ¶
UpdateService updates an existing service
func (*Manager) UpdateTask ¶
UpdateTask updates a task
func (*Manager) ValidateJoinToken ¶
ValidateJoinToken validates a join token
type TokenManager ¶
type TokenManager struct {
// contains filtered or unexported fields
}
TokenManager manages join tokens for the cluster
func NewTokenManager ¶
func NewTokenManager() *TokenManager
NewTokenManager creates a new token manager
func (*TokenManager) CleanupExpiredTokens ¶
func (tm *TokenManager) CleanupExpiredTokens()
CleanupExpiredTokens removes expired tokens
func (*TokenManager) GenerateToken ¶
GenerateToken generates a new join token
func (*TokenManager) ListTokens ¶
func (tm *TokenManager) ListTokens() []*JoinToken
ListTokens returns all active tokens
func (*TokenManager) RevokeToken ¶
func (tm *TokenManager) RevokeToken(token string)
RevokeToken revokes a join token
func (*TokenManager) ValidateToken ¶
func (tm *TokenManager) ValidateToken(token string) (string, error)
ValidateToken validates a join token and returns its role
type WarrenFSM ¶
type WarrenFSM struct {
// contains filtered or unexported fields
}
WarrenFSM implements the Raft Finite State Machine for Warren's cluster state It applies log entries to the cluster state and handles snapshots
func NewWarrenFSM ¶
NewWarrenFSM creates a new FSM instance
func (*WarrenFSM) Apply ¶
Apply applies a Raft log entry to the FSM This is called by Raft when a log entry is committed
type WarrenSnapshot ¶
type WarrenSnapshot struct {
Nodes []*types.Node
Services []*types.Service
Tasks []*types.Task
Secrets []*types.Secret
Volumes []*types.Volume
Networks []*types.Network
Ingresses []*types.Ingress
TLSCertificates []*types.TLSCertificate
}
WarrenSnapshot represents a point-in-time snapshot of cluster state
func (*WarrenSnapshot) Persist ¶
func (s *WarrenSnapshot) Persist(sink raft.SnapshotSink) error
Persist writes the snapshot to the given SnapshotSink
func (*WarrenSnapshot) Release ¶
func (s *WarrenSnapshot) Release()
Release releases the snapshot resources