Configuration
Skew protection is configured via environment variables or Helm values.
Feature Flag
Section titled “Feature Flag”| Property | Value |
|---|---|
| Type | Boolean |
| Default | false |
| Environment Variable | PLT_FEATURE_SKEW_PROTECTION |
| Helm | services.icc.features.skew_protection.enable |
When disabled, ICC does not interact with the Gateway API at all. No HTTPRoute resources are created, no version tracking occurs. Existing deployments without a Gateway controller are unaffected.
HTTP Grace Period
Section titled “HTTP Grace Period”| Property | Value |
|---|---|
| Type | Integer (milliseconds) |
| Default | 1800000 (30 minutes) |
| Environment Variable | PLT_SKEW_HTTP_GRACE_PERIOD_MS |
| Helm | services.icc.skew_protection.http_grace_period_ms |
Duration after entering Draining during which the version is kept alive unconditionally. No traffic checks or policy evaluations run during this window.
HTTP Max Alive
Section titled “HTTP Max Alive”| Property | Value |
|---|---|
| Type | Integer (milliseconds) |
| Default | 86400000 (24 hours) |
| Environment Variable | PLT_SKEW_HTTP_MAX_ALIVE_MS |
| Helm | services.icc.skew_protection.http_max_alive_ms |
Hard ceiling on how long a version can remain in Draining state. After this duration, the version is force-expired regardless of remaining traffic.
Cookie Max-Age
Section titled “Cookie Max-Age”| Property | Value |
|---|---|
| Type | Integer (seconds) |
| Default | 43200 (12 hours) |
| Environment Variable | PLT_SKEW_COOKIE_MAX_AGE |
| Helm | services.icc.skew_protection.cookie_max_age |
The Max-Age attribute on the __plt_dpl cookie. Controls how long the browser retains the deployment cookie.
Auto-Cleanup
Section titled “Auto-Cleanup”| Property | Value |
|---|---|
| Type | Boolean |
| Default | false |
| Environment Variable | PLT_SKEW_AUTO_CLEANUP |
| Helm | services.icc.skew_protection.auto_cleanup |
When enabled, ICC deletes the Deployment and Service resources for expired versions. When disabled, expired Deployments are scaled to 0 replicas but left for users to manually remove.
Check Interval
Section titled “Check Interval”| Property | Value |
|---|---|
| Type | Integer (milliseconds) |
| Default | 60000 (1 minute) |
| Environment Variable | PLT_SKEW_CHECK_INTERVAL_MS |
| Helm | services.icc.skew_protection.check_interval_ms |
How often the draining checker runs to evaluate whether draining versions should be expired.
Traffic Window
Section titled “Traffic Window”| Property | Value |
|---|---|
| Type | Integer (milliseconds) |
| Default | 300000 (5 minutes) |
| Environment Variable | PLT_SKEW_TRAFFIC_WINDOW_MS |
| Helm | services.icc.skew_protection.traffic_window_ms |
The Prometheus query window for measuring requests per second to draining versions. The RPS check is skipped until the version has been draining longer than this window.
Summary
Section titled “Summary”| Variable | Helm | Type | Default | Description |
|---|---|---|---|---|
PLT_FEATURE_SKEW_PROTECTION | services.icc.features.skew_protection.enable | Boolean | false | Enable/disable skew protection globally |
PLT_SKEW_HTTP_GRACE_PERIOD_MS | services.icc.skew_protection.http_grace_period_ms | Integer | 1800000 | Grace period for HTTP versions (ms) |
PLT_SKEW_HTTP_MAX_ALIVE_MS | services.icc.skew_protection.http_max_alive_ms | Integer | 86400000 | Max alive ceiling for HTTP versions (ms) |
PLT_SKEW_COOKIE_MAX_AGE | services.icc.skew_protection.cookie_max_age | Integer | 43200 | Cookie Max-Age attribute (seconds) |
PLT_SKEW_AUTO_CLEANUP | services.icc.skew_protection.auto_cleanup | Boolean | false | Auto-delete expired Deployments and Services |
PLT_SKEW_CHECK_INTERVAL_MS | services.icc.skew_protection.check_interval_ms | Integer | 60000 | Draining checker interval (ms) |
PLT_SKEW_TRAFFIC_WINDOW_MS | services.icc.skew_protection.traffic_window_ms | Integer | 300000 | Prometheus query window for RPS check (ms) |