Documentation
¶
Index ¶
- type DowngradeManager
- type Manager
- func (m *Manager) ClearSwarmState() error
- func (m *Manager) ConfigureWorkersForRegistry(registry *RegistryConfig) error
- func (m *Manager) DeployService(managerClient *ssh.Client, serviceName string, service *config.ServiceConfig, ...) error
- func (m *Manager) EnsureRegistry(managerClient *ssh.Client) (*RegistryConfig, error)
- func (m *Manager) EnsureSwarmNetwork(managerClient *ssh.Client, networkName string) 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) IsSwarmMode(envName string) bool
- 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) LoadSwarmState() (*SwarmState, error)
- func (m *Manager) PushImageToRegistry(client *ssh.Client, localImage string, registry *RegistryConfig) (string, error)
- func (m *Manager) RemoveService(client *ssh.Client, fullServiceName string) 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
- type RegistryConfig
- type SwarmState
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) ConfigureWorkersForRegistry ¶
func (m *Manager) ConfigureWorkersForRegistry(registry *RegistryConfig) error
ConfigureWorkersForRegistry configures worker nodes to use the insecure registry
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) EnsureRegistry ¶
func (m *Manager) EnsureRegistry(managerClient *ssh.Client) (*RegistryConfig, error)
EnsureRegistry sets up a Docker registry for the swarm
func (*Manager) EnsureSwarmNetwork ¶
EnsureSwarmNetwork creates an overlay network for the environment if it doesn'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) IsSwarmMode ¶
IsSwarmMode determines if Swarm mode should be used ALWAYS use Swarm mode for all deployments for consistency and simplicity Benefits: - Unified deployment model (single code path) - Seamless scaling (add servers later without redeployment) - Built-in health checks and rolling updates - Service discovery works across nodes - Easy migration from single to multi-server
func (*Manager) LeaveSwarm ¶
LeaveSwarm removes a node from the swarm
func (*Manager) LoadSwarmState ¶
func (m *Manager) LoadSwarmState() (*SwarmState, error)
LoadSwarmState loads the swarm state from disk
func (*Manager) PushImageToRegistry ¶
func (m *Manager) PushImageToRegistry(client *ssh.Client, localImage string, registry *RegistryConfig) (string, error)
PushImageToRegistry pushes an image to the swarm registry
func (*Manager) RemoveService ¶
RemoveService removes a service from the swarm
func (*Manager) SaveSwarmState ¶
func (m *Manager) SaveSwarmState(state *SwarmState) error
SaveSwarmState saves the swarm state to disk
func (*Manager) ScaleService ¶
ScaleService scales a service to the specified number of replicas
type RegistryConfig ¶
RegistryConfig holds registry configuration
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