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.
- For Rust users,
loopy
is available withcargo
.
cargo install loopy
- For everyone else, pre-packaged binaries are available in releases.
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 theconfig/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
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
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