helpers

package
v1.11.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

README

pkg/config-manager/helpers

This package provides common functionality for configuration managers to eliminate duplication across different distributions.

Purpose

Contains shared utilities and helper functions used by various configuration managers (Kind, K3d, EKS) to avoid code duplication. This package provides the foundational configuration loading, validation, and management functionality.

Features

  • Configuration Loading: Generic configuration loading from YAML files
  • Validation Integration: Seamless integration with the validator package
  • Error Handling: Standardized error types and handling patterns
  • File I/O Operations: Safe file operations with proper error handling
  • Marshalling Support: Integration with YAML marshalling utilities
  • Path Resolution: Robust path handling and resolution

Usage

import "github.com/devantler-tech/ksail-go/pkg/config-manager/helpers"

// Load and validate configuration from file
config, err := helpers.LoadConfig[MyConfigType](
    "/path/to/config.yaml",
    validator.ValidateFunc,
)
if err != nil {
    // Handle validation or loading errors
}

Key Components

  • loader.go: Core configuration loading and validation logic
  • common functionality: Shared utilities across all config managers
  • error definitions: Standardized error types for configuration operations
  • testutils/: Testing utilities specific to config-manager helpers

Integration

This package is used by:

  • pkg/config-manager/kind: Kind cluster configuration management
  • pkg/config-manager/k3d: K3d cluster configuration management
  • pkg/config-manager/eks: EKS cluster configuration management

This design ensures consistent behavior and reduces code duplication across all supported Kubernetes distributions.


⬅️ Go Back

Documentation

Overview

Package helpers provides common functionality for config managers to eliminate duplication.

Index

Constants

This section is empty.

Variables

View Source
var ErrConfigurationValidationFailed = errors.New("configuration validation failed")

ErrConfigurationValidationFailed is returned when configuration validation fails.

Functions

func FormatValidationErrors

func FormatValidationErrors(result *validator.ValidationResult) string

FormatValidationErrors formats validation errors into a single-line readable string. This function eliminates duplication between different config managers.

func FormatValidationErrorsMultiline

func FormatValidationErrorsMultiline(result *validator.ValidationResult) string

FormatValidationErrorsMultiline formats validation errors into a multi-line string for CLI display. This function provides a standardized way to format validation errors for user-facing output.

func FormatValidationFixSuggestions

func FormatValidationFixSuggestions(result *validator.ValidationResult) []string

FormatValidationFixSuggestions formats fix suggestions for validation errors. This function provides a standardized way to format fix suggestions for CLI display.

func FormatValidationWarnings

func FormatValidationWarnings(result *validator.ValidationResult) []string

FormatValidationWarnings formats validation warnings for CLI display. This function provides a standardized way to format validation warnings.

func LoadAndValidateConfig

func LoadAndValidateConfig[T any](
	configPath string,
	createDefault func() T,
	validatorInstance validator.Validator[T],
) (T, error)

LoadAndValidateConfig loads a configuration from disk and validates it using the provided validator. This helper combines LoadConfigFromFile and ValidateConfig to reduce duplication across config managers. It returns the loaded configuration or an error if loading or validation fails.

func LoadConfigFromFile

func LoadConfigFromFile[T any](
	configPath string,
	createDefault func() T,
) (T, error)

LoadConfigFromFile loads a configuration from a file with common error handling and path resolution. This function eliminates duplication between different config managers.

Parameters:

  • configPath: The path to the configuration file
  • createDefault: Function to create a default configuration

Returns the loaded configuration or an error.

func ValidateConfig

func ValidateConfig[T any](config T, validatorInstance validator.Validator[T]) error

ValidateConfig validates a configuration and returns an error if validation fails. This function eliminates duplication between different config managers.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL