ksail-go

command module
v1.12.0 Latest Latest
Warning

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

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

README

codecov CI - Go

ksail

[!IMPORTANT] This is a work in progress to migrate KSail to a Golang. This is a huge endeavour, but being able to leverage the power of the Go ecosystem will be invaluable. The amount of packages available in Go to support this project is immense, so switching programming language has the potential to greatly enhance the functionality, performance and ease of use of KSail. I also hope switching will promote adoption and contributions.

Take control of Kubernetes without the chaos. ⚡ KSail is your all-in-one SDK for spinning up clusters and managing workloads—right from your own machine. Instead of juggling a dozen CLI tools, KSail streamlines your workflow with a single, declarative interface built on top of the Kubernetes tools you already know and trust.

🌟 Declarative. Local. Effortless. Welcome to Kubernetes, simplified.

Getting Started

Prerequisites
  • Linux (amd64 and arm64)
  • MacOS (amd64 and arm64)
Installation
Homebrew
Go Install
go install github.com/devantler-tech/ksail-go@latest
ksail --help
From Source
git clone https://github.com/devantler-tech/ksail-go.git
go build -o ksail
./ksail --help

Usage

Run the CLI:

ksail --help

Documentation

Structure

The KSail Go project is organized into several main packages:

  • cmd/ - Command-line interface implementation using Cobra framework
  • pkg/ - Core business logic packages:
  • internal/ - Internal utility packages:

Each package contains detailed documentation about its purpose, features, and usage examples.

Presentations

Star History


Contributions welcome. Open an issue or PR to propose features.

Documentation

Overview

Package main is the entry point for the KSail application.

Directories

Path Synopsis
cmd
Package cmd provides the command-line interface for KSail.
Package cmd provides the command-line interface for KSail.
cluster
Package cluster groups all KSail cluster lifecycle Cobra commands under a single namespace.
Package cluster groups all KSail cluster lifecycle Cobra commands under a single namespace.
cluster/testutils
Package testutils provides shared helpers for cluster command tests.
Package testutils provides shared helpers for cluster command tests.
internal/shared
Package shared provides reusable helpers for command wiring.
Package shared provides reusable helpers for command wiring.
internal/testutils
Package testutils provides testing helpers for command testing (command-layer specific).
Package testutils provides testing helpers for command testing (command-layer specific).
workload
Package workload provides the workload command namespace.
Package workload provides the workload command namespace.
internal
testutils
Package testutils provides testing utilities to aid error handling in tests.
Package testutils provides testing utilities to aid error handling in tests.
pkg
apis/cluster/v1alpha1
Package v1alpha1 provides model definitions for a KSail cluster.
Package v1alpha1 provides model definitions for a KSail cluster.
config-manager
Package configmanager provides centralized configuration management using Viper.
Package configmanager provides centralized configuration management using Viper.
config-manager/helpers
Package helpers provides common functionality for config managers to eliminate duplication.
Package helpers provides common functionality for config managers to eliminate duplication.
config-manager/k3d
Package k3d provides configuration management for K3d v1alpha5.SimpleConfig configurations.
Package k3d provides configuration management for K3d v1alpha5.SimpleConfig configurations.
config-manager/kind
Package kind provides configuration management for Kind cluster configurations.
Package kind provides configuration management for Kind cluster configurations.
config-manager/ksail
Package configmanager provides configuration management for KSail v1alpha1.Cluster configurations.
Package configmanager provides configuration management for KSail v1alpha1.Cluster configurations.
config-manager/testutils
Package testutils provides common test utilities for config manager testing.
Package testutils provides common test utilities for config manager testing.
containerengine
Package containerengine provides unified container engine detection and management.
Package containerengine provides unified container engine detection and management.
di
Package di exposes shared dependency injection helpers for KSail commands.
Package di exposes shared dependency injection helpers for KSail commands.
errorhandler
Package errorhandler centralizes Cobra command execution with KSail's error formatting rules.
Package errorhandler centralizes Cobra command execution with KSail's error formatting rules.
installer
Package installer provides functionality for installing and uninstalling components.
Package installer provides functionality for installing and uninstalling components.
installer/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.
installer/kubectl
Package kubectlinstaller provides a kubectl installer implementation.
Package kubectlinstaller provides a kubectl installer implementation.
installer/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.
io/generator
Package generator provides an interface for generating files from code.
Package generator provides an interface for generating files from code.
io/generator/k3d
Package k3dgenerator provides utilities for generating k3d cluster configurations.
Package k3dgenerator provides utilities for generating k3d cluster configurations.
io/generator/kind
Package kindgenerator provides utilities for generating kind cluster configurations.
Package kindgenerator provides utilities for generating kind cluster configurations.
io/generator/kustomization
Package kustomizationgenerator provides utilities for generating kustomization.yaml files.
Package kustomizationgenerator provides utilities for generating kustomization.yaml files.
io/generator/testutils
Package testutils provides generator-specific test utilities.
Package testutils provides generator-specific test utilities.
io/generator/yaml
Package yamlgenerator provides YAML generation functionality for arbitrary models.
Package yamlgenerator provides YAML generation functionality for arbitrary models.
io/marshaller
Package marshaller provides functionality for marshaling and unmarshaling resources.
Package marshaller provides functionality for marshaling and unmarshaling resources.
io/marshaller/yaml
Package yamlmarshaller provides functionality for marshaling and unmarshaling YAML documents.
Package yamlmarshaller provides functionality for marshaling and unmarshaling YAML documents.
kubectl
Package kubectl provides a kubectl client implementation.
Package kubectl provides a kubectl client implementation.
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.
provisioner/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.
provisioner/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.
provisioner/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.
scaffolder
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.
ui/notify
Package notify provides utilities for sending notifications to the user.
Package notify provides utilities for sending notifications to the user.
ui/timer
Package timer provides timing functionality for tracking command execution duration.
Package timer provides timing functionality for tracking command execution duration.
validator
Package validator provides interfaces for configuration file validation.
Package validator provides interfaces for configuration file validation.
validator/k3d
Package k3d provides K3d configuration validation functionality.
Package k3d provides K3d configuration validation functionality.
validator/kind
Package kind provides Kind configuration validation functionality.
Package kind provides Kind configuration validation functionality.
validator/ksail
Package ksail provides validation for KSail cluster configurations.
Package ksail provides validation for KSail cluster configurations.
validator/metadata
Package metadata provides shared metadata validation utilities used across multiple validators.
Package metadata provides shared metadata validation utilities used across multiple validators.
validator/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