Skip to content

API Request: Add HttpFilter.instance_name #9358

@mandarjog

Description

@mandarjog

HttpFilter.name is used to instantiate a specific type of filter by http_connection_manager
In that sense HttpFilter.name is the className parameter.
In filters like WASM and lua, a filter with the same name is deployed multiple times.
This makes it difficult to identify a specific filter instance without resorting to peeking inside HttpFilter.typed_config.

Add

message HttpFilter {
  // The name of the filter to instantiate. The name must match a
  // :ref:`supported filter <config_http_filters>`.
  string name = 1 [(validate.rules).string = {min_bytes: 1}];

  string instance_name = 5;

  // ...
}

Using instance_name, the filter can be identified in a meaningful way.
In the following example, without instance_name=wasm.stats both filters have the same name envoy.filters.http.wasm.

filters:
- name: envoy.http_connection_manager
   typed_config:
    '@type': type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
    forward_client_cert_details: APPEND_FORWARD
    generate_request_id: true
    http_filters:
    - instance_name: wasm.stats
      name: envoy.filters.http.wasm
      config:
        config:
          root_id: stats_inbound
          vm_config:
            code:
              inline_string: envoy.wasm.stats
            runtime: envoy.wasm.runtime.null
            vm_id: stats_inbound
    - instance_name: wasm.metadata_exchange
      name: envoy.filters.http.wasm
      config:
        config:
          vm_config:
            code:
              inline_string: envoy.wasm.metadata_exchange
            runtime: envoy.wasm.runtime.null

Here

Metadata

Metadata

Assignees

No one assigned

    Labels

    api-review-requiredAPI review required by @envoyproxy/api-shepherdsapi/v3Major version release @ end of Q3 2019help wantedNeeds help!

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions