- scripts/release.sh: full release orchestration (build, publish, install) - deploy/k3s/: Deployment, ConfigMap, PVC, Namespace with kustomize hostNetwork for dnsmasq, NET_ADMIN caps, local-path PVC - Infra role gets /var/lib/rancher partition (20GB, preserved on reprovision) for k3s etcd data persistence across reinstalls - Infra %post installs k3s server (INSTALL_K3S_SKIP_START=true) - 5 new kickstart tests (27 total) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
76 lines
1.9 KiB
Bash
Executable File
76 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
cd "$PROJECT_ROOT"
|
|
|
|
# Load .env if present
|
|
if [ -f .env ]; then
|
|
set -a; source .env; set +a
|
|
fi
|
|
|
|
echo "=== lab-bastion release ==="
|
|
echo ""
|
|
|
|
# 1. Build binaries & packages
|
|
bash scripts/build-rpm.sh
|
|
|
|
echo ""
|
|
|
|
# 2. Publish RPM
|
|
bash scripts/publish-rpm.sh
|
|
|
|
echo ""
|
|
|
|
# 3. Publish DEB
|
|
bash scripts/publish-deb.sh
|
|
|
|
echo ""
|
|
|
|
# 4. Build & push Docker image
|
|
bash scripts/build-bastion.sh
|
|
|
|
echo ""
|
|
|
|
# 5. Install locally (Fedora/RHEL only)
|
|
if [ -f /etc/fedora-release ] || [ -f /etc/redhat-release ]; then
|
|
echo "==> Installing locally..."
|
|
RPM_FILE=$(ls dist/lab-*.rpm 2>/dev/null | head -1)
|
|
if [ -n "$RPM_FILE" ]; then
|
|
sudo rpm -U --force "$RPM_FILE"
|
|
echo ""
|
|
echo "==> Installed:"
|
|
lab --version || echo "(lab binary installed)"
|
|
else
|
|
echo "==> WARNING: No RPM found in dist/, skipping local install."
|
|
fi
|
|
else
|
|
echo "==> Not Fedora/RHEL — skipping local RPM install."
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# 6. Summary
|
|
GITEA_PUBLIC_URL="${GITEA_PUBLIC_URL:-https://mysources.co.uk}"
|
|
GITEA_OWNER="${GITEA_OWNER:-michal}"
|
|
REGISTRY="${GITEA_REGISTRY:-mysources.co.uk}"
|
|
VERSION=$(node -p "require('./package.json').version")
|
|
|
|
echo "=== Done! ==="
|
|
echo ""
|
|
echo "RPM install:"
|
|
echo " sudo dnf config-manager --add-repo ${GITEA_PUBLIC_URL}/api/packages/${GITEA_OWNER}/rpm.repo"
|
|
echo " sudo dnf install lab"
|
|
echo ""
|
|
echo "DEB install (Debian/Ubuntu):"
|
|
echo " echo \"deb ${GITEA_PUBLIC_URL}/api/packages/${GITEA_OWNER}/debian trixie main\" | sudo tee /etc/apt/sources.list.d/lab.list"
|
|
echo " curl -fsSL ${GITEA_PUBLIC_URL}/api/packages/${GITEA_OWNER}/debian/repository.key | sudo gpg --dearmor -o /etc/apt/keyrings/lab.gpg"
|
|
echo " sudo apt update && sudo apt install lab"
|
|
echo ""
|
|
echo "Docker image:"
|
|
echo " podman pull ${REGISTRY}/michal/lab-bastion:${VERSION}"
|
|
echo ""
|
|
echo "k3s deployment:"
|
|
echo " kubectl apply -k deploy/k3s/"
|