Skip to content

Instantly share code, notes, and snippets.

@Oats87
Last active January 29, 2024 22:57
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Oats87/dcb47d17b6c8512c1b5c39ee5a32409b to your computer and use it in GitHub Desktop.
Save Oats87/dcb47d17b6c8512c1b5c39ee5a32409b to your computer and use it in GitHub Desktop.
Create a run.env file that can be used for running Rancher in an IDE
set -x;
if ! command -v rancher-machine &> /dev/null; then
echo "rancher-machine must be in your PATH";
exit 1;
fi;
RDIR=$(pwd)/local-run-data;
mkdir -p $RDIR;
: > run.env;
echo "CATTLE_DEV_MODE=30" >> run.env;
eval "$(grep '^ENV CATTLE_SYSTEM_AGENT' package/Dockerfile | awk '{print "export " $2 "=" $3}')";
eval "$(grep '^ENV CATTLE_WINS_AGENT' package/Dockerfile | awk '{print "export " $2 "=" $3}')";
eval "$(grep '^ENV CATTLE_CSI_PROXY_AGENT' package/Dockerfile | awk '{print "export " $2 "=" $3}')";
eval "$(grep '^ARG CATTLE_KDM_BRANCH' package/Dockerfile | awk '{split($2, val, "="); print "export CATTLE_KDM_BRANCH=" val[2]}')";
eval "$(grep '^ARG SYSTEM_CHART_DEFAULT_BRANCH' package/Dockerfile | awk '{split($2, val, "="); print "export CATTLE_SYSTEM_CHART_DEFAULT_BRANCH=" val[2]}')";
env | grep "CATTLE_" | grep -v "CATTLE_SYSTEM_AGENT_VERSION" >> run.env;
if [ -s target-kubeconfig ]; then
printf "KUBECONFIG=target-kubeconfig" >> run.env;
exit 0;
fi;
if [ -s target-k3d-cluster ]; then
TARGET_K3D_CLUSTER=$(cat target-k3d-cluster);
else
BRANCH=$(git rev-parse --abbrev-ref HEAD | sed -E 's/[^a-zA-Z0-9]+/-/g');
TARGET_K3D_CLUSTER=rancher-dev-$BRANCH;
fi;
mkdir -p $RDIR/$TARGET_K3D_CLUSTER;
k3d cluster list $TARGET_K3D_CLUSTER &> /dev/null;
if [ $? != 0 ]; then
mkdir -p $RDIR/$TARGET_K3D_CLUSTER/manifests;
echo H4sIAAAAAAAAA22STW8aMRCG7/4VFpdIkQwtFKldKSeqVJUIVdMmSL3N2gO467Vde7wp+fWdXQiQKid/zHjeZ94xRPuIKdvgK9m9FwYIKiFlDEYnNOjJglsEv7FbZVvYYiXr6e07/bydLWeruZ7du3r9ner2U/PrZ5zeLT48LX8/kG7v9sv1vIP1fFo/3dyIxnpTyR/IRUm0SPAiBN4HAmL93B+l3Fh0ZqyByOHYhomHlkWZR5lkO0zqzKUYWMpTwjmgB+BjLEfQnHCoqLYu1Pyylxe0jxz4FuFPQaGUEnBhRqpBj6HQLiT7PACOm4+5J2LVQzv3weGrZg4oqcGpakHvrEcVU+hsXxHTa56NQyRlcAPFkUjFIRugJCN8SaHEwQ0lR9cjXhPmUJLG4+XV9RWv7EV9cfE/fwuex9WyIRdmdrMj+ioY/Dz4+UYD7OVbk4mldlYvTi7f9pPKlRz+hcgR9TBQTVy2kpTYVD4as3ChmPMzbh1c7mN1sY6sP+XqHeoml7aSo75rg1knG2lo53Bjc3SwX11Q4l/C5MF9NcecYh+Se9n3Oxc0i04m4h/jx5BR6wIAAA== | base64 --decode | gzip -d > $RDIR/$TARGET_K3D_CLUSTER/manifests/pod.yaml;
K3S_IMAGE=$(grep '^COPY --from=rancher/k3s' package/Dockerfile | sed -E 's/--from=//g' | awk '{print $2}');
k3d cluster create $TARGET_K3D_CLUSTER --k3s-arg "--disable=traefik@server:0" --k3s-arg "--service-cidr=10.45.0.0/16@server:0" --k3s-arg "--cluster-cidr=10.44.0.0/16@server:0" -v $RDIR/$TARGET_K3D_CLUSTER/manifests:/var/lib/rancher/k3s/server/manifests/@server:0 --image=$K3S_IMAGE;
if [ $? != 0 ]; then
echo "Failed to create k3d cluster";
exit 1;
fi;
fi;
KC=$RDIR/$TARGET_K3D_CLUSTER/$TARGET_K3D_CLUSTER-kubeconfig;
k3d kubeconfig get $TARGET_K3D_CLUSTER > $KC;
printf "KUBECONFIG=%s" $KC >> run.env;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment