Skip to content
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 81 additions & 28 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
/api/ @envoyproxy/api-shepherds
# access loggers
/*/extensions/access_loggers/common @auni53 @zuercher
/*/extensions/access_loggers/filters/cel @dio @douglas-reid
/*/extensions/access_loggers/open_telemetry @itamarkam @yanavlasov
/*/extensions/access_loggers/stream @mattklein123 @davinci26
# compression extensions
/*/extensions/compression/common/compressor @rojkov @junr03
/*/extensions/compression/gzip/compressor @rojkov @junr03
# alternate protocols cache extensions
/*/extensions/filters/http/alternate_protocols_cache @RyanTheOptimist @alyssawilk
# csrf extension
Expand All @@ -28,9 +24,6 @@ extensions/filters/common/original_src @snowp @klarose
/*/extensions/filters/network/thrift_proxy @zuercher @rgs1
# cdn_loop extension
/*/extensions/filters/http/cdn_loop @justin-mp @penguingao @alyssawilk
# compressor used by http compression filters
/*/extensions/filters/http/common/compressor @gsagula @rojkov @dio
/*/extensions/filters/http/compressor @rojkov @dio
# external processing filter
/*/extensions/filters/http/ext_proc @gbrail @snowp @pradeepcrao @chaoqin-li1123
/*/extensions/filters/common/mutation_rules @gbrail @snowp @pradeepcrao @chaoqin-li1123
Expand Down Expand Up @@ -63,21 +56,26 @@ extensions/filters/common/original_src @snowp @klarose
# tracers.xray extension
/*/extensions/tracers/xray @abaptiste @suniltheta @mattklein123
# tracers.skywalking extension
/*/extensions/tracers/skywalking @wbpcode @dio @lizan @Shikugawa
/*/extensions/tracers/skywalking @wbpcode @lizan @Shikugawa
# quic extension
/*/extensions/quic/ @alyssawilk @danzh2010 @mattklein123 @mpwarres @wu-bin @ggreenway
# zookeeper_proxy extension
/*/extensions/filters/network/zookeeper_proxy @rgs1 @snowp
# redis cluster extension
/*/extensions/clusters/redis @msukalski @henryyyang @mattklein123 @weisisea
/*/extensions/common/redis @msukalski @henryyyang @mattklein123 @weisisea
/*/extensions/health_checkers/redis @weisisea @mattklein123
/*/extensions/filters/network/redis_proxy @weisisea @mattklein123
/*/extensions/filters/network/common/redis @weisisea @mattklein123
# dynamic forward proxy
/*/extensions/clusters/dynamic_forward_proxy @mattklein123 @alyssawilk
/*/extensions/common/dynamic_forward_proxy @mattklein123 @alyssawilk
/*/extensions/filters/http/dynamic_forward_proxy @mattklein123 @alyssawilk
/*/extensions/filters/http/composite @snowp @mattklein123
# omit_canary_hosts retry predicate
/*/extensions/retry/host/omit_canary_hosts @sriduth @snowp
# previous hosts
/*/extensions/retry/host/previous_hosts @snowp @alyssawilk
# HTTP caching extension
/*/extensions/filters/http/cache @toddmgreer @jmarantz @penguingao @mpwarres @capoferro
# aws_iam grpc credentials
Expand Down Expand Up @@ -107,7 +105,6 @@ extensions/filters/common/original_src @snowp @klarose
/*/extensions/common/matcher @mattklein123 @yangminzhu
/*/extensions/common/proxy_protocol @alyssawilk @wez470
/*/extensions/filters/http/grpc_http1_bridge @snowp @jose
/*/extensions/filters/http/gzip @gsagula @dio
/*/extensions/filters/http/fault @rshriram @alyssawilk
/*/extensions/filters/common/fault @rshriram @alyssawilk
/*/extensions/filters/http/grpc_json_transcoder @qiwzhang @lizan
Expand Down Expand Up @@ -142,14 +139,11 @@ extensions/filters/common/original_src @snowp @klarose
# support for on-demand VHDS requests
/*/extensions/filters/http/on_demand @dmitri-d @htuch @lambdai
/*/extensions/filters/network/connection_limit @mattklein123 @alyssawilk @rojkov @delong-coder
/*/extensions/filters/network/local_ratelimit @mattklein123 @junr03
/*/extensions/filters/http/aws_request_signing @rgs1 @derekargueta @mattklein123 @marcomagdy @tonya11en
/*/extensions/filters/http/aws_lambda @mattklein123 @marcomagdy @lavignes @tonya11en
/*/extensions/filters/http/buffer @alyssawilk @mattklein123
/*/extensions/transport_sockets/raw_buffer @alyssawilk @mattklein123
# Compression
/*/extensions/compression/common @junr03 @rojkov
/*/extensions/compression/gzip @junr03 @rojkov
/*/extensions/compression/brotli @junr03 @rojkov
/*/extensions/filters/http/decompressor @rojkov @dio
# Watchdog Extensions
/*/extensions/watchdog/profile_action @kbaichoo @antoniovicente
# Core upstream code
Expand All @@ -158,12 +152,10 @@ extensions/upstreams/tcp @alyssawilk @ggreenway @mattklein123
# OAuth2
extensions/filters/http/oauth2 @rgs1 @derekargueta @snowp
# HTTP Local Rate Limit
/*/extensions/filters/http/local_ratelimit @rgs1 @mattklein123
/*/extensions/filters/common/local_ratelimit @mattklein123 @rgs1
/*/extensions/filters/http/local_ratelimit @rgs1 @mattklein123 @wbpcode
/*/extensions/filters/common/local_ratelimit @mattklein123 @rgs1 @wbpcode
# HTTP Kill Request
/*/extensions/filters/http/kill_request @qqustc @htuch
# HTTP Stateful Session
/*/extensions/filters/http/stateful_session @wbpcode @dio
# Rate limit expression descriptor
/*/extensions/rate_limit_descriptors/expr @kyessenov @lizan
# hash input matcher
Expand All @@ -180,10 +172,6 @@ extensions/filters/http/oauth2 @rgs1 @derekargueta @snowp
/*/extensions/filters/common/ratelimit @esmet @mattklein123
/*/extensions/filters/http/ratelimit @esmet @mattklein123
/*/extensions/filters/network/ratelimit @esmet @mattklein123
# External Authorization
/*/extensions/filters/common/ext_authz @esmet @gsagula @dio
/*/extensions/filters/http/ext_authz @esmet @gsagula @dio
/*/extensions/filters/network/ext_authz @esmet @gsagula @dio
# HTTP Bandwidth Limit
/*/extensions/filters/http/bandwidth_limit @nitgoy @mattklein123 @yanavlasov @tonya11en
# Original IP detection
Expand All @@ -193,18 +181,83 @@ extensions/filters/http/oauth2 @rgs1 @derekargueta @snowp
/*/extensions/filters/http/set_metadata @aguinet @snowp
# Formatters
/*/extensions/formatter/metadata @cpakulski @lizan
/*/extensions/formatter/req_without_query @dio @tsaarni
# IP address input matcher
/*/extensions/matching/input_matchers/ip @aguinet @snowp
# Key Value store
/*/extensions/key_value @alyssawilk @ryantheoptimist
# Stateful session
/*/extensions/http/stateful_session/cookie @wbpcode @dio
# DNS Resolver
/*/extensions/network/dns_resolver/cares @junr03 @yanavlasov
/*/extensions/network/dns_resolver/apple @junr03 @yanavlasov
# Config Validators
/*/extensions/config/validators/minimum_clusters @adisuissa @htuch
# DNS resolution
/*/extensions/network/dns_resolver/cares @yanavlasov @mattklein123
/*/extensions/network/dns_resolver/apple @yanavlasov @mattklein123
# compression code
/*/extensions/filters/http/decompressor @rojkov @kbaichoo
/*/extensions/filters/http/gzip @gsagula @kbaichoo
/*/extensions/filters/http/common/compressor @gsagula @rojkov @kbaichoo
/*/extensions/filters/http/compressor @rojkov @kbaichoo
/*/extensions/compression/brotli @rojkov @kbaichoo
/*/extensions/compression/common @kbaichoo @rojkov
/*/extensions/compression/gzip/decompressor @rojkov @kbaichoo
/*/extensions/compression/gzip/compressor @rojkov @kbaichoo
/*/extensions/compression/gzip/common @rojkov @kbaichoo
# cel
/*/extensions/access_loggers/filters/cel @kyessenov @douglas-reid @adisuissa
# health cehck
/*/extensions/filters/http/health_check @mattklein123 @adisuissa
# lua
/*/extensions/filters/http/lua @mattklein123 @wbpcode
/*/extensions/filters/common/lua @mattklein123 @wbpcode
# rbac
/*/extensions/filters/network/rbac @yangminzhu @yanavlasov
/*/extensions/filters/http/rbac @yangminzhu @yanavlasov
/*/extensions/filters/common/rbac @yangminzhu @yanavlasov
# tap
/*/extensions/filters/http/tap @mattklein123 @daixiang0
/*/extensions/common/tap @mattklein123 @daixiang0
/*/extensions/transport_sockets/tap @mattklein123 @daixiang0
# local rate limit
/*/extensions/filters/network/local_ratelimit @mattklein123 @wbpcode

# "Underowned" extensions (no backup reviewers, please volunter!)
# Stateful session
/*/extensions/http/stateful_session/cookie @wbpcode @UNOWNED
Comment thread
alyssawilk marked this conversation as resolved.
Outdated
/*/extensions/filters/http/stateful_session @wbpcode @UNOWNED
Comment thread
alyssawilk marked this conversation as resolved.
Outdated
# stats
/*/extensions/stat_sinks/statsd @mattklein123 @UNOWNED
/*/extensions/stat_sinks/common @mattklein123 @UNOWNED
/*/extensions/stat_sinks/common/statsd @mattklein123 @UNOWNED
Comment thread
alyssawilk marked this conversation as resolved.
Outdated
# proxy protocol
/*/extensions/filters/listener/proxy_protocol @ggreenway @UNOWNED
Comment thread
alyssawilk marked this conversation as resolved.
Outdated
# cors
/*/extensions/filters/http/cors @wbpcode @UNOWNED
# access loggers
/*/extensions/access_loggers/grpc @wbpcode @UNOWNED
Comment thread
alyssawilk marked this conversation as resolved.
Outdated
/*/extensions/access_loggers/file @wbpcode @UNOWNED
Comment thread
alyssawilk marked this conversation as resolved.
Outdated

# "Unowned" extensions (currently without 1 maintainer or 2 owners)
/*/extensions/formatter/req_without_query @UNOWNED @tsaarni
Comment thread
alyssawilk marked this conversation as resolved.
Outdated
# ext_authz
/*/extensions/filters/common/ext_authz @esmet @gsagula @pradeepcrao @UNOWNED
/*/extensions/filters/http/ext_authz @esmet @gsagula @pradeepcrao @UNOWNED
/*/extensions/filters/network/ext_authz @esmet @gsagula @pradeepcrao @UNOWNED
/*/extensions/filters/http/ip_tagging @UNOWNED @UNOWNED
Comment thread
alyssawilk marked this conversation as resolved.
Outdated
/*/extensions/filters/listener/original_dst @UNOWNED @UNOWNED

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is critical for istio, so one of me, @lambdai, @lizan should be the owners.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could do all 3 if @lizan Oks?

/*/extensions/tracers/zipkin @UNOWNED @UNOWNED
/*/extensions/tracers/dynamic_ot @UNOWNED @UNOWNED
/*/extensions/tracers/opencensus @UNOWNED @UNOWNED
/*/extensions/tracers/common @UNOWNED @UNOWNED
/*/extensions/tracers/common/ot @UNOWNED @UNOWNED

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracing in general needs better ownership. Perhaps @lizan and @Shikugawa ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracing system is ok for me. I had some relatively large PRs before about tracing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also can help with it.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can try to help with the tracers. If we have the option can I get zipkin?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can also help on tracers.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @basvanbeek! Can you open a PR to add yourself?

/*/extensions/filters/network/mongo_proxy @UNOWNED @UNOWNED

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think move to contrib at this point.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think move this to contrib. Lyft doesn't use this anymore and I don't know if anyone else does.

@mythra-stripe mythra-stripe Mar 29, 2022

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We still use this at Stripe, I'd be happy to help to take a first pass as I help maintain our internal forks part of this code. (Ideally though my main account gets assigned: @Mythra -- which is already in the org, and such -- rather than this 😄 )

I'll also ask others on our side to step up.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, I can help with mongo_proxy.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @Mythra if Stripe could help own this (and also upstream fork patches!) that would be fantastic. We can keep this in core if people are using it. cc @alyssawilk

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Just to make sure the loop is closed) Yeah we'd be happy too.


# Intentionally exempt (treated as core code)
/*/extensions/filters/common @UNOWNED @UNOWNED
/*/extensions/filters/http/common @UNOWNED @UNOWNED
/*/extensions/filters/network/common @UNOWNED @UNOWNED
Comment thread
alyssawilk marked this conversation as resolved.
Outdated

# To be moved to Contrib
Comment thread
alyssawilk marked this conversation as resolved.
/*/extensions/filters/http/dynamo @UNOWNED @UNOWNED
/*/extensions/tracers/lightstep @UNOWNED @UNOWNED
/*/extensions/filters/network/client_ssl_auth @UNOWNED @UNOWNED

# Contrib
/contrib/exe/ @mattklein123 @lizan
Expand Down
83 changes: 14 additions & 69 deletions tools/code_format/check_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,53 +204,6 @@
".Times(1).WillRepeatedly": ".WillOnce",
}

UNOWNED_EXTENSIONS = {
"extensions/filters/http/buffer",
"extensions/filters/http/rbac",
"extensions/filters/http/ip_tagging",
"extensions/filters/http/tap",
"extensions/filters/http/health_check",
"extensions/filters/http/cors",
"extensions/filters/http/dynamo",
"extensions/filters/http/lua",
"extensions/filters/http/common",
"extensions/filters/common",
"extensions/filters/common/rbac",
"extensions/filters/common/lua",
"extensions/filters/listener/original_dst",
"extensions/filters/listener/proxy_protocol",
"extensions/stat_sinks/statsd",
"extensions/stat_sinks/common",
"extensions/stat_sinks/common/statsd",
"extensions/health_checkers/redis",
"extensions/access_loggers/grpc",
"extensions/access_loggers/file",
"extensions/common/tap",
"extensions/transport_sockets/raw_buffer",
"extensions/transport_sockets/tap",
"extensions/tracers/zipkin",
"extensions/tracers/dynamic_ot",
"extensions/tracers/opencensus",
"extensions/tracers/lightstep",
"extensions/tracers/common",
"extensions/tracers/common/ot",
"extensions/retry/host/previous_hosts",
"extensions/filters/network/client_ssl_auth",
"extensions/filters/network/rbac",
"extensions/filters/network/tcp_proxy",
"extensions/filters/network/echo",
"extensions/filters/network/redis_proxy",
"extensions/filters/network/kafka",
"extensions/filters/network/kafka/broker",
"extensions/filters/network/kafka/mesh",
"extensions/filters/network/kafka/mesh/command_handlers",
"extensions/filters/network/kafka/protocol",
"extensions/filters/network/kafka/serialization",
"extensions/filters/network/mongo_proxy",
"extensions/filters/network/common",
"extensions/filters/network/common/redis",
}

UNSORTED_FLAGS = {
"envoy.reloadable_features.activate_timers_next_event_loop",
"envoy.reloadable_features.grpc_json_transcoder_adhere_to_buffer_limits",
Expand Down Expand Up @@ -1028,7 +981,7 @@ def check_owners(self, dir_name, owned_directories, error_messages):
for owned in owned_directories:
if owned.startswith(dir_name) or dir_name.startswith(owned):
found = True
if not found and dir_name not in UNOWNED_EXTENSIONS:
if not found:
error_messages.append(
"New directory %s appears to not have owners in CODEOWNERS" % dir_name)

Expand Down Expand Up @@ -1163,32 +1116,24 @@ def normalize_path(path):
if format_checker.check_error_messages(ct_error_messages):
sys.exit(1)

def get_owners():
with open('./OWNERS.md') as f:
EXTENSIONS_CODEOWNERS_REGEX = re.compile(r'.*github.com.(.*)\)\)')
maintainers = ["@UNOWNED"]
for line in f:
if "Senior extension maintainers" in line:
return maintainers
m = EXTENSIONS_CODEOWNERS_REGEX.search(line)
if m is not None:
maintainers.append("@" + m.group(1).lower())

# Returns the list of directories with owners listed in CODEOWNERS. May append errors to
# error_messages.
def owned_directories(error_messages):
owned = []
maintainers = [
'@mattklein123',
'@htuch',
'@alyssawilk',
'@zuercher',
'@lizan',
'@snowp',
'@yanavlasov',
'@junr03',
'@dio',
'@jmarantz',
'@antoniovicente',
'@ggreenway',
'@phlax',
'@wrowe',
'@rojkov',
'@RyanTheOptimist',
'@adisuissa',
'@KBaichoo',
]

try:
maintainers = get_owners()

with open('./CODEOWNERS') as f:
for line in f:
# If this line is of the form "extensions/... @owner1 @owner2" capture the directory
Expand Down