--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: helm.sh/resource-policy: keep operatorframework.io/installed-alongside-63e273da4c200797: openshift-operators/servicemeshoperator3.v3.1.0 creationTimestamp: "2026-03-18T16:53:27Z" generation: 1 labels: app: istio-pilot chart: istio heritage: Tiller olm.managed: "true" operators.coreos.com/servicemeshoperator3.openshift-operators: "" release: istio managedFields: - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:helm.sh/resource-policy: {} f:operatorframework.io/installed-alongside-63e273da4c200797: {} f:labels: .: {} f:app: {} f:chart: {} f:heritage: {} f:olm.managed: {} f:release: {} f:spec: f:conversion: .: {} f:strategy: {} f:group: {} f:names: f:categories: {} f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} f:singular: {} f:scope: {} f:versions: {} manager: catalog operation: Update time: "2026-03-18T16:53:27Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:acceptedNames: f:categories: {} f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} f:singular: {} f:conditions: k:{"type":"Established"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"NamesAccepted"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} manager: kube-apiserver operation: Update subresource: status time: "2026-03-18T16:53:27Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:operators.coreos.com/servicemeshoperator3.openshift-operators: {} manager: olm operation: Update time: "2026-03-18T16:53:33Z" name: virtualservices.networking.istio.io resourceVersion: "12534" uid: cdb615c3-5551-4367-b70a-1cb877f2a5cd spec: conversion: strategy: None group: networking.istio.io names: categories: - istio-io - networking-istio-io kind: VirtualService listKind: VirtualServiceList plural: virtualservices shortNames: - vs singular: virtualservice scope: Namespaced versions: - additionalPrinterColumns: - description: The names of gateways and sidecars that should apply these routes jsonPath: .spec.gateways name: Gateways type: string - description: The destination hosts to which traffic is being sent jsonPath: .spec.hosts name: Hosts type: string - description: 'CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' jsonPath: .metadata.creationTimestamp name: Age type: date name: v1 schema: openAPIV3Schema: properties: spec: description: 'Configuration affecting label/content routing, sni routing, etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html' properties: exportTo: description: A list of namespaces to which this virtual service is exported. items: type: string type: array gateways: description: The names of gateways and sidecars that should apply these routes. items: type: string type: array hosts: description: The destination hosts to which traffic is being sent. items: type: string type: array http: description: An ordered list of route rules for HTTP traffic. items: properties: corsPolicy: description: Cross-Origin Resource Sharing policy (CORS). properties: allowCredentials: description: Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials. nullable: true type: boolean allowHeaders: description: List of HTTP headers that can be used when requesting the resource. items: type: string type: array allowMethods: description: List of HTTP methods allowed to access the resource. items: type: string type: array allowOrigin: items: type: string type: array allowOrigins: description: String patterns that match allowed origins. items: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object type: array exposeHeaders: description: A list of HTTP headers that the browsers are allowed to access. items: type: string type: array maxAge: description: Specifies how long the results of a preflight request can be cached. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') unmatchedPreflights: description: |- Indicates whether preflight requests not matching the configured allowed origin shouldn't be forwarded to the upstream. Valid Options: FORWARD, IGNORE enum: - UNSPECIFIED - FORWARD - IGNORE type: string type: object delegate: description: Delegate is used to specify the particular VirtualService which can be used to define delegate HTTPRoute. properties: name: description: Name specifies the name of the delegate VirtualService. type: string namespace: description: Namespace specifies the namespace where the delegate VirtualService resides. type: string type: object directResponse: description: A HTTP rule can either return a direct_response, redirect or forward (default) traffic. properties: body: description: Specifies the content of the response body. oneOf: - not: anyOf: - required: - string - required: - bytes - required: - string - required: - bytes properties: bytes: description: response body as base64 encoded bytes. format: binary type: string string: type: string type: object status: description: Specifies the HTTP response status to be returned. maximum: 4294967295 minimum: 0 type: integer required: - status type: object fault: description: Fault injection policy to apply on HTTP traffic at the client side. properties: abort: description: Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty. oneOf: - not: anyOf: - required: - httpStatus - required: - grpcStatus - required: - http2Error - required: - httpStatus - required: - grpcStatus - required: - http2Error properties: grpcStatus: description: GRPC status code to use to abort the request. type: string http2Error: type: string httpStatus: description: HTTP status code to use to abort the Http request. format: int32 type: integer percentage: description: Percentage of requests to be aborted with the error code provided. properties: value: format: double type: number type: object type: object delay: description: Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc. oneOf: - not: anyOf: - required: - fixedDelay - required: - exponentialDelay - required: - fixedDelay - required: - exponentialDelay properties: exponentialDelay: type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') fixedDelay: description: Add a fixed delay before forwarding the request. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') percent: description: Percentage of requests on which the delay will be injected (0-100). format: int32 type: integer percentage: description: Percentage of requests on which the delay will be injected. properties: value: format: double type: number type: object type: object type: object headers: properties: request: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object response: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object type: object match: description: Match conditions to be satisfied for the rule to be activated. items: properties: authority: description: 'HTTP Authority values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object gateways: description: Names of gateways where the rule should be applied. items: type: string type: array headers: additionalProperties: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object description: The header keys must be lowercase and use hyphen as the separator, e.g. type: object ignoreUriCase: description: Flag to specify whether the URI matching should be case-insensitive. type: boolean method: description: 'HTTP Method values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object name: description: The name assigned to a match. type: string port: description: Specifies the ports on the host that is being addressed. maximum: 4294967295 minimum: 0 type: integer queryParams: additionalProperties: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object description: Query parameters for matching. type: object scheme: description: 'URI Scheme values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object sourceLabels: additionalProperties: type: string description: One or more labels that constrain the applicability of a rule to source (client) workloads with the given labels. type: object sourceNamespace: description: Source namespace constraining the applicability of a rule to workloads in that namespace. type: string statPrefix: description: The human readable prefix to use when emitting statistics for this route. type: string uri: description: 'URI to match values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object withoutHeaders: additionalProperties: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object description: withoutHeader has the same syntax with the header, but has opposite meaning. type: object type: object type: array mirror: description: Mirror HTTP traffic to a another destination in addition to forwarding the requests to the intended destination. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object mirror_percent: maximum: 4294967295 minimum: 0 nullable: true type: integer mirrorPercent: maximum: 4294967295 minimum: 0 nullable: true type: integer mirrorPercentage: description: Percentage of the traffic to be mirrored by the `mirror` field. properties: value: format: double type: number type: object mirrors: description: Specifies the destinations to mirror HTTP traffic in addition to the original destination. items: properties: destination: description: Destination specifies the target of the mirror operation. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object percentage: description: Percentage of the traffic to be mirrored by the `destination` field. properties: value: format: double type: number type: object required: - destination type: object type: array name: description: The name assigned to the route for debugging purposes. type: string redirect: description: A HTTP rule can either return a direct_response, redirect or forward (default) traffic. oneOf: - not: anyOf: - required: - port - required: - derivePort - required: - port - required: - derivePort properties: authority: description: On a redirect, overwrite the Authority/Host portion of the URL with this value. type: string derivePort: description: |- On a redirect, dynamically set the port: * FROM_PROTOCOL_DEFAULT: automatically set to 80 for HTTP and 443 for HTTPS. Valid Options: FROM_PROTOCOL_DEFAULT, FROM_REQUEST_PORT enum: - FROM_PROTOCOL_DEFAULT - FROM_REQUEST_PORT type: string port: description: On a redirect, overwrite the port portion of the URL with this value. maximum: 4294967295 minimum: 0 type: integer redirectCode: description: On a redirect, Specifies the HTTP status code to use in the redirect response. maximum: 4294967295 minimum: 0 type: integer scheme: description: On a redirect, overwrite the scheme portion of the URL with this value. type: string uri: description: On a redirect, overwrite the Path portion of the URL with this value. type: string type: object retries: description: Retry policy for HTTP requests. properties: attempts: description: Number of retries to be allowed for a given request. format: int32 type: integer backoff: description: Specifies the minimum duration between retry attempts. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') perTryTimeout: description: Timeout per attempt for a given request, including the initial call and any retries. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') retryIgnorePreviousHosts: description: Flag to specify whether the retries should ignore previously tried hosts during retry. nullable: true type: boolean retryOn: description: Specifies the conditions under which retry takes place. type: string retryRemoteLocalities: description: Flag to specify whether the retries should retry to other localities. nullable: true type: boolean type: object rewrite: description: Rewrite HTTP URIs and Authority headers. properties: authority: description: rewrite the Authority/Host header with this value. type: string uri: description: rewrite the path (or the prefix) portion of the URI with this value. type: string uriRegexRewrite: description: rewrite the path portion of the URI with the specified regex. properties: match: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string rewrite: description: The string that should replace into matching portions of original URI. type: string type: object type: object route: description: A HTTP rule can either return a direct_response, redirect or forward (default) traffic. items: properties: destination: description: Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object headers: properties: request: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object response: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object type: object weight: description: Weight specifies the relative proportion of traffic to be forwarded to the destination. format: int32 type: integer required: - destination type: object type: array timeout: description: Timeout for HTTP requests, default is disabled. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') type: object type: array tcp: description: An ordered list of route rules for opaque TCP traffic. items: properties: match: description: Match conditions to be satisfied for the rule to be activated. items: properties: destinationSubnets: description: IPv4 or IPv6 ip addresses of destination with optional subnet. items: type: string type: array gateways: description: Names of gateways where the rule should be applied. items: type: string type: array port: description: Specifies the port on the host that is being addressed. maximum: 4294967295 minimum: 0 type: integer sourceLabels: additionalProperties: type: string description: One or more labels that constrain the applicability of a rule to workloads with the given labels. type: object sourceNamespace: description: Source namespace constraining the applicability of a rule to workloads in that namespace. type: string sourceSubnet: type: string type: object type: array route: description: The destination to which the connection should be forwarded to. items: properties: destination: description: Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object weight: description: Weight specifies the relative proportion of traffic to be forwarded to the destination. format: int32 type: integer required: - destination type: object type: array type: object type: array tls: description: An ordered list of route rule for non-terminated TLS & HTTPS traffic. items: properties: match: description: Match conditions to be satisfied for the rule to be activated. items: properties: destinationSubnets: description: IPv4 or IPv6 ip addresses of destination with optional subnet. items: type: string type: array gateways: description: Names of gateways where the rule should be applied. items: type: string type: array port: description: Specifies the port on the host that is being addressed. maximum: 4294967295 minimum: 0 type: integer sniHosts: description: SNI (server name indicator) to match on. items: type: string type: array sourceLabels: additionalProperties: type: string description: One or more labels that constrain the applicability of a rule to workloads with the given labels. type: object sourceNamespace: description: Source namespace constraining the applicability of a rule to workloads in that namespace. type: string required: - sniHosts type: object type: array route: description: The destination to which the connection should be forwarded to. items: properties: destination: description: Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object weight: description: Weight specifies the relative proportion of traffic to be forwarded to the destination. format: int32 type: integer required: - destination type: object type: array required: - match type: object type: array type: object status: properties: conditions: description: Current service state of the resource. items: properties: lastProbeTime: description: Last time we probed the condition. format: date-time type: string lastTransitionTime: description: Last time the condition transitioned from one status to another. format: date-time type: string message: description: Human-readable message indicating details about last transition. type: string observedGeneration: anyOf: - type: integer - type: string description: Resource Generation to which the Condition refers. x-kubernetes-int-or-string: true reason: description: Unique, one-word, CamelCase reason for the condition's last transition. type: string status: description: Status is the status of the condition. type: string type: description: Type is the type of the condition. type: string type: object type: array observedGeneration: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true validationMessages: description: Includes any errors or warnings detected by Istio's analyzers. items: properties: documentationUrl: description: A url pointing to the Istio documentation for this specific error type. type: string level: description: |- Represents how severe a message is. Valid Options: UNKNOWN, ERROR, WARNING, INFO enum: - UNKNOWN - ERROR - WARNING - INFO type: string type: properties: code: description: A 7 character code matching `^IST[0-9]{4}$` intended to uniquely identify the message type. type: string name: description: A human-readable name for the message type. type: string type: object type: object type: array type: object x-kubernetes-preserve-unknown-fields: true type: object served: true storage: false subresources: status: {} - additionalPrinterColumns: - description: The names of gateways and sidecars that should apply these routes jsonPath: .spec.gateways name: Gateways type: string - description: The destination hosts to which traffic is being sent jsonPath: .spec.hosts name: Hosts type: string - description: 'CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' jsonPath: .metadata.creationTimestamp name: Age type: date name: v1alpha3 schema: openAPIV3Schema: properties: spec: description: 'Configuration affecting label/content routing, sni routing, etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html' properties: exportTo: description: A list of namespaces to which this virtual service is exported. items: type: string type: array gateways: description: The names of gateways and sidecars that should apply these routes. items: type: string type: array hosts: description: The destination hosts to which traffic is being sent. items: type: string type: array http: description: An ordered list of route rules for HTTP traffic. items: properties: corsPolicy: description: Cross-Origin Resource Sharing policy (CORS). properties: allowCredentials: description: Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials. nullable: true type: boolean allowHeaders: description: List of HTTP headers that can be used when requesting the resource. items: type: string type: array allowMethods: description: List of HTTP methods allowed to access the resource. items: type: string type: array allowOrigin: items: type: string type: array allowOrigins: description: String patterns that match allowed origins. items: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object type: array exposeHeaders: description: A list of HTTP headers that the browsers are allowed to access. items: type: string type: array maxAge: description: Specifies how long the results of a preflight request can be cached. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') unmatchedPreflights: description: |- Indicates whether preflight requests not matching the configured allowed origin shouldn't be forwarded to the upstream. Valid Options: FORWARD, IGNORE enum: - UNSPECIFIED - FORWARD - IGNORE type: string type: object delegate: description: Delegate is used to specify the particular VirtualService which can be used to define delegate HTTPRoute. properties: name: description: Name specifies the name of the delegate VirtualService. type: string namespace: description: Namespace specifies the namespace where the delegate VirtualService resides. type: string type: object directResponse: description: A HTTP rule can either return a direct_response, redirect or forward (default) traffic. properties: body: description: Specifies the content of the response body. oneOf: - not: anyOf: - required: - string - required: - bytes - required: - string - required: - bytes properties: bytes: description: response body as base64 encoded bytes. format: binary type: string string: type: string type: object status: description: Specifies the HTTP response status to be returned. maximum: 4294967295 minimum: 0 type: integer required: - status type: object fault: description: Fault injection policy to apply on HTTP traffic at the client side. properties: abort: description: Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty. oneOf: - not: anyOf: - required: - httpStatus - required: - grpcStatus - required: - http2Error - required: - httpStatus - required: - grpcStatus - required: - http2Error properties: grpcStatus: description: GRPC status code to use to abort the request. type: string http2Error: type: string httpStatus: description: HTTP status code to use to abort the Http request. format: int32 type: integer percentage: description: Percentage of requests to be aborted with the error code provided. properties: value: format: double type: number type: object type: object delay: description: Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc. oneOf: - not: anyOf: - required: - fixedDelay - required: - exponentialDelay - required: - fixedDelay - required: - exponentialDelay properties: exponentialDelay: type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') fixedDelay: description: Add a fixed delay before forwarding the request. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') percent: description: Percentage of requests on which the delay will be injected (0-100). format: int32 type: integer percentage: description: Percentage of requests on which the delay will be injected. properties: value: format: double type: number type: object type: object type: object headers: properties: request: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object response: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object type: object match: description: Match conditions to be satisfied for the rule to be activated. items: properties: authority: description: 'HTTP Authority values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object gateways: description: Names of gateways where the rule should be applied. items: type: string type: array headers: additionalProperties: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object description: The header keys must be lowercase and use hyphen as the separator, e.g. type: object ignoreUriCase: description: Flag to specify whether the URI matching should be case-insensitive. type: boolean method: description: 'HTTP Method values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object name: description: The name assigned to a match. type: string port: description: Specifies the ports on the host that is being addressed. maximum: 4294967295 minimum: 0 type: integer queryParams: additionalProperties: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object description: Query parameters for matching. type: object scheme: description: 'URI Scheme values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object sourceLabels: additionalProperties: type: string description: One or more labels that constrain the applicability of a rule to source (client) workloads with the given labels. type: object sourceNamespace: description: Source namespace constraining the applicability of a rule to workloads in that namespace. type: string statPrefix: description: The human readable prefix to use when emitting statistics for this route. type: string uri: description: 'URI to match values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object withoutHeaders: additionalProperties: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object description: withoutHeader has the same syntax with the header, but has opposite meaning. type: object type: object type: array mirror: description: Mirror HTTP traffic to a another destination in addition to forwarding the requests to the intended destination. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object mirror_percent: maximum: 4294967295 minimum: 0 nullable: true type: integer mirrorPercent: maximum: 4294967295 minimum: 0 nullable: true type: integer mirrorPercentage: description: Percentage of the traffic to be mirrored by the `mirror` field. properties: value: format: double type: number type: object mirrors: description: Specifies the destinations to mirror HTTP traffic in addition to the original destination. items: properties: destination: description: Destination specifies the target of the mirror operation. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object percentage: description: Percentage of the traffic to be mirrored by the `destination` field. properties: value: format: double type: number type: object required: - destination type: object type: array name: description: The name assigned to the route for debugging purposes. type: string redirect: description: A HTTP rule can either return a direct_response, redirect or forward (default) traffic. oneOf: - not: anyOf: - required: - port - required: - derivePort - required: - port - required: - derivePort properties: authority: description: On a redirect, overwrite the Authority/Host portion of the URL with this value. type: string derivePort: description: |- On a redirect, dynamically set the port: * FROM_PROTOCOL_DEFAULT: automatically set to 80 for HTTP and 443 for HTTPS. Valid Options: FROM_PROTOCOL_DEFAULT, FROM_REQUEST_PORT enum: - FROM_PROTOCOL_DEFAULT - FROM_REQUEST_PORT type: string port: description: On a redirect, overwrite the port portion of the URL with this value. maximum: 4294967295 minimum: 0 type: integer redirectCode: description: On a redirect, Specifies the HTTP status code to use in the redirect response. maximum: 4294967295 minimum: 0 type: integer scheme: description: On a redirect, overwrite the scheme portion of the URL with this value. type: string uri: description: On a redirect, overwrite the Path portion of the URL with this value. type: string type: object retries: description: Retry policy for HTTP requests. properties: attempts: description: Number of retries to be allowed for a given request. format: int32 type: integer backoff: description: Specifies the minimum duration between retry attempts. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') perTryTimeout: description: Timeout per attempt for a given request, including the initial call and any retries. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') retryIgnorePreviousHosts: description: Flag to specify whether the retries should ignore previously tried hosts during retry. nullable: true type: boolean retryOn: description: Specifies the conditions under which retry takes place. type: string retryRemoteLocalities: description: Flag to specify whether the retries should retry to other localities. nullable: true type: boolean type: object rewrite: description: Rewrite HTTP URIs and Authority headers. properties: authority: description: rewrite the Authority/Host header with this value. type: string uri: description: rewrite the path (or the prefix) portion of the URI with this value. type: string uriRegexRewrite: description: rewrite the path portion of the URI with the specified regex. properties: match: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string rewrite: description: The string that should replace into matching portions of original URI. type: string type: object type: object route: description: A HTTP rule can either return a direct_response, redirect or forward (default) traffic. items: properties: destination: description: Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object headers: properties: request: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object response: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object type: object weight: description: Weight specifies the relative proportion of traffic to be forwarded to the destination. format: int32 type: integer required: - destination type: object type: array timeout: description: Timeout for HTTP requests, default is disabled. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') type: object type: array tcp: description: An ordered list of route rules for opaque TCP traffic. items: properties: match: description: Match conditions to be satisfied for the rule to be activated. items: properties: destinationSubnets: description: IPv4 or IPv6 ip addresses of destination with optional subnet. items: type: string type: array gateways: description: Names of gateways where the rule should be applied. items: type: string type: array port: description: Specifies the port on the host that is being addressed. maximum: 4294967295 minimum: 0 type: integer sourceLabels: additionalProperties: type: string description: One or more labels that constrain the applicability of a rule to workloads with the given labels. type: object sourceNamespace: description: Source namespace constraining the applicability of a rule to workloads in that namespace. type: string sourceSubnet: type: string type: object type: array route: description: The destination to which the connection should be forwarded to. items: properties: destination: description: Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object weight: description: Weight specifies the relative proportion of traffic to be forwarded to the destination. format: int32 type: integer required: - destination type: object type: array type: object type: array tls: description: An ordered list of route rule for non-terminated TLS & HTTPS traffic. items: properties: match: description: Match conditions to be satisfied for the rule to be activated. items: properties: destinationSubnets: description: IPv4 or IPv6 ip addresses of destination with optional subnet. items: type: string type: array gateways: description: Names of gateways where the rule should be applied. items: type: string type: array port: description: Specifies the port on the host that is being addressed. maximum: 4294967295 minimum: 0 type: integer sniHosts: description: SNI (server name indicator) to match on. items: type: string type: array sourceLabels: additionalProperties: type: string description: One or more labels that constrain the applicability of a rule to workloads with the given labels. type: object sourceNamespace: description: Source namespace constraining the applicability of a rule to workloads in that namespace. type: string required: - sniHosts type: object type: array route: description: The destination to which the connection should be forwarded to. items: properties: destination: description: Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object weight: description: Weight specifies the relative proportion of traffic to be forwarded to the destination. format: int32 type: integer required: - destination type: object type: array required: - match type: object type: array type: object status: properties: conditions: description: Current service state of the resource. items: properties: lastProbeTime: description: Last time we probed the condition. format: date-time type: string lastTransitionTime: description: Last time the condition transitioned from one status to another. format: date-time type: string message: description: Human-readable message indicating details about last transition. type: string observedGeneration: anyOf: - type: integer - type: string description: Resource Generation to which the Condition refers. x-kubernetes-int-or-string: true reason: description: Unique, one-word, CamelCase reason for the condition's last transition. type: string status: description: Status is the status of the condition. type: string type: description: Type is the type of the condition. type: string type: object type: array observedGeneration: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true validationMessages: description: Includes any errors or warnings detected by Istio's analyzers. items: properties: documentationUrl: description: A url pointing to the Istio documentation for this specific error type. type: string level: description: |- Represents how severe a message is. Valid Options: UNKNOWN, ERROR, WARNING, INFO enum: - UNKNOWN - ERROR - WARNING - INFO type: string type: properties: code: description: A 7 character code matching `^IST[0-9]{4}$` intended to uniquely identify the message type. type: string name: description: A human-readable name for the message type. type: string type: object type: object type: array type: object x-kubernetes-preserve-unknown-fields: true type: object served: true storage: false subresources: status: {} - additionalPrinterColumns: - description: The names of gateways and sidecars that should apply these routes jsonPath: .spec.gateways name: Gateways type: string - description: The destination hosts to which traffic is being sent jsonPath: .spec.hosts name: Hosts type: string - description: 'CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' jsonPath: .metadata.creationTimestamp name: Age type: date name: v1beta1 schema: openAPIV3Schema: properties: spec: description: 'Configuration affecting label/content routing, sni routing, etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html' properties: exportTo: description: A list of namespaces to which this virtual service is exported. items: type: string type: array gateways: description: The names of gateways and sidecars that should apply these routes. items: type: string type: array hosts: description: The destination hosts to which traffic is being sent. items: type: string type: array http: description: An ordered list of route rules for HTTP traffic. items: properties: corsPolicy: description: Cross-Origin Resource Sharing policy (CORS). properties: allowCredentials: description: Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials. nullable: true type: boolean allowHeaders: description: List of HTTP headers that can be used when requesting the resource. items: type: string type: array allowMethods: description: List of HTTP methods allowed to access the resource. items: type: string type: array allowOrigin: items: type: string type: array allowOrigins: description: String patterns that match allowed origins. items: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object type: array exposeHeaders: description: A list of HTTP headers that the browsers are allowed to access. items: type: string type: array maxAge: description: Specifies how long the results of a preflight request can be cached. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') unmatchedPreflights: description: |- Indicates whether preflight requests not matching the configured allowed origin shouldn't be forwarded to the upstream. Valid Options: FORWARD, IGNORE enum: - UNSPECIFIED - FORWARD - IGNORE type: string type: object delegate: description: Delegate is used to specify the particular VirtualService which can be used to define delegate HTTPRoute. properties: name: description: Name specifies the name of the delegate VirtualService. type: string namespace: description: Namespace specifies the namespace where the delegate VirtualService resides. type: string type: object directResponse: description: A HTTP rule can either return a direct_response, redirect or forward (default) traffic. properties: body: description: Specifies the content of the response body. oneOf: - not: anyOf: - required: - string - required: - bytes - required: - string - required: - bytes properties: bytes: description: response body as base64 encoded bytes. format: binary type: string string: type: string type: object status: description: Specifies the HTTP response status to be returned. maximum: 4294967295 minimum: 0 type: integer required: - status type: object fault: description: Fault injection policy to apply on HTTP traffic at the client side. properties: abort: description: Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty. oneOf: - not: anyOf: - required: - httpStatus - required: - grpcStatus - required: - http2Error - required: - httpStatus - required: - grpcStatus - required: - http2Error properties: grpcStatus: description: GRPC status code to use to abort the request. type: string http2Error: type: string httpStatus: description: HTTP status code to use to abort the Http request. format: int32 type: integer percentage: description: Percentage of requests to be aborted with the error code provided. properties: value: format: double type: number type: object type: object delay: description: Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc. oneOf: - not: anyOf: - required: - fixedDelay - required: - exponentialDelay - required: - fixedDelay - required: - exponentialDelay properties: exponentialDelay: type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') fixedDelay: description: Add a fixed delay before forwarding the request. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') percent: description: Percentage of requests on which the delay will be injected (0-100). format: int32 type: integer percentage: description: Percentage of requests on which the delay will be injected. properties: value: format: double type: number type: object type: object type: object headers: properties: request: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object response: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object type: object match: description: Match conditions to be satisfied for the rule to be activated. items: properties: authority: description: 'HTTP Authority values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object gateways: description: Names of gateways where the rule should be applied. items: type: string type: array headers: additionalProperties: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object description: The header keys must be lowercase and use hyphen as the separator, e.g. type: object ignoreUriCase: description: Flag to specify whether the URI matching should be case-insensitive. type: boolean method: description: 'HTTP Method values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object name: description: The name assigned to a match. type: string port: description: Specifies the ports on the host that is being addressed. maximum: 4294967295 minimum: 0 type: integer queryParams: additionalProperties: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object description: Query parameters for matching. type: object scheme: description: 'URI Scheme values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object sourceLabels: additionalProperties: type: string description: One or more labels that constrain the applicability of a rule to source (client) workloads with the given labels. type: object sourceNamespace: description: Source namespace constraining the applicability of a rule to workloads in that namespace. type: string statPrefix: description: The human readable prefix to use when emitting statistics for this route. type: string uri: description: 'URI to match values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for [RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object withoutHeaders: additionalProperties: oneOf: - not: anyOf: - required: - exact - required: - prefix - required: - regex - required: - exact - required: - prefix - required: - regex properties: exact: type: string prefix: type: string regex: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string type: object description: withoutHeader has the same syntax with the header, but has opposite meaning. type: object type: object type: array mirror: description: Mirror HTTP traffic to a another destination in addition to forwarding the requests to the intended destination. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object mirror_percent: maximum: 4294967295 minimum: 0 nullable: true type: integer mirrorPercent: maximum: 4294967295 minimum: 0 nullable: true type: integer mirrorPercentage: description: Percentage of the traffic to be mirrored by the `mirror` field. properties: value: format: double type: number type: object mirrors: description: Specifies the destinations to mirror HTTP traffic in addition to the original destination. items: properties: destination: description: Destination specifies the target of the mirror operation. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object percentage: description: Percentage of the traffic to be mirrored by the `destination` field. properties: value: format: double type: number type: object required: - destination type: object type: array name: description: The name assigned to the route for debugging purposes. type: string redirect: description: A HTTP rule can either return a direct_response, redirect or forward (default) traffic. oneOf: - not: anyOf: - required: - port - required: - derivePort - required: - port - required: - derivePort properties: authority: description: On a redirect, overwrite the Authority/Host portion of the URL with this value. type: string derivePort: description: |- On a redirect, dynamically set the port: * FROM_PROTOCOL_DEFAULT: automatically set to 80 for HTTP and 443 for HTTPS. Valid Options: FROM_PROTOCOL_DEFAULT, FROM_REQUEST_PORT enum: - FROM_PROTOCOL_DEFAULT - FROM_REQUEST_PORT type: string port: description: On a redirect, overwrite the port portion of the URL with this value. maximum: 4294967295 minimum: 0 type: integer redirectCode: description: On a redirect, Specifies the HTTP status code to use in the redirect response. maximum: 4294967295 minimum: 0 type: integer scheme: description: On a redirect, overwrite the scheme portion of the URL with this value. type: string uri: description: On a redirect, overwrite the Path portion of the URL with this value. type: string type: object retries: description: Retry policy for HTTP requests. properties: attempts: description: Number of retries to be allowed for a given request. format: int32 type: integer backoff: description: Specifies the minimum duration between retry attempts. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') perTryTimeout: description: Timeout per attempt for a given request, including the initial call and any retries. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') retryIgnorePreviousHosts: description: Flag to specify whether the retries should ignore previously tried hosts during retry. nullable: true type: boolean retryOn: description: Specifies the conditions under which retry takes place. type: string retryRemoteLocalities: description: Flag to specify whether the retries should retry to other localities. nullable: true type: boolean type: object rewrite: description: Rewrite HTTP URIs and Authority headers. properties: authority: description: rewrite the Authority/Host header with this value. type: string uri: description: rewrite the path (or the prefix) portion of the URI with this value. type: string uriRegexRewrite: description: rewrite the path portion of the URI with the specified regex. properties: match: description: '[RE2 style regex-based match](https://github.com/google/re2/wiki/Syntax).' type: string rewrite: description: The string that should replace into matching portions of original URI. type: string type: object type: object route: description: A HTTP rule can either return a direct_response, redirect or forward (default) traffic. items: properties: destination: description: Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object headers: properties: request: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object response: properties: add: additionalProperties: type: string type: object remove: items: type: string type: array set: additionalProperties: type: string type: object type: object type: object weight: description: Weight specifies the relative proportion of traffic to be forwarded to the destination. format: int32 type: integer required: - destination type: object type: array timeout: description: Timeout for HTTP requests, default is disabled. type: string x-kubernetes-validations: - message: must be a valid duration greater than 1ms rule: duration(self) >= duration('1ms') type: object type: array tcp: description: An ordered list of route rules for opaque TCP traffic. items: properties: match: description: Match conditions to be satisfied for the rule to be activated. items: properties: destinationSubnets: description: IPv4 or IPv6 ip addresses of destination with optional subnet. items: type: string type: array gateways: description: Names of gateways where the rule should be applied. items: type: string type: array port: description: Specifies the port on the host that is being addressed. maximum: 4294967295 minimum: 0 type: integer sourceLabels: additionalProperties: type: string description: One or more labels that constrain the applicability of a rule to workloads with the given labels. type: object sourceNamespace: description: Source namespace constraining the applicability of a rule to workloads in that namespace. type: string sourceSubnet: type: string type: object type: array route: description: The destination to which the connection should be forwarded to. items: properties: destination: description: Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object weight: description: Weight specifies the relative proportion of traffic to be forwarded to the destination. format: int32 type: integer required: - destination type: object type: array type: object type: array tls: description: An ordered list of route rule for non-terminated TLS & HTTPS traffic. items: properties: match: description: Match conditions to be satisfied for the rule to be activated. items: properties: destinationSubnets: description: IPv4 or IPv6 ip addresses of destination with optional subnet. items: type: string type: array gateways: description: Names of gateways where the rule should be applied. items: type: string type: array port: description: Specifies the port on the host that is being addressed. maximum: 4294967295 minimum: 0 type: integer sniHosts: description: SNI (server name indicator) to match on. items: type: string type: array sourceLabels: additionalProperties: type: string description: One or more labels that constrain the applicability of a rule to workloads with the given labels. type: object sourceNamespace: description: Source namespace constraining the applicability of a rule to workloads in that namespace. type: string required: - sniHosts type: object type: array route: description: The destination to which the connection should be forwarded to. items: properties: destination: description: Destination uniquely identifies the instances of a service to which the request/connection should be forwarded to. properties: host: description: The name of a service from the service registry. type: string port: description: Specifies the port on the host that is being addressed. properties: number: maximum: 4294967295 minimum: 0 type: integer type: object subset: description: The name of a subset within the service. type: string required: - host type: object weight: description: Weight specifies the relative proportion of traffic to be forwarded to the destination. format: int32 type: integer required: - destination type: object type: array required: - match type: object type: array type: object status: properties: conditions: description: Current service state of the resource. items: properties: lastProbeTime: description: Last time we probed the condition. format: date-time type: string lastTransitionTime: description: Last time the condition transitioned from one status to another. format: date-time type: string message: description: Human-readable message indicating details about last transition. type: string observedGeneration: anyOf: - type: integer - type: string description: Resource Generation to which the Condition refers. x-kubernetes-int-or-string: true reason: description: Unique, one-word, CamelCase reason for the condition's last transition. type: string status: description: Status is the status of the condition. type: string type: description: Type is the type of the condition. type: string type: object type: array observedGeneration: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true validationMessages: description: Includes any errors or warnings detected by Istio's analyzers. items: properties: documentationUrl: description: A url pointing to the Istio documentation for this specific error type. type: string level: description: |- Represents how severe a message is. Valid Options: UNKNOWN, ERROR, WARNING, INFO enum: - UNKNOWN - ERROR - WARNING - INFO type: string type: properties: code: description: A 7 character code matching `^IST[0-9]{4}$` intended to uniquely identify the message type. type: string name: description: A human-readable name for the message type. type: string type: object type: object type: array type: object x-kubernetes-preserve-unknown-fields: true type: object served: true storage: true subresources: status: {} status: acceptedNames: categories: - istio-io - networking-istio-io kind: VirtualService listKind: VirtualServiceList plural: virtualservices shortNames: - vs singular: virtualservice conditions: - lastTransitionTime: "2026-03-18T16:53:27Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2026-03-18T16:53:27Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1beta1