mirror of https://github.com/istio/proxy.git
Compare commits
205 Commits
1.25.0-rc.
...
master
Author | SHA1 | Date |
---|---|---|
|
85c28434c3 | |
|
dd3d9baa45 | |
|
28bd02a1b9 | |
|
51074d7979 | |
|
2cb036959c | |
|
3ae982ec4e | |
|
fbe1167e87 | |
|
fba14d9f67 | |
|
38b94dff3e | |
|
fb3df4ebd1 | |
|
9ca562874b | |
|
884980ae61 | |
|
715e9950d3 | |
|
85878351b6 | |
|
b80b90e891 | |
|
a568c3561a | |
|
b2f733524a | |
|
a04f0159fd | |
|
9414c10b56 | |
|
8ffb10eef0 | |
|
465dfe27b8 | |
|
eac6a8ea28 | |
|
c51abd662d | |
|
491c23b5b2 | |
|
17926fc432 | |
|
8243b8a544 | |
|
866870fac0 | |
|
3a3d5c5eeb | |
|
f1a368d5fe | |
|
1409b2e78f | |
|
cbc8bcc988 | |
|
3c9dbf2756 | |
|
aea95c7140 | |
|
4e8d8ea338 | |
|
e477738647 | |
|
44e40b801e | |
|
72326c50df | |
|
28c94ac20d | |
|
7230983027 | |
|
8fd34bd127 | |
|
5f58981e6f | |
|
0507e331dd | |
|
16fad2b5d9 | |
|
5d4727241d | |
|
024957f198 | |
|
d023cdd5f0 | |
|
cb2c0289b1 | |
|
e5dc651d35 | |
|
3941fec91b | |
|
1fae178953 | |
|
f3c11540b0 | |
|
cfde121e25 | |
|
f7d8213fb6 | |
|
68585389c4 | |
|
1834fcc306 | |
|
aab89e829d | |
|
1b16ce6423 | |
|
7b20907635 | |
|
65c34ec654 | |
|
06e3ead9db | |
|
63942621de | |
|
f3131949e4 | |
|
87dd28dfaf | |
|
633531a5bc | |
|
85c932f655 | |
|
f0842aa465 | |
|
0e1ff29aa8 | |
|
8d28fdd081 | |
|
d12108e0db | |
|
9445f5937f | |
|
1ca15b8ba6 | |
|
6aaacdd054 | |
|
1dbc6e9794 | |
|
9064710ab4 | |
|
2c605ad6f5 | |
|
14537f0863 | |
|
e6d9841a4f | |
|
66388d0181 | |
|
72630c019f | |
|
b52e33a823 | |
|
c5d3627199 | |
|
5cecd24136 | |
|
c4fcc92e44 | |
|
85d93e0013 | |
|
44c82b7b9c | |
|
5df4291d78 | |
|
9950dd1ee8 | |
|
097f8c563c | |
|
de9edf0b67 | |
|
43f7e312ff | |
|
1e6beeaa55 | |
|
88df19ee23 | |
|
7bafbf2268 | |
|
b17690c0e3 | |
|
47efd7a031 | |
|
4e48433cd0 | |
|
6d266652c8 | |
|
9d176df1db | |
|
115b0eb036 | |
|
216b9ef9fb | |
|
4e641e0bb8 | |
|
4ba4edc9e6 | |
|
e6e2ed4f4f | |
|
514a644781 | |
|
e0fd35acbd | |
|
a8dc181482 | |
|
d36a211276 | |
|
5a62959ebf | |
|
b0d4ae0c83 | |
|
b6258b5d41 | |
|
a16c86c7b2 | |
|
ebe9ed11ed | |
|
c00934a851 | |
|
8358a38f0a | |
|
e2782afa20 | |
|
e7a3438021 | |
|
c271a2a361 | |
|
aca940e1ae | |
|
f5f75fccad | |
|
43e7bea767 | |
|
e211657be9 | |
|
b25f1c6363 | |
|
4a2d8f7541 | |
|
405c75a8fd | |
|
a096eab649 | |
|
29a1faa60c | |
|
350f6d5c01 | |
|
f3d9265744 | |
|
b2f49ea7c0 | |
|
832185f524 | |
|
52cd9c1e00 | |
|
0708949e77 | |
|
187ef6426b | |
|
8572e6de6a | |
|
2240686201 | |
|
12c92748ed | |
|
147cc9af7b | |
|
dfae03070b | |
|
a757555db3 | |
|
e80703132d | |
|
4b4991300c | |
|
2d9c9eb1da | |
|
f08201e7c7 | |
|
b3920fcf56 | |
|
7152aa80e7 | |
|
854c889f4c | |
|
1aa0851ed5 | |
|
9963cb6e79 | |
|
7e21bf29d9 | |
|
dc8bf846a0 | |
|
a3b20fbf0d | |
|
b1a30a228b | |
|
630838deca | |
|
bbdabac40a | |
|
09b8e0419e | |
|
285284dcd8 | |
|
00ca866cb9 | |
|
ea517cadc8 | |
|
0954debc61 | |
|
72a567fb4c | |
|
c81d1c7910 | |
|
c299ef8332 | |
|
0e24cfb9ec | |
|
ddc87ca613 | |
|
70d182b019 | |
|
44133ea459 | |
|
d72a525881 | |
|
7bce06d301 | |
|
9dacc003f0 | |
|
ad794e899c | |
|
e6b4dc405b | |
|
b9c8138326 | |
|
5d5edd4817 | |
|
f777f1f75f | |
|
dd13c6784a | |
|
3944d5c584 | |
|
12794c7725 | |
|
450bbc9559 | |
|
d5285a06d5 | |
|
b2eb9e6de2 | |
|
87f21076d0 | |
|
5dd1d365e4 | |
|
09bbb30113 | |
|
3300cfebf5 | |
|
277287076f | |
|
3ee8889e31 | |
|
9d289678ba | |
|
2c1a278182 | |
|
ad2deb3f81 | |
|
9ca2524d6c | |
|
cfdde45e96 | |
|
089e781c2e | |
|
526aeb10d3 | |
|
a9f18ad30a | |
|
896077d9f4 | |
|
0e5ee833b5 | |
|
f7cc614dc1 | |
|
e425bfecd5 | |
|
519448b6d8 | |
|
b1237fd9f2 | |
|
1dc69a1c9e | |
|
43adfed2e0 | |
|
f3b3ab2f73 | |
|
068793d292 | |
|
a895327df8 |
9
.bazelrc
9
.bazelrc
|
@ -14,7 +14,10 @@ build:remote --remote_timeout=7200
|
|||
# ========================================
|
||||
|
||||
# Enable libc++ and C++20 by default.
|
||||
build:linux --config=libc++20
|
||||
build:linux --config=clang
|
||||
|
||||
# put /usr/local/bin before /usr/bin to avoid picking up wrong python3.6 when building envoy.tls.key_providers.cryptomb
|
||||
build:linux --action_env=PATH=/usr/lib/llvm/bin:/usr/local/bin:/bin:/usr/bin
|
||||
|
||||
# Need for CI image to pickup docker-credential-gcloud, PATH is fixed in rbe-toolchain-* configs.
|
||||
build:remote-ci --action_env=PATH=/usr/local/google-cloud-sdk/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/llvm/bin
|
||||
|
@ -52,12 +55,12 @@ build:clang --host_action_env=CXX=
|
|||
|
||||
# CI sanitizer configuration
|
||||
#
|
||||
build:clang-asan-ci --config=clang-asan
|
||||
build:clang-asan-ci --config=asan
|
||||
build:clang-asan-ci --linkopt='-L/usr/lib/llvm/lib/x86_64-unknown-linux-gnu'
|
||||
build:clang-asan-ci --linkopt='-Wl,-rpath,/usr/lib/llvm/lib/x86_64-unknown-linux-gnu'
|
||||
build:clang-asan-ci --linkopt='-L/usr/lib/llvm/lib/clang/14.0.0/lib/x86_64-unknown-linux-gnu'
|
||||
|
||||
build:clang-tsan-ci --config=clang-tsan
|
||||
build:clang-tsan-ci --config=tsan
|
||||
build:clang-tsan-ci --linkopt=-L/opt/libcxx_tsan/lib
|
||||
build:clang-tsan-ci --linkopt=-Wl,-rpath,/opt/libcxx_tsan/lib
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
7.4.0
|
||||
7.6.0
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "istio build-tools",
|
||||
"image": "gcr.io/istio-testing/build-tools-proxy:master-6bfe0028e941afdae35a3c5d4374bc08e3c04153",
|
||||
"image": "gcr.io/istio-testing/build-tools-proxy:master-8e6480403f5cf4c9a4cd9d65174d01850e632e1a",
|
||||
"privileged": true,
|
||||
"remoteEnv": {
|
||||
"USE_GKE_GCLOUD_AUTH_PLUGIN": "True",
|
||||
|
|
|
@ -22,10 +22,10 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|||
# 1. Determine SHA256 `wget https://github.com/envoyproxy/envoy/archive/$COMMIT.tar.gz && sha256sum $COMMIT.tar.gz`
|
||||
# 2. Update .bazelversion, envoy.bazelrc and .bazelrc if needed.
|
||||
#
|
||||
# Commit date: 2025-01-22
|
||||
ENVOY_SHA = "10d38a8f6a2ce1be491ce6064589a6acc5c1673f"
|
||||
# Commit date: 2025-07-10
|
||||
ENVOY_SHA = "46bb6bc3dc41a684671fd4811eddfe82207a6d21"
|
||||
|
||||
ENVOY_SHA256 = "6379a533ebb42db7f51a46c7100577a3087c3c0ea07e03d90041eceb16072ba6"
|
||||
ENVOY_SHA256 = "e3ca4967f3cfd343cbf9983c7ec85eb1845c5d3b219e045cf008e730e9c06b61"
|
||||
|
||||
ENVOY_ORG = "envoyproxy"
|
||||
|
||||
|
|
|
@ -44,7 +44,6 @@ ENVOY_EXTENSIONS = {
|
|||
#
|
||||
|
||||
"envoy.grpc_credentials.file_based_metadata": "//source/extensions/grpc_credentials/file_based_metadata:config",
|
||||
"envoy.grpc_credentials.aws_iam": "//source/extensions/grpc_credentials/aws_iam:config",
|
||||
|
||||
#
|
||||
# WASM
|
||||
|
@ -203,6 +202,7 @@ ENVOY_EXTENSIONS = {
|
|||
# Resource monitors
|
||||
#
|
||||
|
||||
"envoy.resource_monitors.cpu_utilization": "//source/extensions/resource_monitors/cpu_utilization:config",
|
||||
"envoy.resource_monitors.fixed_heap": "//source/extensions/resource_monitors/fixed_heap:config",
|
||||
"envoy.resource_monitors.injected_resource": "//source/extensions/resource_monitors/injected_resource:config",
|
||||
"envoy.resource_monitors.downstream_connections": "//source/extensions/resource_monitors/downstream_connections:config",
|
||||
|
@ -357,7 +357,7 @@ ENVOY_EXTENSIONS = {
|
|||
# QUIC extensions
|
||||
#
|
||||
|
||||
"envoy.quic.deterministic_connection_id_generator": "//source/extensions/quic/connection_id_generator:envoy_deterministic_connection_id_generator_config",
|
||||
"envoy.quic.deterministic_connection_id_generator": "//source/extensions/quic/connection_id_generator/deterministic:envoy_deterministic_connection_id_generator_config",
|
||||
"envoy.quic.crypto_stream.server.quiche": "//source/extensions/quic/crypto_stream:envoy_quic_default_crypto_server_stream",
|
||||
"envoy.quic.proof_source.filter_chain": "//source/extensions/quic/proof_source:envoy_quic_default_proof_source",
|
||||
|
||||
|
@ -418,6 +418,7 @@ ENVOY_EXTENSIONS = {
|
|||
"envoy.load_balancing_policies.ring_hash": "//source/extensions/load_balancing_policies/ring_hash:config",
|
||||
"envoy.load_balancing_policies.subset": "//source/extensions/load_balancing_policies/subset:config",
|
||||
"envoy.load_balancing_policies.cluster_provided": "//source/extensions/load_balancing_policies/cluster_provided:config",
|
||||
"envoy.load_balancing_policies.override_host": "//source/extensions/load_balancing_policies/override_host:config",
|
||||
|
||||
#
|
||||
# HTTP Early Header Mutation
|
||||
|
|
|
@ -1 +1 @@
|
|||
0569152cf7260f891ee02fcef8c10bf4f94ea606
|
||||
d46067e1a8ba3db4abe2635af5807f00ba1981e6
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
# WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
|
||||
#
|
||||
# The original version of this file is located in the https://github.com/istio/common-files repo.
|
||||
# If you're looking at this file in a different repo and want to make a change, please go to the
|
||||
# common-files repo, make the change there and check it in. Then come back to this repo and run
|
||||
# "make update-common".
|
||||
|
||||
run:
|
||||
# Timeout for analysis, e.g. 30s, 5m.
|
||||
# Default: 1m
|
||||
timeout: 20m
|
||||
build-tags:
|
||||
- integ
|
||||
- integfuzz
|
||||
linters:
|
||||
disable-all: true
|
||||
enable:
|
||||
- goimports
|
||||
- gofumpt
|
||||
- gci
|
||||
fast: false
|
||||
linters-settings:
|
||||
gci:
|
||||
sections:
|
||||
- standard # Captures all standard packages if they do not match another section.
|
||||
- default # Contains all imports that could not be matched to another section type.
|
||||
- prefix(istio.io/) # Groups all imports with the specified Prefix.
|
||||
goimports:
|
||||
# put imports beginning with prefix after 3rd-party packages;
|
||||
# it's a comma-separated list of prefixes
|
||||
local-prefixes: istio.io/
|
||||
issues:
|
||||
# Which dirs to exclude: issues from them won't be reported.
|
||||
# Can use regexp here: `generated.*`, regexp is applied on full path,
|
||||
# including the path prefix if one is set.
|
||||
# Default dirs are skipped independently of this option's value (see exclude-dirs-use-default).
|
||||
# "/" will be replaced by current OS file path separator to properly work on Windows.
|
||||
# Default: []
|
||||
exclude-dirs:
|
||||
- genfiles$
|
||||
- vendor$
|
||||
# Which files to exclude: they will be analyzed, but issues from them won't be reported.
|
||||
# There is no need to include all autogenerated files,
|
||||
# we confidently recognize autogenerated files.
|
||||
# If it's not, please let us know.
|
||||
# "/" will be replaced by current OS file path separator to properly work on Windows.
|
||||
# Default: []
|
||||
exclude-files:
|
||||
- ".*\\.pb\\.go"
|
||||
- ".*\\.gen\\.go"
|
||||
# Maximum issues count per one linter.
|
||||
# Set to 0 to disable.
|
||||
# Default: 50
|
||||
max-issues-per-linter: 0
|
||||
# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
|
||||
max-same-issues: 0
|
|
@ -1,262 +1,221 @@
|
|||
# WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
|
||||
#
|
||||
# The original version of this file is located in the https://github.com/istio/common-files repo.
|
||||
# If you're looking at this file in a different repo and want to make a change, please go to the
|
||||
# common-files repo, make the change there and check it in. Then come back to this repo and run
|
||||
# "make update-common".
|
||||
|
||||
version: "2"
|
||||
run:
|
||||
# Timeout for analysis, e.g. 30s, 5m.
|
||||
# Default: 1m
|
||||
timeout: 20m
|
||||
build-tags:
|
||||
- integ
|
||||
- integfuzz
|
||||
linters:
|
||||
disable-all: true
|
||||
default: none
|
||||
enable:
|
||||
- errcheck
|
||||
- copyloopvar
|
||||
- depguard
|
||||
- errcheck
|
||||
- gocritic
|
||||
- gofumpt
|
||||
- goimports
|
||||
- revive
|
||||
- gosimple
|
||||
- gosec
|
||||
- govet
|
||||
- ineffassign
|
||||
- lll
|
||||
- misspell
|
||||
- revive
|
||||
- staticcheck
|
||||
- stylecheck
|
||||
- typecheck
|
||||
- unconvert
|
||||
- unparam
|
||||
- unused
|
||||
- gci
|
||||
- gosec
|
||||
fast: false
|
||||
linters-settings:
|
||||
errcheck:
|
||||
# report about not checking of errors in type assertions: `a := b.(MyStruct)`;
|
||||
# default is false: such cases aren't reported by default.
|
||||
check-type-assertions: false
|
||||
# report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
|
||||
# default is false: such cases aren't reported by default.
|
||||
check-blank: false
|
||||
govet:
|
||||
disable:
|
||||
# report about shadowed variables
|
||||
- shadow
|
||||
goimports:
|
||||
# put imports beginning with prefix after 3rd-party packages;
|
||||
# it's a comma-separated list of prefixes
|
||||
local-prefixes: istio.io/
|
||||
misspell:
|
||||
# Correct spellings using locale preferences for US or UK.
|
||||
# Default is to use a neutral variety of English.
|
||||
# Setting locale to US will correct the British spelling of 'colour' to 'color'.
|
||||
locale: US
|
||||
ignore-words:
|
||||
- cancelled
|
||||
lll:
|
||||
# max line length, lines longer will be reported. Default is 120.
|
||||
# '\t' is counted as 1 character by default, and can be changed with the tab-width option
|
||||
line-length: 160
|
||||
# tab width in spaces. Default to 1.
|
||||
tab-width: 1
|
||||
revive:
|
||||
ignore-generated-header: false
|
||||
severity: "warning"
|
||||
confidence: 0.0
|
||||
settings:
|
||||
depguard:
|
||||
rules:
|
||||
DenyGogoProtobuf:
|
||||
files:
|
||||
- $all
|
||||
deny:
|
||||
- pkg: github.com/gogo/protobuf
|
||||
desc: gogo/protobuf is deprecated, use golang/protobuf
|
||||
errcheck:
|
||||
check-type-assertions: false
|
||||
check-blank: false
|
||||
gocritic:
|
||||
disable-all: true
|
||||
enabled-checks:
|
||||
- appendCombine
|
||||
- argOrder
|
||||
- assignOp
|
||||
- badCond
|
||||
- boolExprSimplify
|
||||
- builtinShadow
|
||||
- captLocal
|
||||
- caseOrder
|
||||
- codegenComment
|
||||
- commentedOutCode
|
||||
- commentedOutImport
|
||||
- defaultCaseOrder
|
||||
- deprecatedComment
|
||||
- docStub
|
||||
- dupArg
|
||||
- dupBranchBody
|
||||
- dupCase
|
||||
- dupSubExpr
|
||||
- elseif
|
||||
- emptyFallthrough
|
||||
- equalFold
|
||||
- flagDeref
|
||||
- flagName
|
||||
- hexLiteral
|
||||
- indexAlloc
|
||||
- initClause
|
||||
- methodExprCall
|
||||
- nilValReturn
|
||||
- octalLiteral
|
||||
- offBy1
|
||||
- rangeExprCopy
|
||||
- regexpMust
|
||||
- sloppyLen
|
||||
- stringXbytes
|
||||
- switchTrue
|
||||
- typeAssertChain
|
||||
- typeSwitchVar
|
||||
- typeUnparen
|
||||
- underef
|
||||
- unlambda
|
||||
- unnecessaryBlock
|
||||
- unslice
|
||||
- valSwap
|
||||
- weakCond
|
||||
gosec:
|
||||
includes:
|
||||
- G401
|
||||
- G402
|
||||
- G404
|
||||
govet:
|
||||
disable:
|
||||
- shadow
|
||||
lll:
|
||||
line-length: 160
|
||||
tab-width: 1
|
||||
misspell:
|
||||
locale: US
|
||||
ignore-rules:
|
||||
- cancelled
|
||||
revive:
|
||||
confidence: 0
|
||||
severity: warning
|
||||
rules:
|
||||
- name: blank-imports
|
||||
- name: context-keys-type
|
||||
- name: time-naming
|
||||
- name: var-declaration
|
||||
- name: unexported-return
|
||||
- name: errorf
|
||||
- name: context-as-argument
|
||||
- name: dot-imports
|
||||
- name: error-return
|
||||
- name: error-strings
|
||||
- name: error-naming
|
||||
- name: increment-decrement
|
||||
- name: var-naming
|
||||
- name: package-comments
|
||||
- name: range
|
||||
- name: receiver-naming
|
||||
- name: indent-error-flow
|
||||
- name: superfluous-else
|
||||
- name: modifies-parameter
|
||||
- name: unreachable-code
|
||||
- name: struct-tag
|
||||
- name: constant-logical-expr
|
||||
- name: bool-literal-in-expr
|
||||
- name: redefines-builtin-id
|
||||
- name: imports-blocklist
|
||||
- name: range-val-in-closure
|
||||
- name: range-val-address
|
||||
- name: waitgroup-by-value
|
||||
- name: atomic
|
||||
- name: call-to-gc
|
||||
- name: duplicated-imports
|
||||
- name: string-of-int
|
||||
- name: defer
|
||||
arguments:
|
||||
- - call-chain
|
||||
- name: unconditional-recursion
|
||||
- name: identical-branches
|
||||
unparam:
|
||||
check-exported: false
|
||||
exclusions:
|
||||
generated: lax
|
||||
presets:
|
||||
- comments
|
||||
- common-false-positives
|
||||
- legacy
|
||||
- std-error-handling
|
||||
rules:
|
||||
- name: blank-imports
|
||||
- name: context-keys-type
|
||||
- name: time-naming
|
||||
- name: var-declaration
|
||||
- name: unexported-return
|
||||
- name: errorf
|
||||
- name: context-as-argument
|
||||
- name: dot-imports
|
||||
- name: error-return
|
||||
- name: error-strings
|
||||
- name: error-naming
|
||||
- name: increment-decrement
|
||||
- name: var-naming
|
||||
- name: package-comments
|
||||
- name: range
|
||||
- name: receiver-naming
|
||||
- name: indent-error-flow
|
||||
- name: superfluous-else
|
||||
- name: modifies-parameter
|
||||
- name: unreachable-code
|
||||
- name: struct-tag
|
||||
- name: constant-logical-expr
|
||||
- name: bool-literal-in-expr
|
||||
- name: redefines-builtin-id
|
||||
- name: imports-blacklist
|
||||
- name: range-val-in-closure
|
||||
- name: range-val-address
|
||||
- name: waitgroup-by-value
|
||||
- name: atomic
|
||||
- name: call-to-gc
|
||||
- name: duplicated-imports
|
||||
- name: string-of-int
|
||||
- name: defer
|
||||
arguments:
|
||||
- - "call-chain"
|
||||
- name: unconditional-recursion
|
||||
- name: identical-branches
|
||||
# the following rules can be enabled in the future
|
||||
# - name: empty-lines
|
||||
# - name: confusing-results
|
||||
# - name: empty-block
|
||||
# - name: get-return
|
||||
# - name: confusing-naming
|
||||
# - name: unexported-naming
|
||||
# - name: early-return
|
||||
# - name: unused-parameter
|
||||
# - name: unnecessary-stmt
|
||||
# - name: deep-exit
|
||||
# - name: import-shadowing
|
||||
# - name: modifies-value-receiver
|
||||
# - name: unused-receiver
|
||||
# - name: bare-return
|
||||
# - name: flag-parameter
|
||||
# - name: unhandled-error
|
||||
# - name: if-return
|
||||
unparam:
|
||||
# Inspect exported functions, default is false. Set to true if no external program/library imports your code.
|
||||
# XXX: if you enable this setting, unparam will report a lot of false-positives in text editors:
|
||||
# if it's called for subdir of a project it can't find external interfaces. All text editor integrations
|
||||
# with golangci-lint call it on a directory with the changed file.
|
||||
check-exported: false
|
||||
gci:
|
||||
sections:
|
||||
- standard # Captures all standard packages if they do not match another section.
|
||||
- default # Contains all imports that could not be matched to another section type.
|
||||
- prefix(istio.io/) # Groups all imports with the specified Prefix.
|
||||
gocritic:
|
||||
# Disable all checks.
|
||||
# Default: false
|
||||
disable-all: true
|
||||
# Which checks should be enabled in addition to default checks. Since we don't want
|
||||
# all of the default checks, we do the disable-all first.
|
||||
enabled-checks:
|
||||
- appendCombine
|
||||
- argOrder
|
||||
- assignOp
|
||||
- badCond
|
||||
- boolExprSimplify
|
||||
- builtinShadow
|
||||
- captLocal
|
||||
- caseOrder
|
||||
- codegenComment
|
||||
- commentedOutCode
|
||||
- commentedOutImport
|
||||
- defaultCaseOrder
|
||||
- deprecatedComment
|
||||
- docStub
|
||||
- dupArg
|
||||
- dupBranchBody
|
||||
- dupCase
|
||||
- dupSubExpr
|
||||
- elseif
|
||||
- emptyFallthrough
|
||||
- equalFold
|
||||
- flagDeref
|
||||
- flagName
|
||||
- hexLiteral
|
||||
- indexAlloc
|
||||
- initClause
|
||||
- methodExprCall
|
||||
- nilValReturn
|
||||
- octalLiteral
|
||||
- offBy1
|
||||
- rangeExprCopy
|
||||
- regexpMust
|
||||
- sloppyLen
|
||||
- stringXbytes
|
||||
- switchTrue
|
||||
- typeAssertChain
|
||||
- typeSwitchVar
|
||||
- typeUnparen
|
||||
- underef
|
||||
- unlambda
|
||||
- unnecessaryBlock
|
||||
- unslice
|
||||
- valSwap
|
||||
- weakCond
|
||||
depguard:
|
||||
rules:
|
||||
DenyGogoProtobuf:
|
||||
files:
|
||||
- $all
|
||||
deny:
|
||||
- pkg: github.com/gogo/protobuf
|
||||
desc: "gogo/protobuf is deprecated, use golang/protobuf"
|
||||
gosec:
|
||||
includes:
|
||||
- G401
|
||||
- G402
|
||||
- G404
|
||||
- linters:
|
||||
- errcheck
|
||||
- maligned
|
||||
path: _test\.go$|tests/|samples/
|
||||
- path: _test\.go$
|
||||
text: 'dot-imports: should not use dot imports'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: package github.com/golang/protobuf/jsonpb'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: "github.com/golang/protobuf/jsonpb"'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: grpc.Dial is deprecated: use NewClient instead'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: grpc.DialContext is deprecated: use NewClient instead'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: grpc.WithBlock is deprecated'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: grpc.FailOnNonTempDialError'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: grpc.WithReturnConnectionError'
|
||||
- path: (.+)\.go$
|
||||
text: composite literal uses unkeyed fields
|
||||
# TODO: remove following rule in the future
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'QF'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'ST1005'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'S1007'
|
||||
paths:
|
||||
- .*\.pb\.go
|
||||
- .*\.gen\.go
|
||||
- genfiles$
|
||||
- vendor$
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
issues:
|
||||
# List of regexps of issue texts to exclude, empty list by default.
|
||||
# But independently from this option we use default exclude patterns,
|
||||
# it can be disabled by `exclude-use-default: false`. To list all
|
||||
# excluded by default patterns execute `golangci-lint run --help`
|
||||
exclude:
|
||||
- composite literal uses unkeyed fields
|
||||
# Which dirs to exclude: issues from them won't be reported.
|
||||
# Can use regexp here: `generated.*`, regexp is applied on full path,
|
||||
# including the path prefix if one is set.
|
||||
# Default dirs are skipped independently of this option's value (see exclude-dirs-use-default).
|
||||
# "/" will be replaced by current OS file path separator to properly work on Windows.
|
||||
# Default: []
|
||||
exclude-dirs:
|
||||
- genfiles$
|
||||
- vendor$
|
||||
# Which files to exclude: they will be analyzed, but issues from them won't be reported.
|
||||
# There is no need to include all autogenerated files,
|
||||
# we confidently recognize autogenerated files.
|
||||
# If it's not, please let us know.
|
||||
# "/" will be replaced by current OS file path separator to properly work on Windows.
|
||||
# Default: []
|
||||
exclude-files:
|
||||
- ".*\\.pb\\.go"
|
||||
- ".*\\.gen\\.go"
|
||||
exclude-rules:
|
||||
# Exclude some linters from running on test files.
|
||||
- path: _test\.go$|^tests/|^samples/
|
||||
linters:
|
||||
- errcheck
|
||||
- maligned
|
||||
- path: _test\.go$
|
||||
text: "dot-imports: should not use dot imports"
|
||||
# We need to use the deprecated module since the jsonpb replacement is not backwards compatible.
|
||||
- linters: [staticcheck]
|
||||
text: "SA1019: package github.com/golang/protobuf/jsonpb"
|
||||
- linters: [staticcheck]
|
||||
text: 'SA1019: "github.com/golang/protobuf/jsonpb"'
|
||||
# This is not helpful. The new function is not very usable and the current function will not be removed
|
||||
- linters: [staticcheck]
|
||||
text: 'SA1019: grpc.Dial is deprecated: use NewClient instead'
|
||||
- linters: [staticcheck]
|
||||
text: 'SA1019: grpc.DialContext is deprecated: use NewClient instead'
|
||||
- linters: [staticcheck]
|
||||
text: "SA1019: grpc.WithBlock is deprecated"
|
||||
- linters: [staticcheck]
|
||||
text: "SA1019: grpc.FailOnNonTempDialError"
|
||||
- linters: [staticcheck]
|
||||
text: "SA1019: grpc.WithReturnConnectionError"
|
||||
# Independently from option `exclude` we use default exclude patterns,
|
||||
# it can be disabled by this option. To list all
|
||||
# excluded by default patterns execute `golangci-lint run --help`.
|
||||
# Default value for this option is true.
|
||||
exclude-use-default: true
|
||||
# Maximum issues count per one linter.
|
||||
# Set to 0 to disable.
|
||||
# Default: 50
|
||||
max-issues-per-linter: 0
|
||||
# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
|
||||
max-same-issues: 0
|
||||
formatters:
|
||||
enable:
|
||||
- gci
|
||||
- gofumpt
|
||||
- goimports
|
||||
settings:
|
||||
gci:
|
||||
sections:
|
||||
- standard
|
||||
- default
|
||||
- prefix(istio.io/)
|
||||
goimports:
|
||||
local-prefixes:
|
||||
- istio.io/
|
||||
exclusions:
|
||||
generated: lax
|
||||
paths:
|
||||
- .*\.pb\.go
|
||||
- .*\.gen\.go
|
||||
- genfiles$
|
||||
- vendor$
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
|
|
|
@ -140,3 +140,6 @@ allowlisted_modules:
|
|||
|
||||
# Apache 2.0
|
||||
- github.com/aws/smithy-go
|
||||
|
||||
# Simplified BSD License: https://github.com/gomarkdown/markdown/blob/master/LICENSE.txt
|
||||
- github.com/gomarkdown/markdown
|
||||
|
|
|
@ -21,4 +21,4 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
golangci-lint run --fix -c ./common/config/.golangci-format.yml
|
||||
golangci-lint run --fix -c ./common/config/.golangci.yml
|
||||
|
|
|
@ -32,7 +32,7 @@ set -x
|
|||
####################################################################
|
||||
|
||||
# DEFAULT_KIND_IMAGE is used to set the Kubernetes version for KinD unless overridden in params to setup_kind_cluster(s)
|
||||
DEFAULT_KIND_IMAGE="gcr.io/istio-testing/kind-node:v1.32.0"
|
||||
DEFAULT_KIND_IMAGE="gcr.io/istio-testing/kind-node:v1.33.1"
|
||||
|
||||
# the default kind cluster should be ipv4 if not otherwise specified
|
||||
KIND_IP_FAMILY="${KIND_IP_FAMILY:-ipv4}"
|
||||
|
|
|
@ -21,8 +21,10 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
GOLANGCILINT_RUN_ARGS=(--output.text.path stdout --output.junit-xml.path "${ARTIFACTS}"/junit-lint.xml)
|
||||
|
||||
if [[ "${ARTIFACTS}" != "" ]]; then
|
||||
golangci-lint run -v -c ./common/config/.golangci.yml --out-format colored-line-number,junit-xml:"${ARTIFACTS}"/junit-lint.xml
|
||||
golangci-lint run -v -c ./common/config/.golangci.yml "${GOLANGCILINT_RUN_ARGS[@]}"
|
||||
else
|
||||
golangci-lint run -v -c ./common/config/.golangci.yml
|
||||
fi
|
||||
|
|
|
@ -47,7 +47,9 @@ read -ra DOCKER_RUN_OPTIONS <<< "${DOCKER_RUN_OPTIONS:-}"
|
|||
"${DOCKER_RUN_OPTIONS[@]}" \
|
||||
--init \
|
||||
--sig-proxy=true \
|
||||
--cap-add=SYS_ADMIN \
|
||||
${DOCKER_SOCKET_MOUNT:--v /var/run/docker.sock:/var/run/docker.sock} \
|
||||
-e DOCKER_HOST=${DOCKER_SOCKET_HOST:-unix:///var/run/docker.sock} \
|
||||
$CONTAINER_OPTIONS \
|
||||
--env-file <(env | grep -v ${ENV_BLOCKLIST}) \
|
||||
-e IN_BUILD_CONTAINER=1 \
|
||||
|
|
|
@ -75,7 +75,7 @@ fi
|
|||
TOOLS_REGISTRY_PROVIDER=${TOOLS_REGISTRY_PROVIDER:-gcr.io}
|
||||
PROJECT_ID=${PROJECT_ID:-istio-testing}
|
||||
if [[ "${IMAGE_VERSION:-}" == "" ]]; then
|
||||
IMAGE_VERSION=master-6bfe0028e941afdae35a3c5d4374bc08e3c04153
|
||||
IMAGE_VERSION=master-8e6480403f5cf4c9a4cd9d65174d01850e632e1a
|
||||
fi
|
||||
if [[ "${IMAGE_NAME:-}" == "" ]]; then
|
||||
IMAGE_NAME=build-tools
|
||||
|
|
260
envoy.bazelrc
260
envoy.bazelrc
|
@ -8,6 +8,7 @@
|
|||
# leave room for compiler/linker.
|
||||
# The number 3G is chosen heuristically to both support large VM and small VM with RBE.
|
||||
# Startup options cannot be selected via config.
|
||||
# TODO: Adding just to test android
|
||||
startup --host_jvm_args=-Xmx3g
|
||||
|
||||
common --noenable_bzlmod
|
||||
|
@ -21,13 +22,20 @@ build --workspace_status_command="bash bazel/get_workspace_status"
|
|||
build --incompatible_strict_action_env
|
||||
build --java_runtime_version=remotejdk_11
|
||||
build --tool_java_runtime_version=remotejdk_11
|
||||
build --java_language_version=11
|
||||
build --tool_java_language_version=11
|
||||
build --platform_mappings=bazel/platform_mappings
|
||||
# silence absl logspam.
|
||||
build --copt=-DABSL_MIN_LOG_LEVEL=4
|
||||
# Global C++ standard and common warning suppressions
|
||||
build --cxxopt=-std=c++20 --host_cxxopt=-std=c++20
|
||||
build --copt=-Wno-deprecated-declarations
|
||||
build --define envoy_mobile_listener=enabled
|
||||
build --experimental_repository_downloader_retries=2
|
||||
build --enable_platform_specific_config
|
||||
build --incompatible_merge_fixed_and_default_shell_env
|
||||
# A workaround for slow ICU download.
|
||||
build --http_timeout_scaling=6.0
|
||||
|
||||
# Pass CC, CXX and LLVM_CONFIG variables from the environment.
|
||||
# We assume they have stable values, so this won't cause action cache misses.
|
||||
|
@ -63,14 +71,12 @@ build:linux --copt=-fdebug-types-section
|
|||
# Enable position independent code (this is the default on macOS and Windows)
|
||||
# (Workaround for https://github.com/bazelbuild/rules_foreign_cc/issues/421)
|
||||
build:linux --copt=-fPIC
|
||||
build:linux --copt=-Wno-deprecated-declarations
|
||||
build:linux --cxxopt=-std=c++20 --host_cxxopt=-std=c++20
|
||||
build:linux --cxxopt=-fsized-deallocation --host_cxxopt=-fsized-deallocation
|
||||
build:linux --conlyopt=-fexceptions
|
||||
build:linux --fission=dbg,opt
|
||||
build:linux --features=per_object_debug_info
|
||||
build:linux --action_env=BAZEL_LINKLIBS=-l%:libstdc++.a
|
||||
build:linux --action_env=BAZEL_LINKOPTS=-lm
|
||||
build:linux --action_env=BAZEL_LINKOPTS=-lm:-fuse-ld=gold
|
||||
|
||||
# We already have absl in the build, define absl=1 to tell googletest to use absl for backtrace.
|
||||
build --define absl=1
|
||||
|
@ -82,19 +88,29 @@ build --@com_googlesource_googleurl//build_config:system_icu=0
|
|||
build:sanitizer --define tcmalloc=disabled
|
||||
build:sanitizer --linkopt -ldl
|
||||
|
||||
# Common flags for Clang
|
||||
build:clang --action_env=BAZEL_COMPILER=clang
|
||||
build:clang --linkopt=-fuse-ld=lld
|
||||
build:clang --action_env=CC=clang --host_action_env=CC=clang
|
||||
build:clang --action_env=CXX=clang++ --host_action_env=CXX=clang++
|
||||
build:clang --incompatible_enable_cc_toolchain_resolution=false
|
||||
# Common flags for Clang (shared between all clang variants)
|
||||
build:clang-common --action_env=BAZEL_COMPILER=clang
|
||||
build:clang-common --linkopt=-fuse-ld=lld
|
||||
build:clang-common --action_env=CC=clang --host_action_env=CC=clang
|
||||
build:clang-common --action_env=CXX=clang++ --host_action_env=CXX=clang++
|
||||
build:clang-common --incompatible_enable_cc_toolchain_resolution=false
|
||||
|
||||
# Clang with libc++ (default)
|
||||
build:clang --config=clang-common
|
||||
build:clang --config=libc++
|
||||
|
||||
build:arm64-clang --config=clang
|
||||
|
||||
# Flags for Clang + PCH
|
||||
build:clang-pch --spawn_strategy=local
|
||||
build:clang-pch --define=ENVOY_CLANG_PCH=1
|
||||
|
||||
# libstdc++ - currently only used for gcc
|
||||
build:libstdc++ --@envoy//bazel:libc++=false
|
||||
build:libstdc++ --@envoy//bazel:libstdc++=true
|
||||
|
||||
# Use gold linker for gcc compiler.
|
||||
build:gcc --linkopt=-fuse-ld=gold --host_linkopt=-fuse-ld=gold
|
||||
build:gcc --config=libstdc++
|
||||
build:gcc --test_env=HEAPCHECK=
|
||||
build:gcc --action_env=BAZEL_COMPILER=gcc
|
||||
build:gcc --action_env=CC=gcc --action_env=CXX=g++
|
||||
|
@ -108,12 +124,10 @@ build:gcc --copt=-fno-debug-types-section
|
|||
build:gcc --copt=-Wno-error=restrict
|
||||
build:gcc --copt=-Wno-error=uninitialized
|
||||
build:gcc --cxxopt=-Wno-missing-requires
|
||||
# We need this because -Wno-missing-requires options is rather new
|
||||
# in GCC, so flags -Wno-missing-requires exists in GCC 12, but does
|
||||
# not in GCC 11 and GCC 11 is what is used in docker-gcc
|
||||
# configuration currently
|
||||
build:gcc --cxxopt=-Wno-unknown-warning
|
||||
build:gcc --cxxopt=-Wno-dangling-reference
|
||||
build:gcc --cxxopt=-Wno-nonnull-compare
|
||||
build:gcc --incompatible_enable_cc_toolchain_resolution=false
|
||||
build:gcc --linkopt=-fuse-ld=gold --host_linkopt=-fuse-ld=gold
|
||||
|
||||
# Clang-tidy
|
||||
# TODO(phlax): enable this, its throwing some errors as well as finding more issues
|
||||
|
@ -123,45 +137,40 @@ build:clang-tidy --aspects @envoy_toolshed//format/clang_tidy:clang_tidy.bzl%cla
|
|||
build:clang-tidy --output_groups=report
|
||||
build:clang-tidy --build_tag_filters=-notidy
|
||||
|
||||
# Basic ASAN/UBSAN that works for gcc
|
||||
build:asan --config=sanitizer
|
||||
# Basic ASAN/UBSAN that works for gcc or llvm
|
||||
build:asan-common --config=sanitizer
|
||||
# ASAN install its signal handler, disable ours so the stacktrace will be printed by ASAN
|
||||
build:asan --define signal_trace=disabled
|
||||
build:asan --define ENVOY_CONFIG_ASAN=1
|
||||
build:asan --build_tag_filters=-no_san
|
||||
build:asan --test_tag_filters=-no_san
|
||||
build:asan --copt -fsanitize=address,undefined
|
||||
build:asan --linkopt -fsanitize=address,undefined
|
||||
# vptr and function sanitizer are enabled in clang-asan if it is set up via bazel/setup_clang.sh.
|
||||
build:asan --copt -fno-sanitize=vptr,function
|
||||
build:asan --linkopt -fno-sanitize=vptr,function
|
||||
build:asan --copt -DADDRESS_SANITIZER=1
|
||||
build:asan --copt -DUNDEFINED_SANITIZER=1
|
||||
build:asan --copt -D__SANITIZE_ADDRESS__
|
||||
build:asan --test_env=ASAN_OPTIONS=handle_abort=1:allow_addr2line=true:check_initialization_order=true:strict_init_order=true:detect_odr_violation=1
|
||||
build:asan --test_env=UBSAN_OPTIONS=halt_on_error=true:print_stacktrace=1
|
||||
build:asan --test_env=ASAN_SYMBOLIZER_PATH
|
||||
build:asan-common --define signal_trace=disabled
|
||||
build:asan-common --define ENVOY_CONFIG_ASAN=1
|
||||
build:asan-common --build_tag_filters=-no_san
|
||||
build:asan-common --test_tag_filters=-no_san
|
||||
build:asan-common --copt -fsanitize=address,undefined
|
||||
build:asan-common --linkopt -fsanitize=address,undefined
|
||||
# vptr and function sanitizer are enabled in asan if it is set up via bazel/setup_clang.sh.
|
||||
build:asan-common --copt -fno-sanitize=vptr,function
|
||||
build:asan-common --linkopt -fno-sanitize=vptr,function
|
||||
build:asan-common --copt -DADDRESS_SANITIZER=1
|
||||
build:asan-common --copt -DUNDEFINED_SANITIZER=1
|
||||
build:asan-common --copt -D__SANITIZE_ADDRESS__
|
||||
build:asan-common --test_env=ASAN_OPTIONS=handle_abort=1:allow_addr2line=true:check_initialization_order=true:strict_init_order=true:detect_odr_violation=1
|
||||
build:asan-common --test_env=UBSAN_OPTIONS=halt_on_error=true:print_stacktrace=1
|
||||
build:asan-common --test_env=ASAN_SYMBOLIZER_PATH
|
||||
# ASAN needs -O1 to get reasonable performance.
|
||||
build:asan --copt -O1
|
||||
build:asan --copt -fno-optimize-sibling-calls
|
||||
build:asan-common --copt -O1
|
||||
build:asan-common --copt -fno-optimize-sibling-calls
|
||||
|
||||
# Clang ASAN/UBSAN
|
||||
build:clang-asan-common --config=clang
|
||||
build:clang-asan-common --config=asan
|
||||
build:clang-asan-common --linkopt -fuse-ld=lld
|
||||
build:clang-asan-common --linkopt --rtlib=compiler-rt
|
||||
build:clang-asan-common --linkopt --unwindlib=libgcc
|
||||
|
||||
build:clang-asan --config=clang-asan-common
|
||||
build:clang-asan --linkopt=-l:libclang_rt.ubsan_standalone.a
|
||||
build:clang-asan --linkopt=-l:libclang_rt.ubsan_standalone_cxx.a
|
||||
build:clang-asan --action_env=ENVOY_UBSAN_VPTR=1
|
||||
build:clang-asan --copt=-fsanitize=vptr,function
|
||||
build:clang-asan --linkopt=-fsanitize=vptr,function
|
||||
# ASAN config with clang runtime
|
||||
build:asan --config=asan-common
|
||||
build:asan --linkopt --rtlib=compiler-rt
|
||||
build:asan --linkopt --unwindlib=libgcc
|
||||
build:asan --linkopt=-l:libclang_rt.ubsan_standalone.a
|
||||
build:asan --linkopt=-l:libclang_rt.ubsan_standalone_cxx.a
|
||||
build:asan --action_env=ENVOY_UBSAN_VPTR=1
|
||||
build:asan --copt=-fsanitize=vptr,function
|
||||
build:asan --linkopt=-fsanitize=vptr,function
|
||||
build:asan --linkopt='-L/opt/llvm/lib/clang/18/lib/x86_64-unknown-linux-gnu'
|
||||
|
||||
# macOS
|
||||
build:macos --cxxopt=-std=c++20 --host_cxxopt=-std=c++20
|
||||
build:macos --copt=-Wno-deprecated-declarations
|
||||
build:macos --action_env=PATH=/opt/homebrew/bin:/opt/local/bin:/usr/local/bin:/usr/bin:/bin
|
||||
build:macos --host_action_env=PATH=/opt/homebrew/bin:/opt/local/bin:/usr/local/bin:/usr/bin:/bin
|
||||
build:macos --define tcmalloc=disabled
|
||||
|
@ -176,55 +185,47 @@ build:macos-asan --copt -DGRPC_BAZEL_BUILD
|
|||
# Dynamic link cause issues like: `dyld: malformed mach-o: load commands size (59272) > 32768`
|
||||
build:macos-asan --dynamic_mode=off
|
||||
|
||||
# Clang TSAN
|
||||
build:clang-tsan --action_env=ENVOY_TSAN=1
|
||||
build:clang-tsan --config=sanitizer
|
||||
build:clang-tsan --define ENVOY_CONFIG_TSAN=1
|
||||
build:clang-tsan --copt -fsanitize=thread
|
||||
build:clang-tsan --linkopt -fsanitize=thread
|
||||
build:clang-tsan --linkopt -fuse-ld=lld
|
||||
build:clang-tsan --copt -DTHREAD_SANITIZER=1
|
||||
build:clang-tsan --build_tag_filters=-no_san,-no_tsan
|
||||
build:clang-tsan --test_tag_filters=-no_san,-no_tsan
|
||||
# Base TSAN config
|
||||
build:tsan --action_env=ENVOY_TSAN=1
|
||||
build:tsan --config=sanitizer
|
||||
build:tsan --define ENVOY_CONFIG_TSAN=1
|
||||
build:tsan --copt -fsanitize=thread
|
||||
build:tsan --linkopt -fsanitize=thread
|
||||
build:tsan --copt -DTHREAD_SANITIZER=1
|
||||
build:tsan --build_tag_filters=-no_san,-no_tsan
|
||||
build:tsan --test_tag_filters=-no_san,-no_tsan
|
||||
# Needed due to https://github.com/libevent/libevent/issues/777
|
||||
build:clang-tsan --copt -DEVENT__DISABLE_DEBUG_MODE
|
||||
build:tsan --copt -DEVENT__DISABLE_DEBUG_MODE
|
||||
# https://github.com/abseil/abseil-cpp/issues/760
|
||||
# https://github.com/google/sanitizers/issues/953
|
||||
build:clang-tsan --test_env="TSAN_OPTIONS=report_atomic_races=0"
|
||||
build:clang-tsan --test_timeout=120,600,1500,4800
|
||||
build:tsan --test_env="TSAN_OPTIONS=report_atomic_races=0"
|
||||
build:tsan --test_timeout=120,600,1500,4800
|
||||
|
||||
# Clang MSAN - this is the base config for remote-msan and docker-msan. To run this config without
|
||||
# our build image, follow https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo
|
||||
# with libc++ instruction and provide corresponding `--copt` and `--linkopt` as well.
|
||||
build:clang-msan --action_env=ENVOY_MSAN=1
|
||||
build:clang-msan --config=sanitizer
|
||||
build:clang-msan --build_tag_filters=-no_san
|
||||
build:clang-msan --test_tag_filters=-no_san
|
||||
build:clang-msan --define ENVOY_CONFIG_MSAN=1
|
||||
build:clang-msan --copt -fsanitize=memory
|
||||
build:clang-msan --linkopt -fsanitize=memory
|
||||
build:clang-msan --linkopt -fuse-ld=lld
|
||||
build:clang-msan --copt -fsanitize-memory-track-origins=2
|
||||
build:clang-msan --copt -DMEMORY_SANITIZER=1
|
||||
build:clang-msan --test_env=MSAN_SYMBOLIZER_PATH
|
||||
# Base MSAN config
|
||||
build:msan --action_env=ENVOY_MSAN=1
|
||||
build:msan --config=sanitizer
|
||||
build:msan --build_tag_filters=-no_san
|
||||
build:msan --test_tag_filters=-no_san
|
||||
build:msan --define ENVOY_CONFIG_MSAN=1
|
||||
build:msan --copt -fsanitize=memory
|
||||
build:msan --linkopt -fsanitize=memory
|
||||
build:msan --copt -fsanitize-memory-track-origins=2
|
||||
build:msan --copt -DMEMORY_SANITIZER=1
|
||||
build:msan --test_env=MSAN_SYMBOLIZER_PATH
|
||||
# MSAN needs -O1 to get reasonable performance.
|
||||
build:clang-msan --copt -O1
|
||||
build:clang-msan --copt -fno-optimize-sibling-calls
|
||||
build:msan --copt -O1
|
||||
build:msan --copt -fno-optimize-sibling-calls
|
||||
|
||||
# Clang with libc++
|
||||
build:libc++ --config=clang
|
||||
build:libc++ --action_env=CXXFLAGS=-stdlib=libc++
|
||||
build:libc++ --action_env=LDFLAGS=-stdlib=libc++
|
||||
build:libc++ --action_env=BAZEL_CXXOPTS=-stdlib=libc++
|
||||
build:libc++ --action_env=BAZEL_LINKLIBS=-l%:libc++.a:-l%:libc++abi.a
|
||||
build:libc++ --action_env=BAZEL_LINKOPTS=-lm:-pthread
|
||||
build:libc++ --define force_libcpp=enabled
|
||||
build:clang-libc++ --config=libc++
|
||||
build:clang-libc++ --action_env=ARFLAGS=r
|
||||
build:libc++ --@envoy//bazel:libc++=true
|
||||
|
||||
|
||||
|
||||
build:libc++20 --config=libc++
|
||||
# gRPC has a lot of deprecated-enum-enum-conversion warning. Remove once it is addressed
|
||||
build:libc++20 --copt=-Wno-error=deprecated-enum-enum-conversion
|
||||
|
||||
# Optimize build for binary size reduction.
|
||||
build:sizeopt -c opt --copt -Os
|
||||
|
@ -241,7 +242,6 @@ build:coverage --action_env=GCOV=llvm-profdata
|
|||
build:coverage --copt=-DNDEBUG
|
||||
# 1.5x original timeout + 300s for trace merger in all categories
|
||||
build:coverage --test_timeout=390,750,1500,5700
|
||||
build:coverage --define=dynamic_link_tests=true
|
||||
build:coverage --define=ENVOY_CONFIG_COVERAGE=1
|
||||
build:coverage --cxxopt="-DENVOY_CONFIG_COVERAGE=1"
|
||||
build:coverage --test_env=HEAPCHECK=
|
||||
|
@ -260,6 +260,9 @@ build:coverage --define=no_debug_info=1
|
|||
# `--no-relax` is required for coverage to not err with `relocation R_X86_64_REX_GOTPCRELX`
|
||||
build:coverage --linkopt=-Wl,-s,--no-relax
|
||||
build:coverage --test_env=ENVOY_IP_TEST_VERSIONS=v4only
|
||||
build:coverage --define=dynamic_link_tests=false
|
||||
# Use custom report generator that also generates HTML
|
||||
build:coverage --coverage_report_generator=@envoy//tools/coverage:report_generator
|
||||
|
||||
build:test-coverage --test_arg="-l trace"
|
||||
build:test-coverage --test_arg="--log-path /dev/null"
|
||||
|
@ -267,6 +270,12 @@ build:test-coverage --test_tag_filters=-nocoverage,-fuzz_target
|
|||
build:fuzz-coverage --config=plain-fuzzer
|
||||
build:fuzz-coverage --run_under=@envoy//bazel/coverage:fuzz_coverage_wrapper.sh
|
||||
build:fuzz-coverage --test_tag_filters=-nocoverage
|
||||
# Existing fuzz tests don't need a full WASM runtime and in generally we don't really want to
|
||||
# fuzz dependencies anyways. On the other hand, disabling WASM reduces the build time and
|
||||
# resources required to build and run the tests.
|
||||
build:fuzz-coverage --define=wasm=disabled
|
||||
build:fuzz-coverage --config=fuzz-coverage-config
|
||||
build:fuzz-coverage-config --//tools/coverage:config=//test:fuzz_coverage_config
|
||||
|
||||
build:cache-local --remote_cache=grpc://localhost:9092
|
||||
|
||||
|
@ -275,38 +284,25 @@ build:rbe-toolchain --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
|
|||
build:rbe-toolchain --incompatible_enable_cc_toolchain_resolution=false
|
||||
|
||||
build:rbe-toolchain-clang --config=rbe-toolchain
|
||||
build:rbe-toolchain-clang --config=clang
|
||||
build:rbe-toolchain-clang --platforms=@envoy//bazel/rbe/toolchains:rbe_linux_clang_platform
|
||||
build:rbe-toolchain-clang --host_platform=@envoy//bazel/rbe/toolchains:rbe_linux_clang_platform
|
||||
build:rbe-toolchain-clang --crosstool_top=@envoy//bazel/rbe/toolchains/configs/linux/clang/cc:toolchain
|
||||
build:rbe-toolchain-clang --extra_toolchains=@envoy//bazel/rbe/toolchains/configs/linux/clang/config:cc-toolchain
|
||||
build:rbe-toolchain-clang --action_env=CC=clang --action_env=CXX=clang++
|
||||
|
||||
build:rbe-toolchain-clang-libc++ --config=rbe-toolchain
|
||||
build:rbe-toolchain-clang-libc++ --platforms=@envoy//bazel/rbe/toolchains:rbe_linux_clang_libcxx_platform
|
||||
build:rbe-toolchain-clang-libc++ --host_platform=@envoy//bazel/rbe/toolchains:rbe_linux_clang_libcxx_platform
|
||||
build:rbe-toolchain-clang-libc++ --crosstool_top=@envoy//bazel/rbe/toolchains/configs/linux/clang_libcxx/cc:toolchain
|
||||
build:rbe-toolchain-clang-libc++ --extra_toolchains=@envoy//bazel/rbe/toolchains/configs/linux/clang_libcxx/config:cc-toolchain
|
||||
build:rbe-toolchain-clang-libc++ --action_env=CC=clang --action_env=CXX=clang++
|
||||
build:rbe-toolchain-clang-libc++ --action_env=CXXFLAGS=-stdlib=libc++
|
||||
build:rbe-toolchain-clang-libc++ --action_env=LDFLAGS=-stdlib=libc++
|
||||
build:rbe-toolchain-clang-libc++ --define force_libcpp=enabled
|
||||
|
||||
build:rbe-toolchain-asan --config=clang-asan
|
||||
build:rbe-toolchain-asan --linkopt -fuse-ld=lld
|
||||
build:rbe-toolchain-asan --action_env=ENVOY_UBSAN_VPTR=1
|
||||
build:rbe-toolchain-asan --copt=-fsanitize=vptr,function
|
||||
build:rbe-toolchain-asan --linkopt=-fsanitize=vptr,function
|
||||
build:rbe-toolchain-asan --linkopt='-L/opt/llvm/lib/clang/14.0.0/lib/x86_64-unknown-linux-gnu'
|
||||
build:rbe-toolchain-asan --linkopt=-l:libclang_rt.ubsan_standalone.a
|
||||
build:rbe-toolchain-asan --linkopt=-l:libclang_rt.ubsan_standalone_cxx.a
|
||||
build:rbe-toolchain-arm64-clang --config=rbe-toolchain
|
||||
build:rbe-toolchain-arm64-clang --config=clang
|
||||
build:rbe-toolchain-arm64-clang --platforms=@envoy//bazel/rbe/toolchains:rbe_linux_arm64_clang_platform
|
||||
build:rbe-toolchain-arm64-clang --host_platform=@envoy//bazel/rbe/toolchains:rbe_linux_arm64_clang_platform
|
||||
build:rbe-toolchain-arm64-clang --crosstool_top=@envoy//bazel/rbe/toolchains/configs/linux/clang/cc:toolchain
|
||||
build:rbe-toolchain-arm64-clang --extra_toolchains=@envoy//bazel/rbe/toolchains/configs/linux/clang/config:cc-toolchain-arm64
|
||||
build:rbe-toolchain-arm64-clang --action_env=CC=clang --action_env=CXX=clang++
|
||||
|
||||
build:rbe-toolchain-msan --linkopt=-L/opt/libcxx_msan/lib
|
||||
build:rbe-toolchain-msan --linkopt=-Wl,-rpath,/opt/libcxx_msan/lib
|
||||
build:rbe-toolchain-msan --config=clang-msan
|
||||
|
||||
build:rbe-toolchain-tsan --linkopt=-L/opt/libcxx_tsan/lib
|
||||
build:rbe-toolchain-tsan --linkopt=-Wl,-rpath,/opt/libcxx_tsan/lib
|
||||
build:rbe-toolchain-tsan --config=clang-tsan
|
||||
# Sanitizer configs - CI uses the *-common configs directly
|
||||
# Note: clang config comes from rbe-toolchain-clang to avoid duplication
|
||||
|
||||
build:rbe-toolchain-gcc --config=rbe-toolchain
|
||||
build:rbe-toolchain-gcc --platforms=@envoy//bazel/rbe/toolchains:rbe_linux_gcc_platform
|
||||
|
@ -332,24 +328,26 @@ build:remote-windows --remote_download_toplevel
|
|||
build:remote-clang --config=remote
|
||||
build:remote-clang --config=rbe-toolchain-clang
|
||||
|
||||
build:remote-clang-libc++ --config=remote
|
||||
build:remote-clang-libc++ --config=rbe-toolchain-clang-libc++
|
||||
|
||||
build:remote-arm64-clang --config=remote
|
||||
build:remote-arm64-clang --config=rbe-toolchain-arm64-clang
|
||||
|
||||
|
||||
build:remote-gcc --config=remote
|
||||
build:remote-gcc --config=gcc
|
||||
build:remote-gcc --config=rbe-toolchain-gcc
|
||||
|
||||
build:remote-asan --config=remote
|
||||
build:remote-asan --config=rbe-toolchain-clang-libc++
|
||||
build:remote-asan --config=rbe-toolchain-asan
|
||||
build:remote-asan --config=rbe-toolchain-clang
|
||||
build:remote-asan --config=asan
|
||||
|
||||
build:remote-msan --config=remote
|
||||
build:remote-msan --config=rbe-toolchain-clang-libc++
|
||||
build:remote-msan --config=rbe-toolchain-msan
|
||||
build:remote-msan --config=rbe-toolchain-clang
|
||||
build:remote-msan --config=msan
|
||||
|
||||
build:remote-tsan --config=remote
|
||||
build:remote-tsan --config=rbe-toolchain-clang-libc++
|
||||
build:remote-tsan --config=rbe-toolchain-tsan
|
||||
build:remote-tsan --config=rbe-toolchain-clang
|
||||
build:remote-tsan --config=tsan
|
||||
|
||||
build:remote-msvc-cl --config=remote-windows
|
||||
build:remote-msvc-cl --config=msvc-cl
|
||||
|
@ -373,14 +371,15 @@ build:compile-time-options --define=deprecated_features=disabled
|
|||
build:compile-time-options --define=tcmalloc=gperftools
|
||||
build:compile-time-options --define=zlib=ng
|
||||
build:compile-time-options --define=uhv=enabled
|
||||
build:compile-time-options --config=libc++20
|
||||
# gRPC has a lot of deprecated-enum-enum-conversion warnings with C++20
|
||||
build:compile-time-options --copt=-Wno-error=deprecated-enum-enum-conversion
|
||||
build:compile-time-options --test_env=ENVOY_HAS_EXTRA_EXTENSIONS=true
|
||||
build:compile-time-options --@envoy//bazel:http3=False
|
||||
build:compile-time-options --@envoy//source/extensions/filters/http/kill_request:enabled
|
||||
|
||||
# Docker sandbox
|
||||
# NOTE: Update this from https://github.com/envoyproxy/envoy-build-tools/blob/main/toolchains/rbe_toolchains_config.bzl#L8
|
||||
build:docker-sandbox --experimental_docker_image=envoyproxy/envoy-build-ubuntu:d2be0c198feda0c607fa33209da01bf737ef373f@sha256:026fb6710a3e55716cc1aba129f613f9834212d2deb4ea875ac9d2c37ca19aa3
|
||||
build:docker-sandbox --experimental_docker_image=envoyproxy/envoy-build-ubuntu:f4a881a1205e8e6db1a57162faf3df7aed88eae8@sha256:b10346fe2eee41733dbab0e02322c47a538bf3938d093a5daebad9699860b814
|
||||
build:docker-sandbox --spawn_strategy=docker
|
||||
build:docker-sandbox --strategy=Javac=docker
|
||||
build:docker-sandbox --strategy=Closure=docker
|
||||
|
@ -392,24 +391,22 @@ build:docker-sandbox --experimental_enable_docker_sandbox
|
|||
build:docker-clang --config=docker-sandbox
|
||||
build:docker-clang --config=rbe-toolchain-clang
|
||||
|
||||
build:docker-clang-libc++ --config=docker-sandbox
|
||||
build:docker-clang-libc++ --config=rbe-toolchain-clang-libc++
|
||||
|
||||
build:docker-gcc --config=docker-sandbox
|
||||
build:docker-gcc --config=gcc
|
||||
build:docker-gcc --config=rbe-toolchain-gcc
|
||||
|
||||
build:docker-asan --config=docker-sandbox
|
||||
build:docker-asan --config=rbe-toolchain-clang-libc++
|
||||
build:docker-asan --config=rbe-toolchain-asan
|
||||
build:docker-asan --config=rbe-toolchain-clang
|
||||
build:docker-asan --config=asan
|
||||
|
||||
build:docker-msan --config=docker-sandbox
|
||||
build:docker-msan --config=rbe-toolchain-clang-libc++
|
||||
build:docker-msan --config=rbe-toolchain-msan
|
||||
build:docker-msan --config=rbe-toolchain-clang
|
||||
build:docker-msan --config=msan
|
||||
|
||||
build:docker-tsan --config=docker-sandbox
|
||||
build:docker-tsan --config=rbe-toolchain-clang-libc++
|
||||
build:docker-tsan --config=rbe-toolchain-tsan
|
||||
build:docker-tsan --config=rbe-toolchain-clang
|
||||
build:docker-tsan --config=tsan
|
||||
|
||||
# CI configurations
|
||||
build:remote-ci --config=ci
|
||||
|
@ -425,7 +422,6 @@ common:ci --test_output=errors
|
|||
# Shared fuzzing configuration.
|
||||
build:fuzzing --define=ENVOY_CONFIG_ASAN=1
|
||||
build:fuzzing --copt=-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
|
||||
build:fuzzing --config=libc++
|
||||
|
||||
# Fuzzing without ASAN. This is useful for profiling fuzzers without any ASAN artifacts.
|
||||
build:plain-fuzzer --config=fuzzing
|
||||
|
@ -436,13 +432,16 @@ build:plain-fuzzer --define=FUZZING_ENGINE=libfuzzer
|
|||
build:plain-fuzzer --copt=-fsanitize=fuzzer-no-link
|
||||
build:plain-fuzzer --linkopt=-fsanitize=fuzzer-no-link
|
||||
|
||||
# ASAN fuzzer
|
||||
build:asan-fuzzer --config=plain-fuzzer
|
||||
build:asan-fuzzer --config=clang-asan
|
||||
build:asan-fuzzer --config=asan
|
||||
build:asan-fuzzer --copt=-fno-omit-frame-pointer
|
||||
# Remove UBSAN halt_on_error to avoid crashing on protobuf errors.
|
||||
build:asan-fuzzer --test_env=UBSAN_OPTIONS=print_stacktrace=1
|
||||
build:asan-fuzzer --linkopt=-lc++
|
||||
|
||||
build:oss-fuzz --config=fuzzing
|
||||
build:oss-fuzz --config=libc++
|
||||
build:oss-fuzz --define=FUZZING_ENGINE=oss-fuzz
|
||||
build:oss-fuzz --@rules_fuzzing//fuzzing:cc_engine_instrumentation=oss-fuzz
|
||||
build:oss-fuzz --@rules_fuzzing//fuzzing:cc_engine_sanitizer=none
|
||||
|
@ -543,13 +542,14 @@ common:common-envoy-engflow --grpc_keepalive_timeout=30s
|
|||
|
||||
common:cache-envoy-engflow --remote_cache=grpcs://mordenite.cluster.engflow.com
|
||||
common:cache-envoy-engflow --remote_timeout=3600s
|
||||
# common:cache-envoy-engflow --remote_instance_name=llvm-18
|
||||
common:bes-envoy-engflow --bes_backend=grpcs://mordenite.cluster.engflow.com/
|
||||
common:bes-envoy-engflow --bes_results_url=https://mordenite.cluster.engflow.com/invocation/
|
||||
common:bes-envoy-engflow --bes_timeout=3600s
|
||||
common:bes-envoy-engflow --bes_upload_mode=fully_async
|
||||
common:bes-envoy-engflow --nolegacy_important_outputs
|
||||
common:rbe-envoy-engflow --remote_executor=grpcs://mordenite.cluster.engflow.com
|
||||
common:rbe-envoy-engflow --remote_default_exec_properties=container-image=docker://gcr.io/envoy-ci/envoy-build@sha256:6e494ff9bcfa96868cb43f1200f2126cdab39d62db52a5dda80c8ec1694a93ee
|
||||
common:rbe-envoy-engflow --remote_default_exec_properties=container-image=docker://gcr.io/envoy-ci/envoy-build@sha256:95d7afdea0f0f8881e88fa5e581db4f50907d0745ac8d90e00357ac1a316abe5
|
||||
common:rbe-envoy-engflow --jobs=200
|
||||
common:rbe-envoy-engflow --define=engflow_rbe=true
|
||||
|
||||
|
|
32
go.mod
32
go.mod
|
@ -1,35 +1,33 @@
|
|||
module istio.io/proxy
|
||||
|
||||
go 1.22.8
|
||||
|
||||
toolchain go1.23.4
|
||||
go 1.24
|
||||
|
||||
require (
|
||||
github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78
|
||||
github.com/envoyproxy/go-control-plane v0.13.5-0.20250117184738-ce0bc40c5505
|
||||
github.com/envoyproxy/go-control-plane/envoy v1.32.3
|
||||
github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f
|
||||
github.com/envoyproxy/go-control-plane v0.13.5-0.20250705082150-f8f2cd45490a
|
||||
github.com/envoyproxy/go-control-plane/envoy v1.32.4
|
||||
github.com/golang/protobuf v1.5.4
|
||||
github.com/google/go-cmp v0.6.0
|
||||
github.com/prometheus/client_model v0.6.0
|
||||
github.com/google/go-cmp v0.7.0
|
||||
github.com/prometheus/client_model v0.6.1
|
||||
github.com/prometheus/common v0.46.0
|
||||
go.opentelemetry.io/proto/otlp v1.1.0
|
||||
go.starlark.net v0.0.0-20240123142251-f86470692795
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53
|
||||
google.golang.org/grpc v1.69.4
|
||||
google.golang.org/protobuf v1.36.3
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a
|
||||
google.golang.org/grpc v1.73.0
|
||||
google.golang.org/protobuf v1.36.6
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
sigs.k8s.io/yaml v1.4.0
|
||||
)
|
||||
|
||||
require (
|
||||
cel.dev/expr v0.16.2 // indirect
|
||||
cel.dev/expr v0.23.0 // indirect
|
||||
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 // indirect
|
||||
github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect
|
||||
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 // indirect
|
||||
github.com/kr/text v0.2.0 // indirect
|
||||
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
|
||||
golang.org/x/net v0.33.0 // indirect
|
||||
golang.org/x/sys v0.28.0 // indirect
|
||||
golang.org/x/text v0.21.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 // indirect
|
||||
golang.org/x/net v0.40.0 // indirect
|
||||
golang.org/x/sys v0.33.0 // indirect
|
||||
golang.org/x/text v0.25.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a // indirect
|
||||
)
|
||||
|
|
78
go.sum
78
go.sum
|
@ -1,18 +1,18 @@
|
|||
cel.dev/expr v0.16.2 h1:RwRhoH17VhAu9U5CMvMhH1PDVgf0tuz9FT+24AfMLfU=
|
||||
cel.dev/expr v0.16.2/go.mod h1:gXngZQMkWJoSbE8mOzehJlXQyubn/Vg0vR9/F3W7iw8=
|
||||
github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI=
|
||||
github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8=
|
||||
cel.dev/expr v0.23.0 h1:wUb94w6OYQS4uXraxo9U+wUAs9jT47Xvl4iPgAwM2ss=
|
||||
cel.dev/expr v0.23.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
|
||||
github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f h1:C5bqEmzEPLsHm9Mv73lSE9e9bKV23aB1vxOsmZrkl3k=
|
||||
github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/envoyproxy/go-control-plane v0.13.5-0.20250117184738-ce0bc40c5505 h1:687DRhWBy5nXIsScz2AnHq2QcDxoGnI545C6hBe9w50=
|
||||
github.com/envoyproxy/go-control-plane v0.13.5-0.20250117184738-ce0bc40c5505/go.mod h1:yz4MTDY0h9ObVlfP15ykR737j5tP/z64qu0OzSRoobk=
|
||||
github.com/envoyproxy/go-control-plane/envoy v1.32.3 h1:hVEaommgvzTjTd4xCaFd+kEQ2iYBtGxP6luyLrx6uOk=
|
||||
github.com/envoyproxy/go-control-plane/envoy v1.32.3/go.mod h1:F6hWupPfh75TBXGKA++MCT/CZHFq5r9/uwt/kQYkZfE=
|
||||
github.com/envoyproxy/go-control-plane v0.13.5-0.20250705082150-f8f2cd45490a h1:k0yPxzI8NWvWx9TKX3ysJabi1XEkrKmutgfIe27WX7M=
|
||||
github.com/envoyproxy/go-control-plane v0.13.5-0.20250705082150-f8f2cd45490a/go.mod h1:whHrEUXbTAzBJlzd3Gz4us5zEFP1gL6o3LbfA+a/xbg=
|
||||
github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A=
|
||||
github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw=
|
||||
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI=
|
||||
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4=
|
||||
github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM=
|
||||
github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4=
|
||||
github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8=
|
||||
github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU=
|
||||
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
|
@ -20,8 +20,8 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre
|
|||
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
||||
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 h1:Wqo399gCIufwto+VfwCSvsnfGpF/w5E9CNxSwbpD6No=
|
||||
|
@ -34,44 +34,46 @@ github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgm
|
|||
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos=
|
||||
github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8=
|
||||
github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
|
||||
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
|
||||
github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y=
|
||||
github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ=
|
||||
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
|
||||
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
|
||||
go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
|
||||
go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
|
||||
go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY=
|
||||
go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=
|
||||
go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
|
||||
go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
|
||||
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
||||
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
|
||||
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
|
||||
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
|
||||
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
|
||||
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
|
||||
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
|
||||
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
|
||||
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
|
||||
go.opentelemetry.io/proto/otlp v1.1.0 h1:2Di21piLrCqJ3U3eXGCTPHE9R8Nh+0uglSnOyxikMeI=
|
||||
go.opentelemetry.io/proto/otlp v1.1.0/go.mod h1:GpBHCBWiqvVLDqmHZsoMM3C5ySeKTC7ej/RNTae6MdY=
|
||||
go.starlark.net v0.0.0-20240123142251-f86470692795 h1:LmbG8Pq7KDGkglKVn8VpZOZj6vb9b8nKEGcg9l03epM=
|
||||
go.starlark.net v0.0.0-20240123142251-f86470692795/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM=
|
||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
||||
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
|
||||
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
|
||||
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 h1:fVoAXEKA4+yufmbdVYv+SE73+cPZbbbe8paLsHfkK+U=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53/go.mod h1:riSXTwQ4+nqmPGtobMFyW5FqVAmIs0St6VPp4Ug7CE4=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 h1:X58yt85/IXCx0Y3ZwN6sEIKZzQtDEYaBWrDvErdXrRE=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
|
||||
google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A=
|
||||
google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
|
||||
google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU=
|
||||
google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
|
||||
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
|
||||
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a h1:SGktgSolFCo75dnHJF2yMvnns6jCmHFJ0vE4Vn2JKvQ=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a/go.mod h1:a77HrdMjoeKbnd2jmgcWdaS++ZLZAEq3orIOAEIKiVw=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
|
||||
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
|
||||
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
|
||||
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
|
||||
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
|
|
|
@ -249,6 +249,8 @@ public:
|
|||
});
|
||||
}
|
||||
|
||||
void onWorkerThreadInitialized() override{};
|
||||
|
||||
private:
|
||||
Server::Configuration::ServerFactoryContext& factory_context_;
|
||||
const istio::workload::BootstrapExtension config_;
|
||||
|
|
|
@ -19,6 +19,7 @@ load(
|
|||
"@envoy//bazel:envoy_build_system.bzl",
|
||||
"envoy_cc_library",
|
||||
"envoy_cc_test",
|
||||
"envoy_proto_library",
|
||||
)
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
@ -46,12 +47,7 @@ envoy_cc_library(
|
|||
],
|
||||
)
|
||||
|
||||
cc_proto_library(
|
||||
name = "config_cc_proto",
|
||||
deps = ["config"],
|
||||
)
|
||||
|
||||
proto_library(
|
||||
envoy_proto_library(
|
||||
name = "config",
|
||||
srcs = ["config.proto"],
|
||||
)
|
||||
|
|
|
@ -80,6 +80,9 @@ absl::optional<PeerInfo> XDSMethod::derivePeerInfo(const StreamInfo::StreamInfo&
|
|||
}
|
||||
}
|
||||
}
|
||||
if (!peer_address) {
|
||||
return {};
|
||||
}
|
||||
ENVOY_LOG_MISC(debug, "Peer address: {}", peer_address->asString());
|
||||
return metadata_provider_->GetMetadata(peer_address);
|
||||
}
|
||||
|
@ -162,10 +165,8 @@ std::string MXPropagationMethod::computeValue(
|
|||
|
||||
void MXPropagationMethod::inject(const StreamInfo::StreamInfo& info, Http::HeaderMap& headers,
|
||||
Context& ctx) const {
|
||||
if (skip_external_clusters_) {
|
||||
if (skipMXHeaders(info)) {
|
||||
return;
|
||||
}
|
||||
if (skipMXHeaders(skip_external_clusters_, info)) {
|
||||
return;
|
||||
}
|
||||
if (!downstream_ || ctx.request_peer_id_received_) {
|
||||
headers.setReference(Headers::get().ExchangeMetadataHeaderId, id_);
|
||||
|
@ -309,19 +310,34 @@ Http::FilterHeadersStatus Filter::decodeHeaders(Http::RequestHeaderMap& headers,
|
|||
return Http::FilterHeadersStatus::Continue;
|
||||
}
|
||||
|
||||
bool MXPropagationMethod::skipMXHeaders(const StreamInfo::StreamInfo& info) const {
|
||||
bool MXPropagationMethod::skipMXHeaders(const bool skip_external_clusters,
|
||||
const StreamInfo::StreamInfo& info) const {
|
||||
// We skip metadata in two cases.
|
||||
// 1. skip_external_clusters is enabled, and we detect the upstream as external.
|
||||
const auto& cluster_info = info.upstreamClusterInfo();
|
||||
if (cluster_info && cluster_info.value()) {
|
||||
const auto& cluster_name = cluster_info.value()->name();
|
||||
if (cluster_name == "PassthroughCluster") {
|
||||
// PassthroughCluster is always considered external
|
||||
if (skip_external_clusters && cluster_name == "PassthroughCluster") {
|
||||
return true;
|
||||
}
|
||||
const auto& filter_metadata = cluster_info.value()->metadata().filter_metadata();
|
||||
const auto& it = filter_metadata.find("istio");
|
||||
// Otherwise, cluster must be tagged as external
|
||||
if (it != filter_metadata.end()) {
|
||||
const auto& skip_mx = it->second.fields().find("external");
|
||||
if (skip_external_clusters) {
|
||||
const auto& skip_mx = it->second.fields().find("external");
|
||||
if (skip_mx != it->second.fields().end()) {
|
||||
if (skip_mx->second.bool_value()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
const auto& skip_mx = it->second.fields().find("disable_mx");
|
||||
if (skip_mx != it->second.fields().end()) {
|
||||
return skip_mx->second.bool_value();
|
||||
if (skip_mx->second.bool_value()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -96,7 +96,7 @@ private:
|
|||
const std::string id_;
|
||||
const std::string value_;
|
||||
const bool skip_external_clusters_;
|
||||
bool skipMXHeaders(const StreamInfo::StreamInfo&) const;
|
||||
bool skipMXHeaders(const bool, const StreamInfo::StreamInfo&) const;
|
||||
};
|
||||
|
||||
class FilterConfig : public Logger::Loggable<Logger::Id::filter> {
|
||||
|
|
|
@ -43,7 +43,6 @@ envoy_cc_library(
|
|||
"//source/extensions/common/workload_discovery:api_lib",
|
||||
"//source/extensions/filters/network/metadata_exchange/config:metadata_exchange_cc_proto",
|
||||
"@com_google_absl//absl/base:core_headers",
|
||||
"@com_google_absl//absl/base:endian",
|
||||
"@com_google_absl//absl/strings",
|
||||
"@envoy//envoy/local_info:local_info_interface",
|
||||
"@envoy//envoy/network:connection_interface",
|
||||
|
|
Loading…
Reference in New Issue