Documentation
¶
Index ¶
- Constants
- func BuildMigrationWorkflow(manager *Manager, profile, valuesFile string) (*automa.WorkflowBuilder, error)
- func InitMigrations()
- type Manager
- func (m *Manager) AnnotateService(ctx context.Context) error
- func (m *Manager) ClearStorageDirectory(dirPath string) error
- func (m *Manager) ComputeValuesFile(profile string, valuesFile string) (string, error)
- func (m *Manager) CreateNamespace(ctx context.Context, tempDir string) error
- func (m *Manager) CreatePersistentVolumes(ctx context.Context, tempDir string) error
- func (m *Manager) CreateVerificationStorage(ctx context.Context, tempDir string) error
- func (m *Manager) DeleteNamespace(ctx context.Context, tempDir string) error
- func (m *Manager) DeletePersistentVolumes(ctx context.Context, tempDir string) error
- func (m *Manager) GetInstalledVersion() (string, error)
- func (m *Manager) GetReleaseValues() (map[string]interface{}, error)
- func (m *Manager) GetStoragePaths() (archivePath, livePath, logPath, verificationPath string, err error)
- func (m *Manager) InstallChart(ctx context.Context, valuesFile string) (bool, error)
- func (m *Manager) ResetStorage(ctx context.Context) error
- func (m *Manager) ScaleStatefulSet(ctx context.Context, replicas int32) error
- func (m *Manager) SetupStorage(ctx context.Context) error
- func (m *Manager) UninstallChart(ctx context.Context) error
- func (m *Manager) UpgradeChart(ctx context.Context, valuesFile string, reuseValues bool) error
- func (m *Manager) WaitForPodReady(ctx context.Context) error
- func (m *Manager) WaitForPodsTerminated(ctx context.Context) error
- type VerificationStorageMigration
Constants ¶
const ( // Kubernetes resources ResourceNameSuffix = "-block-node-server" PodLabelSelector = "app.kubernetes.io/name=block-node-server" // Template paths NamespacePath = "files/block-node/namespace.yaml" StorageConfigPath = "files/block-node/storage-config.yaml" VerificationStoragePath = "files/block-node/verification-storage.yaml" ValuesPath = "files/block-node/full-values.yaml" NanoValuesPath = "files/block-node/nano-values.yaml" // Template paths for v0.26.2+ (includes verification storage) ValuesPathV0262 = "files/block-node/full-values-v0.26.2.yaml" NanoValuesPathV0262 = "files/block-node/nano-values-v0.26.2.yaml" // Timeouts PodReadyTimeoutSeconds = 300 )
const ComponentBlockNode = "block-node"
ComponentBlockNode is the component name for block node migrations.
const VerificationStorageMinVersion = "0.26.2"
VerificationStorageMinVersion is the minimum Block Node version that requires verification storage.
Variables ¶
This section is empty.
Functions ¶
func BuildMigrationWorkflow ¶ added in v0.7.0
func BuildMigrationWorkflow(manager *Manager, profile, valuesFile string) (*automa.WorkflowBuilder, error)
BuildMigrationWorkflow returns an automa workflow for executing applicable migrations. Returns nil if no migrations are needed (installed version is empty or no applicable migrations).
func InitMigrations ¶ added in v0.7.0
func InitMigrations()
InitMigrations registers all block node migrations. Called once at startup from root.go.
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles block node setup and management operations
func NewManager ¶
func NewManager(blockConfig config.BlockNodeConfig) (*Manager, error)
NewManager creates a new block node manager
func (*Manager) AnnotateService ¶
AnnotateService annotates the block node service with MetalLB address pool
func (*Manager) ClearStorageDirectory ¶ added in v0.8.0
ClearStorageDirectory removes all files and subdirectories from a storage directory while preserving the directory itself
func (*Manager) ComputeValuesFile ¶
ComputeValuesFile generates the values file for helm installation based on profile and version. It provides the path to the generated values file.
The method selects the appropriate values template based on the target Block Node version: - For versions >= 0.26.2: Uses values templates with verification storage configuration - For versions < 0.26.2: Uses values templates without verification storage
NOTE: This method implements defense-in-depth validation. Even though the CLI layer validates paths using sanity.ValidateInputFile(), this method also validates to ensure safety regardless of the caller. This protects against future code changes where this method might be called from other places without proper validation.
func (*Manager) CreateNamespace ¶
CreateNamespace creates the block-node namespace if it doesn't exist
func (*Manager) CreatePersistentVolumes ¶
CreatePersistentVolumes creates PVs and PVCs from the storage config
func (*Manager) CreateVerificationStorage ¶ added in v0.7.0
CreateVerificationStorage creates only the verification PV/PVC. Used during migration when other PVs already exist.
func (*Manager) DeleteNamespace ¶
DeleteNamespace deletes the block-node namespace
func (*Manager) DeletePersistentVolumes ¶
DeletePersistentVolumes deletes PVs and PVCs
func (*Manager) GetInstalledVersion ¶ added in v0.7.0
GetInstalledVersion returns the currently installed Block Node chart version. Returns empty string if not installed.
func (*Manager) GetReleaseValues ¶ added in v0.7.0
GetReleaseValues returns the user-supplied values from the currently installed release. Returns nil if not installed or if no user values were supplied.
func (*Manager) GetStoragePaths ¶ added in v0.6.0
func (m *Manager) GetStoragePaths() (archivePath, livePath, logPath, verificationPath string, err error)
GetStoragePaths returns the computed storage paths based on configuration. If individual paths are specified, they are used; otherwise, paths are derived from basePath. All paths are validated using sanity checks. verificationPath is only required/derived/validated when the target version requires verification storage (>= 0.26.2).
func (*Manager) InstallChart ¶
InstallChart installs the block node helm chart
func (*Manager) ResetStorage ¶ added in v0.8.0
ResetStorage clears all block node storage directories
func (*Manager) ScaleStatefulSet ¶ added in v0.8.0
ScaleStatefulSet scales the block node statefulset to the specified number of replicas
func (*Manager) SetupStorage ¶
SetupStorage creates the required directories for block node storage
func (*Manager) UninstallChart ¶
UninstallChart uninstalls the block node helm chart
func (*Manager) UpgradeChart ¶ added in v0.5.0
UpgradeChart upgrades the block node helm chart
func (*Manager) WaitForPodReady ¶
WaitForPodReady waits for the block node pod to be ready
type VerificationStorageMigration ¶ added in v0.7.0
type VerificationStorageMigration struct {
migration.VersionMigration
}
VerificationStorageMigration handles the breaking change introduced in Block Node v0.26.2 where a new verification storage PV/PVC was added to the StatefulSet.
func NewVerificationStorageMigration ¶ added in v0.7.0
func NewVerificationStorageMigration() *VerificationStorageMigration
NewVerificationStorageMigration creates a new verification storage migration.