~ knotless Search/
↑↓ move↵ open⇧↵ all results

johnandersen777.bsky.social/knotless-runner-k8s

0
0
34 lines · 1.6 KB Raw History
#!/usr/bin/env bash
# Installs knotless-run, its scoped-kubeconfig helper and the systemd units.
# Usage: sudo deploy/install.sh /path/to/knotless-run
set -euo pipefail

BINARY=${1:-/usr/local/bin/knotless-run}
HERE=$(cd "$(dirname "$0")" && pwd)
ROOT=$(cd "$HERE/.." && pwd)

if [ "$(id -u)" != 0 ]; then
  echo "install.sh: run as root" >&2
  exit 2
fi
if [ ! -x "$BINARY" ]; then
  echo "install.sh: $BINARY is not executable" >&2
  exit 2
fi

id knotless >/dev/null 2>&1 || useradd --system --home /var/lib/knotless --shell /usr/sbin/nologin knotless
install -d -m 0755 /etc/knotless
install -d -m 0750 -o knotless -g knotless /var/lib/knotless
install -m 0755 "$BINARY" /usr/local/bin/knotless-run
install -m 0755 "$ROOT/scripts/scoped-kubeconfig.sh" /usr/local/bin/knotless-scoped-kubeconfig
install -m 0755 "$ROOT/scripts/refresh-kubeconfig.sh" /usr/local/bin/knotless-refresh-kubeconfig
install -m 0644 "$HERE/knotless-run.service" /etc/systemd/system/
install -m 0644 "$HERE/knotless-refresh-kubeconfig.service" /etc/systemd/system/
install -m 0644 "$HERE/knotless-refresh-kubeconfig.timer" /etc/systemd/system/
if [ ! -e /etc/knotless/env ]; then
  install -m 0640 -o root -g knotless "$HERE/knotless-run.env.example" /etc/knotless/env
  echo "edit /etc/knotless/env, put the scoped kubeconfig at /etc/knotless/tenant.kubeconfig, and the admin one at /etc/knotless/admin.kubeconfig"
fi
systemctl daemon-reload
systemctl enable knotless-run.service knotless-refresh-kubeconfig.timer
echo "installed; start with: systemctl start knotless-run.service && systemctl start knotless-refresh-kubeconfig.timer"