prvng_kcl/examples/basic_server.k
2025-10-07 11:17:54 +01:00

80 lines
2.0 KiB
Plaintext

# Basic Server Configuration Example
# Shows how to define a simple server with common settings
import ..main
# Simple web server configuration
web_server: main.Server = main.Server {
hostname: "web-01"
title: "Production Web Server"
labels: "env: prod, tier: web, role: frontend"
user: "deploy"
# Network configuration
network_public_ipv4: True
network_utility_ipv4: True
fix_local_hosts: True
# SSH configuration
user_ssh_port: 22
# Basic taskservs to install
taskservs: [
main.TaskServDef {
name: "nginx"
install_mode: "library"
profile: "production"
},
main.TaskServDef {
name: "prometheus-node-exporter"
install_mode: "server"
profile: "monitoring"
}
]
}
# Database server with different configuration
db_server: main.Server = main.Server {
hostname: "db-01"
title: "PostgreSQL Database Server"
labels: "env: prod, tier: data, role: database"
user: "postgres"
# Database servers typically don't need public IPs
network_public_ipv4: False
network_utility_ipv4: True
# Install database-related taskservs
taskservs: [
main.TaskServDef {
name: "postgresql"
install_mode: "server"
profile: "production"
},
main.TaskServDef {
name: "postgres-exporter"
install_mode: "library"
profile: "monitoring"
}
]
}
# Development server with minimal configuration
dev_server: main.Server = main.Server {
hostname: "dev-01"
title: "Development Server"
labels: "env: dev, tier: development"
user: "developer"
# Development servers can have relaxed settings
network_public_ipv4: True
delete_lock: False # Allow easy deletion for dev environments
taskservs: [
main.TaskServDef {
name: "docker"
install_mode: "library"
profile: "development"
}
]
}