Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
f31e6e1
add response_trailer_prefix for bandwidth limit filter
zhiyong-gayang Sep 9, 2021
0a1f752
fix comment
zhiyong-gayang Sep 9, 2021
4ed93ad
add response trailers for bandwidth limit filter
zhiyong-gayang Sep 26, 2021
40730f8
fix format
zhiyong-gayang Sep 26, 2021
ddc3b33
fix comment
zhiyong-gayang Sep 9, 2021
8e8b6f1
protos: Cleanup unused imports (#18024)
phlax Sep 9, 2021
0ebd6e6
Fix a typo (#18045)
esmet Sep 9, 2021
9038b82
Update OWNERS.md (#18054)
wrowe Sep 9, 2021
fdee7c6
docs: api docs update (#17966)
alyssawilk Sep 10, 2021
a587452
Update base Alpine and Distroless container images. (#18062)
moderation Sep 10, 2021
212cbe6
Wrong past participle words fixed in comments (#18037)
Sep 10, 2021
ac396dd
decompressor: fixing a bug for requests with added trailers (#18055)
alyssawilk Sep 10, 2021
267b121
dns cache: log event with addresses on resolution (#18036)
junr03 Sep 10, 2021
f44c757
Kafka-mesh filter (#11936)
adamkotwasinski Sep 10, 2021
6465014
bazel: Make use of new incremental pip installer (#18026)
phlax Sep 10, 2021
97b0271
deps: Fix for kafka requirement (#18072)
phlax Sep 10, 2021
2c753c1
docker: Add distroless image as an artefact (#18068)
phlax Sep 10, 2021
96fab55
cve: Suppress false +ves (#18070)
phlax Sep 10, 2021
be6d058
tooling: Fix sync_assignable (#17997)
phlax Sep 10, 2021
cf19077
add empty() to PriorityConnPoolMap (#18057)
lambdai Sep 10, 2021
e34cd21
quic: attempting to fix non-linux QUIC builds (#18027)
alyssawilk Sep 10, 2021
fa5dcce
tests: rename addFilter() to prependFilter() (#18059)
Sep 11, 2021
cc5ef14
ext_authz: Use 403 as default for denied response (#18010)
dio Sep 13, 2021
bcb4869
Update QUICHE to e8ddc3873182355137862b4d6417add2b2b8a31d (#18060)
DavidSchinazi Sep 13, 2021
5ba8363
stats: comments clean up (#18077)
lambdai Sep 13, 2021
0142d1e
dependabot: Updates (#18013)
phlax Sep 13, 2021
80edb9c
api: remove generated_api_shadow (#18091)
htuch Sep 13, 2021
367244d
stats: introduce CustomStatNamespaces. (#17357)
mathetake Sep 13, 2021
799f04d
dns_cache: tracking ttl but not yet using it (#17951)
alyssawilk Sep 13, 2021
6ff09a8
bazel: Add @envoy_repo target with VERSION AND PATH (#17293)
phlax Sep 14, 2021
1dcd779
access_logger: correctly throw exception for grpc logger (#17908)
mathetake Sep 14, 2021
852f309
bazel: Switch `py_script` -> `rules_python.entry_point` (#18046)
phlax Sep 14, 2021
6e49776
fix print deps (#18084)
wbpcode Sep 14, 2021
6392f8e
Escape underscores, and group together exponents using curly braces. …
KBaichoo Sep 14, 2021
3897121
quiche: handle connection close during Http::Http3::ActiveClient crea…
danzh2010 Sep 14, 2021
2e8f0a4
Fix invalid link in CDN-loop (#18109)
nak3 Sep 14, 2021
9b01b3b
http3: adding connect support (#17877)
alyssawilk Sep 14, 2021
6b88828
stats: use re2 for prometheus metrics sanitization. (#18110)
mathetake Sep 14, 2021
3353b72
factory: cleaning up factory APIs to allow code sharing (#18096)
alyssawilk Sep 14, 2021
752e3a9
router: Added alt_header_name to set an arbitrary header for populati…
agrawroh Sep 14, 2021
b4bf119
test: fix build (#18115)
alyssawilk Sep 14, 2021
e87dbf2
tools: Improve the error message in tools/docs/rst_check.py for inval…
RyanTheOptimist Sep 14, 2021
c8ea4bb
coverage: bumping dubbo_proxy (#18121)
alyssawilk Sep 14, 2021
68c758a
router: add per_try_idle_timeout configuration (#18078)
mattklein123 Sep 14, 2021
f5a8541
bazel: Add json_data and providers (#18086)
phlax Sep 15, 2021
823bcc6
Add remote_refuse and remote_reset in response code details docs (#18…
nak3 Sep 15, 2021
19ad6ff
admin: optimize prometheus format stat endopint. (#18124)
mathetake Sep 15, 2021
9877439
api: moving the k-v store to common (#18117)
alyssawilk Sep 15, 2021
653ce5b
Make contrib filter visibility configurable (#18131)
samrabelachew Sep 15, 2021
1ac55e7
lua: Fix printing Lua string containing hex characters (#17994)
Patrick0308 Sep 15, 2021
c65f0ca
router: add support for retry options predicate extensions (#18058)
mattklein123 Sep 15, 2021
79d470a
tooling: Use upstream checkers (#18087)
phlax Sep 15, 2021
7503711
Quiche merge (#18136)
RyanTheOptimist Sep 15, 2021
deaac56
bazel: Add implementation of ABazelQuery (#18021)
phlax Sep 16, 2021
e9c4905
https: Unhide alt svc cache (#18101)
RyanTheOptimist Sep 16, 2021
f0dd5a3
repokitteh: Ignore non-envoy repo prs (#18141)
phlax Sep 16, 2021
ac0adb2
fix: De-dupe current version history entries and address some minor t…
agrawroh Sep 16, 2021
5b15e7b
bazel: Shift deprecate_* tools to bazel and cleanup requirements (#18…
phlax Sep 16, 2021
2635e54
factories: renaming to mainThreadDispatcher (#18122)
alyssawilk Sep 17, 2021
73643d9
deps: Bump curl -> 7.79.0 (#18071)
phlax Sep 17, 2021
dcce89f
jwt_authn: make from_cookies JWT removal behaviour similar to from_pa…
theshubhamp Sep 17, 2021
1e65d4f
tooling: Validation tool cleanup (#18158)
phlax Sep 17, 2021
1c60c16
doc: fix curl command in http connect (#18156)
lambdai Sep 17, 2021
f1e0ab1
dependabot: Updates (#18133)
phlax Sep 17, 2021
37cf18e
bazel: Shift flaky test report to bazel (#18076)
phlax Sep 17, 2021
4e2445a
tooling: Shift `api_proto_breaking_change_detector` to bazel (#17981)
phlax Sep 17, 2021
3078a4b
dns: add v4 preferred option (#18108)
junr03 Sep 17, 2021
4a433a2
logger: fix lifetime issue of AccessLogConfig in tls callback. (#18081)
mathetake Sep 17, 2021
76f7c3c
doc: add note about rate limit on Docker Hub. (#18169)
mathetake Sep 18, 2021
787f873
tooling: Use upstream docs.sphinx-runner (#18145)
phlax Sep 19, 2021
56f4f2e
correcting urls in deployment types docs (#18176)
ankatare Sep 19, 2021
925c7fd
stats: check emptiness in stripRegisteredPrefix before search. (#18127)
mathetake Sep 20, 2021
4bd376c
Fix wrong comment for closing brace (#18170)
nak3 Sep 20, 2021
df784a5
upstream: more factory cleanup (#18143)
alyssawilk Sep 20, 2021
179fbaf
tools: exempting contrib PRs from unassigned PRs (#18182)
alyssawilk Sep 20, 2021
2bf9372
Keep snapped stats in MetricSnapshotImpl. (#18144)
pradeepcrao Sep 20, 2021
e8f5f62
dfp: adding failed resolution test (#18150)
alyssawilk Sep 20, 2021
cebcef9
dns cache: add force refresh API (#18165)
mattklein123 Sep 20, 2021
4df9e7e
docs: Small optimization for protodoc (#18179)
phlax Sep 21, 2021
c22aaf2
jwt_authn: Add header_to_metadata (#18140)
dio Sep 21, 2021
676f84b
lua: add two new methods to get the value of a header at certain inde…
agrawroh Sep 21, 2021
3eb22b5
filter: set additional termination details and response flag for auth…
agrawroh Sep 21, 2021
428285c
Add support to allow routing to the weighted cluster specified in the…
tyxia Sep 21, 2021
2551c75
docs: Publish rst to storage (#18173)
phlax Sep 21, 2021
323c29d
tooling: Use upstream base libs (#17978)
phlax Sep 22, 2021
37ae322
ext_authz: Honor append field of OkHttpResponse.response_headers_to_a…
dio Sep 22, 2021
6121a9a
docs: Fix build rst/html script (#18204)
phlax Sep 22, 2021
cbc76a4
ci: fixing api_compat post-job cache issue (#18216)
adisuissa Sep 22, 2021
4ea2a3d
network: remove an assert (#18201)
alyssawilk Sep 22, 2021
06c44b8
upstream: Make the Alt-Svc cache configuration required if HTTP/3 is …
RyanTheOptimist Sep 22, 2021
764f4d2
windows: fixing caching test on windows (#18197)
alyssawilk Sep 22, 2021
4850d32
bazel: Add build options for su-exec (#18217)
phlax Sep 22, 2021
0c72fbc
Fix issue where EnvoyUsers password expires (#18163)
Sep 22, 2021
ee2cb6d
proxy_protocol: fix IOCallResult error checks (#18221)
JamesHeppenstall Sep 22, 2021
5daa011
dns cache manager: lookup cache by name (#18223)
junr03 Sep 23, 2021
0c05c2c
tools: fix protoprint to respect CLANG_FORMAT env var (#18202)
esmet Sep 23, 2021
36f7177
Remove useless comment for ConnectionInfoProvider (#18210)
soulxu Sep 23, 2021
8c5f5fe
bazel: add root `envoy` alias (#18225)
keith Sep 23, 2021
97b413f
tap: removing tap code from core test paths (#18230)
alyssawilk Sep 23, 2021
4687a59
alt_svc_cache: adding flush capabilities (#18189)
alyssawilk Sep 23, 2021
846109f
docs: add more description for max_connection_duration in timeout faq…
agrawroh Sep 23, 2021
a664023
kafka: upgrade kafka source code and server dependencies to 2.8.1 (#1…
adamkotwasinski Sep 23, 2021
c5110ab
quic: updating test comment (#18196)
alyssawilk Sep 23, 2021
cdc7ccd
test: deflaking coverage (#18234)
alyssawilk Sep 23, 2021
289ce88
http3: sending goaways (#18188)
alyssawilk Sep 23, 2021
54e1479
bazel: update rules_foreign_cc (#18174)
keith Sep 23, 2021
e47e557
quiche: support inplace filter chain update (#17988)
danzh2010 Sep 23, 2021
8ea36c4
add ratelimit log (#17902)
zirain Sep 24, 2021
5388ccb
dns cache: upgrade event (#18247)
junr03 Sep 24, 2021
90d7e99
network: set failure reason for transport socket connect timeout (#18…
snowp Sep 24, 2021
6914d2d
log: make log of listener filters consistent. (#18232)
YaoZengzeng Sep 24, 2021
e094ee9
test: moving redirect extensions test out of core (#18214)
alyssawilk Sep 24, 2021
0281416
ext_authz: add dynamic_metadata_matchers and use them in the ext_auth…
esmet Sep 24, 2021
d6c3c2f
proto: add a new field called append_action in the HeaderValueOption …
agrawroh Sep 24, 2021
13a1beb
Reuse the ConfigImpl held by RdsRouteConfigProviderImpl in SRDS (#18241)
stevenzzzz Sep 24, 2021
513c2ad
ext_proc: Cache the gRPC client (#18166)
gbrail Sep 24, 2021
cd72c55
fix possible use-after-free introduced by the cross-priority host map…
wbpcode Sep 24, 2021
f05d29e
docs: Consolidate build rules (#18142)
phlax Sep 24, 2021
85dd89d
coverage: exclude a guarddog test from coverage (#18255)
RyanTheOptimist Sep 24, 2021
fb6b540
add response trailers for bandwidth limit filter
zhiyong-gayang Sep 26, 2021
c5c25d1
fix format
zhiyong-gayang Sep 26, 2021
a246b62
Merge branch 'main' of https://github.com/garyyang2002/envoy into main
zhiyong-gayang Sep 26, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 11 additions & 1 deletion .azure-pipelines/pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,15 @@ stages:
GCP_SERVICE_ACCOUNT_KEY: $(GcpServiceAccountKey)
displayName: "Generate docs"

- script: |
ci/run_envoy_docker.sh 'ci/upload_gcs_artifact.sh /source/generated/docs docs'
displayName: "Upload Docs to GCS"
env:
ENVOY_DOCKER_BUILD_DIR: $(Build.StagingDirectory)
GCP_SERVICE_ACCOUNT_KEY: $(GcpServiceAccountKey)
GCS_ARTIFACT_BUCKET: $(GcsArtifactBucket)
condition: eq(variables['Build.SourceBranch'], 'refs/heads/main')

- task: InstallSSHKey@0
inputs:
hostName: "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=="
Expand All @@ -393,6 +402,7 @@ stages:
workingDirectory: $(Build.SourcesDirectory)
env:
AZP_BRANCH: $(Build.SourceBranch)
NETLIFY_TRIGGER_URL: $(NetlifyTriggerURL)

- stage: verify
dependsOn: ["docker"]
Expand Down Expand Up @@ -454,7 +464,7 @@ stages:
testRunTitle: "macOS"
condition: always()

- script: ./ci/flaky_test/run_process_xml.sh
- script: bazel run //ci/flaky_test:process_xml
displayName: "Process Test Results"
env:
TEST_TMPDIR: $(Build.SourcesDirectory)
Expand Down
6 changes: 5 additions & 1 deletion .github/actions/pr_notifier/pr_notifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ def is_waiting(labels):
return False


def is_contrib(labels):
return any(label.name == "contrib" for label in labels)


# Return true if the PR has an API tag, false otherwise.
def is_api(labels):
for label in labels:
Expand Down Expand Up @@ -174,7 +178,7 @@ def track_prs():
pr_info.assignees, maintainers_and_prs, message, MAINTAINERS, FIRST_PASS)

# If there was no maintainer, track it as unassigned.
if not has_maintainer_assignee:
if not has_maintainer_assignee and not is_contrib(labels):
maintainers_and_prs['unassigned'] = maintainers_and_prs['unassigned'] + message

# Return the dict of {maintainers : PR notifications},
Expand Down
2 changes: 2 additions & 0 deletions .github/actions/pr_notifier/requirements.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pygithub
slack_sdk
16 changes: 8 additions & 8 deletions .github/actions/pr_notifier/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ chardet==4.0.0 \
--hash=sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa \
--hash=sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5
# via requests
deprecated==1.2.12 \
--hash=sha256:08452d69b6b5bc66e8330adde0a4f8642e969b9e1702904d137eeb29c8ffc771 \
--hash=sha256:6d2de2de7931a968874481ef30208fd4e08da39177d61d3d4ebdf4366e7dbca1
deprecated==1.2.13 \
--hash=sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d \
--hash=sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d
# via pygithub
idna==2.10 \
--hash=sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6 \
Expand All @@ -78,7 +78,7 @@ pycparser==2.20 \
pygithub==1.55 \
--hash=sha256:1bbfff9372047ff3f21d5cd8e07720f3dbfdaf6462fcaed9d815f528f1ba7283 \
--hash=sha256:2caf0054ea079b71e539741ae56c5a95e073b81fa472ce222e81667381b9601b
# via -r .github/actions/pr_notifier/requirements.txt
# via -r requirements.in
pyjwt==2.1.0 \
--hash=sha256:934d73fbba91b0483d3857d1aff50e96b2a892384ee2c17417ed3203f173fca1 \
--hash=sha256:fba44e7898bbca160a2b2b501f492824fc8382485d3a6f11ba5d0c1937ce6130
Expand Down Expand Up @@ -111,10 +111,10 @@ six==1.16.0 \
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
--hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
# via pynacl
slack-sdk==3.10.1 \
--hash=sha256:f17b71a578e94204d9033bffded634475f4ca0a6274c6c7a4fd8a9cb0ac7cd8b \
--hash=sha256:2b4dde7728eb4ff5a581025d204578ccff25a5d8f0fe11ae175e3ce6e074434f
# via -r .github/actions/pr_notifier/requirements.txt
slack_sdk==3.11.0 \
--hash=sha256:4d9854ee158c3137cfe1ba587dc4b777b6881aee58436d8071f36bad842acbf4 \
--hash=sha256:8dc858cd106b639191ee3dc38fb957e55ab8dd28c2cc22feafa1223ab2def646
# via -r requirements.in
urllib3==1.26.6 \
--hash=sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4 \
--hash=sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f
Expand Down
56 changes: 3 additions & 53 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ updates:
interval: "daily"

- package-ecosystem: "pip"
directory: "/test/extensions/filters/network/thrift_proxy"
directory: "/configs"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/contrib/kafka/filters/network/source"
directory: "/test/extensions/filters/network/thrift_proxy"
schedule:
interval: "daily"

Expand All @@ -26,63 +26,13 @@ updates:
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/tools/docs"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/tools/git"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/tools/config_validation"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/tools/dependency"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/tools/deprecate_version"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/tools/distribution"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/tools/protodoc"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/tools/deprecate_features"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/tools/code_format"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/ci/flaky_test"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/configs"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/tools/testing"
directory: "/tools/dependency"
schedule:
interval: "daily"

Expand Down
5 changes: 5 additions & 0 deletions BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ exports_files([
".coveragerc",
])

alias(
name = "envoy",
actual = "//source/exe:envoy",
)

# These two definitions exist to help reduce Envoy upstream core code depending on extensions.
# To avoid visibility problems, see notes in source/extensions/extensions_build_config.bzl
#
Expand Down
10 changes: 2 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,15 +253,9 @@ Extension configuration should be located in a directory structure like
The code for the extension should be located under the equivalent
`source/extensions/area/plugin`, and include an *envoy_cc_extension* with the
configuration and tagged with the appropriate security posture, and an
*envoy_cc_library* with the code. More details on how to add a new extension
API can be found [here](api/STYLE.md#adding-an-extension-configuration-to-the-api):
*envoy_cc_library* with the code.

Other changes will likely include

* Editing [source/extensions/extensions_build_config.bzl](source/extensions/extensions_build_config.bzl) to include the new extensions
* Editing [source/extensions/extensions_metadata.yaml](source/extensions/extensions_metadata.yaml) to include metadata for the new extensions
* Editing [docs/root/api-v3/config/config.rst](docs/root/api-v3/config/config.rst) to add area/area
* Adding `docs/root/api-v3/config/area/area.rst` to add a table of contents for the API docs
More details on how to add a new extension API can be found [here](api/STYLE.md#adding-an-extension-configuration-to-the-api):

# Adding contrib extensions

Expand Down
2 changes: 1 addition & 1 deletion GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ New Features
Deprecated
----------
```
* Run the deprecate_versions.py script (e.g. `sh tools/deprecate_version/deprecate_version.sh`)
* Run the deprecate_versions.py script (e.g. `bazel run //tools/deprecate_version:deprecate_version`)
to file tracking issues for runtime guarded code which can be removed.
* Check source/common/runtime/runtime_features.cc and see if any runtime guards in
disabled_runtime_features should be reassessed, and ping on the relevant issues.
Expand Down
1 change: 1 addition & 0 deletions OWNERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ without further review.
* Tony Allen ([tonya11en](https://github.com/tonya11en)) (tony@allen.gg)
* Dmitri Dolguikh ([dmitri-d](https://github.com/dmitri-d)) (ddolguik@redhat.com)
* Yan Avlasov ([yanavlasov](https://github.com/yanavlasov)) (yavlasov@google.com)
* William A Rowe Jr ([wrowe](https://github.com/wrowe)) (wrowe@vmware.com)

# Emeritus maintainers

Expand Down
4 changes: 4 additions & 0 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ load("//bazel:repositories_extra.bzl", "envoy_dependencies_extra")

envoy_dependencies_extra()

load("@base_pip3//:requirements.bzl", "install_deps")

install_deps()

load("//bazel:dependency_imports.bzl", "envoy_dependency_imports")

envoy_dependency_imports()
3 changes: 2 additions & 1 deletion api/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,15 @@ proto_library(
"//contrib/envoy/extensions/filters/http/squash/v3:pkg",
"//contrib/envoy/extensions/filters/http/sxg/v3alpha:pkg",
"//contrib/envoy/extensions/filters/network/kafka_broker/v3:pkg",
"//contrib/envoy/extensions/filters/network/kafka_mesh/v3alpha:pkg",
"//contrib/envoy/extensions/filters/network/mysql_proxy/v3:pkg",
"//contrib/envoy/extensions/filters/network/postgres_proxy/v3alpha:pkg",
"//contrib/envoy/extensions/filters/network/rocketmq_proxy/v3:pkg",
"//envoy/admin/v3:pkg",
"//envoy/config/accesslog/v3:pkg",
"//envoy/config/bootstrap/v3:pkg",
"//envoy/config/cluster/v3:pkg",
"//envoy/config/common/key_value/v3:pkg",
"//envoy/config/common/matcher/v3:pkg",
"//envoy/config/core/v3:pkg",
"//envoy/config/endpoint/v3:pkg",
Expand Down Expand Up @@ -100,7 +102,6 @@ proto_library(
"//envoy/extensions/clusters/dynamic_forward_proxy/v3:pkg",
"//envoy/extensions/clusters/redis/v3:pkg",
"//envoy/extensions/common/dynamic_forward_proxy/v3:pkg",
"//envoy/extensions/common/key_value/v3:pkg",
"//envoy/extensions/common/matching/v3:pkg",
"//envoy/extensions/common/ratelimit/v3:pkg",
"//envoy/extensions/common/tap/v3:pkg",
Expand Down
34 changes: 21 additions & 13 deletions api/STYLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,9 @@ Extensions must currently be added as v3 APIs following the [package
organization](#package-organization) above.
To add an extension config to the API, the steps below should be followed:

1. If this is still WiP and subject to breaking changes, use `vNalpha` instead of `vN` in steps
below. Refer to the [Cache filter config](envoy/extensions/filters/http/cache/v3alpha/cache.proto)
as an example of `v3alpha`, and the
[Buffer filter config](envoy/extensions/filters/http/buffer/v3/buffer.proto) as an example of `v3`.
1. If this is still WiP and subject to breaking changes, please tag it
`option (udpa.annotations.file_status).work_in_progress = true;` and
optionally hide it from the docs (`[#not-implemented-hide:]`.
1. Place the v3 extension configuration `.proto` in `api/envoy/extensions`, e.g.
`api/envoy/extensions/filters/http/foobar/v3/foobar.proto` together with an initial BUILD file:
```bazel
Expand All @@ -127,17 +126,26 @@ To add an extension config to the API, the steps below should be followed:
deps = ["@com_github_cncf_udpa//udpa/annotations:pkg"],
)
```
1. Add to the v3 extension config proto `import "udpa/annotations/status.proto";`
1. If this is still WiP and subject to breaking changes, set
`option (udpa.annotations.file_status).work_in_progress = true;`.
1. Add to the v3 extension config proto a file level
`option (udpa.annotations.file_status).package_version_status = ACTIVE;`.
1. Update [source/extensions/extensions_metadata.yaml](../source/extensions/extensions_metadata.yaml)
with the category, security posture, and status. The category field will have to match an
annotation of the form `// [#extension-category: your.extension.category]`
in one of the proto files for the docs build to pass.
1. Update
[source/extensions/extensions_build_config.bzl](source/extensions/extensions_build_config.bzl)
to include the new extension.
1. If the extension is not hidden, find or create a docs file with a toctree
and to reference your proto to make sure users can navigate to it from the API docs
(and to not break the docs build).
See the [key-value-store PR](https://github.com/envoyproxy/envoy/pull/17745/files) for an example of adding a new extension point to common.
1. Make sure your proto imports the v3 extension config proto (`import "udpa/annotations/status.proto";`)
1. Make sure your proto is either tracked as a work in progress
(`option (udpa.annotations.file_status).work_in_progress = true;`)
or ready to be used
(`option (udpa.annotations.file_status).package_version_status = ACTIVE;`).
This is required to automatically include the config proto in [api/versioning/BUILD](versioning/BUILD).
1. Add a reference to the v3 extension config in (1) in [api/versioning/BUILD](versioning/BUILD) under `active_protos`.
1. Run `./tools/proto_format/proto_format.sh fix`. This should regenerate the `BUILD` file,
reformat `foobar.proto` as needed and also generate the v4alpha extension config (if needed),
together with shadow API protos.
1. `git add api/ generated_api_shadow/` to add any new files to your Git index.
1. Run `./tools/proto_format/proto_format.sh fix`. This should regenerate the `BUILD` file and
reformat `foobar.proto` as needed.

## API annotations

Expand Down
7 changes: 7 additions & 0 deletions api/bazel/BUILD
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
load("@io_bazel_rules_go//proto:compiler.bzl", "go_proto_compiler")
load("//:utils.bzl", "json_data")
load(":repository_locations.bzl", "REPOSITORY_LOCATIONS_SPEC")

licenses(["notice"]) # Apache 2

Expand All @@ -15,3 +17,8 @@ go_proto_compiler(
valid_archive = False,
visibility = ["//visibility:public"],
)

json_data(
name = "repository_locations",
data = REPOSITORY_LOCATIONS_SPEC,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
syntax = "proto3";

package envoy.extensions.filters.network.kafka_mesh.v3alpha;

import "udpa/annotations/status.proto";
import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.extensions.filters.network.kafka_mesh.v3alpha";
option java_outer_classname = "KafkaMeshProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).work_in_progress = true;
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#protodoc-title: Kafka Mesh]
// Kafka Mesh :ref:`configuration overview <config_network_filters_kafka_mesh>`.
// [#extension: envoy.filters.network.kafka_mesh]

message KafkaMesh {
// Envoy's host that's advertised to clients.
// Has the same meaning as corresponding Kafka broker properties.
// Usually equal to filter chain's listener config, but needs to be reachable by clients
// (so 0.0.0.0 will not work).
string advertised_host = 1 [(validate.rules).string = {min_len: 1}];

// Envoy's port that's advertised to clients.
int32 advertised_port = 2 [(validate.rules).int32 = {gt: 0}];

// Upstream clusters this filter will connect to.
repeated KafkaClusterDefinition upstream_clusters = 3;

// Rules that will decide which cluster gets which request.
repeated ForwardingRule forwarding_rules = 4;
}

message KafkaClusterDefinition {
// Cluster name.
string cluster_name = 1 [(validate.rules).string = {min_len: 1}];

// Kafka cluster address.
string bootstrap_servers = 2 [(validate.rules).string = {min_len: 1}];

// Default number of partitions present in this cluster.
// This is especially important for clients that do not specify partition in their payloads and depend on this value for hashing.
int32 partition_count = 3 [(validate.rules).int32 = {gt: 0}];

// Custom configuration passed to Kafka producer.
map<string, string> producer_config = 4;
}

message ForwardingRule {
// Cluster name.
string target_cluster = 1;

oneof trigger {
// Intended place for future types of forwarding rules.
string topic_prefix = 2;
}
}
Loading