Files
cloud-ip-validator/configs/control-api.example.yaml
T
2026-08-21 07:34:45 +03:00

85 lines
2.3 KiB
YAML

# Control API configuration.
#
# OpenStack credentials are never set here — only the *names* of the
# environment variables to read them from. The actual values must be
# supplied by the process environment (see deploy/systemd/control-api.service
# and its EnvironmentFile=).
server:
listen_addr: ":8080"
database:
path: "/var/lib/cloud-ip-validator/control-api.db"
openstack:
mode: "real" # "mock" | "real" — mock uses an in-memory
# OpenStack stand-in for local dev/testing
auth_url_env: "OS_AUTH_URL"
token_env: "OS_TOKEN"
project_id_env: "OS_PROJECT_ID"
project_name_env: "OS_PROJECT_NAME"
project_domain_env: "OS_PROJECT_DOMAIN_NAME"
region_env: "OS_REGION_NAME"
orchestrator:
poll_interval_seconds: 5
self_check_timeout_seconds: 60
max_self_check_retries: 3
checking_window_seconds: 120
max_retries: 3
lease_ttl_seconds: 180
heartbeat_timeout_seconds: 30
aggregation:
missing_counts_as_fail: true
# Validators are VMs in the service project; os_port_id is the Neutron port
# ID of each validator's primary NIC, used when associating a floating IP.
validators:
- validator_id: "validator_01"
os_port_id: "REPLACE_WITH_NEUTRON_PORT_ID_1"
- validator_id: "validator_02"
os_port_id: "REPLACE_WITH_NEUTRON_PORT_ID_2"
# The three external prober sites, indexed 1-3 (matches ip_queue.siteN_complete).
sites:
- site_id: "site-1"
index: 1
- site_id: "site-2"
index: 2
- site_id: "site-3"
index: 3
# Outbound/egress check types the validator-agent runs, and which target
# group (below) each runs against.
check_types:
- name: "https"
enabled: true
targets: ["default-targets"]
- name: "icmp"
enabled: true
targets: ["default-targets"]
- name: "ssh"
enabled: false
targets: []
targets:
default-targets:
- "https://hub.docker.com"
- "https://github.com"
- "https://packages.ubuntu.com"
# Inbound checks the 3 external-site probers run directly against each
# validator's currently-assigned floating IP.
inbound_checks:
ports: [22, 80, 443, 8080]
icmp: true
# The pool of public IPv4 addresses to validate, in the order they'll be
# processed (ip_queue.sequence). Every address here is checked through to
# the end of the list.
ip_addresses:
- "203.0.113.10"
- "203.0.113.11"
- "203.0.113.12"