feat: OCI deployment — Terraform VM + OKE stacks, OCIR, K8s manifests
- terraform-vm/: ARM VM (A1.Flex Free Tier), Docker Compose, Block Volume, LB+WAF+SSL - terraform-oke/: OKE cluster (3 nodes Intel), NodePort, LB+WAF+SSL - k8s/: namespace, deployments, services, PVC, secrets, configmap - Dockerfile.frontend: self-contained nginx+dist image - push-images.sh: multi-arch build (amd64+arm64) + push to OCIR - dns.tf: conditional OCI DNS Zone + A record (when domain available) - Both stacks 100% independent, no shared modules - .gitignore: terraform state, .terraform/, *.tfvars
This commit is contained in:
61
deploy/scripts/push-images.sh
Executable file
61
deploy/scripts/push-images.sh
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
OCIR_REGION="${OCIR_REGION:?Set OCIR_REGION (e.g., us-ashburn-1)}"
|
||||
OCIR_NAMESPACE="${OCIR_NAMESPACE:?Set OCIR_NAMESPACE}"
|
||||
OCIR_REPO_PREFIX="${OCIR_REPO_PREFIX:-oci-cis-agent}"
|
||||
IMAGE_TAG="${IMAGE_TAG:-latest}"
|
||||
|
||||
BACKEND="${OCIR_REGION}.ocir.io/${OCIR_NAMESPACE}/${OCIR_REPO_PREFIX}-backend:${IMAGE_TAG}"
|
||||
FRONTEND="${OCIR_REGION}.ocir.io/${OCIR_NAMESPACE}/${OCIR_REPO_PREFIX}-frontend:${IMAGE_TAG}"
|
||||
|
||||
echo "========================================"
|
||||
echo "OCI CIS Agent — Build & Push to OCIR"
|
||||
echo "========================================"
|
||||
echo "Backend: $BACKEND"
|
||||
echo "Frontend: $FRONTEND"
|
||||
echo ""
|
||||
|
||||
# 1. Build frontend React SPA
|
||||
echo ">>> Building frontend..."
|
||||
cd "$PROJECT_ROOT/frontend-react"
|
||||
npm ci --silent
|
||||
npm run build
|
||||
echo "Frontend build OK."
|
||||
|
||||
# 2. Ensure buildx builder exists
|
||||
docker buildx inspect multiarch >/dev/null 2>&1 || \
|
||||
docker buildx create --name multiarch --use
|
||||
|
||||
docker buildx use multiarch
|
||||
|
||||
# 3. Login to OCIR
|
||||
echo ">>> Logging in to OCIR..."
|
||||
docker login "${OCIR_REGION}.ocir.io"
|
||||
|
||||
# 4. Build + push backend (multi-arch)
|
||||
echo ">>> Building & pushing backend (amd64 + arm64)..."
|
||||
cd "$PROJECT_ROOT"
|
||||
docker buildx build \
|
||||
--platform linux/amd64,linux/arm64 \
|
||||
-t "$BACKEND" \
|
||||
--push \
|
||||
-f backend/Dockerfile backend/
|
||||
|
||||
# 5. Build + push frontend (multi-arch)
|
||||
echo ">>> Building & pushing frontend (amd64 + arm64)..."
|
||||
docker buildx build \
|
||||
--platform linux/amd64,linux/arm64 \
|
||||
-t "$FRONTEND" \
|
||||
--push \
|
||||
-f deploy/Dockerfile.frontend .
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "Done! Both images pushed."
|
||||
echo "Backend: $BACKEND"
|
||||
echo "Frontend: $FRONTEND"
|
||||
echo "========================================"
|
||||
Reference in New Issue
Block a user