Skip to content

salt-labs/loopy

loopy

Overview

A Kubernetes packaging helper utility that tries to prevent you from going loopy.

Loopy is useful for those times when you find yourself testing the same inner loop during development.

If you find yourself installing and upgrading the same set of Helm charts on a kind cluster after only a couple lines of changes to a values file this tool might be of use.

loopy

Installation

  • For Rust users, loopy is available with cargo.
cargo install loopy
  • For everyone else, pre-packaged binaries are available in releases.

Usage

Once you have loopy installed, there are couple of things you need to do to get up and running.

  • Create the folder structure.
# Where you want to store your loopy configuration.
LOOPY_HOME="${HOME}/loopy"

# Create the folder structure.
mkdir --parents "${LOOPY_HOME}/config/{capi,helm,manifests,carvel}"

cd "${LOOPY_HOME}"
  • Define your configuration in loopy.yaml
# If you need a starter sample.
curl --output "${LOOPY_HOME}/loopy.yaml" https://raw.githubusercontent.com/salt-labs/loopy/trunk/config/loopy.yaml

vim loopy.yaml
  • If you need a kind cluster for local testing, there is a sample configuration in the config/capi/kind directory with usage instructions in the kind section.

  • Before continuing, ensure you are connected to the cluster.

kubectl cluster-info
  • Review the available commands.
loopy --help
  • When ready, run loopy
loopy --config loopy.yaml --action install
  • When finished, run loopy again to clean up.
loopy --config loopy.yaml --action uninstall

Dependencies

If you don't already have the dependencies installed, loopy will ask to install them for you if you are internet connected.

Once that's done you can add the vendor folder to the PATH of your current shell and go from there.

export PATH=$(pwd)/vendor:$PATH

Development

There are a number of packages required for development.

You can either use the DevShell contained within this repositories Nix flake or install some of the following packages depending on your Operating System.

# CentOS
yum install \
    autoconf \
    clang \
    cmake \
    file-devel \
    gcc \
    git \
    make \
    openssl \
    openssl-devel

# Ubuntu
sudo apt update
sudo apt install -y \
    autoconf \
    clang \
    cmake \
    gcc \
    git \
    libmagic-dev \
    libssl-dev \
    make \
    openssl \
    zstd