provisioning/schemas/platform/deployment-mode-example.ncl

93 lines
4.4 KiB
Text
Raw Normal View History

# Platform Deployment Mode Configuration Examples
# These show how to configure the deployment mode for different infrastructure setups
# ═══════════════════════════════════════════════════════════════════════════
# EXAMPLE 1: Local Development (Binary Execution)
# ═══════════════════════════════════════════════════════════════════════════
# For local development with binaries in ~/.local/bin
# Services are started as individual processes
let local_example = {
mode = "local",
manager = {
hostname = "localhost",
port = 9090,
},
config_dir = "~/.config/provisioning/platform/config",
health_checks_enabled = true,
startup_timeout = 60,
description = "Local development with binaries",
} in
# ═══════════════════════════════════════════════════════════════════════════
# EXAMPLE 2: Docker Compose
# ═══════════════════════════════════════════════════════════════════════════
# For local development with Docker Compose
# Services are orchestrated via docker-compose.yml
let docker_compose_example = {
mode = "docker-compose",
manager = {
host = "unix:///var/run/docker.sock",
api_version = "v1.45",
},
config_dir = "~/.config/provisioning/platform/config",
health_checks_enabled = true,
startup_timeout = 120,
description = "Docker Compose local development",
} in
# ═══════════════════════════════════════════════════════════════════════════
# EXAMPLE 3: Docker Compose (Remote Host)
# ═══════════════════════════════════════════════════════════════════════════
# For development on a remote Docker daemon
let docker_remote_example = {
mode = "docker-compose",
manager = {
host = "tcp://docker-host.local:2375",
api_version = "v1.45",
},
config_dir = "~/.config/provisioning/platform/config",
health_checks_enabled = true,
startup_timeout = 120,
description = "Docker Compose on remote daemon",
} in
# ═══════════════════════════════════════════════════════════════════════════
# EXAMPLE 4: Kubernetes Cluster
# ═══════════════════════════════════════════════════════════════════════════
# For production Kubernetes deployment
# Services are deployed as K8s objects (Deployments, Services, ConfigMaps, etc.)
let kubernetes_example = {
mode = "kubernetes",
manager = {
cluster_name = "production-cluster",
api_server = "https://k8s-master.example.com:6443",
namespace = "provisioning",
kubeconfig_path = "~/.kube/config",
ca_cert_path = "/etc/kubernetes/ca.crt",
},
config_dir = "~/.config/provisioning/platform/config",
health_checks_enabled = true,
startup_timeout = 300,
description = "Production Kubernetes cluster",
} in
# ═══════════════════════════════════════════════════════════════════════════
# Default configuration selection (uncomment one to use)
# ═══════════════════════════════════════════════════════════════════════════
# Use local development
local_example
# Use Docker Compose locally
# docker_compose_example
# Use remote Docker
# docker_remote_example
# Use Kubernetes
# kubernetes_example