UNPKG

@kubernetes-models/istio

Version:
1,123 lines (1,122 loc) 44 kB
import { IObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta"; import { Model, ModelData } from "@kubernetes-models/base"; export interface IEnvoyFilter { /** * Customizing Envoy configuration generated by Istio. See more details at: https://istio.io/docs/reference/config/networking/envoy-filter.html */ "spec"?: { /** * One or more patches with match conditions. */ "configPatches"?: Array<{ "applyTo"?: "INVALID" | "LISTENER" | "FILTER_CHAIN" | "NETWORK_FILTER" | "HTTP_FILTER" | "ROUTE_CONFIGURATION" | "VIRTUAL_HOST" | "HTTP_ROUTE" | "CLUSTER" | "EXTENSION_CONFIG" | "BOOTSTRAP" | "LISTENER_FILTER"; /** * Match on listener/route configuration/cluster. */ "match"?: { /** * Match on envoy cluster attributes. */ "cluster"?: { /** * The exact name of the cluster to match. */ "name"?: string; /** * The service port for which this cluster was generated. */ "portNumber"?: number; /** * The fully qualified service name for this cluster. */ "service"?: string; /** * The subset associated with the service. */ "subset"?: string; }; /** * The specific config generation context to match on. */ "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY"; /** * Match on envoy listener attributes. */ "listener"?: { /** * Match a specific filter chain in a listener. */ "filterChain"?: { /** * Applies only to sidecars. */ "applicationProtocols"?: string; /** * The destination_port value used by a filter chain's match condition. */ "destinationPort"?: number; /** * The name of a specific filter to apply the patch to. */ "filter"?: { /** * The filter name to match on. */ "name"?: string; "subFilter"?: { /** * The filter name to match on. */ "name"?: string; }; }; /** * The name assigned to the filter chain. */ "name"?: string; /** * The SNI value used by a filter chain's match condition. */ "sni"?: string; /** * Applies only to `SIDECAR_INBOUND` context. */ "transportProtocol"?: string; }; /** * Match a specific listener filter. */ "listenerFilter"?: string; /** * Match a specific listener by its name. */ "name"?: string; "portName"?: string; "portNumber"?: number; }; /** * Match on properties associated with a proxy. */ "proxy"?: { "metadata"?: { [key: string]: string; }; "proxyVersion"?: string; }; /** * Match on envoy HTTP route configuration attributes. */ "routeConfiguration"?: { "gateway"?: string; /** * Route configuration name to match on. */ "name"?: string; /** * Applicable only for GATEWAY context. */ "portName"?: string; "portNumber"?: number; "vhost"?: { "name"?: string; /** * Match a specific route within the virtual host. */ "route"?: { /** * Match a route with specific action type. */ "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE"; "name"?: string; }; }; }; } & (Exclude<{ /** * Match on envoy cluster attributes. */ "cluster"?: { /** * The exact name of the cluster to match. */ "name"?: string; /** * The service port for which this cluster was generated. */ "portNumber"?: number; /** * The fully qualified service name for this cluster. */ "service"?: string; /** * The subset associated with the service. */ "subset"?: string; }; /** * The specific config generation context to match on. */ "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY"; /** * Match on envoy listener attributes. */ "listener"?: { /** * Match a specific filter chain in a listener. */ "filterChain"?: { /** * Applies only to sidecars. */ "applicationProtocols"?: string; /** * The destination_port value used by a filter chain's match condition. */ "destinationPort"?: number; /** * The name of a specific filter to apply the patch to. */ "filter"?: { /** * The filter name to match on. */ "name"?: string; "subFilter"?: { /** * The filter name to match on. */ "name"?: string; }; }; /** * The name assigned to the filter chain. */ "name"?: string; /** * The SNI value used by a filter chain's match condition. */ "sni"?: string; /** * Applies only to `SIDECAR_INBOUND` context. */ "transportProtocol"?: string; }; /** * Match a specific listener filter. */ "listenerFilter"?: string; /** * Match a specific listener by its name. */ "name"?: string; "portName"?: string; "portNumber"?: number; }; /** * Match on properties associated with a proxy. */ "proxy"?: { "metadata"?: { [key: string]: string; }; "proxyVersion"?: string; }; /** * Match on envoy HTTP route configuration attributes. */ "routeConfiguration"?: { "gateway"?: string; /** * Route configuration name to match on. */ "name"?: string; /** * Applicable only for GATEWAY context. */ "portName"?: string; "portNumber"?: number; "vhost"?: { "name"?: string; /** * Match a specific route within the virtual host. */ "route"?: { /** * Match a route with specific action type. */ "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE"; "name"?: string; }; }; }; }, { /** * Match on envoy cluster attributes. */ "cluster"?: { /** * The exact name of the cluster to match. */ "name"?: string; /** * The service port for which this cluster was generated. */ "portNumber"?: number; /** * The fully qualified service name for this cluster. */ "service"?: string; /** * The subset associated with the service. */ "subset"?: string; }; /** * The specific config generation context to match on. */ "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY"; /** * Match on envoy listener attributes. */ "listener"?: { /** * Match a specific filter chain in a listener. */ "filterChain"?: { /** * Applies only to sidecars. */ "applicationProtocols"?: string; /** * The destination_port value used by a filter chain's match condition. */ "destinationPort"?: number; /** * The name of a specific filter to apply the patch to. */ "filter"?: { /** * The filter name to match on. */ "name"?: string; "subFilter"?: { /** * The filter name to match on. */ "name"?: string; }; }; /** * The name assigned to the filter chain. */ "name"?: string; /** * The SNI value used by a filter chain's match condition. */ "sni"?: string; /** * Applies only to `SIDECAR_INBOUND` context. */ "transportProtocol"?: string; }; /** * Match a specific listener filter. */ "listenerFilter"?: string; /** * Match a specific listener by its name. */ "name"?: string; "portName"?: string; "portNumber"?: number; }; /** * Match on properties associated with a proxy. */ "proxy"?: { "metadata"?: { [key: string]: string; }; "proxyVersion"?: string; }; /** * Match on envoy HTTP route configuration attributes. */ "routeConfiguration"?: { "gateway"?: string; /** * Route configuration name to match on. */ "name"?: string; /** * Applicable only for GATEWAY context. */ "portName"?: string; "portNumber"?: number; "vhost"?: { "name"?: string; /** * Match a specific route within the virtual host. */ "route"?: { /** * Match a route with specific action type. */ "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE"; "name"?: string; }; }; }; } & ({ /** * Match on envoy cluster attributes. */ "cluster"?: { /** * The exact name of the cluster to match. */ "name"?: string; /** * The service port for which this cluster was generated. */ "portNumber"?: number; /** * The fully qualified service name for this cluster. */ "service"?: string; /** * The subset associated with the service. */ "subset"?: string; }; /** * The specific config generation context to match on. */ "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY"; /** * Match on envoy listener attributes. */ "listener": { /** * Match a specific filter chain in a listener. */ "filterChain"?: { /** * Applies only to sidecars. */ "applicationProtocols"?: string; /** * The destination_port value used by a filter chain's match condition. */ "destinationPort"?: number; /** * The name of a specific filter to apply the patch to. */ "filter"?: { /** * The filter name to match on. */ "name"?: string; "subFilter"?: { /** * The filter name to match on. */ "name"?: string; }; }; /** * The name assigned to the filter chain. */ "name"?: string; /** * The SNI value used by a filter chain's match condition. */ "sni"?: string; /** * Applies only to `SIDECAR_INBOUND` context. */ "transportProtocol"?: string; }; /** * Match a specific listener filter. */ "listenerFilter"?: string; /** * Match a specific listener by its name. */ "name"?: string; "portName"?: string; "portNumber"?: number; }; /** * Match on properties associated with a proxy. */ "proxy"?: { "metadata"?: { [key: string]: string; }; "proxyVersion"?: string; }; /** * Match on envoy HTTP route configuration attributes. */ "routeConfiguration"?: { "gateway"?: string; /** * Route configuration name to match on. */ "name"?: string; /** * Applicable only for GATEWAY context. */ "portName"?: string; "portNumber"?: number; "vhost"?: { "name"?: string; /** * Match a specific route within the virtual host. */ "route"?: { /** * Match a route with specific action type. */ "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE"; "name"?: string; }; }; }; } | { /** * Match on envoy cluster attributes. */ "cluster"?: { /** * The exact name of the cluster to match. */ "name"?: string; /** * The service port for which this cluster was generated. */ "portNumber"?: number; /** * The fully qualified service name for this cluster. */ "service"?: string; /** * The subset associated with the service. */ "subset"?: string; }; /** * The specific config generation context to match on. */ "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY"; /** * Match on envoy listener attributes. */ "listener"?: { /** * Match a specific filter chain in a listener. */ "filterChain"?: { /** * Applies only to sidecars. */ "applicationProtocols"?: string; /** * The destination_port value used by a filter chain's match condition. */ "destinationPort"?: number; /** * The name of a specific filter to apply the patch to. */ "filter"?: { /** * The filter name to match on. */ "name"?: string; "subFilter"?: { /** * The filter name to match on. */ "name"?: string; }; }; /** * The name assigned to the filter chain. */ "name"?: string; /** * The SNI value used by a filter chain's match condition. */ "sni"?: string; /** * Applies only to `SIDECAR_INBOUND` context. */ "transportProtocol"?: string; }; /** * Match a specific listener filter. */ "listenerFilter"?: string; /** * Match a specific listener by its name. */ "name"?: string; "portName"?: string; "portNumber"?: number; }; /** * Match on properties associated with a proxy. */ "proxy"?: { "metadata"?: { [key: string]: string; }; "proxyVersion"?: string; }; /** * Match on envoy HTTP route configuration attributes. */ "routeConfiguration": { "gateway"?: string; /** * Route configuration name to match on. */ "name"?: string; /** * Applicable only for GATEWAY context. */ "portName"?: string; "portNumber"?: number; "vhost"?: { "name"?: string; /** * Match a specific route within the virtual host. */ "route"?: { /** * Match a route with specific action type. */ "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE"; "name"?: string; }; }; }; } | { /** * Match on envoy cluster attributes. */ "cluster": { /** * The exact name of the cluster to match. */ "name"?: string; /** * The service port for which this cluster was generated. */ "portNumber"?: number; /** * The fully qualified service name for this cluster. */ "service"?: string; /** * The subset associated with the service. */ "subset"?: string; }; /** * The specific config generation context to match on. */ "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY"; /** * Match on envoy listener attributes. */ "listener"?: { /** * Match a specific filter chain in a listener. */ "filterChain"?: { /** * Applies only to sidecars. */ "applicationProtocols"?: string; /** * The destination_port value used by a filter chain's match condition. */ "destinationPort"?: number; /** * The name of a specific filter to apply the patch to. */ "filter"?: { /** * The filter name to match on. */ "name"?: string; "subFilter"?: { /** * The filter name to match on. */ "name"?: string; }; }; /** * The name assigned to the filter chain. */ "name"?: string; /** * The SNI value used by a filter chain's match condition. */ "sni"?: string; /** * Applies only to `SIDECAR_INBOUND` context. */ "transportProtocol"?: string; }; /** * Match a specific listener filter. */ "listenerFilter"?: string; /** * Match a specific listener by its name. */ "name"?: string; "portName"?: string; "portNumber"?: number; }; /** * Match on properties associated with a proxy. */ "proxy"?: { "metadata"?: { [key: string]: string; }; "proxyVersion"?: string; }; /** * Match on envoy HTTP route configuration attributes. */ "routeConfiguration"?: { "gateway"?: string; /** * Route configuration name to match on. */ "name"?: string; /** * Applicable only for GATEWAY context. */ "portName"?: string; "portNumber"?: number; "vhost"?: { "name"?: string; /** * Match a specific route within the virtual host. */ "route"?: { /** * Match a route with specific action type. */ "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE"; "name"?: string; }; }; }; })> | { /** * Match on envoy cluster attributes. */ "cluster"?: { /** * The exact name of the cluster to match. */ "name"?: string; /** * The service port for which this cluster was generated. */ "portNumber"?: number; /** * The fully qualified service name for this cluster. */ "service"?: string; /** * The subset associated with the service. */ "subset"?: string; }; /** * The specific config generation context to match on. */ "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY"; /** * Match on envoy listener attributes. */ "listener": { /** * Match a specific filter chain in a listener. */ "filterChain"?: { /** * Applies only to sidecars. */ "applicationProtocols"?: string; /** * The destination_port value used by a filter chain's match condition. */ "destinationPort"?: number; /** * The name of a specific filter to apply the patch to. */ "filter"?: { /** * The filter name to match on. */ "name"?: string; "subFilter"?: { /** * The filter name to match on. */ "name"?: string; }; }; /** * The name assigned to the filter chain. */ "name"?: string; /** * The SNI value used by a filter chain's match condition. */ "sni"?: string; /** * Applies only to `SIDECAR_INBOUND` context. */ "transportProtocol"?: string; }; /** * Match a specific listener filter. */ "listenerFilter"?: string; /** * Match a specific listener by its name. */ "name"?: string; "portName"?: string; "portNumber"?: number; }; /** * Match on properties associated with a proxy. */ "proxy"?: { "metadata"?: { [key: string]: string; }; "proxyVersion"?: string; }; /** * Match on envoy HTTP route configuration attributes. */ "routeConfiguration"?: { "gateway"?: string; /** * Route configuration name to match on. */ "name"?: string; /** * Applicable only for GATEWAY context. */ "portName"?: string; "portNumber"?: number; "vhost"?: { "name"?: string; /** * Match a specific route within the virtual host. */ "route"?: { /** * Match a route with specific action type. */ "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE"; "name"?: string; }; }; }; } | { /** * Match on envoy cluster attributes. */ "cluster"?: { /** * The exact name of the cluster to match. */ "name"?: string; /** * The service port for which this cluster was generated. */ "portNumber"?: number; /** * The fully qualified service name for this cluster. */ "service"?: string; /** * The subset associated with the service. */ "subset"?: string; }; /** * The specific config generation context to match on. */ "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY"; /** * Match on envoy listener attributes. */ "listener"?: { /** * Match a specific filter chain in a listener. */ "filterChain"?: { /** * Applies only to sidecars. */ "applicationProtocols"?: string; /** * The destination_port value used by a filter chain's match condition. */ "destinationPort"?: number; /** * The name of a specific filter to apply the patch to. */ "filter"?: { /** * The filter name to match on. */ "name"?: string; "subFilter"?: { /** * The filter name to match on. */ "name"?: string; }; }; /** * The name assigned to the filter chain. */ "name"?: string; /** * The SNI value used by a filter chain's match condition. */ "sni"?: string; /** * Applies only to `SIDECAR_INBOUND` context. */ "transportProtocol"?: string; }; /** * Match a specific listener filter. */ "listenerFilter"?: string; /** * Match a specific listener by its name. */ "name"?: string; "portName"?: string; "portNumber"?: number; }; /** * Match on properties associated with a proxy. */ "proxy"?: { "metadata"?: { [key: string]: string; }; "proxyVersion"?: string; }; /** * Match on envoy HTTP route configuration attributes. */ "routeConfiguration": { "gateway"?: string; /** * Route configuration name to match on. */ "name"?: string; /** * Applicable only for GATEWAY context. */ "portName"?: string; "portNumber"?: number; "vhost"?: { "name"?: string; /** * Match a specific route within the virtual host. */ "route"?: { /** * Match a route with specific action type. */ "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE"; "name"?: string; }; }; }; } | { /** * Match on envoy cluster attributes. */ "cluster": { /** * The exact name of the cluster to match. */ "name"?: string; /** * The service port for which this cluster was generated. */ "portNumber"?: number; /** * The fully qualified service name for this cluster. */ "service"?: string; /** * The subset associated with the service. */ "subset"?: string; }; /** * The specific config generation context to match on. */ "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY"; /** * Match on envoy listener attributes. */ "listener"?: { /** * Match a specific filter chain in a listener. */ "filterChain"?: { /** * Applies only to sidecars. */ "applicationProtocols"?: string; /** * The destination_port value used by a filter chain's match condition. */ "destinationPort"?: number; /** * The name of a specific filter to apply the patch to. */ "filter"?: { /** * The filter name to match on. */ "name"?: string; "subFilter"?: { /** * The filter name to match on. */ "name"?: string; }; }; /** * The name assigned to the filter chain. */ "name"?: string; /** * The SNI value used by a filter chain's match condition. */ "sni"?: string; /** * Applies only to `SIDECAR_INBOUND` context. */ "transportProtocol"?: string; }; /** * Match a specific listener filter. */ "listenerFilter"?: string; /** * Match a specific listener by its name. */ "name"?: string; "portName"?: string; "portNumber"?: number; }; /** * Match on properties associated with a proxy. */ "proxy"?: { "metadata"?: { [key: string]: string; }; "proxyVersion"?: string; }; /** * Match on envoy HTTP route configuration attributes. */ "routeConfiguration"?: { "gateway"?: string; /** * Route configuration name to match on. */ "name"?: string; /** * Applicable only for GATEWAY context. */ "portName"?: string; "portNumber"?: number; "vhost"?: { "name"?: string; /** * Match a specific route within the virtual host. */ "route"?: { /** * Match a route with specific action type. */ "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE"; "name"?: string; }; }; }; }); /** * The patch to apply along with the operation. */ "patch"?: { /** * Determines the filter insertion order. */ "filterClass"?: "UNSPECIFIED" | "AUTHN" | "AUTHZ" | "STATS"; /** * Determines how the patch should be applied. */ "operation"?: "INVALID" | "MERGE" | "ADD" | "REMOVE" | "INSERT_BEFORE" | "INSERT_AFTER" | "INSERT_FIRST" | "REPLACE"; /** * The JSON config of the object being patched. */ "value"?: {}; }; }>; /** * Priority defines the order in which patch sets are applied within a context. */ "priority"?: number; "workloadSelector"?: { "labels"?: { [key: string]: string; }; }; }; "status"?: {}; "apiVersion": "networking.istio.io/v1alpha3"; "kind": "EnvoyFilter"; "metadata"?: IObjectMeta; } export declare class EnvoyFilter extends Model<IEnvoyFilter> implements IEnvoyFilter { "spec"?: IEnvoyFilter["spec"]; "status"?: IEnvoyFilter["status"]; "apiVersion": IEnvoyFilter["apiVersion"]; "kind": IEnvoyFilter["kind"]; "metadata"?: IEnvoyFilter["metadata"]; static apiVersion: IEnvoyFilter["apiVersion"]; static kind: IEnvoyFilter["kind"]; static is: import("@kubernetes-models/base").TypeMetaGuard<IEnvoyFilter>; constructor(data?: ModelData<IEnvoyFilter>); }