82 lines
1.5 KiB
Bash
82 lines
1.5 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Install All Required Tools
|
||
|
|
# Installs Terraform, kubectl, and Helm
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
source "$SCRIPT_DIR/../lib/init.sh"
|
||
|
|
|
||
|
|
log() {
|
||
|
|
log_success "[✓] $1"
|
||
|
|
}
|
||
|
|
|
||
|
|
error() {
|
||
|
|
log_error "[✗] $1"
|
||
|
|
exit 1
|
||
|
|
}
|
||
|
|
|
||
|
|
warn() {
|
||
|
|
log_warn "[!] $1"
|
||
|
|
}
|
||
|
|
|
||
|
|
info() {
|
||
|
|
log_info "[i] $1"
|
||
|
|
}
|
||
|
|
|
||
|
|
section() {
|
||
|
|
echo
|
||
|
|
log_info "=== $1 ==="
|
||
|
|
}
|
||
|
|
|
||
|
|
section "Installing All Required Tools"
|
||
|
|
|
||
|
|
# Install Terraform
|
||
|
|
section "Terraform"
|
||
|
|
if [ -f "$SCRIPT_DIR/install-terraform.sh" ]; then
|
||
|
|
"$SCRIPT_DIR/install-terraform.sh"
|
||
|
|
else
|
||
|
|
warn "Terraform installation script not found"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Install kubectl
|
||
|
|
section "kubectl"
|
||
|
|
if [ -f "$SCRIPT_DIR/install-kubectl.sh" ]; then
|
||
|
|
"$SCRIPT_DIR/install-kubectl.sh"
|
||
|
|
else
|
||
|
|
warn "kubectl installation script not found"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Install Helm
|
||
|
|
section "Helm"
|
||
|
|
if [ -f "$SCRIPT_DIR/install-helm.sh" ]; then
|
||
|
|
"$SCRIPT_DIR/install-helm.sh"
|
||
|
|
else
|
||
|
|
warn "Helm installation script not found"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Verify all installations
|
||
|
|
section "Verification"
|
||
|
|
TOOLS=("terraform" "kubectl" "helm")
|
||
|
|
ALL_INSTALLED=true
|
||
|
|
|
||
|
|
for tool in "${TOOLS[@]}"; do
|
||
|
|
if command -v "$tool" &> /dev/null; then
|
||
|
|
VERSION=$($tool version 2>/dev/null | head -n 1 || echo "installed")
|
||
|
|
log "$tool: $VERSION"
|
||
|
|
else
|
||
|
|
error "$tool is not installed"
|
||
|
|
ALL_INSTALLED=false
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
|
||
|
|
if [ "$ALL_INSTALLED" = true ]; then
|
||
|
|
section "Installation Complete"
|
||
|
|
log "All tools installed successfully"
|
||
|
|
info "You can now proceed with deployment"
|
||
|
|
else
|
||
|
|
error "Some tools failed to install"
|
||
|
|
fi
|
||
|
|
|