pkg/

directory
v1.11.3 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

README

pkg

This directory contains the core business logic packages for KSail.

Purpose

The pkg/ directory houses all the main functionality packages that implement KSail's core features. These packages provide the underlying business logic for cluster provisioning, configuration management, file I/O operations, and component installation.

Features

  • Public API: All packages in pkg/ are part of KSail's public API and can be imported by external applications
  • Modular Design: Each package focuses on a specific domain area with clear responsibilities
  • Production Ready: Comprehensive testing and documentation for reliable usage
  • Cross-Platform: Designed to work across different operating systems and environments

Packages

  • pkg/apis/ - Kubernetes API definitions and custom resource types
  • pkg/config-manager/ - Configuration management utilities for handling KSail and application configs
  • pkg/installer/ - Component installation utilities (kubectl, Flux, etc.)
  • pkg/io/ - Safe file I/O operations with security features and resource generation
  • pkg/provisioner/ - Cluster provisioning and lifecycle management across different Kubernetes distributions

Architecture

The packages in pkg/ follow clean architecture principles:

  • Domain Separation: Each package addresses a specific domain concern
  • Interface-Based Design: Heavy use of interfaces for testability and extensibility
  • Dependency Injection: Components accept their dependencies as interfaces
  • Context Support: All long-running operations support context for cancellation and timeouts

Usage

import (
    "github.com/devantler-tech/ksail-go/pkg/provisioner/cluster"
    "github.com/devantler-tech/ksail-go/pkg/config-manager"
    "github.com/devantler-tech/ksail-go/pkg/io"
)

// Use packages for building KSail functionality
// See individual package README files for detailed usage examples

Each package provides comprehensive documentation, examples, and interfaces for building robust Kubernetes cluster management applications.


⬅️ Go Back

Directories

Path Synopsis
apis
cluster/v1alpha1
Package v1alpha1 provides model definitions for a KSail cluster.
Package v1alpha1 provides model definitions for a KSail cluster.
Package configmanager provides centralized configuration management using Viper.
Package configmanager provides centralized configuration management using Viper.
helpers
Package helpers provides common functionality for config managers to eliminate duplication.
Package helpers provides common functionality for config managers to eliminate duplication.
k3d
Package k3d provides configuration management for K3d v1alpha5.SimpleConfig configurations.
Package k3d provides configuration management for K3d v1alpha5.SimpleConfig configurations.
kind
Package kind provides configuration management for Kind cluster configurations.
Package kind provides configuration management for Kind cluster configurations.
ksail
Package configmanager provides configuration management for KSail v1alpha1.Cluster configurations.
Package configmanager provides configuration management for KSail v1alpha1.Cluster configurations.
testutils
Package testutils provides common test utilities for config manager testing.
Package testutils provides common test utilities for config manager testing.
Package containerengine provides unified container engine detection and management.
Package containerengine provides unified container engine detection and management.
Package di exposes shared dependency injection helpers for KSail commands.
Package di exposes shared dependency injection helpers for KSail commands.
Package errorhandler centralizes Cobra command execution with KSail's error formatting rules.
Package errorhandler centralizes Cobra command execution with KSail's error formatting rules.
Package installer provides functionality for installing and uninstalling components.
Package installer provides functionality for installing and uninstalling components.
flux
Package fluxinstaller provides an installer for installing flux on a Kubernetes cluster.
Package fluxinstaller provides an installer for installing flux on a Kubernetes cluster.
kubectl
Package kubectlinstaller provides a kubectl installer implementation.
Package kubectlinstaller provides a kubectl installer implementation.
testutils
Package testutils provides common test utilities for installer packages
Package testutils provides common test utilities for installer packages
io
Package io provides utilities for input and output operations.
Package io provides utilities for input and output operations.
generator
Package generator provides an interface for generating files from code.
Package generator provides an interface for generating files from code.
generator/k3d
Package k3dgenerator provides utilities for generating k3d cluster configurations.
Package k3dgenerator provides utilities for generating k3d cluster configurations.
generator/kind
Package kindgenerator provides utilities for generating kind cluster configurations.
Package kindgenerator provides utilities for generating kind cluster configurations.
generator/kustomization
Package kustomizationgenerator provides utilities for generating kustomization.yaml files.
Package kustomizationgenerator provides utilities for generating kustomization.yaml files.
generator/testutils
Package testutils provides generator-specific test utilities.
Package testutils provides generator-specific test utilities.
generator/yaml
Package yamlgenerator provides YAML generation functionality for arbitrary models.
Package yamlgenerator provides YAML generation functionality for arbitrary models.
marshaller
Package marshaller provides functionality for marshaling and unmarshaling resources.
Package marshaller provides functionality for marshaling and unmarshaling resources.
marshaller/yaml
Package yamlmarshaller provides functionality for marshaling and unmarshaling YAML documents.
Package yamlmarshaller provides functionality for marshaling and unmarshaling YAML documents.
provisioner
cluster
Package clusterprovisioner provides implementations of the Provisioner interface for provisioning clusters in different providers.
Package clusterprovisioner provides implementations of the Provisioner interface for provisioning clusters in different providers.
cluster/k3d
Package k3dprovisioner contains the K3d cluster provisioner and its client provider interfaces.
Package k3dprovisioner contains the K3d cluster provisioner and its client provider interfaces.
cluster/kind
Package kindprovisioner provides implementations of the Provisioner interface for provisioning clusters in different providers.
Package kindprovisioner provides implementations of the Provisioner interface for provisioning clusters in different providers.
cluster/testutils
Package clustertestutils provides common test utilities for cluster provisioner testing, including shared test cases and helper functions for standardizing test patterns.
Package clustertestutils provides common test utilities for cluster provisioner testing, including shared test cases and helper functions for standardizing test patterns.
Package scaffolder provides utilities for scaffolding KSail project files and configuration.
Package scaffolder provides utilities for scaffolding KSail project files and configuration.
ui
asciiart
Package asciiart provides ASCII art printing functionality for KSail.
Package asciiart provides ASCII art printing functionality for KSail.
notify
Package notify provides utilities for sending notifications to the user.
Package notify provides utilities for sending notifications to the user.
timer
Package timer provides timing functionality for tracking command execution duration.
Package timer provides timing functionality for tracking command execution duration.
Package validator provides interfaces for configuration file validation.
Package validator provides interfaces for configuration file validation.
k3d
Package k3d provides K3d configuration validation functionality.
Package k3d provides K3d configuration validation functionality.
kind
Package kind provides Kind configuration validation functionality.
Package kind provides Kind configuration validation functionality.
ksail
Package ksail provides validation for KSail cluster configurations.
Package ksail provides validation for KSail cluster configurations.
metadata
Package metadata provides shared metadata validation utilities used across multiple validators.
Package metadata provides shared metadata validation utilities used across multiple validators.
testutils
Package testutils provides common test utilities for validator tests to eliminate duplication.
Package testutils provides common test utilities for validator tests to eliminate duplication.

Jump to

Keyboard shortcuts

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