Documentation
¶
Index ¶
- type DowngradeManager
- type Manager
- func (m *Manager) ClearSwarmState() error
- func (m *Manager) CreateDefinedVolumes(client *ssh.Client) error
- func (m *Manager) CreateVolume(client *ssh.Client, name string, driver string, labels map[string]string) error
- func (m *Manager) DeployService(managerClient *ssh.Client, serviceName string, service *config.ServiceConfig, ...) error
- func (m *Manager) EnsureSwarmNetwork(managerClient *ssh.Client, networkName string) error
- func (m *Manager) EnsureVolumesExist(client *ssh.Client, serviceName string, service *config.ServiceConfig) error
- func (m *Manager) GetJoinToken(managerClient *ssh.Client, role string) (string, error)
- func (m *Manager) GetNodeID(client *ssh.Client) (string, error)
- func (m *Manager) GetServiceStatus(client *ssh.Client, fullServiceName string) (string, error)
- func (m *Manager) GetSwarmNodeRole(client *ssh.Client) (string, error)
- func (m *Manager) GetSwarmStateFile() string
- func (m *Manager) InitializeSwarm(client *ssh.Client, advertiseAddr string) error
- func (m *Manager) IsSwarmInitialized(client *ssh.Client) (bool, error)
- func (m *Manager) JoinSwarm(workerClient *ssh.Client, managerAddr string, token string) error
- func (m *Manager) LeaveSwarm(client *ssh.Client, force bool) error
- func (m *Manager) ListNodes(managerClient *ssh.Client) (string, error)
- func (m *Manager) ListProjectVolumes(client *ssh.Client) ([]string, error)
- func (m *Manager) LoadSwarmState() (*SwarmState, error)
- func (m *Manager) RemoveService(client *ssh.Client, fullServiceName string) error
- func (m *Manager) RemoveVolume(client *ssh.Client, name string) error
- func (m *Manager) RunInitCommands(client *ssh.Client, serviceName string, service *config.ServiceConfig, ...) error
- func (m *Manager) SaveSwarmState(state *SwarmState) error
- func (m *Manager) ScaleService(client *ssh.Client, fullServiceName string, replicas int) error
- func (m *Manager) SetNodeLabels(managerClient *ssh.Client, nodeID string, labels map[string]string) error
- func (m *Manager) VolumeExists(client *ssh.Client, name string) (bool, error)
- type SwarmState
- type VolumeMount
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DowngradeManager ¶
type DowngradeManager struct {
// contains filtered or unexported fields
}
DowngradeManager handles Swarm to single-server downgrade
func NewDowngradeManager ¶
func NewDowngradeManager(client *ssh.Client, projectName, environment string, verbose bool) *DowngradeManager
NewDowngradeManager creates a new downgrade manager
func (*DowngradeManager) DowngradeToSingleServer ¶
func (d *DowngradeManager) DowngradeToSingleServer() error
DowngradeToSingleServer downgrades from Swarm to single-server mode
func (*DowngradeManager) ShouldDowngrade ¶
func (d *DowngradeManager) ShouldDowngrade(currentServers int) bool
ShouldDowngrade checks if downgrade is needed
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles Docker Swarm operations
func NewManager ¶
NewManager creates a new Swarm manager
func (*Manager) ClearSwarmState ¶
ClearSwarmState removes the swarm state file
func (*Manager) CreateDefinedVolumes ¶ added in v0.1.3
CreateDefinedVolumes creates all volumes defined in the top-level volumes section
func (*Manager) CreateVolume ¶ added in v0.1.3
func (m *Manager) CreateVolume(client *ssh.Client, name string, driver string, labels map[string]string) error
CreateVolume creates a Docker volume with the given name and options
func (*Manager) DeployService ¶
func (m *Manager) DeployService( managerClient *ssh.Client, serviceName string, service *config.ServiceConfig, imageRef string, networkName string, traefikLabels []string, ) error
DeployService deploys a service to the Docker Swarm
func (*Manager) EnsureSwarmNetwork ¶
EnsureSwarmNetwork creates an overlay network for the environment if it doesn't exist
func (*Manager) EnsureVolumesExist ¶ added in v0.1.3
func (m *Manager) EnsureVolumesExist(client *ssh.Client, serviceName string, service *config.ServiceConfig) error
EnsureVolumesExist creates all required volumes for a service if they don't exist
func (*Manager) GetJoinToken ¶
GetJoinToken retrieves the join token for workers
func (*Manager) GetServiceStatus ¶
GetServiceStatus retrieves the status of a service
func (*Manager) GetSwarmNodeRole ¶
GetSwarmNodeRole returns the role of the current node (manager or worker)
func (*Manager) GetSwarmStateFile ¶
GetSwarmStateFile returns the path to the swarm state file
func (*Manager) InitializeSwarm ¶
InitializeSwarm initializes Docker Swarm on the manager node
func (*Manager) IsSwarmInitialized ¶
IsSwarmInitialized checks if Docker Swarm is already initialized on a node
func (*Manager) LeaveSwarm ¶
LeaveSwarm removes a node from the swarm
func (*Manager) ListProjectVolumes ¶ added in v0.1.3
ListProjectVolumes lists all volumes for a project/environment
func (*Manager) LoadSwarmState ¶
func (m *Manager) LoadSwarmState() (*SwarmState, error)
LoadSwarmState loads and decrypts the swarm state from disk
func (*Manager) RemoveService ¶
RemoveService removes a service from the swarm
func (*Manager) RemoveVolume ¶ added in v0.1.3
RemoveVolume removes a Docker volume
func (*Manager) RunInitCommands ¶ added in v0.1.3
func (m *Manager) RunInitCommands(client *ssh.Client, serviceName string, service *config.ServiceConfig, imageRef string) error
RunInitCommands executes init commands for a service before it starts Init commands run in a temporary container with the same image and volume mounts This is useful for setting up permissions on volumes
func (*Manager) SaveSwarmState ¶
func (m *Manager) SaveSwarmState(state *SwarmState) error
SaveSwarmState saves the swarm state to disk with encryption Swarm tokens are sensitive and should always be encrypted
func (*Manager) ScaleService ¶
ScaleService scales a service to the specified number of replicas
type SwarmState ¶
type SwarmState struct {
Initialized bool `json:"initialized"`
ManagerHost string `json:"manager_host"`
WorkerToken string `json:"worker_token"`
ManagerToken string `json:"manager_token"`
Nodes map[string]string `json:"nodes"` // hostname -> node_id
RegistryHost string `json:"registry_host"`
RegistryPort int `json:"registry_port"`
LastUpdated string `json:"last_updated"`
}
SwarmState holds the state of the Docker Swarm