Solo.io · Schema

VirtualService

A Gloo Gateway VirtualService defining routing rules, domain bindings, security policies, and traffic management configuration for incoming HTTP/HTTPS traffic.

AI GatewayAgentic AIAPI GatewayEnvoyIstioKubernetesMCPService Mesh

Properties

Name Type Description
apiVersion string API version (gateway.solo.io/v1)
kind string
metadata object
spec object
status object
View JSON Schema on GitHub

JSON Schema

solo-gloo-virtual-service-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/solo/main/json-schema/solo-gloo-virtual-service-schema.json",
  "title": "VirtualService",
  "description": "A Gloo Gateway VirtualService defining routing rules, domain bindings, security policies, and traffic management configuration for incoming HTTP/HTTPS traffic.",
  "type": "object",
  "properties": {
    "apiVersion": {
      "type": "string",
      "description": "API version (gateway.solo.io/v1)"
    },
    "kind": {
      "type": "string",
      "const": "VirtualService"
    },
    "metadata": {
      "type": "object",
      "properties": {
        "name": { "type": "string" },
        "namespace": { "type": "string" },
        "labels": { "type": "object" },
        "annotations": { "type": "object" }
      }
    },
    "spec": {
      "type": "object",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Human-readable name for the virtual service"
        },
        "virtualHost": {
          "type": "object",
          "description": "Virtual host configuration",
          "properties": {
            "domains": {
              "type": "array",
              "items": { "type": "string" },
              "description": "List of domains this virtual service handles"
            },
            "routes": {
              "type": "array",
              "description": "Ordered list of routing rules",
              "items": {
                "type": "object",
                "properties": {
                  "name": { "type": "string" },
                  "matchers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "prefix": { "type": "string" },
                        "exact": { "type": "string" },
                        "regex": { "type": "string" },
                        "headers": { "type": "array", "items": { "type": "object" } },
                        "methods": { "type": "array", "items": { "type": "string" } }
                      }
                    }
                  },
                  "routeAction": { "type": "object" },
                  "redirectAction": { "type": "object" },
                  "options": { "type": "object" }
                }
              }
            },
            "options": {
              "type": "object",
              "description": "Virtual host level options (rate limiting, auth, CORS, etc.)"
            }
          }
        },
        "sslConfig": {
          "type": "object",
          "description": "TLS configuration for HTTPS"
        }
      }
    },
    "status": {
      "type": "object",
      "properties": {
        "statuses": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "properties": {
              "state": {
                "type": "string",
                "enum": ["Pending", "Accepted", "Rejected", "Warning"]
              },
              "reason": { "type": "string" }
            }
          }
        }
      }
    }
  }
}