kardod
The control plane: API, config store, data plane orchestration, system management, licensing, cluster.
Platform
Every Kardo node runs the same processes; the control plane decides each node’s role. Here is what is inside.
Architecture
kardod exposes REST API v1 and the UI, stores the config in bbolt with versioned transactions and replicates it with Raft.
It renders haproxy.cfg from Go templates, validates it and hot-reloads HAProxy without losing connections.
kardo-waf and kardo-auth answer HAProxy via SPOE; kardo-gslb serves DNS; kardo-k8s watches Kubernetes.
VRRPv3 moves VIPs, Raft keeps every node consistent, a witness prevents split brain.
Components
The control plane: API, config store, data plane orchestration, system management, licensing, cluster.
The data plane: L7 and TCP proxying, L4 UDP and DSR, firewall, NAT and basic DDoS protection with SYN proxy.
The SPOA WAF agent: normalization, positive and negative models, learning and incident correlation.
The access gateway: edge pre-authentication with a login portal, sessions replicated via Raft.
The authoritative DNS server for GeoLB, with its own site health checks and GeoIP.
The Kubernetes connector, active only on the cluster leader, with a token limited to its own endpoints.
Automation
Every write lands in a shared, replicated candidate configuration. Review the diff, validate, then commit, optionally with a confirmed commit that rolls back on its own if you lose access.
terraform {
required_providers {
kardo = { source = "kardo/kardo" }
}
}
# KARDO_ENDPOINT and KARDO_API_KEY from the environment
provider "kardo" {
endpoint = "https://lb1.example.com:8443"
commit_mode = "auto"
commit_comment = "terraform"
}
$ kardoctl api-key create --name ci --role operator \
--scope read:* --scope write:pools \
--network 10.0.0.0/8 --expires 90d
$ kardoctl api-key rotate ci --overlap 1h
Deployment
OVA, qcow2, VHD(X) and cloud images for AWS, Azure and GCP; first-boot wizard or SMBIOS/fw_cfg values.
ISO installer with NIC driver verification and no shell.
Certified hardware with NIC/IRQ tuning and optional TPM.
Hardening
Kardo runs on a minimal Debian stable built with mkosi: /usr is read-only and verified with dm-verity, updates go to A/B slots with automatic rollback.
Our engineers will walk you through the architecture and the decisions behind it.