61 lines
1.9 KiB
Bash
61 lines
1.9 KiB
Bash
#!/bin/bash
|
|||
|
|
set -e
|
||
|
|
|
||
|
|
cd "$(dirname "$0")/.."
|
||
|
|
|
||
|
|
echo "=== Terraform Bootstrap Setup ==="
|
||
|
|
|
||
|
|
if [ ! -f "../.env" ]; then
|
||
|
|
echo "ERROR: ../.env not found. Run from terraform/ directory."
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Extract MinIO credentials from .env
|
||
|
|
export AWS_ACCESS_KEY_ID=$(grep "^MINIO_ROOT_USER=" ../.env | cut -d= -f2)
|
||
|
|
export AWS_SECRET_ACCESS_KEY=$(grep "^MINIO_ROOT_PASSWORD=" ../.env | cut -d= -f2)
|
||
|
|
export KUBECONFIG=$(pwd)/../cluster-config/kubeconfig
|
||
|
|
|
||
|
|
if [ -z "$AWS_ACCESS_KEY_ID" ] || [ -z "$AWS_SECRET_ACCESS_KEY" ]; then
|
||
|
|
echo "ERROR: MINIO_ROOT_USER or MINIO_ROOT_PASSWORD not found in .env"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "✓ MinIO S3 credentials loaded"
|
||
|
|
|
||
|
|
# Check Vault token
|
||
|
|
if [ -z "$VAULT_TOKEN" ]; then
|
||
|
|
echo "WARNING: VAULT_TOKEN not set. Set it before terraform init:"
|
||
|
|
echo " export VAULT_TOKEN=\$(vault login -method=oidc ...)"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Generate terraform.tfvars from .env
|
||
|
|
echo "Generating terraform.tfvars from .env..."
|
||
|
|
cat > terraform.tfvars.local << 'EOF'
|
||
|
|
# Auto-generated from .env
|
||
|
|
EOF
|
||
|
|
|
||
|
|
grep -E '^(AUTHENTIK_SECRET_KEY|AUTHENTIK_BOOTSTRAP_PASSWORD|AUTHENTIK_BOOTSTRAP_TOKEN|AUTHENTIK_PG_PASSWORD|POSTGRES_PASSWORD|MINIO_ROOT_|GRAFANA_|FORGEJO_|ARGOCD_)' ../.env | sed 's/_ROOT_USER=/=/' | while read line; do
|
||
|
|
key=$(echo "$line" | cut -d= -f1 | sed 's/_/ /g; s/.*/\L&/; s/ /_/g')
|
||
|
|
val=$(echo "$line" | cut -d= -f2-)
|
||
|
|
if [[ "$key" == *"secret"* ]] || [[ "$key" == *"password"* ]]; then
|
||
|
|
echo "$key = \"$val\"" >> terraform.tfvars.local
|
||
|
|
else
|
||
|
|
echo "$key = \"$val\"" >> terraform.tfvars.local
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
|
||
|
|
echo "✓ terraform.tfvars.local generated"
|
||
|
|
|
||
|
|
# Initialize terraform
|
||
|
|
echo "Initializing terraform with S3 backend..."
|
||
|
|
terraform init \
|
||
|
|
-backend-config="access_key=$AWS_ACCESS_KEY_ID" \
|
||
|
|
-backend-config="secret_key=$AWS_SECRET_ACCESS_KEY"
|
||
|
|
|
||
|
|
echo "✓ Terraform initialized"
|
||
|
|
echo ""
|
||
|
|
echo "Next steps:"
|
||
|
|
echo " 1. Review: terraform plan"
|
||
|
|
echo " 2. Import existing resources: ./scripts/import-existing.sh"
|
||
|
|
echo " 3. Apply: terraform apply"
|