REPO_LAYOUT.md
This is a high level overview of how the repository is laid out to both aid in code investigation, as well as to clearly specify how extensions are added to the repository. The top level directories are:
common/ and server/
has become somewhat blurred. Use best judgment as to where to place something.Not every directory within test is described below, but a few highlights:
We maintain a very specific code and namespace layout for extensions. This aids in discovering code/extensions, and allows us specify extension owners in CODEOWNERS.
Envoy::Extensions::AccessLoggers namespace.Envoy::Extensions::Bootstrap namespace.Envoy::Extensions::Clusters namespace.Envoy::Extensions::Compression namespace.Envoy::Extensions::FatalActions namespace.Envoy::Extensions::HttpFilters namespace.Envoy::Extensions::ListenerFilters namespace.Envoy::Extensions::NetworkFilters namespace.Envoy::Extensions::Formatters namespace.Envoy::Extensions::GrpcCredentials namespace.Envoy::Extensions::HealthCheckers namespace.Envoy::Extensions::InternalRedirect namespace.Envoy::Quic namespace.Envoy::Extensions::ResourceMonitors namespace.Envoy::Extensions::Retry namespace.Envoy::Extensions::StatSinks namespace.Envoy::Extensions::Tracers namespace.Envoy::Extensions::TransportSockets namespace.Envoy::Extensions::Upstreams namespace.Envoy::Extensions::Watchdog namespace.Envoy::Extensions::RateLimitDescriptors
namespace.Envoy::Extensions::NetworkFilters::Echo.common/ directory as close to
the extensions as possible. E.g., filters/common/ for common
code that is used by both HTTP and network filters. Common code used only by two HTTP filters
would be found in filters/http/common/. Common code should be placed in a common namespace.
E.g., Envoy::Extensions::Filters::Common.This directory contains contrib extensions. See EXTENSION_POLICY.md for more information.
envoy-static target but also includes all contrib extensions, and is used to produce the
contrib image targets.