Zero-Downtime Deployment
With zero-downtime deployment (ZDD), your server is safely taken out of traffic during updates, its health is verified, and it is returned to traffic — just by adding a few lines to your CI/CD pipeline. Configuration lives at Console → WAF → [domain] → Deploy.
The flow has four steps: drain → deploy → validate → rejoin traffic. During the drain, no new requests are sent to the server and in-flight connections finish; visitors keep being served without interruption by the other servers in the group.
Creating a pipeline
Section titled “Creating a pipeline”-
Open Console → WAF → [domain] → Deploy and start the New Deployment Pipeline wizard.
-
In the Target Group step, pick the upstream group you deploy to. Its servers are listed.
-
Fill in the Settings step:
- Pipeline name — up to 64 characters (e.g.
web-1 production) - Drain time — 10–300 seconds, default 60 seconds. New connections stop; existing ones are given this long to finish.
- Validation mode —
http(default) ornone. Inhttpmode you set a validation path (default/) and the expected status codes; after the deploy HEIMWALL requests this path to verify health. - Allowed IPs — (optional) one IP/CIDR per line; the token only works from these addresses. We recommend entering your CI/CD server’s IP.
- Pipeline name — up to 64 characters (e.g.
-
Click Create. A deploy token is shown — “This token is shown only NOW — copy it and store it safely.” Save it in your CI/CD system’s secret store.
CI/CD integration
Section titled “CI/CD integration”When a pipeline is created, the console shows a ready-to-copy shell snippet — to reach it again later, use the Show CI Commands button on the pipeline card. Paste the snippet into your CI/CD system and define your deploy token as a secret; that’s all.
The flow has four logical steps:
- Begin — you announce the server being deployed (URL or label); HEIMWALL starts draining it from traffic.
- Wait (status) — the snippet polls until the drain completes and the deploy window opens.
- Deploy — your own deploy steps run (copy code, restart service…).
- Commit — HEIMWALL runs the health validation; if it passes, the server rejoins traffic. If needed, abort cancels the deployment and the server returns to traffic.
The exact command addresses and parameters are shown only in the console, as a security measure. Authentication uses a per-pipeline deploy token; the limit is 60 requests/minute per pipeline.
Deployment states
Section titled “Deployment states”| State | Console label | Meaning |
|---|---|---|
draining | Draining | Drain window active, connections finishing |
ready | Deploy window open | Drain complete, awaiting commit |
validating | Validating | Health validation running |
succeeded | Succeeded | Validation passed, server back in traffic |
failed | Failed | Validation failed, server kept out of traffic |
aborted | Aborted | Deployment cancelled manually |
expired | Incomplete | Timed out — no commit arrived, server kept out of traffic |
In-progress deployments appear in an amber banner at the top of the Deploy page and can be stopped with the Abort button. The history section lists all deployments with date, target, state and the CI note (20 per page).