diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 4f3f4f12477..0f2b89e3446 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -33,7 +33,7 @@ individuals and will be valid for 1 year from the start date. - Envoy core proxy maintainers [Member: Matt Klein] - Tetrate [Member: Varun Talwar; End Date: 5/16/2023] - VMware [Member: Winnie Kwon; End Date: 5/16/2023] -- Ambassador Labs [Member: Richard Li; End Date: 5/16/2023] +- Ambassador Labs [Member: Alex Gervais; End Date: 5/16/2023] - Fidelity Investments [Member: Venkat Kasisomayajula / Rajarajan Pudupatti Sundari Jeyakodi; End Date: 5/16/2023] - Tencent Holdings Limited [Member: Xunzhuo Liu; End Date: 5/16/2023] diff --git a/api/config/v1alpha1/shared_types.go b/api/config/v1alpha1/shared_types.go index b2405bfe28a..261711771d7 100644 --- a/api/config/v1alpha1/shared_types.go +++ b/api/config/v1alpha1/shared_types.go @@ -120,17 +120,21 @@ type KubernetesContainerSpec struct { // ServiceType string describes ingress methods for a service // +enum -// +kubebuilder:validation:Enum=LoadBalancer;ClusterIP +// +kubebuilder:validation:Enum=ClusterIP;LoadBalancer;NodePort type ServiceType string const ( + // ServiceTypeClusterIP means a service will only be accessible inside the + // cluster, via the cluster IP. + ServiceTypeClusterIP ServiceType = "ClusterIP" + // ServiceTypeLoadBalancer means a service will be exposed via an // external load balancer (if the cloud provider supports it). ServiceTypeLoadBalancer ServiceType = "LoadBalancer" - // ServiceTypeClusterIP means a service will only be accessible inside the - // cluster, via the cluster IP. - ServiceTypeClusterIP ServiceType = "ClusterIP" + // ServiceTypeNodePort means a service will be exposed on each Kubernetes Node + // at a static Port, common across all Nodes. + ServiceTypeNodePort ServiceType = "NodePort" ) // KubernetesServiceSpec defines the desired state of the Kubernetes service resource. @@ -142,9 +146,10 @@ type KubernetesServiceSpec struct { Annotations map[string]string `json:"annotations,omitempty"` // Type determines how the Service is exposed. Defaults to LoadBalancer. - // Valid options are ClusterIP and LoadBalancer. + // Valid options are ClusterIP, LoadBalancer and NodePort. // "LoadBalancer" means a service will be exposed via an external load balancer (if the cloud provider supports it). // "ClusterIP" means a service will only be accessible inside the cluster, via the cluster IP. + // "NodePort" means a service will be exposed on a static Port on all Nodes of the cluster. // +kubebuilder:default:="LoadBalancer" // +optional Type *ServiceType `json:"type,omitempty"` diff --git a/api/config/v1alpha1/validate.go b/api/config/v1alpha1/validate.go index fcb368e377d..523ccb3c8d3 100644 --- a/api/config/v1alpha1/validate.go +++ b/api/config/v1alpha1/validate.go @@ -74,7 +74,9 @@ func validateServiceType(spec *EnvoyProxySpec) []error { var errs []error if spec.Provider.Kubernetes != nil && spec.Provider.Kubernetes.EnvoyService != nil { if serviceType := spec.Provider.Kubernetes.EnvoyService.Type; serviceType != nil { - if *serviceType != ServiceTypeLoadBalancer && *serviceType != ServiceTypeClusterIP { + if *serviceType != ServiceTypeLoadBalancer && + *serviceType != ServiceTypeClusterIP && + *serviceType != ServiceTypeNodePort { errs = append(errs, fmt.Errorf("unsupported envoy service type %v", serviceType)) } } diff --git a/api/config/v1alpha1/validate_test.go b/api/config/v1alpha1/validate_test.go index a4935f6ebec..4d978e6658c 100644 --- a/api/config/v1alpha1/validate_test.go +++ b/api/config/v1alpha1/validate_test.go @@ -123,7 +123,7 @@ func TestValidateEnvoyProxy(t *testing.T) { }, }, }, - expected: false, + expected: true, }, { name: "valid envoy service type 'LoadBalancer'", diff --git a/charts/gateway-helm/crds/generated/config.gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/crds/generated/config.gateway.envoyproxy.io_envoyproxies.yaml index c4638d09b5f..af23265b802 100644 --- a/charts/gateway-helm/crds/generated/config.gateway.envoyproxy.io_envoyproxies.yaml +++ b/charts/gateway-helm/crds/generated/config.gateway.envoyproxy.io_envoyproxies.yaml @@ -1800,15 +1800,17 @@ spec: type: default: LoadBalancer description: Type determines how the Service is exposed. - Defaults to LoadBalancer. Valid options are ClusterIP - and LoadBalancer. "LoadBalancer" means a service will - be exposed via an external load balancer (if the cloud - provider supports it). "ClusterIP" means a service will - only be accessible inside the cluster, via the cluster - IP. + Defaults to LoadBalancer. Valid options are ClusterIP, + LoadBalancer and NodePort. "LoadBalancer" means a service + will be exposed via an external load balancer (if the + cloud provider supports it). "ClusterIP" means a service + will only be accessible inside the cluster, via the + cluster IP. "NodePort" means a service will be exposed + on a static Port on all Nodes of the cluster. enum: - - LoadBalancer - ClusterIP + - LoadBalancer + - NodePort type: string type: object type: object diff --git a/charts/gateway-helm/templates/generated/rbac/roles.yaml b/charts/gateway-helm/templates/generated/rbac/roles.yaml index f2e5a4affde..202481b5c5e 100644 --- a/charts/gateway-helm/templates/generated/rbac/roles.yaml +++ b/charts/gateway-helm/templates/generated/rbac/roles.yaml @@ -9,6 +9,7 @@ rules: - "" resources: - namespaces + - nodes - secrets - services verbs: diff --git a/docs/latest/api/config_types.md b/docs/latest/api/config_types.md index d52e290d998..0e74eadc400 100644 --- a/docs/latest/api/config_types.md +++ b/docs/latest/api/config_types.md @@ -314,7 +314,7 @@ _Appears in:_ | Field | Description | | --- | --- | | `annotations` _object (keys:string, values:string)_ | Annotations that should be appended to the service. By default, no annotations are appended. | -| `type` _[ServiceType](#servicetype)_ | Type determines how the Service is exposed. Defaults to LoadBalancer. Valid options are ClusterIP and LoadBalancer. "LoadBalancer" means a service will be exposed via an external load balancer (if the cloud provider supports it). "ClusterIP" means a service will only be accessible inside the cluster, via the cluster IP. | +| `type` _[ServiceType](#servicetype)_ | Type determines how the Service is exposed. Defaults to LoadBalancer. Valid options are ClusterIP, LoadBalancer and NodePort. "LoadBalancer" means a service will be exposed via an external load balancer (if the cloud provider supports it). "ClusterIP" means a service will only be accessible inside the cluster, via the cluster IP. "NodePort" means a service will be exposed on a static Port on all Nodes of the cluster. | ## LogComponent diff --git a/internal/cmd/egctl/config.go b/internal/cmd/egctl/config.go index bd70744275d..f28111b1e4c 100644 --- a/internal/cmd/egctl/config.go +++ b/internal/cmd/egctl/config.go @@ -6,13 +6,17 @@ package egctl import ( + "encoding/json" "fmt" "io" "net/http" + "sync" adminv3 "github.com/envoyproxy/go-control-plane/envoy/admin/v3" + "github.com/tetratelabs/multierror" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/reflect/protoreflect" + corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/yaml" @@ -21,9 +25,10 @@ import ( ) var ( - output string - podName string - podNamespace string + output string + podName string + podNamespace string + labelSelectors []string ) const ( @@ -31,56 +36,122 @@ const ( containerName = "envoy" // TODO: make this configurable until EG support ) -func retrieveConfigDump(args []string, includeEds bool) (*adminv3.ConfigDump, error) { - if len(args) == 0 { - return nil, fmt.Errorf("pod name is required") - } +type aggregatedConfigDump map[string]map[string]protoreflect.ProtoMessage + +func retrieveConfigDump(args []string, includeEds bool, configType envoyConfigType) (aggregatedConfigDump, error) { + if len(labelSelectors) == 0 { + if len(args) == 0 { + return nil, fmt.Errorf("pod name is required") + } - podName = args[0] + podName = args[0] - if podName == "" { - return nil, fmt.Errorf("pod name is required") + if podName == "" { + return nil, fmt.Errorf("pod name is required") + } } if podNamespace == "" { return nil, fmt.Errorf("pod namespace is required") } - fw, err := portForwarder(types.NamespacedName{ - Namespace: podNamespace, - Name: podName, - }) + cli, err := getCLIClient() if err != nil { return nil, err } - if err := fw.Start(); err != nil { - return nil, err - } - defer fw.Stop() - configDump, err := extractConfigDump(fw, includeEds) + pods, err := fetchRunningEnvoyPods(cli, types.NamespacedName{Namespace: podNamespace, Name: podName}, labelSelectors) if err != nil { return nil, err } - return configDump, nil -} + podConfigDumps := make(aggregatedConfigDump, 0) + // Initialize the map with namespaces + for _, pod := range pods { + if _, ok := podConfigDumps[pod.Namespace]; !ok { + podConfigDumps[pod.Namespace] = make(map[string]protoreflect.ProtoMessage) + } + } -func portForwarder(nn types.NamespacedName) (kube.PortForwarder, error) { - c, err := kube.NewCLIClient(options.DefaultConfigFlags.ToRawKubeConfigLoader()) - if err != nil { - return nil, fmt.Errorf("build CLI client fail: %w", err) + var errs error + var wg sync.WaitGroup + wg.Add(len(pods)) + for _, pod := range pods { + pod := pod + go func() { + fw, err := portForwarder(cli, pod) + if err != nil { + errs = multierror.Append(errs, err) + return + } + + if err := fw.Start(); err != nil { + errs = multierror.Append(errs, err) + return + } + defer fw.Stop() + defer wg.Done() + + configDump, err := extractConfigDump(fw, includeEds, configType) + if err != nil { + errs = multierror.Append(errs, err) + return + } + + podConfigDumps[pod.Namespace][pod.Name] = configDump + }() } - pod, err := c.Pod(nn) - if err != nil { - return nil, fmt.Errorf("get pod %s fail: %w", nn, err) + wg.Wait() + if errs != nil { + return nil, errs + } + + return podConfigDumps, nil +} + +// fetchRunningEnvoyPods gets the Pods, either based on the NamespacedName or the labelSelectors. +// It further filters out only those Pods that are in "Running" state. +// labelSelectors, if provided, take precedence over the pod NamespacedName. +func fetchRunningEnvoyPods(c kube.CLIClient, nn types.NamespacedName, labelSelectors []string) ([]types.NamespacedName, error) { + var pods []corev1.Pod + + if len(labelSelectors) > 0 { + podList, err := c.PodsForSelector(nn.Namespace, labelSelectors...) + if err != nil { + return nil, fmt.Errorf("get pod %s fail: %w", nn, err) + } + + if len(podList.Items) == 0 { + return nil, fmt.Errorf("no Pods found for label selectors %+v", labelSelectors) + } + + pods = podList.Items + } else { + pod, err := c.Pod(nn) + if err != nil { + return nil, fmt.Errorf("get pod %s fail: %w", nn, err) + } + + pods = []corev1.Pod{*pod} } - if pod.Status.Phase != "Running" { - return nil, fmt.Errorf("pod %s is not running", nn) + + podsNamespacedNames := []types.NamespacedName{} + for _, pod := range pods { + podNsName := types.NamespacedName{Namespace: pod.Namespace, Name: pod.Name} + if pod.Status.Phase != "Running" { + return podsNamespacedNames, fmt.Errorf("pod %s is not running", podNsName) + } + + podsNamespacedNames = append(podsNamespacedNames, podNsName) } - fw, err := kube.NewLocalPortForwarder(c, nn, 0, adminPort) + return podsNamespacedNames, nil +} + +// portForwarder returns a port forwarder instance for a single Pod. +func portForwarder(cli kube.CLIClient, nn types.NamespacedName) (kube.PortForwarder, error) { + fw, err := kube.NewLocalPortForwarder(cli, nn, 0, adminPort) if err != nil { return nil, err } @@ -88,36 +159,49 @@ func portForwarder(nn types.NamespacedName) (kube.PortForwarder, error) { return fw, nil } -func marshalEnvoyProxyConfig(configDump protoreflect.ProtoMessage, output string) ([]byte, error) { - out, err := protojson.MarshalOptions{ - Multiline: true, - }.Marshal(configDump) +// getCLIClient returns a new kubernetes CLI Client. +func getCLIClient() (kube.CLIClient, error) { + c, err := kube.NewCLIClient(options.DefaultConfigFlags.ToRawKubeConfigLoader()) if err != nil { - return nil, err + return nil, fmt.Errorf("build CLI client fail: %w", err) } - if output == "yaml" { - out, err = yaml.JSONToYAML(out) - if err != nil { - return nil, err + return c, nil +} + +func marshalEnvoyProxyConfig(configDump aggregatedConfigDump, output string) ([]byte, error) { + configDumpMap := make(map[string]map[string]interface{}) + for ns, nsConfigs := range configDump { + configDumpMap[ns] = make(map[string]interface{}) + for pod, podConfigs := range nsConfigs { + var newConfig interface{} + if err := json.Unmarshal([]byte(protojson.MarshalOptions{Multiline: false}.Format(podConfigs)), &newConfig); err != nil { + return nil, err + } + configDumpMap[ns][pod] = newConfig } } - return out, nil + out, err := json.MarshalIndent(configDumpMap, "", " ") + if output == "yaml" { + return yaml.JSONToYAML(out) + } + + return out, err } -func extractConfigDump(fw kube.PortForwarder, includeEds bool) (*adminv3.ConfigDump, error) { +func extractConfigDump(fw kube.PortForwarder, includeEds bool, configType envoyConfigType) (protoreflect.ProtoMessage, error) { out, err := configDumpRequest(fw.Address(), includeEds) if err != nil { return nil, err } - configDump := &adminv3.ConfigDump{} - if err := protojson.Unmarshal(out, configDump); err != nil { + configDumpResponse := &adminv3.ConfigDump{} + if err := protojson.Unmarshal(out, configDumpResponse); err != nil { return nil, err } - return configDump, nil + return findXDSResourceFromConfigDump(configType, configDumpResponse) } func configDumpRequest(address string, includeEds bool) ([]byte, error) { diff --git a/internal/cmd/egctl/config_bootstrap.go b/internal/cmd/egctl/config_bootstrap.go index 78a53ae08c2..aaf93dbbc5e 100644 --- a/internal/cmd/egctl/config_bootstrap.go +++ b/internal/cmd/egctl/config_bootstrap.go @@ -21,6 +21,9 @@ func bootstrapConfigCmd() *cobra.Command { Example: ` # Retrieve summary about bootstrap configuration for a given pod from Envoy. egctl config envoy-proxy bootstrap -n + # Retrieve summary about bootstrap configuration for a pod matching label selectors + egctl config envoy-proxy bootstrap --labels gateway.envoyproxy.io/owning-gateway-name=eg -l gateway.envoyproxy.io/owning-gateway-namespace=default + # Retrieve full configuration dump as YAML egctl config envoy-proxy bootstrap -n -o yaml @@ -36,17 +39,12 @@ func bootstrapConfigCmd() *cobra.Command { } func runBootstrapConfig(c *cobra.Command, args []string) error { - configDump, err := retrieveConfigDump(args, false) - if err != nil { - return err - } - - bootstrap, err := findXDSResourceFromConfigDump(BootstrapEnvoyConfigType, configDump) + configDump, err := retrieveConfigDump(args, false, BootstrapEnvoyConfigType) if err != nil { return err } - out, err := marshalEnvoyProxyConfig(bootstrap, output) + out, err := marshalEnvoyProxyConfig(configDump, output) if err != nil { return err } diff --git a/internal/cmd/egctl/config_cluster.go b/internal/cmd/egctl/config_cluster.go index ac637d0a639..bcf1a6fb7db 100644 --- a/internal/cmd/egctl/config_cluster.go +++ b/internal/cmd/egctl/config_cluster.go @@ -21,6 +21,9 @@ func clusterConfigCmd() *cobra.Command { Example: ` # Retrieve summary about cluster configuration for a given pod from Envoy. egctl config envoy-proxy cluster -n + # Retrieve summary about cluster configuration for a pod matching label selectors + egctl config envoy-proxy cluster --labels gateway.envoyproxy.io/owning-gateway-name=eg -l gateway.envoyproxy.io/owning-gateway-namespace=default + # Retrieve full configuration dump as YAML egctl config envoy-proxy cluster -n -o yaml @@ -36,17 +39,12 @@ func clusterConfigCmd() *cobra.Command { } func runClusterConfig(c *cobra.Command, args []string) error { - configDump, err := retrieveConfigDump(args, false) - if err != nil { - return err - } - - cluster, err := findXDSResourceFromConfigDump(ClusterEnvoyConfigType, configDump) + configDump, err := retrieveConfigDump(args, false, ClusterEnvoyConfigType) if err != nil { return err } - out, err := marshalEnvoyProxyConfig(cluster, output) + out, err := marshalEnvoyProxyConfig(configDump, output) if err != nil { return err } diff --git a/internal/cmd/egctl/config_cmd.go b/internal/cmd/egctl/config_cmd.go index c948f01574a..b67d6a24b83 100644 --- a/internal/cmd/egctl/config_cmd.go +++ b/internal/cmd/egctl/config_cmd.go @@ -29,6 +29,7 @@ func newConfigCommand() *cobra.Command { cfgCommand.PersistentFlags().StringVarP(&output, "output", "o", "json", "One of 'yaml' or 'json'") cfgCommand.PersistentFlags().StringVarP(&podNamespace, "namespace", "n", "envoy-gateway-system", "Namespace where envoy proxy pod are installed.") + cfgCommand.PersistentFlags().StringArrayVarP(&labelSelectors, "labels", "l", nil, "Labels to select the envoy proxy pod.") return cfgCommand } @@ -58,6 +59,9 @@ func allConfigCmd() *cobra.Command { Example: ` # Retrieve summary about all configuration for a given pod from Envoy. egctl config envoy-proxy all -n + # Retrieve summary about all configuration for a pod matching label selectors + egctl config envoy-proxy all --labels gateway.envoyproxy.io/owning-gateway-name=eg -l gateway.envoyproxy.io/owning-gateway-namespace=default + # Retrieve full configuration dump as YAML egctl config envoy-proxy all -n -o yaml @@ -73,7 +77,7 @@ func allConfigCmd() *cobra.Command { } func runAllConfig(c *cobra.Command, args []string) error { - configDump, err := retrieveConfigDump(args, true) + configDump, err := retrieveConfigDump(args, true, AllEnvoyConfigType) if err != nil { return err } diff --git a/internal/cmd/egctl/config_endpoint.go b/internal/cmd/egctl/config_endpoint.go index 815551ab0e1..c5a50667edd 100644 --- a/internal/cmd/egctl/config_endpoint.go +++ b/internal/cmd/egctl/config_endpoint.go @@ -21,6 +21,9 @@ func endpointConfigCmd() *cobra.Command { Example: ` # Retrieve summary about endpoint configuration for a given pod from Envoy. egctl config envoy-proxy endpoint -n + # Retrieve summary about endpoint configuration for a pod matching label selectors + egctl config envoy-proxy endpoint --labels gateway.envoyproxy.io/owning-gateway-name=eg -l gateway.envoyproxy.io/owning-gateway-namespace=default + # Retrieve configuration dump as YAML egctl config envoy-proxy endpoint -n -o yaml @@ -36,17 +39,12 @@ func endpointConfigCmd() *cobra.Command { } func runEndpointConfig(c *cobra.Command, args []string) error { - configDump, err := retrieveConfigDump(args, true) - if err != nil { - return err - } - - endpoint, err := findXDSResourceFromConfigDump(EndpointEnvoyConfigType, configDump) + configDump, err := retrieveConfigDump(args, true, EndpointEnvoyConfigType) if err != nil { return err } - out, err := marshalEnvoyProxyConfig(endpoint, output) + out, err := marshalEnvoyProxyConfig(configDump, output) if err != nil { return err } diff --git a/internal/cmd/egctl/config_listener.go b/internal/cmd/egctl/config_listener.go index 751bfa00fde..d45ed6c30fe 100644 --- a/internal/cmd/egctl/config_listener.go +++ b/internal/cmd/egctl/config_listener.go @@ -21,6 +21,9 @@ func listenerConfigCmd() *cobra.Command { Example: ` # Retrieve summary about listener configuration for a given pod from Envoy. egctl config envoy-proxy listener -n + # Retrieve summary about listener configuration for a pod matching label selectors + egctl config envoy-proxy listener --labels gateway.envoyproxy.io/owning-gateway-name=eg -l gateway.envoyproxy.io/owning-gateway-namespace=default + # Retrieve full configuration dump as YAML egctl config envoy-proxy listener -n -o yaml @@ -36,17 +39,12 @@ func listenerConfigCmd() *cobra.Command { } func runListenerConfig(c *cobra.Command, args []string) error { - configDump, err := retrieveConfigDump(args, false) - if err != nil { - return err - } - - listener, err := findXDSResourceFromConfigDump(ListenerEnvoyConfigType, configDump) + configDump, err := retrieveConfigDump(args, false, ListenerEnvoyConfigType) if err != nil { return err } - out, err := marshalEnvoyProxyConfig(listener, output) + out, err := marshalEnvoyProxyConfig(configDump, output) if err != nil { return err } diff --git a/internal/cmd/egctl/config_route.go b/internal/cmd/egctl/config_route.go index 259d59af211..c41bce8585f 100644 --- a/internal/cmd/egctl/config_route.go +++ b/internal/cmd/egctl/config_route.go @@ -21,6 +21,9 @@ func routeConfigCmd() *cobra.Command { Example: ` # Retrieve summary about route configuration for a given pod from Envoy. egctl config envoy-proxy route -n + # Retrieve summary about route configuration for a pod matching label selectors + egctl config envoy-proxy route --labels gateway.envoyproxy.io/owning-gateway-name=eg -l gateway.envoyproxy.io/owning-gateway-namespace=default + # Retrieve full configuration dump as YAML egctl config envoy-proxy route -n -o yaml @@ -36,17 +39,12 @@ func routeConfigCmd() *cobra.Command { } func runRouteConfig(c *cobra.Command, args []string) error { - configDump, err := retrieveConfigDump(args, false) - if err != nil { - return err - } - - route, err := findXDSResourceFromConfigDump(RouteEnvoyConfigType, configDump) + configDump, err := retrieveConfigDump(args, false, RouteEnvoyConfigType) if err != nil { return err } - out, err := marshalEnvoyProxyConfig(route, output) + out, err := marshalEnvoyProxyConfig(configDump, output) if err != nil { return err } diff --git a/internal/cmd/egctl/config_test.go b/internal/cmd/egctl/config_test.go index 36c642f938b..92c45fec9ee 100644 --- a/internal/cmd/egctl/config_test.go +++ b/internal/cmd/egctl/config_test.go @@ -15,11 +15,17 @@ import ( "testing" "github.com/stretchr/testify/assert" + "google.golang.org/protobuf/reflect/protoreflect" kube "github.com/envoyproxy/gateway/internal/kubernetes" netutil "github.com/envoyproxy/gateway/internal/utils/net" ) +const ( + defaultNamespace = "default" + defaultEnvoyGatewayPodName = "eg" +) + var _ kube.PortForwarder = &fakePortForwarder{} type fakePortForwarder struct { @@ -95,9 +101,10 @@ func TestExtractAllConfigDump(t *testing.T) { for _, tc := range cases { t.Run(tc.expected, func(t *testing.T) { - configDump, err := extractConfigDump(fw, true) + configDump, err := extractConfigDump(fw, true, AllEnvoyConfigType) assert.NoError(t, err) - got, err := marshalEnvoyProxyConfig(configDump, tc.output) + aggregated := sampleAggregatedConfigDump(configDump) + got, err := marshalEnvoyProxyConfig(aggregated, tc.output) assert.NoError(t, err) out, err := readOutputConfig(tc.expected) assert.NoError(t, err) @@ -176,11 +183,10 @@ func TestExtractSubResourcesConfigDump(t *testing.T) { for _, tc := range cases { t.Run(tc.expected, func(t *testing.T) { - configDump, err := extractConfigDump(fw, false) - assert.NoError(t, err) - resource, err := findXDSResourceFromConfigDump(tc.resourceType, configDump) + configDump, err := extractConfigDump(fw, false, tc.resourceType) assert.NoError(t, err) - got, err := marshalEnvoyProxyConfig(resource, tc.output) + aggregated := sampleAggregatedConfigDump(configDump) + got, err := marshalEnvoyProxyConfig(aggregated, tc.output) assert.NoError(t, err) out, err := readOutputConfig(tc.expected) assert.NoError(t, err) @@ -195,6 +201,40 @@ func TestExtractSubResourcesConfigDump(t *testing.T) { fw.Stop() } +func TestLabelSelectorBadInput(t *testing.T) { + podNamespace = "default" + + cases := []struct { + name string + args []string + labels []string + }{ + { + name: "no label, no pod name", + args: []string{}, + labels: []string{}, + }, + { + name: "wrong label, no pod name", + args: []string{}, + labels: []string{"foo=bar"}, + }, + { + name: "no label, wrong pod name", + args: []string{"eg"}, + labels: []string{}, + }, + } + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + labelSelectors = tc.labels + _, err := retrieveConfigDump(tc.args, false, AllEnvoyConfigType) + assert.True(t, err != nil, "error not found") + }) + } +} + func readInputConfig(filename string) ([]byte, error) { b, err := os.ReadFile(path.Join("testdata", "config", "in", filename)) if err != nil { @@ -210,3 +250,11 @@ func readOutputConfig(filename string) ([]byte, error) { } return b, nil } + +func sampleAggregatedConfigDump(configDump protoreflect.ProtoMessage) aggregatedConfigDump { + return aggregatedConfigDump{ + defaultNamespace: { + defaultEnvoyGatewayPodName: configDump, + }, + } +} diff --git a/internal/cmd/egctl/testdata/config/out/out.all.json b/internal/cmd/egctl/testdata/config/out/out.all.json index d0e4ad07df5..8038f43f563 100644 --- a/internal/cmd/egctl/testdata/config/out/out.all.json +++ b/internal/cmd/egctl/testdata/config/out/out.all.json @@ -1,1207 +1,1177 @@ { - "configs": [{ - "@type": "type.googleapis.com/envoy.admin.v3.BootstrapConfigDump", - "bootstrap": { - "node": { - "userAgentName": "envoy", - "userAgentBuildVersion": { - "version": { - "majorNumber": 1, - "minorNumber": 26 + "default": { + "eg": { + "configs": [{ + "@type": "type.googleapis.com/envoy.admin.v3.BootstrapConfigDump", + "bootstrap": { + "node": { + "userAgentName": "envoy", + "userAgentBuildVersion": { + "version": { + "majorNumber": 1, + "minorNumber": 26 + }, + "metadata": { + "build.label": "dev", + "build.type": "RELEASE", + "revision.sha": "14111e3c62d3d38b0c921cb7011fd0a94e880aed", + "revision.status": "Clean", + "ssl.version": "BoringSSL" + } + }, + "extensions": [{ + "name": "envoy.filters.connection_pools.tcp.generic", + "category": "envoy.upstreams", + "typeUrls": ["envoy.extensions.upstreams.tcp.generic.v3.GenericConnectionPoolProto"] + }, { + "name": "envoy.rate_limit_descriptors.expr", + "category": "envoy.rate_limit_descriptors", + "typeUrls": ["envoy.extensions.rate_limit_descriptors.expr.v3.Descriptor"] + }, { + "name": "envoy.matching.inputs.destination_ip", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput"] + }, { + "name": "envoy.matching.inputs.destination_port", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput"] + }, { + "name": "envoy.matching.inputs.direct_source_ip", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput"] + }, { + "name": "envoy.matching.inputs.dns_san", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput"] + }, { + "name": "envoy.matching.inputs.request_headers", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpRequestHeaderMatchInput"] + }, { + "name": "envoy.matching.inputs.request_trailers", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpRequestTrailerMatchInput"] + }, { + "name": "envoy.matching.inputs.response_headers", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpResponseHeaderMatchInput"] + }, { + "name": "envoy.matching.inputs.response_trailers", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpResponseTrailerMatchInput"] + }, { + "name": "envoy.matching.inputs.server_name", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ServerNameInput"] + }, { + "name": "envoy.matching.inputs.source_ip", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceIPInput"] + }, { + "name": "envoy.matching.inputs.source_port", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourcePortInput"] + }, { + "name": "envoy.matching.inputs.source_type", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput"] + }, { + "name": "envoy.matching.inputs.status_code_class_input", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpResponseStatusCodeClassMatchInput"] + }, { + "name": "envoy.matching.inputs.status_code_input", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpResponseStatusCodeMatchInput"] + }, { + "name": "envoy.matching.inputs.subject", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput"] + }, { + "name": "envoy.matching.inputs.uri_san", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput"] + }, { + "name": "query_params", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpRequestQueryParamMatchInput"] + }, { + "name": "envoy.tls.cert_validator.default", + "category": "envoy.tls.cert_validator" + }, { + "name": "envoy.tls.cert_validator.spiffe", + "category": "envoy.tls.cert_validator" + }, { + "name": "envoy.path.match.uri_template.uri_template_matcher", + "category": "envoy.path.match", + "typeUrls": ["envoy.extensions.path.match.uri_template.v3.UriTemplateMatchConfig"] + }, { + "name": "envoy.http.original_ip_detection.custom_header", + "category": "envoy.http.original_ip_detection", + "typeUrls": ["envoy.extensions.http.original_ip_detection.custom_header.v3.CustomHeaderConfig"] + }, { + "name": "envoy.http.original_ip_detection.xff", + "category": "envoy.http.original_ip_detection", + "typeUrls": ["envoy.extensions.http.original_ip_detection.xff.v3.XffConfig"] + }, { + "name": "envoy.buffer", + "category": "envoy.filters.http.upstream" + }, { + "name": "envoy.filters.http.admission_control", + "category": "envoy.filters.http.upstream", + "typeUrls": ["envoy.extensions.filters.http.admission_control.v3.AdmissionControl"] + }, { + "name": "envoy.filters.http.buffer", + "category": "envoy.filters.http.upstream", + "typeUrls": ["envoy.extensions.filters.http.buffer.v3.Buffer", "envoy.extensions.filters.http.buffer.v3.BufferPerRoute"] + }, { + "name": "envoy.filters.http.upstream_codec", + "category": "envoy.filters.http.upstream", + "typeUrls": ["envoy.extensions.filters.http.upstream_codec.v3.UpstreamCodec"] + }, { + "name": "envoy.route.early_data_policy.default", + "category": "envoy.route.early_data_policy", + "typeUrls": ["envoy.extensions.early_data.v3.DefaultEarlyDataPolicy"] + }, { + "name": "envoy.compression.brotli.compressor", + "category": "envoy.compression.compressor", + "typeUrls": ["envoy.extensions.compression.brotli.compressor.v3.Brotli"] + }, { + "name": "envoy.compression.gzip.compressor", + "category": "envoy.compression.compressor", + "typeUrls": ["envoy.extensions.compression.gzip.compressor.v3.Gzip"] + }, { + "name": "envoy.compression.zstd.compressor", + "category": "envoy.compression.compressor", + "typeUrls": ["envoy.extensions.compression.zstd.compressor.v3.Zstd"] + }, { + "name": "envoy.compression.brotli.decompressor", + "category": "envoy.compression.decompressor", + "typeUrls": ["envoy.extensions.compression.brotli.decompressor.v3.Brotli"] + }, { + "name": "envoy.compression.gzip.decompressor", + "category": "envoy.compression.decompressor", + "typeUrls": ["envoy.extensions.compression.gzip.decompressor.v3.Gzip"] + }, { + "name": "envoy.compression.zstd.decompressor", + "category": "envoy.compression.decompressor", + "typeUrls": ["envoy.extensions.compression.zstd.decompressor.v3.Zstd"] + }, { + "name": "envoy.wasm.runtime.null", + "category": "envoy.wasm.runtime" + }, { + "name": "envoy.wasm.runtime.v8", + "category": "envoy.wasm.runtime" + }, { + "name": "envoy.dog_statsd", + "category": "envoy.stats_sinks" + }, { + "name": "envoy.graphite_statsd", + "category": "envoy.stats_sinks" + }, { + "name": "envoy.metrics_service", + "category": "envoy.stats_sinks" + }, { + "name": "envoy.stat_sinks.dog_statsd", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.config.metrics.v3.DogStatsdSink"] + }, { + "name": "envoy.stat_sinks.graphite_statsd", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.extensions.stat_sinks.graphite_statsd.v3.GraphiteStatsdSink"] + }, { + "name": "envoy.stat_sinks.hystrix", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.config.metrics.v3.HystrixSink"] + }, { + "name": "envoy.stat_sinks.metrics_service", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.config.metrics.v3.MetricsServiceConfig"] + }, { + "name": "envoy.stat_sinks.statsd", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.config.metrics.v3.StatsdSink"] + }, { + "name": "envoy.stat_sinks.wasm", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.extensions.stat_sinks.wasm.v3.Wasm"] + }, { + "name": "envoy.statsd", + "category": "envoy.stats_sinks" + }, { + "name": "envoy.path.rewrite.uri_template.uri_template_rewriter", + "category": "envoy.path.rewrite", + "typeUrls": ["envoy.extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig"] + }, { + "name": "envoy.extensions.http.custom_response.local_response_policy", + "category": "envoy.http.custom_response", + "typeUrls": ["envoy.extensions.http.custom_response.local_response_policy.v3.LocalResponsePolicy"] + }, { + "name": "envoy.extensions.http.custom_response.redirect_policy", + "category": "envoy.http.custom_response", + "typeUrls": ["envoy.extensions.http.custom_response.redirect_policy.v3.RedirectPolicy"] + }, { + "name": "envoy.matching.actions.format_string", + "category": "envoy.matching.action", + "typeUrls": ["envoy.config.core.v3.SubstitutionFormatString"] + }, { + "name": "filter-chain-name", + "category": "envoy.matching.action", + "typeUrls": ["google.protobuf.StringValue"] + }, { + "name": "envoy.quic.deterministic_connection_id_generator", + "category": "envoy.quic.connection_id_generator", + "typeUrls": ["envoy.extensions.quic.connection_id_generator.v3.DeterministicConnectionIdGeneratorConfig"] + }, { + "name": "envoy.network.dns_resolver.cares", + "category": "envoy.network.dns_resolver", + "typeUrls": ["envoy.extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig"] + }, { + "name": "envoy.network.dns_resolver.getaddrinfo", + "category": "envoy.network.dns_resolver", + "typeUrls": ["envoy.extensions.network.dns_resolver.getaddrinfo.v3.GetAddrInfoDnsResolverConfig"] + }, { + "name": "envoy.bootstrap.internal_listener", + "category": "envoy.bootstrap", + "typeUrls": ["envoy.extensions.bootstrap.internal_listener.v3.InternalListener"] + }, { + "name": "envoy.bootstrap.wasm", + "category": "envoy.bootstrap", + "typeUrls": ["envoy.extensions.wasm.v3.WasmService"] + }, { + "name": "envoy.extensions.network.socket_interface.default_socket_interface", + "category": "envoy.bootstrap", + "typeUrls": ["envoy.extensions.network.socket_interface.v3.DefaultSocketInterface"] + }, { + "name": "envoy.filters.listener.http_inspector", + "category": "envoy.filters.listener", + "typeUrls": ["envoy.extensions.filters.listener.http_inspector.v3.HttpInspector"] + }, { + "name": "envoy.filters.listener.original_dst", + "category": "envoy.filters.listener", + "typeUrls": ["envoy.extensions.filters.listener.original_dst.v3.OriginalDst"] + }, { + "name": "envoy.filters.listener.original_src", + "category": "envoy.filters.listener", + "typeUrls": ["envoy.extensions.filters.listener.original_src.v3.OriginalSrc"] + }, { + "name": "envoy.filters.listener.proxy_protocol", + "category": "envoy.filters.listener", + "typeUrls": ["envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol"] + }, { + "name": "envoy.filters.listener.tls_inspector", + "category": "envoy.filters.listener", + "typeUrls": ["envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector"] + }, { + "name": "envoy.listener.http_inspector", + "category": "envoy.filters.listener" + }, { + "name": "envoy.listener.original_dst", + "category": "envoy.filters.listener" + }, { + "name": "envoy.listener.original_src", + "category": "envoy.filters.listener" + }, { + "name": "envoy.listener.proxy_protocol", + "category": "envoy.filters.listener" + }, { + "name": "envoy.listener.tls_inspector", + "category": "envoy.filters.listener" + }, { + "name": "envoy.matching.common_inputs.environment_variable", + "category": "envoy.matching.common_inputs", + "typeUrls": ["envoy.extensions.matching.common_inputs.environment_variable.v3.Config"] + }, { + "name": "envoy.matching.matchers.consistent_hashing", + "category": "envoy.matching.input_matchers", + "typeUrls": ["envoy.extensions.matching.input_matchers.consistent_hashing.v3.ConsistentHashing"] + }, { + "name": "envoy.matching.matchers.ip", + "category": "envoy.matching.input_matchers", + "typeUrls": ["envoy.extensions.matching.input_matchers.ip.v3.Ip"] + }, { + "name": "envoy.grpc_credentials.aws_iam", + "category": "envoy.grpc_credentials" + }, { + "name": "envoy.grpc_credentials.default", + "category": "envoy.grpc_credentials" + }, { + "name": "envoy.grpc_credentials.file_based_metadata", + "category": "envoy.grpc_credentials" + }, { + "name": "envoy.request_id.uuid", + "category": "envoy.request_id", + "typeUrls": ["envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig"] + }, { + "name": "envoy.load_balancing_policies.least_request", + "category": "envoy.load_balancing_policies", + "typeUrls": ["envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest"] + }, { + "name": "envoy.load_balancing_policies.maglev", + "category": "envoy.load_balancing_policies", + "typeUrls": ["envoy.extensions.load_balancing_policies.maglev.v3.Maglev"] + }, { + "name": "envoy.load_balancing_policies.random", + "category": "envoy.load_balancing_policies", + "typeUrls": ["envoy.extensions.load_balancing_policies.random.v3.Random"] + }, { + "name": "envoy.load_balancing_policies.ring_hash", + "category": "envoy.load_balancing_policies", + "typeUrls": ["envoy.extensions.load_balancing_policies.ring_hash.v3.RingHash"] + }, { + "name": "envoy.load_balancing_policies.round_robin", + "category": "envoy.load_balancing_policies", + "typeUrls": ["envoy.extensions.load_balancing_policies.round_robin.v3.RoundRobin"] + }, { + "name": "envoy.ip", + "category": "envoy.resolvers" + }, { + "name": "envoy.bandwidth_limit", + "category": "envoy.filters.http" + }, { + "name": "envoy.buffer", + "category": "envoy.filters.http" + }, { + "name": "envoy.cors", + "category": "envoy.filters.http" + }, { + "name": "envoy.csrf", + "category": "envoy.filters.http" + }, { + "name": "envoy.ext_authz", + "category": "envoy.filters.http" + }, { + "name": "envoy.ext_proc", + "category": "envoy.filters.http" + }, { + "name": "envoy.fault", + "category": "envoy.filters.http" + }, { + "name": "envoy.filters.http.adaptive_concurrency", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.adaptive_concurrency.v3.AdaptiveConcurrency"] + }, { + "name": "envoy.filters.http.admission_control", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.admission_control.v3.AdmissionControl"] + }, { + "name": "envoy.filters.http.alternate_protocols_cache", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.alternate_protocols_cache.v3.FilterConfig"] + }, { + "name": "envoy.filters.http.aws_lambda", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.aws_lambda.v3.Config", "envoy.extensions.filters.http.aws_lambda.v3.PerRouteConfig"] + }, { + "name": "envoy.filters.http.aws_request_signing", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.aws_request_signing.v3.AwsRequestSigning"] + }, { + "name": "envoy.filters.http.bandwidth_limit", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.bandwidth_limit.v3.BandwidthLimit"] + }, { + "name": "envoy.filters.http.buffer", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.buffer.v3.Buffer", "envoy.extensions.filters.http.buffer.v3.BufferPerRoute"] + }, { + "name": "envoy.filters.http.cache", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.cache.v3.CacheConfig"] + }, { + "name": "envoy.filters.http.cdn_loop", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.cdn_loop.v3.CdnLoopConfig"] + }, { + "name": "envoy.filters.http.composite", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.composite.v3.Composite"] + }, { + "name": "envoy.filters.http.compressor", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.compressor.v3.Compressor", "envoy.extensions.filters.http.compressor.v3.CompressorPerRoute"] + }, { + "name": "envoy.filters.http.connect_grpc_bridge", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"] + }, { + "name": "envoy.filters.http.cors", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.cors.v3.Cors", "envoy.extensions.filters.http.cors.v3.CorsPolicy"] + }, { + "name": "envoy.filters.http.csrf", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.csrf.v3.CsrfPolicy"] + }, { + "name": "envoy.filters.http.custom_response", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.custom_response.v3.CustomResponse"] + }, { + "name": "envoy.filters.http.decompressor", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.decompressor.v3.Decompressor"] + }, { + "name": "envoy.filters.http.dynamic_forward_proxy", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig", "envoy.extensions.filters.http.dynamic_forward_proxy.v3.PerRouteConfig"] + }, { + "name": "envoy.filters.http.ext_authz", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.ext_authz.v3.ExtAuthz", "envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute"] + }, { + "name": "envoy.filters.http.ext_proc", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.ext_proc.v3.ExtProcPerRoute", "envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor"] + }, { + "name": "envoy.filters.http.fault", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.fault.v3.HTTPFault"] + }, { + "name": "envoy.filters.http.file_system_buffer", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.file_system_buffer.v3.FileSystemBufferFilterConfig"] + }, { + "name": "envoy.filters.http.gcp_authn", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.gcp_authn.v3.GcpAuthnFilterConfig"] + }, { + "name": "envoy.filters.http.grpc_http1_bridge", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.grpc_http1_bridge.v3.Config"] + }, { + "name": "envoy.filters.http.grpc_http1_reverse_bridge", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfig", "envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfigPerRoute"] + }, { + "name": "envoy.filters.http.grpc_json_transcoder", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"] + }, { + "name": "envoy.filters.http.grpc_stats", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.grpc_stats.v3.FilterConfig"] + }, { + "name": "envoy.filters.http.grpc_web", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"] + }, { + "name": "envoy.filters.http.header_to_metadata", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.header_to_metadata.v3.Config"] + }, { + "name": "envoy.filters.http.health_check", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.health_check.v3.HealthCheck"] + }, { + "name": "envoy.filters.http.ip_tagging", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.ip_tagging.v3.IPTagging"] + }, { + "name": "envoy.filters.http.jwt_authn", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication", "envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig"] + }, { + "name": "envoy.filters.http.local_ratelimit", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit"] + }, { + "name": "envoy.filters.http.lua", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.lua.v3.Lua", "envoy.extensions.filters.http.lua.v3.LuaPerRoute"] + }, { + "name": "envoy.filters.http.match_delegate", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.common.matching.v3.ExtensionWithMatcher"] + }, { + "name": "envoy.filters.http.oauth2", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.oauth2.v3.OAuth2"] + }, { + "name": "envoy.filters.http.on_demand", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.on_demand.v3.OnDemand", "envoy.extensions.filters.http.on_demand.v3.PerRouteConfig"] + }, { + "name": "envoy.filters.http.original_src", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.original_src.v3.OriginalSrc"] + }, { + "name": "envoy.filters.http.rate_limit_quota", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig", "envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaOverride"] + }, { + "name": "envoy.filters.http.ratelimit", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.ratelimit.v3.RateLimit", "envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute"] + }, { + "name": "envoy.filters.http.rbac", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.rbac.v3.RBAC", "envoy.extensions.filters.http.rbac.v3.RBACPerRoute"] + }, { + "name": "envoy.filters.http.router", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.router.v3.Router"] + }, { + "name": "envoy.filters.http.set_metadata", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.set_metadata.v3.Config"] + }, { + "name": "envoy.filters.http.stateful_session", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.stateful_session.v3.StatefulSession", "envoy.extensions.filters.http.stateful_session.v3.StatefulSessionPerRoute"] + }, { + "name": "envoy.filters.http.tap", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.tap.v3.Tap"] + }, { + "name": "envoy.filters.http.wasm", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.wasm.v3.Wasm"] + }, { + "name": "envoy.grpc_http1_bridge", + "category": "envoy.filters.http" + }, { + "name": "envoy.grpc_json_transcoder", + "category": "envoy.filters.http" + }, { + "name": "envoy.grpc_web", + "category": "envoy.filters.http" + }, { + "name": "envoy.health_check", + "category": "envoy.filters.http" + }, { + "name": "envoy.ip_tagging", + "category": "envoy.filters.http" + }, { + "name": "envoy.local_rate_limit", + "category": "envoy.filters.http" + }, { + "name": "envoy.lua", + "category": "envoy.filters.http" + }, { + "name": "envoy.rate_limit", + "category": "envoy.filters.http" + }, { + "name": "envoy.router", + "category": "envoy.filters.http" + }, { + "name": "envoy.access_loggers.file", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.file.v3.FileAccessLog"] + }, { + "name": "envoy.access_loggers.http_grpc", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig"] + }, { + "name": "envoy.access_loggers.open_telemetry", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig"] + }, { + "name": "envoy.access_loggers.stderr", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.stream.v3.StderrAccessLog"] + }, { + "name": "envoy.access_loggers.stdout", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.stream.v3.StdoutAccessLog"] + }, { + "name": "envoy.access_loggers.tcp_grpc", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig"] + }, { + "name": "envoy.access_loggers.wasm", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.wasm.v3.WasmAccessLog"] + }, { + "name": "envoy.file_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.http_grpc_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.open_telemetry_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.stderr_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.stdout_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.tcp_grpc_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.wasm_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.config.validators.minimum_clusters", + "category": "envoy.config.validators" + }, { + "name": "envoy.config.validators.minimum_clusters_validator", + "category": "envoy.config.validators", + "typeUrls": ["envoy.extensions.config.validators.minimum_clusters.v3.MinimumClustersValidator"] + }, { + "name": "envoy.http.header_validators.envoy_default", + "category": "envoy.http.header_validators", + "typeUrls": ["envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig"] + }, { + "name": "dubbo.hessian2", + "category": "envoy.dubbo_proxy.serializers" + }, { + "name": "quic.http_server_connection.default", + "category": "quic.http_server_connection" + }, { + "name": "envoy.transport_sockets.alts", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.alts.v3.Alts"] + }, { + "name": "envoy.transport_sockets.quic", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport"] + }, { + "name": "envoy.transport_sockets.raw_buffer", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer"] + }, { + "name": "envoy.transport_sockets.starttls", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.starttls.v3.StartTlsConfig"] + }, { + "name": "envoy.transport_sockets.tap", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.tap.v3.Tap"] + }, { + "name": "envoy.transport_sockets.tcp_stats", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.tcp_stats.v3.Config"] + }, { + "name": "envoy.transport_sockets.tls", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext"] + }, { + "name": "raw_buffer", + "category": "envoy.transport_sockets.downstream" + }, { + "name": "starttls", + "category": "envoy.transport_sockets.downstream" + }, { + "name": "tls", + "category": "envoy.transport_sockets.downstream" + }, { + "name": "envoy.rbac.matchers.upstream_ip_port", + "category": "envoy.rbac.matchers", + "typeUrls": ["envoy.extensions.rbac.matchers.upstream_ip_port.v3.UpstreamIpPortMatcher"] + }, { + "name": "envoy.key_value.file_based", + "category": "envoy.common.key_value", + "typeUrls": ["envoy.extensions.key_value.file_based.v3.FileBasedKeyValueStoreConfig"] + }, { + "name": "envoy.matching.inputs.application_protocol", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ApplicationProtocolInput"] + }, { + "name": "envoy.matching.inputs.destination_ip", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput"] + }, { + "name": "envoy.matching.inputs.destination_port", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput"] + }, { + "name": "envoy.matching.inputs.direct_source_ip", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput"] + }, { + "name": "envoy.matching.inputs.dns_san", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput"] + }, { + "name": "envoy.matching.inputs.server_name", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ServerNameInput"] + }, { + "name": "envoy.matching.inputs.source_ip", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceIPInput"] + }, { + "name": "envoy.matching.inputs.source_port", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourcePortInput"] + }, { + "name": "envoy.matching.inputs.source_type", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput"] + }, { + "name": "envoy.matching.inputs.subject", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput"] + }, { + "name": "envoy.matching.inputs.transport_protocol", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.TransportProtocolInput"] + }, { + "name": "envoy.matching.inputs.uri_san", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput"] + }, { + "name": "dubbo", + "category": "envoy.dubbo_proxy.protocols" + }, { + "name": "envoy.watchdog.abort_action", + "category": "envoy.guarddog_actions", + "typeUrls": ["envoy.watchdog.v3.AbortActionConfig"] + }, { + "name": "envoy.watchdog.profile_action", + "category": "envoy.guarddog_actions", + "typeUrls": ["envoy.extensions.watchdog.profile_action.v3.ProfileActionConfig"] + }, { + "name": "envoy.quic.crypto_stream.server.quiche", + "category": "envoy.quic.server.crypto_stream", + "typeUrls": ["envoy.extensions.quic.crypto_stream.v3.CryptoServerStreamConfig"] + }, { + "name": "envoy.regex_engines.google_re2", + "category": "envoy.regex_engines", + "typeUrls": ["envoy.extensions.regex_engines.v3.GoogleRE2"] + }, { + "name": "envoy.http.stateful_session.cookie", + "category": "envoy.http.stateful_session", + "typeUrls": ["envoy.extensions.http.stateful_session.cookie.v3.CookieBasedSessionState"] + }, { + "name": "envoy.http.stateful_session.header", + "category": "envoy.http.stateful_session", + "typeUrls": ["envoy.extensions.http.stateful_session.header.v3.HeaderBasedSessionState"] + }, { + "name": "envoy.matching.custom_matchers.trie_matcher", + "category": "envoy.matching.network.custom_matchers", + "typeUrls": ["xds.type.matcher.v3.IPMatcher"] + }, { + "name": "envoy.udp_packet_writer.default", + "category": "envoy.udp_packet_writer", + "typeUrls": ["envoy.extensions.udp_packet_writer.v3.UdpDefaultWriterFactory"] + }, { + "name": "envoy.udp_packet_writer.gso", + "category": "envoy.udp_packet_writer", + "typeUrls": ["envoy.extensions.udp_packet_writer.v3.UdpGsoBatchWriterFactory"] + }, { + "name": "envoy.quic.proof_source.filter_chain", + "category": "envoy.quic.proof_source", + "typeUrls": ["envoy.extensions.quic.proof_source.v3.ProofSourceConfig"] + }, { + "name": "envoy.resource_monitors.fixed_heap", + "category": "envoy.resource_monitors", + "typeUrls": ["envoy.extensions.resource_monitors.fixed_heap.v3.FixedHeapConfig"] + }, { + "name": "envoy.resource_monitors.injected_resource", + "category": "envoy.resource_monitors", + "typeUrls": ["envoy.extensions.resource_monitors.injected_resource.v3.InjectedResourceConfig"] + }, { + "name": "envoy.http.stateful_header_formatters.preserve_case", + "category": "envoy.http.stateful_header_formatters", + "typeUrls": ["envoy.extensions.http.header_formatters.preserve_case.v3.PreserveCaseFormatterConfig"] + }, { + "name": "preserve_case", + "category": "envoy.http.stateful_header_formatters" + }, { + "name": "envoy.filters.thrift.header_to_metadata", + "category": "envoy.thrift_proxy.filters", + "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.header_to_metadata.v3.HeaderToMetadata"] + }, { + "name": "envoy.filters.thrift.payload_to_metadata", + "category": "envoy.thrift_proxy.filters", + "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.payload_to_metadata.v3.PayloadToMetadata"] + }, { + "name": "envoy.filters.thrift.rate_limit", + "category": "envoy.thrift_proxy.filters", + "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.ratelimit.v3.RateLimit"] + }, { + "name": "envoy.filters.thrift.router", + "category": "envoy.thrift_proxy.filters", + "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.router.v3.Router"] + }, { + "name": "envoy.tracers.datadog", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.DatadogConfig"] + }, { + "name": "envoy.tracers.dynamic_ot", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.DynamicOtConfig"] + }, { + "name": "envoy.tracers.opencensus", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.OpenCensusConfig"] + }, { + "name": "envoy.tracers.opentelemetry", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.OpenTelemetryConfig"] + }, { + "name": "envoy.tracers.skywalking", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.SkyWalkingConfig"] + }, { + "name": "envoy.tracers.xray", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.XRayConfig"] + }, { + "name": "envoy.tracers.zipkin", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.ZipkinConfig"] + }, { + "name": "envoy.zipkin", + "category": "envoy.tracers" + }, { + "name": "envoy.retry_priorities.previous_priorities", + "category": "envoy.retry_priorities", + "typeUrls": ["envoy.extensions.retry.priority.previous_priorities.v3.PreviousPrioritiesConfig"] + }, { + "name": "envoy.http.early_header_mutation.header_mutation", + "category": "envoy.http.early_header_mutation", + "typeUrls": ["envoy.extensions.http.early_header_mutation.header_mutation.v3.HeaderMutation"] + }, { + "name": "envoy.connection_handler.default", + "category": "envoy.connection_handler" + }, { + "name": "envoy.transport_sockets.alts", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.alts.v3.Alts"] + }, { + "name": "envoy.transport_sockets.http_11_proxy", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.http_11_proxy.v3.Http11ProxyUpstreamTransport"] + }, { + "name": "envoy.transport_sockets.internal_upstream", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport"] + }, { + "name": "envoy.transport_sockets.quic", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport"] + }, { + "name": "envoy.transport_sockets.raw_buffer", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer"] + }, { + "name": "envoy.transport_sockets.starttls", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.starttls.v3.UpstreamStartTlsConfig"] + }, { + "name": "envoy.transport_sockets.tap", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.tap.v3.Tap"] + }, { + "name": "envoy.transport_sockets.tcp_stats", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.tcp_stats.v3.Config"] + }, { + "name": "envoy.transport_sockets.tls", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext"] + }, { + "name": "envoy.transport_sockets.upstream_proxy_protocol", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport"] + }, { + "name": "raw_buffer", + "category": "envoy.transport_sockets.upstream" + }, { + "name": "starttls", + "category": "envoy.transport_sockets.upstream" + }, { + "name": "tls", + "category": "envoy.transport_sockets.upstream" + }, { + "name": "auto", + "category": "envoy.thrift_proxy.transports" + }, { + "name": "framed", + "category": "envoy.thrift_proxy.transports" + }, { + "name": "header", + "category": "envoy.thrift_proxy.transports" + }, { + "name": "unframed", + "category": "envoy.thrift_proxy.transports" + }, { + "name": "envoy.cluster.eds", + "category": "envoy.clusters" + }, { + "name": "envoy.cluster.logical_dns", + "category": "envoy.clusters" + }, { + "name": "envoy.cluster.original_dst", + "category": "envoy.clusters" + }, { + "name": "envoy.cluster.static", + "category": "envoy.clusters" + }, { + "name": "envoy.cluster.strict_dns", + "category": "envoy.clusters" + }, { + "name": "envoy.clusters.aggregate", + "category": "envoy.clusters" + }, { + "name": "envoy.clusters.dynamic_forward_proxy", + "category": "envoy.clusters" + }, { + "name": "envoy.clusters.redis", + "category": "envoy.clusters" + }, { + "name": "envoy.access_loggers.extension_filters.cel", + "category": "envoy.access_loggers.extension_filters", + "typeUrls": ["envoy.extensions.access_loggers.filters.cel.v3.ExpressionFilter"] + }, { + "name": "auto", + "category": "envoy.thrift_proxy.protocols" + }, { + "name": "binary", + "category": "envoy.thrift_proxy.protocols" + }, { + "name": "binary/non-strict", + "category": "envoy.thrift_proxy.protocols" + }, { + "name": "compact", + "category": "envoy.thrift_proxy.protocols" + }, { + "name": "twitter", + "category": "envoy.thrift_proxy.protocols" + }, { + "name": "envoy.extensions.upstreams.http.v3.HttpProtocolOptions", + "category": "envoy.upstream_options", + "typeUrls": ["envoy.extensions.upstreams.http.v3.HttpProtocolOptions"] + }, { + "name": "envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions", + "category": "envoy.upstream_options", + "typeUrls": ["envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions"] + }, { + "name": "envoy.upstreams.http.http_protocol_options", + "category": "envoy.upstream_options" + }, { + "name": "envoy.upstreams.tcp.tcp_protocol_options", + "category": "envoy.upstream_options" + }, { + "name": "envoy.listener_manager_impl.default", + "category": "envoy.listener_manager_impl", + "typeUrls": ["envoy.config.listener.v3.ListenerManager"] + }, { + "name": "default", + "category": "network.connection.client" + }, { + "name": "envoy_internal", + "category": "network.connection.client" + }, { + "name": "envoy.filters.udp.dns_filter", + "category": "envoy.filters.udp_listener", + "typeUrls": ["envoy.extensions.filters.udp.dns_filter.v3.DnsFilterConfig"] + }, { + "name": "envoy.filters.udp_listener.udp_proxy", + "category": "envoy.filters.udp_listener", + "typeUrls": ["envoy.extensions.filters.udp.udp_proxy.v3.UdpProxyConfig"] + }, { + "name": "envoy.extensions.http.cache.file_system_http_cache", + "category": "envoy.http.cache", + "typeUrls": ["envoy.extensions.http.cache.file_system_http_cache.v3.FileSystemHttpCacheConfig"] + }, { + "name": "envoy.extensions.http.cache.simple", + "category": "envoy.http.cache", + "typeUrls": ["envoy.extensions.http.cache.simple_http_cache.v3.SimpleHttpCacheConfig"] + }, { + "name": "envoy.retry_host_predicates.omit_canary_hosts", + "category": "envoy.retry_host_predicates", + "typeUrls": ["envoy.extensions.retry.host.omit_canary_hosts.v3.OmitCanaryHostsPredicate"] + }, { + "name": "envoy.retry_host_predicates.omit_host_metadata", + "category": "envoy.retry_host_predicates", + "typeUrls": ["envoy.extensions.retry.host.omit_host_metadata.v3.OmitHostMetadataConfig"] + }, { + "name": "envoy.retry_host_predicates.previous_hosts", + "category": "envoy.retry_host_predicates", + "typeUrls": ["envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate"] + }, { + "name": "envoy.formatter.metadata", + "category": "envoy.formatter", + "typeUrls": ["envoy.extensions.formatter.metadata.v3.Metadata"] + }, { + "name": "envoy.formatter.req_without_query", + "category": "envoy.formatter", + "typeUrls": ["envoy.extensions.formatter.req_without_query.v3.ReqWithoutQuery"] + }, { + "name": "envoy.internal_redirect_predicates.allow_listed_routes", + "category": "envoy.internal_redirect_predicates", + "typeUrls": ["envoy.extensions.internal_redirect.allow_listed_routes.v3.AllowListedRoutesConfig"] + }, { + "name": "envoy.internal_redirect_predicates.previous_routes", + "category": "envoy.internal_redirect_predicates", + "typeUrls": ["envoy.extensions.internal_redirect.previous_routes.v3.PreviousRoutesConfig"] + }, { + "name": "envoy.internal_redirect_predicates.safe_cross_scheme", + "category": "envoy.internal_redirect_predicates", + "typeUrls": ["envoy.extensions.internal_redirect.safe_cross_scheme.v3.SafeCrossSchemeConfig"] + }, { + "name": "envoy.matching.custom_matchers.trie_matcher", + "category": "envoy.matching.http.custom_matchers", + "typeUrls": ["xds.type.matcher.v3.IPMatcher"] + }, { + "name": "envoy.filters.dubbo.router", + "category": "envoy.dubbo_proxy.filters", + "typeUrls": ["envoy.extensions.filters.network.dubbo_proxy.router.v3.Router"] + }, { + "name": "envoy.echo", + "category": "envoy.filters.network" + }, { + "name": "envoy.ext_authz", + "category": "envoy.filters.network" + }, { + "name": "envoy.filters.network.connection_limit", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.connection_limit.v3.ConnectionLimit"] + }, { + "name": "envoy.filters.network.direct_response", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.direct_response.v3.Config"] + }, { + "name": "envoy.filters.network.dubbo_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.dubbo_proxy.v3.DubboProxy"] + }, { + "name": "envoy.filters.network.echo", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.echo.v3.Echo"] + }, { + "name": "envoy.filters.network.ext_authz", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.ext_authz.v3.ExtAuthz"] + }, { + "name": "envoy.filters.network.http_connection_manager", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager"] + }, { + "name": "envoy.filters.network.local_ratelimit", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.local_ratelimit.v3.LocalRateLimit"] + }, { + "name": "envoy.filters.network.mongo_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.mongo_proxy.v3.MongoProxy"] + }, { + "name": "envoy.filters.network.ratelimit", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.ratelimit.v3.RateLimit"] + }, { + "name": "envoy.filters.network.rbac", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.rbac.v3.RBAC"] + }, { + "name": "envoy.filters.network.redis_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.redis_proxy.v3.RedisProxy"] + }, { + "name": "envoy.filters.network.sni_cluster", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.sni_cluster.v3.SniCluster"] + }, { + "name": "envoy.filters.network.sni_dynamic_forward_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.sni_dynamic_forward_proxy.v3.FilterConfig"] + }, { + "name": "envoy.filters.network.tcp_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy"] + }, { + "name": "envoy.filters.network.thrift_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy"] + }, { + "name": "envoy.filters.network.wasm", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.wasm.v3.Wasm"] + }, { + "name": "envoy.filters.network.zookeeper_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.zookeeper_proxy.v3.ZooKeeperProxy"] + }, { + "name": "envoy.http_connection_manager", + "category": "envoy.filters.network" + }, { + "name": "envoy.mongo_proxy", + "category": "envoy.filters.network" + }, { + "name": "envoy.ratelimit", + "category": "envoy.filters.network" + }, { + "name": "envoy.redis_proxy", + "category": "envoy.filters.network" + }, { + "name": "envoy.tcp_proxy", + "category": "envoy.filters.network" + }, { + "name": "envoy.health_checkers.redis", + "category": "envoy.health_checkers", + "typeUrls": ["envoy.extensions.health_checkers.redis.v3.Redis"] + }, { + "name": "envoy.health_checkers.thrift", + "category": "envoy.health_checkers", + "typeUrls": ["envoy.extensions.health_checkers.thrift.v3.Thrift"] + }] }, - "metadata": { - "build.label": "dev", - "build.type": "RELEASE", - "revision.sha": "14111e3c62d3d38b0c921cb7011fd0a94e880aed", - "revision.status": "Clean", - "ssl.version": "BoringSSL" - } - }, - "extensions": [{ - "name": "envoy.filters.connection_pools.tcp.generic", - "category": "envoy.upstreams", - "typeUrls": ["envoy.extensions.upstreams.tcp.generic.v3.GenericConnectionPoolProto"] - }, { - "name": "envoy.rate_limit_descriptors.expr", - "category": "envoy.rate_limit_descriptors", - "typeUrls": ["envoy.extensions.rate_limit_descriptors.expr.v3.Descriptor"] - }, { - "name": "envoy.matching.inputs.destination_ip", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput"] - }, { - "name": "envoy.matching.inputs.destination_port", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput"] - }, { - "name": "envoy.matching.inputs.direct_source_ip", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput"] - }, { - "name": "envoy.matching.inputs.dns_san", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput"] - }, { - "name": "envoy.matching.inputs.request_headers", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpRequestHeaderMatchInput"] - }, { - "name": "envoy.matching.inputs.request_trailers", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpRequestTrailerMatchInput"] - }, { - "name": "envoy.matching.inputs.response_headers", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpResponseHeaderMatchInput"] - }, { - "name": "envoy.matching.inputs.response_trailers", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpResponseTrailerMatchInput"] - }, { - "name": "envoy.matching.inputs.server_name", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ServerNameInput"] - }, { - "name": "envoy.matching.inputs.source_ip", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceIPInput"] - }, { - "name": "envoy.matching.inputs.source_port", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourcePortInput"] - }, { - "name": "envoy.matching.inputs.source_type", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput"] - }, { - "name": "envoy.matching.inputs.status_code_class_input", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpResponseStatusCodeClassMatchInput"] - }, { - "name": "envoy.matching.inputs.status_code_input", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpResponseStatusCodeMatchInput"] - }, { - "name": "envoy.matching.inputs.subject", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput"] - }, { - "name": "envoy.matching.inputs.uri_san", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput"] - }, { - "name": "query_params", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpRequestQueryParamMatchInput"] - }, { - "name": "envoy.tls.cert_validator.default", - "category": "envoy.tls.cert_validator" - }, { - "name": "envoy.tls.cert_validator.spiffe", - "category": "envoy.tls.cert_validator" - }, { - "name": "envoy.path.match.uri_template.uri_template_matcher", - "category": "envoy.path.match", - "typeUrls": ["envoy.extensions.path.match.uri_template.v3.UriTemplateMatchConfig"] - }, { - "name": "envoy.http.original_ip_detection.custom_header", - "category": "envoy.http.original_ip_detection", - "typeUrls": ["envoy.extensions.http.original_ip_detection.custom_header.v3.CustomHeaderConfig"] - }, { - "name": "envoy.http.original_ip_detection.xff", - "category": "envoy.http.original_ip_detection", - "typeUrls": ["envoy.extensions.http.original_ip_detection.xff.v3.XffConfig"] - }, { - "name": "envoy.buffer", - "category": "envoy.filters.http.upstream" - }, { - "name": "envoy.filters.http.admission_control", - "category": "envoy.filters.http.upstream", - "typeUrls": ["envoy.extensions.filters.http.admission_control.v3.AdmissionControl"] - }, { - "name": "envoy.filters.http.buffer", - "category": "envoy.filters.http.upstream", - "typeUrls": ["envoy.extensions.filters.http.buffer.v3.Buffer", "envoy.extensions.filters.http.buffer.v3.BufferPerRoute"] - }, { - "name": "envoy.filters.http.upstream_codec", - "category": "envoy.filters.http.upstream", - "typeUrls": ["envoy.extensions.filters.http.upstream_codec.v3.UpstreamCodec"] - }, { - "name": "envoy.route.early_data_policy.default", - "category": "envoy.route.early_data_policy", - "typeUrls": ["envoy.extensions.early_data.v3.DefaultEarlyDataPolicy"] - }, { - "name": "envoy.compression.brotli.compressor", - "category": "envoy.compression.compressor", - "typeUrls": ["envoy.extensions.compression.brotli.compressor.v3.Brotli"] - }, { - "name": "envoy.compression.gzip.compressor", - "category": "envoy.compression.compressor", - "typeUrls": ["envoy.extensions.compression.gzip.compressor.v3.Gzip"] - }, { - "name": "envoy.compression.zstd.compressor", - "category": "envoy.compression.compressor", - "typeUrls": ["envoy.extensions.compression.zstd.compressor.v3.Zstd"] - }, { - "name": "envoy.compression.brotli.decompressor", - "category": "envoy.compression.decompressor", - "typeUrls": ["envoy.extensions.compression.brotli.decompressor.v3.Brotli"] - }, { - "name": "envoy.compression.gzip.decompressor", - "category": "envoy.compression.decompressor", - "typeUrls": ["envoy.extensions.compression.gzip.decompressor.v3.Gzip"] - }, { - "name": "envoy.compression.zstd.decompressor", - "category": "envoy.compression.decompressor", - "typeUrls": ["envoy.extensions.compression.zstd.decompressor.v3.Zstd"] - }, { - "name": "envoy.wasm.runtime.null", - "category": "envoy.wasm.runtime" - }, { - "name": "envoy.wasm.runtime.v8", - "category": "envoy.wasm.runtime" - }, { - "name": "envoy.dog_statsd", - "category": "envoy.stats_sinks" - }, { - "name": "envoy.graphite_statsd", - "category": "envoy.stats_sinks" - }, { - "name": "envoy.metrics_service", - "category": "envoy.stats_sinks" - }, { - "name": "envoy.stat_sinks.dog_statsd", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.config.metrics.v3.DogStatsdSink"] - }, { - "name": "envoy.stat_sinks.graphite_statsd", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.extensions.stat_sinks.graphite_statsd.v3.GraphiteStatsdSink"] - }, { - "name": "envoy.stat_sinks.hystrix", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.config.metrics.v3.HystrixSink"] - }, { - "name": "envoy.stat_sinks.metrics_service", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.config.metrics.v3.MetricsServiceConfig"] - }, { - "name": "envoy.stat_sinks.statsd", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.config.metrics.v3.StatsdSink"] - }, { - "name": "envoy.stat_sinks.wasm", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.extensions.stat_sinks.wasm.v3.Wasm"] - }, { - "name": "envoy.statsd", - "category": "envoy.stats_sinks" - }, { - "name": "envoy.path.rewrite.uri_template.uri_template_rewriter", - "category": "envoy.path.rewrite", - "typeUrls": ["envoy.extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig"] - }, { - "name": "envoy.extensions.http.custom_response.local_response_policy", - "category": "envoy.http.custom_response", - "typeUrls": ["envoy.extensions.http.custom_response.local_response_policy.v3.LocalResponsePolicy"] - }, { - "name": "envoy.extensions.http.custom_response.redirect_policy", - "category": "envoy.http.custom_response", - "typeUrls": ["envoy.extensions.http.custom_response.redirect_policy.v3.RedirectPolicy"] - }, { - "name": "envoy.matching.actions.format_string", - "category": "envoy.matching.action", - "typeUrls": ["envoy.config.core.v3.SubstitutionFormatString"] - }, { - "name": "filter-chain-name", - "category": "envoy.matching.action", - "typeUrls": ["google.protobuf.StringValue"] - }, { - "name": "envoy.quic.deterministic_connection_id_generator", - "category": "envoy.quic.connection_id_generator", - "typeUrls": ["envoy.extensions.quic.connection_id_generator.v3.DeterministicConnectionIdGeneratorConfig"] - }, { - "name": "envoy.network.dns_resolver.cares", - "category": "envoy.network.dns_resolver", - "typeUrls": ["envoy.extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig"] - }, { - "name": "envoy.network.dns_resolver.getaddrinfo", - "category": "envoy.network.dns_resolver", - "typeUrls": ["envoy.extensions.network.dns_resolver.getaddrinfo.v3.GetAddrInfoDnsResolverConfig"] - }, { - "name": "envoy.bootstrap.internal_listener", - "category": "envoy.bootstrap", - "typeUrls": ["envoy.extensions.bootstrap.internal_listener.v3.InternalListener"] - }, { - "name": "envoy.bootstrap.wasm", - "category": "envoy.bootstrap", - "typeUrls": ["envoy.extensions.wasm.v3.WasmService"] - }, { - "name": "envoy.extensions.network.socket_interface.default_socket_interface", - "category": "envoy.bootstrap", - "typeUrls": ["envoy.extensions.network.socket_interface.v3.DefaultSocketInterface"] - }, { - "name": "envoy.filters.listener.http_inspector", - "category": "envoy.filters.listener", - "typeUrls": ["envoy.extensions.filters.listener.http_inspector.v3.HttpInspector"] - }, { - "name": "envoy.filters.listener.original_dst", - "category": "envoy.filters.listener", - "typeUrls": ["envoy.extensions.filters.listener.original_dst.v3.OriginalDst"] - }, { - "name": "envoy.filters.listener.original_src", - "category": "envoy.filters.listener", - "typeUrls": ["envoy.extensions.filters.listener.original_src.v3.OriginalSrc"] - }, { - "name": "envoy.filters.listener.proxy_protocol", - "category": "envoy.filters.listener", - "typeUrls": ["envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol"] - }, { - "name": "envoy.filters.listener.tls_inspector", - "category": "envoy.filters.listener", - "typeUrls": ["envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector"] - }, { - "name": "envoy.listener.http_inspector", - "category": "envoy.filters.listener" - }, { - "name": "envoy.listener.original_dst", - "category": "envoy.filters.listener" - }, { - "name": "envoy.listener.original_src", - "category": "envoy.filters.listener" - }, { - "name": "envoy.listener.proxy_protocol", - "category": "envoy.filters.listener" - }, { - "name": "envoy.listener.tls_inspector", - "category": "envoy.filters.listener" - }, { - "name": "envoy.matching.common_inputs.environment_variable", - "category": "envoy.matching.common_inputs", - "typeUrls": ["envoy.extensions.matching.common_inputs.environment_variable.v3.Config"] - }, { - "name": "envoy.matching.matchers.consistent_hashing", - "category": "envoy.matching.input_matchers", - "typeUrls": ["envoy.extensions.matching.input_matchers.consistent_hashing.v3.ConsistentHashing"] - }, { - "name": "envoy.matching.matchers.ip", - "category": "envoy.matching.input_matchers", - "typeUrls": ["envoy.extensions.matching.input_matchers.ip.v3.Ip"] - }, { - "name": "envoy.grpc_credentials.aws_iam", - "category": "envoy.grpc_credentials" - }, { - "name": "envoy.grpc_credentials.default", - "category": "envoy.grpc_credentials" - }, { - "name": "envoy.grpc_credentials.file_based_metadata", - "category": "envoy.grpc_credentials" - }, { - "name": "envoy.request_id.uuid", - "category": "envoy.request_id", - "typeUrls": ["envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig"] - }, { - "name": "envoy.load_balancing_policies.least_request", - "category": "envoy.load_balancing_policies", - "typeUrls": ["envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest"] - }, { - "name": "envoy.load_balancing_policies.maglev", - "category": "envoy.load_balancing_policies", - "typeUrls": ["envoy.extensions.load_balancing_policies.maglev.v3.Maglev"] - }, { - "name": "envoy.load_balancing_policies.random", - "category": "envoy.load_balancing_policies", - "typeUrls": ["envoy.extensions.load_balancing_policies.random.v3.Random"] - }, { - "name": "envoy.load_balancing_policies.ring_hash", - "category": "envoy.load_balancing_policies", - "typeUrls": ["envoy.extensions.load_balancing_policies.ring_hash.v3.RingHash"] - }, { - "name": "envoy.load_balancing_policies.round_robin", - "category": "envoy.load_balancing_policies", - "typeUrls": ["envoy.extensions.load_balancing_policies.round_robin.v3.RoundRobin"] - }, { - "name": "envoy.ip", - "category": "envoy.resolvers" - }, { - "name": "envoy.bandwidth_limit", - "category": "envoy.filters.http" - }, { - "name": "envoy.buffer", - "category": "envoy.filters.http" - }, { - "name": "envoy.cors", - "category": "envoy.filters.http" - }, { - "name": "envoy.csrf", - "category": "envoy.filters.http" - }, { - "name": "envoy.ext_authz", - "category": "envoy.filters.http" - }, { - "name": "envoy.ext_proc", - "category": "envoy.filters.http" - }, { - "name": "envoy.fault", - "category": "envoy.filters.http" - }, { - "name": "envoy.filters.http.adaptive_concurrency", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.adaptive_concurrency.v3.AdaptiveConcurrency"] - }, { - "name": "envoy.filters.http.admission_control", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.admission_control.v3.AdmissionControl"] - }, { - "name": "envoy.filters.http.alternate_protocols_cache", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.alternate_protocols_cache.v3.FilterConfig"] - }, { - "name": "envoy.filters.http.aws_lambda", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.aws_lambda.v3.Config", "envoy.extensions.filters.http.aws_lambda.v3.PerRouteConfig"] - }, { - "name": "envoy.filters.http.aws_request_signing", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.aws_request_signing.v3.AwsRequestSigning"] - }, { - "name": "envoy.filters.http.bandwidth_limit", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.bandwidth_limit.v3.BandwidthLimit"] - }, { - "name": "envoy.filters.http.buffer", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.buffer.v3.Buffer", "envoy.extensions.filters.http.buffer.v3.BufferPerRoute"] - }, { - "name": "envoy.filters.http.cache", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.cache.v3.CacheConfig"] - }, { - "name": "envoy.filters.http.cdn_loop", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.cdn_loop.v3.CdnLoopConfig"] - }, { - "name": "envoy.filters.http.composite", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.composite.v3.Composite"] - }, { - "name": "envoy.filters.http.compressor", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.compressor.v3.Compressor", "envoy.extensions.filters.http.compressor.v3.CompressorPerRoute"] - }, { - "name": "envoy.filters.http.connect_grpc_bridge", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"] - }, { - "name": "envoy.filters.http.cors", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.cors.v3.Cors", "envoy.extensions.filters.http.cors.v3.CorsPolicy"] - }, { - "name": "envoy.filters.http.csrf", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.csrf.v3.CsrfPolicy"] - }, { - "name": "envoy.filters.http.custom_response", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.custom_response.v3.CustomResponse"] - }, { - "name": "envoy.filters.http.decompressor", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.decompressor.v3.Decompressor"] - }, { - "name": "envoy.filters.http.dynamic_forward_proxy", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig", "envoy.extensions.filters.http.dynamic_forward_proxy.v3.PerRouteConfig"] - }, { - "name": "envoy.filters.http.ext_authz", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.ext_authz.v3.ExtAuthz", "envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute"] - }, { - "name": "envoy.filters.http.ext_proc", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.ext_proc.v3.ExtProcPerRoute", "envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor"] - }, { - "name": "envoy.filters.http.fault", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.fault.v3.HTTPFault"] - }, { - "name": "envoy.filters.http.file_system_buffer", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.file_system_buffer.v3.FileSystemBufferFilterConfig"] - }, { - "name": "envoy.filters.http.gcp_authn", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.gcp_authn.v3.GcpAuthnFilterConfig"] - }, { - "name": "envoy.filters.http.grpc_http1_bridge", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.grpc_http1_bridge.v3.Config"] - }, { - "name": "envoy.filters.http.grpc_http1_reverse_bridge", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfig", "envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfigPerRoute"] - }, { - "name": "envoy.filters.http.grpc_json_transcoder", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"] - }, { - "name": "envoy.filters.http.grpc_stats", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.grpc_stats.v3.FilterConfig"] - }, { - "name": "envoy.filters.http.grpc_web", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"] - }, { - "name": "envoy.filters.http.header_to_metadata", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.header_to_metadata.v3.Config"] - }, { - "name": "envoy.filters.http.health_check", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.health_check.v3.HealthCheck"] - }, { - "name": "envoy.filters.http.ip_tagging", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.ip_tagging.v3.IPTagging"] - }, { - "name": "envoy.filters.http.jwt_authn", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication", "envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig"] - }, { - "name": "envoy.filters.http.local_ratelimit", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit"] - }, { - "name": "envoy.filters.http.lua", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.lua.v3.Lua", "envoy.extensions.filters.http.lua.v3.LuaPerRoute"] - }, { - "name": "envoy.filters.http.match_delegate", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.common.matching.v3.ExtensionWithMatcher"] - }, { - "name": "envoy.filters.http.oauth2", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.oauth2.v3.OAuth2"] - }, { - "name": "envoy.filters.http.on_demand", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.on_demand.v3.OnDemand", "envoy.extensions.filters.http.on_demand.v3.PerRouteConfig"] - }, { - "name": "envoy.filters.http.original_src", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.original_src.v3.OriginalSrc"] - }, { - "name": "envoy.filters.http.rate_limit_quota", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig", "envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaOverride"] - }, { - "name": "envoy.filters.http.ratelimit", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.ratelimit.v3.RateLimit", "envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute"] - }, { - "name": "envoy.filters.http.rbac", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.rbac.v3.RBAC", "envoy.extensions.filters.http.rbac.v3.RBACPerRoute"] - }, { - "name": "envoy.filters.http.router", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.router.v3.Router"] - }, { - "name": "envoy.filters.http.set_metadata", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.set_metadata.v3.Config"] - }, { - "name": "envoy.filters.http.stateful_session", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.stateful_session.v3.StatefulSession", "envoy.extensions.filters.http.stateful_session.v3.StatefulSessionPerRoute"] - }, { - "name": "envoy.filters.http.tap", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.tap.v3.Tap"] - }, { - "name": "envoy.filters.http.wasm", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.wasm.v3.Wasm"] - }, { - "name": "envoy.grpc_http1_bridge", - "category": "envoy.filters.http" - }, { - "name": "envoy.grpc_json_transcoder", - "category": "envoy.filters.http" - }, { - "name": "envoy.grpc_web", - "category": "envoy.filters.http" - }, { - "name": "envoy.health_check", - "category": "envoy.filters.http" - }, { - "name": "envoy.ip_tagging", - "category": "envoy.filters.http" - }, { - "name": "envoy.local_rate_limit", - "category": "envoy.filters.http" - }, { - "name": "envoy.lua", - "category": "envoy.filters.http" - }, { - "name": "envoy.rate_limit", - "category": "envoy.filters.http" - }, { - "name": "envoy.router", - "category": "envoy.filters.http" - }, { - "name": "envoy.access_loggers.file", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.file.v3.FileAccessLog"] - }, { - "name": "envoy.access_loggers.http_grpc", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig"] - }, { - "name": "envoy.access_loggers.open_telemetry", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig"] - }, { - "name": "envoy.access_loggers.stderr", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.stream.v3.StderrAccessLog"] - }, { - "name": "envoy.access_loggers.stdout", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.stream.v3.StdoutAccessLog"] - }, { - "name": "envoy.access_loggers.tcp_grpc", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig"] - }, { - "name": "envoy.access_loggers.wasm", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.wasm.v3.WasmAccessLog"] - }, { - "name": "envoy.file_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.http_grpc_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.open_telemetry_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.stderr_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.stdout_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.tcp_grpc_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.wasm_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.config.validators.minimum_clusters", - "category": "envoy.config.validators" - }, { - "name": "envoy.config.validators.minimum_clusters_validator", - "category": "envoy.config.validators", - "typeUrls": ["envoy.extensions.config.validators.minimum_clusters.v3.MinimumClustersValidator"] - }, { - "name": "envoy.http.header_validators.envoy_default", - "category": "envoy.http.header_validators", - "typeUrls": ["envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig"] - }, { - "name": "dubbo.hessian2", - "category": "envoy.dubbo_proxy.serializers" - }, { - "name": "quic.http_server_connection.default", - "category": "quic.http_server_connection" - }, { - "name": "envoy.transport_sockets.alts", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.alts.v3.Alts"] - }, { - "name": "envoy.transport_sockets.quic", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport"] - }, { - "name": "envoy.transport_sockets.raw_buffer", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer"] - }, { - "name": "envoy.transport_sockets.starttls", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.starttls.v3.StartTlsConfig"] - }, { - "name": "envoy.transport_sockets.tap", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.tap.v3.Tap"] - }, { - "name": "envoy.transport_sockets.tcp_stats", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.tcp_stats.v3.Config"] - }, { - "name": "envoy.transport_sockets.tls", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext"] - }, { - "name": "raw_buffer", - "category": "envoy.transport_sockets.downstream" - }, { - "name": "starttls", - "category": "envoy.transport_sockets.downstream" - }, { - "name": "tls", - "category": "envoy.transport_sockets.downstream" - }, { - "name": "envoy.rbac.matchers.upstream_ip_port", - "category": "envoy.rbac.matchers", - "typeUrls": ["envoy.extensions.rbac.matchers.upstream_ip_port.v3.UpstreamIpPortMatcher"] - }, { - "name": "envoy.key_value.file_based", - "category": "envoy.common.key_value", - "typeUrls": ["envoy.extensions.key_value.file_based.v3.FileBasedKeyValueStoreConfig"] - }, { - "name": "envoy.matching.inputs.application_protocol", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ApplicationProtocolInput"] - }, { - "name": "envoy.matching.inputs.destination_ip", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput"] - }, { - "name": "envoy.matching.inputs.destination_port", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput"] - }, { - "name": "envoy.matching.inputs.direct_source_ip", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput"] - }, { - "name": "envoy.matching.inputs.dns_san", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput"] - }, { - "name": "envoy.matching.inputs.server_name", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ServerNameInput"] - }, { - "name": "envoy.matching.inputs.source_ip", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceIPInput"] - }, { - "name": "envoy.matching.inputs.source_port", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourcePortInput"] - }, { - "name": "envoy.matching.inputs.source_type", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput"] - }, { - "name": "envoy.matching.inputs.subject", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput"] - }, { - "name": "envoy.matching.inputs.transport_protocol", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.TransportProtocolInput"] - }, { - "name": "envoy.matching.inputs.uri_san", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput"] - }, { - "name": "dubbo", - "category": "envoy.dubbo_proxy.protocols" - }, { - "name": "envoy.watchdog.abort_action", - "category": "envoy.guarddog_actions", - "typeUrls": ["envoy.watchdog.v3.AbortActionConfig"] - }, { - "name": "envoy.watchdog.profile_action", - "category": "envoy.guarddog_actions", - "typeUrls": ["envoy.extensions.watchdog.profile_action.v3.ProfileActionConfig"] - }, { - "name": "envoy.quic.crypto_stream.server.quiche", - "category": "envoy.quic.server.crypto_stream", - "typeUrls": ["envoy.extensions.quic.crypto_stream.v3.CryptoServerStreamConfig"] - }, { - "name": "envoy.regex_engines.google_re2", - "category": "envoy.regex_engines", - "typeUrls": ["envoy.extensions.regex_engines.v3.GoogleRE2"] - }, { - "name": "envoy.http.stateful_session.cookie", - "category": "envoy.http.stateful_session", - "typeUrls": ["envoy.extensions.http.stateful_session.cookie.v3.CookieBasedSessionState"] - }, { - "name": "envoy.http.stateful_session.header", - "category": "envoy.http.stateful_session", - "typeUrls": ["envoy.extensions.http.stateful_session.header.v3.HeaderBasedSessionState"] - }, { - "name": "envoy.matching.custom_matchers.trie_matcher", - "category": "envoy.matching.network.custom_matchers", - "typeUrls": ["xds.type.matcher.v3.IPMatcher"] - }, { - "name": "envoy.udp_packet_writer.default", - "category": "envoy.udp_packet_writer", - "typeUrls": ["envoy.extensions.udp_packet_writer.v3.UdpDefaultWriterFactory"] - }, { - "name": "envoy.udp_packet_writer.gso", - "category": "envoy.udp_packet_writer", - "typeUrls": ["envoy.extensions.udp_packet_writer.v3.UdpGsoBatchWriterFactory"] - }, { - "name": "envoy.quic.proof_source.filter_chain", - "category": "envoy.quic.proof_source", - "typeUrls": ["envoy.extensions.quic.proof_source.v3.ProofSourceConfig"] - }, { - "name": "envoy.resource_monitors.fixed_heap", - "category": "envoy.resource_monitors", - "typeUrls": ["envoy.extensions.resource_monitors.fixed_heap.v3.FixedHeapConfig"] - }, { - "name": "envoy.resource_monitors.injected_resource", - "category": "envoy.resource_monitors", - "typeUrls": ["envoy.extensions.resource_monitors.injected_resource.v3.InjectedResourceConfig"] - }, { - "name": "envoy.http.stateful_header_formatters.preserve_case", - "category": "envoy.http.stateful_header_formatters", - "typeUrls": ["envoy.extensions.http.header_formatters.preserve_case.v3.PreserveCaseFormatterConfig"] - }, { - "name": "preserve_case", - "category": "envoy.http.stateful_header_formatters" - }, { - "name": "envoy.filters.thrift.header_to_metadata", - "category": "envoy.thrift_proxy.filters", - "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.header_to_metadata.v3.HeaderToMetadata"] - }, { - "name": "envoy.filters.thrift.payload_to_metadata", - "category": "envoy.thrift_proxy.filters", - "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.payload_to_metadata.v3.PayloadToMetadata"] - }, { - "name": "envoy.filters.thrift.rate_limit", - "category": "envoy.thrift_proxy.filters", - "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.ratelimit.v3.RateLimit"] - }, { - "name": "envoy.filters.thrift.router", - "category": "envoy.thrift_proxy.filters", - "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.router.v3.Router"] - }, { - "name": "envoy.tracers.datadog", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.DatadogConfig"] - }, { - "name": "envoy.tracers.dynamic_ot", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.DynamicOtConfig"] - }, { - "name": "envoy.tracers.opencensus", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.OpenCensusConfig"] - }, { - "name": "envoy.tracers.opentelemetry", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.OpenTelemetryConfig"] - }, { - "name": "envoy.tracers.skywalking", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.SkyWalkingConfig"] - }, { - "name": "envoy.tracers.xray", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.XRayConfig"] - }, { - "name": "envoy.tracers.zipkin", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.ZipkinConfig"] - }, { - "name": "envoy.zipkin", - "category": "envoy.tracers" - }, { - "name": "envoy.retry_priorities.previous_priorities", - "category": "envoy.retry_priorities", - "typeUrls": ["envoy.extensions.retry.priority.previous_priorities.v3.PreviousPrioritiesConfig"] - }, { - "name": "envoy.http.early_header_mutation.header_mutation", - "category": "envoy.http.early_header_mutation", - "typeUrls": ["envoy.extensions.http.early_header_mutation.header_mutation.v3.HeaderMutation"] - }, { - "name": "envoy.connection_handler.default", - "category": "envoy.connection_handler" - }, { - "name": "envoy.transport_sockets.alts", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.alts.v3.Alts"] - }, { - "name": "envoy.transport_sockets.http_11_proxy", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.http_11_proxy.v3.Http11ProxyUpstreamTransport"] - }, { - "name": "envoy.transport_sockets.internal_upstream", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport"] - }, { - "name": "envoy.transport_sockets.quic", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport"] - }, { - "name": "envoy.transport_sockets.raw_buffer", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer"] - }, { - "name": "envoy.transport_sockets.starttls", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.starttls.v3.UpstreamStartTlsConfig"] - }, { - "name": "envoy.transport_sockets.tap", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.tap.v3.Tap"] - }, { - "name": "envoy.transport_sockets.tcp_stats", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.tcp_stats.v3.Config"] - }, { - "name": "envoy.transport_sockets.tls", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext"] - }, { - "name": "envoy.transport_sockets.upstream_proxy_protocol", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport"] - }, { - "name": "raw_buffer", - "category": "envoy.transport_sockets.upstream" - }, { - "name": "starttls", - "category": "envoy.transport_sockets.upstream" - }, { - "name": "tls", - "category": "envoy.transport_sockets.upstream" - }, { - "name": "auto", - "category": "envoy.thrift_proxy.transports" - }, { - "name": "framed", - "category": "envoy.thrift_proxy.transports" - }, { - "name": "header", - "category": "envoy.thrift_proxy.transports" - }, { - "name": "unframed", - "category": "envoy.thrift_proxy.transports" - }, { - "name": "envoy.cluster.eds", - "category": "envoy.clusters" - }, { - "name": "envoy.cluster.logical_dns", - "category": "envoy.clusters" - }, { - "name": "envoy.cluster.original_dst", - "category": "envoy.clusters" - }, { - "name": "envoy.cluster.static", - "category": "envoy.clusters" - }, { - "name": "envoy.cluster.strict_dns", - "category": "envoy.clusters" - }, { - "name": "envoy.clusters.aggregate", - "category": "envoy.clusters" - }, { - "name": "envoy.clusters.dynamic_forward_proxy", - "category": "envoy.clusters" - }, { - "name": "envoy.clusters.redis", - "category": "envoy.clusters" - }, { - "name": "envoy.access_loggers.extension_filters.cel", - "category": "envoy.access_loggers.extension_filters", - "typeUrls": ["envoy.extensions.access_loggers.filters.cel.v3.ExpressionFilter"] - }, { - "name": "auto", - "category": "envoy.thrift_proxy.protocols" - }, { - "name": "binary", - "category": "envoy.thrift_proxy.protocols" - }, { - "name": "binary/non-strict", - "category": "envoy.thrift_proxy.protocols" - }, { - "name": "compact", - "category": "envoy.thrift_proxy.protocols" - }, { - "name": "twitter", - "category": "envoy.thrift_proxy.protocols" - }, { - "name": "envoy.extensions.upstreams.http.v3.HttpProtocolOptions", - "category": "envoy.upstream_options", - "typeUrls": ["envoy.extensions.upstreams.http.v3.HttpProtocolOptions"] - }, { - "name": "envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions", - "category": "envoy.upstream_options", - "typeUrls": ["envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions"] - }, { - "name": "envoy.upstreams.http.http_protocol_options", - "category": "envoy.upstream_options" - }, { - "name": "envoy.upstreams.tcp.tcp_protocol_options", - "category": "envoy.upstream_options" - }, { - "name": "envoy.listener_manager_impl.default", - "category": "envoy.listener_manager_impl", - "typeUrls": ["envoy.config.listener.v3.ListenerManager"] - }, { - "name": "default", - "category": "network.connection.client" - }, { - "name": "envoy_internal", - "category": "network.connection.client" - }, { - "name": "envoy.filters.udp.dns_filter", - "category": "envoy.filters.udp_listener", - "typeUrls": ["envoy.extensions.filters.udp.dns_filter.v3.DnsFilterConfig"] - }, { - "name": "envoy.filters.udp_listener.udp_proxy", - "category": "envoy.filters.udp_listener", - "typeUrls": ["envoy.extensions.filters.udp.udp_proxy.v3.UdpProxyConfig"] - }, { - "name": "envoy.extensions.http.cache.file_system_http_cache", - "category": "envoy.http.cache", - "typeUrls": ["envoy.extensions.http.cache.file_system_http_cache.v3.FileSystemHttpCacheConfig"] - }, { - "name": "envoy.extensions.http.cache.simple", - "category": "envoy.http.cache", - "typeUrls": ["envoy.extensions.http.cache.simple_http_cache.v3.SimpleHttpCacheConfig"] - }, { - "name": "envoy.retry_host_predicates.omit_canary_hosts", - "category": "envoy.retry_host_predicates", - "typeUrls": ["envoy.extensions.retry.host.omit_canary_hosts.v3.OmitCanaryHostsPredicate"] - }, { - "name": "envoy.retry_host_predicates.omit_host_metadata", - "category": "envoy.retry_host_predicates", - "typeUrls": ["envoy.extensions.retry.host.omit_host_metadata.v3.OmitHostMetadataConfig"] - }, { - "name": "envoy.retry_host_predicates.previous_hosts", - "category": "envoy.retry_host_predicates", - "typeUrls": ["envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate"] - }, { - "name": "envoy.formatter.metadata", - "category": "envoy.formatter", - "typeUrls": ["envoy.extensions.formatter.metadata.v3.Metadata"] - }, { - "name": "envoy.formatter.req_without_query", - "category": "envoy.formatter", - "typeUrls": ["envoy.extensions.formatter.req_without_query.v3.ReqWithoutQuery"] - }, { - "name": "envoy.internal_redirect_predicates.allow_listed_routes", - "category": "envoy.internal_redirect_predicates", - "typeUrls": ["envoy.extensions.internal_redirect.allow_listed_routes.v3.AllowListedRoutesConfig"] - }, { - "name": "envoy.internal_redirect_predicates.previous_routes", - "category": "envoy.internal_redirect_predicates", - "typeUrls": ["envoy.extensions.internal_redirect.previous_routes.v3.PreviousRoutesConfig"] - }, { - "name": "envoy.internal_redirect_predicates.safe_cross_scheme", - "category": "envoy.internal_redirect_predicates", - "typeUrls": ["envoy.extensions.internal_redirect.safe_cross_scheme.v3.SafeCrossSchemeConfig"] - }, { - "name": "envoy.matching.custom_matchers.trie_matcher", - "category": "envoy.matching.http.custom_matchers", - "typeUrls": ["xds.type.matcher.v3.IPMatcher"] - }, { - "name": "envoy.filters.dubbo.router", - "category": "envoy.dubbo_proxy.filters", - "typeUrls": ["envoy.extensions.filters.network.dubbo_proxy.router.v3.Router"] - }, { - "name": "envoy.echo", - "category": "envoy.filters.network" - }, { - "name": "envoy.ext_authz", - "category": "envoy.filters.network" - }, { - "name": "envoy.filters.network.connection_limit", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.connection_limit.v3.ConnectionLimit"] - }, { - "name": "envoy.filters.network.direct_response", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.direct_response.v3.Config"] - }, { - "name": "envoy.filters.network.dubbo_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.dubbo_proxy.v3.DubboProxy"] - }, { - "name": "envoy.filters.network.echo", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.echo.v3.Echo"] - }, { - "name": "envoy.filters.network.ext_authz", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.ext_authz.v3.ExtAuthz"] - }, { - "name": "envoy.filters.network.http_connection_manager", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager"] - }, { - "name": "envoy.filters.network.local_ratelimit", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.local_ratelimit.v3.LocalRateLimit"] - }, { - "name": "envoy.filters.network.mongo_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.mongo_proxy.v3.MongoProxy"] - }, { - "name": "envoy.filters.network.ratelimit", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.ratelimit.v3.RateLimit"] - }, { - "name": "envoy.filters.network.rbac", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.rbac.v3.RBAC"] - }, { - "name": "envoy.filters.network.redis_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.redis_proxy.v3.RedisProxy"] - }, { - "name": "envoy.filters.network.sni_cluster", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.sni_cluster.v3.SniCluster"] - }, { - "name": "envoy.filters.network.sni_dynamic_forward_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.sni_dynamic_forward_proxy.v3.FilterConfig"] - }, { - "name": "envoy.filters.network.tcp_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy"] - }, { - "name": "envoy.filters.network.thrift_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy"] - }, { - "name": "envoy.filters.network.wasm", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.wasm.v3.Wasm"] - }, { - "name": "envoy.filters.network.zookeeper_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.zookeeper_proxy.v3.ZooKeeperProxy"] - }, { - "name": "envoy.http_connection_manager", - "category": "envoy.filters.network" - }, { - "name": "envoy.mongo_proxy", - "category": "envoy.filters.network" - }, { - "name": "envoy.ratelimit", - "category": "envoy.filters.network" - }, { - "name": "envoy.redis_proxy", - "category": "envoy.filters.network" - }, { - "name": "envoy.tcp_proxy", - "category": "envoy.filters.network" - }, { - "name": "envoy.health_checkers.redis", - "category": "envoy.health_checkers", - "typeUrls": ["envoy.extensions.health_checkers.redis.v3.Redis"] - }, { - "name": "envoy.health_checkers.thrift", - "category": "envoy.health_checkers", - "typeUrls": ["envoy.extensions.health_checkers.thrift.v3.Thrift"] - }] - }, - "staticResources": { - "clusters": [{ - "name": "xds_cluster", - "type": "STRICT_DNS", - "connectTimeout": "1s", - "loadAssignment": { - "clusterName": "xds_cluster", - "endpoints": [{ - "lbEndpoints": [{ - "endpoint": { - "address": { - "socketAddress": { - "address": "envoy-gateway", - "portValue": 18000 + "staticResources": { + "clusters": [{ + "name": "xds_cluster", + "type": "STRICT_DNS", + "connectTimeout": "1s", + "loadAssignment": { + "clusterName": "xds_cluster", + "endpoints": [{ + "lbEndpoints": [{ + "endpoint": { + "address": { + "socketAddress": { + "address": "envoy-gateway", + "portValue": 18000 + } + } } + }] + }] + }, + "typedExtensionProtocolOptions": { + "envoy.extensions.upstreams.http.v3.HttpProtocolOptions": { + "@type": "type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions", + "explicitHttpConfig": { + "http2ProtocolOptions": {} } } - }] - }] - }, - "typedExtensionProtocolOptions": { - "envoy.extensions.upstreams.http.v3.HttpProtocolOptions": { - "@type": "type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions", - "explicitHttpConfig": { - "http2ProtocolOptions": {} - } - } - }, - "transportSocket": { - "name": "envoy.transport_sockets.tls", - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", - "commonTlsContext": { - "tlsParams": { - "tlsMaximumProtocolVersion": "TLSv1_3" - }, - "tlsCertificateSdsSecretConfigs": [{ - "name": "xds_certificate", - "sdsConfig": { - "pathConfigSource": { - "path": "/sds/xds-certificate.json" - }, - "resourceApiVersion": "V3" - } - }], - "validationContextSdsSecretConfig": { - "name": "xds_trusted_ca", - "sdsConfig": { - "pathConfigSource": { - "path": "/sds/xds-trusted-ca.json" + }, + "transportSocket": { + "name": "envoy.transport_sockets.tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + "tlsMaximumProtocolVersion": "TLSv1_3" }, - "resourceApiVersion": "V3" + "tlsCertificateSdsSecretConfigs": [{ + "name": "xds_certificate", + "sdsConfig": { + "pathConfigSource": { + "path": "/sds/xds-certificate.json" + }, + "resourceApiVersion": "V3" + } + }], + "validationContextSdsSecretConfig": { + "name": "xds_trusted_ca", + "sdsConfig": { + "pathConfigSource": { + "path": "/sds/xds-trusted-ca.json" + }, + "resourceApiVersion": "V3" + } + } } } } - } - } - }] - }, - "dynamicResources": { - "ldsConfig": { - "apiConfigSource": { - "apiType": "DELTA_GRPC", - "transportApiVersion": "V3", - "grpcServices": [{ - "envoyGrpc": { - "clusterName": "xds_cluster" - } - }], - "setNodeOnFirstMessageOnly": true - }, - "resourceApiVersion": "V3" - }, - "cdsConfig": { - "apiConfigSource": { - "apiType": "DELTA_GRPC", - "transportApiVersion": "V3", - "grpcServices": [{ - "envoyGrpc": { - "clusterName": "xds_cluster" - } - }], - "setNodeOnFirstMessageOnly": true + }] }, - "resourceApiVersion": "V3" - } - }, - "layeredRuntime": { - "layers": [{ - "name": "runtime-0", - "rtdsLayer": { - "name": "runtime-0", - "rtdsConfig": { + "dynamicResources": { + "ldsConfig": { "apiConfigSource": { "apiType": "DELTA_GRPC", "transportApiVersion": "V3", @@ -1209,301 +1179,335 @@ "envoyGrpc": { "clusterName": "xds_cluster" } - }] + }], + "setNodeOnFirstMessageOnly": true }, "resourceApiVersion": "V3" - } - } - }] - }, - "admin": { - "accessLog": [{ - "name": "envoy.access_loggers.file", - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", - "path": "/dev/null" - } - }], - "address": { - "socketAddress": { - "address": "127.0.0.1", - "portValue": 19000 - } - } - } - }, - "lastUpdated": "2023-02-23T09:05:23.422Z" - }, { - "@type": "type.googleapis.com/envoy.admin.v3.ClustersConfigDump", - "versionInfo": "2", - "staticClusters": [{ - "cluster": { - "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", - "name": "xds_cluster", - "type": "STRICT_DNS", - "connectTimeout": "1s", - "loadAssignment": { - "clusterName": "xds_cluster", - "endpoints": [{ - "lbEndpoints": [{ - "endpoint": { - "address": { - "socketAddress": { - "address": "envoy-gateway", - "portValue": 18000 + }, + "cdsConfig": { + "apiConfigSource": { + "apiType": "DELTA_GRPC", + "transportApiVersion": "V3", + "grpcServices": [{ + "envoyGrpc": { + "clusterName": "xds_cluster" } + }], + "setNodeOnFirstMessageOnly": true + }, + "resourceApiVersion": "V3" + } + }, + "layeredRuntime": { + "layers": [{ + "name": "runtime-0", + "rtdsLayer": { + "name": "runtime-0", + "rtdsConfig": { + "apiConfigSource": { + "apiType": "DELTA_GRPC", + "transportApiVersion": "V3", + "grpcServices": [{ + "envoyGrpc": { + "clusterName": "xds_cluster" + } + }] + }, + "resourceApiVersion": "V3" } } }] - }] - }, - "typedExtensionProtocolOptions": { - "envoy.extensions.upstreams.http.v3.HttpProtocolOptions": { - "@type": "type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions", - "explicitHttpConfig": { - "http2ProtocolOptions": {} + }, + "admin": { + "accessLog": [{ + "name": "envoy.access_loggers.file", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", + "path": "/dev/null" + } + }], + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 19000 + } } } }, - "transportSocket": { - "name": "envoy.transport_sockets.tls", - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", - "commonTlsContext": { - "tlsParams": { - "tlsMaximumProtocolVersion": "TLSv1_3" - }, - "tlsCertificateSdsSecretConfigs": [{ - "name": "xds_certificate", - "sdsConfig": { - "pathConfigSource": { - "path": "/sds/xds-certificate.json" - }, - "resourceApiVersion": "V3" - } - }], - "validationContextSdsSecretConfig": { - "name": "xds_trusted_ca", - "sdsConfig": { - "pathConfigSource": { - "path": "/sds/xds-trusted-ca.json" - }, - "resourceApiVersion": "V3" + "lastUpdated": "2023-02-23T09:05:23.422Z" + }, { + "@type": "type.googleapis.com/envoy.admin.v3.ClustersConfigDump", + "versionInfo": "2", + "staticClusters": [{ + "cluster": { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "xds_cluster", + "type": "STRICT_DNS", + "connectTimeout": "1s", + "loadAssignment": { + "clusterName": "xds_cluster", + "endpoints": [{ + "lbEndpoints": [{ + "endpoint": { + "address": { + "socketAddress": { + "address": "envoy-gateway", + "portValue": 18000 + } + } + } + }] + }] + }, + "typedExtensionProtocolOptions": { + "envoy.extensions.upstreams.http.v3.HttpProtocolOptions": { + "@type": "type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions", + "explicitHttpConfig": { + "http2ProtocolOptions": {} } } - } - } - } - }, - "lastUpdated": "2023-02-23T09:05:23.436Z" - }], - "dynamicActiveClusters": [{ - "versionInfo": "2a0a1698a9d3e05b802047b0cd36b52a070afa49042e1ba267168c5265c7cabf", - "cluster": { - "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", - "name": "default-backend-rule-0-match-0-www.example.com", - "type": "STATIC", - "connectTimeout": "5s", - "loadAssignment": { - "clusterName": "default-backend-rule-0-match-0-www.example.com", - "endpoints": [{ - "locality": {}, - "lbEndpoints": [{ - "endpoint": { - "address": { - "socketAddress": { - "address": "10.96.159.190", - "portValue": 3000 + }, + "transportSocket": { + "name": "envoy.transport_sockets.tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + "tlsMaximumProtocolVersion": "TLSv1_3" + }, + "tlsCertificateSdsSecretConfigs": [{ + "name": "xds_certificate", + "sdsConfig": { + "pathConfigSource": { + "path": "/sds/xds-certificate.json" + }, + "resourceApiVersion": "V3" + } + }], + "validationContextSdsSecretConfig": { + "name": "xds_trusted_ca", + "sdsConfig": { + "pathConfigSource": { + "path": "/sds/xds-trusted-ca.json" + }, + "resourceApiVersion": "V3" + } } } - }, - "loadBalancingWeight": 1 - }], - "loadBalancingWeight": 1 - }] - }, - "dnsLookupFamily": "V4_ONLY", - "outlierDetection": {}, - "commonLbConfig": { - "localityWeightedLbConfig": {} - } - }, - "lastUpdated": "2023-02-23T09:05:38.443Z" - }] - }, { - "@type": "type.googleapis.com/envoy.admin.v3.ListenersConfigDump", - "versionInfo": "2", - "dynamicListeners": [{ - "name": "default-eg-http", - "activeState": { - "versionInfo": "42c71fb50c315ee3a32b327da69f8cc0baf420bc84b747e82d9c38e1b0c33eb2", - "listener": { - "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", - "name": "default-eg-http", - "address": { - "socketAddress": { - "address": "0.0.0.0", - "portValue": 10080 + } } }, - "defaultFilterChain": { - "filters": [{ - "name": "envoy.filters.network.http_connection_manager", - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", - "statPrefix": "http", - "rds": { - "configSource": { - "apiConfigSource": { - "apiType": "DELTA_GRPC", - "transportApiVersion": "V3", - "grpcServices": [{ - "envoyGrpc": { - "clusterName": "xds_cluster" - } - }], - "setNodeOnFirstMessageOnly": true - }, - "resourceApiVersion": "V3" + "lastUpdated": "2023-02-23T09:05:23.436Z" + }], + "dynamicActiveClusters": [{ + "versionInfo": "2a0a1698a9d3e05b802047b0cd36b52a070afa49042e1ba267168c5265c7cabf", + "cluster": { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "default-backend-rule-0-match-0-www.example.com", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "default-backend-rule-0-match-0-www.example.com", + "endpoints": [{ + "locality": {}, + "lbEndpoints": [{ + "endpoint": { + "address": { + "socketAddress": { + "address": "10.96.159.190", + "portValue": 3000 + } + } }, - "routeConfigName": "default-eg-http" - }, - "httpFilters": [{ - "name": "envoy.filters.http.router", - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.filters.http.router.v3.Router" - } + "loadBalancingWeight": 1 }], - "accessLog": [{ - "name": "envoy.access_loggers.file", + "loadBalancingWeight": 1 + }] + }, + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": {}, + "commonLbConfig": { + "localityWeightedLbConfig": {} + } + }, + "lastUpdated": "2023-02-23T09:05:38.443Z" + }] + }, { + "@type": "type.googleapis.com/envoy.admin.v3.ListenersConfigDump", + "versionInfo": "2", + "dynamicListeners": [{ + "name": "default-eg-http", + "activeState": { + "versionInfo": "42c71fb50c315ee3a32b327da69f8cc0baf420bc84b747e82d9c38e1b0c33eb2", + "listener": { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "default-eg-http", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 10080 + } + }, + "defaultFilterChain": { + "filters": [{ + "name": "envoy.filters.network.http_connection_manager", "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", - "path": "/dev/stdout" + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "http", + "rds": { + "configSource": { + "apiConfigSource": { + "apiType": "DELTA_GRPC", + "transportApiVersion": "V3", + "grpcServices": [{ + "envoyGrpc": { + "clusterName": "xds_cluster" + } + }], + "setNodeOnFirstMessageOnly": true + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "default-eg-http" + }, + "httpFilters": [{ + "name": "envoy.filters.http.router", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.http.router.v3.Router" + } + }], + "accessLog": [{ + "name": "envoy.access_loggers.file", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", + "path": "/dev/stdout" + } + }], + "useRemoteAddress": true, + "upgradeConfigs": [{ + "upgradeType": "websocket" + }] } - }], - "useRemoteAddress": true, - "upgradeConfigs": [{ - "upgradeType": "websocket" }] - } + }, + "accessLog": [{ + "name": "envoy.access_loggers.file", + "filter": { + "responseFlagFilter": { + "flags": ["NR"] + } + }, + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", + "path": "/dev/stdout" + } + }] + }, + "lastUpdated": "2023-02-23T09:05:38.446Z" + } + }] + }, { + "@type": "type.googleapis.com/envoy.admin.v3.ScopedRoutesConfigDump" + }, { + "@type": "type.googleapis.com/envoy.admin.v3.RoutesConfigDump", + "dynamicRouteConfigs": [{ + "versionInfo": "cb1e51997a9c3aa6f4d920f39fd5bdbd966e9382b7b6bdf42efca8c22c6c3442", + "routeConfig": { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "default-eg-http", + "virtualHosts": [{ + "name": "default-eg-http", + "domains": ["*"], + "routes": [{ + "match": { + "prefix": "/", + "headers": [{ + "name": ":authority", + "stringMatch": { + "exact": "www.example.com" + } + }] + }, + "route": { + "cluster": "default-backend-rule-0-match-0-www.example.com" + } + }] }] }, - "accessLog": [{ - "name": "envoy.access_loggers.file", - "filter": { - "responseFlagFilter": { - "flags": ["NR"] + "lastUpdated": "2023-02-23T09:05:38.448Z" + }] + }, { + "@type": "type.googleapis.com/envoy.admin.v3.SecretsConfigDump", + "dynamicActiveSecrets": [{ + "name": "xds_certificate", + "lastUpdated": "2023-02-23T09:05:23.442Z", + "secret": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret", + "name": "xds_certificate", + "tlsCertificate": { + "certificateChain": { + "inlineBytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURLekNDQWhPZ0F3SUJBZ0lFTnJRVi9qQU5CZ2txaGtpRzl3MEJBUXNGQURBc01SWXdGQVlEVlFRREV3MWwKYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEVlFRRkV3azFOalE0TXpRek9EVXdIaGNOTWpNd01qRTNNRE0wTVRJNApXaGNOTWpRd01qRTRNRE0wTVRJNFdqQU1NUW93Q0FZRFZRUUREQUVxTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGCkFBT0NBUThBTUlJQkNnS0NBUUVBNmdNSTJSNElEeE5mQ2o1YmZHU1hVUjF4YkVjRjE5VXlhVC9VUEZZcFltM0gKN2c4T3Z6YWRlelFyRkt3dG9PWWFDN0hjam8zVnVHSmhqSDQ1Z3lVbWFzSEg1Q1gzaWFlRlhxQXdVQjRqVTZQSgpBbElCZWlMRVdZVjN1VjMwcGlKK09DWFhrUEQzSFFVb0ZYbnljcHM3OE9PbjZoS0wwNUY0YkJsT2UrMFdIUHdECll2dFQ4TEdpVmcrSkxhR2lxaGgxOXY5endwQUd2akI2Z09kN1BjdkNQNFExUHdkMWdMSnNXVFNweGhDUEVPb2kKV2ZSOG56RERVUHU5aXc2QTJObW1XQ1FxSVNYcDlZUmJMTEdjZnV4VURjcFVYMHpqY0xvcE1sajBnM0RkYVpWRwpzNm9JcW9BSjZ6MFhvdWwrM0ZZdUtJYy8rT1V3VkR1VkI4K0ZRZzlYdlFJREFRQUJvM1V3Y3pBT0JnTlZIUThCCkFmOEVCQU1DQlBBd0hRWURWUjBPQkJZRUZKaUJ3cytVaFRlT2p1L1ZXT29LQWNTSmZBeXVNQjhHQTFVZEl3UVkKTUJhQUZCT3kvOGkxeVMxRWxpN0tNK0gyeXZEM1BJMG1NQ0VHQTFVZEVRUWFNQmlDRmlvdVpXNTJiM2t0WjJGMApaWGRoZVMxemVYTjBaVzB3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUZraHdIakZtQWxqdEpheU54WitodURGCm5UdWd0REZvSTBFT2J0cUhLYnloWU9sdlNFdkhxbFNQSHNRUUhmQnQwbHpOOEtGUTd2YWxTSHRBZStlNzBETHkKaGY3TDQ3eklST3NLcmtmb0tjMjRqaUhNQkVwbCtJdjllU1RWVG9WemxzazVZUGxET2lrMzZpRUY3WDVVZ0RheApsVllZZnpSYzRUb0poODMwT285Wm9pai9LM295dVNXcTVGRzVFWExmeW9tQzZPQ3dxRm5GNzRSM21FTjVheDRlCnppVm5QVDNxVmFZdytzNngwSVhHU282U2M3Q2lUbmMrckFNa3FJNVNsK2p5RHhKTkZBQlIvRllCcTQzK1B1UGkKN0YxOEw0N2l3aVFFYU82NUJzU2hlYmg1Qk1VbytDdzIyM3JsMGRpTldwY3FrdVhtT1BWNDlrWkZkdHpFNytVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + }, + "privateKey": { + "inlineBytes": "W3JlZGFjdGVkXQ==" } - }, - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", - "path": "/dev/stdout" } - }] - }, - "lastUpdated": "2023-02-23T09:05:38.446Z" - } - }] - }, { - "@type": "type.googleapis.com/envoy.admin.v3.ScopedRoutesConfigDump" - }, { - "@type": "type.googleapis.com/envoy.admin.v3.RoutesConfigDump", - "dynamicRouteConfigs": [{ - "versionInfo": "cb1e51997a9c3aa6f4d920f39fd5bdbd966e9382b7b6bdf42efca8c22c6c3442", - "routeConfig": { - "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", - "name": "default-eg-http", - "virtualHosts": [{ - "name": "default-eg-http", - "domains": ["*"], - "routes": [{ - "match": { - "prefix": "/", - "headers": [{ - "name": ":authority", - "stringMatch": { - "exact": "www.example.com" + } + }, { + "name": "xds_trusted_ca", + "lastUpdated": "2023-02-23T09:05:23.447Z", + "secret": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret", + "name": "xds_trusted_ca", + "validationContext": { + "trustedCa": { + "inlineBytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURHRENDQWdDZ0F3SUJBZ0lFSWFxd1VUQU5CZ2txaGtpRzl3MEJBUXNGQURBc01SWXdGQVlEVlFRREV3MWwKYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEVlFRRkV3azFOalE0TXpRek9EVXdIaGNOTWpNd01qRTNNRE0wTVRJNApXaGNOTWpRd01qRTRNRE0wTVRJNFdqQXNNUll3RkFZRFZRUURFdzFsYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEClZRUUZFd2sxTmpRNE16UXpPRFV3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRRDIKeFMrNkRWY2FvbHFkVVBzTHZwNUtQMEQyV0hrTkVEY0tPeml3bzZNYm9wczFLYWJnNXVYSVl5T21JRWNTTXNKNwpHbVAxMlJjK0J3V1dFWXRrTHVPU3BwQm1lSjN3aDRrUlVRVTRTemRFU1dDcU40RTNpcTJib3FFVm53SkFGQ1ZpCldldGVjZkZsODZFalliQUxxSnRCbGJCbFFQM1ZMZ1hva0VVamJ4QmFobE1wZitUWkVJNFBuam1zUWN5a21LeXIKaDJwdmM3cnZYb29HTlhTM0Q0eFc1VDY3dmxLYi94UlM3c2gwTkJEU0dtTE1jY2pxWFZXazVOR2lBWVB3dXBWSwpTWG02dnZXUFZCdEd1bkZhS0JSRGx4TlJrb0wzRUN6UkNtenoxR2ZYMGJkSm1leElOM2VIUFBRdkd0M0txeUlnCkgrYnc0OXpqdlVUb2dNcXFpTlcvQWdNQkFBR2pRakJBTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQQmdOVkhSTUIKQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRVHN2L0l0Y2t0UkpZdXlqUGg5c3J3OXp5TkpqQU5CZ2txaGtpRwo5dzBCQVFzRkFBT0NBUUVBd2dvZEsxalhVWFZDVXBTSjE0cEo3S3ZobWZPT1hkaVNISmNSSzlIUzI1c2xwOWN2CkJDSndmWUZmanJ4Rmc5TnV4aVpiM01oVXk5MDBqenBPdk1QWStEeUxFWFVxTGd5ZlBMUzYveVliem8yZHdwdzMKOCtrTXlsQUFlZmtaSW9oT0VhYSsvNFFBVVVGZVp1a1B6bmF6RzZIWnZKQkNxWVdRNXBaSSt3WTI1dzhEU0VOMgpkOCswVkpzWU5IdUk4aXhneGZhUkRycW5LRHBMUGJ3Z3VaRDl6ZkV3dVFaNG1oeEd0Vk1wR0NLSndscWFhdXJ0CkF5aGhzOXBHNERndkpSY1BLeFY4bndRdzZtSm55dkIxcExxTW1aQTVqZWhxbFNvUGVpWUlBMk1neU83cTVPYmMKL040bzBNTVdvZ1piRWR6aTBnTXJRT2lpNE41Q0ZlakVrYStIMmc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + }, + "matchTypedSubjectAltNames": [{ + "sanType": "DNS", + "matcher": { + "exact": "envoy-gateway" } }] - }, - "route": { - "cluster": "default-backend-rule-0-match-0-www.example.com" } - }] - }] - }, - "lastUpdated": "2023-02-23T09:05:38.448Z" - }] - }, { - "@type": "type.googleapis.com/envoy.admin.v3.SecretsConfigDump", - "dynamicActiveSecrets": [{ - "name": "xds_certificate", - "lastUpdated": "2023-02-23T09:05:23.442Z", - "secret": { - "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret", - "name": "xds_certificate", - "tlsCertificate": { - "certificateChain": { - "inlineBytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURLekNDQWhPZ0F3SUJBZ0lFTnJRVi9qQU5CZ2txaGtpRzl3MEJBUXNGQURBc01SWXdGQVlEVlFRREV3MWwKYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEVlFRRkV3azFOalE0TXpRek9EVXdIaGNOTWpNd01qRTNNRE0wTVRJNApXaGNOTWpRd01qRTRNRE0wTVRJNFdqQU1NUW93Q0FZRFZRUUREQUVxTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGCkFBT0NBUThBTUlJQkNnS0NBUUVBNmdNSTJSNElEeE5mQ2o1YmZHU1hVUjF4YkVjRjE5VXlhVC9VUEZZcFltM0gKN2c4T3Z6YWRlelFyRkt3dG9PWWFDN0hjam8zVnVHSmhqSDQ1Z3lVbWFzSEg1Q1gzaWFlRlhxQXdVQjRqVTZQSgpBbElCZWlMRVdZVjN1VjMwcGlKK09DWFhrUEQzSFFVb0ZYbnljcHM3OE9PbjZoS0wwNUY0YkJsT2UrMFdIUHdECll2dFQ4TEdpVmcrSkxhR2lxaGgxOXY5endwQUd2akI2Z09kN1BjdkNQNFExUHdkMWdMSnNXVFNweGhDUEVPb2kKV2ZSOG56RERVUHU5aXc2QTJObW1XQ1FxSVNYcDlZUmJMTEdjZnV4VURjcFVYMHpqY0xvcE1sajBnM0RkYVpWRwpzNm9JcW9BSjZ6MFhvdWwrM0ZZdUtJYy8rT1V3VkR1VkI4K0ZRZzlYdlFJREFRQUJvM1V3Y3pBT0JnTlZIUThCCkFmOEVCQU1DQlBBd0hRWURWUjBPQkJZRUZKaUJ3cytVaFRlT2p1L1ZXT29LQWNTSmZBeXVNQjhHQTFVZEl3UVkKTUJhQUZCT3kvOGkxeVMxRWxpN0tNK0gyeXZEM1BJMG1NQ0VHQTFVZEVRUWFNQmlDRmlvdVpXNTJiM2t0WjJGMApaWGRoZVMxemVYTjBaVzB3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUZraHdIakZtQWxqdEpheU54WitodURGCm5UdWd0REZvSTBFT2J0cUhLYnloWU9sdlNFdkhxbFNQSHNRUUhmQnQwbHpOOEtGUTd2YWxTSHRBZStlNzBETHkKaGY3TDQ3eklST3NLcmtmb0tjMjRqaUhNQkVwbCtJdjllU1RWVG9WemxzazVZUGxET2lrMzZpRUY3WDVVZ0RheApsVllZZnpSYzRUb0poODMwT285Wm9pai9LM295dVNXcTVGRzVFWExmeW9tQzZPQ3dxRm5GNzRSM21FTjVheDRlCnppVm5QVDNxVmFZdytzNngwSVhHU282U2M3Q2lUbmMrckFNa3FJNVNsK2p5RHhKTkZBQlIvRllCcTQzK1B1UGkKN0YxOEw0N2l3aVFFYU82NUJzU2hlYmg1Qk1VbytDdzIyM3JsMGRpTldwY3FrdVhtT1BWNDlrWkZkdHpFNytVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" - }, - "privateKey": { - "inlineBytes": "W3JlZGFjdGVkXQ==" } - } - } - }, { - "name": "xds_trusted_ca", - "lastUpdated": "2023-02-23T09:05:23.447Z", - "secret": { - "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret", - "name": "xds_trusted_ca", - "validationContext": { - "trustedCa": { - "inlineBytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURHRENDQWdDZ0F3SUJBZ0lFSWFxd1VUQU5CZ2txaGtpRzl3MEJBUXNGQURBc01SWXdGQVlEVlFRREV3MWwKYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEVlFRRkV3azFOalE0TXpRek9EVXdIaGNOTWpNd01qRTNNRE0wTVRJNApXaGNOTWpRd01qRTRNRE0wTVRJNFdqQXNNUll3RkFZRFZRUURFdzFsYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEClZRUUZFd2sxTmpRNE16UXpPRFV3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRRDIKeFMrNkRWY2FvbHFkVVBzTHZwNUtQMEQyV0hrTkVEY0tPeml3bzZNYm9wczFLYWJnNXVYSVl5T21JRWNTTXNKNwpHbVAxMlJjK0J3V1dFWXRrTHVPU3BwQm1lSjN3aDRrUlVRVTRTemRFU1dDcU40RTNpcTJib3FFVm53SkFGQ1ZpCldldGVjZkZsODZFalliQUxxSnRCbGJCbFFQM1ZMZ1hva0VVamJ4QmFobE1wZitUWkVJNFBuam1zUWN5a21LeXIKaDJwdmM3cnZYb29HTlhTM0Q0eFc1VDY3dmxLYi94UlM3c2gwTkJEU0dtTE1jY2pxWFZXazVOR2lBWVB3dXBWSwpTWG02dnZXUFZCdEd1bkZhS0JSRGx4TlJrb0wzRUN6UkNtenoxR2ZYMGJkSm1leElOM2VIUFBRdkd0M0txeUlnCkgrYnc0OXpqdlVUb2dNcXFpTlcvQWdNQkFBR2pRakJBTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQQmdOVkhSTUIKQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRVHN2L0l0Y2t0UkpZdXlqUGg5c3J3OXp5TkpqQU5CZ2txaGtpRwo5dzBCQVFzRkFBT0NBUUVBd2dvZEsxalhVWFZDVXBTSjE0cEo3S3ZobWZPT1hkaVNISmNSSzlIUzI1c2xwOWN2CkJDSndmWUZmanJ4Rmc5TnV4aVpiM01oVXk5MDBqenBPdk1QWStEeUxFWFVxTGd5ZlBMUzYveVliem8yZHdwdzMKOCtrTXlsQUFlZmtaSW9oT0VhYSsvNFFBVVVGZVp1a1B6bmF6RzZIWnZKQkNxWVdRNXBaSSt3WTI1dzhEU0VOMgpkOCswVkpzWU5IdUk4aXhneGZhUkRycW5LRHBMUGJ3Z3VaRDl6ZkV3dVFaNG1oeEd0Vk1wR0NLSndscWFhdXJ0CkF5aGhzOXBHNERndkpSY1BLeFY4bndRdzZtSm55dkIxcExxTW1aQTVqZWhxbFNvUGVpWUlBMk1neU83cTVPYmMKL040bzBNTVdvZ1piRWR6aTBnTXJRT2lpNE41Q0ZlakVrYStIMmc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" - }, - "matchTypedSubjectAltNames": [{ - "sanType": "DNS", - "matcher": { - "exact": "envoy-gateway" - } - }] - } - } - }] - }, { - "@type": "type.googleapis.com/envoy.admin.v3.EndpointsConfigDump", - "staticEndpointConfigs": [ - { - "endpointConfig": { - "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", - "clusterName": "xds_cluster", - "endpoints": [ - { - "locality": {}, - "lbEndpoints": [ + }] + }, { + "@type": "type.googleapis.com/envoy.admin.v3.EndpointsConfigDump", + "staticEndpointConfigs": [ + { + "endpointConfig": { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "xds_cluster", + "endpoints": [ { - "endpoint": { - "address": { - "socketAddress": { - "address": "10.106.37.54", - "portValue": 18000 - } - }, - "healthCheckConfig": {}, - "hostname": "envoy-gateway" - }, - "healthStatus": "HEALTHY", - "metadata": {}, - "loadBalancingWeight": 1 + "locality": {}, + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.106.37.54", + "portValue": 18000 + } + }, + "healthCheckConfig": {}, + "hostname": "envoy-gateway" + }, + "healthStatus": "HEALTHY", + "metadata": {}, + "loadBalancingWeight": 1 + } + ] } - ] + ], + "policy": { + "overprovisioningFactor": 140 + } } - ], - "policy": { - "overprovisioningFactor": 140 } - } - } - ] - }] -} + ] + }] + } + } +} \ No newline at end of file diff --git a/internal/cmd/egctl/testdata/config/out/out.all.yaml b/internal/cmd/egctl/testdata/config/out/out.all.yaml index 8340ed10132..c4421489b10 100644 --- a/internal/cmd/egctl/testdata/config/out/out.all.yaml +++ b/internal/cmd/egctl/testdata/config/out/out.all.yaml @@ -1,1304 +1,1306 @@ -configs: -- '@type': type.googleapis.com/envoy.admin.v3.BootstrapConfigDump - bootstrap: - admin: - accessLog: - - name: envoy.access_loggers.file - typedConfig: - '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog - path: /dev/null - address: - socketAddress: - address: 127.0.0.1 - portValue: 19000 - dynamicResources: - cdsConfig: - apiConfigSource: - apiType: DELTA_GRPC - grpcServices: - - envoyGrpc: - clusterName: xds_cluster - setNodeOnFirstMessageOnly: true - transportApiVersion: V3 - resourceApiVersion: V3 - ldsConfig: - apiConfigSource: - apiType: DELTA_GRPC - grpcServices: - - envoyGrpc: - clusterName: xds_cluster - setNodeOnFirstMessageOnly: true - transportApiVersion: V3 - resourceApiVersion: V3 - layeredRuntime: - layers: - - name: runtime-0 - rtdsLayer: - name: runtime-0 - rtdsConfig: +default: + eg: + configs: + - '@type': type.googleapis.com/envoy.admin.v3.BootstrapConfigDump + bootstrap: + admin: + accessLog: + - name: envoy.access_loggers.file + typedConfig: + '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog + path: /dev/null + address: + socketAddress: + address: 127.0.0.1 + portValue: 19000 + dynamicResources: + cdsConfig: apiConfigSource: apiType: DELTA_GRPC grpcServices: - envoyGrpc: clusterName: xds_cluster + setNodeOnFirstMessageOnly: true transportApiVersion: V3 resourceApiVersion: V3 - node: - extensions: - - category: envoy.upstreams - name: envoy.filters.connection_pools.tcp.generic - typeUrls: - - envoy.extensions.upstreams.tcp.generic.v3.GenericConnectionPoolProto - - category: envoy.rate_limit_descriptors - name: envoy.rate_limit_descriptors.expr - typeUrls: - - envoy.extensions.rate_limit_descriptors.expr.v3.Descriptor - - category: envoy.matching.http.input - name: envoy.matching.inputs.destination_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.destination_port - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.direct_source_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.dns_san - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.request_headers - typeUrls: - - envoy.type.matcher.v3.HttpRequestHeaderMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.request_trailers - typeUrls: - - envoy.type.matcher.v3.HttpRequestTrailerMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.response_headers - typeUrls: - - envoy.type.matcher.v3.HttpResponseHeaderMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.response_trailers - typeUrls: - - envoy.type.matcher.v3.HttpResponseTrailerMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.server_name - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.ServerNameInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.source_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourceIPInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.source_port - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourcePortInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.source_type - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.status_code_class_input - typeUrls: - - envoy.type.matcher.v3.HttpResponseStatusCodeClassMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.status_code_input - typeUrls: - - envoy.type.matcher.v3.HttpResponseStatusCodeMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.subject - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.uri_san - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput - - category: envoy.matching.http.input - name: query_params - typeUrls: - - envoy.type.matcher.v3.HttpRequestQueryParamMatchInput - - category: envoy.tls.cert_validator - name: envoy.tls.cert_validator.default - - category: envoy.tls.cert_validator - name: envoy.tls.cert_validator.spiffe - - category: envoy.path.match - name: envoy.path.match.uri_template.uri_template_matcher - typeUrls: - - envoy.extensions.path.match.uri_template.v3.UriTemplateMatchConfig - - category: envoy.http.original_ip_detection - name: envoy.http.original_ip_detection.custom_header - typeUrls: - - envoy.extensions.http.original_ip_detection.custom_header.v3.CustomHeaderConfig - - category: envoy.http.original_ip_detection - name: envoy.http.original_ip_detection.xff - typeUrls: - - envoy.extensions.http.original_ip_detection.xff.v3.XffConfig - - category: envoy.filters.http.upstream - name: envoy.buffer - - category: envoy.filters.http.upstream - name: envoy.filters.http.admission_control - typeUrls: - - envoy.extensions.filters.http.admission_control.v3.AdmissionControl - - category: envoy.filters.http.upstream - name: envoy.filters.http.buffer - typeUrls: - - envoy.extensions.filters.http.buffer.v3.Buffer - - envoy.extensions.filters.http.buffer.v3.BufferPerRoute - - category: envoy.filters.http.upstream - name: envoy.filters.http.upstream_codec - typeUrls: - - envoy.extensions.filters.http.upstream_codec.v3.UpstreamCodec - - category: envoy.route.early_data_policy - name: envoy.route.early_data_policy.default - typeUrls: - - envoy.extensions.early_data.v3.DefaultEarlyDataPolicy - - category: envoy.compression.compressor - name: envoy.compression.brotli.compressor - typeUrls: - - envoy.extensions.compression.brotli.compressor.v3.Brotli - - category: envoy.compression.compressor - name: envoy.compression.gzip.compressor - typeUrls: - - envoy.extensions.compression.gzip.compressor.v3.Gzip - - category: envoy.compression.compressor - name: envoy.compression.zstd.compressor - typeUrls: - - envoy.extensions.compression.zstd.compressor.v3.Zstd - - category: envoy.compression.decompressor - name: envoy.compression.brotli.decompressor - typeUrls: - - envoy.extensions.compression.brotli.decompressor.v3.Brotli - - category: envoy.compression.decompressor - name: envoy.compression.gzip.decompressor - typeUrls: - - envoy.extensions.compression.gzip.decompressor.v3.Gzip - - category: envoy.compression.decompressor - name: envoy.compression.zstd.decompressor - typeUrls: - - envoy.extensions.compression.zstd.decompressor.v3.Zstd - - category: envoy.wasm.runtime - name: envoy.wasm.runtime.null - - category: envoy.wasm.runtime - name: envoy.wasm.runtime.v8 - - category: envoy.stats_sinks - name: envoy.dog_statsd - - category: envoy.stats_sinks - name: envoy.graphite_statsd - - category: envoy.stats_sinks - name: envoy.metrics_service - - category: envoy.stats_sinks - name: envoy.stat_sinks.dog_statsd - typeUrls: - - envoy.config.metrics.v3.DogStatsdSink - - category: envoy.stats_sinks - name: envoy.stat_sinks.graphite_statsd - typeUrls: - - envoy.extensions.stat_sinks.graphite_statsd.v3.GraphiteStatsdSink - - category: envoy.stats_sinks - name: envoy.stat_sinks.hystrix - typeUrls: - - envoy.config.metrics.v3.HystrixSink - - category: envoy.stats_sinks - name: envoy.stat_sinks.metrics_service - typeUrls: - - envoy.config.metrics.v3.MetricsServiceConfig - - category: envoy.stats_sinks - name: envoy.stat_sinks.statsd - typeUrls: - - envoy.config.metrics.v3.StatsdSink - - category: envoy.stats_sinks - name: envoy.stat_sinks.wasm - typeUrls: - - envoy.extensions.stat_sinks.wasm.v3.Wasm - - category: envoy.stats_sinks - name: envoy.statsd - - category: envoy.path.rewrite - name: envoy.path.rewrite.uri_template.uri_template_rewriter - typeUrls: - - envoy.extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig - - category: envoy.http.custom_response - name: envoy.extensions.http.custom_response.local_response_policy - typeUrls: - - envoy.extensions.http.custom_response.local_response_policy.v3.LocalResponsePolicy - - category: envoy.http.custom_response - name: envoy.extensions.http.custom_response.redirect_policy - typeUrls: - - envoy.extensions.http.custom_response.redirect_policy.v3.RedirectPolicy - - category: envoy.matching.action - name: envoy.matching.actions.format_string - typeUrls: - - envoy.config.core.v3.SubstitutionFormatString - - category: envoy.matching.action - name: filter-chain-name - typeUrls: - - google.protobuf.StringValue - - category: envoy.quic.connection_id_generator - name: envoy.quic.deterministic_connection_id_generator - typeUrls: - - envoy.extensions.quic.connection_id_generator.v3.DeterministicConnectionIdGeneratorConfig - - category: envoy.network.dns_resolver - name: envoy.network.dns_resolver.cares - typeUrls: - - envoy.extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig - - category: envoy.network.dns_resolver - name: envoy.network.dns_resolver.getaddrinfo - typeUrls: - - envoy.extensions.network.dns_resolver.getaddrinfo.v3.GetAddrInfoDnsResolverConfig - - category: envoy.bootstrap - name: envoy.bootstrap.internal_listener - typeUrls: - - envoy.extensions.bootstrap.internal_listener.v3.InternalListener - - category: envoy.bootstrap - name: envoy.bootstrap.wasm - typeUrls: - - envoy.extensions.wasm.v3.WasmService - - category: envoy.bootstrap - name: envoy.extensions.network.socket_interface.default_socket_interface - typeUrls: - - envoy.extensions.network.socket_interface.v3.DefaultSocketInterface - - category: envoy.filters.listener - name: envoy.filters.listener.http_inspector - typeUrls: - - envoy.extensions.filters.listener.http_inspector.v3.HttpInspector - - category: envoy.filters.listener - name: envoy.filters.listener.original_dst - typeUrls: - - envoy.extensions.filters.listener.original_dst.v3.OriginalDst - - category: envoy.filters.listener - name: envoy.filters.listener.original_src - typeUrls: - - envoy.extensions.filters.listener.original_src.v3.OriginalSrc - - category: envoy.filters.listener - name: envoy.filters.listener.proxy_protocol - typeUrls: - - envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol - - category: envoy.filters.listener - name: envoy.filters.listener.tls_inspector - typeUrls: - - envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector - - category: envoy.filters.listener - name: envoy.listener.http_inspector - - category: envoy.filters.listener - name: envoy.listener.original_dst - - category: envoy.filters.listener - name: envoy.listener.original_src - - category: envoy.filters.listener - name: envoy.listener.proxy_protocol - - category: envoy.filters.listener - name: envoy.listener.tls_inspector - - category: envoy.matching.common_inputs - name: envoy.matching.common_inputs.environment_variable - typeUrls: - - envoy.extensions.matching.common_inputs.environment_variable.v3.Config - - category: envoy.matching.input_matchers - name: envoy.matching.matchers.consistent_hashing - typeUrls: - - envoy.extensions.matching.input_matchers.consistent_hashing.v3.ConsistentHashing - - category: envoy.matching.input_matchers - name: envoy.matching.matchers.ip - typeUrls: - - envoy.extensions.matching.input_matchers.ip.v3.Ip - - category: envoy.grpc_credentials - name: envoy.grpc_credentials.aws_iam - - category: envoy.grpc_credentials - name: envoy.grpc_credentials.default - - category: envoy.grpc_credentials - name: envoy.grpc_credentials.file_based_metadata - - category: envoy.request_id - name: envoy.request_id.uuid - typeUrls: - - envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig - - category: envoy.load_balancing_policies - name: envoy.load_balancing_policies.least_request - typeUrls: - - envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest - - category: envoy.load_balancing_policies - name: envoy.load_balancing_policies.maglev - typeUrls: - - envoy.extensions.load_balancing_policies.maglev.v3.Maglev - - category: envoy.load_balancing_policies - name: envoy.load_balancing_policies.random - typeUrls: - - envoy.extensions.load_balancing_policies.random.v3.Random - - category: envoy.load_balancing_policies - name: envoy.load_balancing_policies.ring_hash - typeUrls: - - envoy.extensions.load_balancing_policies.ring_hash.v3.RingHash - - category: envoy.load_balancing_policies - name: envoy.load_balancing_policies.round_robin - typeUrls: - - envoy.extensions.load_balancing_policies.round_robin.v3.RoundRobin - - category: envoy.resolvers - name: envoy.ip - - category: envoy.filters.http - name: envoy.bandwidth_limit - - category: envoy.filters.http - name: envoy.buffer - - category: envoy.filters.http - name: envoy.cors - - category: envoy.filters.http - name: envoy.csrf - - category: envoy.filters.http - name: envoy.ext_authz - - category: envoy.filters.http - name: envoy.ext_proc - - category: envoy.filters.http - name: envoy.fault - - category: envoy.filters.http - name: envoy.filters.http.adaptive_concurrency - typeUrls: - - envoy.extensions.filters.http.adaptive_concurrency.v3.AdaptiveConcurrency - - category: envoy.filters.http - name: envoy.filters.http.admission_control - typeUrls: - - envoy.extensions.filters.http.admission_control.v3.AdmissionControl - - category: envoy.filters.http - name: envoy.filters.http.alternate_protocols_cache - typeUrls: - - envoy.extensions.filters.http.alternate_protocols_cache.v3.FilterConfig - - category: envoy.filters.http - name: envoy.filters.http.aws_lambda - typeUrls: - - envoy.extensions.filters.http.aws_lambda.v3.Config - - envoy.extensions.filters.http.aws_lambda.v3.PerRouteConfig - - category: envoy.filters.http - name: envoy.filters.http.aws_request_signing - typeUrls: - - envoy.extensions.filters.http.aws_request_signing.v3.AwsRequestSigning - - category: envoy.filters.http - name: envoy.filters.http.bandwidth_limit - typeUrls: - - envoy.extensions.filters.http.bandwidth_limit.v3.BandwidthLimit - - category: envoy.filters.http - name: envoy.filters.http.buffer - typeUrls: - - envoy.extensions.filters.http.buffer.v3.Buffer - - envoy.extensions.filters.http.buffer.v3.BufferPerRoute - - category: envoy.filters.http - name: envoy.filters.http.cache - typeUrls: - - envoy.extensions.filters.http.cache.v3.CacheConfig - - category: envoy.filters.http - name: envoy.filters.http.cdn_loop - typeUrls: - - envoy.extensions.filters.http.cdn_loop.v3.CdnLoopConfig - - category: envoy.filters.http - name: envoy.filters.http.composite - typeUrls: - - envoy.extensions.filters.http.composite.v3.Composite - - category: envoy.filters.http - name: envoy.filters.http.compressor - typeUrls: - - envoy.extensions.filters.http.compressor.v3.Compressor - - envoy.extensions.filters.http.compressor.v3.CompressorPerRoute - - category: envoy.filters.http - name: envoy.filters.http.connect_grpc_bridge - typeUrls: - - envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig - - category: envoy.filters.http - name: envoy.filters.http.cors - typeUrls: - - envoy.extensions.filters.http.cors.v3.Cors - - envoy.extensions.filters.http.cors.v3.CorsPolicy - - category: envoy.filters.http - name: envoy.filters.http.csrf - typeUrls: - - envoy.extensions.filters.http.csrf.v3.CsrfPolicy - - category: envoy.filters.http - name: envoy.filters.http.custom_response - typeUrls: - - envoy.extensions.filters.http.custom_response.v3.CustomResponse - - category: envoy.filters.http - name: envoy.filters.http.decompressor - typeUrls: - - envoy.extensions.filters.http.decompressor.v3.Decompressor - - category: envoy.filters.http - name: envoy.filters.http.dynamic_forward_proxy - typeUrls: - - envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig - - envoy.extensions.filters.http.dynamic_forward_proxy.v3.PerRouteConfig - - category: envoy.filters.http - name: envoy.filters.http.ext_authz - typeUrls: - - envoy.extensions.filters.http.ext_authz.v3.ExtAuthz - - envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute - - category: envoy.filters.http - name: envoy.filters.http.ext_proc - typeUrls: - - envoy.extensions.filters.http.ext_proc.v3.ExtProcPerRoute - - envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor - - category: envoy.filters.http - name: envoy.filters.http.fault - typeUrls: - - envoy.extensions.filters.http.fault.v3.HTTPFault - - category: envoy.filters.http - name: envoy.filters.http.file_system_buffer - typeUrls: - - envoy.extensions.filters.http.file_system_buffer.v3.FileSystemBufferFilterConfig - - category: envoy.filters.http - name: envoy.filters.http.gcp_authn - typeUrls: - - envoy.extensions.filters.http.gcp_authn.v3.GcpAuthnFilterConfig - - category: envoy.filters.http - name: envoy.filters.http.grpc_http1_bridge - typeUrls: - - envoy.extensions.filters.http.grpc_http1_bridge.v3.Config - - category: envoy.filters.http - name: envoy.filters.http.grpc_http1_reverse_bridge - typeUrls: - - envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfig - - envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfigPerRoute - - category: envoy.filters.http - name: envoy.filters.http.grpc_json_transcoder - typeUrls: - - envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder - - category: envoy.filters.http - name: envoy.filters.http.grpc_stats - typeUrls: - - envoy.extensions.filters.http.grpc_stats.v3.FilterConfig - - category: envoy.filters.http - name: envoy.filters.http.grpc_web - typeUrls: - - envoy.extensions.filters.http.grpc_web.v3.GrpcWeb - - category: envoy.filters.http - name: envoy.filters.http.header_to_metadata - typeUrls: - - envoy.extensions.filters.http.header_to_metadata.v3.Config - - category: envoy.filters.http - name: envoy.filters.http.health_check - typeUrls: - - envoy.extensions.filters.http.health_check.v3.HealthCheck - - category: envoy.filters.http - name: envoy.filters.http.ip_tagging - typeUrls: - - envoy.extensions.filters.http.ip_tagging.v3.IPTagging - - category: envoy.filters.http - name: envoy.filters.http.jwt_authn - typeUrls: - - envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication - - envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig - - category: envoy.filters.http - name: envoy.filters.http.local_ratelimit - typeUrls: - - envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit - - category: envoy.filters.http - name: envoy.filters.http.lua - typeUrls: - - envoy.extensions.filters.http.lua.v3.Lua - - envoy.extensions.filters.http.lua.v3.LuaPerRoute - - category: envoy.filters.http - name: envoy.filters.http.match_delegate - typeUrls: - - envoy.extensions.common.matching.v3.ExtensionWithMatcher - - category: envoy.filters.http - name: envoy.filters.http.oauth2 - typeUrls: - - envoy.extensions.filters.http.oauth2.v3.OAuth2 - - category: envoy.filters.http - name: envoy.filters.http.on_demand - typeUrls: - - envoy.extensions.filters.http.on_demand.v3.OnDemand - - envoy.extensions.filters.http.on_demand.v3.PerRouteConfig - - category: envoy.filters.http - name: envoy.filters.http.original_src - typeUrls: - - envoy.extensions.filters.http.original_src.v3.OriginalSrc - - category: envoy.filters.http - name: envoy.filters.http.rate_limit_quota - typeUrls: - - envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig - - envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaOverride - - category: envoy.filters.http - name: envoy.filters.http.ratelimit - typeUrls: - - envoy.extensions.filters.http.ratelimit.v3.RateLimit - - envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute - - category: envoy.filters.http - name: envoy.filters.http.rbac - typeUrls: - - envoy.extensions.filters.http.rbac.v3.RBAC - - envoy.extensions.filters.http.rbac.v3.RBACPerRoute - - category: envoy.filters.http - name: envoy.filters.http.router - typeUrls: - - envoy.extensions.filters.http.router.v3.Router - - category: envoy.filters.http - name: envoy.filters.http.set_metadata - typeUrls: - - envoy.extensions.filters.http.set_metadata.v3.Config - - category: envoy.filters.http - name: envoy.filters.http.stateful_session - typeUrls: - - envoy.extensions.filters.http.stateful_session.v3.StatefulSession - - envoy.extensions.filters.http.stateful_session.v3.StatefulSessionPerRoute - - category: envoy.filters.http - name: envoy.filters.http.tap - typeUrls: - - envoy.extensions.filters.http.tap.v3.Tap - - category: envoy.filters.http - name: envoy.filters.http.wasm - typeUrls: - - envoy.extensions.filters.http.wasm.v3.Wasm - - category: envoy.filters.http - name: envoy.grpc_http1_bridge - - category: envoy.filters.http - name: envoy.grpc_json_transcoder - - category: envoy.filters.http - name: envoy.grpc_web - - category: envoy.filters.http - name: envoy.health_check - - category: envoy.filters.http - name: envoy.ip_tagging - - category: envoy.filters.http - name: envoy.local_rate_limit - - category: envoy.filters.http - name: envoy.lua - - category: envoy.filters.http - name: envoy.rate_limit - - category: envoy.filters.http - name: envoy.router - - category: envoy.access_loggers - name: envoy.access_loggers.file - typeUrls: - - envoy.extensions.access_loggers.file.v3.FileAccessLog - - category: envoy.access_loggers - name: envoy.access_loggers.http_grpc - typeUrls: - - envoy.extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig - - category: envoy.access_loggers - name: envoy.access_loggers.open_telemetry - typeUrls: - - envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig - - category: envoy.access_loggers - name: envoy.access_loggers.stderr - typeUrls: - - envoy.extensions.access_loggers.stream.v3.StderrAccessLog - - category: envoy.access_loggers - name: envoy.access_loggers.stdout - typeUrls: - - envoy.extensions.access_loggers.stream.v3.StdoutAccessLog - - category: envoy.access_loggers - name: envoy.access_loggers.tcp_grpc - typeUrls: - - envoy.extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig - - category: envoy.access_loggers - name: envoy.access_loggers.wasm - typeUrls: - - envoy.extensions.access_loggers.wasm.v3.WasmAccessLog - - category: envoy.access_loggers - name: envoy.file_access_log - - category: envoy.access_loggers - name: envoy.http_grpc_access_log - - category: envoy.access_loggers - name: envoy.open_telemetry_access_log - - category: envoy.access_loggers - name: envoy.stderr_access_log - - category: envoy.access_loggers - name: envoy.stdout_access_log - - category: envoy.access_loggers - name: envoy.tcp_grpc_access_log - - category: envoy.access_loggers - name: envoy.wasm_access_log - - category: envoy.config.validators - name: envoy.config.validators.minimum_clusters - - category: envoy.config.validators - name: envoy.config.validators.minimum_clusters_validator - typeUrls: - - envoy.extensions.config.validators.minimum_clusters.v3.MinimumClustersValidator - - category: envoy.http.header_validators - name: envoy.http.header_validators.envoy_default - typeUrls: - - envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig - - category: envoy.dubbo_proxy.serializers - name: dubbo.hessian2 - - category: quic.http_server_connection - name: quic.http_server_connection.default - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.alts - typeUrls: - - envoy.extensions.transport_sockets.alts.v3.Alts - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.quic - typeUrls: - - envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.raw_buffer - typeUrls: - - envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.starttls - typeUrls: - - envoy.extensions.transport_sockets.starttls.v3.StartTlsConfig - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.tap - typeUrls: - - envoy.extensions.transport_sockets.tap.v3.Tap - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.tcp_stats - typeUrls: - - envoy.extensions.transport_sockets.tcp_stats.v3.Config - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.tls - typeUrls: - - envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext - - category: envoy.transport_sockets.downstream - name: raw_buffer - - category: envoy.transport_sockets.downstream - name: starttls - - category: envoy.transport_sockets.downstream - name: tls - - category: envoy.rbac.matchers - name: envoy.rbac.matchers.upstream_ip_port - typeUrls: - - envoy.extensions.rbac.matchers.upstream_ip_port.v3.UpstreamIpPortMatcher - - category: envoy.common.key_value - name: envoy.key_value.file_based - typeUrls: - - envoy.extensions.key_value.file_based.v3.FileBasedKeyValueStoreConfig - - category: envoy.matching.network.input - name: envoy.matching.inputs.application_protocol - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.ApplicationProtocolInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.destination_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.destination_port - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.direct_source_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.dns_san - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.server_name - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.ServerNameInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.source_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourceIPInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.source_port - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourcePortInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.source_type - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.subject - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.transport_protocol - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.TransportProtocolInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.uri_san - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput - - category: envoy.dubbo_proxy.protocols - name: dubbo - - category: envoy.guarddog_actions - name: envoy.watchdog.abort_action - typeUrls: - - envoy.watchdog.v3.AbortActionConfig - - category: envoy.guarddog_actions - name: envoy.watchdog.profile_action - typeUrls: - - envoy.extensions.watchdog.profile_action.v3.ProfileActionConfig - - category: envoy.quic.server.crypto_stream - name: envoy.quic.crypto_stream.server.quiche - typeUrls: - - envoy.extensions.quic.crypto_stream.v3.CryptoServerStreamConfig - - category: envoy.regex_engines - name: envoy.regex_engines.google_re2 - typeUrls: - - envoy.extensions.regex_engines.v3.GoogleRE2 - - category: envoy.http.stateful_session - name: envoy.http.stateful_session.cookie - typeUrls: - - envoy.extensions.http.stateful_session.cookie.v3.CookieBasedSessionState - - category: envoy.http.stateful_session - name: envoy.http.stateful_session.header - typeUrls: - - envoy.extensions.http.stateful_session.header.v3.HeaderBasedSessionState - - category: envoy.matching.network.custom_matchers - name: envoy.matching.custom_matchers.trie_matcher - typeUrls: - - xds.type.matcher.v3.IPMatcher - - category: envoy.udp_packet_writer - name: envoy.udp_packet_writer.default - typeUrls: - - envoy.extensions.udp_packet_writer.v3.UdpDefaultWriterFactory - - category: envoy.udp_packet_writer - name: envoy.udp_packet_writer.gso - typeUrls: - - envoy.extensions.udp_packet_writer.v3.UdpGsoBatchWriterFactory - - category: envoy.quic.proof_source - name: envoy.quic.proof_source.filter_chain - typeUrls: - - envoy.extensions.quic.proof_source.v3.ProofSourceConfig - - category: envoy.resource_monitors - name: envoy.resource_monitors.fixed_heap - typeUrls: - - envoy.extensions.resource_monitors.fixed_heap.v3.FixedHeapConfig - - category: envoy.resource_monitors - name: envoy.resource_monitors.injected_resource - typeUrls: - - envoy.extensions.resource_monitors.injected_resource.v3.InjectedResourceConfig - - category: envoy.http.stateful_header_formatters - name: envoy.http.stateful_header_formatters.preserve_case - typeUrls: - - envoy.extensions.http.header_formatters.preserve_case.v3.PreserveCaseFormatterConfig - - category: envoy.http.stateful_header_formatters - name: preserve_case - - category: envoy.thrift_proxy.filters - name: envoy.filters.thrift.header_to_metadata - typeUrls: - - envoy.extensions.filters.network.thrift_proxy.filters.header_to_metadata.v3.HeaderToMetadata - - category: envoy.thrift_proxy.filters - name: envoy.filters.thrift.payload_to_metadata - typeUrls: - - envoy.extensions.filters.network.thrift_proxy.filters.payload_to_metadata.v3.PayloadToMetadata - - category: envoy.thrift_proxy.filters - name: envoy.filters.thrift.rate_limit - typeUrls: - - envoy.extensions.filters.network.thrift_proxy.filters.ratelimit.v3.RateLimit - - category: envoy.thrift_proxy.filters - name: envoy.filters.thrift.router - typeUrls: - - envoy.extensions.filters.network.thrift_proxy.router.v3.Router - - category: envoy.tracers - name: envoy.tracers.datadog - typeUrls: - - envoy.config.trace.v3.DatadogConfig - - category: envoy.tracers - name: envoy.tracers.dynamic_ot - typeUrls: - - envoy.config.trace.v3.DynamicOtConfig - - category: envoy.tracers - name: envoy.tracers.opencensus - typeUrls: - - envoy.config.trace.v3.OpenCensusConfig - - category: envoy.tracers - name: envoy.tracers.opentelemetry - typeUrls: - - envoy.config.trace.v3.OpenTelemetryConfig - - category: envoy.tracers - name: envoy.tracers.skywalking - typeUrls: - - envoy.config.trace.v3.SkyWalkingConfig - - category: envoy.tracers - name: envoy.tracers.xray - typeUrls: - - envoy.config.trace.v3.XRayConfig - - category: envoy.tracers - name: envoy.tracers.zipkin - typeUrls: - - envoy.config.trace.v3.ZipkinConfig - - category: envoy.tracers - name: envoy.zipkin - - category: envoy.retry_priorities - name: envoy.retry_priorities.previous_priorities - typeUrls: - - envoy.extensions.retry.priority.previous_priorities.v3.PreviousPrioritiesConfig - - category: envoy.http.early_header_mutation - name: envoy.http.early_header_mutation.header_mutation - typeUrls: - - envoy.extensions.http.early_header_mutation.header_mutation.v3.HeaderMutation - - category: envoy.connection_handler - name: envoy.connection_handler.default - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.alts - typeUrls: - - envoy.extensions.transport_sockets.alts.v3.Alts - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.http_11_proxy - typeUrls: - - envoy.extensions.transport_sockets.http_11_proxy.v3.Http11ProxyUpstreamTransport - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.internal_upstream - typeUrls: - - envoy.extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.quic - typeUrls: - - envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.raw_buffer - typeUrls: - - envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.starttls - typeUrls: - - envoy.extensions.transport_sockets.starttls.v3.UpstreamStartTlsConfig - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.tap - typeUrls: - - envoy.extensions.transport_sockets.tap.v3.Tap - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.tcp_stats - typeUrls: - - envoy.extensions.transport_sockets.tcp_stats.v3.Config - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.tls - typeUrls: - - envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.upstream_proxy_protocol - typeUrls: - - envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport - - category: envoy.transport_sockets.upstream - name: raw_buffer - - category: envoy.transport_sockets.upstream - name: starttls - - category: envoy.transport_sockets.upstream - name: tls - - category: envoy.thrift_proxy.transports - name: auto - - category: envoy.thrift_proxy.transports - name: framed - - category: envoy.thrift_proxy.transports - name: header - - category: envoy.thrift_proxy.transports - name: unframed - - category: envoy.clusters - name: envoy.cluster.eds - - category: envoy.clusters - name: envoy.cluster.logical_dns - - category: envoy.clusters - name: envoy.cluster.original_dst - - category: envoy.clusters - name: envoy.cluster.static - - category: envoy.clusters - name: envoy.cluster.strict_dns - - category: envoy.clusters - name: envoy.clusters.aggregate - - category: envoy.clusters - name: envoy.clusters.dynamic_forward_proxy - - category: envoy.clusters - name: envoy.clusters.redis - - category: envoy.access_loggers.extension_filters - name: envoy.access_loggers.extension_filters.cel - typeUrls: - - envoy.extensions.access_loggers.filters.cel.v3.ExpressionFilter - - category: envoy.thrift_proxy.protocols - name: auto - - category: envoy.thrift_proxy.protocols - name: binary - - category: envoy.thrift_proxy.protocols - name: binary/non-strict - - category: envoy.thrift_proxy.protocols - name: compact - - category: envoy.thrift_proxy.protocols - name: twitter - - category: envoy.upstream_options - name: envoy.extensions.upstreams.http.v3.HttpProtocolOptions - typeUrls: - - envoy.extensions.upstreams.http.v3.HttpProtocolOptions - - category: envoy.upstream_options - name: envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions - typeUrls: - - envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions - - category: envoy.upstream_options - name: envoy.upstreams.http.http_protocol_options - - category: envoy.upstream_options - name: envoy.upstreams.tcp.tcp_protocol_options - - category: envoy.listener_manager_impl - name: envoy.listener_manager_impl.default - typeUrls: - - envoy.config.listener.v3.ListenerManager - - category: network.connection.client - name: default - - category: network.connection.client - name: envoy_internal - - category: envoy.filters.udp_listener - name: envoy.filters.udp.dns_filter - typeUrls: - - envoy.extensions.filters.udp.dns_filter.v3.DnsFilterConfig - - category: envoy.filters.udp_listener - name: envoy.filters.udp_listener.udp_proxy - typeUrls: - - envoy.extensions.filters.udp.udp_proxy.v3.UdpProxyConfig - - category: envoy.http.cache - name: envoy.extensions.http.cache.file_system_http_cache - typeUrls: - - envoy.extensions.http.cache.file_system_http_cache.v3.FileSystemHttpCacheConfig - - category: envoy.http.cache - name: envoy.extensions.http.cache.simple - typeUrls: - - envoy.extensions.http.cache.simple_http_cache.v3.SimpleHttpCacheConfig - - category: envoy.retry_host_predicates - name: envoy.retry_host_predicates.omit_canary_hosts - typeUrls: - - envoy.extensions.retry.host.omit_canary_hosts.v3.OmitCanaryHostsPredicate - - category: envoy.retry_host_predicates - name: envoy.retry_host_predicates.omit_host_metadata - typeUrls: - - envoy.extensions.retry.host.omit_host_metadata.v3.OmitHostMetadataConfig - - category: envoy.retry_host_predicates - name: envoy.retry_host_predicates.previous_hosts - typeUrls: - - envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate - - category: envoy.formatter - name: envoy.formatter.metadata - typeUrls: - - envoy.extensions.formatter.metadata.v3.Metadata - - category: envoy.formatter - name: envoy.formatter.req_without_query - typeUrls: - - envoy.extensions.formatter.req_without_query.v3.ReqWithoutQuery - - category: envoy.internal_redirect_predicates - name: envoy.internal_redirect_predicates.allow_listed_routes - typeUrls: - - envoy.extensions.internal_redirect.allow_listed_routes.v3.AllowListedRoutesConfig - - category: envoy.internal_redirect_predicates - name: envoy.internal_redirect_predicates.previous_routes - typeUrls: - - envoy.extensions.internal_redirect.previous_routes.v3.PreviousRoutesConfig - - category: envoy.internal_redirect_predicates - name: envoy.internal_redirect_predicates.safe_cross_scheme - typeUrls: - - envoy.extensions.internal_redirect.safe_cross_scheme.v3.SafeCrossSchemeConfig - - category: envoy.matching.http.custom_matchers - name: envoy.matching.custom_matchers.trie_matcher - typeUrls: - - xds.type.matcher.v3.IPMatcher - - category: envoy.dubbo_proxy.filters - name: envoy.filters.dubbo.router - typeUrls: - - envoy.extensions.filters.network.dubbo_proxy.router.v3.Router - - category: envoy.filters.network - name: envoy.echo - - category: envoy.filters.network - name: envoy.ext_authz - - category: envoy.filters.network - name: envoy.filters.network.connection_limit - typeUrls: - - envoy.extensions.filters.network.connection_limit.v3.ConnectionLimit - - category: envoy.filters.network - name: envoy.filters.network.direct_response - typeUrls: - - envoy.extensions.filters.network.direct_response.v3.Config - - category: envoy.filters.network - name: envoy.filters.network.dubbo_proxy - typeUrls: - - envoy.extensions.filters.network.dubbo_proxy.v3.DubboProxy - - category: envoy.filters.network - name: envoy.filters.network.echo - typeUrls: - - envoy.extensions.filters.network.echo.v3.Echo - - category: envoy.filters.network - name: envoy.filters.network.ext_authz - typeUrls: - - envoy.extensions.filters.network.ext_authz.v3.ExtAuthz - - category: envoy.filters.network - name: envoy.filters.network.http_connection_manager - typeUrls: - - envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager - - category: envoy.filters.network - name: envoy.filters.network.local_ratelimit - typeUrls: - - envoy.extensions.filters.network.local_ratelimit.v3.LocalRateLimit - - category: envoy.filters.network - name: envoy.filters.network.mongo_proxy - typeUrls: - - envoy.extensions.filters.network.mongo_proxy.v3.MongoProxy - - category: envoy.filters.network - name: envoy.filters.network.ratelimit - typeUrls: - - envoy.extensions.filters.network.ratelimit.v3.RateLimit - - category: envoy.filters.network - name: envoy.filters.network.rbac - typeUrls: - - envoy.extensions.filters.network.rbac.v3.RBAC - - category: envoy.filters.network - name: envoy.filters.network.redis_proxy - typeUrls: - - envoy.extensions.filters.network.redis_proxy.v3.RedisProxy - - category: envoy.filters.network - name: envoy.filters.network.sni_cluster - typeUrls: - - envoy.extensions.filters.network.sni_cluster.v3.SniCluster - - category: envoy.filters.network - name: envoy.filters.network.sni_dynamic_forward_proxy - typeUrls: - - envoy.extensions.filters.network.sni_dynamic_forward_proxy.v3.FilterConfig - - category: envoy.filters.network - name: envoy.filters.network.tcp_proxy - typeUrls: - - envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy - - category: envoy.filters.network - name: envoy.filters.network.thrift_proxy - typeUrls: - - envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy - - category: envoy.filters.network - name: envoy.filters.network.wasm - typeUrls: - - envoy.extensions.filters.network.wasm.v3.Wasm - - category: envoy.filters.network - name: envoy.filters.network.zookeeper_proxy - typeUrls: - - envoy.extensions.filters.network.zookeeper_proxy.v3.ZooKeeperProxy - - category: envoy.filters.network - name: envoy.http_connection_manager - - category: envoy.filters.network - name: envoy.mongo_proxy - - category: envoy.filters.network - name: envoy.ratelimit - - category: envoy.filters.network - name: envoy.redis_proxy - - category: envoy.filters.network - name: envoy.tcp_proxy - - category: envoy.health_checkers - name: envoy.health_checkers.redis - typeUrls: - - envoy.extensions.health_checkers.redis.v3.Redis - - category: envoy.health_checkers - name: envoy.health_checkers.thrift - typeUrls: - - envoy.extensions.health_checkers.thrift.v3.Thrift - userAgentBuildVersion: - metadata: - build.label: dev - build.type: RELEASE - revision.sha: 14111e3c62d3d38b0c921cb7011fd0a94e880aed - revision.status: Clean - ssl.version: BoringSSL - version: - majorNumber: 1 - minorNumber: 26 - userAgentName: envoy - staticResources: - clusters: - - connectTimeout: 1s - loadAssignment: + ldsConfig: + apiConfigSource: + apiType: DELTA_GRPC + grpcServices: + - envoyGrpc: + clusterName: xds_cluster + setNodeOnFirstMessageOnly: true + transportApiVersion: V3 + resourceApiVersion: V3 + layeredRuntime: + layers: + - name: runtime-0 + rtdsLayer: + name: runtime-0 + rtdsConfig: + apiConfigSource: + apiType: DELTA_GRPC + grpcServices: + - envoyGrpc: + clusterName: xds_cluster + transportApiVersion: V3 + resourceApiVersion: V3 + node: + extensions: + - category: envoy.upstreams + name: envoy.filters.connection_pools.tcp.generic + typeUrls: + - envoy.extensions.upstreams.tcp.generic.v3.GenericConnectionPoolProto + - category: envoy.rate_limit_descriptors + name: envoy.rate_limit_descriptors.expr + typeUrls: + - envoy.extensions.rate_limit_descriptors.expr.v3.Descriptor + - category: envoy.matching.http.input + name: envoy.matching.inputs.destination_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.destination_port + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.direct_source_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.dns_san + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.request_headers + typeUrls: + - envoy.type.matcher.v3.HttpRequestHeaderMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.request_trailers + typeUrls: + - envoy.type.matcher.v3.HttpRequestTrailerMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.response_headers + typeUrls: + - envoy.type.matcher.v3.HttpResponseHeaderMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.response_trailers + typeUrls: + - envoy.type.matcher.v3.HttpResponseTrailerMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.server_name + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.ServerNameInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.source_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourceIPInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.source_port + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourcePortInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.source_type + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.status_code_class_input + typeUrls: + - envoy.type.matcher.v3.HttpResponseStatusCodeClassMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.status_code_input + typeUrls: + - envoy.type.matcher.v3.HttpResponseStatusCodeMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.subject + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.uri_san + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput + - category: envoy.matching.http.input + name: query_params + typeUrls: + - envoy.type.matcher.v3.HttpRequestQueryParamMatchInput + - category: envoy.tls.cert_validator + name: envoy.tls.cert_validator.default + - category: envoy.tls.cert_validator + name: envoy.tls.cert_validator.spiffe + - category: envoy.path.match + name: envoy.path.match.uri_template.uri_template_matcher + typeUrls: + - envoy.extensions.path.match.uri_template.v3.UriTemplateMatchConfig + - category: envoy.http.original_ip_detection + name: envoy.http.original_ip_detection.custom_header + typeUrls: + - envoy.extensions.http.original_ip_detection.custom_header.v3.CustomHeaderConfig + - category: envoy.http.original_ip_detection + name: envoy.http.original_ip_detection.xff + typeUrls: + - envoy.extensions.http.original_ip_detection.xff.v3.XffConfig + - category: envoy.filters.http.upstream + name: envoy.buffer + - category: envoy.filters.http.upstream + name: envoy.filters.http.admission_control + typeUrls: + - envoy.extensions.filters.http.admission_control.v3.AdmissionControl + - category: envoy.filters.http.upstream + name: envoy.filters.http.buffer + typeUrls: + - envoy.extensions.filters.http.buffer.v3.Buffer + - envoy.extensions.filters.http.buffer.v3.BufferPerRoute + - category: envoy.filters.http.upstream + name: envoy.filters.http.upstream_codec + typeUrls: + - envoy.extensions.filters.http.upstream_codec.v3.UpstreamCodec + - category: envoy.route.early_data_policy + name: envoy.route.early_data_policy.default + typeUrls: + - envoy.extensions.early_data.v3.DefaultEarlyDataPolicy + - category: envoy.compression.compressor + name: envoy.compression.brotli.compressor + typeUrls: + - envoy.extensions.compression.brotli.compressor.v3.Brotli + - category: envoy.compression.compressor + name: envoy.compression.gzip.compressor + typeUrls: + - envoy.extensions.compression.gzip.compressor.v3.Gzip + - category: envoy.compression.compressor + name: envoy.compression.zstd.compressor + typeUrls: + - envoy.extensions.compression.zstd.compressor.v3.Zstd + - category: envoy.compression.decompressor + name: envoy.compression.brotli.decompressor + typeUrls: + - envoy.extensions.compression.brotli.decompressor.v3.Brotli + - category: envoy.compression.decompressor + name: envoy.compression.gzip.decompressor + typeUrls: + - envoy.extensions.compression.gzip.decompressor.v3.Gzip + - category: envoy.compression.decompressor + name: envoy.compression.zstd.decompressor + typeUrls: + - envoy.extensions.compression.zstd.decompressor.v3.Zstd + - category: envoy.wasm.runtime + name: envoy.wasm.runtime.null + - category: envoy.wasm.runtime + name: envoy.wasm.runtime.v8 + - category: envoy.stats_sinks + name: envoy.dog_statsd + - category: envoy.stats_sinks + name: envoy.graphite_statsd + - category: envoy.stats_sinks + name: envoy.metrics_service + - category: envoy.stats_sinks + name: envoy.stat_sinks.dog_statsd + typeUrls: + - envoy.config.metrics.v3.DogStatsdSink + - category: envoy.stats_sinks + name: envoy.stat_sinks.graphite_statsd + typeUrls: + - envoy.extensions.stat_sinks.graphite_statsd.v3.GraphiteStatsdSink + - category: envoy.stats_sinks + name: envoy.stat_sinks.hystrix + typeUrls: + - envoy.config.metrics.v3.HystrixSink + - category: envoy.stats_sinks + name: envoy.stat_sinks.metrics_service + typeUrls: + - envoy.config.metrics.v3.MetricsServiceConfig + - category: envoy.stats_sinks + name: envoy.stat_sinks.statsd + typeUrls: + - envoy.config.metrics.v3.StatsdSink + - category: envoy.stats_sinks + name: envoy.stat_sinks.wasm + typeUrls: + - envoy.extensions.stat_sinks.wasm.v3.Wasm + - category: envoy.stats_sinks + name: envoy.statsd + - category: envoy.path.rewrite + name: envoy.path.rewrite.uri_template.uri_template_rewriter + typeUrls: + - envoy.extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig + - category: envoy.http.custom_response + name: envoy.extensions.http.custom_response.local_response_policy + typeUrls: + - envoy.extensions.http.custom_response.local_response_policy.v3.LocalResponsePolicy + - category: envoy.http.custom_response + name: envoy.extensions.http.custom_response.redirect_policy + typeUrls: + - envoy.extensions.http.custom_response.redirect_policy.v3.RedirectPolicy + - category: envoy.matching.action + name: envoy.matching.actions.format_string + typeUrls: + - envoy.config.core.v3.SubstitutionFormatString + - category: envoy.matching.action + name: filter-chain-name + typeUrls: + - google.protobuf.StringValue + - category: envoy.quic.connection_id_generator + name: envoy.quic.deterministic_connection_id_generator + typeUrls: + - envoy.extensions.quic.connection_id_generator.v3.DeterministicConnectionIdGeneratorConfig + - category: envoy.network.dns_resolver + name: envoy.network.dns_resolver.cares + typeUrls: + - envoy.extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig + - category: envoy.network.dns_resolver + name: envoy.network.dns_resolver.getaddrinfo + typeUrls: + - envoy.extensions.network.dns_resolver.getaddrinfo.v3.GetAddrInfoDnsResolverConfig + - category: envoy.bootstrap + name: envoy.bootstrap.internal_listener + typeUrls: + - envoy.extensions.bootstrap.internal_listener.v3.InternalListener + - category: envoy.bootstrap + name: envoy.bootstrap.wasm + typeUrls: + - envoy.extensions.wasm.v3.WasmService + - category: envoy.bootstrap + name: envoy.extensions.network.socket_interface.default_socket_interface + typeUrls: + - envoy.extensions.network.socket_interface.v3.DefaultSocketInterface + - category: envoy.filters.listener + name: envoy.filters.listener.http_inspector + typeUrls: + - envoy.extensions.filters.listener.http_inspector.v3.HttpInspector + - category: envoy.filters.listener + name: envoy.filters.listener.original_dst + typeUrls: + - envoy.extensions.filters.listener.original_dst.v3.OriginalDst + - category: envoy.filters.listener + name: envoy.filters.listener.original_src + typeUrls: + - envoy.extensions.filters.listener.original_src.v3.OriginalSrc + - category: envoy.filters.listener + name: envoy.filters.listener.proxy_protocol + typeUrls: + - envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol + - category: envoy.filters.listener + name: envoy.filters.listener.tls_inspector + typeUrls: + - envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector + - category: envoy.filters.listener + name: envoy.listener.http_inspector + - category: envoy.filters.listener + name: envoy.listener.original_dst + - category: envoy.filters.listener + name: envoy.listener.original_src + - category: envoy.filters.listener + name: envoy.listener.proxy_protocol + - category: envoy.filters.listener + name: envoy.listener.tls_inspector + - category: envoy.matching.common_inputs + name: envoy.matching.common_inputs.environment_variable + typeUrls: + - envoy.extensions.matching.common_inputs.environment_variable.v3.Config + - category: envoy.matching.input_matchers + name: envoy.matching.matchers.consistent_hashing + typeUrls: + - envoy.extensions.matching.input_matchers.consistent_hashing.v3.ConsistentHashing + - category: envoy.matching.input_matchers + name: envoy.matching.matchers.ip + typeUrls: + - envoy.extensions.matching.input_matchers.ip.v3.Ip + - category: envoy.grpc_credentials + name: envoy.grpc_credentials.aws_iam + - category: envoy.grpc_credentials + name: envoy.grpc_credentials.default + - category: envoy.grpc_credentials + name: envoy.grpc_credentials.file_based_metadata + - category: envoy.request_id + name: envoy.request_id.uuid + typeUrls: + - envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig + - category: envoy.load_balancing_policies + name: envoy.load_balancing_policies.least_request + typeUrls: + - envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest + - category: envoy.load_balancing_policies + name: envoy.load_balancing_policies.maglev + typeUrls: + - envoy.extensions.load_balancing_policies.maglev.v3.Maglev + - category: envoy.load_balancing_policies + name: envoy.load_balancing_policies.random + typeUrls: + - envoy.extensions.load_balancing_policies.random.v3.Random + - category: envoy.load_balancing_policies + name: envoy.load_balancing_policies.ring_hash + typeUrls: + - envoy.extensions.load_balancing_policies.ring_hash.v3.RingHash + - category: envoy.load_balancing_policies + name: envoy.load_balancing_policies.round_robin + typeUrls: + - envoy.extensions.load_balancing_policies.round_robin.v3.RoundRobin + - category: envoy.resolvers + name: envoy.ip + - category: envoy.filters.http + name: envoy.bandwidth_limit + - category: envoy.filters.http + name: envoy.buffer + - category: envoy.filters.http + name: envoy.cors + - category: envoy.filters.http + name: envoy.csrf + - category: envoy.filters.http + name: envoy.ext_authz + - category: envoy.filters.http + name: envoy.ext_proc + - category: envoy.filters.http + name: envoy.fault + - category: envoy.filters.http + name: envoy.filters.http.adaptive_concurrency + typeUrls: + - envoy.extensions.filters.http.adaptive_concurrency.v3.AdaptiveConcurrency + - category: envoy.filters.http + name: envoy.filters.http.admission_control + typeUrls: + - envoy.extensions.filters.http.admission_control.v3.AdmissionControl + - category: envoy.filters.http + name: envoy.filters.http.alternate_protocols_cache + typeUrls: + - envoy.extensions.filters.http.alternate_protocols_cache.v3.FilterConfig + - category: envoy.filters.http + name: envoy.filters.http.aws_lambda + typeUrls: + - envoy.extensions.filters.http.aws_lambda.v3.Config + - envoy.extensions.filters.http.aws_lambda.v3.PerRouteConfig + - category: envoy.filters.http + name: envoy.filters.http.aws_request_signing + typeUrls: + - envoy.extensions.filters.http.aws_request_signing.v3.AwsRequestSigning + - category: envoy.filters.http + name: envoy.filters.http.bandwidth_limit + typeUrls: + - envoy.extensions.filters.http.bandwidth_limit.v3.BandwidthLimit + - category: envoy.filters.http + name: envoy.filters.http.buffer + typeUrls: + - envoy.extensions.filters.http.buffer.v3.Buffer + - envoy.extensions.filters.http.buffer.v3.BufferPerRoute + - category: envoy.filters.http + name: envoy.filters.http.cache + typeUrls: + - envoy.extensions.filters.http.cache.v3.CacheConfig + - category: envoy.filters.http + name: envoy.filters.http.cdn_loop + typeUrls: + - envoy.extensions.filters.http.cdn_loop.v3.CdnLoopConfig + - category: envoy.filters.http + name: envoy.filters.http.composite + typeUrls: + - envoy.extensions.filters.http.composite.v3.Composite + - category: envoy.filters.http + name: envoy.filters.http.compressor + typeUrls: + - envoy.extensions.filters.http.compressor.v3.Compressor + - envoy.extensions.filters.http.compressor.v3.CompressorPerRoute + - category: envoy.filters.http + name: envoy.filters.http.connect_grpc_bridge + typeUrls: + - envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig + - category: envoy.filters.http + name: envoy.filters.http.cors + typeUrls: + - envoy.extensions.filters.http.cors.v3.Cors + - envoy.extensions.filters.http.cors.v3.CorsPolicy + - category: envoy.filters.http + name: envoy.filters.http.csrf + typeUrls: + - envoy.extensions.filters.http.csrf.v3.CsrfPolicy + - category: envoy.filters.http + name: envoy.filters.http.custom_response + typeUrls: + - envoy.extensions.filters.http.custom_response.v3.CustomResponse + - category: envoy.filters.http + name: envoy.filters.http.decompressor + typeUrls: + - envoy.extensions.filters.http.decompressor.v3.Decompressor + - category: envoy.filters.http + name: envoy.filters.http.dynamic_forward_proxy + typeUrls: + - envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig + - envoy.extensions.filters.http.dynamic_forward_proxy.v3.PerRouteConfig + - category: envoy.filters.http + name: envoy.filters.http.ext_authz + typeUrls: + - envoy.extensions.filters.http.ext_authz.v3.ExtAuthz + - envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute + - category: envoy.filters.http + name: envoy.filters.http.ext_proc + typeUrls: + - envoy.extensions.filters.http.ext_proc.v3.ExtProcPerRoute + - envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor + - category: envoy.filters.http + name: envoy.filters.http.fault + typeUrls: + - envoy.extensions.filters.http.fault.v3.HTTPFault + - category: envoy.filters.http + name: envoy.filters.http.file_system_buffer + typeUrls: + - envoy.extensions.filters.http.file_system_buffer.v3.FileSystemBufferFilterConfig + - category: envoy.filters.http + name: envoy.filters.http.gcp_authn + typeUrls: + - envoy.extensions.filters.http.gcp_authn.v3.GcpAuthnFilterConfig + - category: envoy.filters.http + name: envoy.filters.http.grpc_http1_bridge + typeUrls: + - envoy.extensions.filters.http.grpc_http1_bridge.v3.Config + - category: envoy.filters.http + name: envoy.filters.http.grpc_http1_reverse_bridge + typeUrls: + - envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfig + - envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfigPerRoute + - category: envoy.filters.http + name: envoy.filters.http.grpc_json_transcoder + typeUrls: + - envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder + - category: envoy.filters.http + name: envoy.filters.http.grpc_stats + typeUrls: + - envoy.extensions.filters.http.grpc_stats.v3.FilterConfig + - category: envoy.filters.http + name: envoy.filters.http.grpc_web + typeUrls: + - envoy.extensions.filters.http.grpc_web.v3.GrpcWeb + - category: envoy.filters.http + name: envoy.filters.http.header_to_metadata + typeUrls: + - envoy.extensions.filters.http.header_to_metadata.v3.Config + - category: envoy.filters.http + name: envoy.filters.http.health_check + typeUrls: + - envoy.extensions.filters.http.health_check.v3.HealthCheck + - category: envoy.filters.http + name: envoy.filters.http.ip_tagging + typeUrls: + - envoy.extensions.filters.http.ip_tagging.v3.IPTagging + - category: envoy.filters.http + name: envoy.filters.http.jwt_authn + typeUrls: + - envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication + - envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig + - category: envoy.filters.http + name: envoy.filters.http.local_ratelimit + typeUrls: + - envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit + - category: envoy.filters.http + name: envoy.filters.http.lua + typeUrls: + - envoy.extensions.filters.http.lua.v3.Lua + - envoy.extensions.filters.http.lua.v3.LuaPerRoute + - category: envoy.filters.http + name: envoy.filters.http.match_delegate + typeUrls: + - envoy.extensions.common.matching.v3.ExtensionWithMatcher + - category: envoy.filters.http + name: envoy.filters.http.oauth2 + typeUrls: + - envoy.extensions.filters.http.oauth2.v3.OAuth2 + - category: envoy.filters.http + name: envoy.filters.http.on_demand + typeUrls: + - envoy.extensions.filters.http.on_demand.v3.OnDemand + - envoy.extensions.filters.http.on_demand.v3.PerRouteConfig + - category: envoy.filters.http + name: envoy.filters.http.original_src + typeUrls: + - envoy.extensions.filters.http.original_src.v3.OriginalSrc + - category: envoy.filters.http + name: envoy.filters.http.rate_limit_quota + typeUrls: + - envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig + - envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaOverride + - category: envoy.filters.http + name: envoy.filters.http.ratelimit + typeUrls: + - envoy.extensions.filters.http.ratelimit.v3.RateLimit + - envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute + - category: envoy.filters.http + name: envoy.filters.http.rbac + typeUrls: + - envoy.extensions.filters.http.rbac.v3.RBAC + - envoy.extensions.filters.http.rbac.v3.RBACPerRoute + - category: envoy.filters.http + name: envoy.filters.http.router + typeUrls: + - envoy.extensions.filters.http.router.v3.Router + - category: envoy.filters.http + name: envoy.filters.http.set_metadata + typeUrls: + - envoy.extensions.filters.http.set_metadata.v3.Config + - category: envoy.filters.http + name: envoy.filters.http.stateful_session + typeUrls: + - envoy.extensions.filters.http.stateful_session.v3.StatefulSession + - envoy.extensions.filters.http.stateful_session.v3.StatefulSessionPerRoute + - category: envoy.filters.http + name: envoy.filters.http.tap + typeUrls: + - envoy.extensions.filters.http.tap.v3.Tap + - category: envoy.filters.http + name: envoy.filters.http.wasm + typeUrls: + - envoy.extensions.filters.http.wasm.v3.Wasm + - category: envoy.filters.http + name: envoy.grpc_http1_bridge + - category: envoy.filters.http + name: envoy.grpc_json_transcoder + - category: envoy.filters.http + name: envoy.grpc_web + - category: envoy.filters.http + name: envoy.health_check + - category: envoy.filters.http + name: envoy.ip_tagging + - category: envoy.filters.http + name: envoy.local_rate_limit + - category: envoy.filters.http + name: envoy.lua + - category: envoy.filters.http + name: envoy.rate_limit + - category: envoy.filters.http + name: envoy.router + - category: envoy.access_loggers + name: envoy.access_loggers.file + typeUrls: + - envoy.extensions.access_loggers.file.v3.FileAccessLog + - category: envoy.access_loggers + name: envoy.access_loggers.http_grpc + typeUrls: + - envoy.extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig + - category: envoy.access_loggers + name: envoy.access_loggers.open_telemetry + typeUrls: + - envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig + - category: envoy.access_loggers + name: envoy.access_loggers.stderr + typeUrls: + - envoy.extensions.access_loggers.stream.v3.StderrAccessLog + - category: envoy.access_loggers + name: envoy.access_loggers.stdout + typeUrls: + - envoy.extensions.access_loggers.stream.v3.StdoutAccessLog + - category: envoy.access_loggers + name: envoy.access_loggers.tcp_grpc + typeUrls: + - envoy.extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig + - category: envoy.access_loggers + name: envoy.access_loggers.wasm + typeUrls: + - envoy.extensions.access_loggers.wasm.v3.WasmAccessLog + - category: envoy.access_loggers + name: envoy.file_access_log + - category: envoy.access_loggers + name: envoy.http_grpc_access_log + - category: envoy.access_loggers + name: envoy.open_telemetry_access_log + - category: envoy.access_loggers + name: envoy.stderr_access_log + - category: envoy.access_loggers + name: envoy.stdout_access_log + - category: envoy.access_loggers + name: envoy.tcp_grpc_access_log + - category: envoy.access_loggers + name: envoy.wasm_access_log + - category: envoy.config.validators + name: envoy.config.validators.minimum_clusters + - category: envoy.config.validators + name: envoy.config.validators.minimum_clusters_validator + typeUrls: + - envoy.extensions.config.validators.minimum_clusters.v3.MinimumClustersValidator + - category: envoy.http.header_validators + name: envoy.http.header_validators.envoy_default + typeUrls: + - envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig + - category: envoy.dubbo_proxy.serializers + name: dubbo.hessian2 + - category: quic.http_server_connection + name: quic.http_server_connection.default + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.alts + typeUrls: + - envoy.extensions.transport_sockets.alts.v3.Alts + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.quic + typeUrls: + - envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.raw_buffer + typeUrls: + - envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.starttls + typeUrls: + - envoy.extensions.transport_sockets.starttls.v3.StartTlsConfig + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.tap + typeUrls: + - envoy.extensions.transport_sockets.tap.v3.Tap + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.tcp_stats + typeUrls: + - envoy.extensions.transport_sockets.tcp_stats.v3.Config + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.tls + typeUrls: + - envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext + - category: envoy.transport_sockets.downstream + name: raw_buffer + - category: envoy.transport_sockets.downstream + name: starttls + - category: envoy.transport_sockets.downstream + name: tls + - category: envoy.rbac.matchers + name: envoy.rbac.matchers.upstream_ip_port + typeUrls: + - envoy.extensions.rbac.matchers.upstream_ip_port.v3.UpstreamIpPortMatcher + - category: envoy.common.key_value + name: envoy.key_value.file_based + typeUrls: + - envoy.extensions.key_value.file_based.v3.FileBasedKeyValueStoreConfig + - category: envoy.matching.network.input + name: envoy.matching.inputs.application_protocol + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.ApplicationProtocolInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.destination_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.destination_port + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.direct_source_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.dns_san + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.server_name + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.ServerNameInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.source_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourceIPInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.source_port + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourcePortInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.source_type + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.subject + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.transport_protocol + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.TransportProtocolInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.uri_san + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput + - category: envoy.dubbo_proxy.protocols + name: dubbo + - category: envoy.guarddog_actions + name: envoy.watchdog.abort_action + typeUrls: + - envoy.watchdog.v3.AbortActionConfig + - category: envoy.guarddog_actions + name: envoy.watchdog.profile_action + typeUrls: + - envoy.extensions.watchdog.profile_action.v3.ProfileActionConfig + - category: envoy.quic.server.crypto_stream + name: envoy.quic.crypto_stream.server.quiche + typeUrls: + - envoy.extensions.quic.crypto_stream.v3.CryptoServerStreamConfig + - category: envoy.regex_engines + name: envoy.regex_engines.google_re2 + typeUrls: + - envoy.extensions.regex_engines.v3.GoogleRE2 + - category: envoy.http.stateful_session + name: envoy.http.stateful_session.cookie + typeUrls: + - envoy.extensions.http.stateful_session.cookie.v3.CookieBasedSessionState + - category: envoy.http.stateful_session + name: envoy.http.stateful_session.header + typeUrls: + - envoy.extensions.http.stateful_session.header.v3.HeaderBasedSessionState + - category: envoy.matching.network.custom_matchers + name: envoy.matching.custom_matchers.trie_matcher + typeUrls: + - xds.type.matcher.v3.IPMatcher + - category: envoy.udp_packet_writer + name: envoy.udp_packet_writer.default + typeUrls: + - envoy.extensions.udp_packet_writer.v3.UdpDefaultWriterFactory + - category: envoy.udp_packet_writer + name: envoy.udp_packet_writer.gso + typeUrls: + - envoy.extensions.udp_packet_writer.v3.UdpGsoBatchWriterFactory + - category: envoy.quic.proof_source + name: envoy.quic.proof_source.filter_chain + typeUrls: + - envoy.extensions.quic.proof_source.v3.ProofSourceConfig + - category: envoy.resource_monitors + name: envoy.resource_monitors.fixed_heap + typeUrls: + - envoy.extensions.resource_monitors.fixed_heap.v3.FixedHeapConfig + - category: envoy.resource_monitors + name: envoy.resource_monitors.injected_resource + typeUrls: + - envoy.extensions.resource_monitors.injected_resource.v3.InjectedResourceConfig + - category: envoy.http.stateful_header_formatters + name: envoy.http.stateful_header_formatters.preserve_case + typeUrls: + - envoy.extensions.http.header_formatters.preserve_case.v3.PreserveCaseFormatterConfig + - category: envoy.http.stateful_header_formatters + name: preserve_case + - category: envoy.thrift_proxy.filters + name: envoy.filters.thrift.header_to_metadata + typeUrls: + - envoy.extensions.filters.network.thrift_proxy.filters.header_to_metadata.v3.HeaderToMetadata + - category: envoy.thrift_proxy.filters + name: envoy.filters.thrift.payload_to_metadata + typeUrls: + - envoy.extensions.filters.network.thrift_proxy.filters.payload_to_metadata.v3.PayloadToMetadata + - category: envoy.thrift_proxy.filters + name: envoy.filters.thrift.rate_limit + typeUrls: + - envoy.extensions.filters.network.thrift_proxy.filters.ratelimit.v3.RateLimit + - category: envoy.thrift_proxy.filters + name: envoy.filters.thrift.router + typeUrls: + - envoy.extensions.filters.network.thrift_proxy.router.v3.Router + - category: envoy.tracers + name: envoy.tracers.datadog + typeUrls: + - envoy.config.trace.v3.DatadogConfig + - category: envoy.tracers + name: envoy.tracers.dynamic_ot + typeUrls: + - envoy.config.trace.v3.DynamicOtConfig + - category: envoy.tracers + name: envoy.tracers.opencensus + typeUrls: + - envoy.config.trace.v3.OpenCensusConfig + - category: envoy.tracers + name: envoy.tracers.opentelemetry + typeUrls: + - envoy.config.trace.v3.OpenTelemetryConfig + - category: envoy.tracers + name: envoy.tracers.skywalking + typeUrls: + - envoy.config.trace.v3.SkyWalkingConfig + - category: envoy.tracers + name: envoy.tracers.xray + typeUrls: + - envoy.config.trace.v3.XRayConfig + - category: envoy.tracers + name: envoy.tracers.zipkin + typeUrls: + - envoy.config.trace.v3.ZipkinConfig + - category: envoy.tracers + name: envoy.zipkin + - category: envoy.retry_priorities + name: envoy.retry_priorities.previous_priorities + typeUrls: + - envoy.extensions.retry.priority.previous_priorities.v3.PreviousPrioritiesConfig + - category: envoy.http.early_header_mutation + name: envoy.http.early_header_mutation.header_mutation + typeUrls: + - envoy.extensions.http.early_header_mutation.header_mutation.v3.HeaderMutation + - category: envoy.connection_handler + name: envoy.connection_handler.default + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.alts + typeUrls: + - envoy.extensions.transport_sockets.alts.v3.Alts + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.http_11_proxy + typeUrls: + - envoy.extensions.transport_sockets.http_11_proxy.v3.Http11ProxyUpstreamTransport + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.internal_upstream + typeUrls: + - envoy.extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.quic + typeUrls: + - envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.raw_buffer + typeUrls: + - envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.starttls + typeUrls: + - envoy.extensions.transport_sockets.starttls.v3.UpstreamStartTlsConfig + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.tap + typeUrls: + - envoy.extensions.transport_sockets.tap.v3.Tap + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.tcp_stats + typeUrls: + - envoy.extensions.transport_sockets.tcp_stats.v3.Config + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.tls + typeUrls: + - envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.upstream_proxy_protocol + typeUrls: + - envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport + - category: envoy.transport_sockets.upstream + name: raw_buffer + - category: envoy.transport_sockets.upstream + name: starttls + - category: envoy.transport_sockets.upstream + name: tls + - category: envoy.thrift_proxy.transports + name: auto + - category: envoy.thrift_proxy.transports + name: framed + - category: envoy.thrift_proxy.transports + name: header + - category: envoy.thrift_proxy.transports + name: unframed + - category: envoy.clusters + name: envoy.cluster.eds + - category: envoy.clusters + name: envoy.cluster.logical_dns + - category: envoy.clusters + name: envoy.cluster.original_dst + - category: envoy.clusters + name: envoy.cluster.static + - category: envoy.clusters + name: envoy.cluster.strict_dns + - category: envoy.clusters + name: envoy.clusters.aggregate + - category: envoy.clusters + name: envoy.clusters.dynamic_forward_proxy + - category: envoy.clusters + name: envoy.clusters.redis + - category: envoy.access_loggers.extension_filters + name: envoy.access_loggers.extension_filters.cel + typeUrls: + - envoy.extensions.access_loggers.filters.cel.v3.ExpressionFilter + - category: envoy.thrift_proxy.protocols + name: auto + - category: envoy.thrift_proxy.protocols + name: binary + - category: envoy.thrift_proxy.protocols + name: binary/non-strict + - category: envoy.thrift_proxy.protocols + name: compact + - category: envoy.thrift_proxy.protocols + name: twitter + - category: envoy.upstream_options + name: envoy.extensions.upstreams.http.v3.HttpProtocolOptions + typeUrls: + - envoy.extensions.upstreams.http.v3.HttpProtocolOptions + - category: envoy.upstream_options + name: envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions + typeUrls: + - envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions + - category: envoy.upstream_options + name: envoy.upstreams.http.http_protocol_options + - category: envoy.upstream_options + name: envoy.upstreams.tcp.tcp_protocol_options + - category: envoy.listener_manager_impl + name: envoy.listener_manager_impl.default + typeUrls: + - envoy.config.listener.v3.ListenerManager + - category: network.connection.client + name: default + - category: network.connection.client + name: envoy_internal + - category: envoy.filters.udp_listener + name: envoy.filters.udp.dns_filter + typeUrls: + - envoy.extensions.filters.udp.dns_filter.v3.DnsFilterConfig + - category: envoy.filters.udp_listener + name: envoy.filters.udp_listener.udp_proxy + typeUrls: + - envoy.extensions.filters.udp.udp_proxy.v3.UdpProxyConfig + - category: envoy.http.cache + name: envoy.extensions.http.cache.file_system_http_cache + typeUrls: + - envoy.extensions.http.cache.file_system_http_cache.v3.FileSystemHttpCacheConfig + - category: envoy.http.cache + name: envoy.extensions.http.cache.simple + typeUrls: + - envoy.extensions.http.cache.simple_http_cache.v3.SimpleHttpCacheConfig + - category: envoy.retry_host_predicates + name: envoy.retry_host_predicates.omit_canary_hosts + typeUrls: + - envoy.extensions.retry.host.omit_canary_hosts.v3.OmitCanaryHostsPredicate + - category: envoy.retry_host_predicates + name: envoy.retry_host_predicates.omit_host_metadata + typeUrls: + - envoy.extensions.retry.host.omit_host_metadata.v3.OmitHostMetadataConfig + - category: envoy.retry_host_predicates + name: envoy.retry_host_predicates.previous_hosts + typeUrls: + - envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate + - category: envoy.formatter + name: envoy.formatter.metadata + typeUrls: + - envoy.extensions.formatter.metadata.v3.Metadata + - category: envoy.formatter + name: envoy.formatter.req_without_query + typeUrls: + - envoy.extensions.formatter.req_without_query.v3.ReqWithoutQuery + - category: envoy.internal_redirect_predicates + name: envoy.internal_redirect_predicates.allow_listed_routes + typeUrls: + - envoy.extensions.internal_redirect.allow_listed_routes.v3.AllowListedRoutesConfig + - category: envoy.internal_redirect_predicates + name: envoy.internal_redirect_predicates.previous_routes + typeUrls: + - envoy.extensions.internal_redirect.previous_routes.v3.PreviousRoutesConfig + - category: envoy.internal_redirect_predicates + name: envoy.internal_redirect_predicates.safe_cross_scheme + typeUrls: + - envoy.extensions.internal_redirect.safe_cross_scheme.v3.SafeCrossSchemeConfig + - category: envoy.matching.http.custom_matchers + name: envoy.matching.custom_matchers.trie_matcher + typeUrls: + - xds.type.matcher.v3.IPMatcher + - category: envoy.dubbo_proxy.filters + name: envoy.filters.dubbo.router + typeUrls: + - envoy.extensions.filters.network.dubbo_proxy.router.v3.Router + - category: envoy.filters.network + name: envoy.echo + - category: envoy.filters.network + name: envoy.ext_authz + - category: envoy.filters.network + name: envoy.filters.network.connection_limit + typeUrls: + - envoy.extensions.filters.network.connection_limit.v3.ConnectionLimit + - category: envoy.filters.network + name: envoy.filters.network.direct_response + typeUrls: + - envoy.extensions.filters.network.direct_response.v3.Config + - category: envoy.filters.network + name: envoy.filters.network.dubbo_proxy + typeUrls: + - envoy.extensions.filters.network.dubbo_proxy.v3.DubboProxy + - category: envoy.filters.network + name: envoy.filters.network.echo + typeUrls: + - envoy.extensions.filters.network.echo.v3.Echo + - category: envoy.filters.network + name: envoy.filters.network.ext_authz + typeUrls: + - envoy.extensions.filters.network.ext_authz.v3.ExtAuthz + - category: envoy.filters.network + name: envoy.filters.network.http_connection_manager + typeUrls: + - envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager + - category: envoy.filters.network + name: envoy.filters.network.local_ratelimit + typeUrls: + - envoy.extensions.filters.network.local_ratelimit.v3.LocalRateLimit + - category: envoy.filters.network + name: envoy.filters.network.mongo_proxy + typeUrls: + - envoy.extensions.filters.network.mongo_proxy.v3.MongoProxy + - category: envoy.filters.network + name: envoy.filters.network.ratelimit + typeUrls: + - envoy.extensions.filters.network.ratelimit.v3.RateLimit + - category: envoy.filters.network + name: envoy.filters.network.rbac + typeUrls: + - envoy.extensions.filters.network.rbac.v3.RBAC + - category: envoy.filters.network + name: envoy.filters.network.redis_proxy + typeUrls: + - envoy.extensions.filters.network.redis_proxy.v3.RedisProxy + - category: envoy.filters.network + name: envoy.filters.network.sni_cluster + typeUrls: + - envoy.extensions.filters.network.sni_cluster.v3.SniCluster + - category: envoy.filters.network + name: envoy.filters.network.sni_dynamic_forward_proxy + typeUrls: + - envoy.extensions.filters.network.sni_dynamic_forward_proxy.v3.FilterConfig + - category: envoy.filters.network + name: envoy.filters.network.tcp_proxy + typeUrls: + - envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy + - category: envoy.filters.network + name: envoy.filters.network.thrift_proxy + typeUrls: + - envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy + - category: envoy.filters.network + name: envoy.filters.network.wasm + typeUrls: + - envoy.extensions.filters.network.wasm.v3.Wasm + - category: envoy.filters.network + name: envoy.filters.network.zookeeper_proxy + typeUrls: + - envoy.extensions.filters.network.zookeeper_proxy.v3.ZooKeeperProxy + - category: envoy.filters.network + name: envoy.http_connection_manager + - category: envoy.filters.network + name: envoy.mongo_proxy + - category: envoy.filters.network + name: envoy.ratelimit + - category: envoy.filters.network + name: envoy.redis_proxy + - category: envoy.filters.network + name: envoy.tcp_proxy + - category: envoy.health_checkers + name: envoy.health_checkers.redis + typeUrls: + - envoy.extensions.health_checkers.redis.v3.Redis + - category: envoy.health_checkers + name: envoy.health_checkers.thrift + typeUrls: + - envoy.extensions.health_checkers.thrift.v3.Thrift + userAgentBuildVersion: + metadata: + build.label: dev + build.type: RELEASE + revision.sha: 14111e3c62d3d38b0c921cb7011fd0a94e880aed + revision.status: Clean + ssl.version: BoringSSL + version: + majorNumber: 1 + minorNumber: 26 + userAgentName: envoy + staticResources: + clusters: + - connectTimeout: 1s + loadAssignment: + clusterName: xds_cluster + endpoints: + - lbEndpoints: + - endpoint: + address: + socketAddress: + address: envoy-gateway + portValue: 18000 + name: xds_cluster + transportSocket: + name: envoy.transport_sockets.tls + typedConfig: + '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext + commonTlsContext: + tlsCertificateSdsSecretConfigs: + - name: xds_certificate + sdsConfig: + pathConfigSource: + path: /sds/xds-certificate.json + resourceApiVersion: V3 + tlsParams: + tlsMaximumProtocolVersion: TLSv1_3 + validationContextSdsSecretConfig: + name: xds_trusted_ca + sdsConfig: + pathConfigSource: + path: /sds/xds-trusted-ca.json + resourceApiVersion: V3 + type: STRICT_DNS + typedExtensionProtocolOptions: + envoy.extensions.upstreams.http.v3.HttpProtocolOptions: + '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions + explicitHttpConfig: + http2ProtocolOptions: {} + lastUpdated: "2023-02-23T09:05:23.422Z" + - '@type': type.googleapis.com/envoy.admin.v3.ClustersConfigDump + dynamicActiveClusters: + - cluster: + '@type': type.googleapis.com/envoy.config.cluster.v3.Cluster + commonLbConfig: + localityWeightedLbConfig: {} + connectTimeout: 5s + dnsLookupFamily: V4_ONLY + loadAssignment: + clusterName: default-backend-rule-0-match-0-www.example.com + endpoints: + - lbEndpoints: + - endpoint: + address: + socketAddress: + address: 10.96.159.190 + portValue: 3000 + loadBalancingWeight: 1 + loadBalancingWeight: 1 + locality: {} + name: default-backend-rule-0-match-0-www.example.com + outlierDetection: {} + type: STATIC + lastUpdated: "2023-02-23T09:05:38.443Z" + versionInfo: 2a0a1698a9d3e05b802047b0cd36b52a070afa49042e1ba267168c5265c7cabf + staticClusters: + - cluster: + '@type': type.googleapis.com/envoy.config.cluster.v3.Cluster + connectTimeout: 1s + loadAssignment: + clusterName: xds_cluster + endpoints: + - lbEndpoints: + - endpoint: + address: + socketAddress: + address: envoy-gateway + portValue: 18000 + name: xds_cluster + transportSocket: + name: envoy.transport_sockets.tls + typedConfig: + '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext + commonTlsContext: + tlsCertificateSdsSecretConfigs: + - name: xds_certificate + sdsConfig: + pathConfigSource: + path: /sds/xds-certificate.json + resourceApiVersion: V3 + tlsParams: + tlsMaximumProtocolVersion: TLSv1_3 + validationContextSdsSecretConfig: + name: xds_trusted_ca + sdsConfig: + pathConfigSource: + path: /sds/xds-trusted-ca.json + resourceApiVersion: V3 + type: STRICT_DNS + typedExtensionProtocolOptions: + envoy.extensions.upstreams.http.v3.HttpProtocolOptions: + '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions + explicitHttpConfig: + http2ProtocolOptions: {} + lastUpdated: "2023-02-23T09:05:23.436Z" + versionInfo: "2" + - '@type': type.googleapis.com/envoy.admin.v3.ListenersConfigDump + dynamicListeners: + - activeState: + lastUpdated: "2023-02-23T09:05:38.446Z" + listener: + '@type': type.googleapis.com/envoy.config.listener.v3.Listener + accessLog: + - filter: + responseFlagFilter: + flags: + - NR + name: envoy.access_loggers.file + typedConfig: + '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog + path: /dev/stdout + address: + socketAddress: + address: 0.0.0.0 + portValue: 10080 + defaultFilterChain: + filters: + - name: envoy.filters.network.http_connection_manager + typedConfig: + '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager + accessLog: + - name: envoy.access_loggers.file + typedConfig: + '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog + path: /dev/stdout + httpFilters: + - name: envoy.filters.http.router + typedConfig: + '@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router + rds: + configSource: + apiConfigSource: + apiType: DELTA_GRPC + grpcServices: + - envoyGrpc: + clusterName: xds_cluster + setNodeOnFirstMessageOnly: true + transportApiVersion: V3 + resourceApiVersion: V3 + routeConfigName: default-eg-http + statPrefix: http + upgradeConfigs: + - upgradeType: websocket + useRemoteAddress: true + name: default-eg-http + versionInfo: 42c71fb50c315ee3a32b327da69f8cc0baf420bc84b747e82d9c38e1b0c33eb2 + name: default-eg-http + versionInfo: "2" + - '@type': type.googleapis.com/envoy.admin.v3.ScopedRoutesConfigDump + - '@type': type.googleapis.com/envoy.admin.v3.RoutesConfigDump + dynamicRouteConfigs: + - lastUpdated: "2023-02-23T09:05:38.448Z" + routeConfig: + '@type': type.googleapis.com/envoy.config.route.v3.RouteConfiguration + name: default-eg-http + virtualHosts: + - domains: + - '*' + name: default-eg-http + routes: + - match: + headers: + - name: :authority + stringMatch: + exact: www.example.com + prefix: / + route: + cluster: default-backend-rule-0-match-0-www.example.com + versionInfo: cb1e51997a9c3aa6f4d920f39fd5bdbd966e9382b7b6bdf42efca8c22c6c3442 + - '@type': type.googleapis.com/envoy.admin.v3.SecretsConfigDump + dynamicActiveSecrets: + - lastUpdated: "2023-02-23T09:05:23.442Z" + name: xds_certificate + secret: + '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret + name: xds_certificate + tlsCertificate: + certificateChain: + inlineBytes: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURLekNDQWhPZ0F3SUJBZ0lFTnJRVi9qQU5CZ2txaGtpRzl3MEJBUXNGQURBc01SWXdGQVlEVlFRREV3MWwKYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEVlFRRkV3azFOalE0TXpRek9EVXdIaGNOTWpNd01qRTNNRE0wTVRJNApXaGNOTWpRd01qRTRNRE0wTVRJNFdqQU1NUW93Q0FZRFZRUUREQUVxTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGCkFBT0NBUThBTUlJQkNnS0NBUUVBNmdNSTJSNElEeE5mQ2o1YmZHU1hVUjF4YkVjRjE5VXlhVC9VUEZZcFltM0gKN2c4T3Z6YWRlelFyRkt3dG9PWWFDN0hjam8zVnVHSmhqSDQ1Z3lVbWFzSEg1Q1gzaWFlRlhxQXdVQjRqVTZQSgpBbElCZWlMRVdZVjN1VjMwcGlKK09DWFhrUEQzSFFVb0ZYbnljcHM3OE9PbjZoS0wwNUY0YkJsT2UrMFdIUHdECll2dFQ4TEdpVmcrSkxhR2lxaGgxOXY5endwQUd2akI2Z09kN1BjdkNQNFExUHdkMWdMSnNXVFNweGhDUEVPb2kKV2ZSOG56RERVUHU5aXc2QTJObW1XQ1FxSVNYcDlZUmJMTEdjZnV4VURjcFVYMHpqY0xvcE1sajBnM0RkYVpWRwpzNm9JcW9BSjZ6MFhvdWwrM0ZZdUtJYy8rT1V3VkR1VkI4K0ZRZzlYdlFJREFRQUJvM1V3Y3pBT0JnTlZIUThCCkFmOEVCQU1DQlBBd0hRWURWUjBPQkJZRUZKaUJ3cytVaFRlT2p1L1ZXT29LQWNTSmZBeXVNQjhHQTFVZEl3UVkKTUJhQUZCT3kvOGkxeVMxRWxpN0tNK0gyeXZEM1BJMG1NQ0VHQTFVZEVRUWFNQmlDRmlvdVpXNTJiM2t0WjJGMApaWGRoZVMxemVYTjBaVzB3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUZraHdIakZtQWxqdEpheU54WitodURGCm5UdWd0REZvSTBFT2J0cUhLYnloWU9sdlNFdkhxbFNQSHNRUUhmQnQwbHpOOEtGUTd2YWxTSHRBZStlNzBETHkKaGY3TDQ3eklST3NLcmtmb0tjMjRqaUhNQkVwbCtJdjllU1RWVG9WemxzazVZUGxET2lrMzZpRUY3WDVVZ0RheApsVllZZnpSYzRUb0poODMwT285Wm9pai9LM295dVNXcTVGRzVFWExmeW9tQzZPQ3dxRm5GNzRSM21FTjVheDRlCnppVm5QVDNxVmFZdytzNngwSVhHU282U2M3Q2lUbmMrckFNa3FJNVNsK2p5RHhKTkZBQlIvRllCcTQzK1B1UGkKN0YxOEw0N2l3aVFFYU82NUJzU2hlYmg1Qk1VbytDdzIyM3JsMGRpTldwY3FrdVhtT1BWNDlrWkZkdHpFNytVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + privateKey: + inlineBytes: W3JlZGFjdGVkXQ== + - lastUpdated: "2023-02-23T09:05:23.447Z" + name: xds_trusted_ca + secret: + '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret + name: xds_trusted_ca + validationContext: + matchTypedSubjectAltNames: + - matcher: + exact: envoy-gateway + sanType: DNS + trustedCa: + inlineBytes: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURHRENDQWdDZ0F3SUJBZ0lFSWFxd1VUQU5CZ2txaGtpRzl3MEJBUXNGQURBc01SWXdGQVlEVlFRREV3MWwKYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEVlFRRkV3azFOalE0TXpRek9EVXdIaGNOTWpNd01qRTNNRE0wTVRJNApXaGNOTWpRd01qRTRNRE0wTVRJNFdqQXNNUll3RkFZRFZRUURFdzFsYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEClZRUUZFd2sxTmpRNE16UXpPRFV3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRRDIKeFMrNkRWY2FvbHFkVVBzTHZwNUtQMEQyV0hrTkVEY0tPeml3bzZNYm9wczFLYWJnNXVYSVl5T21JRWNTTXNKNwpHbVAxMlJjK0J3V1dFWXRrTHVPU3BwQm1lSjN3aDRrUlVRVTRTemRFU1dDcU40RTNpcTJib3FFVm53SkFGQ1ZpCldldGVjZkZsODZFalliQUxxSnRCbGJCbFFQM1ZMZ1hva0VVamJ4QmFobE1wZitUWkVJNFBuam1zUWN5a21LeXIKaDJwdmM3cnZYb29HTlhTM0Q0eFc1VDY3dmxLYi94UlM3c2gwTkJEU0dtTE1jY2pxWFZXazVOR2lBWVB3dXBWSwpTWG02dnZXUFZCdEd1bkZhS0JSRGx4TlJrb0wzRUN6UkNtenoxR2ZYMGJkSm1leElOM2VIUFBRdkd0M0txeUlnCkgrYnc0OXpqdlVUb2dNcXFpTlcvQWdNQkFBR2pRakJBTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQQmdOVkhSTUIKQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRVHN2L0l0Y2t0UkpZdXlqUGg5c3J3OXp5TkpqQU5CZ2txaGtpRwo5dzBCQVFzRkFBT0NBUUVBd2dvZEsxalhVWFZDVXBTSjE0cEo3S3ZobWZPT1hkaVNISmNSSzlIUzI1c2xwOWN2CkJDSndmWUZmanJ4Rmc5TnV4aVpiM01oVXk5MDBqenBPdk1QWStEeUxFWFVxTGd5ZlBMUzYveVliem8yZHdwdzMKOCtrTXlsQUFlZmtaSW9oT0VhYSsvNFFBVVVGZVp1a1B6bmF6RzZIWnZKQkNxWVdRNXBaSSt3WTI1dzhEU0VOMgpkOCswVkpzWU5IdUk4aXhneGZhUkRycW5LRHBMUGJ3Z3VaRDl6ZkV3dVFaNG1oeEd0Vk1wR0NLSndscWFhdXJ0CkF5aGhzOXBHNERndkpSY1BLeFY4bndRdzZtSm55dkIxcExxTW1aQTVqZWhxbFNvUGVpWUlBMk1neU83cTVPYmMKL040bzBNTVdvZ1piRWR6aTBnTXJRT2lpNE41Q0ZlakVrYStIMmc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + - '@type': type.googleapis.com/envoy.admin.v3.EndpointsConfigDump + staticEndpointConfigs: + - endpointConfig: + '@type': type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment clusterName: xds_cluster endpoints: - lbEndpoints: - endpoint: address: socketAddress: - address: envoy-gateway + address: 10.106.37.54 portValue: 18000 - name: xds_cluster - transportSocket: - name: envoy.transport_sockets.tls - typedConfig: - '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext - commonTlsContext: - tlsCertificateSdsSecretConfigs: - - name: xds_certificate - sdsConfig: - pathConfigSource: - path: /sds/xds-certificate.json - resourceApiVersion: V3 - tlsParams: - tlsMaximumProtocolVersion: TLSv1_3 - validationContextSdsSecretConfig: - name: xds_trusted_ca - sdsConfig: - pathConfigSource: - path: /sds/xds-trusted-ca.json - resourceApiVersion: V3 - type: STRICT_DNS - typedExtensionProtocolOptions: - envoy.extensions.upstreams.http.v3.HttpProtocolOptions: - '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions - explicitHttpConfig: - http2ProtocolOptions: {} - lastUpdated: "2023-02-23T09:05:23.422Z" -- '@type': type.googleapis.com/envoy.admin.v3.ClustersConfigDump - dynamicActiveClusters: - - cluster: - '@type': type.googleapis.com/envoy.config.cluster.v3.Cluster - commonLbConfig: - localityWeightedLbConfig: {} - connectTimeout: 5s - dnsLookupFamily: V4_ONLY - loadAssignment: - clusterName: default-backend-rule-0-match-0-www.example.com - endpoints: - - lbEndpoints: - - endpoint: - address: - socketAddress: - address: 10.96.159.190 - portValue: 3000 - loadBalancingWeight: 1 - loadBalancingWeight: 1 - locality: {} - name: default-backend-rule-0-match-0-www.example.com - outlierDetection: {} - type: STATIC - lastUpdated: "2023-02-23T09:05:38.443Z" - versionInfo: 2a0a1698a9d3e05b802047b0cd36b52a070afa49042e1ba267168c5265c7cabf - staticClusters: - - cluster: - '@type': type.googleapis.com/envoy.config.cluster.v3.Cluster - connectTimeout: 1s - loadAssignment: - clusterName: xds_cluster - endpoints: - - lbEndpoints: - - endpoint: - address: - socketAddress: - address: envoy-gateway - portValue: 18000 - name: xds_cluster - transportSocket: - name: envoy.transport_sockets.tls - typedConfig: - '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext - commonTlsContext: - tlsCertificateSdsSecretConfigs: - - name: xds_certificate - sdsConfig: - pathConfigSource: - path: /sds/xds-certificate.json - resourceApiVersion: V3 - tlsParams: - tlsMaximumProtocolVersion: TLSv1_3 - validationContextSdsSecretConfig: - name: xds_trusted_ca - sdsConfig: - pathConfigSource: - path: /sds/xds-trusted-ca.json - resourceApiVersion: V3 - type: STRICT_DNS - typedExtensionProtocolOptions: - envoy.extensions.upstreams.http.v3.HttpProtocolOptions: - '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions - explicitHttpConfig: - http2ProtocolOptions: {} - lastUpdated: "2023-02-23T09:05:23.436Z" - versionInfo: "2" -- '@type': type.googleapis.com/envoy.admin.v3.ListenersConfigDump - dynamicListeners: - - activeState: - lastUpdated: "2023-02-23T09:05:38.446Z" - listener: - '@type': type.googleapis.com/envoy.config.listener.v3.Listener - accessLog: - - filter: - responseFlagFilter: - flags: - - NR - name: envoy.access_loggers.file - typedConfig: - '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog - path: /dev/stdout - address: - socketAddress: - address: 0.0.0.0 - portValue: 10080 - defaultFilterChain: - filters: - - name: envoy.filters.network.http_connection_manager - typedConfig: - '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager - accessLog: - - name: envoy.access_loggers.file - typedConfig: - '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog - path: /dev/stdout - httpFilters: - - name: envoy.filters.http.router - typedConfig: - '@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router - rds: - configSource: - apiConfigSource: - apiType: DELTA_GRPC - grpcServices: - - envoyGrpc: - clusterName: xds_cluster - setNodeOnFirstMessageOnly: true - transportApiVersion: V3 - resourceApiVersion: V3 - routeConfigName: default-eg-http - statPrefix: http - upgradeConfigs: - - upgradeType: websocket - useRemoteAddress: true - name: default-eg-http - versionInfo: 42c71fb50c315ee3a32b327da69f8cc0baf420bc84b747e82d9c38e1b0c33eb2 - name: default-eg-http - versionInfo: "2" -- '@type': type.googleapis.com/envoy.admin.v3.ScopedRoutesConfigDump -- '@type': type.googleapis.com/envoy.admin.v3.RoutesConfigDump - dynamicRouteConfigs: - - lastUpdated: "2023-02-23T09:05:38.448Z" - routeConfig: - '@type': type.googleapis.com/envoy.config.route.v3.RouteConfiguration - name: default-eg-http - virtualHosts: - - domains: - - '*' - name: default-eg-http - routes: - - match: - headers: - - name: :authority - stringMatch: - exact: www.example.com - prefix: / - route: - cluster: default-backend-rule-0-match-0-www.example.com - versionInfo: cb1e51997a9c3aa6f4d920f39fd5bdbd966e9382b7b6bdf42efca8c22c6c3442 -- '@type': type.googleapis.com/envoy.admin.v3.SecretsConfigDump - dynamicActiveSecrets: - - lastUpdated: "2023-02-23T09:05:23.442Z" - name: xds_certificate - secret: - '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret - name: xds_certificate - tlsCertificate: - certificateChain: - inlineBytes: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURLekNDQWhPZ0F3SUJBZ0lFTnJRVi9qQU5CZ2txaGtpRzl3MEJBUXNGQURBc01SWXdGQVlEVlFRREV3MWwKYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEVlFRRkV3azFOalE0TXpRek9EVXdIaGNOTWpNd01qRTNNRE0wTVRJNApXaGNOTWpRd01qRTRNRE0wTVRJNFdqQU1NUW93Q0FZRFZRUUREQUVxTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGCkFBT0NBUThBTUlJQkNnS0NBUUVBNmdNSTJSNElEeE5mQ2o1YmZHU1hVUjF4YkVjRjE5VXlhVC9VUEZZcFltM0gKN2c4T3Z6YWRlelFyRkt3dG9PWWFDN0hjam8zVnVHSmhqSDQ1Z3lVbWFzSEg1Q1gzaWFlRlhxQXdVQjRqVTZQSgpBbElCZWlMRVdZVjN1VjMwcGlKK09DWFhrUEQzSFFVb0ZYbnljcHM3OE9PbjZoS0wwNUY0YkJsT2UrMFdIUHdECll2dFQ4TEdpVmcrSkxhR2lxaGgxOXY5endwQUd2akI2Z09kN1BjdkNQNFExUHdkMWdMSnNXVFNweGhDUEVPb2kKV2ZSOG56RERVUHU5aXc2QTJObW1XQ1FxSVNYcDlZUmJMTEdjZnV4VURjcFVYMHpqY0xvcE1sajBnM0RkYVpWRwpzNm9JcW9BSjZ6MFhvdWwrM0ZZdUtJYy8rT1V3VkR1VkI4K0ZRZzlYdlFJREFRQUJvM1V3Y3pBT0JnTlZIUThCCkFmOEVCQU1DQlBBd0hRWURWUjBPQkJZRUZKaUJ3cytVaFRlT2p1L1ZXT29LQWNTSmZBeXVNQjhHQTFVZEl3UVkKTUJhQUZCT3kvOGkxeVMxRWxpN0tNK0gyeXZEM1BJMG1NQ0VHQTFVZEVRUWFNQmlDRmlvdVpXNTJiM2t0WjJGMApaWGRoZVMxemVYTjBaVzB3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUZraHdIakZtQWxqdEpheU54WitodURGCm5UdWd0REZvSTBFT2J0cUhLYnloWU9sdlNFdkhxbFNQSHNRUUhmQnQwbHpOOEtGUTd2YWxTSHRBZStlNzBETHkKaGY3TDQ3eklST3NLcmtmb0tjMjRqaUhNQkVwbCtJdjllU1RWVG9WemxzazVZUGxET2lrMzZpRUY3WDVVZ0RheApsVllZZnpSYzRUb0poODMwT285Wm9pai9LM295dVNXcTVGRzVFWExmeW9tQzZPQ3dxRm5GNzRSM21FTjVheDRlCnppVm5QVDNxVmFZdytzNngwSVhHU282U2M3Q2lUbmMrckFNa3FJNVNsK2p5RHhKTkZBQlIvRllCcTQzK1B1UGkKN0YxOEw0N2l3aVFFYU82NUJzU2hlYmg1Qk1VbytDdzIyM3JsMGRpTldwY3FrdVhtT1BWNDlrWkZkdHpFNytVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== - privateKey: - inlineBytes: W3JlZGFjdGVkXQ== - - lastUpdated: "2023-02-23T09:05:23.447Z" - name: xds_trusted_ca - secret: - '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret - name: xds_trusted_ca - validationContext: - matchTypedSubjectAltNames: - - matcher: - exact: envoy-gateway - sanType: DNS - trustedCa: - inlineBytes: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURHRENDQWdDZ0F3SUJBZ0lFSWFxd1VUQU5CZ2txaGtpRzl3MEJBUXNGQURBc01SWXdGQVlEVlFRREV3MWwKYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEVlFRRkV3azFOalE0TXpRek9EVXdIaGNOTWpNd01qRTNNRE0wTVRJNApXaGNOTWpRd01qRTRNRE0wTVRJNFdqQXNNUll3RkFZRFZRUURFdzFsYm5admVTMW5ZWFJsZDJGNU1SSXdFQVlEClZRUUZFd2sxTmpRNE16UXpPRFV3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRRDIKeFMrNkRWY2FvbHFkVVBzTHZwNUtQMEQyV0hrTkVEY0tPeml3bzZNYm9wczFLYWJnNXVYSVl5T21JRWNTTXNKNwpHbVAxMlJjK0J3V1dFWXRrTHVPU3BwQm1lSjN3aDRrUlVRVTRTemRFU1dDcU40RTNpcTJib3FFVm53SkFGQ1ZpCldldGVjZkZsODZFalliQUxxSnRCbGJCbFFQM1ZMZ1hva0VVamJ4QmFobE1wZitUWkVJNFBuam1zUWN5a21LeXIKaDJwdmM3cnZYb29HTlhTM0Q0eFc1VDY3dmxLYi94UlM3c2gwTkJEU0dtTE1jY2pxWFZXazVOR2lBWVB3dXBWSwpTWG02dnZXUFZCdEd1bkZhS0JSRGx4TlJrb0wzRUN6UkNtenoxR2ZYMGJkSm1leElOM2VIUFBRdkd0M0txeUlnCkgrYnc0OXpqdlVUb2dNcXFpTlcvQWdNQkFBR2pRakJBTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQQmdOVkhSTUIKQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRVHN2L0l0Y2t0UkpZdXlqUGg5c3J3OXp5TkpqQU5CZ2txaGtpRwo5dzBCQVFzRkFBT0NBUUVBd2dvZEsxalhVWFZDVXBTSjE0cEo3S3ZobWZPT1hkaVNISmNSSzlIUzI1c2xwOWN2CkJDSndmWUZmanJ4Rmc5TnV4aVpiM01oVXk5MDBqenBPdk1QWStEeUxFWFVxTGd5ZlBMUzYveVliem8yZHdwdzMKOCtrTXlsQUFlZmtaSW9oT0VhYSsvNFFBVVVGZVp1a1B6bmF6RzZIWnZKQkNxWVdRNXBaSSt3WTI1dzhEU0VOMgpkOCswVkpzWU5IdUk4aXhneGZhUkRycW5LRHBMUGJ3Z3VaRDl6ZkV3dVFaNG1oeEd0Vk1wR0NLSndscWFhdXJ0CkF5aGhzOXBHNERndkpSY1BLeFY4bndRdzZtSm55dkIxcExxTW1aQTVqZWhxbFNvUGVpWUlBMk1neU83cTVPYmMKL040bzBNTVdvZ1piRWR6aTBnTXJRT2lpNE41Q0ZlakVrYStIMmc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== -- '@type': type.googleapis.com/envoy.admin.v3.EndpointsConfigDump - staticEndpointConfigs: - - endpointConfig: - '@type': type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment - clusterName: xds_cluster - endpoints: - - lbEndpoints: - - endpoint: - address: - socketAddress: - address: 10.106.37.54 - portValue: 18000 - healthCheckConfig: {} - hostname: envoy-gateway - healthStatus: HEALTHY - loadBalancingWeight: 1 - metadata: {} - locality: {} - policy: - overprovisioningFactor: 140 + healthCheckConfig: {} + hostname: envoy-gateway + healthStatus: HEALTHY + loadBalancingWeight: 1 + metadata: {} + locality: {} + policy: + overprovisioningFactor: 140 diff --git a/internal/cmd/egctl/testdata/config/out/out.bootstrap.json b/internal/cmd/egctl/testdata/config/out/out.bootstrap.json index 207db5c150f..8f795f31da4 100644 --- a/internal/cmd/egctl/testdata/config/out/out.bootstrap.json +++ b/internal/cmd/egctl/testdata/config/out/out.bootstrap.json @@ -1,1206 +1,1176 @@ { - "@type": "type.googleapis.com/envoy.admin.v3.BootstrapConfigDump", - "bootstrap": { - "node": { - "userAgentName": "envoy", - "userAgentBuildVersion": { - "version": { - "majorNumber": 1, - "minorNumber": 26 + "default": { + "eg": { + "@type": "type.googleapis.com/envoy.admin.v3.BootstrapConfigDump", + "bootstrap": { + "node": { + "userAgentName": "envoy", + "userAgentBuildVersion": { + "version": { + "majorNumber": 1, + "minorNumber": 26 + }, + "metadata": { + "build.label": "dev", + "build.type": "RELEASE", + "revision.sha": "14111e3c62d3d38b0c921cb7011fd0a94e880aed", + "revision.status": "Clean", + "ssl.version": "BoringSSL" + } + }, + "extensions": [{ + "name": "envoy.filters.connection_pools.tcp.generic", + "category": "envoy.upstreams", + "typeUrls": ["envoy.extensions.upstreams.tcp.generic.v3.GenericConnectionPoolProto"] + }, { + "name": "envoy.rate_limit_descriptors.expr", + "category": "envoy.rate_limit_descriptors", + "typeUrls": ["envoy.extensions.rate_limit_descriptors.expr.v3.Descriptor"] + }, { + "name": "envoy.matching.inputs.destination_ip", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput"] + }, { + "name": "envoy.matching.inputs.destination_port", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput"] + }, { + "name": "envoy.matching.inputs.direct_source_ip", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput"] + }, { + "name": "envoy.matching.inputs.dns_san", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput"] + }, { + "name": "envoy.matching.inputs.request_headers", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpRequestHeaderMatchInput"] + }, { + "name": "envoy.matching.inputs.request_trailers", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpRequestTrailerMatchInput"] + }, { + "name": "envoy.matching.inputs.response_headers", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpResponseHeaderMatchInput"] + }, { + "name": "envoy.matching.inputs.response_trailers", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpResponseTrailerMatchInput"] + }, { + "name": "envoy.matching.inputs.server_name", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ServerNameInput"] + }, { + "name": "envoy.matching.inputs.source_ip", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceIPInput"] + }, { + "name": "envoy.matching.inputs.source_port", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourcePortInput"] + }, { + "name": "envoy.matching.inputs.source_type", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput"] + }, { + "name": "envoy.matching.inputs.status_code_class_input", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpResponseStatusCodeClassMatchInput"] + }, { + "name": "envoy.matching.inputs.status_code_input", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpResponseStatusCodeMatchInput"] + }, { + "name": "envoy.matching.inputs.subject", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput"] + }, { + "name": "envoy.matching.inputs.uri_san", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput"] + }, { + "name": "query_params", + "category": "envoy.matching.http.input", + "typeUrls": ["envoy.type.matcher.v3.HttpRequestQueryParamMatchInput"] + }, { + "name": "envoy.tls.cert_validator.default", + "category": "envoy.tls.cert_validator" + }, { + "name": "envoy.tls.cert_validator.spiffe", + "category": "envoy.tls.cert_validator" + }, { + "name": "envoy.path.match.uri_template.uri_template_matcher", + "category": "envoy.path.match", + "typeUrls": ["envoy.extensions.path.match.uri_template.v3.UriTemplateMatchConfig"] + }, { + "name": "envoy.http.original_ip_detection.custom_header", + "category": "envoy.http.original_ip_detection", + "typeUrls": ["envoy.extensions.http.original_ip_detection.custom_header.v3.CustomHeaderConfig"] + }, { + "name": "envoy.http.original_ip_detection.xff", + "category": "envoy.http.original_ip_detection", + "typeUrls": ["envoy.extensions.http.original_ip_detection.xff.v3.XffConfig"] + }, { + "name": "envoy.buffer", + "category": "envoy.filters.http.upstream" + }, { + "name": "envoy.filters.http.admission_control", + "category": "envoy.filters.http.upstream", + "typeUrls": ["envoy.extensions.filters.http.admission_control.v3.AdmissionControl"] + }, { + "name": "envoy.filters.http.buffer", + "category": "envoy.filters.http.upstream", + "typeUrls": ["envoy.extensions.filters.http.buffer.v3.Buffer", "envoy.extensions.filters.http.buffer.v3.BufferPerRoute"] + }, { + "name": "envoy.filters.http.upstream_codec", + "category": "envoy.filters.http.upstream", + "typeUrls": ["envoy.extensions.filters.http.upstream_codec.v3.UpstreamCodec"] + }, { + "name": "envoy.route.early_data_policy.default", + "category": "envoy.route.early_data_policy", + "typeUrls": ["envoy.extensions.early_data.v3.DefaultEarlyDataPolicy"] + }, { + "name": "envoy.compression.brotli.compressor", + "category": "envoy.compression.compressor", + "typeUrls": ["envoy.extensions.compression.brotli.compressor.v3.Brotli"] + }, { + "name": "envoy.compression.gzip.compressor", + "category": "envoy.compression.compressor", + "typeUrls": ["envoy.extensions.compression.gzip.compressor.v3.Gzip"] + }, { + "name": "envoy.compression.zstd.compressor", + "category": "envoy.compression.compressor", + "typeUrls": ["envoy.extensions.compression.zstd.compressor.v3.Zstd"] + }, { + "name": "envoy.compression.brotli.decompressor", + "category": "envoy.compression.decompressor", + "typeUrls": ["envoy.extensions.compression.brotli.decompressor.v3.Brotli"] + }, { + "name": "envoy.compression.gzip.decompressor", + "category": "envoy.compression.decompressor", + "typeUrls": ["envoy.extensions.compression.gzip.decompressor.v3.Gzip"] + }, { + "name": "envoy.compression.zstd.decompressor", + "category": "envoy.compression.decompressor", + "typeUrls": ["envoy.extensions.compression.zstd.decompressor.v3.Zstd"] + }, { + "name": "envoy.wasm.runtime.null", + "category": "envoy.wasm.runtime" + }, { + "name": "envoy.wasm.runtime.v8", + "category": "envoy.wasm.runtime" + }, { + "name": "envoy.dog_statsd", + "category": "envoy.stats_sinks" + }, { + "name": "envoy.graphite_statsd", + "category": "envoy.stats_sinks" + }, { + "name": "envoy.metrics_service", + "category": "envoy.stats_sinks" + }, { + "name": "envoy.stat_sinks.dog_statsd", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.config.metrics.v3.DogStatsdSink"] + }, { + "name": "envoy.stat_sinks.graphite_statsd", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.extensions.stat_sinks.graphite_statsd.v3.GraphiteStatsdSink"] + }, { + "name": "envoy.stat_sinks.hystrix", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.config.metrics.v3.HystrixSink"] + }, { + "name": "envoy.stat_sinks.metrics_service", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.config.metrics.v3.MetricsServiceConfig"] + }, { + "name": "envoy.stat_sinks.statsd", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.config.metrics.v3.StatsdSink"] + }, { + "name": "envoy.stat_sinks.wasm", + "category": "envoy.stats_sinks", + "typeUrls": ["envoy.extensions.stat_sinks.wasm.v3.Wasm"] + }, { + "name": "envoy.statsd", + "category": "envoy.stats_sinks" + }, { + "name": "envoy.path.rewrite.uri_template.uri_template_rewriter", + "category": "envoy.path.rewrite", + "typeUrls": ["envoy.extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig"] + }, { + "name": "envoy.extensions.http.custom_response.local_response_policy", + "category": "envoy.http.custom_response", + "typeUrls": ["envoy.extensions.http.custom_response.local_response_policy.v3.LocalResponsePolicy"] + }, { + "name": "envoy.extensions.http.custom_response.redirect_policy", + "category": "envoy.http.custom_response", + "typeUrls": ["envoy.extensions.http.custom_response.redirect_policy.v3.RedirectPolicy"] + }, { + "name": "envoy.matching.actions.format_string", + "category": "envoy.matching.action", + "typeUrls": ["envoy.config.core.v3.SubstitutionFormatString"] + }, { + "name": "filter-chain-name", + "category": "envoy.matching.action", + "typeUrls": ["google.protobuf.StringValue"] + }, { + "name": "envoy.quic.deterministic_connection_id_generator", + "category": "envoy.quic.connection_id_generator", + "typeUrls": ["envoy.extensions.quic.connection_id_generator.v3.DeterministicConnectionIdGeneratorConfig"] + }, { + "name": "envoy.network.dns_resolver.cares", + "category": "envoy.network.dns_resolver", + "typeUrls": ["envoy.extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig"] + }, { + "name": "envoy.network.dns_resolver.getaddrinfo", + "category": "envoy.network.dns_resolver", + "typeUrls": ["envoy.extensions.network.dns_resolver.getaddrinfo.v3.GetAddrInfoDnsResolverConfig"] + }, { + "name": "envoy.bootstrap.internal_listener", + "category": "envoy.bootstrap", + "typeUrls": ["envoy.extensions.bootstrap.internal_listener.v3.InternalListener"] + }, { + "name": "envoy.bootstrap.wasm", + "category": "envoy.bootstrap", + "typeUrls": ["envoy.extensions.wasm.v3.WasmService"] + }, { + "name": "envoy.extensions.network.socket_interface.default_socket_interface", + "category": "envoy.bootstrap", + "typeUrls": ["envoy.extensions.network.socket_interface.v3.DefaultSocketInterface"] + }, { + "name": "envoy.filters.listener.http_inspector", + "category": "envoy.filters.listener", + "typeUrls": ["envoy.extensions.filters.listener.http_inspector.v3.HttpInspector"] + }, { + "name": "envoy.filters.listener.original_dst", + "category": "envoy.filters.listener", + "typeUrls": ["envoy.extensions.filters.listener.original_dst.v3.OriginalDst"] + }, { + "name": "envoy.filters.listener.original_src", + "category": "envoy.filters.listener", + "typeUrls": ["envoy.extensions.filters.listener.original_src.v3.OriginalSrc"] + }, { + "name": "envoy.filters.listener.proxy_protocol", + "category": "envoy.filters.listener", + "typeUrls": ["envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol"] + }, { + "name": "envoy.filters.listener.tls_inspector", + "category": "envoy.filters.listener", + "typeUrls": ["envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector"] + }, { + "name": "envoy.listener.http_inspector", + "category": "envoy.filters.listener" + }, { + "name": "envoy.listener.original_dst", + "category": "envoy.filters.listener" + }, { + "name": "envoy.listener.original_src", + "category": "envoy.filters.listener" + }, { + "name": "envoy.listener.proxy_protocol", + "category": "envoy.filters.listener" + }, { + "name": "envoy.listener.tls_inspector", + "category": "envoy.filters.listener" + }, { + "name": "envoy.matching.common_inputs.environment_variable", + "category": "envoy.matching.common_inputs", + "typeUrls": ["envoy.extensions.matching.common_inputs.environment_variable.v3.Config"] + }, { + "name": "envoy.matching.matchers.consistent_hashing", + "category": "envoy.matching.input_matchers", + "typeUrls": ["envoy.extensions.matching.input_matchers.consistent_hashing.v3.ConsistentHashing"] + }, { + "name": "envoy.matching.matchers.ip", + "category": "envoy.matching.input_matchers", + "typeUrls": ["envoy.extensions.matching.input_matchers.ip.v3.Ip"] + }, { + "name": "envoy.grpc_credentials.aws_iam", + "category": "envoy.grpc_credentials" + }, { + "name": "envoy.grpc_credentials.default", + "category": "envoy.grpc_credentials" + }, { + "name": "envoy.grpc_credentials.file_based_metadata", + "category": "envoy.grpc_credentials" + }, { + "name": "envoy.request_id.uuid", + "category": "envoy.request_id", + "typeUrls": ["envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig"] + }, { + "name": "envoy.load_balancing_policies.least_request", + "category": "envoy.load_balancing_policies", + "typeUrls": ["envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest"] + }, { + "name": "envoy.load_balancing_policies.maglev", + "category": "envoy.load_balancing_policies", + "typeUrls": ["envoy.extensions.load_balancing_policies.maglev.v3.Maglev"] + }, { + "name": "envoy.load_balancing_policies.random", + "category": "envoy.load_balancing_policies", + "typeUrls": ["envoy.extensions.load_balancing_policies.random.v3.Random"] + }, { + "name": "envoy.load_balancing_policies.ring_hash", + "category": "envoy.load_balancing_policies", + "typeUrls": ["envoy.extensions.load_balancing_policies.ring_hash.v3.RingHash"] + }, { + "name": "envoy.load_balancing_policies.round_robin", + "category": "envoy.load_balancing_policies", + "typeUrls": ["envoy.extensions.load_balancing_policies.round_robin.v3.RoundRobin"] + }, { + "name": "envoy.ip", + "category": "envoy.resolvers" + }, { + "name": "envoy.bandwidth_limit", + "category": "envoy.filters.http" + }, { + "name": "envoy.buffer", + "category": "envoy.filters.http" + }, { + "name": "envoy.cors", + "category": "envoy.filters.http" + }, { + "name": "envoy.csrf", + "category": "envoy.filters.http" + }, { + "name": "envoy.ext_authz", + "category": "envoy.filters.http" + }, { + "name": "envoy.ext_proc", + "category": "envoy.filters.http" + }, { + "name": "envoy.fault", + "category": "envoy.filters.http" + }, { + "name": "envoy.filters.http.adaptive_concurrency", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.adaptive_concurrency.v3.AdaptiveConcurrency"] + }, { + "name": "envoy.filters.http.admission_control", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.admission_control.v3.AdmissionControl"] + }, { + "name": "envoy.filters.http.alternate_protocols_cache", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.alternate_protocols_cache.v3.FilterConfig"] + }, { + "name": "envoy.filters.http.aws_lambda", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.aws_lambda.v3.Config", "envoy.extensions.filters.http.aws_lambda.v3.PerRouteConfig"] + }, { + "name": "envoy.filters.http.aws_request_signing", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.aws_request_signing.v3.AwsRequestSigning"] + }, { + "name": "envoy.filters.http.bandwidth_limit", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.bandwidth_limit.v3.BandwidthLimit"] + }, { + "name": "envoy.filters.http.buffer", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.buffer.v3.Buffer", "envoy.extensions.filters.http.buffer.v3.BufferPerRoute"] + }, { + "name": "envoy.filters.http.cache", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.cache.v3.CacheConfig"] + }, { + "name": "envoy.filters.http.cdn_loop", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.cdn_loop.v3.CdnLoopConfig"] + }, { + "name": "envoy.filters.http.composite", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.composite.v3.Composite"] + }, { + "name": "envoy.filters.http.compressor", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.compressor.v3.Compressor", "envoy.extensions.filters.http.compressor.v3.CompressorPerRoute"] + }, { + "name": "envoy.filters.http.connect_grpc_bridge", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"] + }, { + "name": "envoy.filters.http.cors", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.cors.v3.Cors", "envoy.extensions.filters.http.cors.v3.CorsPolicy"] + }, { + "name": "envoy.filters.http.csrf", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.csrf.v3.CsrfPolicy"] + }, { + "name": "envoy.filters.http.custom_response", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.custom_response.v3.CustomResponse"] + }, { + "name": "envoy.filters.http.decompressor", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.decompressor.v3.Decompressor"] + }, { + "name": "envoy.filters.http.dynamic_forward_proxy", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig", "envoy.extensions.filters.http.dynamic_forward_proxy.v3.PerRouteConfig"] + }, { + "name": "envoy.filters.http.ext_authz", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.ext_authz.v3.ExtAuthz", "envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute"] + }, { + "name": "envoy.filters.http.ext_proc", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.ext_proc.v3.ExtProcPerRoute", "envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor"] + }, { + "name": "envoy.filters.http.fault", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.fault.v3.HTTPFault"] + }, { + "name": "envoy.filters.http.file_system_buffer", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.file_system_buffer.v3.FileSystemBufferFilterConfig"] + }, { + "name": "envoy.filters.http.gcp_authn", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.gcp_authn.v3.GcpAuthnFilterConfig"] + }, { + "name": "envoy.filters.http.grpc_http1_bridge", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.grpc_http1_bridge.v3.Config"] + }, { + "name": "envoy.filters.http.grpc_http1_reverse_bridge", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfig", "envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfigPerRoute"] + }, { + "name": "envoy.filters.http.grpc_json_transcoder", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"] + }, { + "name": "envoy.filters.http.grpc_stats", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.grpc_stats.v3.FilterConfig"] + }, { + "name": "envoy.filters.http.grpc_web", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"] + }, { + "name": "envoy.filters.http.header_to_metadata", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.header_to_metadata.v3.Config"] + }, { + "name": "envoy.filters.http.health_check", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.health_check.v3.HealthCheck"] + }, { + "name": "envoy.filters.http.ip_tagging", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.ip_tagging.v3.IPTagging"] + }, { + "name": "envoy.filters.http.jwt_authn", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication", "envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig"] + }, { + "name": "envoy.filters.http.local_ratelimit", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit"] + }, { + "name": "envoy.filters.http.lua", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.lua.v3.Lua", "envoy.extensions.filters.http.lua.v3.LuaPerRoute"] + }, { + "name": "envoy.filters.http.match_delegate", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.common.matching.v3.ExtensionWithMatcher"] + }, { + "name": "envoy.filters.http.oauth2", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.oauth2.v3.OAuth2"] + }, { + "name": "envoy.filters.http.on_demand", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.on_demand.v3.OnDemand", "envoy.extensions.filters.http.on_demand.v3.PerRouteConfig"] + }, { + "name": "envoy.filters.http.original_src", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.original_src.v3.OriginalSrc"] + }, { + "name": "envoy.filters.http.rate_limit_quota", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig", "envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaOverride"] + }, { + "name": "envoy.filters.http.ratelimit", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.ratelimit.v3.RateLimit", "envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute"] + }, { + "name": "envoy.filters.http.rbac", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.rbac.v3.RBAC", "envoy.extensions.filters.http.rbac.v3.RBACPerRoute"] + }, { + "name": "envoy.filters.http.router", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.router.v3.Router"] + }, { + "name": "envoy.filters.http.set_metadata", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.set_metadata.v3.Config"] + }, { + "name": "envoy.filters.http.stateful_session", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.stateful_session.v3.StatefulSession", "envoy.extensions.filters.http.stateful_session.v3.StatefulSessionPerRoute"] + }, { + "name": "envoy.filters.http.tap", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.tap.v3.Tap"] + }, { + "name": "envoy.filters.http.wasm", + "category": "envoy.filters.http", + "typeUrls": ["envoy.extensions.filters.http.wasm.v3.Wasm"] + }, { + "name": "envoy.grpc_http1_bridge", + "category": "envoy.filters.http" + }, { + "name": "envoy.grpc_json_transcoder", + "category": "envoy.filters.http" + }, { + "name": "envoy.grpc_web", + "category": "envoy.filters.http" + }, { + "name": "envoy.health_check", + "category": "envoy.filters.http" + }, { + "name": "envoy.ip_tagging", + "category": "envoy.filters.http" + }, { + "name": "envoy.local_rate_limit", + "category": "envoy.filters.http" + }, { + "name": "envoy.lua", + "category": "envoy.filters.http" + }, { + "name": "envoy.rate_limit", + "category": "envoy.filters.http" + }, { + "name": "envoy.router", + "category": "envoy.filters.http" + }, { + "name": "envoy.access_loggers.file", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.file.v3.FileAccessLog"] + }, { + "name": "envoy.access_loggers.http_grpc", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig"] + }, { + "name": "envoy.access_loggers.open_telemetry", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig"] + }, { + "name": "envoy.access_loggers.stderr", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.stream.v3.StderrAccessLog"] + }, { + "name": "envoy.access_loggers.stdout", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.stream.v3.StdoutAccessLog"] + }, { + "name": "envoy.access_loggers.tcp_grpc", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig"] + }, { + "name": "envoy.access_loggers.wasm", + "category": "envoy.access_loggers", + "typeUrls": ["envoy.extensions.access_loggers.wasm.v3.WasmAccessLog"] + }, { + "name": "envoy.file_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.http_grpc_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.open_telemetry_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.stderr_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.stdout_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.tcp_grpc_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.wasm_access_log", + "category": "envoy.access_loggers" + }, { + "name": "envoy.config.validators.minimum_clusters", + "category": "envoy.config.validators" + }, { + "name": "envoy.config.validators.minimum_clusters_validator", + "category": "envoy.config.validators", + "typeUrls": ["envoy.extensions.config.validators.minimum_clusters.v3.MinimumClustersValidator"] + }, { + "name": "envoy.http.header_validators.envoy_default", + "category": "envoy.http.header_validators", + "typeUrls": ["envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig"] + }, { + "name": "dubbo.hessian2", + "category": "envoy.dubbo_proxy.serializers" + }, { + "name": "quic.http_server_connection.default", + "category": "quic.http_server_connection" + }, { + "name": "envoy.transport_sockets.alts", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.alts.v3.Alts"] + }, { + "name": "envoy.transport_sockets.quic", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport"] + }, { + "name": "envoy.transport_sockets.raw_buffer", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer"] + }, { + "name": "envoy.transport_sockets.starttls", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.starttls.v3.StartTlsConfig"] + }, { + "name": "envoy.transport_sockets.tap", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.tap.v3.Tap"] + }, { + "name": "envoy.transport_sockets.tcp_stats", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.tcp_stats.v3.Config"] + }, { + "name": "envoy.transport_sockets.tls", + "category": "envoy.transport_sockets.downstream", + "typeUrls": ["envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext"] + }, { + "name": "raw_buffer", + "category": "envoy.transport_sockets.downstream" + }, { + "name": "starttls", + "category": "envoy.transport_sockets.downstream" + }, { + "name": "tls", + "category": "envoy.transport_sockets.downstream" + }, { + "name": "envoy.rbac.matchers.upstream_ip_port", + "category": "envoy.rbac.matchers", + "typeUrls": ["envoy.extensions.rbac.matchers.upstream_ip_port.v3.UpstreamIpPortMatcher"] + }, { + "name": "envoy.key_value.file_based", + "category": "envoy.common.key_value", + "typeUrls": ["envoy.extensions.key_value.file_based.v3.FileBasedKeyValueStoreConfig"] + }, { + "name": "envoy.matching.inputs.application_protocol", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ApplicationProtocolInput"] + }, { + "name": "envoy.matching.inputs.destination_ip", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput"] + }, { + "name": "envoy.matching.inputs.destination_port", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput"] + }, { + "name": "envoy.matching.inputs.direct_source_ip", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput"] + }, { + "name": "envoy.matching.inputs.dns_san", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput"] + }, { + "name": "envoy.matching.inputs.server_name", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ServerNameInput"] + }, { + "name": "envoy.matching.inputs.source_ip", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceIPInput"] + }, { + "name": "envoy.matching.inputs.source_port", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourcePortInput"] + }, { + "name": "envoy.matching.inputs.source_type", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput"] + }, { + "name": "envoy.matching.inputs.subject", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput"] + }, { + "name": "envoy.matching.inputs.transport_protocol", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.TransportProtocolInput"] + }, { + "name": "envoy.matching.inputs.uri_san", + "category": "envoy.matching.network.input", + "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput"] + }, { + "name": "dubbo", + "category": "envoy.dubbo_proxy.protocols" + }, { + "name": "envoy.watchdog.abort_action", + "category": "envoy.guarddog_actions", + "typeUrls": ["envoy.watchdog.v3.AbortActionConfig"] + }, { + "name": "envoy.watchdog.profile_action", + "category": "envoy.guarddog_actions", + "typeUrls": ["envoy.extensions.watchdog.profile_action.v3.ProfileActionConfig"] + }, { + "name": "envoy.quic.crypto_stream.server.quiche", + "category": "envoy.quic.server.crypto_stream", + "typeUrls": ["envoy.extensions.quic.crypto_stream.v3.CryptoServerStreamConfig"] + }, { + "name": "envoy.regex_engines.google_re2", + "category": "envoy.regex_engines", + "typeUrls": ["envoy.extensions.regex_engines.v3.GoogleRE2"] + }, { + "name": "envoy.http.stateful_session.cookie", + "category": "envoy.http.stateful_session", + "typeUrls": ["envoy.extensions.http.stateful_session.cookie.v3.CookieBasedSessionState"] + }, { + "name": "envoy.http.stateful_session.header", + "category": "envoy.http.stateful_session", + "typeUrls": ["envoy.extensions.http.stateful_session.header.v3.HeaderBasedSessionState"] + }, { + "name": "envoy.matching.custom_matchers.trie_matcher", + "category": "envoy.matching.network.custom_matchers", + "typeUrls": ["xds.type.matcher.v3.IPMatcher"] + }, { + "name": "envoy.udp_packet_writer.default", + "category": "envoy.udp_packet_writer", + "typeUrls": ["envoy.extensions.udp_packet_writer.v3.UdpDefaultWriterFactory"] + }, { + "name": "envoy.udp_packet_writer.gso", + "category": "envoy.udp_packet_writer", + "typeUrls": ["envoy.extensions.udp_packet_writer.v3.UdpGsoBatchWriterFactory"] + }, { + "name": "envoy.quic.proof_source.filter_chain", + "category": "envoy.quic.proof_source", + "typeUrls": ["envoy.extensions.quic.proof_source.v3.ProofSourceConfig"] + }, { + "name": "envoy.resource_monitors.fixed_heap", + "category": "envoy.resource_monitors", + "typeUrls": ["envoy.extensions.resource_monitors.fixed_heap.v3.FixedHeapConfig"] + }, { + "name": "envoy.resource_monitors.injected_resource", + "category": "envoy.resource_monitors", + "typeUrls": ["envoy.extensions.resource_monitors.injected_resource.v3.InjectedResourceConfig"] + }, { + "name": "envoy.http.stateful_header_formatters.preserve_case", + "category": "envoy.http.stateful_header_formatters", + "typeUrls": ["envoy.extensions.http.header_formatters.preserve_case.v3.PreserveCaseFormatterConfig"] + }, { + "name": "preserve_case", + "category": "envoy.http.stateful_header_formatters" + }, { + "name": "envoy.filters.thrift.header_to_metadata", + "category": "envoy.thrift_proxy.filters", + "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.header_to_metadata.v3.HeaderToMetadata"] + }, { + "name": "envoy.filters.thrift.payload_to_metadata", + "category": "envoy.thrift_proxy.filters", + "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.payload_to_metadata.v3.PayloadToMetadata"] + }, { + "name": "envoy.filters.thrift.rate_limit", + "category": "envoy.thrift_proxy.filters", + "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.ratelimit.v3.RateLimit"] + }, { + "name": "envoy.filters.thrift.router", + "category": "envoy.thrift_proxy.filters", + "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.router.v3.Router"] + }, { + "name": "envoy.tracers.datadog", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.DatadogConfig"] + }, { + "name": "envoy.tracers.dynamic_ot", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.DynamicOtConfig"] + }, { + "name": "envoy.tracers.opencensus", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.OpenCensusConfig"] + }, { + "name": "envoy.tracers.opentelemetry", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.OpenTelemetryConfig"] + }, { + "name": "envoy.tracers.skywalking", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.SkyWalkingConfig"] + }, { + "name": "envoy.tracers.xray", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.XRayConfig"] + }, { + "name": "envoy.tracers.zipkin", + "category": "envoy.tracers", + "typeUrls": ["envoy.config.trace.v3.ZipkinConfig"] + }, { + "name": "envoy.zipkin", + "category": "envoy.tracers" + }, { + "name": "envoy.retry_priorities.previous_priorities", + "category": "envoy.retry_priorities", + "typeUrls": ["envoy.extensions.retry.priority.previous_priorities.v3.PreviousPrioritiesConfig"] + }, { + "name": "envoy.http.early_header_mutation.header_mutation", + "category": "envoy.http.early_header_mutation", + "typeUrls": ["envoy.extensions.http.early_header_mutation.header_mutation.v3.HeaderMutation"] + }, { + "name": "envoy.connection_handler.default", + "category": "envoy.connection_handler" + }, { + "name": "envoy.transport_sockets.alts", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.alts.v3.Alts"] + }, { + "name": "envoy.transport_sockets.http_11_proxy", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.http_11_proxy.v3.Http11ProxyUpstreamTransport"] + }, { + "name": "envoy.transport_sockets.internal_upstream", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport"] + }, { + "name": "envoy.transport_sockets.quic", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport"] + }, { + "name": "envoy.transport_sockets.raw_buffer", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer"] + }, { + "name": "envoy.transport_sockets.starttls", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.starttls.v3.UpstreamStartTlsConfig"] + }, { + "name": "envoy.transport_sockets.tap", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.tap.v3.Tap"] + }, { + "name": "envoy.transport_sockets.tcp_stats", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.tcp_stats.v3.Config"] + }, { + "name": "envoy.transport_sockets.tls", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext"] + }, { + "name": "envoy.transport_sockets.upstream_proxy_protocol", + "category": "envoy.transport_sockets.upstream", + "typeUrls": ["envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport"] + }, { + "name": "raw_buffer", + "category": "envoy.transport_sockets.upstream" + }, { + "name": "starttls", + "category": "envoy.transport_sockets.upstream" + }, { + "name": "tls", + "category": "envoy.transport_sockets.upstream" + }, { + "name": "auto", + "category": "envoy.thrift_proxy.transports" + }, { + "name": "framed", + "category": "envoy.thrift_proxy.transports" + }, { + "name": "header", + "category": "envoy.thrift_proxy.transports" + }, { + "name": "unframed", + "category": "envoy.thrift_proxy.transports" + }, { + "name": "envoy.cluster.eds", + "category": "envoy.clusters" + }, { + "name": "envoy.cluster.logical_dns", + "category": "envoy.clusters" + }, { + "name": "envoy.cluster.original_dst", + "category": "envoy.clusters" + }, { + "name": "envoy.cluster.static", + "category": "envoy.clusters" + }, { + "name": "envoy.cluster.strict_dns", + "category": "envoy.clusters" + }, { + "name": "envoy.clusters.aggregate", + "category": "envoy.clusters" + }, { + "name": "envoy.clusters.dynamic_forward_proxy", + "category": "envoy.clusters" + }, { + "name": "envoy.clusters.redis", + "category": "envoy.clusters" + }, { + "name": "envoy.access_loggers.extension_filters.cel", + "category": "envoy.access_loggers.extension_filters", + "typeUrls": ["envoy.extensions.access_loggers.filters.cel.v3.ExpressionFilter"] + }, { + "name": "auto", + "category": "envoy.thrift_proxy.protocols" + }, { + "name": "binary", + "category": "envoy.thrift_proxy.protocols" + }, { + "name": "binary/non-strict", + "category": "envoy.thrift_proxy.protocols" + }, { + "name": "compact", + "category": "envoy.thrift_proxy.protocols" + }, { + "name": "twitter", + "category": "envoy.thrift_proxy.protocols" + }, { + "name": "envoy.extensions.upstreams.http.v3.HttpProtocolOptions", + "category": "envoy.upstream_options", + "typeUrls": ["envoy.extensions.upstreams.http.v3.HttpProtocolOptions"] + }, { + "name": "envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions", + "category": "envoy.upstream_options", + "typeUrls": ["envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions"] + }, { + "name": "envoy.upstreams.http.http_protocol_options", + "category": "envoy.upstream_options" + }, { + "name": "envoy.upstreams.tcp.tcp_protocol_options", + "category": "envoy.upstream_options" + }, { + "name": "envoy.listener_manager_impl.default", + "category": "envoy.listener_manager_impl", + "typeUrls": ["envoy.config.listener.v3.ListenerManager"] + }, { + "name": "default", + "category": "network.connection.client" + }, { + "name": "envoy_internal", + "category": "network.connection.client" + }, { + "name": "envoy.filters.udp.dns_filter", + "category": "envoy.filters.udp_listener", + "typeUrls": ["envoy.extensions.filters.udp.dns_filter.v3.DnsFilterConfig"] + }, { + "name": "envoy.filters.udp_listener.udp_proxy", + "category": "envoy.filters.udp_listener", + "typeUrls": ["envoy.extensions.filters.udp.udp_proxy.v3.UdpProxyConfig"] + }, { + "name": "envoy.extensions.http.cache.file_system_http_cache", + "category": "envoy.http.cache", + "typeUrls": ["envoy.extensions.http.cache.file_system_http_cache.v3.FileSystemHttpCacheConfig"] + }, { + "name": "envoy.extensions.http.cache.simple", + "category": "envoy.http.cache", + "typeUrls": ["envoy.extensions.http.cache.simple_http_cache.v3.SimpleHttpCacheConfig"] + }, { + "name": "envoy.retry_host_predicates.omit_canary_hosts", + "category": "envoy.retry_host_predicates", + "typeUrls": ["envoy.extensions.retry.host.omit_canary_hosts.v3.OmitCanaryHostsPredicate"] + }, { + "name": "envoy.retry_host_predicates.omit_host_metadata", + "category": "envoy.retry_host_predicates", + "typeUrls": ["envoy.extensions.retry.host.omit_host_metadata.v3.OmitHostMetadataConfig"] + }, { + "name": "envoy.retry_host_predicates.previous_hosts", + "category": "envoy.retry_host_predicates", + "typeUrls": ["envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate"] + }, { + "name": "envoy.formatter.metadata", + "category": "envoy.formatter", + "typeUrls": ["envoy.extensions.formatter.metadata.v3.Metadata"] + }, { + "name": "envoy.formatter.req_without_query", + "category": "envoy.formatter", + "typeUrls": ["envoy.extensions.formatter.req_without_query.v3.ReqWithoutQuery"] + }, { + "name": "envoy.internal_redirect_predicates.allow_listed_routes", + "category": "envoy.internal_redirect_predicates", + "typeUrls": ["envoy.extensions.internal_redirect.allow_listed_routes.v3.AllowListedRoutesConfig"] + }, { + "name": "envoy.internal_redirect_predicates.previous_routes", + "category": "envoy.internal_redirect_predicates", + "typeUrls": ["envoy.extensions.internal_redirect.previous_routes.v3.PreviousRoutesConfig"] + }, { + "name": "envoy.internal_redirect_predicates.safe_cross_scheme", + "category": "envoy.internal_redirect_predicates", + "typeUrls": ["envoy.extensions.internal_redirect.safe_cross_scheme.v3.SafeCrossSchemeConfig"] + }, { + "name": "envoy.matching.custom_matchers.trie_matcher", + "category": "envoy.matching.http.custom_matchers", + "typeUrls": ["xds.type.matcher.v3.IPMatcher"] + }, { + "name": "envoy.filters.dubbo.router", + "category": "envoy.dubbo_proxy.filters", + "typeUrls": ["envoy.extensions.filters.network.dubbo_proxy.router.v3.Router"] + }, { + "name": "envoy.echo", + "category": "envoy.filters.network" + }, { + "name": "envoy.ext_authz", + "category": "envoy.filters.network" + }, { + "name": "envoy.filters.network.connection_limit", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.connection_limit.v3.ConnectionLimit"] + }, { + "name": "envoy.filters.network.direct_response", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.direct_response.v3.Config"] + }, { + "name": "envoy.filters.network.dubbo_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.dubbo_proxy.v3.DubboProxy"] + }, { + "name": "envoy.filters.network.echo", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.echo.v3.Echo"] + }, { + "name": "envoy.filters.network.ext_authz", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.ext_authz.v3.ExtAuthz"] + }, { + "name": "envoy.filters.network.http_connection_manager", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager"] + }, { + "name": "envoy.filters.network.local_ratelimit", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.local_ratelimit.v3.LocalRateLimit"] + }, { + "name": "envoy.filters.network.mongo_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.mongo_proxy.v3.MongoProxy"] + }, { + "name": "envoy.filters.network.ratelimit", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.ratelimit.v3.RateLimit"] + }, { + "name": "envoy.filters.network.rbac", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.rbac.v3.RBAC"] + }, { + "name": "envoy.filters.network.redis_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.redis_proxy.v3.RedisProxy"] + }, { + "name": "envoy.filters.network.sni_cluster", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.sni_cluster.v3.SniCluster"] + }, { + "name": "envoy.filters.network.sni_dynamic_forward_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.sni_dynamic_forward_proxy.v3.FilterConfig"] + }, { + "name": "envoy.filters.network.tcp_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy"] + }, { + "name": "envoy.filters.network.thrift_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy"] + }, { + "name": "envoy.filters.network.wasm", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.wasm.v3.Wasm"] + }, { + "name": "envoy.filters.network.zookeeper_proxy", + "category": "envoy.filters.network", + "typeUrls": ["envoy.extensions.filters.network.zookeeper_proxy.v3.ZooKeeperProxy"] + }, { + "name": "envoy.http_connection_manager", + "category": "envoy.filters.network" + }, { + "name": "envoy.mongo_proxy", + "category": "envoy.filters.network" + }, { + "name": "envoy.ratelimit", + "category": "envoy.filters.network" + }, { + "name": "envoy.redis_proxy", + "category": "envoy.filters.network" + }, { + "name": "envoy.tcp_proxy", + "category": "envoy.filters.network" + }, { + "name": "envoy.health_checkers.redis", + "category": "envoy.health_checkers", + "typeUrls": ["envoy.extensions.health_checkers.redis.v3.Redis"] + }, { + "name": "envoy.health_checkers.thrift", + "category": "envoy.health_checkers", + "typeUrls": ["envoy.extensions.health_checkers.thrift.v3.Thrift"] + }] }, - "metadata": { - "build.label": "dev", - "build.type": "RELEASE", - "revision.sha": "14111e3c62d3d38b0c921cb7011fd0a94e880aed", - "revision.status": "Clean", - "ssl.version": "BoringSSL" - } - }, - "extensions": [{ - "name": "envoy.filters.connection_pools.tcp.generic", - "category": "envoy.upstreams", - "typeUrls": ["envoy.extensions.upstreams.tcp.generic.v3.GenericConnectionPoolProto"] - }, { - "name": "envoy.rate_limit_descriptors.expr", - "category": "envoy.rate_limit_descriptors", - "typeUrls": ["envoy.extensions.rate_limit_descriptors.expr.v3.Descriptor"] - }, { - "name": "envoy.matching.inputs.destination_ip", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput"] - }, { - "name": "envoy.matching.inputs.destination_port", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput"] - }, { - "name": "envoy.matching.inputs.direct_source_ip", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput"] - }, { - "name": "envoy.matching.inputs.dns_san", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput"] - }, { - "name": "envoy.matching.inputs.request_headers", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpRequestHeaderMatchInput"] - }, { - "name": "envoy.matching.inputs.request_trailers", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpRequestTrailerMatchInput"] - }, { - "name": "envoy.matching.inputs.response_headers", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpResponseHeaderMatchInput"] - }, { - "name": "envoy.matching.inputs.response_trailers", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpResponseTrailerMatchInput"] - }, { - "name": "envoy.matching.inputs.server_name", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ServerNameInput"] - }, { - "name": "envoy.matching.inputs.source_ip", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceIPInput"] - }, { - "name": "envoy.matching.inputs.source_port", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourcePortInput"] - }, { - "name": "envoy.matching.inputs.source_type", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput"] - }, { - "name": "envoy.matching.inputs.status_code_class_input", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpResponseStatusCodeClassMatchInput"] - }, { - "name": "envoy.matching.inputs.status_code_input", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpResponseStatusCodeMatchInput"] - }, { - "name": "envoy.matching.inputs.subject", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput"] - }, { - "name": "envoy.matching.inputs.uri_san", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput"] - }, { - "name": "query_params", - "category": "envoy.matching.http.input", - "typeUrls": ["envoy.type.matcher.v3.HttpRequestQueryParamMatchInput"] - }, { - "name": "envoy.tls.cert_validator.default", - "category": "envoy.tls.cert_validator" - }, { - "name": "envoy.tls.cert_validator.spiffe", - "category": "envoy.tls.cert_validator" - }, { - "name": "envoy.path.match.uri_template.uri_template_matcher", - "category": "envoy.path.match", - "typeUrls": ["envoy.extensions.path.match.uri_template.v3.UriTemplateMatchConfig"] - }, { - "name": "envoy.http.original_ip_detection.custom_header", - "category": "envoy.http.original_ip_detection", - "typeUrls": ["envoy.extensions.http.original_ip_detection.custom_header.v3.CustomHeaderConfig"] - }, { - "name": "envoy.http.original_ip_detection.xff", - "category": "envoy.http.original_ip_detection", - "typeUrls": ["envoy.extensions.http.original_ip_detection.xff.v3.XffConfig"] - }, { - "name": "envoy.buffer", - "category": "envoy.filters.http.upstream" - }, { - "name": "envoy.filters.http.admission_control", - "category": "envoy.filters.http.upstream", - "typeUrls": ["envoy.extensions.filters.http.admission_control.v3.AdmissionControl"] - }, { - "name": "envoy.filters.http.buffer", - "category": "envoy.filters.http.upstream", - "typeUrls": ["envoy.extensions.filters.http.buffer.v3.Buffer", "envoy.extensions.filters.http.buffer.v3.BufferPerRoute"] - }, { - "name": "envoy.filters.http.upstream_codec", - "category": "envoy.filters.http.upstream", - "typeUrls": ["envoy.extensions.filters.http.upstream_codec.v3.UpstreamCodec"] - }, { - "name": "envoy.route.early_data_policy.default", - "category": "envoy.route.early_data_policy", - "typeUrls": ["envoy.extensions.early_data.v3.DefaultEarlyDataPolicy"] - }, { - "name": "envoy.compression.brotli.compressor", - "category": "envoy.compression.compressor", - "typeUrls": ["envoy.extensions.compression.brotli.compressor.v3.Brotli"] - }, { - "name": "envoy.compression.gzip.compressor", - "category": "envoy.compression.compressor", - "typeUrls": ["envoy.extensions.compression.gzip.compressor.v3.Gzip"] - }, { - "name": "envoy.compression.zstd.compressor", - "category": "envoy.compression.compressor", - "typeUrls": ["envoy.extensions.compression.zstd.compressor.v3.Zstd"] - }, { - "name": "envoy.compression.brotli.decompressor", - "category": "envoy.compression.decompressor", - "typeUrls": ["envoy.extensions.compression.brotli.decompressor.v3.Brotli"] - }, { - "name": "envoy.compression.gzip.decompressor", - "category": "envoy.compression.decompressor", - "typeUrls": ["envoy.extensions.compression.gzip.decompressor.v3.Gzip"] - }, { - "name": "envoy.compression.zstd.decompressor", - "category": "envoy.compression.decompressor", - "typeUrls": ["envoy.extensions.compression.zstd.decompressor.v3.Zstd"] - }, { - "name": "envoy.wasm.runtime.null", - "category": "envoy.wasm.runtime" - }, { - "name": "envoy.wasm.runtime.v8", - "category": "envoy.wasm.runtime" - }, { - "name": "envoy.dog_statsd", - "category": "envoy.stats_sinks" - }, { - "name": "envoy.graphite_statsd", - "category": "envoy.stats_sinks" - }, { - "name": "envoy.metrics_service", - "category": "envoy.stats_sinks" - }, { - "name": "envoy.stat_sinks.dog_statsd", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.config.metrics.v3.DogStatsdSink"] - }, { - "name": "envoy.stat_sinks.graphite_statsd", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.extensions.stat_sinks.graphite_statsd.v3.GraphiteStatsdSink"] - }, { - "name": "envoy.stat_sinks.hystrix", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.config.metrics.v3.HystrixSink"] - }, { - "name": "envoy.stat_sinks.metrics_service", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.config.metrics.v3.MetricsServiceConfig"] - }, { - "name": "envoy.stat_sinks.statsd", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.config.metrics.v3.StatsdSink"] - }, { - "name": "envoy.stat_sinks.wasm", - "category": "envoy.stats_sinks", - "typeUrls": ["envoy.extensions.stat_sinks.wasm.v3.Wasm"] - }, { - "name": "envoy.statsd", - "category": "envoy.stats_sinks" - }, { - "name": "envoy.path.rewrite.uri_template.uri_template_rewriter", - "category": "envoy.path.rewrite", - "typeUrls": ["envoy.extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig"] - }, { - "name": "envoy.extensions.http.custom_response.local_response_policy", - "category": "envoy.http.custom_response", - "typeUrls": ["envoy.extensions.http.custom_response.local_response_policy.v3.LocalResponsePolicy"] - }, { - "name": "envoy.extensions.http.custom_response.redirect_policy", - "category": "envoy.http.custom_response", - "typeUrls": ["envoy.extensions.http.custom_response.redirect_policy.v3.RedirectPolicy"] - }, { - "name": "envoy.matching.actions.format_string", - "category": "envoy.matching.action", - "typeUrls": ["envoy.config.core.v3.SubstitutionFormatString"] - }, { - "name": "filter-chain-name", - "category": "envoy.matching.action", - "typeUrls": ["google.protobuf.StringValue"] - }, { - "name": "envoy.quic.deterministic_connection_id_generator", - "category": "envoy.quic.connection_id_generator", - "typeUrls": ["envoy.extensions.quic.connection_id_generator.v3.DeterministicConnectionIdGeneratorConfig"] - }, { - "name": "envoy.network.dns_resolver.cares", - "category": "envoy.network.dns_resolver", - "typeUrls": ["envoy.extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig"] - }, { - "name": "envoy.network.dns_resolver.getaddrinfo", - "category": "envoy.network.dns_resolver", - "typeUrls": ["envoy.extensions.network.dns_resolver.getaddrinfo.v3.GetAddrInfoDnsResolverConfig"] - }, { - "name": "envoy.bootstrap.internal_listener", - "category": "envoy.bootstrap", - "typeUrls": ["envoy.extensions.bootstrap.internal_listener.v3.InternalListener"] - }, { - "name": "envoy.bootstrap.wasm", - "category": "envoy.bootstrap", - "typeUrls": ["envoy.extensions.wasm.v3.WasmService"] - }, { - "name": "envoy.extensions.network.socket_interface.default_socket_interface", - "category": "envoy.bootstrap", - "typeUrls": ["envoy.extensions.network.socket_interface.v3.DefaultSocketInterface"] - }, { - "name": "envoy.filters.listener.http_inspector", - "category": "envoy.filters.listener", - "typeUrls": ["envoy.extensions.filters.listener.http_inspector.v3.HttpInspector"] - }, { - "name": "envoy.filters.listener.original_dst", - "category": "envoy.filters.listener", - "typeUrls": ["envoy.extensions.filters.listener.original_dst.v3.OriginalDst"] - }, { - "name": "envoy.filters.listener.original_src", - "category": "envoy.filters.listener", - "typeUrls": ["envoy.extensions.filters.listener.original_src.v3.OriginalSrc"] - }, { - "name": "envoy.filters.listener.proxy_protocol", - "category": "envoy.filters.listener", - "typeUrls": ["envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol"] - }, { - "name": "envoy.filters.listener.tls_inspector", - "category": "envoy.filters.listener", - "typeUrls": ["envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector"] - }, { - "name": "envoy.listener.http_inspector", - "category": "envoy.filters.listener" - }, { - "name": "envoy.listener.original_dst", - "category": "envoy.filters.listener" - }, { - "name": "envoy.listener.original_src", - "category": "envoy.filters.listener" - }, { - "name": "envoy.listener.proxy_protocol", - "category": "envoy.filters.listener" - }, { - "name": "envoy.listener.tls_inspector", - "category": "envoy.filters.listener" - }, { - "name": "envoy.matching.common_inputs.environment_variable", - "category": "envoy.matching.common_inputs", - "typeUrls": ["envoy.extensions.matching.common_inputs.environment_variable.v3.Config"] - }, { - "name": "envoy.matching.matchers.consistent_hashing", - "category": "envoy.matching.input_matchers", - "typeUrls": ["envoy.extensions.matching.input_matchers.consistent_hashing.v3.ConsistentHashing"] - }, { - "name": "envoy.matching.matchers.ip", - "category": "envoy.matching.input_matchers", - "typeUrls": ["envoy.extensions.matching.input_matchers.ip.v3.Ip"] - }, { - "name": "envoy.grpc_credentials.aws_iam", - "category": "envoy.grpc_credentials" - }, { - "name": "envoy.grpc_credentials.default", - "category": "envoy.grpc_credentials" - }, { - "name": "envoy.grpc_credentials.file_based_metadata", - "category": "envoy.grpc_credentials" - }, { - "name": "envoy.request_id.uuid", - "category": "envoy.request_id", - "typeUrls": ["envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig"] - }, { - "name": "envoy.load_balancing_policies.least_request", - "category": "envoy.load_balancing_policies", - "typeUrls": ["envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest"] - }, { - "name": "envoy.load_balancing_policies.maglev", - "category": "envoy.load_balancing_policies", - "typeUrls": ["envoy.extensions.load_balancing_policies.maglev.v3.Maglev"] - }, { - "name": "envoy.load_balancing_policies.random", - "category": "envoy.load_balancing_policies", - "typeUrls": ["envoy.extensions.load_balancing_policies.random.v3.Random"] - }, { - "name": "envoy.load_balancing_policies.ring_hash", - "category": "envoy.load_balancing_policies", - "typeUrls": ["envoy.extensions.load_balancing_policies.ring_hash.v3.RingHash"] - }, { - "name": "envoy.load_balancing_policies.round_robin", - "category": "envoy.load_balancing_policies", - "typeUrls": ["envoy.extensions.load_balancing_policies.round_robin.v3.RoundRobin"] - }, { - "name": "envoy.ip", - "category": "envoy.resolvers" - }, { - "name": "envoy.bandwidth_limit", - "category": "envoy.filters.http" - }, { - "name": "envoy.buffer", - "category": "envoy.filters.http" - }, { - "name": "envoy.cors", - "category": "envoy.filters.http" - }, { - "name": "envoy.csrf", - "category": "envoy.filters.http" - }, { - "name": "envoy.ext_authz", - "category": "envoy.filters.http" - }, { - "name": "envoy.ext_proc", - "category": "envoy.filters.http" - }, { - "name": "envoy.fault", - "category": "envoy.filters.http" - }, { - "name": "envoy.filters.http.adaptive_concurrency", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.adaptive_concurrency.v3.AdaptiveConcurrency"] - }, { - "name": "envoy.filters.http.admission_control", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.admission_control.v3.AdmissionControl"] - }, { - "name": "envoy.filters.http.alternate_protocols_cache", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.alternate_protocols_cache.v3.FilterConfig"] - }, { - "name": "envoy.filters.http.aws_lambda", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.aws_lambda.v3.Config", "envoy.extensions.filters.http.aws_lambda.v3.PerRouteConfig"] - }, { - "name": "envoy.filters.http.aws_request_signing", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.aws_request_signing.v3.AwsRequestSigning"] - }, { - "name": "envoy.filters.http.bandwidth_limit", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.bandwidth_limit.v3.BandwidthLimit"] - }, { - "name": "envoy.filters.http.buffer", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.buffer.v3.Buffer", "envoy.extensions.filters.http.buffer.v3.BufferPerRoute"] - }, { - "name": "envoy.filters.http.cache", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.cache.v3.CacheConfig"] - }, { - "name": "envoy.filters.http.cdn_loop", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.cdn_loop.v3.CdnLoopConfig"] - }, { - "name": "envoy.filters.http.composite", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.composite.v3.Composite"] - }, { - "name": "envoy.filters.http.compressor", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.compressor.v3.Compressor", "envoy.extensions.filters.http.compressor.v3.CompressorPerRoute"] - }, { - "name": "envoy.filters.http.connect_grpc_bridge", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"] - }, { - "name": "envoy.filters.http.cors", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.cors.v3.Cors", "envoy.extensions.filters.http.cors.v3.CorsPolicy"] - }, { - "name": "envoy.filters.http.csrf", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.csrf.v3.CsrfPolicy"] - }, { - "name": "envoy.filters.http.custom_response", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.custom_response.v3.CustomResponse"] - }, { - "name": "envoy.filters.http.decompressor", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.decompressor.v3.Decompressor"] - }, { - "name": "envoy.filters.http.dynamic_forward_proxy", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig", "envoy.extensions.filters.http.dynamic_forward_proxy.v3.PerRouteConfig"] - }, { - "name": "envoy.filters.http.ext_authz", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.ext_authz.v3.ExtAuthz", "envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute"] - }, { - "name": "envoy.filters.http.ext_proc", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.ext_proc.v3.ExtProcPerRoute", "envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor"] - }, { - "name": "envoy.filters.http.fault", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.fault.v3.HTTPFault"] - }, { - "name": "envoy.filters.http.file_system_buffer", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.file_system_buffer.v3.FileSystemBufferFilterConfig"] - }, { - "name": "envoy.filters.http.gcp_authn", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.gcp_authn.v3.GcpAuthnFilterConfig"] - }, { - "name": "envoy.filters.http.grpc_http1_bridge", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.grpc_http1_bridge.v3.Config"] - }, { - "name": "envoy.filters.http.grpc_http1_reverse_bridge", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfig", "envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfigPerRoute"] - }, { - "name": "envoy.filters.http.grpc_json_transcoder", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"] - }, { - "name": "envoy.filters.http.grpc_stats", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.grpc_stats.v3.FilterConfig"] - }, { - "name": "envoy.filters.http.grpc_web", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"] - }, { - "name": "envoy.filters.http.header_to_metadata", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.header_to_metadata.v3.Config"] - }, { - "name": "envoy.filters.http.health_check", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.health_check.v3.HealthCheck"] - }, { - "name": "envoy.filters.http.ip_tagging", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.ip_tagging.v3.IPTagging"] - }, { - "name": "envoy.filters.http.jwt_authn", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication", "envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig"] - }, { - "name": "envoy.filters.http.local_ratelimit", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit"] - }, { - "name": "envoy.filters.http.lua", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.lua.v3.Lua", "envoy.extensions.filters.http.lua.v3.LuaPerRoute"] - }, { - "name": "envoy.filters.http.match_delegate", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.common.matching.v3.ExtensionWithMatcher"] - }, { - "name": "envoy.filters.http.oauth2", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.oauth2.v3.OAuth2"] - }, { - "name": "envoy.filters.http.on_demand", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.on_demand.v3.OnDemand", "envoy.extensions.filters.http.on_demand.v3.PerRouteConfig"] - }, { - "name": "envoy.filters.http.original_src", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.original_src.v3.OriginalSrc"] - }, { - "name": "envoy.filters.http.rate_limit_quota", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig", "envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaOverride"] - }, { - "name": "envoy.filters.http.ratelimit", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.ratelimit.v3.RateLimit", "envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute"] - }, { - "name": "envoy.filters.http.rbac", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.rbac.v3.RBAC", "envoy.extensions.filters.http.rbac.v3.RBACPerRoute"] - }, { - "name": "envoy.filters.http.router", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.router.v3.Router"] - }, { - "name": "envoy.filters.http.set_metadata", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.set_metadata.v3.Config"] - }, { - "name": "envoy.filters.http.stateful_session", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.stateful_session.v3.StatefulSession", "envoy.extensions.filters.http.stateful_session.v3.StatefulSessionPerRoute"] - }, { - "name": "envoy.filters.http.tap", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.tap.v3.Tap"] - }, { - "name": "envoy.filters.http.wasm", - "category": "envoy.filters.http", - "typeUrls": ["envoy.extensions.filters.http.wasm.v3.Wasm"] - }, { - "name": "envoy.grpc_http1_bridge", - "category": "envoy.filters.http" - }, { - "name": "envoy.grpc_json_transcoder", - "category": "envoy.filters.http" - }, { - "name": "envoy.grpc_web", - "category": "envoy.filters.http" - }, { - "name": "envoy.health_check", - "category": "envoy.filters.http" - }, { - "name": "envoy.ip_tagging", - "category": "envoy.filters.http" - }, { - "name": "envoy.local_rate_limit", - "category": "envoy.filters.http" - }, { - "name": "envoy.lua", - "category": "envoy.filters.http" - }, { - "name": "envoy.rate_limit", - "category": "envoy.filters.http" - }, { - "name": "envoy.router", - "category": "envoy.filters.http" - }, { - "name": "envoy.access_loggers.file", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.file.v3.FileAccessLog"] - }, { - "name": "envoy.access_loggers.http_grpc", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig"] - }, { - "name": "envoy.access_loggers.open_telemetry", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig"] - }, { - "name": "envoy.access_loggers.stderr", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.stream.v3.StderrAccessLog"] - }, { - "name": "envoy.access_loggers.stdout", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.stream.v3.StdoutAccessLog"] - }, { - "name": "envoy.access_loggers.tcp_grpc", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig"] - }, { - "name": "envoy.access_loggers.wasm", - "category": "envoy.access_loggers", - "typeUrls": ["envoy.extensions.access_loggers.wasm.v3.WasmAccessLog"] - }, { - "name": "envoy.file_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.http_grpc_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.open_telemetry_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.stderr_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.stdout_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.tcp_grpc_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.wasm_access_log", - "category": "envoy.access_loggers" - }, { - "name": "envoy.config.validators.minimum_clusters", - "category": "envoy.config.validators" - }, { - "name": "envoy.config.validators.minimum_clusters_validator", - "category": "envoy.config.validators", - "typeUrls": ["envoy.extensions.config.validators.minimum_clusters.v3.MinimumClustersValidator"] - }, { - "name": "envoy.http.header_validators.envoy_default", - "category": "envoy.http.header_validators", - "typeUrls": ["envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig"] - }, { - "name": "dubbo.hessian2", - "category": "envoy.dubbo_proxy.serializers" - }, { - "name": "quic.http_server_connection.default", - "category": "quic.http_server_connection" - }, { - "name": "envoy.transport_sockets.alts", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.alts.v3.Alts"] - }, { - "name": "envoy.transport_sockets.quic", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport"] - }, { - "name": "envoy.transport_sockets.raw_buffer", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer"] - }, { - "name": "envoy.transport_sockets.starttls", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.starttls.v3.StartTlsConfig"] - }, { - "name": "envoy.transport_sockets.tap", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.tap.v3.Tap"] - }, { - "name": "envoy.transport_sockets.tcp_stats", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.tcp_stats.v3.Config"] - }, { - "name": "envoy.transport_sockets.tls", - "category": "envoy.transport_sockets.downstream", - "typeUrls": ["envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext"] - }, { - "name": "raw_buffer", - "category": "envoy.transport_sockets.downstream" - }, { - "name": "starttls", - "category": "envoy.transport_sockets.downstream" - }, { - "name": "tls", - "category": "envoy.transport_sockets.downstream" - }, { - "name": "envoy.rbac.matchers.upstream_ip_port", - "category": "envoy.rbac.matchers", - "typeUrls": ["envoy.extensions.rbac.matchers.upstream_ip_port.v3.UpstreamIpPortMatcher"] - }, { - "name": "envoy.key_value.file_based", - "category": "envoy.common.key_value", - "typeUrls": ["envoy.extensions.key_value.file_based.v3.FileBasedKeyValueStoreConfig"] - }, { - "name": "envoy.matching.inputs.application_protocol", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ApplicationProtocolInput"] - }, { - "name": "envoy.matching.inputs.destination_ip", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput"] - }, { - "name": "envoy.matching.inputs.destination_port", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput"] - }, { - "name": "envoy.matching.inputs.direct_source_ip", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput"] - }, { - "name": "envoy.matching.inputs.dns_san", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput"] - }, { - "name": "envoy.matching.inputs.server_name", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.ServerNameInput"] - }, { - "name": "envoy.matching.inputs.source_ip", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceIPInput"] - }, { - "name": "envoy.matching.inputs.source_port", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourcePortInput"] - }, { - "name": "envoy.matching.inputs.source_type", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput"] - }, { - "name": "envoy.matching.inputs.subject", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput"] - }, { - "name": "envoy.matching.inputs.transport_protocol", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.network.v3.TransportProtocolInput"] - }, { - "name": "envoy.matching.inputs.uri_san", - "category": "envoy.matching.network.input", - "typeUrls": ["envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput"] - }, { - "name": "dubbo", - "category": "envoy.dubbo_proxy.protocols" - }, { - "name": "envoy.watchdog.abort_action", - "category": "envoy.guarddog_actions", - "typeUrls": ["envoy.watchdog.v3.AbortActionConfig"] - }, { - "name": "envoy.watchdog.profile_action", - "category": "envoy.guarddog_actions", - "typeUrls": ["envoy.extensions.watchdog.profile_action.v3.ProfileActionConfig"] - }, { - "name": "envoy.quic.crypto_stream.server.quiche", - "category": "envoy.quic.server.crypto_stream", - "typeUrls": ["envoy.extensions.quic.crypto_stream.v3.CryptoServerStreamConfig"] - }, { - "name": "envoy.regex_engines.google_re2", - "category": "envoy.regex_engines", - "typeUrls": ["envoy.extensions.regex_engines.v3.GoogleRE2"] - }, { - "name": "envoy.http.stateful_session.cookie", - "category": "envoy.http.stateful_session", - "typeUrls": ["envoy.extensions.http.stateful_session.cookie.v3.CookieBasedSessionState"] - }, { - "name": "envoy.http.stateful_session.header", - "category": "envoy.http.stateful_session", - "typeUrls": ["envoy.extensions.http.stateful_session.header.v3.HeaderBasedSessionState"] - }, { - "name": "envoy.matching.custom_matchers.trie_matcher", - "category": "envoy.matching.network.custom_matchers", - "typeUrls": ["xds.type.matcher.v3.IPMatcher"] - }, { - "name": "envoy.udp_packet_writer.default", - "category": "envoy.udp_packet_writer", - "typeUrls": ["envoy.extensions.udp_packet_writer.v3.UdpDefaultWriterFactory"] - }, { - "name": "envoy.udp_packet_writer.gso", - "category": "envoy.udp_packet_writer", - "typeUrls": ["envoy.extensions.udp_packet_writer.v3.UdpGsoBatchWriterFactory"] - }, { - "name": "envoy.quic.proof_source.filter_chain", - "category": "envoy.quic.proof_source", - "typeUrls": ["envoy.extensions.quic.proof_source.v3.ProofSourceConfig"] - }, { - "name": "envoy.resource_monitors.fixed_heap", - "category": "envoy.resource_monitors", - "typeUrls": ["envoy.extensions.resource_monitors.fixed_heap.v3.FixedHeapConfig"] - }, { - "name": "envoy.resource_monitors.injected_resource", - "category": "envoy.resource_monitors", - "typeUrls": ["envoy.extensions.resource_monitors.injected_resource.v3.InjectedResourceConfig"] - }, { - "name": "envoy.http.stateful_header_formatters.preserve_case", - "category": "envoy.http.stateful_header_formatters", - "typeUrls": ["envoy.extensions.http.header_formatters.preserve_case.v3.PreserveCaseFormatterConfig"] - }, { - "name": "preserve_case", - "category": "envoy.http.stateful_header_formatters" - }, { - "name": "envoy.filters.thrift.header_to_metadata", - "category": "envoy.thrift_proxy.filters", - "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.header_to_metadata.v3.HeaderToMetadata"] - }, { - "name": "envoy.filters.thrift.payload_to_metadata", - "category": "envoy.thrift_proxy.filters", - "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.payload_to_metadata.v3.PayloadToMetadata"] - }, { - "name": "envoy.filters.thrift.rate_limit", - "category": "envoy.thrift_proxy.filters", - "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.filters.ratelimit.v3.RateLimit"] - }, { - "name": "envoy.filters.thrift.router", - "category": "envoy.thrift_proxy.filters", - "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.router.v3.Router"] - }, { - "name": "envoy.tracers.datadog", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.DatadogConfig"] - }, { - "name": "envoy.tracers.dynamic_ot", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.DynamicOtConfig"] - }, { - "name": "envoy.tracers.opencensus", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.OpenCensusConfig"] - }, { - "name": "envoy.tracers.opentelemetry", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.OpenTelemetryConfig"] - }, { - "name": "envoy.tracers.skywalking", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.SkyWalkingConfig"] - }, { - "name": "envoy.tracers.xray", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.XRayConfig"] - }, { - "name": "envoy.tracers.zipkin", - "category": "envoy.tracers", - "typeUrls": ["envoy.config.trace.v3.ZipkinConfig"] - }, { - "name": "envoy.zipkin", - "category": "envoy.tracers" - }, { - "name": "envoy.retry_priorities.previous_priorities", - "category": "envoy.retry_priorities", - "typeUrls": ["envoy.extensions.retry.priority.previous_priorities.v3.PreviousPrioritiesConfig"] - }, { - "name": "envoy.http.early_header_mutation.header_mutation", - "category": "envoy.http.early_header_mutation", - "typeUrls": ["envoy.extensions.http.early_header_mutation.header_mutation.v3.HeaderMutation"] - }, { - "name": "envoy.connection_handler.default", - "category": "envoy.connection_handler" - }, { - "name": "envoy.transport_sockets.alts", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.alts.v3.Alts"] - }, { - "name": "envoy.transport_sockets.http_11_proxy", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.http_11_proxy.v3.Http11ProxyUpstreamTransport"] - }, { - "name": "envoy.transport_sockets.internal_upstream", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport"] - }, { - "name": "envoy.transport_sockets.quic", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport"] - }, { - "name": "envoy.transport_sockets.raw_buffer", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer"] - }, { - "name": "envoy.transport_sockets.starttls", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.starttls.v3.UpstreamStartTlsConfig"] - }, { - "name": "envoy.transport_sockets.tap", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.tap.v3.Tap"] - }, { - "name": "envoy.transport_sockets.tcp_stats", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.tcp_stats.v3.Config"] - }, { - "name": "envoy.transport_sockets.tls", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext"] - }, { - "name": "envoy.transport_sockets.upstream_proxy_protocol", - "category": "envoy.transport_sockets.upstream", - "typeUrls": ["envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport"] - }, { - "name": "raw_buffer", - "category": "envoy.transport_sockets.upstream" - }, { - "name": "starttls", - "category": "envoy.transport_sockets.upstream" - }, { - "name": "tls", - "category": "envoy.transport_sockets.upstream" - }, { - "name": "auto", - "category": "envoy.thrift_proxy.transports" - }, { - "name": "framed", - "category": "envoy.thrift_proxy.transports" - }, { - "name": "header", - "category": "envoy.thrift_proxy.transports" - }, { - "name": "unframed", - "category": "envoy.thrift_proxy.transports" - }, { - "name": "envoy.cluster.eds", - "category": "envoy.clusters" - }, { - "name": "envoy.cluster.logical_dns", - "category": "envoy.clusters" - }, { - "name": "envoy.cluster.original_dst", - "category": "envoy.clusters" - }, { - "name": "envoy.cluster.static", - "category": "envoy.clusters" - }, { - "name": "envoy.cluster.strict_dns", - "category": "envoy.clusters" - }, { - "name": "envoy.clusters.aggregate", - "category": "envoy.clusters" - }, { - "name": "envoy.clusters.dynamic_forward_proxy", - "category": "envoy.clusters" - }, { - "name": "envoy.clusters.redis", - "category": "envoy.clusters" - }, { - "name": "envoy.access_loggers.extension_filters.cel", - "category": "envoy.access_loggers.extension_filters", - "typeUrls": ["envoy.extensions.access_loggers.filters.cel.v3.ExpressionFilter"] - }, { - "name": "auto", - "category": "envoy.thrift_proxy.protocols" - }, { - "name": "binary", - "category": "envoy.thrift_proxy.protocols" - }, { - "name": "binary/non-strict", - "category": "envoy.thrift_proxy.protocols" - }, { - "name": "compact", - "category": "envoy.thrift_proxy.protocols" - }, { - "name": "twitter", - "category": "envoy.thrift_proxy.protocols" - }, { - "name": "envoy.extensions.upstreams.http.v3.HttpProtocolOptions", - "category": "envoy.upstream_options", - "typeUrls": ["envoy.extensions.upstreams.http.v3.HttpProtocolOptions"] - }, { - "name": "envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions", - "category": "envoy.upstream_options", - "typeUrls": ["envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions"] - }, { - "name": "envoy.upstreams.http.http_protocol_options", - "category": "envoy.upstream_options" - }, { - "name": "envoy.upstreams.tcp.tcp_protocol_options", - "category": "envoy.upstream_options" - }, { - "name": "envoy.listener_manager_impl.default", - "category": "envoy.listener_manager_impl", - "typeUrls": ["envoy.config.listener.v3.ListenerManager"] - }, { - "name": "default", - "category": "network.connection.client" - }, { - "name": "envoy_internal", - "category": "network.connection.client" - }, { - "name": "envoy.filters.udp.dns_filter", - "category": "envoy.filters.udp_listener", - "typeUrls": ["envoy.extensions.filters.udp.dns_filter.v3.DnsFilterConfig"] - }, { - "name": "envoy.filters.udp_listener.udp_proxy", - "category": "envoy.filters.udp_listener", - "typeUrls": ["envoy.extensions.filters.udp.udp_proxy.v3.UdpProxyConfig"] - }, { - "name": "envoy.extensions.http.cache.file_system_http_cache", - "category": "envoy.http.cache", - "typeUrls": ["envoy.extensions.http.cache.file_system_http_cache.v3.FileSystemHttpCacheConfig"] - }, { - "name": "envoy.extensions.http.cache.simple", - "category": "envoy.http.cache", - "typeUrls": ["envoy.extensions.http.cache.simple_http_cache.v3.SimpleHttpCacheConfig"] - }, { - "name": "envoy.retry_host_predicates.omit_canary_hosts", - "category": "envoy.retry_host_predicates", - "typeUrls": ["envoy.extensions.retry.host.omit_canary_hosts.v3.OmitCanaryHostsPredicate"] - }, { - "name": "envoy.retry_host_predicates.omit_host_metadata", - "category": "envoy.retry_host_predicates", - "typeUrls": ["envoy.extensions.retry.host.omit_host_metadata.v3.OmitHostMetadataConfig"] - }, { - "name": "envoy.retry_host_predicates.previous_hosts", - "category": "envoy.retry_host_predicates", - "typeUrls": ["envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate"] - }, { - "name": "envoy.formatter.metadata", - "category": "envoy.formatter", - "typeUrls": ["envoy.extensions.formatter.metadata.v3.Metadata"] - }, { - "name": "envoy.formatter.req_without_query", - "category": "envoy.formatter", - "typeUrls": ["envoy.extensions.formatter.req_without_query.v3.ReqWithoutQuery"] - }, { - "name": "envoy.internal_redirect_predicates.allow_listed_routes", - "category": "envoy.internal_redirect_predicates", - "typeUrls": ["envoy.extensions.internal_redirect.allow_listed_routes.v3.AllowListedRoutesConfig"] - }, { - "name": "envoy.internal_redirect_predicates.previous_routes", - "category": "envoy.internal_redirect_predicates", - "typeUrls": ["envoy.extensions.internal_redirect.previous_routes.v3.PreviousRoutesConfig"] - }, { - "name": "envoy.internal_redirect_predicates.safe_cross_scheme", - "category": "envoy.internal_redirect_predicates", - "typeUrls": ["envoy.extensions.internal_redirect.safe_cross_scheme.v3.SafeCrossSchemeConfig"] - }, { - "name": "envoy.matching.custom_matchers.trie_matcher", - "category": "envoy.matching.http.custom_matchers", - "typeUrls": ["xds.type.matcher.v3.IPMatcher"] - }, { - "name": "envoy.filters.dubbo.router", - "category": "envoy.dubbo_proxy.filters", - "typeUrls": ["envoy.extensions.filters.network.dubbo_proxy.router.v3.Router"] - }, { - "name": "envoy.echo", - "category": "envoy.filters.network" - }, { - "name": "envoy.ext_authz", - "category": "envoy.filters.network" - }, { - "name": "envoy.filters.network.connection_limit", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.connection_limit.v3.ConnectionLimit"] - }, { - "name": "envoy.filters.network.direct_response", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.direct_response.v3.Config"] - }, { - "name": "envoy.filters.network.dubbo_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.dubbo_proxy.v3.DubboProxy"] - }, { - "name": "envoy.filters.network.echo", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.echo.v3.Echo"] - }, { - "name": "envoy.filters.network.ext_authz", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.ext_authz.v3.ExtAuthz"] - }, { - "name": "envoy.filters.network.http_connection_manager", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager"] - }, { - "name": "envoy.filters.network.local_ratelimit", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.local_ratelimit.v3.LocalRateLimit"] - }, { - "name": "envoy.filters.network.mongo_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.mongo_proxy.v3.MongoProxy"] - }, { - "name": "envoy.filters.network.ratelimit", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.ratelimit.v3.RateLimit"] - }, { - "name": "envoy.filters.network.rbac", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.rbac.v3.RBAC"] - }, { - "name": "envoy.filters.network.redis_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.redis_proxy.v3.RedisProxy"] - }, { - "name": "envoy.filters.network.sni_cluster", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.sni_cluster.v3.SniCluster"] - }, { - "name": "envoy.filters.network.sni_dynamic_forward_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.sni_dynamic_forward_proxy.v3.FilterConfig"] - }, { - "name": "envoy.filters.network.tcp_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy"] - }, { - "name": "envoy.filters.network.thrift_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy"] - }, { - "name": "envoy.filters.network.wasm", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.wasm.v3.Wasm"] - }, { - "name": "envoy.filters.network.zookeeper_proxy", - "category": "envoy.filters.network", - "typeUrls": ["envoy.extensions.filters.network.zookeeper_proxy.v3.ZooKeeperProxy"] - }, { - "name": "envoy.http_connection_manager", - "category": "envoy.filters.network" - }, { - "name": "envoy.mongo_proxy", - "category": "envoy.filters.network" - }, { - "name": "envoy.ratelimit", - "category": "envoy.filters.network" - }, { - "name": "envoy.redis_proxy", - "category": "envoy.filters.network" - }, { - "name": "envoy.tcp_proxy", - "category": "envoy.filters.network" - }, { - "name": "envoy.health_checkers.redis", - "category": "envoy.health_checkers", - "typeUrls": ["envoy.extensions.health_checkers.redis.v3.Redis"] - }, { - "name": "envoy.health_checkers.thrift", - "category": "envoy.health_checkers", - "typeUrls": ["envoy.extensions.health_checkers.thrift.v3.Thrift"] - }] - }, - "staticResources": { - "clusters": [{ - "name": "xds_cluster", - "type": "STRICT_DNS", - "connectTimeout": "1s", - "loadAssignment": { - "clusterName": "xds_cluster", - "endpoints": [{ - "lbEndpoints": [{ - "endpoint": { - "address": { - "socketAddress": { - "address": "envoy-gateway", - "portValue": 18000 + "staticResources": { + "clusters": [{ + "name": "xds_cluster", + "type": "STRICT_DNS", + "connectTimeout": "1s", + "loadAssignment": { + "clusterName": "xds_cluster", + "endpoints": [{ + "lbEndpoints": [{ + "endpoint": { + "address": { + "socketAddress": { + "address": "envoy-gateway", + "portValue": 18000 + } + } } + }] + }] + }, + "typedExtensionProtocolOptions": { + "envoy.extensions.upstreams.http.v3.HttpProtocolOptions": { + "@type": "type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions", + "explicitHttpConfig": { + "http2ProtocolOptions": {} } } - }] - }] - }, - "typedExtensionProtocolOptions": { - "envoy.extensions.upstreams.http.v3.HttpProtocolOptions": { - "@type": "type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions", - "explicitHttpConfig": { - "http2ProtocolOptions": {} - } - } - }, - "transportSocket": { - "name": "envoy.transport_sockets.tls", - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", - "commonTlsContext": { - "tlsParams": { - "tlsMaximumProtocolVersion": "TLSv1_3" - }, - "tlsCertificateSdsSecretConfigs": [{ - "name": "xds_certificate", - "sdsConfig": { - "pathConfigSource": { - "path": "/sds/xds-certificate.json" - }, - "resourceApiVersion": "V3" - } - }], - "validationContextSdsSecretConfig": { - "name": "xds_trusted_ca", - "sdsConfig": { - "pathConfigSource": { - "path": "/sds/xds-trusted-ca.json" + }, + "transportSocket": { + "name": "envoy.transport_sockets.tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + "tlsMaximumProtocolVersion": "TLSv1_3" }, - "resourceApiVersion": "V3" + "tlsCertificateSdsSecretConfigs": [{ + "name": "xds_certificate", + "sdsConfig": { + "pathConfigSource": { + "path": "/sds/xds-certificate.json" + }, + "resourceApiVersion": "V3" + } + }], + "validationContextSdsSecretConfig": { + "name": "xds_trusted_ca", + "sdsConfig": { + "pathConfigSource": { + "path": "/sds/xds-trusted-ca.json" + }, + "resourceApiVersion": "V3" + } + } } } } - } - } - }] - }, - "dynamicResources": { - "ldsConfig": { - "apiConfigSource": { - "apiType": "DELTA_GRPC", - "transportApiVersion": "V3", - "grpcServices": [{ - "envoyGrpc": { - "clusterName": "xds_cluster" - } - }], - "setNodeOnFirstMessageOnly": true - }, - "resourceApiVersion": "V3" - }, - "cdsConfig": { - "apiConfigSource": { - "apiType": "DELTA_GRPC", - "transportApiVersion": "V3", - "grpcServices": [{ - "envoyGrpc": { - "clusterName": "xds_cluster" - } - }], - "setNodeOnFirstMessageOnly": true + }] }, - "resourceApiVersion": "V3" - } - }, - "layeredRuntime": { - "layers": [{ - "name": "runtime-0", - "rtdsLayer": { - "name": "runtime-0", - "rtdsConfig": { + "dynamicResources": { + "ldsConfig": { "apiConfigSource": { "apiType": "DELTA_GRPC", "transportApiVersion": "V3", @@ -1208,28 +1178,62 @@ "envoyGrpc": { "clusterName": "xds_cluster" } - }] + }], + "setNodeOnFirstMessageOnly": true + }, + "resourceApiVersion": "V3" + }, + "cdsConfig": { + "apiConfigSource": { + "apiType": "DELTA_GRPC", + "transportApiVersion": "V3", + "grpcServices": [{ + "envoyGrpc": { + "clusterName": "xds_cluster" + } + }], + "setNodeOnFirstMessageOnly": true }, "resourceApiVersion": "V3" } + }, + "layeredRuntime": { + "layers": [{ + "name": "runtime-0", + "rtdsLayer": { + "name": "runtime-0", + "rtdsConfig": { + "apiConfigSource": { + "apiType": "DELTA_GRPC", + "transportApiVersion": "V3", + "grpcServices": [{ + "envoyGrpc": { + "clusterName": "xds_cluster" + } + }] + }, + "resourceApiVersion": "V3" + } + } + }] + }, + "admin": { + "accessLog": [{ + "name": "envoy.access_loggers.file", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", + "path": "/dev/null" + } + }], + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 19000 + } + } } - }] - }, - "admin": { - "accessLog": [{ - "name": "envoy.access_loggers.file", - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", - "path": "/dev/null" - } - }], - "address": { - "socketAddress": { - "address": "127.0.0.1", - "portValue": 19000 - } - } + }, + "lastUpdated": "2023-02-23T09:05:23.422Z" } - }, - "lastUpdated": "2023-02-23T09:05:23.422Z" -} + } +} \ No newline at end of file diff --git a/internal/cmd/egctl/testdata/config/out/out.bootstrap.yaml b/internal/cmd/egctl/testdata/config/out/out.bootstrap.yaml index 33c129d72b4..ab7d687bf28 100644 --- a/internal/cmd/egctl/testdata/config/out/out.bootstrap.yaml +++ b/internal/cmd/egctl/testdata/config/out/out.bootstrap.yaml @@ -1,1120 +1,1122 @@ -'@type': type.googleapis.com/envoy.admin.v3.BootstrapConfigDump -bootstrap: - admin: - accessLog: - - name: envoy.access_loggers.file - typedConfig: - '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog - path: /dev/null - address: - socketAddress: - address: 127.0.0.1 - portValue: 19000 - dynamicResources: - cdsConfig: - apiConfigSource: - apiType: DELTA_GRPC - grpcServices: - - envoyGrpc: - clusterName: xds_cluster - setNodeOnFirstMessageOnly: true - transportApiVersion: V3 - resourceApiVersion: V3 - ldsConfig: - apiConfigSource: - apiType: DELTA_GRPC - grpcServices: - - envoyGrpc: - clusterName: xds_cluster - setNodeOnFirstMessageOnly: true - transportApiVersion: V3 - resourceApiVersion: V3 - layeredRuntime: - layers: - - name: runtime-0 - rtdsLayer: - name: runtime-0 - rtdsConfig: +default: + eg: + '@type': type.googleapis.com/envoy.admin.v3.BootstrapConfigDump + bootstrap: + admin: + accessLog: + - name: envoy.access_loggers.file + typedConfig: + '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog + path: /dev/null + address: + socketAddress: + address: 127.0.0.1 + portValue: 19000 + dynamicResources: + cdsConfig: + apiConfigSource: + apiType: DELTA_GRPC + grpcServices: + - envoyGrpc: + clusterName: xds_cluster + setNodeOnFirstMessageOnly: true + transportApiVersion: V3 + resourceApiVersion: V3 + ldsConfig: apiConfigSource: apiType: DELTA_GRPC grpcServices: - envoyGrpc: clusterName: xds_cluster + setNodeOnFirstMessageOnly: true transportApiVersion: V3 resourceApiVersion: V3 - node: - extensions: - - category: envoy.upstreams - name: envoy.filters.connection_pools.tcp.generic - typeUrls: - - envoy.extensions.upstreams.tcp.generic.v3.GenericConnectionPoolProto - - category: envoy.rate_limit_descriptors - name: envoy.rate_limit_descriptors.expr - typeUrls: - - envoy.extensions.rate_limit_descriptors.expr.v3.Descriptor - - category: envoy.matching.http.input - name: envoy.matching.inputs.destination_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.destination_port - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.direct_source_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.dns_san - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.request_headers - typeUrls: - - envoy.type.matcher.v3.HttpRequestHeaderMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.request_trailers - typeUrls: - - envoy.type.matcher.v3.HttpRequestTrailerMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.response_headers - typeUrls: - - envoy.type.matcher.v3.HttpResponseHeaderMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.response_trailers - typeUrls: - - envoy.type.matcher.v3.HttpResponseTrailerMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.server_name - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.ServerNameInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.source_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourceIPInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.source_port - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourcePortInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.source_type - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.status_code_class_input - typeUrls: - - envoy.type.matcher.v3.HttpResponseStatusCodeClassMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.status_code_input - typeUrls: - - envoy.type.matcher.v3.HttpResponseStatusCodeMatchInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.subject - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput - - category: envoy.matching.http.input - name: envoy.matching.inputs.uri_san - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput - - category: envoy.matching.http.input - name: query_params - typeUrls: - - envoy.type.matcher.v3.HttpRequestQueryParamMatchInput - - category: envoy.tls.cert_validator - name: envoy.tls.cert_validator.default - - category: envoy.tls.cert_validator - name: envoy.tls.cert_validator.spiffe - - category: envoy.path.match - name: envoy.path.match.uri_template.uri_template_matcher - typeUrls: - - envoy.extensions.path.match.uri_template.v3.UriTemplateMatchConfig - - category: envoy.http.original_ip_detection - name: envoy.http.original_ip_detection.custom_header - typeUrls: - - envoy.extensions.http.original_ip_detection.custom_header.v3.CustomHeaderConfig - - category: envoy.http.original_ip_detection - name: envoy.http.original_ip_detection.xff - typeUrls: - - envoy.extensions.http.original_ip_detection.xff.v3.XffConfig - - category: envoy.filters.http.upstream - name: envoy.buffer - - category: envoy.filters.http.upstream - name: envoy.filters.http.admission_control - typeUrls: - - envoy.extensions.filters.http.admission_control.v3.AdmissionControl - - category: envoy.filters.http.upstream - name: envoy.filters.http.buffer - typeUrls: - - envoy.extensions.filters.http.buffer.v3.Buffer - - envoy.extensions.filters.http.buffer.v3.BufferPerRoute - - category: envoy.filters.http.upstream - name: envoy.filters.http.upstream_codec - typeUrls: - - envoy.extensions.filters.http.upstream_codec.v3.UpstreamCodec - - category: envoy.route.early_data_policy - name: envoy.route.early_data_policy.default - typeUrls: - - envoy.extensions.early_data.v3.DefaultEarlyDataPolicy - - category: envoy.compression.compressor - name: envoy.compression.brotli.compressor - typeUrls: - - envoy.extensions.compression.brotli.compressor.v3.Brotli - - category: envoy.compression.compressor - name: envoy.compression.gzip.compressor - typeUrls: - - envoy.extensions.compression.gzip.compressor.v3.Gzip - - category: envoy.compression.compressor - name: envoy.compression.zstd.compressor - typeUrls: - - envoy.extensions.compression.zstd.compressor.v3.Zstd - - category: envoy.compression.decompressor - name: envoy.compression.brotli.decompressor - typeUrls: - - envoy.extensions.compression.brotli.decompressor.v3.Brotli - - category: envoy.compression.decompressor - name: envoy.compression.gzip.decompressor - typeUrls: - - envoy.extensions.compression.gzip.decompressor.v3.Gzip - - category: envoy.compression.decompressor - name: envoy.compression.zstd.decompressor - typeUrls: - - envoy.extensions.compression.zstd.decompressor.v3.Zstd - - category: envoy.wasm.runtime - name: envoy.wasm.runtime.null - - category: envoy.wasm.runtime - name: envoy.wasm.runtime.v8 - - category: envoy.stats_sinks - name: envoy.dog_statsd - - category: envoy.stats_sinks - name: envoy.graphite_statsd - - category: envoy.stats_sinks - name: envoy.metrics_service - - category: envoy.stats_sinks - name: envoy.stat_sinks.dog_statsd - typeUrls: - - envoy.config.metrics.v3.DogStatsdSink - - category: envoy.stats_sinks - name: envoy.stat_sinks.graphite_statsd - typeUrls: - - envoy.extensions.stat_sinks.graphite_statsd.v3.GraphiteStatsdSink - - category: envoy.stats_sinks - name: envoy.stat_sinks.hystrix - typeUrls: - - envoy.config.metrics.v3.HystrixSink - - category: envoy.stats_sinks - name: envoy.stat_sinks.metrics_service - typeUrls: - - envoy.config.metrics.v3.MetricsServiceConfig - - category: envoy.stats_sinks - name: envoy.stat_sinks.statsd - typeUrls: - - envoy.config.metrics.v3.StatsdSink - - category: envoy.stats_sinks - name: envoy.stat_sinks.wasm - typeUrls: - - envoy.extensions.stat_sinks.wasm.v3.Wasm - - category: envoy.stats_sinks - name: envoy.statsd - - category: envoy.path.rewrite - name: envoy.path.rewrite.uri_template.uri_template_rewriter - typeUrls: - - envoy.extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig - - category: envoy.http.custom_response - name: envoy.extensions.http.custom_response.local_response_policy - typeUrls: - - envoy.extensions.http.custom_response.local_response_policy.v3.LocalResponsePolicy - - category: envoy.http.custom_response - name: envoy.extensions.http.custom_response.redirect_policy - typeUrls: - - envoy.extensions.http.custom_response.redirect_policy.v3.RedirectPolicy - - category: envoy.matching.action - name: envoy.matching.actions.format_string - typeUrls: - - envoy.config.core.v3.SubstitutionFormatString - - category: envoy.matching.action - name: filter-chain-name - typeUrls: - - google.protobuf.StringValue - - category: envoy.quic.connection_id_generator - name: envoy.quic.deterministic_connection_id_generator - typeUrls: - - envoy.extensions.quic.connection_id_generator.v3.DeterministicConnectionIdGeneratorConfig - - category: envoy.network.dns_resolver - name: envoy.network.dns_resolver.cares - typeUrls: - - envoy.extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig - - category: envoy.network.dns_resolver - name: envoy.network.dns_resolver.getaddrinfo - typeUrls: - - envoy.extensions.network.dns_resolver.getaddrinfo.v3.GetAddrInfoDnsResolverConfig - - category: envoy.bootstrap - name: envoy.bootstrap.internal_listener - typeUrls: - - envoy.extensions.bootstrap.internal_listener.v3.InternalListener - - category: envoy.bootstrap - name: envoy.bootstrap.wasm - typeUrls: - - envoy.extensions.wasm.v3.WasmService - - category: envoy.bootstrap - name: envoy.extensions.network.socket_interface.default_socket_interface - typeUrls: - - envoy.extensions.network.socket_interface.v3.DefaultSocketInterface - - category: envoy.filters.listener - name: envoy.filters.listener.http_inspector - typeUrls: - - envoy.extensions.filters.listener.http_inspector.v3.HttpInspector - - category: envoy.filters.listener - name: envoy.filters.listener.original_dst - typeUrls: - - envoy.extensions.filters.listener.original_dst.v3.OriginalDst - - category: envoy.filters.listener - name: envoy.filters.listener.original_src - typeUrls: - - envoy.extensions.filters.listener.original_src.v3.OriginalSrc - - category: envoy.filters.listener - name: envoy.filters.listener.proxy_protocol - typeUrls: - - envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol - - category: envoy.filters.listener - name: envoy.filters.listener.tls_inspector - typeUrls: - - envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector - - category: envoy.filters.listener - name: envoy.listener.http_inspector - - category: envoy.filters.listener - name: envoy.listener.original_dst - - category: envoy.filters.listener - name: envoy.listener.original_src - - category: envoy.filters.listener - name: envoy.listener.proxy_protocol - - category: envoy.filters.listener - name: envoy.listener.tls_inspector - - category: envoy.matching.common_inputs - name: envoy.matching.common_inputs.environment_variable - typeUrls: - - envoy.extensions.matching.common_inputs.environment_variable.v3.Config - - category: envoy.matching.input_matchers - name: envoy.matching.matchers.consistent_hashing - typeUrls: - - envoy.extensions.matching.input_matchers.consistent_hashing.v3.ConsistentHashing - - category: envoy.matching.input_matchers - name: envoy.matching.matchers.ip - typeUrls: - - envoy.extensions.matching.input_matchers.ip.v3.Ip - - category: envoy.grpc_credentials - name: envoy.grpc_credentials.aws_iam - - category: envoy.grpc_credentials - name: envoy.grpc_credentials.default - - category: envoy.grpc_credentials - name: envoy.grpc_credentials.file_based_metadata - - category: envoy.request_id - name: envoy.request_id.uuid - typeUrls: - - envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig - - category: envoy.load_balancing_policies - name: envoy.load_balancing_policies.least_request - typeUrls: - - envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest - - category: envoy.load_balancing_policies - name: envoy.load_balancing_policies.maglev - typeUrls: - - envoy.extensions.load_balancing_policies.maglev.v3.Maglev - - category: envoy.load_balancing_policies - name: envoy.load_balancing_policies.random - typeUrls: - - envoy.extensions.load_balancing_policies.random.v3.Random - - category: envoy.load_balancing_policies - name: envoy.load_balancing_policies.ring_hash - typeUrls: - - envoy.extensions.load_balancing_policies.ring_hash.v3.RingHash - - category: envoy.load_balancing_policies - name: envoy.load_balancing_policies.round_robin - typeUrls: - - envoy.extensions.load_balancing_policies.round_robin.v3.RoundRobin - - category: envoy.resolvers - name: envoy.ip - - category: envoy.filters.http - name: envoy.bandwidth_limit - - category: envoy.filters.http - name: envoy.buffer - - category: envoy.filters.http - name: envoy.cors - - category: envoy.filters.http - name: envoy.csrf - - category: envoy.filters.http - name: envoy.ext_authz - - category: envoy.filters.http - name: envoy.ext_proc - - category: envoy.filters.http - name: envoy.fault - - category: envoy.filters.http - name: envoy.filters.http.adaptive_concurrency - typeUrls: - - envoy.extensions.filters.http.adaptive_concurrency.v3.AdaptiveConcurrency - - category: envoy.filters.http - name: envoy.filters.http.admission_control - typeUrls: - - envoy.extensions.filters.http.admission_control.v3.AdmissionControl - - category: envoy.filters.http - name: envoy.filters.http.alternate_protocols_cache - typeUrls: - - envoy.extensions.filters.http.alternate_protocols_cache.v3.FilterConfig - - category: envoy.filters.http - name: envoy.filters.http.aws_lambda - typeUrls: - - envoy.extensions.filters.http.aws_lambda.v3.Config - - envoy.extensions.filters.http.aws_lambda.v3.PerRouteConfig - - category: envoy.filters.http - name: envoy.filters.http.aws_request_signing - typeUrls: - - envoy.extensions.filters.http.aws_request_signing.v3.AwsRequestSigning - - category: envoy.filters.http - name: envoy.filters.http.bandwidth_limit - typeUrls: - - envoy.extensions.filters.http.bandwidth_limit.v3.BandwidthLimit - - category: envoy.filters.http - name: envoy.filters.http.buffer - typeUrls: - - envoy.extensions.filters.http.buffer.v3.Buffer - - envoy.extensions.filters.http.buffer.v3.BufferPerRoute - - category: envoy.filters.http - name: envoy.filters.http.cache - typeUrls: - - envoy.extensions.filters.http.cache.v3.CacheConfig - - category: envoy.filters.http - name: envoy.filters.http.cdn_loop - typeUrls: - - envoy.extensions.filters.http.cdn_loop.v3.CdnLoopConfig - - category: envoy.filters.http - name: envoy.filters.http.composite - typeUrls: - - envoy.extensions.filters.http.composite.v3.Composite - - category: envoy.filters.http - name: envoy.filters.http.compressor - typeUrls: - - envoy.extensions.filters.http.compressor.v3.Compressor - - envoy.extensions.filters.http.compressor.v3.CompressorPerRoute - - category: envoy.filters.http - name: envoy.filters.http.connect_grpc_bridge - typeUrls: - - envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig - - category: envoy.filters.http - name: envoy.filters.http.cors - typeUrls: - - envoy.extensions.filters.http.cors.v3.Cors - - envoy.extensions.filters.http.cors.v3.CorsPolicy - - category: envoy.filters.http - name: envoy.filters.http.csrf - typeUrls: - - envoy.extensions.filters.http.csrf.v3.CsrfPolicy - - category: envoy.filters.http - name: envoy.filters.http.custom_response - typeUrls: - - envoy.extensions.filters.http.custom_response.v3.CustomResponse - - category: envoy.filters.http - name: envoy.filters.http.decompressor - typeUrls: - - envoy.extensions.filters.http.decompressor.v3.Decompressor - - category: envoy.filters.http - name: envoy.filters.http.dynamic_forward_proxy - typeUrls: - - envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig - - envoy.extensions.filters.http.dynamic_forward_proxy.v3.PerRouteConfig - - category: envoy.filters.http - name: envoy.filters.http.ext_authz - typeUrls: - - envoy.extensions.filters.http.ext_authz.v3.ExtAuthz - - envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute - - category: envoy.filters.http - name: envoy.filters.http.ext_proc - typeUrls: - - envoy.extensions.filters.http.ext_proc.v3.ExtProcPerRoute - - envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor - - category: envoy.filters.http - name: envoy.filters.http.fault - typeUrls: - - envoy.extensions.filters.http.fault.v3.HTTPFault - - category: envoy.filters.http - name: envoy.filters.http.file_system_buffer - typeUrls: - - envoy.extensions.filters.http.file_system_buffer.v3.FileSystemBufferFilterConfig - - category: envoy.filters.http - name: envoy.filters.http.gcp_authn - typeUrls: - - envoy.extensions.filters.http.gcp_authn.v3.GcpAuthnFilterConfig - - category: envoy.filters.http - name: envoy.filters.http.grpc_http1_bridge - typeUrls: - - envoy.extensions.filters.http.grpc_http1_bridge.v3.Config - - category: envoy.filters.http - name: envoy.filters.http.grpc_http1_reverse_bridge - typeUrls: - - envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfig - - envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfigPerRoute - - category: envoy.filters.http - name: envoy.filters.http.grpc_json_transcoder - typeUrls: - - envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder - - category: envoy.filters.http - name: envoy.filters.http.grpc_stats - typeUrls: - - envoy.extensions.filters.http.grpc_stats.v3.FilterConfig - - category: envoy.filters.http - name: envoy.filters.http.grpc_web - typeUrls: - - envoy.extensions.filters.http.grpc_web.v3.GrpcWeb - - category: envoy.filters.http - name: envoy.filters.http.header_to_metadata - typeUrls: - - envoy.extensions.filters.http.header_to_metadata.v3.Config - - category: envoy.filters.http - name: envoy.filters.http.health_check - typeUrls: - - envoy.extensions.filters.http.health_check.v3.HealthCheck - - category: envoy.filters.http - name: envoy.filters.http.ip_tagging - typeUrls: - - envoy.extensions.filters.http.ip_tagging.v3.IPTagging - - category: envoy.filters.http - name: envoy.filters.http.jwt_authn - typeUrls: - - envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication - - envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig - - category: envoy.filters.http - name: envoy.filters.http.local_ratelimit - typeUrls: - - envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit - - category: envoy.filters.http - name: envoy.filters.http.lua - typeUrls: - - envoy.extensions.filters.http.lua.v3.Lua - - envoy.extensions.filters.http.lua.v3.LuaPerRoute - - category: envoy.filters.http - name: envoy.filters.http.match_delegate - typeUrls: - - envoy.extensions.common.matching.v3.ExtensionWithMatcher - - category: envoy.filters.http - name: envoy.filters.http.oauth2 - typeUrls: - - envoy.extensions.filters.http.oauth2.v3.OAuth2 - - category: envoy.filters.http - name: envoy.filters.http.on_demand - typeUrls: - - envoy.extensions.filters.http.on_demand.v3.OnDemand - - envoy.extensions.filters.http.on_demand.v3.PerRouteConfig - - category: envoy.filters.http - name: envoy.filters.http.original_src - typeUrls: - - envoy.extensions.filters.http.original_src.v3.OriginalSrc - - category: envoy.filters.http - name: envoy.filters.http.rate_limit_quota - typeUrls: - - envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig - - envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaOverride - - category: envoy.filters.http - name: envoy.filters.http.ratelimit - typeUrls: - - envoy.extensions.filters.http.ratelimit.v3.RateLimit - - envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute - - category: envoy.filters.http - name: envoy.filters.http.rbac - typeUrls: - - envoy.extensions.filters.http.rbac.v3.RBAC - - envoy.extensions.filters.http.rbac.v3.RBACPerRoute - - category: envoy.filters.http - name: envoy.filters.http.router - typeUrls: - - envoy.extensions.filters.http.router.v3.Router - - category: envoy.filters.http - name: envoy.filters.http.set_metadata - typeUrls: - - envoy.extensions.filters.http.set_metadata.v3.Config - - category: envoy.filters.http - name: envoy.filters.http.stateful_session - typeUrls: - - envoy.extensions.filters.http.stateful_session.v3.StatefulSession - - envoy.extensions.filters.http.stateful_session.v3.StatefulSessionPerRoute - - category: envoy.filters.http - name: envoy.filters.http.tap - typeUrls: - - envoy.extensions.filters.http.tap.v3.Tap - - category: envoy.filters.http - name: envoy.filters.http.wasm - typeUrls: - - envoy.extensions.filters.http.wasm.v3.Wasm - - category: envoy.filters.http - name: envoy.grpc_http1_bridge - - category: envoy.filters.http - name: envoy.grpc_json_transcoder - - category: envoy.filters.http - name: envoy.grpc_web - - category: envoy.filters.http - name: envoy.health_check - - category: envoy.filters.http - name: envoy.ip_tagging - - category: envoy.filters.http - name: envoy.local_rate_limit - - category: envoy.filters.http - name: envoy.lua - - category: envoy.filters.http - name: envoy.rate_limit - - category: envoy.filters.http - name: envoy.router - - category: envoy.access_loggers - name: envoy.access_loggers.file - typeUrls: - - envoy.extensions.access_loggers.file.v3.FileAccessLog - - category: envoy.access_loggers - name: envoy.access_loggers.http_grpc - typeUrls: - - envoy.extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig - - category: envoy.access_loggers - name: envoy.access_loggers.open_telemetry - typeUrls: - - envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig - - category: envoy.access_loggers - name: envoy.access_loggers.stderr - typeUrls: - - envoy.extensions.access_loggers.stream.v3.StderrAccessLog - - category: envoy.access_loggers - name: envoy.access_loggers.stdout - typeUrls: - - envoy.extensions.access_loggers.stream.v3.StdoutAccessLog - - category: envoy.access_loggers - name: envoy.access_loggers.tcp_grpc - typeUrls: - - envoy.extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig - - category: envoy.access_loggers - name: envoy.access_loggers.wasm - typeUrls: - - envoy.extensions.access_loggers.wasm.v3.WasmAccessLog - - category: envoy.access_loggers - name: envoy.file_access_log - - category: envoy.access_loggers - name: envoy.http_grpc_access_log - - category: envoy.access_loggers - name: envoy.open_telemetry_access_log - - category: envoy.access_loggers - name: envoy.stderr_access_log - - category: envoy.access_loggers - name: envoy.stdout_access_log - - category: envoy.access_loggers - name: envoy.tcp_grpc_access_log - - category: envoy.access_loggers - name: envoy.wasm_access_log - - category: envoy.config.validators - name: envoy.config.validators.minimum_clusters - - category: envoy.config.validators - name: envoy.config.validators.minimum_clusters_validator - typeUrls: - - envoy.extensions.config.validators.minimum_clusters.v3.MinimumClustersValidator - - category: envoy.http.header_validators - name: envoy.http.header_validators.envoy_default - typeUrls: - - envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig - - category: envoy.dubbo_proxy.serializers - name: dubbo.hessian2 - - category: quic.http_server_connection - name: quic.http_server_connection.default - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.alts - typeUrls: - - envoy.extensions.transport_sockets.alts.v3.Alts - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.quic - typeUrls: - - envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.raw_buffer - typeUrls: - - envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.starttls - typeUrls: - - envoy.extensions.transport_sockets.starttls.v3.StartTlsConfig - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.tap - typeUrls: - - envoy.extensions.transport_sockets.tap.v3.Tap - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.tcp_stats - typeUrls: - - envoy.extensions.transport_sockets.tcp_stats.v3.Config - - category: envoy.transport_sockets.downstream - name: envoy.transport_sockets.tls - typeUrls: - - envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext - - category: envoy.transport_sockets.downstream - name: raw_buffer - - category: envoy.transport_sockets.downstream - name: starttls - - category: envoy.transport_sockets.downstream - name: tls - - category: envoy.rbac.matchers - name: envoy.rbac.matchers.upstream_ip_port - typeUrls: - - envoy.extensions.rbac.matchers.upstream_ip_port.v3.UpstreamIpPortMatcher - - category: envoy.common.key_value - name: envoy.key_value.file_based - typeUrls: - - envoy.extensions.key_value.file_based.v3.FileBasedKeyValueStoreConfig - - category: envoy.matching.network.input - name: envoy.matching.inputs.application_protocol - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.ApplicationProtocolInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.destination_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.destination_port - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.direct_source_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.dns_san - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.server_name - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.ServerNameInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.source_ip - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourceIPInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.source_port - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourcePortInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.source_type - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.subject - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.transport_protocol - typeUrls: - - envoy.extensions.matching.common_inputs.network.v3.TransportProtocolInput - - category: envoy.matching.network.input - name: envoy.matching.inputs.uri_san - typeUrls: - - envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput - - category: envoy.dubbo_proxy.protocols - name: dubbo - - category: envoy.guarddog_actions - name: envoy.watchdog.abort_action - typeUrls: - - envoy.watchdog.v3.AbortActionConfig - - category: envoy.guarddog_actions - name: envoy.watchdog.profile_action - typeUrls: - - envoy.extensions.watchdog.profile_action.v3.ProfileActionConfig - - category: envoy.quic.server.crypto_stream - name: envoy.quic.crypto_stream.server.quiche - typeUrls: - - envoy.extensions.quic.crypto_stream.v3.CryptoServerStreamConfig - - category: envoy.regex_engines - name: envoy.regex_engines.google_re2 - typeUrls: - - envoy.extensions.regex_engines.v3.GoogleRE2 - - category: envoy.http.stateful_session - name: envoy.http.stateful_session.cookie - typeUrls: - - envoy.extensions.http.stateful_session.cookie.v3.CookieBasedSessionState - - category: envoy.http.stateful_session - name: envoy.http.stateful_session.header - typeUrls: - - envoy.extensions.http.stateful_session.header.v3.HeaderBasedSessionState - - category: envoy.matching.network.custom_matchers - name: envoy.matching.custom_matchers.trie_matcher - typeUrls: - - xds.type.matcher.v3.IPMatcher - - category: envoy.udp_packet_writer - name: envoy.udp_packet_writer.default - typeUrls: - - envoy.extensions.udp_packet_writer.v3.UdpDefaultWriterFactory - - category: envoy.udp_packet_writer - name: envoy.udp_packet_writer.gso - typeUrls: - - envoy.extensions.udp_packet_writer.v3.UdpGsoBatchWriterFactory - - category: envoy.quic.proof_source - name: envoy.quic.proof_source.filter_chain - typeUrls: - - envoy.extensions.quic.proof_source.v3.ProofSourceConfig - - category: envoy.resource_monitors - name: envoy.resource_monitors.fixed_heap - typeUrls: - - envoy.extensions.resource_monitors.fixed_heap.v3.FixedHeapConfig - - category: envoy.resource_monitors - name: envoy.resource_monitors.injected_resource - typeUrls: - - envoy.extensions.resource_monitors.injected_resource.v3.InjectedResourceConfig - - category: envoy.http.stateful_header_formatters - name: envoy.http.stateful_header_formatters.preserve_case - typeUrls: - - envoy.extensions.http.header_formatters.preserve_case.v3.PreserveCaseFormatterConfig - - category: envoy.http.stateful_header_formatters - name: preserve_case - - category: envoy.thrift_proxy.filters - name: envoy.filters.thrift.header_to_metadata - typeUrls: - - envoy.extensions.filters.network.thrift_proxy.filters.header_to_metadata.v3.HeaderToMetadata - - category: envoy.thrift_proxy.filters - name: envoy.filters.thrift.payload_to_metadata - typeUrls: - - envoy.extensions.filters.network.thrift_proxy.filters.payload_to_metadata.v3.PayloadToMetadata - - category: envoy.thrift_proxy.filters - name: envoy.filters.thrift.rate_limit - typeUrls: - - envoy.extensions.filters.network.thrift_proxy.filters.ratelimit.v3.RateLimit - - category: envoy.thrift_proxy.filters - name: envoy.filters.thrift.router - typeUrls: - - envoy.extensions.filters.network.thrift_proxy.router.v3.Router - - category: envoy.tracers - name: envoy.tracers.datadog - typeUrls: - - envoy.config.trace.v3.DatadogConfig - - category: envoy.tracers - name: envoy.tracers.dynamic_ot - typeUrls: - - envoy.config.trace.v3.DynamicOtConfig - - category: envoy.tracers - name: envoy.tracers.opencensus - typeUrls: - - envoy.config.trace.v3.OpenCensusConfig - - category: envoy.tracers - name: envoy.tracers.opentelemetry - typeUrls: - - envoy.config.trace.v3.OpenTelemetryConfig - - category: envoy.tracers - name: envoy.tracers.skywalking - typeUrls: - - envoy.config.trace.v3.SkyWalkingConfig - - category: envoy.tracers - name: envoy.tracers.xray - typeUrls: - - envoy.config.trace.v3.XRayConfig - - category: envoy.tracers - name: envoy.tracers.zipkin - typeUrls: - - envoy.config.trace.v3.ZipkinConfig - - category: envoy.tracers - name: envoy.zipkin - - category: envoy.retry_priorities - name: envoy.retry_priorities.previous_priorities - typeUrls: - - envoy.extensions.retry.priority.previous_priorities.v3.PreviousPrioritiesConfig - - category: envoy.http.early_header_mutation - name: envoy.http.early_header_mutation.header_mutation - typeUrls: - - envoy.extensions.http.early_header_mutation.header_mutation.v3.HeaderMutation - - category: envoy.connection_handler - name: envoy.connection_handler.default - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.alts - typeUrls: - - envoy.extensions.transport_sockets.alts.v3.Alts - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.http_11_proxy - typeUrls: - - envoy.extensions.transport_sockets.http_11_proxy.v3.Http11ProxyUpstreamTransport - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.internal_upstream - typeUrls: - - envoy.extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.quic - typeUrls: - - envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.raw_buffer - typeUrls: - - envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.starttls - typeUrls: - - envoy.extensions.transport_sockets.starttls.v3.UpstreamStartTlsConfig - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.tap - typeUrls: - - envoy.extensions.transport_sockets.tap.v3.Tap - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.tcp_stats - typeUrls: - - envoy.extensions.transport_sockets.tcp_stats.v3.Config - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.tls - typeUrls: - - envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext - - category: envoy.transport_sockets.upstream - name: envoy.transport_sockets.upstream_proxy_protocol - typeUrls: - - envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport - - category: envoy.transport_sockets.upstream - name: raw_buffer - - category: envoy.transport_sockets.upstream - name: starttls - - category: envoy.transport_sockets.upstream - name: tls - - category: envoy.thrift_proxy.transports - name: auto - - category: envoy.thrift_proxy.transports - name: framed - - category: envoy.thrift_proxy.transports - name: header - - category: envoy.thrift_proxy.transports - name: unframed - - category: envoy.clusters - name: envoy.cluster.eds - - category: envoy.clusters - name: envoy.cluster.logical_dns - - category: envoy.clusters - name: envoy.cluster.original_dst - - category: envoy.clusters - name: envoy.cluster.static - - category: envoy.clusters - name: envoy.cluster.strict_dns - - category: envoy.clusters - name: envoy.clusters.aggregate - - category: envoy.clusters - name: envoy.clusters.dynamic_forward_proxy - - category: envoy.clusters - name: envoy.clusters.redis - - category: envoy.access_loggers.extension_filters - name: envoy.access_loggers.extension_filters.cel - typeUrls: - - envoy.extensions.access_loggers.filters.cel.v3.ExpressionFilter - - category: envoy.thrift_proxy.protocols - name: auto - - category: envoy.thrift_proxy.protocols - name: binary - - category: envoy.thrift_proxy.protocols - name: binary/non-strict - - category: envoy.thrift_proxy.protocols - name: compact - - category: envoy.thrift_proxy.protocols - name: twitter - - category: envoy.upstream_options - name: envoy.extensions.upstreams.http.v3.HttpProtocolOptions - typeUrls: - - envoy.extensions.upstreams.http.v3.HttpProtocolOptions - - category: envoy.upstream_options - name: envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions - typeUrls: - - envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions - - category: envoy.upstream_options - name: envoy.upstreams.http.http_protocol_options - - category: envoy.upstream_options - name: envoy.upstreams.tcp.tcp_protocol_options - - category: envoy.listener_manager_impl - name: envoy.listener_manager_impl.default - typeUrls: - - envoy.config.listener.v3.ListenerManager - - category: network.connection.client - name: default - - category: network.connection.client - name: envoy_internal - - category: envoy.filters.udp_listener - name: envoy.filters.udp.dns_filter - typeUrls: - - envoy.extensions.filters.udp.dns_filter.v3.DnsFilterConfig - - category: envoy.filters.udp_listener - name: envoy.filters.udp_listener.udp_proxy - typeUrls: - - envoy.extensions.filters.udp.udp_proxy.v3.UdpProxyConfig - - category: envoy.http.cache - name: envoy.extensions.http.cache.file_system_http_cache - typeUrls: - - envoy.extensions.http.cache.file_system_http_cache.v3.FileSystemHttpCacheConfig - - category: envoy.http.cache - name: envoy.extensions.http.cache.simple - typeUrls: - - envoy.extensions.http.cache.simple_http_cache.v3.SimpleHttpCacheConfig - - category: envoy.retry_host_predicates - name: envoy.retry_host_predicates.omit_canary_hosts - typeUrls: - - envoy.extensions.retry.host.omit_canary_hosts.v3.OmitCanaryHostsPredicate - - category: envoy.retry_host_predicates - name: envoy.retry_host_predicates.omit_host_metadata - typeUrls: - - envoy.extensions.retry.host.omit_host_metadata.v3.OmitHostMetadataConfig - - category: envoy.retry_host_predicates - name: envoy.retry_host_predicates.previous_hosts - typeUrls: - - envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate - - category: envoy.formatter - name: envoy.formatter.metadata - typeUrls: - - envoy.extensions.formatter.metadata.v3.Metadata - - category: envoy.formatter - name: envoy.formatter.req_without_query - typeUrls: - - envoy.extensions.formatter.req_without_query.v3.ReqWithoutQuery - - category: envoy.internal_redirect_predicates - name: envoy.internal_redirect_predicates.allow_listed_routes - typeUrls: - - envoy.extensions.internal_redirect.allow_listed_routes.v3.AllowListedRoutesConfig - - category: envoy.internal_redirect_predicates - name: envoy.internal_redirect_predicates.previous_routes - typeUrls: - - envoy.extensions.internal_redirect.previous_routes.v3.PreviousRoutesConfig - - category: envoy.internal_redirect_predicates - name: envoy.internal_redirect_predicates.safe_cross_scheme - typeUrls: - - envoy.extensions.internal_redirect.safe_cross_scheme.v3.SafeCrossSchemeConfig - - category: envoy.matching.http.custom_matchers - name: envoy.matching.custom_matchers.trie_matcher - typeUrls: - - xds.type.matcher.v3.IPMatcher - - category: envoy.dubbo_proxy.filters - name: envoy.filters.dubbo.router - typeUrls: - - envoy.extensions.filters.network.dubbo_proxy.router.v3.Router - - category: envoy.filters.network - name: envoy.echo - - category: envoy.filters.network - name: envoy.ext_authz - - category: envoy.filters.network - name: envoy.filters.network.connection_limit - typeUrls: - - envoy.extensions.filters.network.connection_limit.v3.ConnectionLimit - - category: envoy.filters.network - name: envoy.filters.network.direct_response - typeUrls: - - envoy.extensions.filters.network.direct_response.v3.Config - - category: envoy.filters.network - name: envoy.filters.network.dubbo_proxy - typeUrls: - - envoy.extensions.filters.network.dubbo_proxy.v3.DubboProxy - - category: envoy.filters.network - name: envoy.filters.network.echo - typeUrls: - - envoy.extensions.filters.network.echo.v3.Echo - - category: envoy.filters.network - name: envoy.filters.network.ext_authz - typeUrls: - - envoy.extensions.filters.network.ext_authz.v3.ExtAuthz - - category: envoy.filters.network - name: envoy.filters.network.http_connection_manager - typeUrls: - - envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager - - category: envoy.filters.network - name: envoy.filters.network.local_ratelimit - typeUrls: - - envoy.extensions.filters.network.local_ratelimit.v3.LocalRateLimit - - category: envoy.filters.network - name: envoy.filters.network.mongo_proxy - typeUrls: - - envoy.extensions.filters.network.mongo_proxy.v3.MongoProxy - - category: envoy.filters.network - name: envoy.filters.network.ratelimit - typeUrls: - - envoy.extensions.filters.network.ratelimit.v3.RateLimit - - category: envoy.filters.network - name: envoy.filters.network.rbac - typeUrls: - - envoy.extensions.filters.network.rbac.v3.RBAC - - category: envoy.filters.network - name: envoy.filters.network.redis_proxy - typeUrls: - - envoy.extensions.filters.network.redis_proxy.v3.RedisProxy - - category: envoy.filters.network - name: envoy.filters.network.sni_cluster - typeUrls: - - envoy.extensions.filters.network.sni_cluster.v3.SniCluster - - category: envoy.filters.network - name: envoy.filters.network.sni_dynamic_forward_proxy - typeUrls: - - envoy.extensions.filters.network.sni_dynamic_forward_proxy.v3.FilterConfig - - category: envoy.filters.network - name: envoy.filters.network.tcp_proxy - typeUrls: - - envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy - - category: envoy.filters.network - name: envoy.filters.network.thrift_proxy - typeUrls: - - envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy - - category: envoy.filters.network - name: envoy.filters.network.wasm - typeUrls: - - envoy.extensions.filters.network.wasm.v3.Wasm - - category: envoy.filters.network - name: envoy.filters.network.zookeeper_proxy - typeUrls: - - envoy.extensions.filters.network.zookeeper_proxy.v3.ZooKeeperProxy - - category: envoy.filters.network - name: envoy.http_connection_manager - - category: envoy.filters.network - name: envoy.mongo_proxy - - category: envoy.filters.network - name: envoy.ratelimit - - category: envoy.filters.network - name: envoy.redis_proxy - - category: envoy.filters.network - name: envoy.tcp_proxy - - category: envoy.health_checkers - name: envoy.health_checkers.redis - typeUrls: - - envoy.extensions.health_checkers.redis.v3.Redis - - category: envoy.health_checkers - name: envoy.health_checkers.thrift - typeUrls: - - envoy.extensions.health_checkers.thrift.v3.Thrift - userAgentBuildVersion: - metadata: - build.label: dev - build.type: RELEASE - revision.sha: 14111e3c62d3d38b0c921cb7011fd0a94e880aed - revision.status: Clean - ssl.version: BoringSSL - version: - majorNumber: 1 - minorNumber: 26 - userAgentName: envoy - staticResources: - clusters: - - connectTimeout: 1s - loadAssignment: - clusterName: xds_cluster - endpoints: - - lbEndpoints: - - endpoint: - address: - socketAddress: - address: envoy-gateway - portValue: 18000 - name: xds_cluster - transportSocket: - name: envoy.transport_sockets.tls - typedConfig: - '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext - commonTlsContext: - tlsCertificateSdsSecretConfigs: - - name: xds_certificate - sdsConfig: - pathConfigSource: - path: /sds/xds-certificate.json - resourceApiVersion: V3 - tlsParams: - tlsMaximumProtocolVersion: TLSv1_3 - validationContextSdsSecretConfig: - name: xds_trusted_ca - sdsConfig: - pathConfigSource: - path: /sds/xds-trusted-ca.json - resourceApiVersion: V3 - type: STRICT_DNS - typedExtensionProtocolOptions: - envoy.extensions.upstreams.http.v3.HttpProtocolOptions: - '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions - explicitHttpConfig: - http2ProtocolOptions: {} -lastUpdated: "2023-02-23T09:05:23.422Z" + layeredRuntime: + layers: + - name: runtime-0 + rtdsLayer: + name: runtime-0 + rtdsConfig: + apiConfigSource: + apiType: DELTA_GRPC + grpcServices: + - envoyGrpc: + clusterName: xds_cluster + transportApiVersion: V3 + resourceApiVersion: V3 + node: + extensions: + - category: envoy.upstreams + name: envoy.filters.connection_pools.tcp.generic + typeUrls: + - envoy.extensions.upstreams.tcp.generic.v3.GenericConnectionPoolProto + - category: envoy.rate_limit_descriptors + name: envoy.rate_limit_descriptors.expr + typeUrls: + - envoy.extensions.rate_limit_descriptors.expr.v3.Descriptor + - category: envoy.matching.http.input + name: envoy.matching.inputs.destination_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.destination_port + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.direct_source_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.dns_san + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.request_headers + typeUrls: + - envoy.type.matcher.v3.HttpRequestHeaderMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.request_trailers + typeUrls: + - envoy.type.matcher.v3.HttpRequestTrailerMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.response_headers + typeUrls: + - envoy.type.matcher.v3.HttpResponseHeaderMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.response_trailers + typeUrls: + - envoy.type.matcher.v3.HttpResponseTrailerMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.server_name + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.ServerNameInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.source_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourceIPInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.source_port + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourcePortInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.source_type + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.status_code_class_input + typeUrls: + - envoy.type.matcher.v3.HttpResponseStatusCodeClassMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.status_code_input + typeUrls: + - envoy.type.matcher.v3.HttpResponseStatusCodeMatchInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.subject + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput + - category: envoy.matching.http.input + name: envoy.matching.inputs.uri_san + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput + - category: envoy.matching.http.input + name: query_params + typeUrls: + - envoy.type.matcher.v3.HttpRequestQueryParamMatchInput + - category: envoy.tls.cert_validator + name: envoy.tls.cert_validator.default + - category: envoy.tls.cert_validator + name: envoy.tls.cert_validator.spiffe + - category: envoy.path.match + name: envoy.path.match.uri_template.uri_template_matcher + typeUrls: + - envoy.extensions.path.match.uri_template.v3.UriTemplateMatchConfig + - category: envoy.http.original_ip_detection + name: envoy.http.original_ip_detection.custom_header + typeUrls: + - envoy.extensions.http.original_ip_detection.custom_header.v3.CustomHeaderConfig + - category: envoy.http.original_ip_detection + name: envoy.http.original_ip_detection.xff + typeUrls: + - envoy.extensions.http.original_ip_detection.xff.v3.XffConfig + - category: envoy.filters.http.upstream + name: envoy.buffer + - category: envoy.filters.http.upstream + name: envoy.filters.http.admission_control + typeUrls: + - envoy.extensions.filters.http.admission_control.v3.AdmissionControl + - category: envoy.filters.http.upstream + name: envoy.filters.http.buffer + typeUrls: + - envoy.extensions.filters.http.buffer.v3.Buffer + - envoy.extensions.filters.http.buffer.v3.BufferPerRoute + - category: envoy.filters.http.upstream + name: envoy.filters.http.upstream_codec + typeUrls: + - envoy.extensions.filters.http.upstream_codec.v3.UpstreamCodec + - category: envoy.route.early_data_policy + name: envoy.route.early_data_policy.default + typeUrls: + - envoy.extensions.early_data.v3.DefaultEarlyDataPolicy + - category: envoy.compression.compressor + name: envoy.compression.brotli.compressor + typeUrls: + - envoy.extensions.compression.brotli.compressor.v3.Brotli + - category: envoy.compression.compressor + name: envoy.compression.gzip.compressor + typeUrls: + - envoy.extensions.compression.gzip.compressor.v3.Gzip + - category: envoy.compression.compressor + name: envoy.compression.zstd.compressor + typeUrls: + - envoy.extensions.compression.zstd.compressor.v3.Zstd + - category: envoy.compression.decompressor + name: envoy.compression.brotli.decompressor + typeUrls: + - envoy.extensions.compression.brotli.decompressor.v3.Brotli + - category: envoy.compression.decompressor + name: envoy.compression.gzip.decompressor + typeUrls: + - envoy.extensions.compression.gzip.decompressor.v3.Gzip + - category: envoy.compression.decompressor + name: envoy.compression.zstd.decompressor + typeUrls: + - envoy.extensions.compression.zstd.decompressor.v3.Zstd + - category: envoy.wasm.runtime + name: envoy.wasm.runtime.null + - category: envoy.wasm.runtime + name: envoy.wasm.runtime.v8 + - category: envoy.stats_sinks + name: envoy.dog_statsd + - category: envoy.stats_sinks + name: envoy.graphite_statsd + - category: envoy.stats_sinks + name: envoy.metrics_service + - category: envoy.stats_sinks + name: envoy.stat_sinks.dog_statsd + typeUrls: + - envoy.config.metrics.v3.DogStatsdSink + - category: envoy.stats_sinks + name: envoy.stat_sinks.graphite_statsd + typeUrls: + - envoy.extensions.stat_sinks.graphite_statsd.v3.GraphiteStatsdSink + - category: envoy.stats_sinks + name: envoy.stat_sinks.hystrix + typeUrls: + - envoy.config.metrics.v3.HystrixSink + - category: envoy.stats_sinks + name: envoy.stat_sinks.metrics_service + typeUrls: + - envoy.config.metrics.v3.MetricsServiceConfig + - category: envoy.stats_sinks + name: envoy.stat_sinks.statsd + typeUrls: + - envoy.config.metrics.v3.StatsdSink + - category: envoy.stats_sinks + name: envoy.stat_sinks.wasm + typeUrls: + - envoy.extensions.stat_sinks.wasm.v3.Wasm + - category: envoy.stats_sinks + name: envoy.statsd + - category: envoy.path.rewrite + name: envoy.path.rewrite.uri_template.uri_template_rewriter + typeUrls: + - envoy.extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig + - category: envoy.http.custom_response + name: envoy.extensions.http.custom_response.local_response_policy + typeUrls: + - envoy.extensions.http.custom_response.local_response_policy.v3.LocalResponsePolicy + - category: envoy.http.custom_response + name: envoy.extensions.http.custom_response.redirect_policy + typeUrls: + - envoy.extensions.http.custom_response.redirect_policy.v3.RedirectPolicy + - category: envoy.matching.action + name: envoy.matching.actions.format_string + typeUrls: + - envoy.config.core.v3.SubstitutionFormatString + - category: envoy.matching.action + name: filter-chain-name + typeUrls: + - google.protobuf.StringValue + - category: envoy.quic.connection_id_generator + name: envoy.quic.deterministic_connection_id_generator + typeUrls: + - envoy.extensions.quic.connection_id_generator.v3.DeterministicConnectionIdGeneratorConfig + - category: envoy.network.dns_resolver + name: envoy.network.dns_resolver.cares + typeUrls: + - envoy.extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig + - category: envoy.network.dns_resolver + name: envoy.network.dns_resolver.getaddrinfo + typeUrls: + - envoy.extensions.network.dns_resolver.getaddrinfo.v3.GetAddrInfoDnsResolverConfig + - category: envoy.bootstrap + name: envoy.bootstrap.internal_listener + typeUrls: + - envoy.extensions.bootstrap.internal_listener.v3.InternalListener + - category: envoy.bootstrap + name: envoy.bootstrap.wasm + typeUrls: + - envoy.extensions.wasm.v3.WasmService + - category: envoy.bootstrap + name: envoy.extensions.network.socket_interface.default_socket_interface + typeUrls: + - envoy.extensions.network.socket_interface.v3.DefaultSocketInterface + - category: envoy.filters.listener + name: envoy.filters.listener.http_inspector + typeUrls: + - envoy.extensions.filters.listener.http_inspector.v3.HttpInspector + - category: envoy.filters.listener + name: envoy.filters.listener.original_dst + typeUrls: + - envoy.extensions.filters.listener.original_dst.v3.OriginalDst + - category: envoy.filters.listener + name: envoy.filters.listener.original_src + typeUrls: + - envoy.extensions.filters.listener.original_src.v3.OriginalSrc + - category: envoy.filters.listener + name: envoy.filters.listener.proxy_protocol + typeUrls: + - envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol + - category: envoy.filters.listener + name: envoy.filters.listener.tls_inspector + typeUrls: + - envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector + - category: envoy.filters.listener + name: envoy.listener.http_inspector + - category: envoy.filters.listener + name: envoy.listener.original_dst + - category: envoy.filters.listener + name: envoy.listener.original_src + - category: envoy.filters.listener + name: envoy.listener.proxy_protocol + - category: envoy.filters.listener + name: envoy.listener.tls_inspector + - category: envoy.matching.common_inputs + name: envoy.matching.common_inputs.environment_variable + typeUrls: + - envoy.extensions.matching.common_inputs.environment_variable.v3.Config + - category: envoy.matching.input_matchers + name: envoy.matching.matchers.consistent_hashing + typeUrls: + - envoy.extensions.matching.input_matchers.consistent_hashing.v3.ConsistentHashing + - category: envoy.matching.input_matchers + name: envoy.matching.matchers.ip + typeUrls: + - envoy.extensions.matching.input_matchers.ip.v3.Ip + - category: envoy.grpc_credentials + name: envoy.grpc_credentials.aws_iam + - category: envoy.grpc_credentials + name: envoy.grpc_credentials.default + - category: envoy.grpc_credentials + name: envoy.grpc_credentials.file_based_metadata + - category: envoy.request_id + name: envoy.request_id.uuid + typeUrls: + - envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig + - category: envoy.load_balancing_policies + name: envoy.load_balancing_policies.least_request + typeUrls: + - envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest + - category: envoy.load_balancing_policies + name: envoy.load_balancing_policies.maglev + typeUrls: + - envoy.extensions.load_balancing_policies.maglev.v3.Maglev + - category: envoy.load_balancing_policies + name: envoy.load_balancing_policies.random + typeUrls: + - envoy.extensions.load_balancing_policies.random.v3.Random + - category: envoy.load_balancing_policies + name: envoy.load_balancing_policies.ring_hash + typeUrls: + - envoy.extensions.load_balancing_policies.ring_hash.v3.RingHash + - category: envoy.load_balancing_policies + name: envoy.load_balancing_policies.round_robin + typeUrls: + - envoy.extensions.load_balancing_policies.round_robin.v3.RoundRobin + - category: envoy.resolvers + name: envoy.ip + - category: envoy.filters.http + name: envoy.bandwidth_limit + - category: envoy.filters.http + name: envoy.buffer + - category: envoy.filters.http + name: envoy.cors + - category: envoy.filters.http + name: envoy.csrf + - category: envoy.filters.http + name: envoy.ext_authz + - category: envoy.filters.http + name: envoy.ext_proc + - category: envoy.filters.http + name: envoy.fault + - category: envoy.filters.http + name: envoy.filters.http.adaptive_concurrency + typeUrls: + - envoy.extensions.filters.http.adaptive_concurrency.v3.AdaptiveConcurrency + - category: envoy.filters.http + name: envoy.filters.http.admission_control + typeUrls: + - envoy.extensions.filters.http.admission_control.v3.AdmissionControl + - category: envoy.filters.http + name: envoy.filters.http.alternate_protocols_cache + typeUrls: + - envoy.extensions.filters.http.alternate_protocols_cache.v3.FilterConfig + - category: envoy.filters.http + name: envoy.filters.http.aws_lambda + typeUrls: + - envoy.extensions.filters.http.aws_lambda.v3.Config + - envoy.extensions.filters.http.aws_lambda.v3.PerRouteConfig + - category: envoy.filters.http + name: envoy.filters.http.aws_request_signing + typeUrls: + - envoy.extensions.filters.http.aws_request_signing.v3.AwsRequestSigning + - category: envoy.filters.http + name: envoy.filters.http.bandwidth_limit + typeUrls: + - envoy.extensions.filters.http.bandwidth_limit.v3.BandwidthLimit + - category: envoy.filters.http + name: envoy.filters.http.buffer + typeUrls: + - envoy.extensions.filters.http.buffer.v3.Buffer + - envoy.extensions.filters.http.buffer.v3.BufferPerRoute + - category: envoy.filters.http + name: envoy.filters.http.cache + typeUrls: + - envoy.extensions.filters.http.cache.v3.CacheConfig + - category: envoy.filters.http + name: envoy.filters.http.cdn_loop + typeUrls: + - envoy.extensions.filters.http.cdn_loop.v3.CdnLoopConfig + - category: envoy.filters.http + name: envoy.filters.http.composite + typeUrls: + - envoy.extensions.filters.http.composite.v3.Composite + - category: envoy.filters.http + name: envoy.filters.http.compressor + typeUrls: + - envoy.extensions.filters.http.compressor.v3.Compressor + - envoy.extensions.filters.http.compressor.v3.CompressorPerRoute + - category: envoy.filters.http + name: envoy.filters.http.connect_grpc_bridge + typeUrls: + - envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig + - category: envoy.filters.http + name: envoy.filters.http.cors + typeUrls: + - envoy.extensions.filters.http.cors.v3.Cors + - envoy.extensions.filters.http.cors.v3.CorsPolicy + - category: envoy.filters.http + name: envoy.filters.http.csrf + typeUrls: + - envoy.extensions.filters.http.csrf.v3.CsrfPolicy + - category: envoy.filters.http + name: envoy.filters.http.custom_response + typeUrls: + - envoy.extensions.filters.http.custom_response.v3.CustomResponse + - category: envoy.filters.http + name: envoy.filters.http.decompressor + typeUrls: + - envoy.extensions.filters.http.decompressor.v3.Decompressor + - category: envoy.filters.http + name: envoy.filters.http.dynamic_forward_proxy + typeUrls: + - envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig + - envoy.extensions.filters.http.dynamic_forward_proxy.v3.PerRouteConfig + - category: envoy.filters.http + name: envoy.filters.http.ext_authz + typeUrls: + - envoy.extensions.filters.http.ext_authz.v3.ExtAuthz + - envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute + - category: envoy.filters.http + name: envoy.filters.http.ext_proc + typeUrls: + - envoy.extensions.filters.http.ext_proc.v3.ExtProcPerRoute + - envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor + - category: envoy.filters.http + name: envoy.filters.http.fault + typeUrls: + - envoy.extensions.filters.http.fault.v3.HTTPFault + - category: envoy.filters.http + name: envoy.filters.http.file_system_buffer + typeUrls: + - envoy.extensions.filters.http.file_system_buffer.v3.FileSystemBufferFilterConfig + - category: envoy.filters.http + name: envoy.filters.http.gcp_authn + typeUrls: + - envoy.extensions.filters.http.gcp_authn.v3.GcpAuthnFilterConfig + - category: envoy.filters.http + name: envoy.filters.http.grpc_http1_bridge + typeUrls: + - envoy.extensions.filters.http.grpc_http1_bridge.v3.Config + - category: envoy.filters.http + name: envoy.filters.http.grpc_http1_reverse_bridge + typeUrls: + - envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfig + - envoy.extensions.filters.http.grpc_http1_reverse_bridge.v3.FilterConfigPerRoute + - category: envoy.filters.http + name: envoy.filters.http.grpc_json_transcoder + typeUrls: + - envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder + - category: envoy.filters.http + name: envoy.filters.http.grpc_stats + typeUrls: + - envoy.extensions.filters.http.grpc_stats.v3.FilterConfig + - category: envoy.filters.http + name: envoy.filters.http.grpc_web + typeUrls: + - envoy.extensions.filters.http.grpc_web.v3.GrpcWeb + - category: envoy.filters.http + name: envoy.filters.http.header_to_metadata + typeUrls: + - envoy.extensions.filters.http.header_to_metadata.v3.Config + - category: envoy.filters.http + name: envoy.filters.http.health_check + typeUrls: + - envoy.extensions.filters.http.health_check.v3.HealthCheck + - category: envoy.filters.http + name: envoy.filters.http.ip_tagging + typeUrls: + - envoy.extensions.filters.http.ip_tagging.v3.IPTagging + - category: envoy.filters.http + name: envoy.filters.http.jwt_authn + typeUrls: + - envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication + - envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig + - category: envoy.filters.http + name: envoy.filters.http.local_ratelimit + typeUrls: + - envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit + - category: envoy.filters.http + name: envoy.filters.http.lua + typeUrls: + - envoy.extensions.filters.http.lua.v3.Lua + - envoy.extensions.filters.http.lua.v3.LuaPerRoute + - category: envoy.filters.http + name: envoy.filters.http.match_delegate + typeUrls: + - envoy.extensions.common.matching.v3.ExtensionWithMatcher + - category: envoy.filters.http + name: envoy.filters.http.oauth2 + typeUrls: + - envoy.extensions.filters.http.oauth2.v3.OAuth2 + - category: envoy.filters.http + name: envoy.filters.http.on_demand + typeUrls: + - envoy.extensions.filters.http.on_demand.v3.OnDemand + - envoy.extensions.filters.http.on_demand.v3.PerRouteConfig + - category: envoy.filters.http + name: envoy.filters.http.original_src + typeUrls: + - envoy.extensions.filters.http.original_src.v3.OriginalSrc + - category: envoy.filters.http + name: envoy.filters.http.rate_limit_quota + typeUrls: + - envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaFilterConfig + - envoy.extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaOverride + - category: envoy.filters.http + name: envoy.filters.http.ratelimit + typeUrls: + - envoy.extensions.filters.http.ratelimit.v3.RateLimit + - envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute + - category: envoy.filters.http + name: envoy.filters.http.rbac + typeUrls: + - envoy.extensions.filters.http.rbac.v3.RBAC + - envoy.extensions.filters.http.rbac.v3.RBACPerRoute + - category: envoy.filters.http + name: envoy.filters.http.router + typeUrls: + - envoy.extensions.filters.http.router.v3.Router + - category: envoy.filters.http + name: envoy.filters.http.set_metadata + typeUrls: + - envoy.extensions.filters.http.set_metadata.v3.Config + - category: envoy.filters.http + name: envoy.filters.http.stateful_session + typeUrls: + - envoy.extensions.filters.http.stateful_session.v3.StatefulSession + - envoy.extensions.filters.http.stateful_session.v3.StatefulSessionPerRoute + - category: envoy.filters.http + name: envoy.filters.http.tap + typeUrls: + - envoy.extensions.filters.http.tap.v3.Tap + - category: envoy.filters.http + name: envoy.filters.http.wasm + typeUrls: + - envoy.extensions.filters.http.wasm.v3.Wasm + - category: envoy.filters.http + name: envoy.grpc_http1_bridge + - category: envoy.filters.http + name: envoy.grpc_json_transcoder + - category: envoy.filters.http + name: envoy.grpc_web + - category: envoy.filters.http + name: envoy.health_check + - category: envoy.filters.http + name: envoy.ip_tagging + - category: envoy.filters.http + name: envoy.local_rate_limit + - category: envoy.filters.http + name: envoy.lua + - category: envoy.filters.http + name: envoy.rate_limit + - category: envoy.filters.http + name: envoy.router + - category: envoy.access_loggers + name: envoy.access_loggers.file + typeUrls: + - envoy.extensions.access_loggers.file.v3.FileAccessLog + - category: envoy.access_loggers + name: envoy.access_loggers.http_grpc + typeUrls: + - envoy.extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig + - category: envoy.access_loggers + name: envoy.access_loggers.open_telemetry + typeUrls: + - envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig + - category: envoy.access_loggers + name: envoy.access_loggers.stderr + typeUrls: + - envoy.extensions.access_loggers.stream.v3.StderrAccessLog + - category: envoy.access_loggers + name: envoy.access_loggers.stdout + typeUrls: + - envoy.extensions.access_loggers.stream.v3.StdoutAccessLog + - category: envoy.access_loggers + name: envoy.access_loggers.tcp_grpc + typeUrls: + - envoy.extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig + - category: envoy.access_loggers + name: envoy.access_loggers.wasm + typeUrls: + - envoy.extensions.access_loggers.wasm.v3.WasmAccessLog + - category: envoy.access_loggers + name: envoy.file_access_log + - category: envoy.access_loggers + name: envoy.http_grpc_access_log + - category: envoy.access_loggers + name: envoy.open_telemetry_access_log + - category: envoy.access_loggers + name: envoy.stderr_access_log + - category: envoy.access_loggers + name: envoy.stdout_access_log + - category: envoy.access_loggers + name: envoy.tcp_grpc_access_log + - category: envoy.access_loggers + name: envoy.wasm_access_log + - category: envoy.config.validators + name: envoy.config.validators.minimum_clusters + - category: envoy.config.validators + name: envoy.config.validators.minimum_clusters_validator + typeUrls: + - envoy.extensions.config.validators.minimum_clusters.v3.MinimumClustersValidator + - category: envoy.http.header_validators + name: envoy.http.header_validators.envoy_default + typeUrls: + - envoy.extensions.http.header_validators.envoy_default.v3.HeaderValidatorConfig + - category: envoy.dubbo_proxy.serializers + name: dubbo.hessian2 + - category: quic.http_server_connection + name: quic.http_server_connection.default + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.alts + typeUrls: + - envoy.extensions.transport_sockets.alts.v3.Alts + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.quic + typeUrls: + - envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.raw_buffer + typeUrls: + - envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.starttls + typeUrls: + - envoy.extensions.transport_sockets.starttls.v3.StartTlsConfig + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.tap + typeUrls: + - envoy.extensions.transport_sockets.tap.v3.Tap + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.tcp_stats + typeUrls: + - envoy.extensions.transport_sockets.tcp_stats.v3.Config + - category: envoy.transport_sockets.downstream + name: envoy.transport_sockets.tls + typeUrls: + - envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext + - category: envoy.transport_sockets.downstream + name: raw_buffer + - category: envoy.transport_sockets.downstream + name: starttls + - category: envoy.transport_sockets.downstream + name: tls + - category: envoy.rbac.matchers + name: envoy.rbac.matchers.upstream_ip_port + typeUrls: + - envoy.extensions.rbac.matchers.upstream_ip_port.v3.UpstreamIpPortMatcher + - category: envoy.common.key_value + name: envoy.key_value.file_based + typeUrls: + - envoy.extensions.key_value.file_based.v3.FileBasedKeyValueStoreConfig + - category: envoy.matching.network.input + name: envoy.matching.inputs.application_protocol + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.ApplicationProtocolInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.destination_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DestinationIPInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.destination_port + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DestinationPortInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.direct_source_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.DirectSourceIPInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.dns_san + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.DnsSanInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.server_name + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.ServerNameInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.source_ip + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourceIPInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.source_port + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourcePortInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.source_type + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.SourceTypeInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.subject + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.SubjectInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.transport_protocol + typeUrls: + - envoy.extensions.matching.common_inputs.network.v3.TransportProtocolInput + - category: envoy.matching.network.input + name: envoy.matching.inputs.uri_san + typeUrls: + - envoy.extensions.matching.common_inputs.ssl.v3.UriSanInput + - category: envoy.dubbo_proxy.protocols + name: dubbo + - category: envoy.guarddog_actions + name: envoy.watchdog.abort_action + typeUrls: + - envoy.watchdog.v3.AbortActionConfig + - category: envoy.guarddog_actions + name: envoy.watchdog.profile_action + typeUrls: + - envoy.extensions.watchdog.profile_action.v3.ProfileActionConfig + - category: envoy.quic.server.crypto_stream + name: envoy.quic.crypto_stream.server.quiche + typeUrls: + - envoy.extensions.quic.crypto_stream.v3.CryptoServerStreamConfig + - category: envoy.regex_engines + name: envoy.regex_engines.google_re2 + typeUrls: + - envoy.extensions.regex_engines.v3.GoogleRE2 + - category: envoy.http.stateful_session + name: envoy.http.stateful_session.cookie + typeUrls: + - envoy.extensions.http.stateful_session.cookie.v3.CookieBasedSessionState + - category: envoy.http.stateful_session + name: envoy.http.stateful_session.header + typeUrls: + - envoy.extensions.http.stateful_session.header.v3.HeaderBasedSessionState + - category: envoy.matching.network.custom_matchers + name: envoy.matching.custom_matchers.trie_matcher + typeUrls: + - xds.type.matcher.v3.IPMatcher + - category: envoy.udp_packet_writer + name: envoy.udp_packet_writer.default + typeUrls: + - envoy.extensions.udp_packet_writer.v3.UdpDefaultWriterFactory + - category: envoy.udp_packet_writer + name: envoy.udp_packet_writer.gso + typeUrls: + - envoy.extensions.udp_packet_writer.v3.UdpGsoBatchWriterFactory + - category: envoy.quic.proof_source + name: envoy.quic.proof_source.filter_chain + typeUrls: + - envoy.extensions.quic.proof_source.v3.ProofSourceConfig + - category: envoy.resource_monitors + name: envoy.resource_monitors.fixed_heap + typeUrls: + - envoy.extensions.resource_monitors.fixed_heap.v3.FixedHeapConfig + - category: envoy.resource_monitors + name: envoy.resource_monitors.injected_resource + typeUrls: + - envoy.extensions.resource_monitors.injected_resource.v3.InjectedResourceConfig + - category: envoy.http.stateful_header_formatters + name: envoy.http.stateful_header_formatters.preserve_case + typeUrls: + - envoy.extensions.http.header_formatters.preserve_case.v3.PreserveCaseFormatterConfig + - category: envoy.http.stateful_header_formatters + name: preserve_case + - category: envoy.thrift_proxy.filters + name: envoy.filters.thrift.header_to_metadata + typeUrls: + - envoy.extensions.filters.network.thrift_proxy.filters.header_to_metadata.v3.HeaderToMetadata + - category: envoy.thrift_proxy.filters + name: envoy.filters.thrift.payload_to_metadata + typeUrls: + - envoy.extensions.filters.network.thrift_proxy.filters.payload_to_metadata.v3.PayloadToMetadata + - category: envoy.thrift_proxy.filters + name: envoy.filters.thrift.rate_limit + typeUrls: + - envoy.extensions.filters.network.thrift_proxy.filters.ratelimit.v3.RateLimit + - category: envoy.thrift_proxy.filters + name: envoy.filters.thrift.router + typeUrls: + - envoy.extensions.filters.network.thrift_proxy.router.v3.Router + - category: envoy.tracers + name: envoy.tracers.datadog + typeUrls: + - envoy.config.trace.v3.DatadogConfig + - category: envoy.tracers + name: envoy.tracers.dynamic_ot + typeUrls: + - envoy.config.trace.v3.DynamicOtConfig + - category: envoy.tracers + name: envoy.tracers.opencensus + typeUrls: + - envoy.config.trace.v3.OpenCensusConfig + - category: envoy.tracers + name: envoy.tracers.opentelemetry + typeUrls: + - envoy.config.trace.v3.OpenTelemetryConfig + - category: envoy.tracers + name: envoy.tracers.skywalking + typeUrls: + - envoy.config.trace.v3.SkyWalkingConfig + - category: envoy.tracers + name: envoy.tracers.xray + typeUrls: + - envoy.config.trace.v3.XRayConfig + - category: envoy.tracers + name: envoy.tracers.zipkin + typeUrls: + - envoy.config.trace.v3.ZipkinConfig + - category: envoy.tracers + name: envoy.zipkin + - category: envoy.retry_priorities + name: envoy.retry_priorities.previous_priorities + typeUrls: + - envoy.extensions.retry.priority.previous_priorities.v3.PreviousPrioritiesConfig + - category: envoy.http.early_header_mutation + name: envoy.http.early_header_mutation.header_mutation + typeUrls: + - envoy.extensions.http.early_header_mutation.header_mutation.v3.HeaderMutation + - category: envoy.connection_handler + name: envoy.connection_handler.default + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.alts + typeUrls: + - envoy.extensions.transport_sockets.alts.v3.Alts + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.http_11_proxy + typeUrls: + - envoy.extensions.transport_sockets.http_11_proxy.v3.Http11ProxyUpstreamTransport + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.internal_upstream + typeUrls: + - envoy.extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.quic + typeUrls: + - envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.raw_buffer + typeUrls: + - envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.starttls + typeUrls: + - envoy.extensions.transport_sockets.starttls.v3.UpstreamStartTlsConfig + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.tap + typeUrls: + - envoy.extensions.transport_sockets.tap.v3.Tap + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.tcp_stats + typeUrls: + - envoy.extensions.transport_sockets.tcp_stats.v3.Config + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.tls + typeUrls: + - envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext + - category: envoy.transport_sockets.upstream + name: envoy.transport_sockets.upstream_proxy_protocol + typeUrls: + - envoy.extensions.transport_sockets.proxy_protocol.v3.ProxyProtocolUpstreamTransport + - category: envoy.transport_sockets.upstream + name: raw_buffer + - category: envoy.transport_sockets.upstream + name: starttls + - category: envoy.transport_sockets.upstream + name: tls + - category: envoy.thrift_proxy.transports + name: auto + - category: envoy.thrift_proxy.transports + name: framed + - category: envoy.thrift_proxy.transports + name: header + - category: envoy.thrift_proxy.transports + name: unframed + - category: envoy.clusters + name: envoy.cluster.eds + - category: envoy.clusters + name: envoy.cluster.logical_dns + - category: envoy.clusters + name: envoy.cluster.original_dst + - category: envoy.clusters + name: envoy.cluster.static + - category: envoy.clusters + name: envoy.cluster.strict_dns + - category: envoy.clusters + name: envoy.clusters.aggregate + - category: envoy.clusters + name: envoy.clusters.dynamic_forward_proxy + - category: envoy.clusters + name: envoy.clusters.redis + - category: envoy.access_loggers.extension_filters + name: envoy.access_loggers.extension_filters.cel + typeUrls: + - envoy.extensions.access_loggers.filters.cel.v3.ExpressionFilter + - category: envoy.thrift_proxy.protocols + name: auto + - category: envoy.thrift_proxy.protocols + name: binary + - category: envoy.thrift_proxy.protocols + name: binary/non-strict + - category: envoy.thrift_proxy.protocols + name: compact + - category: envoy.thrift_proxy.protocols + name: twitter + - category: envoy.upstream_options + name: envoy.extensions.upstreams.http.v3.HttpProtocolOptions + typeUrls: + - envoy.extensions.upstreams.http.v3.HttpProtocolOptions + - category: envoy.upstream_options + name: envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions + typeUrls: + - envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions + - category: envoy.upstream_options + name: envoy.upstreams.http.http_protocol_options + - category: envoy.upstream_options + name: envoy.upstreams.tcp.tcp_protocol_options + - category: envoy.listener_manager_impl + name: envoy.listener_manager_impl.default + typeUrls: + - envoy.config.listener.v3.ListenerManager + - category: network.connection.client + name: default + - category: network.connection.client + name: envoy_internal + - category: envoy.filters.udp_listener + name: envoy.filters.udp.dns_filter + typeUrls: + - envoy.extensions.filters.udp.dns_filter.v3.DnsFilterConfig + - category: envoy.filters.udp_listener + name: envoy.filters.udp_listener.udp_proxy + typeUrls: + - envoy.extensions.filters.udp.udp_proxy.v3.UdpProxyConfig + - category: envoy.http.cache + name: envoy.extensions.http.cache.file_system_http_cache + typeUrls: + - envoy.extensions.http.cache.file_system_http_cache.v3.FileSystemHttpCacheConfig + - category: envoy.http.cache + name: envoy.extensions.http.cache.simple + typeUrls: + - envoy.extensions.http.cache.simple_http_cache.v3.SimpleHttpCacheConfig + - category: envoy.retry_host_predicates + name: envoy.retry_host_predicates.omit_canary_hosts + typeUrls: + - envoy.extensions.retry.host.omit_canary_hosts.v3.OmitCanaryHostsPredicate + - category: envoy.retry_host_predicates + name: envoy.retry_host_predicates.omit_host_metadata + typeUrls: + - envoy.extensions.retry.host.omit_host_metadata.v3.OmitHostMetadataConfig + - category: envoy.retry_host_predicates + name: envoy.retry_host_predicates.previous_hosts + typeUrls: + - envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate + - category: envoy.formatter + name: envoy.formatter.metadata + typeUrls: + - envoy.extensions.formatter.metadata.v3.Metadata + - category: envoy.formatter + name: envoy.formatter.req_without_query + typeUrls: + - envoy.extensions.formatter.req_without_query.v3.ReqWithoutQuery + - category: envoy.internal_redirect_predicates + name: envoy.internal_redirect_predicates.allow_listed_routes + typeUrls: + - envoy.extensions.internal_redirect.allow_listed_routes.v3.AllowListedRoutesConfig + - category: envoy.internal_redirect_predicates + name: envoy.internal_redirect_predicates.previous_routes + typeUrls: + - envoy.extensions.internal_redirect.previous_routes.v3.PreviousRoutesConfig + - category: envoy.internal_redirect_predicates + name: envoy.internal_redirect_predicates.safe_cross_scheme + typeUrls: + - envoy.extensions.internal_redirect.safe_cross_scheme.v3.SafeCrossSchemeConfig + - category: envoy.matching.http.custom_matchers + name: envoy.matching.custom_matchers.trie_matcher + typeUrls: + - xds.type.matcher.v3.IPMatcher + - category: envoy.dubbo_proxy.filters + name: envoy.filters.dubbo.router + typeUrls: + - envoy.extensions.filters.network.dubbo_proxy.router.v3.Router + - category: envoy.filters.network + name: envoy.echo + - category: envoy.filters.network + name: envoy.ext_authz + - category: envoy.filters.network + name: envoy.filters.network.connection_limit + typeUrls: + - envoy.extensions.filters.network.connection_limit.v3.ConnectionLimit + - category: envoy.filters.network + name: envoy.filters.network.direct_response + typeUrls: + - envoy.extensions.filters.network.direct_response.v3.Config + - category: envoy.filters.network + name: envoy.filters.network.dubbo_proxy + typeUrls: + - envoy.extensions.filters.network.dubbo_proxy.v3.DubboProxy + - category: envoy.filters.network + name: envoy.filters.network.echo + typeUrls: + - envoy.extensions.filters.network.echo.v3.Echo + - category: envoy.filters.network + name: envoy.filters.network.ext_authz + typeUrls: + - envoy.extensions.filters.network.ext_authz.v3.ExtAuthz + - category: envoy.filters.network + name: envoy.filters.network.http_connection_manager + typeUrls: + - envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager + - category: envoy.filters.network + name: envoy.filters.network.local_ratelimit + typeUrls: + - envoy.extensions.filters.network.local_ratelimit.v3.LocalRateLimit + - category: envoy.filters.network + name: envoy.filters.network.mongo_proxy + typeUrls: + - envoy.extensions.filters.network.mongo_proxy.v3.MongoProxy + - category: envoy.filters.network + name: envoy.filters.network.ratelimit + typeUrls: + - envoy.extensions.filters.network.ratelimit.v3.RateLimit + - category: envoy.filters.network + name: envoy.filters.network.rbac + typeUrls: + - envoy.extensions.filters.network.rbac.v3.RBAC + - category: envoy.filters.network + name: envoy.filters.network.redis_proxy + typeUrls: + - envoy.extensions.filters.network.redis_proxy.v3.RedisProxy + - category: envoy.filters.network + name: envoy.filters.network.sni_cluster + typeUrls: + - envoy.extensions.filters.network.sni_cluster.v3.SniCluster + - category: envoy.filters.network + name: envoy.filters.network.sni_dynamic_forward_proxy + typeUrls: + - envoy.extensions.filters.network.sni_dynamic_forward_proxy.v3.FilterConfig + - category: envoy.filters.network + name: envoy.filters.network.tcp_proxy + typeUrls: + - envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy + - category: envoy.filters.network + name: envoy.filters.network.thrift_proxy + typeUrls: + - envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy + - category: envoy.filters.network + name: envoy.filters.network.wasm + typeUrls: + - envoy.extensions.filters.network.wasm.v3.Wasm + - category: envoy.filters.network + name: envoy.filters.network.zookeeper_proxy + typeUrls: + - envoy.extensions.filters.network.zookeeper_proxy.v3.ZooKeeperProxy + - category: envoy.filters.network + name: envoy.http_connection_manager + - category: envoy.filters.network + name: envoy.mongo_proxy + - category: envoy.filters.network + name: envoy.ratelimit + - category: envoy.filters.network + name: envoy.redis_proxy + - category: envoy.filters.network + name: envoy.tcp_proxy + - category: envoy.health_checkers + name: envoy.health_checkers.redis + typeUrls: + - envoy.extensions.health_checkers.redis.v3.Redis + - category: envoy.health_checkers + name: envoy.health_checkers.thrift + typeUrls: + - envoy.extensions.health_checkers.thrift.v3.Thrift + userAgentBuildVersion: + metadata: + build.label: dev + build.type: RELEASE + revision.sha: 14111e3c62d3d38b0c921cb7011fd0a94e880aed + revision.status: Clean + ssl.version: BoringSSL + version: + majorNumber: 1 + minorNumber: 26 + userAgentName: envoy + staticResources: + clusters: + - connectTimeout: 1s + loadAssignment: + clusterName: xds_cluster + endpoints: + - lbEndpoints: + - endpoint: + address: + socketAddress: + address: envoy-gateway + portValue: 18000 + name: xds_cluster + transportSocket: + name: envoy.transport_sockets.tls + typedConfig: + '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext + commonTlsContext: + tlsCertificateSdsSecretConfigs: + - name: xds_certificate + sdsConfig: + pathConfigSource: + path: /sds/xds-certificate.json + resourceApiVersion: V3 + tlsParams: + tlsMaximumProtocolVersion: TLSv1_3 + validationContextSdsSecretConfig: + name: xds_trusted_ca + sdsConfig: + pathConfigSource: + path: /sds/xds-trusted-ca.json + resourceApiVersion: V3 + type: STRICT_DNS + typedExtensionProtocolOptions: + envoy.extensions.upstreams.http.v3.HttpProtocolOptions: + '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions + explicitHttpConfig: + http2ProtocolOptions: {} + lastUpdated: "2023-02-23T09:05:23.422Z" diff --git a/internal/cmd/egctl/testdata/config/out/out.cluster.json b/internal/cmd/egctl/testdata/config/out/out.cluster.json index d60e0517995..4dc4e6e6e5a 100644 --- a/internal/cmd/egctl/testdata/config/out/out.cluster.json +++ b/internal/cmd/egctl/testdata/config/out/out.cluster.json @@ -1,98 +1,102 @@ { - "@type": "type.googleapis.com/envoy.admin.v3.ClustersConfigDump", - "versionInfo": "2", - "staticClusters": [{ - "cluster": { - "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", - "name": "xds_cluster", - "type": "STRICT_DNS", - "connectTimeout": "1s", - "loadAssignment": { - "clusterName": "xds_cluster", - "endpoints": [{ - "lbEndpoints": [{ - "endpoint": { - "address": { - "socketAddress": { - "address": "envoy-gateway", - "portValue": 18000 + "default": { + "eg": { + "@type": "type.googleapis.com/envoy.admin.v3.ClustersConfigDump", + "versionInfo": "2", + "staticClusters": [{ + "cluster": { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "xds_cluster", + "type": "STRICT_DNS", + "connectTimeout": "1s", + "loadAssignment": { + "clusterName": "xds_cluster", + "endpoints": [{ + "lbEndpoints": [{ + "endpoint": { + "address": { + "socketAddress": { + "address": "envoy-gateway", + "portValue": 18000 + } + } } + }] + }] + }, + "typedExtensionProtocolOptions": { + "envoy.extensions.upstreams.http.v3.HttpProtocolOptions": { + "@type": "type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions", + "explicitHttpConfig": { + "http2ProtocolOptions": {} } } - }] - }] - }, - "typedExtensionProtocolOptions": { - "envoy.extensions.upstreams.http.v3.HttpProtocolOptions": { - "@type": "type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions", - "explicitHttpConfig": { - "http2ProtocolOptions": {} - } - } - }, - "transportSocket": { - "name": "envoy.transport_sockets.tls", - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", - "commonTlsContext": { - "tlsParams": { - "tlsMaximumProtocolVersion": "TLSv1_3" - }, - "tlsCertificateSdsSecretConfigs": [{ - "name": "xds_certificate", - "sdsConfig": { - "pathConfigSource": { - "path": "/sds/xds-certificate.json" - }, - "resourceApiVersion": "V3" - } - }], - "validationContextSdsSecretConfig": { - "name": "xds_trusted_ca", - "sdsConfig": { - "pathConfigSource": { - "path": "/sds/xds-trusted-ca.json" + }, + "transportSocket": { + "name": "envoy.transport_sockets.tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + "tlsMaximumProtocolVersion": "TLSv1_3" }, - "resourceApiVersion": "V3" + "tlsCertificateSdsSecretConfigs": [{ + "name": "xds_certificate", + "sdsConfig": { + "pathConfigSource": { + "path": "/sds/xds-certificate.json" + }, + "resourceApiVersion": "V3" + } + }], + "validationContextSdsSecretConfig": { + "name": "xds_trusted_ca", + "sdsConfig": { + "pathConfigSource": { + "path": "/sds/xds-trusted-ca.json" + }, + "resourceApiVersion": "V3" + } + } } } } - } - } - }, - "lastUpdated": "2023-02-23T09:05:23.436Z" - }], - "dynamicActiveClusters": [{ - "versionInfo": "2a0a1698a9d3e05b802047b0cd36b52a070afa49042e1ba267168c5265c7cabf", - "cluster": { - "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", - "name": "default-backend-rule-0-match-0-www.example.com", - "type": "STATIC", - "connectTimeout": "5s", - "loadAssignment": { - "clusterName": "default-backend-rule-0-match-0-www.example.com", - "endpoints": [{ - "locality": {}, - "lbEndpoints": [{ - "endpoint": { - "address": { - "socketAddress": { - "address": "10.96.159.190", - "portValue": 3000 - } - } - }, - "loadBalancingWeight": 1 - }], - "loadBalancingWeight": 1 - }] - }, - "dnsLookupFamily": "V4_ONLY", - "outlierDetection": {}, - "commonLbConfig": { - "localityWeightedLbConfig": {} - } - }, - "lastUpdated": "2023-02-23T09:05:38.443Z" - }] -} + }, + "lastUpdated": "2023-02-23T09:05:23.436Z" + }], + "dynamicActiveClusters": [{ + "versionInfo": "2a0a1698a9d3e05b802047b0cd36b52a070afa49042e1ba267168c5265c7cabf", + "cluster": { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "default-backend-rule-0-match-0-www.example.com", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "default-backend-rule-0-match-0-www.example.com", + "endpoints": [{ + "locality": {}, + "lbEndpoints": [{ + "endpoint": { + "address": { + "socketAddress": { + "address": "10.96.159.190", + "portValue": 3000 + } + } + }, + "loadBalancingWeight": 1 + }], + "loadBalancingWeight": 1 + }] + }, + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": {}, + "commonLbConfig": { + "localityWeightedLbConfig": {} + } + }, + "lastUpdated": "2023-02-23T09:05:38.443Z" + }] + } + } +} \ No newline at end of file diff --git a/internal/cmd/egctl/testdata/config/out/out.cluster.yaml b/internal/cmd/egctl/testdata/config/out/out.cluster.yaml index 02d5d411f31..ce80f459527 100644 --- a/internal/cmd/egctl/testdata/config/out/out.cluster.yaml +++ b/internal/cmd/egctl/testdata/config/out/out.cluster.yaml @@ -1,66 +1,68 @@ -'@type': type.googleapis.com/envoy.admin.v3.ClustersConfigDump -dynamicActiveClusters: -- cluster: - '@type': type.googleapis.com/envoy.config.cluster.v3.Cluster - commonLbConfig: - localityWeightedLbConfig: {} - connectTimeout: 5s - dnsLookupFamily: V4_ONLY - loadAssignment: - clusterName: default-backend-rule-0-match-0-www.example.com - endpoints: - - lbEndpoints: - - endpoint: - address: - socketAddress: - address: 10.96.159.190 - portValue: 3000 - loadBalancingWeight: 1 - loadBalancingWeight: 1 - locality: {} - name: default-backend-rule-0-match-0-www.example.com - outlierDetection: {} - type: STATIC - lastUpdated: "2023-02-23T09:05:38.443Z" - versionInfo: 2a0a1698a9d3e05b802047b0cd36b52a070afa49042e1ba267168c5265c7cabf -staticClusters: -- cluster: - '@type': type.googleapis.com/envoy.config.cluster.v3.Cluster - connectTimeout: 1s - loadAssignment: - clusterName: xds_cluster - endpoints: - - lbEndpoints: - - endpoint: - address: - socketAddress: - address: envoy-gateway - portValue: 18000 - name: xds_cluster - transportSocket: - name: envoy.transport_sockets.tls - typedConfig: - '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext - commonTlsContext: - tlsCertificateSdsSecretConfigs: - - name: xds_certificate - sdsConfig: - pathConfigSource: - path: /sds/xds-certificate.json - resourceApiVersion: V3 - tlsParams: - tlsMaximumProtocolVersion: TLSv1_3 - validationContextSdsSecretConfig: - name: xds_trusted_ca - sdsConfig: - pathConfigSource: - path: /sds/xds-trusted-ca.json - resourceApiVersion: V3 - type: STRICT_DNS - typedExtensionProtocolOptions: - envoy.extensions.upstreams.http.v3.HttpProtocolOptions: - '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions - explicitHttpConfig: - http2ProtocolOptions: {} - lastUpdated: "2023-02-23T09:05:23.436Z" -versionInfo: "2" +default: + eg: + '@type': type.googleapis.com/envoy.admin.v3.ClustersConfigDump + dynamicActiveClusters: + - cluster: + '@type': type.googleapis.com/envoy.config.cluster.v3.Cluster + commonLbConfig: + localityWeightedLbConfig: {} + connectTimeout: 5s + dnsLookupFamily: V4_ONLY + loadAssignment: + clusterName: default-backend-rule-0-match-0-www.example.com + endpoints: + - lbEndpoints: + - endpoint: + address: + socketAddress: + address: 10.96.159.190 + portValue: 3000 + loadBalancingWeight: 1 + loadBalancingWeight: 1 + locality: {} + name: default-backend-rule-0-match-0-www.example.com + outlierDetection: {} + type: STATIC + lastUpdated: "2023-02-23T09:05:38.443Z" + versionInfo: 2a0a1698a9d3e05b802047b0cd36b52a070afa49042e1ba267168c5265c7cabf + staticClusters: + - cluster: + '@type': type.googleapis.com/envoy.config.cluster.v3.Cluster + connectTimeout: 1s + loadAssignment: + clusterName: xds_cluster + endpoints: + - lbEndpoints: + - endpoint: + address: + socketAddress: + address: envoy-gateway + portValue: 18000 + name: xds_cluster + transportSocket: + name: envoy.transport_sockets.tls + typedConfig: + '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext + commonTlsContext: + tlsCertificateSdsSecretConfigs: + - name: xds_certificate + sdsConfig: + pathConfigSource: + path: /sds/xds-certificate.json + resourceApiVersion: V3 + tlsParams: + tlsMaximumProtocolVersion: TLSv1_3 + validationContextSdsSecretConfig: + name: xds_trusted_ca + sdsConfig: + pathConfigSource: + path: /sds/xds-trusted-ca.json + resourceApiVersion: V3 + type: STRICT_DNS + typedExtensionProtocolOptions: + envoy.extensions.upstreams.http.v3.HttpProtocolOptions: + '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions + explicitHttpConfig: + http2ProtocolOptions: {} + lastUpdated: "2023-02-23T09:05:23.436Z" + versionInfo: "2" diff --git a/internal/cmd/egctl/testdata/config/out/out.endpoints.json b/internal/cmd/egctl/testdata/config/out/out.endpoints.json index c5de3641cd8..8c71aa373fb 100644 --- a/internal/cmd/egctl/testdata/config/out/out.endpoints.json +++ b/internal/cmd/egctl/testdata/config/out/out.endpoints.json @@ -1,36 +1,40 @@ { - "@type": "type.googleapis.com/envoy.admin.v3.EndpointsConfigDump", - "staticEndpointConfigs": [ - { - "endpointConfig": { - "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", - "clusterName": "xds_cluster", - "endpoints": [ - { - "locality": {}, - "lbEndpoints": [ + "default": { + "eg": { + "@type": "type.googleapis.com/envoy.admin.v3.EndpointsConfigDump", + "staticEndpointConfigs": [ + { + "endpointConfig": { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "xds_cluster", + "endpoints": [ { - "endpoint": { - "address": { - "socketAddress": { - "address": "10.106.37.54", - "portValue": 18000 - } - }, - "healthCheckConfig": {}, - "hostname": "envoy-gateway" - }, - "healthStatus": "HEALTHY", - "metadata": {}, - "loadBalancingWeight": 1 + "locality": {}, + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.106.37.54", + "portValue": 18000 + } + }, + "healthCheckConfig": {}, + "hostname": "envoy-gateway" + }, + "healthStatus": "HEALTHY", + "metadata": {}, + "loadBalancingWeight": 1 + } + ] } - ] + ], + "policy": { + "overprovisioningFactor": 140 + } } - ], - "policy": { - "overprovisioningFactor": 140 } - } + ] } - ] -} + } +} \ No newline at end of file diff --git a/internal/cmd/egctl/testdata/config/out/out.endpoints.yaml b/internal/cmd/egctl/testdata/config/out/out.endpoints.yaml index 86282e47b8e..375cc8708d8 100644 --- a/internal/cmd/egctl/testdata/config/out/out.endpoints.yaml +++ b/internal/cmd/egctl/testdata/config/out/out.endpoints.yaml @@ -1,20 +1,22 @@ -'@type': type.googleapis.com/envoy.admin.v3.EndpointsConfigDump -staticEndpointConfigs: -- endpointConfig: - '@type': type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment - clusterName: xds_cluster - endpoints: - - lbEndpoints: - - endpoint: - address: - socketAddress: - address: 10.106.37.54 - portValue: 18000 - healthCheckConfig: {} - hostname: envoy-gateway - healthStatus: HEALTHY - loadBalancingWeight: 1 - metadata: {} - locality: {} - policy: - overprovisioningFactor: 140 +default: + eg: + '@type': type.googleapis.com/envoy.admin.v3.EndpointsConfigDump + staticEndpointConfigs: + - endpointConfig: + '@type': type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment + clusterName: xds_cluster + endpoints: + - lbEndpoints: + - endpoint: + address: + socketAddress: + address: 10.106.37.54 + portValue: 18000 + healthCheckConfig: {} + hostname: envoy-gateway + healthStatus: HEALTHY + loadBalancingWeight: 1 + metadata: {} + locality: {} + policy: + overprovisioningFactor: 140 diff --git a/internal/cmd/egctl/testdata/config/out/out.listener.json b/internal/cmd/egctl/testdata/config/out/out.listener.json index cd566f61695..b24a9599b57 100644 --- a/internal/cmd/egctl/testdata/config/out/out.listener.json +++ b/internal/cmd/egctl/testdata/config/out/out.listener.json @@ -1,75 +1,79 @@ { - "@type": "type.googleapis.com/envoy.admin.v3.ListenersConfigDump", - "versionInfo": "2", - "dynamicListeners": [{ - "name": "default-eg-http", - "activeState": { - "versionInfo": "42c71fb50c315ee3a32b327da69f8cc0baf420bc84b747e82d9c38e1b0c33eb2", - "listener": { - "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "default": { + "eg": { + "@type": "type.googleapis.com/envoy.admin.v3.ListenersConfigDump", + "versionInfo": "2", + "dynamicListeners": [{ "name": "default-eg-http", - "address": { - "socketAddress": { - "address": "0.0.0.0", - "portValue": 10080 - } - }, - "defaultFilterChain": { - "filters": [{ - "name": "envoy.filters.network.http_connection_manager", - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", - "statPrefix": "http", - "rds": { - "configSource": { - "apiConfigSource": { - "apiType": "DELTA_GRPC", - "transportApiVersion": "V3", - "grpcServices": [{ - "envoyGrpc": { - "clusterName": "xds_cluster" - } - }], - "setNodeOnFirstMessageOnly": true - }, - "resourceApiVersion": "V3" - }, - "routeConfigName": "default-eg-http" - }, - "httpFilters": [{ - "name": "envoy.filters.http.router", - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.filters.http.router.v3.Router" - } - }], - "accessLog": [{ - "name": "envoy.access_loggers.file", + "activeState": { + "versionInfo": "42c71fb50c315ee3a32b327da69f8cc0baf420bc84b747e82d9c38e1b0c33eb2", + "listener": { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "default-eg-http", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 10080 + } + }, + "defaultFilterChain": { + "filters": [{ + "name": "envoy.filters.network.http_connection_manager", "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", - "path": "/dev/stdout" + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "http", + "rds": { + "configSource": { + "apiConfigSource": { + "apiType": "DELTA_GRPC", + "transportApiVersion": "V3", + "grpcServices": [{ + "envoyGrpc": { + "clusterName": "xds_cluster" + } + }], + "setNodeOnFirstMessageOnly": true + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "default-eg-http" + }, + "httpFilters": [{ + "name": "envoy.filters.http.router", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.http.router.v3.Router" + } + }], + "accessLog": [{ + "name": "envoy.access_loggers.file", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", + "path": "/dev/stdout" + } + }], + "useRemoteAddress": true, + "upgradeConfigs": [{ + "upgradeType": "websocket" + }] } - }], - "useRemoteAddress": true, - "upgradeConfigs": [{ - "upgradeType": "websocket" }] - } - }] - }, - "accessLog": [{ - "name": "envoy.access_loggers.file", - "filter": { - "responseFlagFilter": { - "flags": ["NR"] - } + }, + "accessLog": [{ + "name": "envoy.access_loggers.file", + "filter": { + "responseFlagFilter": { + "flags": ["NR"] + } + }, + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", + "path": "/dev/stdout" + } + }] }, - "typedConfig": { - "@type": "type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog", - "path": "/dev/stdout" - } - }] - }, - "lastUpdated": "2023-02-23T09:05:38.446Z" + "lastUpdated": "2023-02-23T09:05:38.446Z" + } + }] } - }] -} + } +} \ No newline at end of file diff --git a/internal/cmd/egctl/testdata/config/out/out.listener.yaml b/internal/cmd/egctl/testdata/config/out/out.listener.yaml index f9def4447a0..50f54cdd318 100644 --- a/internal/cmd/egctl/testdata/config/out/out.listener.yaml +++ b/internal/cmd/egctl/testdata/config/out/out.listener.yaml @@ -1,52 +1,54 @@ -'@type': type.googleapis.com/envoy.admin.v3.ListenersConfigDump -dynamicListeners: -- activeState: - lastUpdated: "2023-02-23T09:05:38.446Z" - listener: - '@type': type.googleapis.com/envoy.config.listener.v3.Listener - accessLog: - - filter: - responseFlagFilter: - flags: - - NR - name: envoy.access_loggers.file - typedConfig: - '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog - path: /dev/stdout - address: - socketAddress: - address: 0.0.0.0 - portValue: 10080 - defaultFilterChain: - filters: - - name: envoy.filters.network.http_connection_manager - typedConfig: - '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager - accessLog: - - name: envoy.access_loggers.file +default: + eg: + '@type': type.googleapis.com/envoy.admin.v3.ListenersConfigDump + dynamicListeners: + - activeState: + lastUpdated: "2023-02-23T09:05:38.446Z" + listener: + '@type': type.googleapis.com/envoy.config.listener.v3.Listener + accessLog: + - filter: + responseFlagFilter: + flags: + - NR + name: envoy.access_loggers.file + typedConfig: + '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog + path: /dev/stdout + address: + socketAddress: + address: 0.0.0.0 + portValue: 10080 + defaultFilterChain: + filters: + - name: envoy.filters.network.http_connection_manager typedConfig: - '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog - path: /dev/stdout - httpFilters: - - name: envoy.filters.http.router - typedConfig: - '@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router - rds: - configSource: - apiConfigSource: - apiType: DELTA_GRPC - grpcServices: - - envoyGrpc: - clusterName: xds_cluster - setNodeOnFirstMessageOnly: true - transportApiVersion: V3 - resourceApiVersion: V3 - routeConfigName: default-eg-http - statPrefix: http - upgradeConfigs: - - upgradeType: websocket - useRemoteAddress: true + '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager + accessLog: + - name: envoy.access_loggers.file + typedConfig: + '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog + path: /dev/stdout + httpFilters: + - name: envoy.filters.http.router + typedConfig: + '@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router + rds: + configSource: + apiConfigSource: + apiType: DELTA_GRPC + grpcServices: + - envoyGrpc: + clusterName: xds_cluster + setNodeOnFirstMessageOnly: true + transportApiVersion: V3 + resourceApiVersion: V3 + routeConfigName: default-eg-http + statPrefix: http + upgradeConfigs: + - upgradeType: websocket + useRemoteAddress: true + name: default-eg-http + versionInfo: 42c71fb50c315ee3a32b327da69f8cc0baf420bc84b747e82d9c38e1b0c33eb2 name: default-eg-http - versionInfo: 42c71fb50c315ee3a32b327da69f8cc0baf420bc84b747e82d9c38e1b0c33eb2 - name: default-eg-http -versionInfo: "2" + versionInfo: "2" diff --git a/internal/cmd/egctl/testdata/config/out/out.route.json b/internal/cmd/egctl/testdata/config/out/out.route.json index 27c7a32c2cb..a80608d94a5 100644 --- a/internal/cmd/egctl/testdata/config/out/out.route.json +++ b/internal/cmd/egctl/testdata/config/out/out.route.json @@ -1,29 +1,33 @@ { - "@type": "type.googleapis.com/envoy.admin.v3.RoutesConfigDump", - "dynamicRouteConfigs": [{ - "versionInfo": "cb1e51997a9c3aa6f4d920f39fd5bdbd966e9382b7b6bdf42efca8c22c6c3442", - "routeConfig": { - "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", - "name": "default-eg-http", - "virtualHosts": [{ - "name": "default-eg-http", - "domains": ["*"], - "routes": [{ - "match": { - "prefix": "/", - "headers": [{ - "name": ":authority", - "stringMatch": { - "exact": "www.example.com" + "default": { + "eg": { + "@type": "type.googleapis.com/envoy.admin.v3.RoutesConfigDump", + "dynamicRouteConfigs": [{ + "versionInfo": "cb1e51997a9c3aa6f4d920f39fd5bdbd966e9382b7b6bdf42efca8c22c6c3442", + "routeConfig": { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "default-eg-http", + "virtualHosts": [{ + "name": "default-eg-http", + "domains": ["*"], + "routes": [{ + "match": { + "prefix": "/", + "headers": [{ + "name": ":authority", + "stringMatch": { + "exact": "www.example.com" + } + }] + }, + "route": { + "cluster": "default-backend-rule-0-match-0-www.example.com" } }] - }, - "route": { - "cluster": "default-backend-rule-0-match-0-www.example.com" - } - }] + }] + }, + "lastUpdated": "2023-02-23T09:05:38.448Z" }] - }, - "lastUpdated": "2023-02-23T09:05:38.448Z" - }] -} + } + } +} \ No newline at end of file diff --git a/internal/cmd/egctl/testdata/config/out/out.route.yaml b/internal/cmd/egctl/testdata/config/out/out.route.yaml index 873197e0beb..cf0e5b1bb49 100644 --- a/internal/cmd/egctl/testdata/config/out/out.route.yaml +++ b/internal/cmd/egctl/testdata/config/out/out.route.yaml @@ -1,20 +1,22 @@ -'@type': type.googleapis.com/envoy.admin.v3.RoutesConfigDump -dynamicRouteConfigs: -- lastUpdated: "2023-02-23T09:05:38.448Z" - routeConfig: - '@type': type.googleapis.com/envoy.config.route.v3.RouteConfiguration - name: default-eg-http - virtualHosts: - - domains: - - '*' - name: default-eg-http - routes: - - match: - headers: - - name: :authority - stringMatch: - exact: www.example.com - prefix: / - route: - cluster: default-backend-rule-0-match-0-www.example.com - versionInfo: cb1e51997a9c3aa6f4d920f39fd5bdbd966e9382b7b6bdf42efca8c22c6c3442 +default: + eg: + '@type': type.googleapis.com/envoy.admin.v3.RoutesConfigDump + dynamicRouteConfigs: + - lastUpdated: "2023-02-23T09:05:38.448Z" + routeConfig: + '@type': type.googleapis.com/envoy.config.route.v3.RouteConfiguration + name: default-eg-http + virtualHosts: + - domains: + - '*' + name: default-eg-http + routes: + - match: + headers: + - name: :authority + stringMatch: + exact: www.example.com + prefix: / + route: + cluster: default-backend-rule-0-match-0-www.example.com + versionInfo: cb1e51997a9c3aa6f4d920f39fd5bdbd966e9382b7b6bdf42efca8c22c6c3442 diff --git a/internal/cmd/egctl/utils.go b/internal/cmd/egctl/utils.go index 81c7d1c1f43..f1029247ae3 100644 --- a/internal/cmd/egctl/utils.go +++ b/internal/cmd/egctl/utils.go @@ -9,7 +9,7 @@ import ( "fmt" adminv3 "github.com/envoyproxy/go-control-plane/envoy/admin/v3" - "google.golang.org/protobuf/types/known/anypb" + "google.golang.org/protobuf/reflect/protoreflect" ) type envoyConfigType string @@ -23,7 +23,7 @@ var ( AllEnvoyConfigType envoyConfigType = "all" ) -func findXDSResourceFromConfigDump(resourceType envoyConfigType, globalConfigs *adminv3.ConfigDump) (*anypb.Any, error) { +func findXDSResourceFromConfigDump(resourceType envoyConfigType, globalConfigs *adminv3.ConfigDump) (protoreflect.ProtoMessage, error) { switch resourceType { case BootstrapEnvoyConfigType: for _, config := range globalConfigs.Configs { @@ -56,6 +56,8 @@ func findXDSResourceFromConfigDump(resourceType envoyConfigType, globalConfigs * return config, nil } } + case AllEnvoyConfigType: + return globalConfigs, nil default: return nil, fmt.Errorf("unknown resourceType %s", resourceType) } diff --git a/internal/infrastructure/kubernetes/infra_client.go b/internal/infrastructure/kubernetes/infra_client.go index a94757549e7..76425f1ce88 100644 --- a/internal/infrastructure/kubernetes/infra_client.go +++ b/internal/infrastructure/kubernetes/infra_client.go @@ -22,7 +22,7 @@ func New(cli client.Client) *InfraClient { } } -func (cli *InfraClient) Create(ctx context.Context, key client.ObjectKey, current client.Object, specific client.Object, updateChecker func() bool) error { +func (cli *InfraClient) CreateOrUpdate(ctx context.Context, key client.ObjectKey, current client.Object, specific client.Object, updateChecker func() bool) error { if err := cli.Client.Get(ctx, key, current); err != nil { if kerrors.IsNotFound(err) { // Create if it does not exist. diff --git a/internal/infrastructure/kubernetes/infra_resource.go b/internal/infrastructure/kubernetes/infra_resource.go index 798d5650bd6..e9f95dce38b 100644 --- a/internal/infrastructure/kubernetes/infra_resource.go +++ b/internal/infrastructure/kubernetes/infra_resource.go @@ -13,6 +13,8 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" + + "github.com/envoyproxy/gateway/internal/infrastructure/kubernetes/resource" ) // createOrUpdateServiceAccount creates a ServiceAccount in the kube api server based on the @@ -29,7 +31,7 @@ func (i *Infra) createOrUpdateServiceAccount(ctx context.Context, r ResourceRend Name: sa.Name, } - return i.Client.Create(ctx, key, current, sa, func() bool { + return i.Client.CreateOrUpdate(ctx, key, current, sa, func() bool { return true }) } @@ -48,7 +50,7 @@ func (i *Infra) createOrUpdateConfigMap(ctx context.Context, r ResourceRender) e Name: cm.Name, } - return i.Client.Create(ctx, key, current, cm, func() bool { + return i.Client.CreateOrUpdate(ctx, key, current, cm, func() bool { return !reflect.DeepEqual(cm.Data, current.Data) }) } @@ -67,7 +69,7 @@ func (i *Infra) createOrUpdateDeployment(ctx context.Context, r ResourceRender) Name: deployment.Name, } - return i.Client.Create(ctx, key, current, deployment, func() bool { + return i.Client.CreateOrUpdate(ctx, key, current, deployment, func() bool { return !reflect.DeepEqual(deployment.Spec, current.Spec) }) } @@ -86,8 +88,8 @@ func (i *Infra) createOrUpdateService(ctx context.Context, r ResourceRender) err Name: svc.Name, } - return i.Client.Create(ctx, key, current, svc, func() bool { - return !reflect.DeepEqual(svc.Spec, current.Spec) + return i.Client.CreateOrUpdate(ctx, key, current, svc, func() bool { + return !resource.CompareSvc(svc, current) }) } diff --git a/internal/infrastructure/kubernetes/resource/resource.go b/internal/infrastructure/kubernetes/resource/resource.go index 8f71150fc65..1143d167a94 100644 --- a/internal/infrastructure/kubernetes/resource/resource.go +++ b/internal/infrastructure/kubernetes/resource/resource.go @@ -6,6 +6,8 @@ package resource import ( + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -31,3 +33,10 @@ func ExpectedServiceSpec(serviceType *egcfgv1a1.ServiceType) corev1.ServiceSpec } return serviceSpec } + +// CompareSvc compare entire Svc.Spec but ignored the ports[*].nodePort, ClusterIP and ClusterIPs in case user have modified for some scene. +func CompareSvc(currentSvc, originalSvc *corev1.Service) bool { + return cmp.Equal(currentSvc.Spec, originalSvc.Spec, + cmpopts.IgnoreFields(corev1.ServicePort{}, "NodePort"), + cmpopts.IgnoreFields(corev1.ServiceSpec{}, "ClusterIP", "ClusterIPs")) +} diff --git a/internal/infrastructure/kubernetes/resource/resource_test.go b/internal/infrastructure/kubernetes/resource/resource_test.go index b800bd16b33..b211b6392a0 100644 --- a/internal/infrastructure/kubernetes/resource/resource_test.go +++ b/internal/infrastructure/kubernetes/resource/resource_test.go @@ -8,6 +8,9 @@ package resource import ( "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" @@ -91,3 +94,147 @@ func TestGetSelector(t *testing.T) { }) } } + +func TestCompareSvc(t *testing.T) { + cases := []struct { + ExpectRet bool + NewSvc *corev1.Service + OriginalSvc *corev1.Service + }{ + { + // Only Spec.Ports[*].NodePort and ClusterType is different + ExpectRet: true, + NewSvc: &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-service", + Namespace: "default", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + { + Name: "http", + Port: 80, + NodePort: 30000, + TargetPort: intstr.FromInt(8080), + }, + }, + Selector: map[string]string{ + "app": "my-app", + }, + Type: "NodePort", + }, + }, + OriginalSvc: &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-service", + Namespace: "default", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + { + Name: "http", + Port: 80, + NodePort: 30001, + TargetPort: intstr.FromInt(8080), + }, + }, + Selector: map[string]string{ + "app": "my-app", + }, + Type: "NodePort", + }, + }, + }, { + // Only Spec.Ports[*].Port is different + ExpectRet: false, + NewSvc: &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-service", + Namespace: "default", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + { + Name: "http", + Port: 80, + TargetPort: intstr.FromInt(8080), + }, + }, + Selector: map[string]string{ + "app": "my-app", + }, + Type: "ClusterIP", + }, + }, + OriginalSvc: &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-service", + Namespace: "default", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + { + Name: "http", + Port: 90, + TargetPort: intstr.FromInt(8080), + }, + }, + Selector: map[string]string{ + "app": "my-app", + }, + Type: "ClusterIP", + }, + }, + }, + { + // only Spec.ClusterIP is different, NewSvc's ClusterIP is nil build by ResourceRender + ExpectRet: true, + NewSvc: &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-service", + Namespace: "default", + }, + Spec: corev1.ServiceSpec{ + ClusterIP: "", + Ports: []corev1.ServicePort{ + { + Name: "http", + Port: 80, + TargetPort: intstr.FromInt(8080), + }, + }, + Selector: map[string]string{ + "app": "my-app", + }, + Type: "ClusterIP", + }, + }, + OriginalSvc: &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-service", + Namespace: "default", + }, + Spec: corev1.ServiceSpec{ + ClusterIP: "192.168.1.1", + Ports: []corev1.ServicePort{ + { + Name: "http", + Port: 80, + TargetPort: intstr.FromInt(8080), + }, + }, + Selector: map[string]string{ + "app": "my-app", + }, + Type: "ClusterIP", + }, + }, + }, + } + + for _, tc := range cases { + t.Run("", func(t *testing.T) { + assert.Equal(t, tc.ExpectRet, CompareSvc(tc.NewSvc, tc.OriginalSvc), "expectedCompareSvcReturn(%v)", tc.ExpectRet) + }) + } +} diff --git a/internal/kubernetes/port-forwarder.go b/internal/kubernetes/port-forwarder.go index 2f72fc4b928..b38fe7b93a8 100644 --- a/internal/kubernetes/port-forwarder.go +++ b/internal/kubernetes/port-forwarder.go @@ -53,7 +53,7 @@ func NewLocalPortForwarder(client CLIClient, namespacedName types.NamespacedName // get a random port p, err := netutil.LocalAvailablePort() if err != nil { - return nil, errors.Wrapf(err, "failed to get a local available port") + return nil, errors.Wrapf(err, "failed to get a local available port for Pod %q", namespacedName) } f.localPort = p } diff --git a/internal/provider/kubernetes/controller.go b/internal/provider/kubernetes/controller.go index 7f12c768921..b285f2d3008 100644 --- a/internal/provider/kubernetes/controller.go +++ b/internal/provider/kubernetes/controller.go @@ -61,6 +61,7 @@ type gatewayAPIReconciler struct { log logr.Logger statusUpdater status.Updater classController gwapiv1b1.GatewayController + store *kubernetesProviderStore namespace string resources *message.ProviderResources @@ -88,6 +89,7 @@ func newGatewayAPIController(mgr manager.Manager, cfg *config.Server, su status. statusUpdater: su, resources: resources, extGVKs: extGVKs, + store: newProviderStore(), } c, err := controller.New("gatewayapi", mgr, controller.Options{Reconciler: r}) @@ -327,7 +329,7 @@ func (r *gatewayAPIReconciler) statusUpdateForGateway(ctx context.Context, gtw * // update accepted condition status.UpdateGatewayStatusAcceptedCondition(gtw, true) // update address field and programmed condition - status.UpdateGatewayStatusProgrammedCondition(gtw, svc, deploy) + status.UpdateGatewayStatusProgrammedCondition(gtw, svc, deploy, r.store.listNodeAddresses()...) key := utils.NamespacedName(gtw) @@ -1152,6 +1154,17 @@ func (r *gatewayAPIReconciler) watchResources(ctx context.Context, mgr manager.M return err } + // Watch Node CRUDs to update Gateway Address exposed by Service of type NodePort. + // Node creation/deletion and ExternalIP updates would require update in the Gateway + // resource address. + if err := c.Watch( + source.Kind(mgr.GetCache(), &corev1.Node{}), + &handler.EnqueueRequestForObject{}, + predicate.NewPredicateFuncs(r.handleNode), + ); err != nil { + return err + } + // Watch Secret CRUDs and process affected Gateways. if err := c.Watch( source.Kind(mgr.GetCache(), &corev1.Secret{}), diff --git a/internal/provider/kubernetes/predicates.go b/internal/provider/kubernetes/predicates.go index 25ce92d4691..2c462bba8c1 100644 --- a/internal/provider/kubernetes/predicates.go +++ b/internal/provider/kubernetes/predicates.go @@ -288,3 +288,25 @@ func (r gatewayAPIReconciler) findOwningGateway(ctx context.Context, labels map[ return gtw } + +func (r *gatewayAPIReconciler) handleNode(obj client.Object) bool { + ctx := context.Background() + node, ok := obj.(*corev1.Node) + if !ok { + r.log.Info("unexpected object type, bypassing reconciliation", "object", obj) + return false + } + + key := types.NamespacedName{Name: node.Name} + if err := r.client.Get(ctx, key, node); err != nil { + if kerrors.IsNotFound(err) { + r.store.removeNode(node) + return true + } + r.log.Error(err, "unable to find node", "name", node.Name) + return false + } + + r.store.addNode(node) + return true +} diff --git a/internal/provider/kubernetes/rbac.go b/internal/provider/kubernetes/rbac.go index dedc26e8e73..9e8905cb979 100644 --- a/internal/provider/kubernetes/rbac.go +++ b/internal/provider/kubernetes/rbac.go @@ -14,5 +14,5 @@ package kubernetes // +kubebuilder:rbac:groups="gateway.envoyproxy.io",resources=authenticationfilters;ratelimitfilters,verbs=get;list;watch;update // RBAC for watched resources of Gateway API controllers. -// +kubebuilder:rbac:groups="",resources=secrets;services;namespaces,verbs=get;list;watch +// +kubebuilder:rbac:groups="",resources=secrets;services;namespaces;nodes,verbs=get;list;watch // +kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch diff --git a/internal/provider/kubernetes/store.go b/internal/provider/kubernetes/store.go new file mode 100644 index 00000000000..fd60ff1c79e --- /dev/null +++ b/internal/provider/kubernetes/store.go @@ -0,0 +1,67 @@ +// Copyright Envoy Gateway Authors +// SPDX-License-Identifier: Apache-2.0 +// The full text of the Apache license is available in the LICENSE file at +// the root of the repo. + +package kubernetes + +import ( + corev1 "k8s.io/api/core/v1" +) + +type nodeDetails struct { + name string + address string +} + +// kubernetesProviderStore holds cached information for the kubernetes provider. +type kubernetesProviderStore struct { + // nodes holds information required for updating Gateway status with the Node + // addresses, in case the Gateway is exposed on every Node of the cluster, using + // Service of type NodePort. + nodes map[string]nodeDetails +} + +func newProviderStore() *kubernetesProviderStore { + return &kubernetesProviderStore{ + nodes: make(map[string]nodeDetails), + } +} + +func (p *kubernetesProviderStore) addNode(n *corev1.Node) { + details := nodeDetails{name: n.Name} + + var internalIP, externalIP string + for _, addr := range n.Status.Addresses { + if addr.Type == corev1.NodeExternalIP { + externalIP = addr.Address + } + if addr.Type == corev1.NodeInternalIP { + internalIP = addr.Address + } + } + + // In certain scenarios (like in local KinD clusters), the Node + // externalIP is not provided, in that case we default back + // to the internalIP of the Node. + if externalIP != "" { + details.address = externalIP + } else if internalIP != "" { + details.address = internalIP + } + p.nodes[n.Name] = details +} + +func (p *kubernetesProviderStore) removeNode(n *corev1.Node) { + delete(p.nodes, n.Name) +} + +func (p *kubernetesProviderStore) listNodeAddresses() []string { + addrs := []string{} + for _, n := range p.nodes { + if n.address != "" { + addrs = append(addrs, n.address) + } + } + return addrs +} diff --git a/internal/provider/kubernetes/store_test.go b/internal/provider/kubernetes/store_test.go new file mode 100644 index 00000000000..ef461bf714b --- /dev/null +++ b/internal/provider/kubernetes/store_test.go @@ -0,0 +1,79 @@ +// Copyright Envoy Gateway Authors +// SPDX-License-Identifier: Apache-2.0 +// The full text of the Apache license is available in the LICENSE file at +// the root of the repo. + +package kubernetes + +import ( + "testing" + + "github.com/stretchr/testify/assert" + corev1 "k8s.io/api/core/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +func TestNodeDetailsAddressStore(t *testing.T) { + store := newProviderStore() + testCases := []struct { + name string + nodeObject *corev1.Node + expectedAddresses []string + }{ + { + name: "No node addresses", + nodeObject: &corev1.Node{ + ObjectMeta: v1.ObjectMeta{Name: "node1"}, + Status: corev1.NodeStatus{Addresses: []corev1.NodeAddress{{}}}, + }, + expectedAddresses: []string{}, + }, + { + name: "only external address", + nodeObject: &corev1.Node{ + ObjectMeta: v1.ObjectMeta{Name: "node1"}, + Status: corev1.NodeStatus{Addresses: []corev1.NodeAddress{{ + Address: "1.1.1.1", + Type: corev1.NodeExternalIP, + }}}, + }, + expectedAddresses: []string{"1.1.1.1"}, + }, + { + name: "only internal address", + nodeObject: &corev1.Node{ + ObjectMeta: v1.ObjectMeta{Name: "node1"}, + Status: corev1.NodeStatus{Addresses: []corev1.NodeAddress{{ + Address: "1.1.1.1", + Type: corev1.NodeInternalIP, + }}}, + }, + expectedAddresses: []string{"1.1.1.1"}, + }, + { + name: "prefer external address", + nodeObject: &corev1.Node{ + ObjectMeta: v1.ObjectMeta{Name: "node1"}, + Status: corev1.NodeStatus{Addresses: []corev1.NodeAddress{ + { + Address: "1.1.1.1", + Type: corev1.NodeExternalIP, + }, + { + Address: "2.2.2.2", + Type: corev1.NodeInternalIP, + }, + }}, + }, + expectedAddresses: []string{"1.1.1.1"}, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + store.addNode(tc.nodeObject) + assert.Equal(t, tc.expectedAddresses, store.listNodeAddresses()) + store.removeNode(tc.nodeObject) + }) + } +} diff --git a/internal/status/gateway.go b/internal/status/gateway.go index 6c607aa3305..fb83e1aaee9 100644 --- a/internal/status/gateway.go +++ b/internal/status/gateway.go @@ -22,7 +22,7 @@ func UpdateGatewayStatusAcceptedCondition(gw *gwapiv1b1.Gateway, accepted bool) // UpdateGatewayStatusProgrammedCondition updates the status addresses for the provided gateway // based on the status IP/Hostname of svc and updates the Programmed condition based on the // service and deployment state. -func UpdateGatewayStatusProgrammedCondition(gw *gwapiv1b1.Gateway, svc *corev1.Service, deployment *appsv1.Deployment) { +func UpdateGatewayStatusProgrammedCondition(gw *gwapiv1b1.Gateway, svc *corev1.Service, deployment *appsv1.Deployment, nodeAddresses ...string) { var addresses, hostnames []string // Update the status addresses field. if svc != nil { @@ -50,6 +50,10 @@ func UpdateGatewayStatusProgrammedCondition(gw *gwapiv1b1.Gateway, svc *corev1.S } } + if svc.Spec.Type == corev1.ServiceTypeNodePort { + addresses = nodeAddresses + } + addresses = append(addresses, svc.Spec.ExternalIPs...) var gwAddresses []gwapiv1b1.GatewayAddress