changedInput schema / properties / keda / description
Previous value: -"KEDA autoscaling configuration for the GVC."New value: +"KEDA autoscaling configuration for the GVC. Shape: {enabled, identityLink: //identity/NAME (gives KEDA cloud and network access), secrets: [//secret/NAME] (each a TriggerAuthentication of the same name)}."
removedInput schema / properties / keda / properties
Removed value: -{
- "enabled": {
- "description": "Enable KEDA event-driven autoscaling for workloads in this GVC.",
- "type": "boolean"
- },
- "identityLink": {
- "description": "Identity link granting the KEDA operator access to cloud/network resources (e.g. //gvc/{gvc}/identity/{name}).",
- "type": "string"
- },
- "secrets": {
- "description": "Secret links (//secret/<name>) exposed as KEDA TriggerAuthentication objects (named after each secret).",
- "items": {
- "description": "Secret link (//secret/<name>) exposed as a KEDA TriggerAuthentication object.",
- "type": "string"
- },
- "type": "array"
- }
-}
changedInput schema / properties / loadBalancer / description
Previous value: -"GVC load balancer configuration."New value: +"GVC load balancer configuration. Shape: {dedicated, multiZone: {enabled}, trustedProxies: 0 to 2, redirect: {class: {status5xx: URL, status401: URL}}, ipSet: //ipset/NAME}."
removedInput schema / properties / loadBalancer / properties
Removed value: -{
- "dedicated": {
- "description": "Create a dedicated load balancer per location (enables custom ports, protocols, wildcard hostnames). Charges apply per location.",
- "type": "boolean"
- },
- "ipSet": {
- "description": "Link to an IPSet resource for this load balancer (//ipset/<name> or /org/<org>/ipset/<name>).",
- "type": "string"
- },
- "multiZone": {
- "description": "Multi-zone load balancer options.",
- "properties": {
- "enabled": {
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "redirect": {
- "description": "Per-status-class redirect URLs.",
- "properties": {
- "class": {
- "properties": {
- "status401": {
- "description": "Redirect URL for 401 responses (supports Envoy format strings, e.g. %REQ(:path)%).",
- "type": "string"
- },
- "status5xx": {
- "description": "Redirect URL for any 5xx status code.",
- "format": "uri",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "trustedProxies": {
- "description": "Trusted proxy hops for X-Forwarded-For handling (0–2). Affects the client IP used for logging and X-Envoy-External-Address.",
- "maximum": 2,
- "minimum": 0,
- "type": "integer"
- }
-}
changedInput schema / properties / locationOptions / description
Previous value: -"Per-location DNS geo-routing options (routingTier priority, latency bias/cutoff) for locations already placed via `locations` or `locationQuery`. Routing only — it does NOT place the GVC anywhere."New value: +"DNS geo-routing for locations placed by `locations` or `locationQuery`; it does not place the GVC. Shape: [{location, routingTier (lower wins), latencyOffsetMs (positive repels traffic), latencyToleranceMs (above it the location is skipped)}]."
removedInput schema / properties / locationOptions / items / properties
Removed value: -{
- "latencyOffsetMs": {
- "description": "Artificial latency offset (ms). Positive pushes traffic away; negative attracts it.",
- "type": "integer"
- },
- "latencyToleranceMs": {
- "description": "Max acceptable latency (ms). Above this, the location is treated as unavailable for geo routing.",
- "minimum": 0,
- "type": "integer"
- },
- "location": {
- "description": "Location name or link (e.g. \"aws-us-east-1\" or //location/aws-us-east-1).",
- "type": "string"
- },
- "routingTier": {
- "description": "DNS geo-routing priority. Lower = higher priority; same tier = latency-based within the group.",
- "minimum": 0,
- "type": "integer"
- }
-}
removedInput schema / properties / locationOptions / items / required
Removed value: -[
- "location"
-]
changedInput schema / properties / locationQuery / description
Previous value: -"Dynamic placement: a query that selects locations."New value: +"Dynamic placement: a query that selects locations. Shape: {kind: \"location\", spec: {match: all|any|none, terms: [{op: =|!=|<|<=|>|>=|~|=~|exists|!exists|contains, property|tag|rel (exactly one), value}]}}."
removedInput schema / properties / locationQuery / properties
Removed value: -{
- "kind": {
- "description": "Resource kind the query selects (e.g. \"user\" or \"serviceaccount\" for group members).",
- "type": "string"
- },
- "spec": {
- "properties": {
- "match": {
- "description": "How terms combine: all (AND), any (OR), or none (default \"all\").",
- "enum": [
- "all",
- "any",
- "none"
- ],
- "type": "string"
- },
- "sort": {
- "properties": {
- "by": {
- "description": "Property to sort by.",
- "type": "string"
- },
- "order": {
- "description": "Sort order (default \"asc\").",
- "enum": [
- "asc",
- "desc"
- ],
- "type": "string"
- }
- },
- "required": [
- "by"
- ],
- "type": "object"
- },
- "terms": {
- "description": "Match terms.",
- "items": {
- "properties": {
- "op": {
- "description": "Comparison operator (default \"=\").",
- "enum": [
- "=",
- ">",
- ">=",
- "<",
- "<=",
- "!=",
- "~",
- "=~",
- "exists",
- "!exists",
- "contains"
- ],
- "type": "string"
- },
- "property": {
- "description": "Resource property to match (e.g. \"name\"). Set exactly one of property, tag, or rel.",
- "type": "string"
- },
- "rel": {
- "description": "Relationship to match. Set exactly one of property, tag, or rel.",
- "type": "string"
- },
- "tag": {
- "description": "Tag key to match. Set exactly one of property, tag, or rel.",
- "type": "string"
- },
- "value": {
- "description": "Value to compare against. Required for most ops; omit for \"exists\"/\"!exists\".",
- "type": [
- "string",
- "number",
- "boolean"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
-}
removedInput schema / properties / locationQuery / required
Removed value: -[
- "kind"
-]
changedInput schema / properties / sidecarEnvoy / description
Previous value: -"Advanced Envoy sidecar filters (maps to spec.sidecar.envoy)."New value: +"Advanced Envoy sidecar filters (maps to spec.sidecar.envoy), raw Envoy config passed through verbatim. Shape: {accessLog, clusters, excludedExternalAuth, excludedRateLimit, http, network, volumes}, each an array of Envoy objects."
removedInput schema / properties / sidecarEnvoy / properties
Removed value: -{
- "accessLog": {
- "description": "Access log configuration (advanced raw Envoy config, passed through verbatim).",
- "items": {
- "type": "object"
- },
- "type": "array"
- },
- "clusters": {
- "description": "Envoy clusters (advanced raw Envoy config, passed through verbatim).",
- "items": {
- "type": "object"
- },
- "type": "array"
- },
- "excludedExternalAuth": {
- "description": "Routes excluded from external auth (advanced raw Envoy config, passed through verbatim).",
- "items": {
- "type": "object"
- },
- "type": "array"
- },
- "excludedRateLimit": {
- "description": "Routes excluded from rate limiting (advanced raw Envoy config, passed through verbatim).",
- "items": {
- "type": "object"
- },
- "type": "array"
- },
- "http": {
- "description": "HTTP filters (advanced raw Envoy config, passed through verbatim).",
- "items": {
- "type": "object"
- },
- "type": "array"
- },
- "network": {
- "description": "Network filters (advanced raw Envoy config, passed through verbatim).",
- "items": {
- "type": "object"
- },
- "type": "array"
- },
- "volumes": {
- "description": "Sidecar volumes (advanced raw Envoy config, passed through verbatim).",
- "items": {
- "type": "object"
- },
- "type": "array"
- }
-}
changedInput schema / properties / tracing / description
Previous value: -"Distributed tracing configuration."New value: +"Distributed tracing configuration. Shape: {sampling (required, percent 0 to 100), provider (required, exactly one of otel {endpoint}, lightstep {endpoint, credentials: //secret/NAME}, controlplane {}), customTags: {NAME: {literal: {value}}}}."
removedInput schema / properties / tracing / properties
Removed value: -{
- "customTags": {
- "additionalProperties": {
- "properties": {
- "literal": {
- "properties": {
- "value": {
- "type": "string"
- }
- },
- "required": [
- "value"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "description": "Custom trace tags keyed by tag name.",
- "type": "object"
- },
- "provider": {
- "description": "Tracing provider — set exactly one of otel, lightstep, or controlplane.",
- "properties": {
- "controlplane": {
- "description": "Use the built-in Control Plane tracing provider.",
- "properties": {},
- "type": "object"
- },
- "lightstep": {
- "properties": {
- "credentials": {
- "description": "Link to an opaque secret holding Lightstep credentials.",
- "type": "string"
- },
- "endpoint": {
- "description": "Lightstep collector endpoint.",
- "type": "string"
- }
- },
- "required": [
- "endpoint"
- ],
- "type": "object"
- },
- "otel": {
- "properties": {
- "endpoint": {
- "description": "OpenTelemetry collector endpoint.",
- "type": "string"
- }
- },
- "required": [
- "endpoint"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "sampling": {
- "description": "Trace sampling percentage (0–100).",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- }
-}
removedInput schema / properties / tracing / required
Removed value: -[
- "sampling",
- "provider"
-]