Documentation
¶
Index ¶
- func CheckCPUStep(nodeType string, profile string) automa.Builder
- func CheckHostProfileStep(nodeType string, profile string) automa.Builder
- func CheckMemoryStep(nodeType string, profile string) automa.Builder
- func CheckOSStep(nodeType string, profile string) automa.Builder
- func CheckPrivilegesStep() automa.Builder
- func CheckStorageStep(nodeType string, profile string) automa.Builder
- func CheckWeaverInstallationWorkflow() *automa.WorkflowBuilder
- func CheckWeaverUserStep() automa.Builder
- func DefaultWorkflowExecutionOptions() *models.WorkflowExecutionOptions
- func InstallClusterWorkflow(nodeType string, profile string, skipHardwareChecks bool, ...) *automa.WorkflowBuilder
- func NewAlloyInstallWorkflow() *automa.WorkflowBuilder
- func NewAlloyUninstallWorkflow() *automa.WorkflowBuilder
- func NewBlockNodePreflightCheckWorkflow(profile string) *automa.WorkflowBuilder
- func NewDaemonServiceCheckWorkflow() *automa.WorkflowBuilder
- func NewDaemonServiceInstallWorkflow(cfg daemon.DaemonConfig, daemonSrc steps.DaemonBinarySource) (*automa.WorkflowBuilder, error)
- func NewDaemonServiceStartWorkflow() *automa.WorkflowBuilder
- func NewDaemonServiceStopWorkflow() *automa.WorkflowBuilder
- func NewDaemonServiceUninstallWorkflow() (*automa.WorkflowBuilder, error)
- func NewNodeSafetyCheckWorkflow(nodeType string, profile string, skipHardwareChecks bool) *automa.WorkflowBuilder
- func NewSelfInstallWorkflow() *automa.WorkflowBuilder
- func NewSelfUninstallWorkflow() *automa.WorkflowBuilder
- func NewSoakStartWorkflow(req consensus.SoakStartRequest) *automa.WorkflowBuilder
- func NewSoakStopWorkflow(keepState bool) *automa.WorkflowBuilder
- func NewTeleportClusterAgentInstallWorkflow() *automa.WorkflowBuilder
- func NewTeleportClusterAgentUninstallWorkflow() *automa.WorkflowBuilder
- func NewTeleportNodeAgentInstallWorkflow(mr software.MachineRuntime) *automa.WorkflowBuilder
- func NewTeleportNodeAgentUninstallWorkflow(mr software.MachineRuntime) *automa.WorkflowBuilder
- func NodeSetupWorkflow(nodeType string, profile string, skipHardwareChecks bool) *automa.WorkflowBuilder
- func UninstallClusterWorkflow() *automa.WorkflowBuilder
- func WithWorkflowExecutionMode(wf *automa.WorkflowBuilder, opts *models.WorkflowExecutionOptions) *automa.WorkflowBuilder
- type CiliumAccelerationMigration
- type CiliumAgentRestartMigration
- type CiliumHostLegacyRoutingMigration
- type LegacyBinaryMigration
- func (m *LegacyBinaryMigration) Applies(mctx *migration.Context) (bool, error)
- func (m *LegacyBinaryMigration) Description() string
- func (m *LegacyBinaryMigration) Execute(ctx context.Context, mctx *migration.Context) error
- func (m *LegacyBinaryMigration) ID() string
- func (m *LegacyBinaryMigration) Rollback(ctx context.Context, mctx *migration.Context) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckCPUStep ¶
CheckCPUStep validates CPU requirements for a specific node type
func CheckHostProfileStep ¶
CheckHostProfileStep retrieves host profile and validates node type and profile
func CheckMemoryStep ¶
CheckMemoryStep validates memory requirements for a specific node type
func CheckOSStep ¶
CheckOSStep validates OS requirements for a specific node type
func CheckPrivilegesStep ¶
CheckPrivilegesStep validates that the current user has superuser privileges
func CheckStorageStep ¶
CheckStorageStep validates storage requirements for a specific node type
func CheckWeaverInstallationWorkflow ¶
func CheckWeaverInstallationWorkflow() *automa.WorkflowBuilder
func CheckWeaverUserStep ¶
CheckWeaverUserStep validates that the provisioner user and group exist with the correct IDs
func DefaultWorkflowExecutionOptions ¶ added in v0.7.0
func DefaultWorkflowExecutionOptions() *models.WorkflowExecutionOptions
DefaultWorkflowExecutionOptions returns WorkflowExecutionOptions with all boolean options defaulted to true.
func InstallClusterWorkflow ¶ added in v0.7.0
func InstallClusterWorkflow(nodeType string, profile string, skipHardwareChecks bool, mr software.MachineRuntime) *automa.WorkflowBuilder
InstallClusterWorkflow creates a workflow to set up a kubernetes cluster.
func NewAlloyInstallWorkflow ¶ added in v0.7.0
func NewAlloyInstallWorkflow() *automa.WorkflowBuilder
NewAlloyInstallWorkflow creates a workflow to install the Alloy observability stack. This installs Prometheus Operator CRDs, Node Exporter, and Grafana Alloy.
func NewAlloyUninstallWorkflow ¶ added in v0.7.0
func NewAlloyUninstallWorkflow() *automa.WorkflowBuilder
NewAlloyUninstallWorkflow creates a workflow to uninstall the Alloy observability stack. This removes Grafana Alloy, Node Exporter, and Prometheus Operator CRDs.
func NewBlockNodePreflightCheckWorkflow ¶
func NewBlockNodePreflightCheckWorkflow(profile string) *automa.WorkflowBuilder
NewBlockNodePreflightCheckWorkflow creates a safety check workflow for block node.
func NewDaemonServiceCheckWorkflow ¶ added in v0.20.0
func NewDaemonServiceCheckWorkflow() *automa.WorkflowBuilder
NewDaemonServiceCheckWorkflow checks the health of the daemon installation: sandbox unit file, system symlink, service enabled/running, binary, sudoers entry, and Unix socket health.
func NewDaemonServiceInstallWorkflow ¶ added in v0.20.0
func NewDaemonServiceInstallWorkflow(cfg daemon.DaemonConfig, daemonSrc steps.DaemonBinarySource) (*automa.WorkflowBuilder, error)
NewDaemonServiceInstallWorkflow provisions the full daemon stack. The step list is built dynamically from cfg so that only the preflight and RBAC steps relevant to the enabled components are included:
- Check root privileges (always)
- Install the daemon binary (always)
- Ensure hedera user/group exists; add weaver (always)
- Check K8s cluster is reachable (any K8s-dependent component)
- Create RBAC resources for all K8s components (any K8s-dependent component)
- Write per-component kubeconfigs (any K8s-dependent component)
- Install + enable + start systemd service unit (always)
- Add invoking operator (SUDO_USER) to weaver group (always)
The caller is responsible for ensuring daemon.yaml exists at paths.DaemonConfigPath before calling this function.
func NewDaemonServiceStartWorkflow ¶ added in v0.20.0
func NewDaemonServiceStartWorkflow() *automa.WorkflowBuilder
NewDaemonServiceStartWorkflow starts the daemon service and verifies health.
func NewDaemonServiceStopWorkflow ¶ added in v0.20.0
func NewDaemonServiceStopWorkflow() *automa.WorkflowBuilder
NewDaemonServiceStopWorkflow stops the daemon service.
func NewDaemonServiceUninstallWorkflow ¶ added in v0.20.0
func NewDaemonServiceUninstallWorkflow() (*automa.WorkflowBuilder, error)
NewDaemonServiceUninstallWorkflow tears down the daemon stack in reverse:
- Check root privileges
- Stop + disable + remove systemd service unit
- Remove the daemon binary from paths.BinDir
- Remove per-component kubeconfig files
- Remove daemon.yaml so a fresh install with different --components starts clean
- Delete per-component RBAC resources (CRB + CR + Secret + SA)
func NewNodeSafetyCheckWorkflow ¶
func NewNodeSafetyCheckWorkflow(nodeType string, profile string, skipHardwareChecks bool) *automa.WorkflowBuilder
NewNodeSafetyCheckWorkflow creates a safety check workflow for any node type. If skipHardwareChecks is true, hardware validation steps (OS, CPU, memory, storage) are excluded.
func NewSelfInstallWorkflow ¶
func NewSelfInstallWorkflow() *automa.WorkflowBuilder
func NewSelfUninstallWorkflow ¶ added in v0.7.0
func NewSelfUninstallWorkflow() *automa.WorkflowBuilder
func NewSoakStartWorkflow ¶ added in v0.20.0
func NewSoakStartWorkflow(req consensus.SoakStartRequest) *automa.WorkflowBuilder
NewSoakStartWorkflow enqueues a consensus-node migration soak start request on the running solo-provisioner-daemon.
func NewSoakStopWorkflow ¶ added in v0.20.0
func NewSoakStopWorkflow(keepState bool) *automa.WorkflowBuilder
NewSoakStopWorkflow stops the running consensus-node migration soak watcher. When keepState is true the persisted cutover-state.jsonl is left in place so the daemon resumes the soak on the next restart.
func NewTeleportClusterAgentInstallWorkflow ¶ added in v0.7.0
func NewTeleportClusterAgentInstallWorkflow() *automa.WorkflowBuilder
NewTeleportClusterAgentInstallWorkflow creates a workflow to install the Teleport Kubernetes cluster agent. This provides secure kubectl access via Teleport with full audit logging.
func NewTeleportClusterAgentUninstallWorkflow ¶ added in v0.16.0
func NewTeleportClusterAgentUninstallWorkflow() *automa.WorkflowBuilder
NewTeleportClusterAgentUninstallWorkflow creates a workflow to uninstall the Teleport Kubernetes cluster agent.
func NewTeleportNodeAgentInstallWorkflow ¶ added in v0.7.0
func NewTeleportNodeAgentInstallWorkflow(mr software.MachineRuntime) *automa.WorkflowBuilder
NewTeleportNodeAgentInstallWorkflow creates a workflow to install the Teleport node agent. sm is the shared Manager used to record installation progress.
func NewTeleportNodeAgentUninstallWorkflow ¶ added in v0.16.0
func NewTeleportNodeAgentUninstallWorkflow(mr software.MachineRuntime) *automa.WorkflowBuilder
NewTeleportNodeAgentUninstallWorkflow creates a workflow to uninstall the Teleport node agent. mr provides software state needed by the installer.
func NodeSetupWorkflow ¶ added in v0.7.0
func NodeSetupWorkflow(nodeType string, profile string, skipHardwareChecks bool) *automa.WorkflowBuilder
NodeSetupWorkflow creates a comprehensive setup workflow for any node type It runs preflight checks first, then performs the actual setup.
func UninstallClusterWorkflow ¶ added in v0.7.0
func UninstallClusterWorkflow() *automa.WorkflowBuilder
UninstallClusterWorkflow creates a workflow to tear down a kubernetes cluster
func WithWorkflowExecutionMode ¶ added in v0.7.0
func WithWorkflowExecutionMode(wf *automa.WorkflowBuilder, opts *models.WorkflowExecutionOptions) *automa.WorkflowBuilder
WithWorkflowExecutionMode applies the given WorkflowExecutionOptions to the provided WorkflowBuilder. If opts is nil, it uses DefaultWorkflowExecutionOptions.
Types ¶
type CiliumAccelerationMigration ¶ added in v0.19.1
type CiliumAccelerationMigration struct {
migration.CLIVersionMigration
}
CiliumAccelerationMigration re-renders cilium-config.yaml and runs `cilium upgrade` so already-provisioned clusters adopt loadBalancer.acceleration=disabled (#669/#674).
func NewCiliumAccelerationMigration ¶ added in v0.19.1
func NewCiliumAccelerationMigration() *CiliumAccelerationMigration
NewCiliumAccelerationMigration constructs the migration.
func (*CiliumAccelerationMigration) Execute ¶ added in v0.19.1
Execute re-renders cilium-config.yaml from the updated template and applies it with `cilium upgrade --values <config> --wait`.
It is self-guarding and idempotent: it no-ops when no live cilium-config is reachable (the node has no cluster) or when acceleration is already "disabled" (the migration already ran). Applies() only gates on the CLI version boundary, so these checks make repeated invocations within the upgrade window harmless.
type CiliumAgentRestartMigration ¶ added in v0.19.2
type CiliumAgentRestartMigration struct {
migration.CLIVersionMigration
}
CiliumAgentRestartMigration restarts the Cilium agents so already-provisioned clusters apply loadBalancer.acceleration=disabled (detach XDP) after the v0.19.1 migration updated the ConfigMap but did not roll the DaemonSet (#669).
func NewCiliumAgentRestartMigration ¶ added in v0.19.2
func NewCiliumAgentRestartMigration() *CiliumAgentRestartMigration
NewCiliumAgentRestartMigration constructs the migration.
func (*CiliumAgentRestartMigration) Execute ¶ added in v0.19.2
Execute restarts the Cilium agents when Kubernetes and Cilium are installed and acceleration is configured as "disabled" but may not yet be applied to the running agents. It no-ops on undeployed/unreachable hosts and when acceleration is not (yet) disabled — the acceleration migration owns flipping the config.
type CiliumHostLegacyRoutingMigration ¶ added in v0.21.0
type CiliumHostLegacyRoutingMigration struct {
migration.CLIVersionMigration
}
CiliumHostLegacyRoutingMigration re-renders cilium-config.yaml and runs `cilium upgrade` so already-provisioned clusters adopt enable-host-legacy-routing=true required by the BN traffic shaper.
func NewCiliumHostLegacyRoutingMigration ¶ added in v0.21.0
func NewCiliumHostLegacyRoutingMigration() *CiliumHostLegacyRoutingMigration
NewCiliumHostLegacyRoutingMigration constructs the migration.
func (*CiliumHostLegacyRoutingMigration) Execute ¶ added in v0.21.0
func (m *CiliumHostLegacyRoutingMigration) Execute(ctx context.Context, mctx *migration.Context) error
Execute re-renders cilium-config.yaml from the updated template and applies it with `cilium upgrade --values <config> --wait`.
It is idempotent: it no-ops when the cluster is unreachable, when Cilium is not yet installed, or when enable-host-legacy-routing is already "true". It fails fast if Bandwidth Manager is enabled — Bandwidth Manager is the only Cilium BPF writer of skb->priority and its presence voids the traffic shaper's egress-priority guarantee.
func (*CiliumHostLegacyRoutingMigration) Rollback ¶ added in v0.21.0
func (m *CiliumHostLegacyRoutingMigration) Rollback(ctx context.Context, mctx *migration.Context) error
Rollback is a no-op: re-running a known-good provisioner version re-applies the desired template. We intentionally do not revert host-legacy-routing — it is the required posture for the BN traffic shaper.
type LegacyBinaryMigration ¶ added in v0.7.0
type LegacyBinaryMigration struct {
// contains filtered or unexported fields
}
LegacyBinaryMigration removes the old "weaver" binary after rename to "solo-provisioner". This migration applies based on file state, not version boundaries.
func NewLegacyBinaryMigration ¶ added in v0.7.0
func NewLegacyBinaryMigration() *LegacyBinaryMigration
NewLegacyBinaryMigration creates a new legacy binary removal migration.
func (*LegacyBinaryMigration) Applies ¶ added in v0.7.0
func (m *LegacyBinaryMigration) Applies(mctx *migration.Context) (bool, error)
Applies returns true if the legacy "weaver" binary exists and needs to be removed.
func (*LegacyBinaryMigration) Description ¶ added in v0.7.0
func (m *LegacyBinaryMigration) Description() string
func (*LegacyBinaryMigration) Execute ¶ added in v0.7.0
Execute removes the legacy "weaver" binary and its symlink.
func (*LegacyBinaryMigration) ID ¶ added in v0.7.0
func (m *LegacyBinaryMigration) ID() string