UNPKG

@rugal/pulumi-istio

Version:
1,350 lines (1,349 loc) 106 kB
import { output as outputs } from "../types"; export declare namespace networking { namespace v1alpha3 { /** * Configuration affecting load balancing, outlier detection, etc. See more details at: https://istio.io/docs/reference/config/networking/destination-rule.html */ interface DestinationRuleSpec { /** * A list of namespaces to which this destination rule is exported. */ exportTo?: string[]; /** * The name of a service from the service registry. */ host?: string; subsets?: outputs.networking.v1alpha3.DestinationRuleSpecSubsets[]; trafficPolicy?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicy; } interface DestinationRuleSpecSubsets { labels?: { [key: string]: string; }; /** * Name of the subset. */ name?: string; /** * Traffic policies that apply to this subset. */ trafficPolicy?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicy; } /** * Traffic policies that apply to this subset. */ interface DestinationRuleSpecSubsetsTrafficPolicy { connectionPool?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyConnectionPool; /** * Settings controlling the load balancer algorithms. */ loadBalancer?: any; outlierDetection?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyOutlierDetection; /** * Traffic policies specific to individual ports. */ portLevelSettings?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettings[]; /** * TLS related settings for connections to the upstream service. */ tls?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyTls; } interface DestinationRuleSpecSubsetsTrafficPolicyConnectionPool { /** * HTTP connection pool settings. */ http?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyConnectionPoolHttp; /** * Settings common to both HTTP and TCP upstream connections. */ tcp?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyConnectionPoolTcp; } /** * HTTP connection pool settings. */ interface DestinationRuleSpecSubsetsTrafficPolicyConnectionPoolHttp { /** * Specify if http1.1 connection should be upgraded to http2 for the associated destination. */ h2UpgradePolicy?: string; /** * Maximum number of pending HTTP requests to a destination. */ http1MaxPendingRequests?: number; /** * Maximum number of requests to a backend. */ http2MaxRequests?: number; /** * The idle timeout for upstream connection pool connections. */ idleTimeout?: string; /** * Maximum number of requests per connection to a backend. */ maxRequestsPerConnection?: number; maxRetries?: number; /** * If set to true, client protocol will be preserved while initiating connection to backend. */ useClientProtocol?: boolean; } /** * Settings common to both HTTP and TCP upstream connections. */ interface DestinationRuleSpecSubsetsTrafficPolicyConnectionPoolTcp { /** * TCP connection timeout. */ connectTimeout?: string; /** * Maximum number of HTTP1 /TCP connections to a destination host. */ maxConnections?: number; /** * If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives. */ tcpKeepalive?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyConnectionPoolTcpTcpKeepalive; } /** * If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives. */ interface DestinationRuleSpecSubsetsTrafficPolicyConnectionPoolTcpTcpKeepalive { /** * The time duration between keep-alive probes. */ interval?: string; probes?: number; time?: string; } interface DestinationRuleSpecSubsetsTrafficPolicyOutlierDetection { /** * Minimum ejection duration. */ baseEjectionTime?: string; /** * Number of 5xx errors before a host is ejected from the connection pool. */ consecutive5xxErrors?: number; consecutiveErrors?: number; /** * Number of gateway errors before a host is ejected from the connection pool. */ consecutiveGatewayErrors?: number; consecutiveLocalOriginFailures?: number; /** * Time interval between ejection sweep analysis. */ interval?: string; maxEjectionPercent?: number; minHealthPercent?: number; /** * Determines whether to distinguish local origin failures from external errors. */ splitExternalLocalOriginErrors?: boolean; } interface DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettings { connectionPool?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsConnectionPool; /** * Settings controlling the load balancer algorithms. */ loadBalancer?: any; outlierDetection?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsOutlierDetection; port?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsPort; /** * TLS related settings for connections to the upstream service. */ tls?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsTls; } interface DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsConnectionPool { /** * HTTP connection pool settings. */ http?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsConnectionPoolHttp; /** * Settings common to both HTTP and TCP upstream connections. */ tcp?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsConnectionPoolTcp; } /** * HTTP connection pool settings. */ interface DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsConnectionPoolHttp { /** * Specify if http1.1 connection should be upgraded to http2 for the associated destination. */ h2UpgradePolicy?: string; /** * Maximum number of pending HTTP requests to a destination. */ http1MaxPendingRequests?: number; /** * Maximum number of requests to a backend. */ http2MaxRequests?: number; /** * The idle timeout for upstream connection pool connections. */ idleTimeout?: string; /** * Maximum number of requests per connection to a backend. */ maxRequestsPerConnection?: number; maxRetries?: number; /** * If set to true, client protocol will be preserved while initiating connection to backend. */ useClientProtocol?: boolean; } /** * Settings common to both HTTP and TCP upstream connections. */ interface DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsConnectionPoolTcp { /** * TCP connection timeout. */ connectTimeout?: string; /** * Maximum number of HTTP1 /TCP connections to a destination host. */ maxConnections?: number; /** * If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives. */ tcpKeepalive?: outputs.networking.v1alpha3.DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsConnectionPoolTcpTcpKeepalive; } /** * If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives. */ interface DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsConnectionPoolTcpTcpKeepalive { /** * The time duration between keep-alive probes. */ interval?: string; probes?: number; time?: string; } interface DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsOutlierDetection { /** * Minimum ejection duration. */ baseEjectionTime?: string; /** * Number of 5xx errors before a host is ejected from the connection pool. */ consecutive5xxErrors?: number; consecutiveErrors?: number; /** * Number of gateway errors before a host is ejected from the connection pool. */ consecutiveGatewayErrors?: number; consecutiveLocalOriginFailures?: number; /** * Time interval between ejection sweep analysis. */ interval?: string; maxEjectionPercent?: number; minHealthPercent?: number; /** * Determines whether to distinguish local origin failures from external errors. */ splitExternalLocalOriginErrors?: boolean; } interface DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsPort { number?: number; } /** * TLS related settings for connections to the upstream service. */ interface DestinationRuleSpecSubsetsTrafficPolicyPortLevelSettingsTls { caCertificates?: string; /** * REQUIRED if mode is `MUTUAL`. */ clientCertificate?: string; credentialName?: string; mode?: string; /** * REQUIRED if mode is `MUTUAL`. */ privateKey?: string; /** * SNI string to present to the server during TLS handshake. */ sni?: string; subjectAltNames?: string[]; } /** * TLS related settings for connections to the upstream service. */ interface DestinationRuleSpecSubsetsTrafficPolicyTls { caCertificates?: string; /** * REQUIRED if mode is `MUTUAL`. */ clientCertificate?: string; credentialName?: string; mode?: string; /** * REQUIRED if mode is `MUTUAL`. */ privateKey?: string; /** * SNI string to present to the server during TLS handshake. */ sni?: string; subjectAltNames?: string[]; } interface DestinationRuleSpecTrafficPolicy { connectionPool?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyConnectionPool; /** * Settings controlling the load balancer algorithms. */ loadBalancer?: any; outlierDetection?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyOutlierDetection; /** * Traffic policies specific to individual ports. */ portLevelSettings?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyPortLevelSettings[]; /** * TLS related settings for connections to the upstream service. */ tls?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyTls; } interface DestinationRuleSpecTrafficPolicyConnectionPool { /** * HTTP connection pool settings. */ http?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyConnectionPoolHttp; /** * Settings common to both HTTP and TCP upstream connections. */ tcp?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyConnectionPoolTcp; } /** * HTTP connection pool settings. */ interface DestinationRuleSpecTrafficPolicyConnectionPoolHttp { /** * Specify if http1.1 connection should be upgraded to http2 for the associated destination. */ h2UpgradePolicy?: string; /** * Maximum number of pending HTTP requests to a destination. */ http1MaxPendingRequests?: number; /** * Maximum number of requests to a backend. */ http2MaxRequests?: number; /** * The idle timeout for upstream connection pool connections. */ idleTimeout?: string; /** * Maximum number of requests per connection to a backend. */ maxRequestsPerConnection?: number; maxRetries?: number; /** * If set to true, client protocol will be preserved while initiating connection to backend. */ useClientProtocol?: boolean; } /** * Settings common to both HTTP and TCP upstream connections. */ interface DestinationRuleSpecTrafficPolicyConnectionPoolTcp { /** * TCP connection timeout. */ connectTimeout?: string; /** * Maximum number of HTTP1 /TCP connections to a destination host. */ maxConnections?: number; /** * If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives. */ tcpKeepalive?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyConnectionPoolTcpTcpKeepalive; } /** * If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives. */ interface DestinationRuleSpecTrafficPolicyConnectionPoolTcpTcpKeepalive { /** * The time duration between keep-alive probes. */ interval?: string; probes?: number; time?: string; } interface DestinationRuleSpecTrafficPolicyOutlierDetection { /** * Minimum ejection duration. */ baseEjectionTime?: string; /** * Number of 5xx errors before a host is ejected from the connection pool. */ consecutive5xxErrors?: number; consecutiveErrors?: number; /** * Number of gateway errors before a host is ejected from the connection pool. */ consecutiveGatewayErrors?: number; consecutiveLocalOriginFailures?: number; /** * Time interval between ejection sweep analysis. */ interval?: string; maxEjectionPercent?: number; minHealthPercent?: number; /** * Determines whether to distinguish local origin failures from external errors. */ splitExternalLocalOriginErrors?: boolean; } interface DestinationRuleSpecTrafficPolicyPortLevelSettings { connectionPool?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyPortLevelSettingsConnectionPool; /** * Settings controlling the load balancer algorithms. */ loadBalancer?: any; outlierDetection?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyPortLevelSettingsOutlierDetection; port?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyPortLevelSettingsPort; /** * TLS related settings for connections to the upstream service. */ tls?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyPortLevelSettingsTls; } interface DestinationRuleSpecTrafficPolicyPortLevelSettingsConnectionPool { /** * HTTP connection pool settings. */ http?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyPortLevelSettingsConnectionPoolHttp; /** * Settings common to both HTTP and TCP upstream connections. */ tcp?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyPortLevelSettingsConnectionPoolTcp; } /** * HTTP connection pool settings. */ interface DestinationRuleSpecTrafficPolicyPortLevelSettingsConnectionPoolHttp { /** * Specify if http1.1 connection should be upgraded to http2 for the associated destination. */ h2UpgradePolicy?: string; /** * Maximum number of pending HTTP requests to a destination. */ http1MaxPendingRequests?: number; /** * Maximum number of requests to a backend. */ http2MaxRequests?: number; /** * The idle timeout for upstream connection pool connections. */ idleTimeout?: string; /** * Maximum number of requests per connection to a backend. */ maxRequestsPerConnection?: number; maxRetries?: number; /** * If set to true, client protocol will be preserved while initiating connection to backend. */ useClientProtocol?: boolean; } /** * Settings common to both HTTP and TCP upstream connections. */ interface DestinationRuleSpecTrafficPolicyPortLevelSettingsConnectionPoolTcp { /** * TCP connection timeout. */ connectTimeout?: string; /** * Maximum number of HTTP1 /TCP connections to a destination host. */ maxConnections?: number; /** * If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives. */ tcpKeepalive?: outputs.networking.v1alpha3.DestinationRuleSpecTrafficPolicyPortLevelSettingsConnectionPoolTcpTcpKeepalive; } /** * If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives. */ interface DestinationRuleSpecTrafficPolicyPortLevelSettingsConnectionPoolTcpTcpKeepalive { /** * The time duration between keep-alive probes. */ interval?: string; probes?: number; time?: string; } interface DestinationRuleSpecTrafficPolicyPortLevelSettingsOutlierDetection { /** * Minimum ejection duration. */ baseEjectionTime?: string; /** * Number of 5xx errors before a host is ejected from the connection pool. */ consecutive5xxErrors?: number; consecutiveErrors?: number; /** * Number of gateway errors before a host is ejected from the connection pool. */ consecutiveGatewayErrors?: number; consecutiveLocalOriginFailures?: number; /** * Time interval between ejection sweep analysis. */ interval?: string; maxEjectionPercent?: number; minHealthPercent?: number; /** * Determines whether to distinguish local origin failures from external errors. */ splitExternalLocalOriginErrors?: boolean; } interface DestinationRuleSpecTrafficPolicyPortLevelSettingsPort { number?: number; } /** * TLS related settings for connections to the upstream service. */ interface DestinationRuleSpecTrafficPolicyPortLevelSettingsTls { caCertificates?: string; /** * REQUIRED if mode is `MUTUAL`. */ clientCertificate?: string; credentialName?: string; mode?: string; /** * REQUIRED if mode is `MUTUAL`. */ privateKey?: string; /** * SNI string to present to the server during TLS handshake. */ sni?: string; subjectAltNames?: string[]; } /** * TLS related settings for connections to the upstream service. */ interface DestinationRuleSpecTrafficPolicyTls { caCertificates?: string; /** * REQUIRED if mode is `MUTUAL`. */ clientCertificate?: string; credentialName?: string; mode?: string; /** * REQUIRED if mode is `MUTUAL`. */ privateKey?: string; /** * SNI string to present to the server during TLS handshake. */ sni?: string; subjectAltNames?: string[]; } /** * Customizing Envoy configuration generated by Istio. See more details at: https://istio.io/docs/reference/config/networking/envoy-filter.html */ interface EnvoyFilterSpec { /** * One or more patches with match conditions. */ configPatches?: outputs.networking.v1alpha3.EnvoyFilterSpecConfigPatches[]; /** * Priority defines the order in which patch sets are applied within a context. */ priority?: number; workloadSelector?: outputs.networking.v1alpha3.EnvoyFilterSpecWorkloadSelector; } interface EnvoyFilterSpecConfigPatches { applyTo?: string; /** * Match on listener/route configuration/cluster. */ match?: any; /** * The patch to apply along with the operation. */ patch?: outputs.networking.v1alpha3.EnvoyFilterSpecConfigPatchesPatch; } /** * The patch to apply along with the operation. */ interface EnvoyFilterSpecConfigPatchesPatch { /** * Determines the filter insertion order. */ filterClass?: string; /** * Determines how the patch should be applied. */ operation?: string; /** * The JSON config of the object being patched. */ value?: { [key: string]: any; }; } interface EnvoyFilterSpecWorkloadSelector { labels?: { [key: string]: string; }; } /** * Configuration affecting edge load balancer. See more details at: https://istio.io/docs/reference/config/networking/gateway.html */ interface GatewaySpec { selector?: { [key: string]: string; }; /** * A list of server specifications. */ servers?: outputs.networking.v1alpha3.GatewaySpecServers[]; } interface GatewaySpecServers { bind?: string; defaultEndpoint?: string; /** * One or more hosts exposed by this gateway. */ hosts?: string[]; /** * An optional name of the server, when set must be unique across all servers. */ name?: string; port?: outputs.networking.v1alpha3.GatewaySpecServersPort; /** * Set of TLS related options that govern the server's behavior. */ tls?: outputs.networking.v1alpha3.GatewaySpecServersTls; } interface GatewaySpecServersPort { /** * Label assigned to the port. */ name?: string; /** * A valid non-negative integer port number. */ number?: number; /** * The protocol exposed on the port. */ protocol?: string; targetPort?: number; } /** * Set of TLS related options that govern the server's behavior. */ interface GatewaySpecServersTls { /** * REQUIRED if mode is `MUTUAL`. */ caCertificates?: string; /** * Optional: If specified, only support the specified cipher list. */ cipherSuites?: string[]; credentialName?: string; httpsRedirect?: boolean; /** * Optional: Maximum TLS protocol version. */ maxProtocolVersion?: string; /** * Optional: Minimum TLS protocol version. */ minProtocolVersion?: string; mode?: string; /** * REQUIRED if mode is `SIMPLE` or `MUTUAL`. */ privateKey?: string; /** * REQUIRED if mode is `SIMPLE` or `MUTUAL`. */ serverCertificate?: string; subjectAltNames?: string[]; verifyCertificateHash?: string[]; verifyCertificateSpki?: string[]; } /** * Configuration affecting service registry. See more details at: https://istio.io/docs/reference/config/networking/service-entry.html */ interface ServiceEntrySpec { /** * The virtual IP addresses associated with the service. */ addresses?: string[]; /** * One or more endpoints associated with the service. */ endpoints?: outputs.networking.v1alpha3.ServiceEntrySpecEndpoints[]; /** * A list of namespaces to which this service is exported. */ exportTo?: string[]; /** * The hosts associated with the ServiceEntry. */ hosts?: string[]; location?: string; /** * The ports associated with the external service. */ ports?: outputs.networking.v1alpha3.ServiceEntrySpecPorts[]; /** * Service discovery mode for the hosts. */ resolution?: string; subjectAltNames?: string[]; /** * Applicable only for MESH_INTERNAL services. */ workloadSelector?: outputs.networking.v1alpha3.ServiceEntrySpecWorkloadSelector; } interface ServiceEntrySpecEndpoints { address?: string; /** * One or more labels associated with the endpoint. */ labels?: { [key: string]: string; }; /** * The locality associated with the endpoint. */ locality?: string; network?: string; /** * Set of ports associated with the endpoint. */ ports?: { [key: string]: number; }; serviceAccount?: string; /** * The load balancing weight associated with the endpoint. */ weight?: number; } interface ServiceEntrySpecPorts { /** * Label assigned to the port. */ name?: string; /** * A valid non-negative integer port number. */ number?: number; /** * The protocol exposed on the port. */ protocol?: string; targetPort?: number; } /** * Applicable only for MESH_INTERNAL services. */ interface ServiceEntrySpecWorkloadSelector { labels?: { [key: string]: string; }; } /** * Configuration affecting network reachability of a sidecar. See more details at: https://istio.io/docs/reference/config/networking/sidecar.html */ interface SidecarSpec { egress?: outputs.networking.v1alpha3.SidecarSpecEgress[]; ingress?: outputs.networking.v1alpha3.SidecarSpecIngress[]; /** * Configuration for the outbound traffic policy. */ outboundTrafficPolicy?: outputs.networking.v1alpha3.SidecarSpecOutboundTrafficPolicy; workloadSelector?: outputs.networking.v1alpha3.SidecarSpecWorkloadSelector; } interface SidecarSpecEgress { bind?: string; captureMode?: string; hosts?: string[]; /** * The port associated with the listener. */ port?: outputs.networking.v1alpha3.SidecarSpecEgressPort; } /** * The port associated with the listener. */ interface SidecarSpecEgressPort { /** * Label assigned to the port. */ name?: string; /** * A valid non-negative integer port number. */ number?: number; /** * The protocol exposed on the port. */ protocol?: string; targetPort?: number; } interface SidecarSpecIngress { /** * The IP to which the listener should be bound. */ bind?: string; captureMode?: string; defaultEndpoint?: string; /** * The port associated with the listener. */ port?: outputs.networking.v1alpha3.SidecarSpecIngressPort; } /** * The port associated with the listener. */ interface SidecarSpecIngressPort { /** * Label assigned to the port. */ name?: string; /** * A valid non-negative integer port number. */ number?: number; /** * The protocol exposed on the port. */ protocol?: string; targetPort?: number; } /** * Configuration for the outbound traffic policy. */ interface SidecarSpecOutboundTrafficPolicy { egressProxy?: outputs.networking.v1alpha3.SidecarSpecOutboundTrafficPolicyEgressProxy; mode?: string; } interface SidecarSpecOutboundTrafficPolicyEgressProxy { /** * The name of a service from the service registry. */ host?: string; /** * Specifies the port on the host that is being addressed. */ port?: outputs.networking.v1alpha3.SidecarSpecOutboundTrafficPolicyEgressProxyPort; /** * The name of a subset within the service. */ subset?: string; } /** * Specifies the port on the host that is being addressed. */ interface SidecarSpecOutboundTrafficPolicyEgressProxyPort { number?: number; } interface SidecarSpecWorkloadSelector { labels?: { [key: string]: string; }; } /** * Configuration affecting label/content routing, sni routing, etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html */ interface VirtualServiceSpec { /** * A list of namespaces to which this virtual service is exported. */ exportTo?: string[]; /** * The names of gateways and sidecars that should apply these routes. */ gateways?: string[]; /** * The destination hosts to which traffic is being sent. */ hosts?: string[]; /** * An ordered list of route rules for HTTP traffic. */ http?: outputs.networking.v1alpha3.VirtualServiceSpecHttp[]; /** * An ordered list of route rules for opaque TCP traffic. */ tcp?: outputs.networking.v1alpha3.VirtualServiceSpecTcp[]; tls?: outputs.networking.v1alpha3.VirtualServiceSpecTls[]; } interface VirtualServiceSpecHttp { /** * Cross-Origin Resource Sharing policy (CORS). */ corsPolicy?: outputs.networking.v1alpha3.VirtualServiceSpecHttpCorsPolicy; delegate?: outputs.networking.v1alpha3.VirtualServiceSpecHttpDelegate; /** * Fault injection policy to apply on HTTP traffic at the client side. */ fault?: outputs.networking.v1alpha3.VirtualServiceSpecHttpFault; headers?: outputs.networking.v1alpha3.VirtualServiceSpecHttpHeaders; match?: outputs.networking.v1alpha3.VirtualServiceSpecHttpMatch[]; mirror?: outputs.networking.v1alpha3.VirtualServiceSpecHttpMirror; /** * Percentage of the traffic to be mirrored by the `mirror` field. */ mirrorPercent?: number; /** * Percentage of the traffic to be mirrored by the `mirror` field. */ mirrorPercentage?: outputs.networking.v1alpha3.VirtualServiceSpecHttpMirrorPercentage; /** * Percentage of the traffic to be mirrored by the `mirror` field. */ mirror_percent?: number; /** * The name assigned to the route for debugging purposes. */ name?: string; /** * A HTTP rule can either redirect or forward (default) traffic. */ redirect?: outputs.networking.v1alpha3.VirtualServiceSpecHttpRedirect; /** * Retry policy for HTTP requests. */ retries?: outputs.networking.v1alpha3.VirtualServiceSpecHttpRetries; /** * Rewrite HTTP URIs and Authority headers. */ rewrite?: outputs.networking.v1alpha3.VirtualServiceSpecHttpRewrite; /** * A HTTP rule can either redirect or forward (default) traffic. */ route?: outputs.networking.v1alpha3.VirtualServiceSpecHttpRoute[]; /** * Timeout for HTTP requests, default is disabled. */ timeout?: string; } /** * Cross-Origin Resource Sharing policy (CORS). */ interface VirtualServiceSpecHttpCorsPolicy { allowCredentials?: boolean; allowHeaders?: string[]; /** * List of HTTP methods allowed to access the resource. */ allowMethods?: string[]; /** * The list of origins that are allowed to perform CORS requests. */ allowOrigin?: string[]; /** * String patterns that match allowed origins. */ allowOrigins?: any[]; exposeHeaders?: string[]; maxAge?: string; } interface VirtualServiceSpecHttpDelegate { /** * Name specifies the name of the delegate VirtualService. */ name?: string; /** * Namespace specifies the namespace where the delegate VirtualService resides. */ namespace?: string; } /** * Fault injection policy to apply on HTTP traffic at the client side. */ interface VirtualServiceSpecHttpFault { abort?: any; delay?: any; } interface VirtualServiceSpecHttpHeaders { request?: outputs.networking.v1alpha3.VirtualServiceSpecHttpHeadersRequest; response?: outputs.networking.v1alpha3.VirtualServiceSpecHttpHeadersResponse; } interface VirtualServiceSpecHttpHeadersRequest { add?: { [key: string]: string; }; remove?: string[]; set?: { [key: string]: string; }; } interface VirtualServiceSpecHttpHeadersResponse { add?: { [key: string]: string; }; remove?: string[]; set?: { [key: string]: string; }; } interface VirtualServiceSpecHttpMatch { authority?: any; /** * Names of gateways where the rule should be applied. */ gateways?: string[]; headers?: { [key: string]: any; }; /** * Flag to specify whether the URI matching should be case-insensitive. */ ignoreUriCase?: boolean; method?: any; /** * The name assigned to a match. */ name?: string; /** * Specifies the ports on the host that is being addressed. */ port?: number; /** * Query parameters for matching. */ queryParams?: { [key: string]: any; }; scheme?: any; sourceLabels?: { [key: string]: string; }; /** * Source namespace constraining the applicability of a rule to workloads in that namespace. */ sourceNamespace?: string; uri?: any; /** * withoutHeader has the same syntax with the header, but has opposite meaning. */ withoutHeaders?: { [key: string]: any; }; } interface VirtualServiceSpecHttpMirror { /** * The name of a service from the service registry. */ host?: string; /** * Specifies the port on the host that is being addressed. */ port?: outputs.networking.v1alpha3.VirtualServiceSpecHttpMirrorPort; /** * The name of a subset within the service. */ subset?: string; } /** * Percentage of the traffic to be mirrored by the `mirror` field. */ interface VirtualServiceSpecHttpMirrorPercentage { value?: number; } /** * Specifies the port on the host that is being addressed. */ interface VirtualServiceSpecHttpMirrorPort { number?: number; } /** * A HTTP rule can either redirect or forward (default) traffic. */ interface VirtualServiceSpecHttpRedirect { authority?: string; redirectCode?: number; uri?: string; } /** * Retry policy for HTTP requests. */ interface VirtualServiceSpecHttpRetries { /** * Number of retries to be allowed for a given request. */ attempts?: number; /** * Timeout per attempt for a given request, including the initial call and any retries. */ perTryTimeout?: string; /** * Specifies the conditions under which retry takes place. */ retryOn?: string; /** * Flag to specify whether the retries should retry to other localities. */ retryRemoteLocalities?: boolean; } /** * Rewrite HTTP URIs and Authority headers. */ interface VirtualServiceSpecHttpRewrite { /** * rewrite the Authority/Host header with this value. */ authority?: string; uri?: string; } interface VirtualServiceSpecHttpRoute { destination?: outputs.networking.v1alpha3.VirtualServiceSpecHttpRouteDestination; headers?: outputs.networking.v1alpha3.VirtualServiceSpecHttpRouteHeaders; weight?: number; } interface VirtualServiceSpecHttpRouteDestination { /** * The name of a service from the service registry. */ host?: string; /** * Specifies the port on the host that is being addressed. */ port?: outputs.networking.v1alpha3.VirtualServiceSpecHttpRouteDestinationPort; /** * The name of a subset within the service. */ subset?: string; } /** * Specifies the port on the host that is being addressed. */ interface VirtualServiceSpecHttpRouteDestinationPort { number?: number; } interface VirtualServiceSpecHttpRouteHeaders { request?: outputs.networking.v1alpha3.VirtualServiceSpecHttpRouteHeadersRequest; response?: outputs.networking.v1alpha3.VirtualServiceSpecHttpRouteHeadersResponse; } interface VirtualServiceSpecHttpRouteHeadersRequest { add?: { [key: string]: string; }; remove?: string[]; set?: { [key: string]: string; }; } interface VirtualServiceSpecHttpRouteHeadersResponse { add?: { [key: string]: string; }; remove?: string[]; set?: { [key: string]: string; }; } interface VirtualServiceSpecTcp { match?: outputs.networking.v1alpha3.VirtualServiceSpecTcpMatch[]; /** * The destination to which the connection should be forwarded to. */ route?: outputs.networking.v1alpha3.VirtualServiceSpecTcpRoute[]; } interface VirtualServiceSpecTcpMatch { /** * IPv4 or IPv6 ip addresses of destination with optional subnet. */ destinationSubnets?: string[]; /** * Names of gateways where the rule should be applied. */ gateways?: string[]; /** * Specifies the port on the host that is being addressed. */ port?: number; sourceLabels?: { [key: string]: string; }; /** * Source namespace constraining the applicability of a rule to workloads in that namespace. */ sourceNamespace?: string; /** * IPv4 or IPv6 ip address of source with optional subnet. */ sourceSubnet?: string; } interface VirtualServiceSpecTcpRoute { destination?: outputs.networking.v1alpha3.VirtualServiceSpecTcpRouteDestination; weight?: number; } interface VirtualServiceSpecTcpRouteDestination { /** * The name of a service from the service registry. */ host?: string; /** * Specifies the port on the host that is being addressed. */ port?: outputs.networking.v1alpha3.VirtualServiceSpecTcpRouteDestinationPort; /** * The name of a subset within the service. */ subset?: string; } /** * Specifies the port on the host that is being addressed. */ interface VirtualServiceSpecTcpRouteDestinationPort { number?: number; } interface VirtualServiceSpecTls { match?: outputs.networking.v1alpha3.VirtualServiceSpecTlsMatch[]; /** * The destination to which the connection should be forwarded to. */ route?: outputs.networking.v1alpha3.VirtualServiceSpecTlsRoute[]; } interface VirtualServiceSpecTlsMatch { /** * IPv4 or IPv6 ip addresses of destination with optional subnet. */ destinationSubnets?: string[]; /** * Names of gateways where the rule should be applied. */ gateways?: string[]; /** * Specifies the port on the host that is being addressed. */ port?: number; /** * SNI (server name indicator) to match on. */ sniHosts?: string[]; sourceLabels?: { [key: string]: string; }; /** * Source namespace constraining the applicability of a rule to workloads in that namespace. */ sourceNamespace?: string; } interface VirtualServiceSpecTlsRoute { destination?: outputs.networking.v1alpha3.VirtualServiceSpecTlsRouteDestination; weight?: number; } interface VirtualServiceSpecTlsRouteDestination { /** * The name of a service from the service registry. */ host?: string; /** * Specifies the port on the host that is being addressed. */ port?: outputs.networking.v1alpha3.VirtualServiceSpecTlsRouteDestinationPort; /** * The name of a subset within the service. */ subset?: string; } /** * Specifies the port on the host that is being addressed. */ interface VirtualServiceSpecTlsRouteDestinationPort { number?: number; } /** * Configuration affecting VMs onboarded into the mesh. See more details at: https://istio.io/docs/reference/config/networking/workload-entry.html */ interface WorkloadEntrySpec { address?: string; /** * One or more labels associated with the endpoint. */ labels?: { [key: string]: string; }; /** * The locality associated with the endpoint. */ locality?: string; network?: string; /** * Set of ports associated with the endpoint. */ ports?: { [key: string]: number; }; serviceAccount?: string; /** * The load balancing weight associated with the endpoint. */ weight?: number; } /** * Describes a collection of workload instances. See more details at: https://istio.io/docs/reference/config/networking/workload-group.html */ interface WorkloadGroupSpec { /** * Metadata that will be used for all corresponding `WorkloadEntries`. */ metadata?: outputs.networking.v1alpha3.WorkloadGroupSpecMetadata; /** * `ReadinessProbe` describes the configuration the user must provide for healthchecking on their workload. */ probe?: any; /** * Template to be used for the generation of `WorkloadEntry` resources that belong to this `WorkloadGroup`. */ template?: outputs.networking.v1alpha3.WorkloadGroupSpecTemplate; } /** * Metadata that will be used for all corresponding `WorkloadEntries`. */ interface WorkloadGroupSpecMetadata { annotations?: { [key: string]: string; }; labels?: { [key: string]: string; }; } /** * Template to be used for the generation of `WorkloadEntry` resources that belong to this `WorkloadGroup`. */ interface WorkloadGroupSpecTemplate { address?: string; /** * One or more labels associated with the endpoint. */ labels?: { [key: string]: string; }; /** * The locality associated with the endpoint. */ locality?: string; network?: string; /** * Set of ports associated with the endpoint. */