@kubernetes-models/istio
Version:
1,123 lines (1,122 loc) • 44 kB
TypeScript
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"?: {
[]: 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"?: {
[]: 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"?: {
[]: 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"?: {
[]: 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"?: {
[]: 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"?: {
[]: 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"?: {
[]: 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"?: {
[]: 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"?: {
[]: 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"?: {
[]: 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>);
}