50 lines
1.2 KiB
Bash
50 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# Flux 2.7+ Bootstrap Script for GitHub
|
|
|
|
set -e
|
|
|
|
# Configuration
|
|
GITHUB_USER="${GITHUB_USER:-your-org}"
|
|
GITHUB_REPO="${GITHUB_REPO:-fleet-infra}"
|
|
GITHUB_TOKEN="${GITHUB_TOKEN:-}"
|
|
CLUSTER_NAME="${CLUSTER_NAME:-production}"
|
|
CLUSTER_PATH="clusters/${CLUSTER_NAME}"
|
|
|
|
# Check prerequisites
|
|
command -v flux >/dev/null 2>&1 || { echo "flux CLI required"; exit 1; }
|
|
command -v kubectl >/dev/null 2>&1 || { echo "kubectl required"; exit 1; }
|
|
|
|
# Check GitHub token
|
|
if [ -z "$GITHUB_TOKEN" ]; then
|
|
echo "Error: GITHUB_TOKEN environment variable not set"
|
|
exit 1
|
|
fi
|
|
|
|
# Bootstrap Flux
|
|
echo "🚀 Bootstrapping Flux for cluster: $CLUSTER_NAME"
|
|
|
|
flux bootstrap github \
|
|
--owner="$GITHUB_USER" \
|
|
--repository="$GITHUB_REPO" \
|
|
--branch=main \
|
|
--path="$CLUSTER_PATH" \
|
|
--personal \
|
|
--token-auth
|
|
|
|
# Enable source-watcher (Flux 2.7+)
|
|
echo "✨ Enabling source-watcher component..."
|
|
flux install --components-extra=source-watcher
|
|
|
|
# Verify installation
|
|
echo "✅ Verifying Flux installation..."
|
|
flux check
|
|
|
|
echo "
|
|
✅ Flux bootstrapped successfully!
|
|
|
|
Next steps:
|
|
1. Add your applications to ${CLUSTER_PATH}/apps/
|
|
2. Commit and push to trigger Flux reconciliation
|
|
3. Monitor with: flux get all
|
|
"
|