Commit b873335
authored
Introduce the
Motivation:
Envoy utilizes pgv to validate the schema of a resource.
ref:
https://www.envoyproxy.io/docs/envoy/latest/configuration/operations/config_validation/config_validation
Given that upstream `libs.controlplane.api` doesn't support this, I
propose that we publish our own jar containing APIs along with
validators.
See jrhee17#43 for a sample run.
Going forward, this can be further developed so that we can add our own
annotations. This may be useful for marking which fields are supported
by Armeria - this can be further exposed to users via metrics/logs (in
case a control plane specifies fields not supported) and in the UI later
on.
Modifications:
- Workflows are added to periodically check if upstream envoy version is
updated
- `xds-apply-updates.yml`: Runs the update script and creates a pull
request
- `xds-compare-versions.yml`: Compares envoy versions with the current
version and determines whether an update is needed
- `xds-sync-apis.yml`: An umbrella task which invokes the above two
workflows periodically
- Scripts are added under `/xds-api/tools`
- `upstream-patch.sh`: Creates two worktrees corresponding to each envoy
version, and computes a patch. The patch is applied to the working
directory.
- `update-sha.sh`: Updates the sha of each version (envoy and
dependencies) and writes `API_SHAS` and `envoy_version` files. This has
been forked from upstream (which is also apache 2.0 licensed)
- `update-api.sh`: Updates the proto directory according to the
`API_SHAS` and `envoy_version` files. This has also been forked.
- Added dependencies to `pgv-java-stub` and `protoc-gen-validate`, each
of which generates validator files and applies validation at runtime.
Result:
- The `xds` module now relies on the `xds-api` module.
<!--
Visit this URL to learn more about how to write a pull request
description:
https://armeria.dev/community/developer-guide#how-to-write-pull-request-description
-->xds-api module (#6403)1 parent abc51b0 commit b873335
File tree
628 files changed
+65953
-4
lines changed- .github/workflows
- gradle/scripts/lib
- xds-api
- src
- main/proto
- cel/expr
- envoy
- admin
- v2alpha
- v3
- annotations
- api/v2
- auth
- cluster
- core
- endpoint
- listener
- ratelimit
- route
- config
- accesslog
- v2
- v3
- bootstrap
- v2
- v3
- cluster
- aggregate/v2alpha
- dynamic_forward_proxy/v2alpha
- redis
- v3
- common
- dynamic_forward_proxy/v2alpha
- key_value/v3
- matcher/v3
- mutation_rules/v3
- tap/v2alpha
- core/v3
- endpoint/v3
- filter
- accesslog/v2
- dubbo/router/v2alpha1
- fault/v2
- http
- adaptive_concurrency/v2alpha
- aws_lambda/v2alpha
- aws_request_signing/v2alpha
- buffer/v2
- cache/v2alpha
- compressor/v2
- cors/v2
- csrf/v2
- dynamic_forward_proxy/v2alpha
- dynamo/v2
- ext_authz/v2
- fault/v2
- grpc_http1_bridge/v2
- grpc_http1_reverse_bridge/v2alpha1
- grpc_stats/v2alpha
- grpc_web/v2
- gzip/v2
- header_to_metadata/v2
- health_check/v2
- ip_tagging/v2
- jwt_authn/v2alpha
- lua/v2
- on_demand/v2
- original_src/v2alpha1
- rate_limit/v2
- rbac/v2
- router/v2
- squash/v2
- tap/v2alpha
- transcoder/v2
- listener
- http_inspector/v2
- original_dst/v2
- original_src/v2alpha1
- proxy_protocol/v2
- tls_inspector/v2
- network
- client_ssl_auth/v2
- direct_response/v2
- dubbo_proxy/v2alpha1
- echo/v2
- ext_authz/v2
- http_connection_manager/v2
- kafka_broker/v2alpha1
- local_rate_limit/v2alpha
- mongo_proxy/v2
- mysql_proxy/v1alpha1
- rate_limit/v2
- rbac/v2
- redis_proxy/v2
- sni_cluster/v2
- tcp_proxy/v2
- thrift_proxy/v2alpha1
- zookeeper_proxy/v1alpha1
- thrift
- rate_limit/v2alpha1
- router/v2alpha1
- udp/udp_proxy/v2alpha
- grpc_credential
- v2alpha
- v3
- health_checker/redis/v2
- listener
- v2
- v3
- metrics
- v2
- v3
- overload
- v2alpha
- v3
- ratelimit
- v2
- v3
- rbac
- v2
- v3
- resource_monitor
- fixed_heap/v2alpha
- injected_resource/v2alpha
- retry
- omit_canary_hosts/v2
- omit_host_metadata/v2
- previous_hosts/v2
- previous_priorities
- route/v3
- tap/v3
- trace
- v2alpha
- v2
- v3
- transport_socket
- alts/v2alpha
- raw_buffer/v2
- tap/v2alpha
- upstream/local_address_selector/v3
- data
- accesslog
- v2
- v3
- cluster
- v2alpha
- v3
- core
- v2alpha
- v3
- dns
- v2alpha
- v3
- tap
- v2alpha
- v3
- extensions
- access_loggers
- file/v3
- filters/cel/v3
- fluentd/v3
- grpc/v3
- open_telemetry/v3
- stream/v3
- wasm/v3
- bootstrap/internal_listener/v3
- clusters
- aggregate/v3
- common/dns/v3
- dns/v3
- dynamic_forward_proxy/v3
- redis/v3
- common
- async_files/v3
- aws/v3
- dynamic_forward_proxy/v3
- matching/v3
- ratelimit/v3
- tap/v3
- compression
- brotli
- compressor/v3
- decompressor/v3
- gzip
- compressor/v3
- decompressor/v3
- zstd
- compressor/v3
- decompressor/v3
- config/validators/minimum_clusters/v3
- dynamic_modules/v3
- early_data/v3
- filters
- common
- dependency/v3
- fault/v3
- matcher/action/v3
- set_filter_state/v3
- http
- adaptive_concurrency/v3
- admission_control/v3
- alternate_protocols_cache/v3
- api_key_auth/v3
- aws_lambda/v3
- aws_request_signing/v3
- bandwidth_limit/v3
- basic_auth/v3
- buffer/v3
- cache/v3
- cdn_loop/v3
- composite/v3
- compressor/v3
- connect_grpc_bridge/v3
- cors/v3
- credential_injector/v3
- csrf/v3
- custom_response/v3
- decompressor/v3
- dynamic_forward_proxy/v3
- dynamic_modules/v3
- ext_authz/v3
- ext_proc/v3
- fault/v3
- file_system_buffer/v3
- gcp_authn/v3
- geoip/v3
- grpc_field_extraction/v3
- grpc_http1_bridge/v3
- grpc_http1_reverse_bridge/v3
- grpc_json_reverse_transcoder/v3
- grpc_json_transcoder/v3
- grpc_stats/v3
- grpc_web/v3
- gzip/v3
- header_mutation/v3
- header_to_metadata/v3
- health_check/v3
- ip_tagging/v3
- json_to_metadata/v3
- jwt_authn/v3
- kill_request/v3
- local_ratelimit/v3
- lua/v3
- oauth2/v3
- on_demand/v3
- original_src/v3
- proto_message_extraction/v3
- rate_limit_quota/v3
- ratelimit/v3
- rbac/v3
- router/v3
- set_filter_state/v3
- set_metadata/v3
- stateful_session/v3
- tap/v3
- thrift_to_metadata/v3
- upstream_codec/v3
- wasm/v3
- listener
- http_inspector/v3
- local_ratelimit/v3
- original_dst/v3
- original_src/v3
- proxy_protocol/v3
- tls_inspector/v3
- network
- connection_limit/v3
- direct_response/v3
- dubbo_proxy
- router/v3
- v3
- echo/v3
- ext_authz/v3
- ext_proc/v3
- generic_proxy
- action/v3
- codecs
- dubbo/v3
- http1/v3
- matcher/v3
- router/v3
- v3
- http_connection_manager/v3
- local_ratelimit/v3
- mongo_proxy/v3
- ratelimit/v3
- rbac/v3
- redis_proxy/v3
- set_filter_state/v3
- sni_cluster/v3
- sni_dynamic_forward_proxy/v3
- tcp_proxy/v3
- thrift_proxy
- filters
- header_to_metadata/v3
- payload_to_metadata/v3
- ratelimit/v3
- router/v3
- v3
- wasm/v3
- zookeeper_proxy/v3
- udp
- dns_filter/v3
- udp_proxy
- session
- dynamic_forward_proxy/v3
- http_capsule/v3
- v3
- formatter
- cel/v3
- metadata/v3
- req_without_query/v3
- geoip_providers
- common/v3
- maxmind/v3
- health_checkers
- redis/v3
- thrift/v3
- health_check/event_sinks/file/v3
- http
- cache
- file_system_http_cache/v3
- simple_http_cache/v3
- custom_response
- local_response_policy/v3
- redirect_policy/v3
- early_header_mutation/header_mutation/v3
- ext_proc/response_processors/save_processing_response/v3
- header_formatters/preserve_case/v3
- header_validators/envoy_default/v3
- injected_credentials
- generic/v3
- oauth2/v3
- original_ip_detection
- custom_header/v3
- xff/v3
- stateful_session
- cookie/v3
- header/v3
- internal_redirect
- allow_listed_routes/v3
- previous_routes/v3
- safe_cross_scheme/v3
- key_value/file_based/v3
- load_balancing_policies
- client_side_weighted_round_robin/v3
- cluster_provided/v3
- common/v3
- least_request/v3
- maglev/v3
- pick_first/v3
- random/v3
- ring_hash/v3
- round_robin/v3
- subset/v3
- wrr_locality/v3
- matching
- common_inputs
- environment_variable/v3
- network/v3
- ssl/v3
- input_matchers
- consistent_hashing/v3
- ip/v3
- metadata/v3
- runtime_fraction/v3
- network
- dns_resolver
- apple/v3
- cares/v3
- getaddrinfo/v3
- socket_interface/v3
- outlier_detection_monitors
- common/v3
- consecutive_errors/v3
- path
- match/uri_template/v3
- rewrite/uri_template/v3
- quic
- connection_debug_visitor
- quic_stats/v3
- v3
- connection_id_generator
- quic_lb/v3
- v3
- crypto_stream/v3
- proof_source/v3
- server_preferred_address/v3
- rate_limit_descriptors/expr/v3
- rbac
- audit_loggers/stream/v3
- matchers/upstream_ip_port/v3
- principals/mtls_authenticated/v3
- regex_engines/v3
- request_id/uuid/v3
- resource_monitors
- cpu_utilization/v3
- downstream_connections/v3
- fixed_heap/v3
- injected_resource/v3
- retry
- host
- omit_canary_hosts/v3
- omit_host_metadata/v3
- previous_hosts/v3
- priority/previous_priorities/v3
- router/cluster_specifiers/lua/v3
- stat_sinks
- graphite_statsd/v3
- open_telemetry/v3
- wasm/v3
- string_matcher/lua/v3
- tracers
- fluentd/v3
- opentelemetry
- resource_detectors/v3
- samplers/v3
- transport_sockets
- alts/v3
- http_11_proxy/v3
- internal_upstream/v3
- proxy_protocol/v3
- quic/v3
- raw_buffer/v3
- s2a/v3
- starttls/v3
- tap/v3
- tcp_stats/v3
- tls/v3
- udp_packet_writer/v3
- upstreams
- http
- generic/v3
- http/v3
- tcp/v3
- udp/v3
- v3
- tcp
- generic/v3
- v3
- wasm/v3
- watchdog/profile_action/v3
- service
- accesslog
- v2
- v3
- auth
- v2alpha
- v2
- v3
- cluster/v3
- discovery
- v2
- v3
- endpoint/v3
- event_reporting
- v2alpha
- v3
- ext_proc/v3
- extension/v3
- health/v3
- listener/v3
- load_stats
- v2
- v3
- metrics
- v2
- v3
- network_ext_proc/v3
- rate_limit_quota/v3
- ratelimit
- v2
- v3
- redis_auth/v3
- route/v3
- runtime/v3
- secret/v3
- status
- v2
- v3
- tap
- v2alpha
- v3
- type
- http/v3
- matcher
- v3
- metadata
- v2
- v3
- tracing
- v2
- v3
- v3
- watchdog/v3
- google
- api
- expr/v1alpha1
- rpc
- io/prometheus/client
- opentelemetry/proto
- collector
- metrics/v1
- profiles/v1development
- trace/v1
- common/v1
- metrics/v1
- profiles/v1development
- resource/v1
- trace/v1
- udpa
- annotations
- data/orca/v1
- service/orca/v1
- type/v1
- validate
- xds
- annotations/v3
- core/v3
- data/orca/v3
- service/orca/v3
- type
- matcher/v3
- v3
- test/java/com/linecorp/armeria/xds/api
- tools
- xds
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
628 files changed
+65953
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| 112 | + | |
112 | 113 | | |
113 | 114 | | |
114 | 115 | | |
| |||
344 | 345 | | |
345 | 346 | | |
346 | 347 | | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | 348 | | |
351 | 349 | | |
352 | 350 | | |
| |||
994 | 992 | | |
995 | 993 | | |
996 | 994 | | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
997 | 1002 | | |
998 | 1003 | | |
999 | 1004 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
91 | 101 | | |
92 | 102 | | |
93 | 103 | | |
| |||
114 | 124 | | |
115 | 125 | | |
116 | 126 | | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
117 | 132 | | |
118 | 133 | | |
119 | 134 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
| 200 | + | |
200 | 201 | | |
201 | 202 | | |
202 | 203 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
0 commit comments