From e95c1d908869ff88f3786702d91a75e9bf03ccba Mon Sep 17 00:00:00 2001 From: phlax Date: Thu, 24 Oct 2024 17:42:10 +0100 Subject: [PATCH 01/37] ci/codeql: Only run on main branch (#36806) this is currently triggering on the release branches codeql uses ci cache which is very limited and running this on multiple branches is expiring caches making this take a very long time Signed-off-by: Ryan Northey --- .github/workflows/codeql-push.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql-push.yml b/.github/workflows/codeql-push.yml index 267020a223..8785a68e46 100644 --- a/.github/workflows/codeql-push.yml +++ b/.github/workflows/codeql-push.yml @@ -8,9 +8,11 @@ on: paths: - include/** - source/common/** - branches-ignore: - - dependabot/** + branches: + - main pull_request: + branches: + - main concurrency: group: ${{ github.head_ref || github.run_id }}-${{ github.workflow }} From ebc42a032e1e177448f024ecd64a8f1662545e5a Mon Sep 17 00:00:00 2001 From: phlax Date: Mon, 28 Oct 2024 11:20:54 +0000 Subject: [PATCH 02/37] bazel/ci: Add repo customizations (#36831) This allows per-repo configuration/customization of the bazel (eg rbe) settings Signed-off-by: Ryan Northey --- .bazelrc | 2 +- .github/workflows/_run.yml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.bazelrc b/.bazelrc index 3c251f2d68..631ae2a44a 100644 --- a/.bazelrc +++ b/.bazelrc @@ -530,7 +530,6 @@ build:rbe-envoy-engflow --define=engflow_rbe=true build:remote-envoy-engflow --config=common-envoy-engflow build:remote-envoy-engflow --config=cache-envoy-engflow -build:remote-envoy-engflow --config=bes-envoy-engflow build:remote-envoy-engflow --config=rbe-envoy-engflow ############################################################################# @@ -555,6 +554,7 @@ common:debug --config=debug-sandbox common:debug --config=debug-coverage common:debug --config=debug-tests +try-import %workspace%/repo.bazelrc try-import %workspace%/clang.bazelrc try-import %workspace%/user.bazelrc try-import %workspace%/local_tsan.bazelrc diff --git a/.github/workflows/_run.yml b/.github/workflows/_run.yml index 0eb58ff567..f5555070f1 100644 --- a/.github/workflows/_run.yml +++ b/.github/workflows/_run.yml @@ -286,6 +286,10 @@ jobs: BAZEL_BUILD_EXTRA_OPTIONS="--google_credentials=/build/${GCP_SERVICE_ACCOUNT_KEY_FILE} --config=remote-ci --config=rbe-google" echo "BAZEL_BUILD_EXTRA_OPTIONS=${BAZEL_BUILD_EXTRA_OPTIONS}" >> "$GITHUB_ENV" + - run: | + echo "${{ vars.ENVOY_CI_BAZELRC }}" > repo.bazelrc + if: ${{ vars.ENVOY_CI_BAZELRC }} + - uses: envoyproxy/toolshed/gh-actions/github/run@actions-v0.2.37 name: Run CI ${{ inputs.command }} ${{ inputs.target }} with: From d3af95807720496d7ccecf763451bf650270ee6f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 08:49:43 +0000 Subject: [PATCH 03/37] build(deps): bump distroless/base-nossl-debian12 from `e130c09` to `aa91f01` in /ci (#36847) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Ryan Northey --- ci/Dockerfile-envoy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/Dockerfile-envoy b/ci/Dockerfile-envoy index a4a5a8303b..6af270df35 100644 --- a/ci/Dockerfile-envoy +++ b/ci/Dockerfile-envoy @@ -59,7 +59,7 @@ COPY --chown=0:0 --chmod=755 \ # STAGE: envoy-distroless -FROM gcr.io/distroless/base-nossl-debian12:nonroot@sha256:e130c09889f3b6c05dacd52d2612c30811e04eefe3280a6659037cfdd018de6c AS envoy-distroless +FROM gcr.io/distroless/base-nossl-debian12:nonroot@sha256:aa91f01b56d02af049a3984dd5dd7c0ea39c97f398ac415cfc92b085bd63f6fd AS envoy-distroless EXPOSE 10000 ENTRYPOINT ["/usr/local/bin/envoy"] CMD ["-c", "/etc/envoy/envoy.yaml"] From afcb7d2eb64cccefa2418fc1a506813c4c46f2bf Mon Sep 17 00:00:00 2001 From: phlax Date: Tue, 29 Oct 2024 18:32:46 +0000 Subject: [PATCH 04/37] ci/rbe: Boost cpu for flakey integration test (#36897) Signed-off-by: Ryan Northey --- test/integration/BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/BUILD b/test/integration/BUILD index 1977ebfce3..75a8cd21c8 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -1482,7 +1482,7 @@ envoy_cc_test( name = "websocket_integration_test", size = "large", srcs = ["websocket_integration_test.cc"], - rbe_pool = "6gig", + rbe_pool = "2core", tags = [ "cpu:3", ], From f7f0a80edac7e3fd6e37330b7307416c67f954ab Mon Sep 17 00:00:00 2001 From: "publish-envoy[bot]" <140627008+publish-envoy[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 15:55:16 +0000 Subject: [PATCH 05/37] repo: Release v1.32.1 **Summary of changes**: - CI and release container updates **Docker images**: https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.32.1 **Docs**: https://www.envoyproxy.io/docs/envoy/v1.32.1/ **Release notes**: https://www.envoyproxy.io/docs/envoy/v1.32.1/version_history/v1.32/v1.32.1 **Full changelog**: https://github.com/envoyproxy/envoy/compare/v1.32.0...v1.32.1 Signed-off-by: Kateryna Nezdolii Signed-off-by: Ryan Northey Signed-off-by: publish-envoy[bot] <140627008+publish-envoy[bot]@users.noreply.github.com> --- VERSION.txt | 2 +- changelogs/1.29.10.yaml | 6 ++++++ changelogs/1.30.7.yaml | 6 ++++++ changelogs/1.31.3.yaml | 6 ++++++ changelogs/current.yaml | 19 ++++--------------- docs/inventories/v1.29/objects.inv | Bin 168427 -> 168441 bytes docs/inventories/v1.30/objects.inv | Bin 172187 -> 172251 bytes docs/inventories/v1.31/objects.inv | Bin 175768 -> 175843 bytes docs/inventories/v1.32/objects.inv | Bin 0 -> 178531 bytes docs/versions.yaml | 7 ++++--- 10 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 changelogs/1.29.10.yaml create mode 100644 changelogs/1.30.7.yaml create mode 100644 changelogs/1.31.3.yaml create mode 100644 docs/inventories/v1.32/objects.inv diff --git a/VERSION.txt b/VERSION.txt index 0c15197bbb..96cd6ee1e7 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -1.32.1-dev +1.32.1 diff --git a/changelogs/1.29.10.yaml b/changelogs/1.29.10.yaml new file mode 100644 index 0000000000..5dc086dcaf --- /dev/null +++ b/changelogs/1.29.10.yaml @@ -0,0 +1,6 @@ +date: October 29, 2024 + +bug_fixes: +- area: tracing + change: | + Fixed a bug where the OpenTelemetry tracer exports the OTLP request even when no spans are present. diff --git a/changelogs/1.30.7.yaml b/changelogs/1.30.7.yaml new file mode 100644 index 0000000000..5dc086dcaf --- /dev/null +++ b/changelogs/1.30.7.yaml @@ -0,0 +1,6 @@ +date: October 29, 2024 + +bug_fixes: +- area: tracing + change: | + Fixed a bug where the OpenTelemetry tracer exports the OTLP request even when no spans are present. diff --git a/changelogs/1.31.3.yaml b/changelogs/1.31.3.yaml new file mode 100644 index 0000000000..5dc086dcaf --- /dev/null +++ b/changelogs/1.31.3.yaml @@ -0,0 +1,6 @@ +date: October 29, 2024 + +bug_fixes: +- area: tracing + change: | + Fixed a bug where the OpenTelemetry tracer exports the OTLP request even when no spans are present. diff --git a/changelogs/current.yaml b/changelogs/current.yaml index 9ecf0d6e48..faeca80a68 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -1,17 +1,6 @@ -date: Pending - -behavior_changes: -# *Changes that are expected to cause an incompatibility if applicable; deployment changes are likely required* - -minor_behavior_changes: -# *Changes that may cause incompatibilities for some users, but should not for most* +date: October 29, 2024 bug_fixes: -# *Changes expected to improve the state of the world and are unlikely to have negative effects* - -removed_config_or_runtime: -# *Normally occurs at the end of the* :ref:`deprecation period ` - -new_features: - -deprecated: +- area: release + change: | + Container updates. diff --git a/docs/inventories/v1.29/objects.inv b/docs/inventories/v1.29/objects.inv index d6586b52fa2adff9ee22a94e9c35b961095f6d11..f39a46f04de2fccd53df68ab00b93ded2987b0b7 100644 GIT binary patch delta 23192 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 delta 23177 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 USVUw({e7yo=~vNF6>iY~0eSql!2kdN delta 11717 zcmXY1bzD?i7p1!;rMnauy1P3iL_k209%&G`bho5{l+xW@Lo;-Dhjb$#@XdSg`){55 zJ9n>h_StLgduQ%)H%3M`M!XC>e}HU=EPTBz0udN6Ncnnz{GR{(EV<3dVy)v!%0o^k z_S)#@H4625$r_6-J-DM7cM}WS{;5mCgq-dp&Nj_TNlo?cHeAX{#&YM=8#jIu${(~u z-fKQUiV8K@@Lk_}V%WQjtX71`tnwZ;s2SYi{>;d+In!-jgD}v0GH_C#q1s2yxBH2U zTUbew_@3=AT4!H|nG{h6;{q74rPi}l-F4JrFG*m$SNc=N)o39c_8mT+puG6 zRnz5WEn;%?NcvT?_OFZe3+?jb_oU$m*CuB8w`&2+J1>YYmvLvzM-~v9WVSFN+JhaV zRjq5S6K;;zq?XG2bLuQ>-H93MbL?E}9gpCftYqfnEK~C{WmVG$Vex&)v7>jDo5>D9 zSerS7tBt8TjrG-y!&&aCtL2++u67-Um)GTSd(MY83OVmfYm+j^k0Ed>x2Vb8@*dPh z?>5MKOzDms%crb!oHWoffawh2axEYpO*`cESmvFi3 z>XX(td5*N{Aq2;ggb~!H^CVtJ=0!q1y-=FT#?-;zviz4Df5bI`Yj=;;@U&MK70C)pBN+L@w8LHgF*QNG$Q!QVCP^=6w*q{{Su8L_Gsu z9)ZKPBH0Rt=ir_M;$*H!PuCy-DY9z+{%(lq)D+)GPE9DxI&rg=(gw~6F5oObBL^Ie z|Lx2xhU5c*L05?Pcs&D~jt2(2+29G&j3ku|bv^y>i@PC>o)CAO)xvDR>mDPev$QRj zyRQ=2e+}_}FJbNCFIXA2!WF3}K5jYee?G>#b zmU=jgX;lykFJRrmEqES$fOAL5L9D7gUmXatsd8qdzhYW9d3peDMFd3OK_^)ie@g3| zVcxL<3!mf|8?-MSugh&+Qg>12)UQsQ^@(rmslRRgu_PR5fk^tupbT_9Zioh9l3D`$ z<<6JFb~Sp*4vBZe*aMB7oqkSVxxl)~yhRYi3e5ct0w)zQAW&gk|7HKB3Dy1XzTV;0 z0-Vk#mpofBU=MrVyf(F5)uE#L!C;Cx)!Ge#lBse&a-~U>qfIX&2HRYJ``NqG;r7F* zEeMTyAABcL-~qqug>lW4TH=O41Kf6M6)%R^&-B_$(({kk&-AwWFTC0K89E@(J?+At zoUJe=uWc#N*8Wd;fhsNf_3t4&8xqLz7Ey>z7bGzGY!Vr7oq=J9EzUg-}Jx;k$5PnD!(+{hfY$;FBI-X1o3q>wpe- zWuQHj-B86#8=gbqqg{T>C%LI-UuhO$i`I~#O0e{tppD)Sjd0h|x91u5BLmn=ByW(X zI2@11Y|ofap5Pd_j>Pb|%u)y45nd6Ey*)(s%ElQ<_?+ku&#to~`AC`hI`!Ngf#mIH z&)pVdu?ZS1c=+pTwe!uD%WAY!zSVQ7$M4~@M2VhkpzdDlFJF~qx&l^c>8TzQPLwr<5ex!W^9}(sXsgs-Yfb2QpafH)xbbvMdMUevA`ux zkXEQt2q@fJW_04dzuWmL=s+x$|G_GbY08nwU8|b{-*V@kQ1pj0DYH&c>i2X|AT4w% z4=Xb*RoV+d1eva7dvhl>&<2BfXV?Uz)|@;Mg`#~} zCN3LI1Bq`(9?PSrdImaI@ig&wioI8fwfH8WZz`J!&QViEyb)Ld$6-YT=VSIt1e%-g z6{bQgFMm#lD~aa4UM~&D>kS%^*@})x3!7*(Y$4VYLH!ScEc|pEe;PMx4h^v<91q+z zW5*CAUD=DR>%oJ)q~iqd4impk)cp0iswfY2{P~Rqf|_R=sa5GU;wllc+aPZ$dnEQL zrkj?@+R3kdYZW({Y%h$cLO0#{mvaBf(9mvhh3Pv9=XHSpFwrWV-ukHTCfkh_thj`3_-BczLEw1aL%qdSK%r)CThw4>B$(p>yLw~%Rat>l}rKKDV zujzZkuzm@yKx)hV_uQly%%jQFXjJ_t0p;K)}0)@u(>n&N(! zsq*$zejfx@g1*vJu3+5AqUTCwHLh9o1&`U(FFpt)K&1l*ldpiGADyqMAu-iZti+dZ zQJ99aI<6f@p6%$;>Qw!I8!v?%$PMf6uIZEJ$3w*>!nP3Oay~HUtWmZ;uQnfTp{)8^ z4F?=+cGE;HRe1$Hi}ASbq#ZpcMVk&dM!k-!$GyJcMsonddv~l8Slm|Et!}{tDa#+2 z{|xKF1LOT=oF->nI484@C_IHH?Yb-!Z3(yLCm)wEZ^;!==1bBqr|eh{1B$RB>!2jN z&fq)&930>77@cxk_X26w?xB6TJVyh?u4XmA_uh7*kw_FPyt-;*=S8KroY{l5p$;k5 zC%+My)FI1xD;|{MM+JVhODwEXMS3ZbmSnYSzyeR}PzKgKp|Ehf=gAk+*0SCdf$1Mx zrk39Ntjq{;78_okckw0UwsBDBadO+upr%HmX?Nv{#*51g0MuwAJ(B%apf80abS3c;0d{l>Mrn#g$FM_zPPMXHVx&OPe{VEi$2)8mbE*D`j}PtkQ_9)@%39k-2BS3l75 z!Sjzk$8FbmY%E)AbHF{}^V&_p)JpTU7n-7~WnOObrpSQn*8}^!<%a7Fe!jk$x@0Ea zT3=Zd2U}kXM>f}=CZs}O5n`p{i=YU7ru@ldV+^GbLRU>CR#3K|z#f=g{pEF#|8sLA;h9!SevD*DZXSwiEX*Mmu=kMp>1MtL_tjOwPK4)t(<=I=?-sMs)m5p zUM_9UsO%(s$x6^0OjJES1QAHA$(7K1(2?o9roAs2ML8`4E%R9LKLN7#C|%=S9wf&> zDdI#kgn~BQPvWMPWT$#mgDSeZ6%bmRUH!C*AiCoF8*4|Wa&PNFftS40jfr&24xc$} zH1jbeL-U`%8j#;W9VxhQWJ%^-^5=? z(KL4M?M%->iGRclc)@a(pzTZaba#0>mZ_NZPqMwX+rIZ8bc{E(ZRsKVRWT zLu;@{+|c?=e7HC}`JLh^I$EPhrKNk65hOw}G52T~QXv5dGC(N)p3_z#EuNmX|4ZjG zw@su~)(bFx96;s^Cx0MMlsoy_ZL%;Qdt@P|^>bA5!EC-chkGFV5(2Y#eNk6r7FuLS zQMkB6&_Tq{^KevIk?TYn6cq*(>F5|cQjPNUJ^U?7VF>BNL~At;{T3Mt0^tLfLp9ci z1PrlF)ONh5EI{9iLRteXl|AN%CH+203Rsa0bm!^Gq4&>WX3HVTArY;5MKwYEFkY$} zf(^*2XZIf=<#u-YDW<0tm{Kv^NyFmt|V#K4=bUZH|JX zPQfDCJs(*_6^cak(L}PHOH-+E?I<+*jPze zLjfspC8a0`SZVs24Psj85{X54yu*Cn>|x!KOe5k9Wu(Jo6wVa!k0dE4x9THS>LYmU zDXgAs1>XI=&~BsEM1X5IU=1)}iQS;2#Ufg#r#R^)$bl3Z_nn<99D;+_&sq8DU9rr; zf--iVeC}ILX&`sAos~}IOsotX}1nq`xDwr_w+b06c zxEzEM)S4mUPftPwvKVesW`Ws&zhCRaI8|?Z8TuDeWm`Bp_7tS<2y74Vn@9V&U~Wg8 zeL!`zEX&~fK;WG)>O)^(q0{h}@O|_WGSt!@t1UUW(VF5dG{x$A1P|PX!sSj4EEZ-; zV5DV2N;dchJhEzo|MYO12(xu}itV-Khd@&g{5`PF?cXyTL(kFm8Y-A+yboD;c7Z1xp!{m*>3k=2mkjWk(HDZ;lkKO&T>q z^Xrkb8cMY+q>6TM1;?k{1xOm6lx2Jj2Fy>qQ^Vw(`bMN71|mnCVQyT> zwK4f8bCGqGI2WsZi)R~!siguqQB;up59>$ei*Dz_cJ5S7VE}zn;dNLO;#r~n%e5CJB)y&EYUl@^7E$iizdO5>`7)bj+{<6C?C5czR=EKK+Tsd61I z8(b$Z;q1f^3-%|a&vh-nlqyO)O+U~g#%aZHe;aKc#AQ!iVT`MZgGCn+6955*x*us* zVT+Wit98!pda69a%_i_*RHk`5INx^jQjAZZa^eO(m)~{C49^V&6o%%do{Yzy*@_^p zrBOu1ux-R4_J|3Q!B1tB9jj_C!GB4$Gu&r}S5M}ale|nA!l4@*`-s#rabb)7T)8wR zR3<);EX?^uI!L2(&(k$m{s{ngl}B16NCvU3WMhzwNxTRXgtGtHH^te_&}c2II7?NK z{>*n6hUl0f@E794kfuxb>;l(4ReNdcBbYcv_mXOmBDnj5{zSVTk6>UKoA1L5gBUYf zchSxV0W>CUr{#C0^Sf-Dgc;*6eb;LUm9c1Tx{k%~m$TN)RX^?RxrYOYpVw5DzK(wv zJG<=;J*YE01}`i-{yG#IMMrkqP4U%TN{p*q+wLZ)M$eI3zGGOvjZ&M zNLNbMen?nTvwRYywxlXR+i8t3N{oLYd-(M&ioee+KhD)@*a6>sdR$cTz-5xTrT!N8 zaHUxpo}(#96)X4SN^U9uQq()Ss+mg&hkKp$%gAtv4dP()5V{$YX2<48W$>Y_ffRtE zil8-NEqg=bao5otY)aJ_jEj$)I=@=Ez!hA03zUy_btFU-Pvv9=4INn{GUnIr{~0hw zcDEw1>p34O4=+(>dquErvfIkEZhX~f&ig!X`PYZ{Wef$>BLNSO^ZIkcXXTFmAJJ%;kYANNuUY7~`SOyWWX<;dC>Wg2^Y_vX?BlFl zuh^iy{^<BqTcu=a- z4Kng(U?lh>jd7Z3;sqx4nCxHd+(G*jc7Y2U%uZ+Fd@C`adyZrIl;^pfN`e`T^Ut*a zZn{}*Mxg@fXzXy%uM{>Z=SdB$VD#b?wjov`b6ZJO)_Ps^u_81c#E--uR3K*=W1lym z+g~_}1W8cFLMEY!$|s4D&Ney54NgO7kD%=Y%1><1p?x1&EE>O$7-v$R}(9Qs8! z>LzW3M*>{jc=9E79!deEI<);LNWaV91-@eI>6OfBpH)u$YgvfW%e$up{fCZrtNh)T z3)|RASGvwRKckP7Tr-y@hi-e~*>^+>rsq&R7{!N-dl&^@mKM*C$u&Mk!92QXtYG{n zboL7nk+uCs^!67f-OPvpp4>SGM$un+s@Oo1O(j#zU(%fxULG#1iAF7m97&JyU+mwh zi%TuScQ%;wdRbamSs6iZoJvb96?Eeh;LT&J|2`=*iWT%kW2b@YiCH(%i9VUIjIJ}b*uqt}#6*;5vf zBO_yJt9VW`)i=lD&F_jX=CVMvQZ1EJc9rf+BPD&M{8l?qhplHuGL67)^4EWrW90gK znz%wvIKRMWaZK_7(=Pf{e_}GI1&WnQY2DDS1(4>L8Prg2ze|P z&WGm~Fty2?p^iJ@;_O|=3y01DbJPDU${V(*DbA&c{fJ8Aq@8dK5I2o{Z;yV>E4IO2 zxb$9Pzb3lh(J0ZU%R~Gk{-AtwC>9nU=)Nb&-z6ZI#K>}L*82DzVVMY9Mqb49p1C`A zt7JZ=$msr-lVU4$PTTi%+FgEb{?gacUCLK2J%v(BN*-nKbCnTsAV8+`u^$DRX0%*? z9gM*PGIOPN6)iMV{Wp)w#V5*OdAT$)v_s$53DIdfw0kJMq8M9&7+*e08V`ngi(X1a z!}j41o$GL-&u%z>EP!b-UtPjmb;C#AN{m}men&t`Dej+~%6kO$lMqIu6Iqy>sj@f) z5@c%Q7oY?J-t+Q07`@RLARZd4lJ8?IcrI+cEB=62vfq^kD=4J&at9P<*x6ZWTF*o?pMa;AG1!Li ziOek}Ng<=?=)v}bgLRhI#{AStdCYY|4(hKgXDEM!Y4%$tRY!22`qd$_SmM0`APc1Y zEjgmZ&Td(xEPDv!X@T7T=pu==9$Tx2hiw=tnV#-|hHj-El1|R$vKks+vVcsq-P6@X zb3>N2!$`C><=-?zi8A&0CouA&r^|Da97lw!V9NL`{Sd0#`)a?`I{G(Ku4r0OyerRejp(tA$ zT_+;QR5a=!S}EJfCLKgaf?!h35?iGW7a}rul!V&Arncvp8Spa2}v-Q*EJ$@&)8b1kMN z*o+v)-sN<%#1Zb99Yqq%CCMQaTcScqV#-HeMRJm4CC5DE|%aX0c7B~ z-!Ef~0lrH;m4fI6&}c4kQa@e1gbC04QAF&iU{D& zoum8DD3fed-(qww!8~Nr9f^aL)P=2orAu>UiGh942@(>J(+Y1w&(Zgv79CSzWjU{A zJrm3+!o#-qC76IpOG_SQINV4j`8+L>n_sj4r%?$5vu=0<01wKAwHx7I=Bn7yHibNR zl4)A_Rw&YEMW5l!)kD(A@v`#mYDQjnHRo&@lL}@b=F>Z^dec6KYQo&U{Ojg4vEPxa z{OE(6^|kmv4a^PJz@+_-lKxMV72`tt-?^zOayBGp{wu$vTXXhFG9n8rGbjtd*+7t~ zgTIFo_|O%jlzjM~wZt#sFnTG4H1X1Kh@A2MPXD%k2y1Sb&dUL%%(*4(+`ru|w%!ri z^Xl@;xzjZiiVt3dTX-Dqz#bX2Icn=wvmfiS5^m~UvEvxmZq=gxGiO-vMVNDx0) ze=zLTOuY#072-!}z{|RRCkX?@M^ljG@lIu|2#*KRT;9*R{!eBkj{taY$Ah@=UZ#(c z`?tWy!*_%}*f2_BeRdI4WQxkSW4$35A1tS2tsUj0^4K!yBBRi~yQc>TnMtMN)GVh| z_hHuy*fPw8ojiU=UB&0Cuxn7Hhjcj7ecSWed`GxbT*C_da3)4HIn;``syfkGG&(s+ z$%#-9b5E6_HcL=S?fLaytBO#Uzps|3DbqWAt5N70nIxTelH~t{4|!Jzo^~mOl#_V! zZ>2?|j<3xvFDUn=t2|>dy&^5j?F1SXT7I}Rb_le%CW&igD>V67l*jQ?e;!cDKz0qz zkzEHIpy1j)VgpCS;%>ovOT4m@Q-dkF}V^%~v% zIDqooQyB=t_?@KTh;S4|gji1XD!Ctv*@j^y0o6nH?nggXBMeugdQfa?#E`|#D0aQV zJr6$k7(-SutC*vMdyur}5<@mNrZ;}8r4kZ9V7ukX5s_D&E)D}$u*sAM!$gs5C@AqY0JF@Z~g3W`5jNY0bloFF+sH31qOA?I0XP2ggt zf}&5Jk@HY=BuExgO|Xu>qTn&^O5n1lf*M9U30et;(9@2K4Z5^63R*Qq&~KV}f;o$x zx6?KcN28Y9ZmndpfQUvndGGhuNsaYK&!e$Ikrx;PSRP=8ooZAsif!gtGMp{N!B@DK z!KXs8WE|UyO**)zNrx)2Wa>MLMLf8N(R&|a$znI!(mv>e`Jv54LkzfIpkQo;KuRw& z1$=QB)tgu((ObB<-zGb0o8qy-A{QI#MSi!5Z#qVzopSacXGJ?<$>Pd;pOLka!^R2!h#0ScbXkpxXN}Z=s5M&aD zVLzp2O^8l_AU71~E{ENjiM~@H2pJ{1`)NRyf@iTssEiONc>Y%=_MecVJ|qnnC>W%G zK=M7w9>`KJxKHM6FaLg!!vbEw zX%wl$a^moBvea!HVMM@xxeAYk5hcVT3E%mTMN}N7ZRW=!d2hnE(+F2ugk}qIex9Gs z#MUiCeMJe|-4zA8$4)n;T+>gBP)=cj^94lF0%6$hJOE*W!`>j_+~#tN&`x23y_p~( zM&TNZP*f3u11O>}eM^Hys0IwLAPUEU-3PEbT}?JBtcA&|{`PBA%z+>}l>g>-(s%(h z?Lmn>V|{cWG+Ro^v${Cx-@X?+7<-zwx%p28Y{W)XoTY7E!4`bsuO2>jp0ES!i;W~4K*DONgL^*BeReoUW+3(~Cj$4GzixM0RA_~*BPFoaEi@mNGUz&8u z3lp|}sz|}tJ&RBkae~v{Ad%e1LyORF zFgz0^^6TrFMd&gNLxV)3&i4nf6#N)Ano&K~Z_Wp>=KUCEFmVr&C-mH-%TlBsT<5eED}GHnTl5uqScQK7H!I+FKve+XHOubH-`7R; zhhG0xK)n4f8hMUBh-K~1Z~&8`>K(x#)}24YN(8D0!KOew84jXSmk#cE(xFm383&Tm zzcM^{A5W%^tn{ym9XiC5Iie^Pkx}k6O%uEQ{>A4|q>Cmr3P_L0EP3d@y$-Sjo$FLo8 z%q?h#_F<7J6Ezj6X7Fb*>3CMC6Ez2@W3%(WASaN@Y#^@N+{9>Cvxxg1n@zw+6AoqD&?#M&!tg7Kl`?dtoIJ{Z9!1u!c1{ zh*bz1z#5k7_1qwqKn%k~1gfj_&H5nLKn%l7F{+#L)xjW^e(b-kME?3>5Nkh{VWJt; zm1_GYf$Wq@X^@0!CyG=e9tvJOkUJH2sH2VY?UFT(g@U&fdnmoY3a)1`d<4T^!2_~D z929)5h>+ze$t(-t!ftwk4ZI}_b+cg@MM*l#OVgT{GXV<5RqDz7%C#@s3B#mH2<_+o zCU{~>+>j6k^y?`^Z?f(8iDc@GN`tUQ#%bQBRx>B|6SrxbW(tA*)*yIQo*M$mC#gKz zo(yGiPx)pn!427m<>ntJ&XVGWU^4vU!~o^=iVQb|lL6gjt2+~q5_Xdg1G?)Wd=|k6 zMQ(@(48s!JCzxy*DxgGgxe_EA_l0N3s54%CBi33Gv&;a2`98|BJV=4se4sBMS?kT& z1cgM+oK8M&&35S|0_z?pD;0&|k@F<#!k3oM@Ps_HNcz!bZas=!SD_nqkc!|sRXY!lE z=VmbX}-yPnHOFSZ6i%TcAFJU2sX&Hq4C35#VCKit*Zdfh^LH|eeF9WUgHez zI%OGc=5F8kyxy?txJxRosD_vaLF3YX7=L_lnty?ks68D&-v$uzjWl}fB9>mA)GSmi zI7}b+|An9R((x!>wFI&_ua2H<`>wK3Ll_&E!|IB3pee)ltX3+F{n?GUN?OcLGzxSs z3=+WKKhHjy;ctK!D{CYBW~F6&Y|mEb_xl$=v*%_diO_(ron%ewGikDK4-xR<*lwDtQrE^w6As8I$|@6`vq=UvM2 zD)7NH#gYJQIhXOODhERQOb47z-#Sa^3e4jb7xtm{&h64|XG^^{6KEuFDx6jE2Li(P zUK@%{go?jv^jg^6C;tPtPbB{A2?*8}AbNS2G=sL)+g^gg(hUbltW%tTo5msRaQO4bS9YXK>Ly0k97f6iuP}IFj zg=26}&C#g{l@4zhEDfFaTI1SpYn?VbTb-}2yy~NRpg7MT&PWN!Wtoj!^BLoBk*~m`UmAp@vEkz`ZoGYmIQC-uQ^V?m&H;}=< z^sq8@po}*AnE;^Brzl(oN<~Z|A=-HQ18aNB4BNODmA($g6~7xIGKw4(xLY97CH)`H^4_7N_JZti;8VrMELjbs~8< zb}_7@Qr?qF~bO?mgqRLU3QAIXHiA&JX$w{eX-(bjNRAq?Ml&1 Sb28+)8uRG|@o#xz*8c#57HKR1 diff --git a/docs/inventories/v1.31/objects.inv b/docs/inventories/v1.31/objects.inv index 8bd3786841cb44937eb0d734f954bd9f8e7adebe..e5393f9ff09e506194bfe32b4c6e92f1c0653cb9 100644 GIT binary patch delta 6839 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 delta 6763 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 g*sh Date: Wed, 30 Oct 2024 21:34:37 +0000 Subject: [PATCH 06/37] repo: Dev v1.32.2 (#36918) Signed-off-by: Ryan Northey --- VERSION.txt | 2 +- changelogs/1.32.1.yaml | 6 ++++++ changelogs/current.yaml | 19 +++++++++++++++---- 3 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 changelogs/1.32.1.yaml diff --git a/VERSION.txt b/VERSION.txt index 96cd6ee1e7..96f1d1063d 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -1.32.1 +1.32.2-dev diff --git a/changelogs/1.32.1.yaml b/changelogs/1.32.1.yaml new file mode 100644 index 0000000000..faeca80a68 --- /dev/null +++ b/changelogs/1.32.1.yaml @@ -0,0 +1,6 @@ +date: October 29, 2024 + +bug_fixes: +- area: release + change: | + Container updates. diff --git a/changelogs/current.yaml b/changelogs/current.yaml index faeca80a68..9ecf0d6e48 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -1,6 +1,17 @@ -date: October 29, 2024 +date: Pending + +behavior_changes: +# *Changes that are expected to cause an incompatibility if applicable; deployment changes are likely required* + +minor_behavior_changes: +# *Changes that may cause incompatibilities for some users, but should not for most* bug_fixes: -- area: release - change: | - Container updates. +# *Changes expected to improve the state of the world and are unlikely to have negative effects* + +removed_config_or_runtime: +# *Normally occurs at the end of the* :ref:`deprecation period ` + +new_features: + +deprecated: From 4c7cb62f373d684e0a7e60234ff47b93ae7a596a Mon Sep 17 00:00:00 2001 From: John Howard Date: Tue, 5 Nov 2024 11:06:41 -0800 Subject: [PATCH 07/37] Relax recent SNI restrictions (#36950) See https://github.com/istio/istio/issues/53426. Istio has used underscores in their SNI since the beginning and it is critical to its functionality. Usage of underscores in SNI is a bit of a grey area in the RFCs, which are extremely under-specified wrt to what exactly is the allowed formats. However, the de-facto standard is to allow them, as virtually every TLS library does so (including, but not limited to, Golang, rustls, openssl, boringssl). This PR loosens the restriction to additionally allow underscores. Note the intent of the SNI restrictions was not RFC compliance, etc -- but rather to fix [log injection](https://github.com/envoyproxy/envoy/security/advisories/GHSA-p222-xhp9-39rc) attacks (putting ANSI escapes, HTML, etc) into logs. This change does not loosen the security properties we hoped to gain with the initial patch. Signed-off-by: John Howard (cherry picked from commit 79ee3427d9aae17cb008f1c71ea6e6e25a458069) --- source/common/common/utility.cc | 3 ++- source/common/common/utility.h | 4 ++-- test/common/formatter/substitution_formatter_test.cc | 9 +++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/source/common/common/utility.cc b/source/common/common/utility.cc index ab79b2cf56..a44a794807 100644 --- a/source/common/common/utility.cc +++ b/source/common/common/utility.cc @@ -590,7 +590,8 @@ std::string StringUtil::sanitizeInvalidHostname(const absl::string_view source) std::string ret_str = std::string(source); bool sanitized = false; for (size_t i = 0; i < ret_str.size(); ++i) { - if (absl::ascii_isalnum(ret_str[i]) || ret_str[i] == '.' || ret_str[i] == '-') { + if (absl::ascii_isalnum(ret_str[i]) || ret_str[i] == '.' || ret_str[i] == '-' || + ret_str[i] == '_') { continue; } sanitized = true; diff --git a/source/common/common/utility.h b/source/common/common/utility.h index 06a404fbd6..ccd6d8443c 100644 --- a/source/common/common/utility.h +++ b/source/common/common/utility.h @@ -492,8 +492,8 @@ class StringUtil { /** * Sanitize host name strings for logging purposes. Replace invalid hostname characters (anything - * that's not alphanumeric, hyphen, or period) with underscore. The sanitized string is not a - * valid host name. + * that's not alphanumeric, hyphen, or period) with underscore. The sanitized string + * is not a valid host name. * @param source supplies the string to sanitize. * @return sanitized string. */ diff --git a/test/common/formatter/substitution_formatter_test.cc b/test/common/formatter/substitution_formatter_test.cc index 9c058bdf46..3f4615bbb9 100644 --- a/test/common/formatter/substitution_formatter_test.cc +++ b/test/common/formatter/substitution_formatter_test.cc @@ -956,6 +956,15 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } + { + StreamInfoFormatter upstream_format("REQUESTED_SERVER_NAME"); + std::string requested_server_name = "outbound_.8080_._.example.com"; + stream_info.downstream_connection_info_provider_->setRequestedServerName(requested_server_name); + EXPECT_EQ("outbound_.8080_._.example.com", upstream_format.formatWithContext({}, stream_info)); + EXPECT_THAT(upstream_format.formatValueWithContext({}, stream_info), + ProtoEq(ValueUtil::stringValue("outbound_.8080_._.example.com"))); + } + { StreamInfoFormatter upstream_format("REQUESTED_SERVER_NAME"); std::string requested_server_name = "stub-server"; From b564fa42caba77c77dc795e82f2d37e264578a33 Mon Sep 17 00:00:00 2001 From: John Howard Date: Tue, 5 Nov 2024 14:24:59 -0800 Subject: [PATCH 08/37] Add release note for "Relax recent SNI restrictions" (#37000) Adds a release note for https://github.com/envoyproxy/envoy/pull/36950#issuecomment-2458147011 Signed-off-by: John Howard (cherry picked from commit db63605c2515a98e17835975e75fd80ca3c38a68) --- changelogs/current.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelogs/current.yaml b/changelogs/current.yaml index 9ecf0d6e48..af40a5824c 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -8,6 +8,10 @@ minor_behavior_changes: bug_fixes: # *Changes expected to improve the state of the world and are unlikely to have negative effects* +- area: access_log + change: | + Relaxed the restriction on SNI logging to allow the ``_`` character, even if + ``envoy.reloadable_features.sanitize_sni_in_access_log`` is enabled. removed_config_or_runtime: # *Normally occurs at the end of the* :ref:`deprecation period ` From 46f0d8d1da3cdf297ed94687939b39531232ae3f Mon Sep 17 00:00:00 2001 From: Ryan Northey Date: Fri, 15 Nov 2024 18:25:15 +0000 Subject: [PATCH 09/37] ci: Add bazel client caching (#37096) Signed-off-by: Ryan Northey --- .bazelrc | 38 +++++++++++++++++------------------ .github/workflows/request.yml | 19 +++++++++++------- 2 files changed, 31 insertions(+), 26 deletions(-) diff --git a/.bazelrc b/.bazelrc index 631ae2a44a..123f6a9e5c 100644 --- a/.bazelrc +++ b/.bazelrc @@ -512,25 +512,25 @@ build:rbe-engflow --bes_upload_mode=fully_async build:rbe-engflow --nolegacy_important_outputs # RBE (Engflow Envoy) -build:common-envoy-engflow --google_default_credentials=false -build:common-envoy-engflow --credential_helper=*.engflow.com=%workspace%/bazel/engflow-bazel-credential-helper.sh -build:common-envoy-engflow --grpc_keepalive_time=30s - -build:cache-envoy-engflow --remote_cache=grpcs://mordenite.cluster.engflow.com -build:cache-envoy-engflow --remote_timeout=3600s -build:bes-envoy-engflow --bes_backend=grpcs://mordenite.cluster.engflow.com/ -build:bes-envoy-engflow --bes_results_url=https://mordenite.cluster.engflow.com/invocation/ -build:bes-envoy-engflow --bes_timeout=3600s -build:bes-envoy-engflow --bes_upload_mode=fully_async -build:bes-envoy-engflow --nolegacy_important_outputs -build:rbe-envoy-engflow --remote_executor=grpcs://mordenite.cluster.engflow.com -build:rbe-envoy-engflow --remote_default_exec_properties=container-image=docker://gcr.io/envoy-ci/envoy-build@sha256:7adc40c09508f957624c4d2e0f5aeecb73a59207ee6ded53b107eac828c091b2 -build:rbe-envoy-engflow --jobs=200 -build:rbe-envoy-engflow --define=engflow_rbe=true - -build:remote-envoy-engflow --config=common-envoy-engflow -build:remote-envoy-engflow --config=cache-envoy-engflow -build:remote-envoy-engflow --config=rbe-envoy-engflow +common:common-envoy-engflow --google_default_credentials=false +common:common-envoy-engflow --credential_helper=*.engflow.com=%workspace%/bazel/engflow-bazel-credential-helper.sh +common:common-envoy-engflow --grpc_keepalive_time=30s + +common:cache-envoy-engflow --remote_cache=grpcs://mordenite.cluster.engflow.com +common:cache-envoy-engflow --remote_timeout=3600s +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:7adc40c09508f957624c4d2e0f5aeecb73a59207ee6ded53b107eac828c091b2 +common:rbe-envoy-engflow --jobs=200 +common:rbe-envoy-engflow --define=engflow_rbe=true + +common:remote-envoy-engflow --config=common-envoy-engflow +common:remote-envoy-engflow --config=cache-envoy-engflow +common:remote-envoy-engflow --config=rbe-envoy-engflow ############################################################################# # debug: Various Bazel debugging flags diff --git a/.github/workflows/request.yml b/.github/workflows/request.yml index cc37388e09..5e3b0f10ad 100644 --- a/.github/workflows/request.yml +++ b/.github/workflows/request.yml @@ -24,13 +24,6 @@ concurrency: jobs: request: - # For branches this can be pinned to a specific version if required - # NB: `uses` cannot be dynamic so it _must_ be hardcoded anywhere it is read - uses: envoyproxy/envoy/.github/workflows/_request.yml@main - if: >- - ${{ github.repository == 'envoyproxy/envoy' - || (vars.ENVOY_CI && github.event_name != 'schedule') - || (vars.ENVOY_SCHEDULED_CI && github.event_name == 'schedule') }} permissions: actions: read contents: read @@ -41,3 +34,15 @@ jobs: # these are required to start checks app-key: ${{ secrets.ENVOY_CI_APP_KEY }} app-id: ${{ secrets.ENVOY_CI_APP_ID }} + lock-app-key: ${{ secrets.ENVOY_CI_MUTEX_APP_KEY }} + lock-app-id: ${{ secrets.ENVOY_CI_MUTEX_APP_ID }} + gcs-cache-key: ${{ secrets.GCS_CACHE_WRITE_KEY }} + with: + gcs-cache-bucket: ${{ vars.ENVOY_CACHE_BUCKET }} + # For branches this can be pinned to a specific version if required + # NB: `uses` cannot be dynamic so it _must_ be hardcoded anywhere it is read + uses: envoyproxy/envoy/.github/workflows/_request.yml@main + if: >- + ${{ github.repository == 'envoyproxy/envoy' + || (vars.ENVOY_CI && github.event_name != 'schedule') + || (vars.ENVOY_SCHEDULED_CI && github.event_name == 'schedule') }} From eeea3c37ccf70f2024782778a0165c921f6cb0a6 Mon Sep 17 00:00:00 2001 From: phlax Date: Tue, 5 Nov 2024 13:24:29 +0000 Subject: [PATCH 10/37] bazel/distribution: Cleanups to fix aquery (#36977) Signed-off-by: Ryan Northey --- .github/workflows/_publish_build.yml | 5 ++ ci/do_ci.sh | 4 +- distribution/BUILD | 78 +++++++++++++++++++--------- 3 files changed, 61 insertions(+), 26 deletions(-) diff --git a/.github/workflows/_publish_build.yml b/.github/workflows/_publish_build.yml index f03d887a6f..5f965fcd7a 100644 --- a/.github/workflows/_publish_build.yml +++ b/.github/workflows/_publish_build.yml @@ -163,6 +163,11 @@ jobs: uses: ./.github/workflows/_run.yml with: target: release.signed + bazel-extra: >- + --//distribution:x64-packages=//distribution:custom/x64/packages.x64.tar.gz + --//distribution:arm64-packages=//distribution:custom/arm64/packages.arm64.tar.gz + --//distribution:x64-release=//distribution:custom/x64/bin/release.tar.zst + --//distribution:arm64-release=//distribution:custom/arm64/bin/release.tar.zst cache-build-image: ${{ fromJSON(inputs.request).request.build-image.default }} downloads: | packages.arm64: envoy/arm64/ diff --git a/ci/do_ci.sh b/ci/do_ci.sh index 99f29f661e..58c60f4ad8 100755 --- a/ci/do_ci.sh +++ b/ci/do_ci.sh @@ -935,7 +935,9 @@ case $CI_TARGET in release.signed) echo "Signing binary packages..." setup_clang_toolchain - bazel build "${BAZEL_BUILD_OPTIONS[@]}" //distribution:signed + bazel build \ + "${BAZEL_BUILD_OPTIONS[@]}" \ + //distribution:signed cp -a bazel-bin/distribution/release.signed.tar.zst "${BUILD_DIR}/envoy/" ;; diff --git a/distribution/BUILD b/distribution/BUILD index 578f6de6f3..a222747815 100644 --- a/distribution/BUILD +++ b/distribution/BUILD @@ -77,55 +77,88 @@ sh_binary( ], ) +genrule( + name = "placeholder", + outs = ["PLACEHOLDER.TXT"], + cmd = """ + touch $@ + """, +) + label_flag( name = "x64-packages", - build_setting_default = "//distribution:custom/x64/packages.x64.tar.gz", + build_setting_default = ":placeholder", ) label_flag( name = "arm64-packages", - build_setting_default = "//distribution:custom/arm64/packages.arm64.tar.gz", + build_setting_default = ":placeholder", ) label_flag( name = "x64-release", - build_setting_default = "//distribution:custom/x64/bin/release.tar.zst", + build_setting_default = ":placeholder", ) label_flag( name = "arm64-release", - build_setting_default = "//distribution:custom/arm64/bin/release.tar.zst", + build_setting_default = ":placeholder", ) genrule( name = "multi_arch_debs", + srcs = [ + ":arm64-packages", + ":x64-packages", + ], outs = ["multiarch-debs.tar.gz"], # To ensure the debs tarball is not extracted and kept as a tarball, it is # placed into a 2nd archive. cmd = """ - tmpdir=$$(mktemp -d) \ - && tmpdir2=$$(mktemp -d) \ - && tar xf $(location :x64-packages) -C "$$tmpdir" \ - && tar xf $(location :arm64-packages) -C "$$tmpdir" \ - && rm "$${tmpdir}/signing.key" \ - && mv "$${tmpdir}/deb/"* "$${tmpdir}" \ - && rm -rf "$${tmpdir}/deb/" \ - && tar cf $$tmpdir2/debs.tar.gz -C "$${tmpdir}" . \ - && tar cf $@ -C "$${tmpdir2}" . \ + tmpdir=$$(mktemp -d) + tmpdir2=$$(mktemp -d) + NEEDS_PATH= + if [[ $$(basename $(location :x64-packages)) == "PLACEHOLDER.TXT" ]]; then + NEEDS_PATH=1 + elif [[ $$(basename $(location :arm64-packages)) == "PLACEHOLDER.TXT" ]]; then + NEEDS_PATH=1 + fi + if [[ -n $$NEEDS_PATH ]]; then + echo "You must set //distribution:x64-packages and //distribution:arm64-packages to build multiarch debs" >&2 + exit 1 + fi + tar xf $(location :x64-packages) -C "$$tmpdir" + tar xf $(location :arm64-packages) -C "$$tmpdir" + rm "$${tmpdir}/signing.key" + mv "$${tmpdir}/deb/"* "$${tmpdir}" + rm -rf "$${tmpdir}/deb/" + tar cf $$tmpdir2/debs.tar.gz -C "$${tmpdir}" . + tar cf $@ -C "$${tmpdir2}" . """, - tools = [ - ":arm64-packages", - ":x64-packages", - ], ) genrule( name = "signed", + srcs = [ + ":arm64-release", + ":multi_arch_debs", + ":x64-release", + ], outs = ["release.signed.tar.zst"], cmd = """ # Sign the packages - VERSION=%s \ - && $(location //tools/distribution:sign) \ + VERSION=%s + NEEDS_PATH= + if [[ $$(basename $(location :x64-release)) == "PLACEHOLDER.TXT" ]]; then + NEEDS_PATH=1 + elif [[ $$(basename $(location :arm64-release)) == "PLACEHOLDER.TXT" ]]; then + NEEDS_PATH=1 + fi + if [[ -n $$NEEDS_PATH ]]; then + echo "You must set //distribution:x64-release and //distribution:arm64-release for signing packages" >&2 + exit 1 + fi + $(location //tools/distribution:sign) \ "bin:$(location :multi_arch_debs)" \ "x64:$(location :x64-release)" \ "arm64:$(location :arm64-release)" \ @@ -136,10 +169,5 @@ genrule( --out $@ """ % VERSION, tags = ["no-remote"], - tools = [ - ":arm64-release", - ":multi_arch_debs", - ":x64-release", - "//tools/distribution:sign", - ], + tools = ["//tools/distribution:sign"], ) From 6b921737b4af169527334cc609469b7f98c6a320 Mon Sep 17 00:00:00 2001 From: phlax Date: Fri, 8 Nov 2024 13:36:36 +0000 Subject: [PATCH 11/37] bazel: Make `ci` config common (#37027) Signed-off-by: Ryan Northey --- .bazelrc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.bazelrc b/.bazelrc index 123f6a9e5c..04a96f6539 100644 --- a/.bazelrc +++ b/.bazelrc @@ -393,9 +393,9 @@ build:remote-ci --config=ci build:remote-ci --remote_download_minimal # Note this config is used by mobile CI also. -build:ci --noshow_progress -build:ci --noshow_loading_progress -build:ci --test_output=errors +common:ci --noshow_progress +common:ci --noshow_loading_progress +common:ci --test_output=errors # Fuzz builds From 0aa41a7c995cbb298cf9adca212b7d5ec7e81ee5 Mon Sep 17 00:00:00 2001 From: phlax Date: Mon, 4 Nov 2024 16:21:24 +0000 Subject: [PATCH 12/37] headers/geoip: Fix macro (#36964) Currently this breaks running `bazel aquery "deps(...)"` - not sure why Signed-off-by: Ryan Northey --- envoy/geoip/BUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/envoy/geoip/BUILD b/envoy/geoip/BUILD index 05d323b6a0..7f9b2462e7 100644 --- a/envoy/geoip/BUILD +++ b/envoy/geoip/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_extension", + "envoy_cc_library", "envoy_package", ) @@ -11,7 +11,7 @@ envoy_package() # HTTP L7 filter that decorates request with geolocation data # Public docs: https://envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/geoip_filter -envoy_cc_extension( +envoy_cc_library( name = "geoip_provider_driver_interface", hdrs = [ "geoip_provider_driver.h", From a6215a38a153bef9d5270fd9190f75201f1ec4b0 Mon Sep 17 00:00:00 2001 From: phlax Date: Thu, 25 Jul 2024 18:59:02 +0100 Subject: [PATCH 13/37] deps: Bump python -> 3.12.3 (#35334) Signed-off-by: Ryan Northey Co-authored-by: dependency-envoy[bot] <148525496+dependency-envoy[bot]@users.noreply.github.com> --- tools/base/requirements.in | 2 +- tools/base/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/base/requirements.in b/tools/base/requirements.in index d6108945bb..9d576ad11a 100644 --- a/tools/base/requirements.in +++ b/tools/base/requirements.in @@ -27,7 +27,7 @@ frozendict>=2.3.7 gitpython gsutil icalendar -jinja2 +jinja2>=3.1.4 kafka-python-ng multidict>=6.0.2 orjson diff --git a/tools/base/requirements.txt b/tools/base/requirements.txt index eb8d9c90dc..cf541d039e 100644 --- a/tools/base/requirements.txt +++ b/tools/base/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # pip-compile --allow-unsafe --generate-hashes requirements.in From 510f9466dcc87642de6167f24c1ca1932d44a4f8 Mon Sep 17 00:00:00 2001 From: "dependency-envoy[bot]" <148525496+dependency-envoy[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 16:55:31 +0000 Subject: [PATCH 14/37] deps/api: Bump `envoy_toolshed` -> 0.1.16 (#37219) Signed-off-by: Ryan Northey Signed-off-by: dependency-envoy[bot] <148525496+dependency-envoy[bot]@users.noreply.github.com> --- api/bazel/repository_locations.bzl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/bazel/repository_locations.bzl b/api/bazel/repository_locations.bzl index a7738a68bc..c24d344f2b 100644 --- a/api/bazel/repository_locations.bzl +++ b/api/bazel/repository_locations.bzl @@ -179,12 +179,12 @@ REPOSITORY_LOCATIONS_SPEC = dict( project_name = "envoy_toolshed", project_desc = "Tooling, libraries, runners and checkers for Envoy proxy's CI", project_url = "https://github.com/envoyproxy/toolshed", - version = "0.1.12", - sha256 = "cbd919462d3301ffcd83bcbc3763914201e08ac97d9237cd75219725760321d0", + version = "0.1.16", + sha256 = "06939757b00b318e89996ca3d4d2468ac2da1ff48a7b2cd9146b2054c3ff4769", strip_prefix = "toolshed-bazel-v{version}/bazel", urls = ["https://github.com/envoyproxy/toolshed/archive/bazel-v{version}.tar.gz"], use_category = ["build"], - release_date = "2024-09-08", + release_date = "2024-11-18", cpe = "N/A", license = "Apache-2.0", license_url = "https://github.com/envoyproxy/envoy/blob/bazel-v{version}/LICENSE", From fb360164b5bf0060015ab636e6eaf5a1782c980d Mon Sep 17 00:00:00 2001 From: Rohit Agrawal Date: Mon, 18 Nov 2024 18:51:01 -0800 Subject: [PATCH 15/37] original_ip_detection: revert unintended XFF header appending behavior in CustomHeaderIPDetection (#37194) This PR restores the original behavior prior to #31831, by explicitly setting `skip_xff_append` to `true`, as appending the `XFF` header from the custom header extension is not required. See #37171 for more details. --- **Commit Message:** original_ip_detection: revert unintended XFF header appending behavior in CustomHeaderIPDetection **Additional Description:** This PR restores the pre #31831 behavior by explicitly setting `skip_xff_append` to `true`, as appending the `XFF` header from the custom header extension is not required. **Risk Level:** Low **Testing:** Added Unit Tests **Docs Changes:** N/A **Release Notes:** Added Signed-off-by: Rohit Agrawal --- changelogs/current.yaml | 5 +++ .../custom_header/custom_header.cc | 10 +++-- .../custom_header/custom_header_test.cc | 40 +++++++++++++++++++ 3 files changed, 52 insertions(+), 3 deletions(-) diff --git a/changelogs/current.yaml b/changelogs/current.yaml index af40a5824c..f20f479c5f 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -12,6 +12,11 @@ bug_fixes: change: | Relaxed the restriction on SNI logging to allow the ``_`` character, even if ``envoy.reloadable_features.sanitize_sni_in_access_log`` is enabled. +- area: original_ip_detection custom header extension + change: | + Reverted :ref:`custom header + ` extension to its + original behavior by disabling automatic XFF header appending that was inadvertently introduced in PR #31831. removed_config_or_runtime: # *Normally occurs at the end of the* :ref:`deprecation period ` diff --git a/source/extensions/http/original_ip_detection/custom_header/custom_header.cc b/source/extensions/http/original_ip_detection/custom_header/custom_header.cc index c1698bb19b..a566cf9594 100644 --- a/source/extensions/http/original_ip_detection/custom_header/custom_header.cc +++ b/source/extensions/http/original_ip_detection/custom_header/custom_header.cc @@ -26,18 +26,22 @@ CustomHeaderIPDetection::CustomHeaderIPDetection( Envoy::Http::OriginalIPDetectionResult CustomHeaderIPDetection::detect(Envoy::Http::OriginalIPDetectionParams& params) { + // NOTE: The ``XFF`` header from this extension is intentionally not appended. + // To preserve the behavior prior to #31831, ``skip_xff_append`` is explicitly set to true. + constexpr bool skip_xff_append = true; + auto hdr = params.request_headers.get(header_name_); if (hdr.empty()) { - return {nullptr, false, reject_options_, false}; + return {nullptr, false, reject_options_, skip_xff_append}; } auto header_value = hdr[0]->value().getStringView(); auto addr = Network::Utility::parseInternetAddressNoThrow(std::string(header_value)); if (addr) { - return {addr, allow_trusted_address_checks_, absl::nullopt, false}; + return {addr, allow_trusted_address_checks_, absl::nullopt, skip_xff_append}; } - return {nullptr, false, reject_options_, false}; + return {nullptr, false, reject_options_, skip_xff_append}; } } // namespace CustomHeader diff --git a/test/extensions/http/original_ip_detection/custom_header/custom_header_test.cc b/test/extensions/http/original_ip_detection/custom_header/custom_header_test.cc index 1ef2722a60..b26904a2e4 100644 --- a/test/extensions/http/original_ip_detection/custom_header/custom_header_test.cc +++ b/test/extensions/http/original_ip_detection/custom_header/custom_header_test.cc @@ -99,6 +99,46 @@ TEST_F(CustomHeaderTest, FallbacksToDefaultResponseCode) { EXPECT_EQ(reject_options.body, ""); } +TEST_F(CustomHeaderTest, SkipXFFAppendBehavior) { + // Test all scenarios to ensure XFF header is never appended + + // When header is missing + { + Envoy::Http::TestRequestHeaderMapImpl headers{{"x-other", "abc"}}; + Envoy::Http::OriginalIPDetectionParams params = {headers, nullptr}; + auto result = custom_header_extension_->detect(params); + + EXPECT_TRUE(result.skip_xff_append) << "XFF append should be skipped when header is missing"; + } + + // When header contains invalid IP + { + Envoy::Http::TestRequestHeaderMapImpl headers{{"x-real-ip", "not-a-real-ip"}}; + Envoy::Http::OriginalIPDetectionParams params = {headers, nullptr}; + auto result = custom_header_extension_->detect(params); + + EXPECT_TRUE(result.skip_xff_append) << "XFF append should be skipped for invalid IP"; + } + + // When header contains valid IPv4 + { + Envoy::Http::TestRequestHeaderMapImpl headers{{"x-real-ip", "1.2.3.4"}}; + Envoy::Http::OriginalIPDetectionParams params = {headers, nullptr}; + auto result = custom_header_extension_->detect(params); + + EXPECT_TRUE(result.skip_xff_append) << "XFF append should be skipped for valid IPv4"; + } + + // When header contains valid IPv6 + { + Envoy::Http::TestRequestHeaderMapImpl headers{{"x-real-ip", "fc00::1"}}; + Envoy::Http::OriginalIPDetectionParams params = {headers, nullptr}; + auto result = custom_header_extension_->detect(params); + + EXPECT_TRUE(result.skip_xff_append) << "XFF append should be skipped for valid IPv6"; + } +} + } // namespace CustomHeader } // namespace OriginalIPDetection } // namespace Http From 672f2ebc0e315c72dd1669889b1a036ea584b151 Mon Sep 17 00:00:00 2001 From: phlax Date: Wed, 23 Oct 2024 19:52:15 +0100 Subject: [PATCH 16/37] ci/tests: Boost more worker cores for flakey integration tests (#36793) Signed-off-by: Ryan Northey --- test/extensions/filters/http/grpc_json_transcoder/BUILD | 2 +- test/extensions/filters/http/wasm/BUILD | 2 +- test/integration/BUILD | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/extensions/filters/http/grpc_json_transcoder/BUILD b/test/extensions/filters/http/grpc_json_transcoder/BUILD index e45bb375e9..2c3d44af8c 100644 --- a/test/extensions/filters/http/grpc_json_transcoder/BUILD +++ b/test/extensions/filters/http/grpc_json_transcoder/BUILD @@ -66,7 +66,7 @@ envoy_extension_cc_test( "//test/proto:bookstore_proto_descriptor", ], extension_names = ["envoy.filters.http.grpc_json_transcoder"], - rbe_pool = "6gig", + rbe_pool = "2core", tags = [ "cpu:3", ], diff --git a/test/extensions/filters/http/wasm/BUILD b/test/extensions/filters/http/wasm/BUILD index 130216302e..9b191fd458 100644 --- a/test/extensions/filters/http/wasm/BUILD +++ b/test/extensions/filters/http/wasm/BUILD @@ -86,7 +86,7 @@ envoy_extension_cc_test( "//test/extensions/filters/http/wasm/test_data:test_cpp.wasm", ]), extension_names = ["envoy.filters.http.wasm"], - rbe_pool = "2core", + rbe_pool = "4core", shard_count = 16, tags = ["skip_on_windows"], deps = [ diff --git a/test/integration/BUILD b/test/integration/BUILD index 75a8cd21c8..a04fa41135 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -59,7 +59,7 @@ envoy_cc_test( srcs = envoy_select_admin_functionality( ["ads_integration_test.cc"], ), - rbe_pool = "6gig", + rbe_pool = "2core", tags = [ "cpu:3", ], From 834e4cc14b99d3d225fa226770dd8f816ac40c22 Mon Sep 17 00:00:00 2001 From: phlax Date: Thu, 24 Oct 2024 17:40:52 +0100 Subject: [PATCH 17/37] ci/rbe: Boost cpus for a couple more integration tests (#36807) Signed-off-by: Ryan Northey --- test/extensions/filters/http/wasm/BUILD | 2 +- test/integration/BUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/extensions/filters/http/wasm/BUILD b/test/extensions/filters/http/wasm/BUILD index 9b191fd458..bac3fadfaf 100644 --- a/test/extensions/filters/http/wasm/BUILD +++ b/test/extensions/filters/http/wasm/BUILD @@ -61,7 +61,7 @@ envoy_extension_cc_test( "//test/extensions/filters/http/wasm/test_data:test_cpp.wasm", ]), extension_names = ["envoy.filters.http.wasm"], - rbe_pool = "6gig", + rbe_pool = "2core", shard_count = 16, tags = ["skip_on_windows"], deps = [ diff --git a/test/integration/BUILD b/test/integration/BUILD index a04fa41135..67bcc5adde 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -2628,7 +2628,7 @@ envoy_cc_test( name = "weighted_cluster_integration_test", size = "large", srcs = ["weighted_cluster_integration_test.cc"], - rbe_pool = "6gig", + rbe_pool = "2core", tags = [ "cpu:3", ], From d5c82a10deee0678f34513c535039993ac866c12 Mon Sep 17 00:00:00 2001 From: phlax Date: Fri, 25 Oct 2024 13:30:19 +0100 Subject: [PATCH 18/37] ci/rbe: Boost cpu/mem for more integration tests (#36825) Signed-off-by: Ryan Northey --- test/extensions/filters/http/rate_limit_quota/BUILD | 2 +- test/extensions/filters/network/connection_limit/BUILD | 2 +- test/extensions/filters/network/redis_proxy/BUILD | 2 +- test/integration/BUILD | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/extensions/filters/http/rate_limit_quota/BUILD b/test/extensions/filters/http/rate_limit_quota/BUILD index ee9d77dce8..bcc0487087 100644 --- a/test/extensions/filters/http/rate_limit_quota/BUILD +++ b/test/extensions/filters/http/rate_limit_quota/BUILD @@ -107,7 +107,7 @@ envoy_extension_cc_test( size = "large", srcs = ["integration_test.cc"], extension_names = ["envoy.filters.http.rate_limit_quota"], - rbe_pool = "6gig", + rbe_pool = "4core", shard_count = 4, tags = [ "cpu:3", diff --git a/test/extensions/filters/network/connection_limit/BUILD b/test/extensions/filters/network/connection_limit/BUILD index 54545f1f87..80cf8f9fe5 100644 --- a/test/extensions/filters/network/connection_limit/BUILD +++ b/test/extensions/filters/network/connection_limit/BUILD @@ -30,7 +30,7 @@ envoy_extension_cc_test( size = "large", srcs = ["connection_limit_integration_test.cc"], extension_names = ["envoy.filters.network.connection_limit"], - rbe_pool = "6gig", + rbe_pool = "2core", deps = [ "//source/extensions/filters/network/connection_limit:config", "//source/extensions/filters/network/tcp_proxy:config", diff --git a/test/extensions/filters/network/redis_proxy/BUILD b/test/extensions/filters/network/redis_proxy/BUILD index e6846ca9a8..a26eeecb1b 100644 --- a/test/extensions/filters/network/redis_proxy/BUILD +++ b/test/extensions/filters/network/redis_proxy/BUILD @@ -18,7 +18,7 @@ envoy_extension_cc_test( name = "command_splitter_impl_test", srcs = ["command_splitter_impl_test.cc"], extension_names = ["envoy.filters.network.redis_proxy"], - rbe_pool = "2core", + rbe_pool = "4core", deps = [ ":redis_mocks", "//source/common/stats:isolated_store_lib", diff --git a/test/integration/BUILD b/test/integration/BUILD index 67bcc5adde..6b65b9a4e5 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -537,7 +537,7 @@ envoy_cc_test( srcs = [ "multiplexed_integration_test.cc", ], - rbe_pool = "6gig", + rbe_pool = "2core", shard_count = 10, tags = [ "cpu:3", @@ -1697,7 +1697,7 @@ envoy_cc_test( name = "listener_extension_discovery_integration_test", size = "large", srcs = ["listener_extension_discovery_integration_test.cc"], - rbe_pool = "6gig", + rbe_pool = "2core", deps = [ ":http_integration_lib", "//source/extensions/filters/network/tcp_proxy:config", From 9a57b55be13fa7d4a43d1e7a5e390f4e750b6211 Mon Sep 17 00:00:00 2001 From: phlax Date: Fri, 25 Oct 2024 22:58:51 +0100 Subject: [PATCH 19/37] ci/rbe: Boost cpus for more integration tests (#36837) Signed-off-by: Ryan Northey --- test/extensions/common/wasm/BUILD | 2 +- test/extensions/transport_sockets/http_11_proxy/BUILD | 2 +- test/integration/BUILD | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/extensions/common/wasm/BUILD b/test/extensions/common/wasm/BUILD index 8b8531b46d..cfe292a489 100644 --- a/test/extensions/common/wasm/BUILD +++ b/test/extensions/common/wasm/BUILD @@ -41,7 +41,7 @@ envoy_cc_test( "//test/extensions/common/wasm/test_data:test_cpp.wasm", "//test/extensions/common/wasm/test_data:test_restriction_cpp.wasm", ]), - rbe_pool = "6gig", + rbe_pool = "2core", tags = ["skip_on_windows"], deps = [ "//source/common/common:hex_lib", diff --git a/test/extensions/transport_sockets/http_11_proxy/BUILD b/test/extensions/transport_sockets/http_11_proxy/BUILD index d1502c5e5f..66c8306936 100644 --- a/test/extensions/transport_sockets/http_11_proxy/BUILD +++ b/test/extensions/transport_sockets/http_11_proxy/BUILD @@ -32,7 +32,7 @@ envoy_extension_cc_test( size = "large", srcs = ["connect_integration_test.cc"], extension_names = ["envoy.transport_sockets.http_11_proxy"], - rbe_pool = "6gig", + rbe_pool = "2core", deps = [ "//source/extensions/clusters/dynamic_forward_proxy:cluster", "//source/extensions/filters/http/dynamic_forward_proxy:config", diff --git a/test/integration/BUILD b/test/integration/BUILD index 6b65b9a4e5..ec1fb5a3f6 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -31,7 +31,7 @@ envoy_cc_test_library( "//test/config/integration:server_xds_files", "//test/config/integration/certs", ], - rbe_pool = "6gig", + rbe_pool = "2core", deps = [ ":http_integration_lib", "//source/common/common:matchers_lib", @@ -2514,7 +2514,7 @@ envoy_cc_test( "//conditions:default": ["quic_protocol_integration_test.cc"], }), data = ["//test/config/integration/certs"], - rbe_pool = "2core", + rbe_pool = "4core", shard_count = 16, tags = [ "cpu:4", From 52e3840a5cfca9ac2566e38dd73460d2d812f361 Mon Sep 17 00:00:00 2001 From: phlax Date: Tue, 29 Oct 2024 10:36:00 +0000 Subject: [PATCH 20/37] ci/rbe: Boost cpu for another integration test (#36885) Signed-off-by: Ryan Northey --- test/extensions/filters/http/on_demand/BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/extensions/filters/http/on_demand/BUILD b/test/extensions/filters/http/on_demand/BUILD index 145fc0ff8f..4314164855 100644 --- a/test/extensions/filters/http/on_demand/BUILD +++ b/test/extensions/filters/http/on_demand/BUILD @@ -33,7 +33,7 @@ envoy_extension_cc_test( size = "large", srcs = ["on_demand_integration_test.cc"], extension_names = ["envoy.filters.http.on_demand"], - rbe_pool = "6gig", + rbe_pool = "2core", tags = [ "cpu:3", ], From fb6680146507970f4cd9b698b972c2fd658f514e Mon Sep 17 00:00:00 2001 From: phlax Date: Thu, 31 Oct 2024 11:40:56 +0000 Subject: [PATCH 21/37] ci/rbe: Boost cpus for some more integration tests (#36930) Signed-off-by: Ryan Northey --- test/extensions/filters/http/ext_proc/BUILD | 2 +- test/extensions/filters/http/wasm/BUILD | 2 +- test/integration/BUILD | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/extensions/filters/http/ext_proc/BUILD b/test/extensions/filters/http/ext_proc/BUILD index 118f3954c7..7487855aa6 100644 --- a/test/extensions/filters/http/ext_proc/BUILD +++ b/test/extensions/filters/http/ext_proc/BUILD @@ -38,7 +38,7 @@ envoy_extension_cc_test( ], }), extension_names = ["envoy.filters.http.ext_proc"], - rbe_pool = "6gig", + rbe_pool = "2core", tags = ["skip_on_windows"], deps = [ ":mock_server_lib", diff --git a/test/extensions/filters/http/wasm/BUILD b/test/extensions/filters/http/wasm/BUILD index bac3fadfaf..79553cc3ae 100644 --- a/test/extensions/filters/http/wasm/BUILD +++ b/test/extensions/filters/http/wasm/BUILD @@ -35,7 +35,7 @@ envoy_extension_cc_test( "//test/extensions/filters/http/wasm/test_data:shared_queue_rust.wasm", ]), extension_names = ["envoy.filters.http.wasm"], - rbe_pool = "2core", + rbe_pool = "4core", shard_count = 50, tags = [ "cpu:4", diff --git a/test/integration/BUILD b/test/integration/BUILD index ec1fb5a3f6..791ae14140 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -866,7 +866,7 @@ envoy_cc_test( srcs = [ "instantiate_protocol_integration_test.cc", ], - rbe_pool = "6gig", + rbe_pool = "2core", # As this test has many H1/H2/v4/v6 tests it takes a while to run. # Shard it enough to bring the run time in line with other integration tests. shard_count = 16, From 0cddace14e0264774a7036e7218942990c26a0c0 Mon Sep 17 00:00:00 2001 From: phlax Date: Thu, 31 Oct 2024 18:41:26 +0000 Subject: [PATCH 22/37] ci/rbe: Boost cpus for more flakey tests (#36942) Signed-off-by: Ryan Northey --- test/extensions/filters/http/dynamic_forward_proxy/BUILD | 2 +- test/extensions/filters/http/ext_proc/http_client/BUILD | 2 +- test/extensions/filters/http/grpc_json_transcoder/BUILD | 2 +- test/integration/BUILD | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/extensions/filters/http/dynamic_forward_proxy/BUILD b/test/extensions/filters/http/dynamic_forward_proxy/BUILD index db838f3284..bf6fc9ecd2 100644 --- a/test/extensions/filters/http/dynamic_forward_proxy/BUILD +++ b/test/extensions/filters/http/dynamic_forward_proxy/BUILD @@ -74,7 +74,7 @@ envoy_extension_cc_test( "//test/config/integration/certs", ], extension_names = ["envoy.filters.http.dynamic_forward_proxy"], - rbe_pool = "6gig", + rbe_pool = "2core", # TODO(envoyproxy/windows-dev): Diagnose failure shown on clang-cl build, see: # https://gist.github.com/wrowe/a152cb1d12c2f751916122aed39d8517 tags = ["fails_on_clang_cl"], diff --git a/test/extensions/filters/http/ext_proc/http_client/BUILD b/test/extensions/filters/http/ext_proc/http_client/BUILD index 636f3e07cf..550720ea63 100644 --- a/test/extensions/filters/http/ext_proc/http_client/BUILD +++ b/test/extensions/filters/http/ext_proc/http_client/BUILD @@ -30,7 +30,7 @@ envoy_extension_cc_test( name = "ext_proc_http_integration_test", srcs = ["ext_proc_http_integration_test.cc"], extension_names = ["envoy.filters.http.ext_proc"], - rbe_pool = "6gig", + rbe_pool = "2core", shard_count = 8, tags = [ "cpu:3", diff --git a/test/extensions/filters/http/grpc_json_transcoder/BUILD b/test/extensions/filters/http/grpc_json_transcoder/BUILD index 2c3d44af8c..c9af479253 100644 --- a/test/extensions/filters/http/grpc_json_transcoder/BUILD +++ b/test/extensions/filters/http/grpc_json_transcoder/BUILD @@ -66,7 +66,7 @@ envoy_extension_cc_test( "//test/proto:bookstore_proto_descriptor", ], extension_names = ["envoy.filters.http.grpc_json_transcoder"], - rbe_pool = "2core", + rbe_pool = "4core", tags = [ "cpu:3", ], diff --git a/test/integration/BUILD b/test/integration/BUILD index 791ae14140..b545a3a4dc 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -641,7 +641,7 @@ envoy_cc_test( srcs = [ "buffer_accounting_integration_test.cc", ], - rbe_pool = "6gig", + rbe_pool = "2core", tags = [ "cpu:3", ], From 5bb4649700538ecabbc7eeef3a8b7ec5966c9507 Mon Sep 17 00:00:00 2001 From: phlax Date: Wed, 6 Nov 2024 14:31:43 +0000 Subject: [PATCH 23/37] ci: Boost mem for integration test (#37009) Signed-off-by: Ryan Northey --- test/integration/BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/BUILD b/test/integration/BUILD index b545a3a4dc..07e4be2479 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -59,7 +59,7 @@ envoy_cc_test( srcs = envoy_select_admin_functionality( ["ads_integration_test.cc"], ), - rbe_pool = "2core", + rbe_pool = "4core", tags = [ "cpu:3", ], From 9c8e4e288374ba768d5a5f54db53a89c3fc4d80c Mon Sep 17 00:00:00 2001 From: phlax Date: Tue, 19 Nov 2024 02:17:33 +0000 Subject: [PATCH 24/37] ci: Boost cpu for flakey grpc integration test (#37223) Signed-off-by: Ryan Northey --- test/extensions/access_loggers/grpc/BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/extensions/access_loggers/grpc/BUILD b/test/extensions/access_loggers/grpc/BUILD index 3898b5256c..84d573adc9 100644 --- a/test/extensions/access_loggers/grpc/BUILD +++ b/test/extensions/access_loggers/grpc/BUILD @@ -93,7 +93,7 @@ envoy_extension_cc_test( size = "large", srcs = ["http_grpc_access_log_integration_test.cc"], extension_names = ["envoy.access_loggers.http_grpc"], - rbe_pool = "6gig", + rbe_pool = "2core", deps = [ "//source/common/buffer:zero_copy_input_stream_lib", "//source/common/grpc:codec_lib", From 1d92e472257ac1e41735d73581790c967ffa17f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 09:23:09 +0000 Subject: [PATCH 25/37] build(deps): bump distroless/base-nossl-debian12 from `aa91f01` to `174f326` in /ci (#37119) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Ryan Northey --- ci/Dockerfile-envoy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/Dockerfile-envoy b/ci/Dockerfile-envoy index 6af270df35..5bbdff760b 100644 --- a/ci/Dockerfile-envoy +++ b/ci/Dockerfile-envoy @@ -59,7 +59,7 @@ COPY --chown=0:0 --chmod=755 \ # STAGE: envoy-distroless -FROM gcr.io/distroless/base-nossl-debian12:nonroot@sha256:aa91f01b56d02af049a3984dd5dd7c0ea39c97f398ac415cfc92b085bd63f6fd AS envoy-distroless +FROM gcr.io/distroless/base-nossl-debian12:nonroot@sha256:174f326c2730c718b3f857735c2a55f654dc057285ecacc7c29736ee777acb08 AS envoy-distroless EXPOSE 10000 ENTRYPOINT ["/usr/local/bin/envoy"] CMD ["-c", "/etc/envoy/envoy.yaml"] From 83ccff38e21fbef8aac25c42efbb27b1826cd126 Mon Sep 17 00:00:00 2001 From: Thomas Ebner <96168670+samohte@users.noreply.github.com> Date: Wed, 20 Nov 2024 20:53:14 +0100 Subject: [PATCH 26/37] limit calculated sampling exponent (#37240) Ensure that calculated sampling exponent stays below a certain limit Risk Level: Low Testing: Unit test, manual Docs Changes: N/A Release Notes: N/A Platform Specific Features: Fixes #37199 Signed-off-by: thomas.ebner --- changelogs/current.yaml | 3 +++ .../samplers/dynatrace/sampling_controller.cc | 2 +- .../samplers/dynatrace/sampling_controller_test.cc | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/changelogs/current.yaml b/changelogs/current.yaml index f20f479c5f..e3f3a374d3 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -17,6 +17,9 @@ bug_fixes: Reverted :ref:`custom header ` extension to its original behavior by disabling automatic XFF header appending that was inadvertently introduced in PR #31831. +- area: tracers + change: | + Avoid possible overflow when setting span attributes in Dynatrace sampler. removed_config_or_runtime: # *Normally occurs at the end of the* :ref:`deprecation period ` diff --git a/source/extensions/tracers/opentelemetry/samplers/dynatrace/sampling_controller.cc b/source/extensions/tracers/opentelemetry/samplers/dynatrace/sampling_controller.cc index e14ad0fa34..e4a7643730 100644 --- a/source/extensions/tracers/opentelemetry/samplers/dynatrace/sampling_controller.cc +++ b/source/extensions/tracers/opentelemetry/samplers/dynatrace/sampling_controller.cc @@ -75,7 +75,7 @@ SamplingState SamplingController::getSamplingState(const std::string& sampling_k } absl::ReaderMutexLock ss_lock{&stream_summary_mutex_}; const uint32_t exp = stream_summary_->getN() / divisor; - return SamplingState{exp}; + return SamplingState{std::min(exp, MAX_SAMPLING_EXPONENT)}; } std::string SamplingController::getSamplingKey(const absl::string_view path_query, diff --git a/test/extensions/tracers/opentelemetry/samplers/dynatrace/sampling_controller_test.cc b/test/extensions/tracers/opentelemetry/samplers/dynatrace/sampling_controller_test.cc index f56f2c86d4..17da6ac7cb 100644 --- a/test/extensions/tracers/opentelemetry/samplers/dynatrace/sampling_controller_test.cc +++ b/test/extensions/tracers/opentelemetry/samplers/dynatrace/sampling_controller_test.cc @@ -206,6 +206,13 @@ TEST(SamplingControllerTest, TestWarmup) { EXPECT_EQ(sc.getSamplingState("GET_1").getExponent(), 8); EXPECT_EQ(sc.getSamplingState("GET_6").getExponent(), 8); EXPECT_EQ(sc.getSamplingState("GET_789").getExponent(), 8); + + offerEntry(sc, "GET_7", 10000); + EXPECT_EQ(sc.getSamplingState("GET_1").getExponent(), SamplingController::MAX_SAMPLING_EXPONENT); + EXPECT_EQ(sc.getSamplingState("GET_6").getExponent(), SamplingController::MAX_SAMPLING_EXPONENT); + EXPECT_EQ(sc.getSamplingState("GET_789").getExponent(), + SamplingController::MAX_SAMPLING_EXPONENT); + EXPECT_EQ(sc.getSamplingState("GET_7").getExponent(), SamplingController::MAX_SAMPLING_EXPONENT); } // Test getting sampling state from an empty SamplingController From 27ee498777dc2ba34f1e8cc501f1e538fb92c3b8 Mon Sep 17 00:00:00 2001 From: alyssawilk Date: Wed, 20 Nov 2024 10:27:57 -0500 Subject: [PATCH 27/37] validator: add in removed extension (#37261) Fixes https://github.com/envoyproxy/envoy/issues/36808 --------- Signed-off-by: Alyssa Wilk Signed-off-by: Ryan Northey --- test/tools/schema_validator/BUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/test/tools/schema_validator/BUILD b/test/tools/schema_validator/BUILD index 8865766b45..607a118e17 100644 --- a/test/tools/schema_validator/BUILD +++ b/test/tools/schema_validator/BUILD @@ -33,6 +33,7 @@ envoy_cc_test_library( "//source/common/protobuf:utility_lib", "//source/common/stats:isolated_store_lib", "//source/common/version:version_lib", + "//source/extensions/filters/http/match_delegate:config", "//test/test_common:utility_lib", "@com_github_mirror_tclap//:tclap", "@envoy_api//envoy/config/bootstrap/v3:pkg_cc_proto", From c795bb92e1297a5c3257682ef2ef3b353bde645a Mon Sep 17 00:00:00 2001 From: phlax Date: Mon, 25 Nov 2024 17:03:49 +0000 Subject: [PATCH 28/37] github/ci: Only trigger pr-notifier ci on `main` PRs (#37336) Signed-off-by: Ryan Northey --- .github/workflows/pr_notifier.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pr_notifier.yml b/.github/workflows/pr_notifier.yml index 2024bee400..eb3a702462 100644 --- a/.github/workflows/pr_notifier.yml +++ b/.github/workflows/pr_notifier.yml @@ -1,5 +1,7 @@ on: pull_request: + branches: + - main workflow_dispatch: schedule: - cron: '0 5 * * 1,2,3,4,5' From 75de3f1d0bd30c2220e8cba483a35cc96c0e1a6a Mon Sep 17 00:00:00 2001 From: yanavlasov Date: Mon, 25 Nov 2024 11:58:02 -0500 Subject: [PATCH 29/37] Patch c-ares CVE-2024-25629 (#37269) c-ares is currently behind on upgrades due to incompatibility with gRPC. Patching c-ares CVE-2024-25629 to avoid scanner complaints. Signed-off-by: Yan Avlasov Signed-off-by: yanavlasov --- bazel/c-ares.patch | 20 ++++++++++++++++++++ bazel/repositories.bzl | 2 ++ changelogs/current.yaml | 3 +++ 3 files changed, 25 insertions(+) create mode 100644 bazel/c-ares.patch diff --git a/bazel/c-ares.patch b/bazel/c-ares.patch new file mode 100644 index 0000000000..60267f1f2c --- /dev/null +++ b/bazel/c-ares.patch @@ -0,0 +1,20 @@ +# Patch for c-ares CVE-2024-25629 +diff --git a/src/lib/ares__read_line.c b/src/lib/ares__read_line.c +index d65ac1fcf8..018f55e8b2 100644 +--- a/src/lib/ares__read_line.c ++++ b/src/lib/ares__read_line.c +@@ -59,6 +59,14 @@ ares_status_t ares__read_line(FILE *fp, char **buf, size_t *bufsize) + return (offset != 0) ? 0 : (ferror(fp)) ? ARES_EFILE : ARES_EOF; + } + len = offset + ares_strlen(*buf + offset); ++ ++ /* Probably means there was an embedded NULL as the first character in ++ * the line, throw away line */ ++ if (len == 0) { ++ offset = 0; ++ continue; ++ } ++ + if ((*buf)[len - 1] == '\n') { + (*buf)[len - 1] = 0; + break; diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl index 5cb573770f..7992cbbbf8 100644 --- a/bazel/repositories.bzl +++ b/bazel/repositories.bzl @@ -302,6 +302,8 @@ def _com_github_c_ares_c_ares(): external_http_archive( name = "com_github_c_ares_c_ares", build_file_content = BUILD_ALL_CONTENT, + patch_args = ["-p1"], + patches = ["@envoy//bazel:c-ares.patch"], ) def _com_github_cyan4973_xxhash(): diff --git a/changelogs/current.yaml b/changelogs/current.yaml index e3f3a374d3..bdf8e2bf6e 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -5,6 +5,9 @@ behavior_changes: minor_behavior_changes: # *Changes that may cause incompatibilities for some users, but should not for most* +- area: dns + change: | + Patched c-ares to address CVE-2024-25629. bug_fixes: # *Changes expected to improve the state of the world and are unlikely to have negative effects* From 6fdaaf0104a67bbd5d038811bda229d32cad8224 Mon Sep 17 00:00:00 2001 From: phlax Date: Mon, 25 Nov 2024 17:49:06 +0000 Subject: [PATCH 30/37] changelog: Add entry for `schema_validation_tool` fix (#37335) Signed-off-by: Ryan Northey Signed-off-by: phlax --- changelogs/current.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changelogs/current.yaml b/changelogs/current.yaml index bdf8e2bf6e..6bbb5f3b2a 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -23,6 +23,9 @@ bug_fixes: - area: tracers change: | Avoid possible overflow when setting span attributes in Dynatrace sampler. +- area: validation/tools + change: | + Add back missing extension for ``schema_validator_tool``. removed_config_or_runtime: # *Normally occurs at the end of the* :ref:`deprecation period ` From 1b015122610755aa74a0cdfe1374726becee365b Mon Sep 17 00:00:00 2001 From: phlax Date: Mon, 25 Nov 2024 17:39:43 +0000 Subject: [PATCH 31/37] ci/bazel: Fix repo config (#37349) Signed-off-by: Ryan Northey Signed-off-by: phlax --- .bazelrc | 3 +++ .github/workflows/_precheck_publish.yml | 4 +--- .github/workflows/_publish_build.yml | 8 ++------ .github/workflows/_publish_verify.yml | 4 +--- .github/workflows/envoy-macos.yml | 4 +--- 5 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.bazelrc b/.bazelrc index 04a96f6539..5fa9d86762 100644 --- a/.bazelrc +++ b/.bazelrc @@ -532,6 +532,9 @@ common:remote-envoy-engflow --config=common-envoy-engflow common:remote-envoy-engflow --config=cache-envoy-engflow common:remote-envoy-engflow --config=rbe-envoy-engflow +common:remote-cache-envoy-engflow --config=common-envoy-engflow +common:remote-cache-envoy-engflow --config=cache-envoy-engflow + ############################################################################# # debug: Various Bazel debugging flags ############################################################################# diff --git a/.github/workflows/_precheck_publish.yml b/.github/workflows/_precheck_publish.yml index a8b6ae02a4..ca186549d1 100644 --- a/.github/workflows/_precheck_publish.yml +++ b/.github/workflows/_precheck_publish.yml @@ -62,9 +62,7 @@ jobs: target-suffix: arm64 arch: arm64 bazel-extra: >- - --config=common-envoy-engflow - --config=cache-envoy-engflow - --config=bes-envoy-engflow + --config=remote-cache-envoy-engflow rbe: false runs-on: envoy-arm64-large timeout-minutes: 180 diff --git a/.github/workflows/_publish_build.yml b/.github/workflows/_publish_build.yml index 5f965fcd7a..296a3000dc 100644 --- a/.github/workflows/_publish_build.yml +++ b/.github/workflows/_publish_build.yml @@ -67,9 +67,7 @@ jobs: name: Release (arm64) arch: arm64 bazel-extra: >- - --config=cache-envoy-engflow - --config=common-envoy-engflow - --config=bes-envoy-engflow + --config=remote-cache-envoy-engflow rbe: false runs-on: envoy-arm64-medium @@ -86,9 +84,7 @@ jobs: uses: ./.github/workflows/_run.yml with: bazel-extra: >- - --config=cache-envoy-engflow - --config=common-envoy-engflow - --config=bes-envoy-engflow + --config=remote-cache-envoy-engflow downloads: | release.${{ matrix.arch }}: release/${{ matrix.arch }}/bin/ target: ${{ matrix.target }} diff --git a/.github/workflows/_publish_verify.yml b/.github/workflows/_publish_verify.yml index 2f95ee5504..aa4e8b69b5 100644 --- a/.github/workflows/_publish_verify.yml +++ b/.github/workflows/_publish_verify.yml @@ -132,7 +132,5 @@ jobs: target: verify_distro arch: arm64 bazel-extra: >- - --config=cache-envoy-engflow - --config=common-envoy-engflow - --config=bes-envoy-engflow + --config=remote-cache-envoy-engflow runs-on: envoy-arm64-small diff --git a/.github/workflows/envoy-macos.yml b/.github/workflows/envoy-macos.yml index 9859cab5aa..742949f657 100644 --- a/.github/workflows/envoy-macos.yml +++ b/.github/workflows/envoy-macos.yml @@ -67,9 +67,7 @@ jobs: _BAZEL_BUILD_EXTRA_OPTIONS=( --remote_download_toplevel --flaky_test_attempts=2 - --config=bes-envoy-engflow - --config=cache-envoy-engflow - --config=common-envoy-engflow + --config=remote-cache-envoy-engflow --config=ci) export BAZEL_BUILD_EXTRA_OPTIONS=${_BAZEL_BUILD_EXTRA_OPTIONS[*]} From 9c07a3c35cf18b474e9e4bf36a3d5b80e94ec20c Mon Sep 17 00:00:00 2001 From: phlax Date: Thu, 21 Nov 2024 19:51:16 +0000 Subject: [PATCH 32/37] ci: Boost cpu for flakey on_demand integration test (#37294) Signed-off-by: Ryan Northey --- test/extensions/filters/http/on_demand/BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/extensions/filters/http/on_demand/BUILD b/test/extensions/filters/http/on_demand/BUILD index 4314164855..9c6d25f293 100644 --- a/test/extensions/filters/http/on_demand/BUILD +++ b/test/extensions/filters/http/on_demand/BUILD @@ -33,7 +33,7 @@ envoy_extension_cc_test( size = "large", srcs = ["on_demand_integration_test.cc"], extension_names = ["envoy.filters.http.on_demand"], - rbe_pool = "2core", + rbe_pool = "4core", tags = [ "cpu:3", ], From f632bf196b2ba12711dba8716d0e1ac0374bda22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Nov 2024 10:42:58 +0000 Subject: [PATCH 33/37] build(deps): bump distroless/base-nossl-debian12 from `174f326` to `2a803cc` in /ci (#37410) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Ryan Northey --- ci/Dockerfile-envoy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/Dockerfile-envoy b/ci/Dockerfile-envoy index 5bbdff760b..5b9c03bb2f 100644 --- a/ci/Dockerfile-envoy +++ b/ci/Dockerfile-envoy @@ -59,7 +59,7 @@ COPY --chown=0:0 --chmod=755 \ # STAGE: envoy-distroless -FROM gcr.io/distroless/base-nossl-debian12:nonroot@sha256:174f326c2730c718b3f857735c2a55f654dc057285ecacc7c29736ee777acb08 AS envoy-distroless +FROM gcr.io/distroless/base-nossl-debian12:nonroot@sha256:2a803cc873dc1a69a33087ee10c75755367dd2c259219893504680480ad563f0 AS envoy-distroless EXPOSE 10000 ENTRYPOINT ["/usr/local/bin/envoy"] CMD ["-c", "/etc/envoy/envoy.yaml"] From d95810a0cc8a5fd0577ac02b7319764b0486a494 Mon Sep 17 00:00:00 2001 From: Steven Jin Xuan Date: Wed, 4 Dec 2024 14:37:53 -0500 Subject: [PATCH 34/37] Backport #36953 Signed-off-by: Steven Jin Xuan --- api/envoy/config/cluster/v3/cluster.proto | 2 +- changelogs/current.yaml | 4 ++ .../logical_dns/logical_dns_cluster.cc | 9 ++- .../clusters/strict_dns/strict_dns_cluster.cc | 10 ++- test/common/upstream/upstream_impl_test.cc | 59 +++++++++++++++++ .../logical_dns/logical_dns_cluster_test.cc | 64 ++++++++++++++++++- 6 files changed, 142 insertions(+), 6 deletions(-) diff --git a/api/envoy/config/cluster/v3/cluster.proto b/api/envoy/config/cluster/v3/cluster.proto index 0d2d6f1918..079a1e4977 100644 --- a/api/envoy/config/cluster/v3/cluster.proto +++ b/api/envoy/config/cluster/v3/cluster.proto @@ -965,7 +965,7 @@ message Cluster { // :ref:`STRICT_DNS` // and :ref:`LOGICAL_DNS` // this setting is ignored. - google.protobuf.Duration dns_jitter = 58; + google.protobuf.Duration dns_jitter = 58 [(validate.rules).duration = {gte {}}]; // If the DNS failure refresh rate is specified and the cluster type is either // :ref:`STRICT_DNS`, diff --git a/changelogs/current.yaml b/changelogs/current.yaml index 6bbb5f3b2a..7b595962b6 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -26,6 +26,10 @@ bug_fixes: - area: validation/tools change: | Add back missing extension for ``schema_validator_tool``. +- area: DNS + change: | + Fixed bug where setting ``dns_jitter `` to large values caused Envoy Bug + to fire. removed_config_or_runtime: # *Normally occurs at the end of the* :ref:`deprecation period ` diff --git a/source/extensions/clusters/logical_dns/logical_dns_cluster.cc b/source/extensions/clusters/logical_dns/logical_dns_cluster.cc index ef3d443af7..264f522c12 100644 --- a/source/extensions/clusters/logical_dns/logical_dns_cluster.cc +++ b/source/extensions/clusters/logical_dns/logical_dns_cluster.cc @@ -151,7 +151,14 @@ void LogicalDnsCluster::startResolve() { final_refresh_rate = addrinfo.ttl_; } if (dns_jitter_ms_.count() != 0) { - final_refresh_rate += std::chrono::milliseconds(random_.random()) % dns_jitter_ms_; + // Note that `random_.random()` returns a uint64 while + // `dns_jitter_ms_.count()` returns a signed long that gets cast into a uint64. + // Thus, the modulo of the two will be a positive as long as + // `dns_jitter_ms_.count()` is positive. + // It is important that this be positive, otherwise `final_refresh_rate` could be + // negative causing Envoy to crash. + final_refresh_rate += + std::chrono::milliseconds(random_.random() % dns_jitter_ms_.count()); } ENVOY_LOG(debug, "DNS refresh rate reset for {}, refresh rate {} ms", dns_address_, final_refresh_rate.count()); diff --git a/source/extensions/clusters/strict_dns/strict_dns_cluster.cc b/source/extensions/clusters/strict_dns/strict_dns_cluster.cc index b379ef1e89..64641eedbc 100644 --- a/source/extensions/clusters/strict_dns/strict_dns_cluster.cc +++ b/source/extensions/clusters/strict_dns/strict_dns_cluster.cc @@ -193,8 +193,14 @@ void StrictDnsClusterImpl::ResolveTarget::startResolve() { final_refresh_rate.count() > 0); } if (parent_.dns_jitter_ms_.count() > 0) { - final_refresh_rate += - std::chrono::milliseconds(parent_.random_.random()) % parent_.dns_jitter_ms_; + // Note that `parent_.random_.random()` returns a uint64 while + // `parent_.dns_jitter_ms_.count()` returns a signed long that gets cast into a uint64. + // Thus, the modulo of the two will be a positive as long as + // `parent_dns_jitter_ms_.count()` is positive. + // It is important that this be positive, otherwise `final_refresh_rate` could be + // negative causing Envoy to crash. + final_refresh_rate += std::chrono::milliseconds(parent_.random_.random() % + parent_.dns_jitter_ms_.count()); } ENVOY_LOG(debug, "DNS refresh rate reset for {}, refresh rate {} ms", dns_address_, diff --git a/test/common/upstream/upstream_impl_test.cc b/test/common/upstream/upstream_impl_test.cc index fc78e4c718..2751f9144e 100644 --- a/test/common/upstream/upstream_impl_test.cc +++ b/test/common/upstream/upstream_impl_test.cc @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -1490,6 +1491,30 @@ TEST_F(StrictDnsClusterImplTest, TtlAsDnsRefreshRateNoJitter) { TestUtility::makeDnsResponse({}, std::chrono::seconds(5))); } +TEST_F(StrictDnsClusterImplTest, NegativeDnsJitter) { + const std::string yaml = R"EOF( + name: name + type: STRICT_DNS + lb_policy: ROUND_ROBIN + dns_refresh_rate: 4s + dns_jitter: -1s + load_assignment: + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: localhost1 + port_value: 11001 + )EOF"; + envoy::config::cluster::v3::Cluster cluster_config = parseClusterFromV3Yaml(yaml); + Envoy::Upstream::ClusterFactoryContextImpl factory_context( + server_context_, server_context_.cluster_manager_, nullptr, ssl_context_manager_, nullptr, + false); + EXPECT_THROW_WITH_MESSAGE( + auto x = *StrictDnsClusterImpl::create(cluster_config, factory_context, dns_resolver_), + EnvoyException, "Invalid duration: Expected positive duration: seconds: -1\n"); +} TEST_F(StrictDnsClusterImplTest, TtlAsDnsRefreshRateYesJitter) { ResolverData resolver(*dns_resolver_, server_context_.dispatcher_); @@ -1533,6 +1558,40 @@ TEST_F(StrictDnsClusterImplTest, TtlAsDnsRefreshRateYesJitter) { TestUtility::makeDnsResponse({"192.168.1.1", "192.168.1.2"}, std::chrono::seconds(ttl_s))); } +TEST_F(StrictDnsClusterImplTest, ExtremeJitter) { + ResolverData resolver(*dns_resolver_, server_context_.dispatcher_); + + const std::string yaml = R"EOF( + name: name + connect_timeout: 0.25s + type: STRICT_DNS + lb_policy: ROUND_ROBIN + dns_refresh_rate: 1s + dns_jitter: 1000s + respect_dns_ttl: true + load_assignment: + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: localhost1 + port_value: 11001 + )EOF"; + envoy::config::cluster::v3::Cluster cluster_config = parseClusterFromV3Yaml(yaml); + Envoy::Upstream::ClusterFactoryContextImpl factory_context( + server_context_, server_context_.cluster_manager_, nullptr, ssl_context_manager_, nullptr, + false); + auto cluster = *StrictDnsClusterImpl::create(cluster_config, factory_context, dns_resolver_); + cluster->initialize([] {}); + + EXPECT_CALL(*resolver.timer_, enableTimer(testing::Ge(std::chrono::milliseconds(1000)), _)); + ON_CALL(random_, random()).WillByDefault(Return(std::numeric_limits::min())); + resolver.dns_callback_( + Network::DnsResolver::ResolutionStatus::Completed, "", + TestUtility::makeDnsResponse({"192.168.1.1", "192.168.1.2"}, std::chrono::seconds(1))); +} + // Ensures that HTTP/2 user defined SETTINGS parameter validation is enforced on clusters. TEST_F(StrictDnsClusterImplTest, Http2UserDefinedSettingsParametersValidation) { const std::string yaml = R"EOF( diff --git a/test/extensions/clusters/logical_dns/logical_dns_cluster_test.cc b/test/extensions/clusters/logical_dns/logical_dns_cluster_test.cc index 8c4a1c68d4..38fd4e95ca 100644 --- a/test/extensions/clusters/logical_dns/logical_dns_cluster_test.cc +++ b/test/extensions/clusters/logical_dns/logical_dns_cluster_test.cc @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -47,9 +48,11 @@ class LogicalDnsClusterTest : public Event::TestUsingSimulatedTime, public testi ON_CALL(server_context_, api()).WillByDefault(ReturnRef(*api_)); } - void setupFromV3Yaml(const std::string& yaml) { + void setupFromV3Yaml(const std::string& yaml, bool expect_success = true) { ON_CALL(server_context_, api()).WillByDefault(ReturnRef(*api_)); - resolve_timer_ = new Event::MockTimer(&server_context_.dispatcher_); + if (expect_success) { + resolve_timer_ = new Event::MockTimer(&server_context_.dispatcher_); + } NiceMock cm; envoy::config::cluster::v3::Cluster cluster_config = parseClusterFromV3Yaml(yaml); Envoy::Upstream::ClusterFactoryContextImpl factory_context( @@ -647,6 +650,63 @@ TEST_F(LogicalDnsClusterTest, DNSRefreshHasJitter) { TestUtility::makeDnsResponse({"127.0.0.1", "127.0.0.2"}, std::chrono::seconds(3000))); } +TEST_F(LogicalDnsClusterTest, NegativeDnsJitter) { + const std::string yaml = R"EOF( + name: name + type: LOGICAL_DNS + dns_jitter: -1s + lb_policy: ROUND_ROBIN + dns_lookup_family: V4_ONLY + load_assignment: + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: foo.bar.com + port_value: 443 + )EOF"; + EXPECT_THROW_WITH_MESSAGE(setupFromV3Yaml(yaml, false), EnvoyException, + "Invalid duration: Expected positive duration: seconds: -1\n"); +} + +TEST_F(LogicalDnsClusterTest, ExtremeJitter) { + // When random returns large values, they were being reinterpreted as very negative values causing + // negative refresh rates. + const std::string jitter_yaml = R"EOF( + name: name + type: LOGICAL_DNS + dns_refresh_rate: 1s + dns_failure_refresh_rate: + base_interval: 7s + max_interval: 10s + connect_timeout: 0.25s + dns_jitter: 1000s + lb_policy: ROUND_ROBIN + # Since the following expectResolve() requires Network::DnsLookupFamily::V4Only we need to set + # dns_lookup_family to V4_ONLY explicitly for v2 .yaml config. + dns_lookup_family: V4_ONLY + load_assignment: + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: foo.bar.com + port_value: 443 + )EOF"; + + EXPECT_CALL(initialized_, ready()); + expectResolve(Network::DnsLookupFamily::V4Only, "foo.bar.com"); + setupFromV3Yaml(jitter_yaml); + EXPECT_CALL(membership_updated_, ready()); + EXPECT_CALL(*resolve_timer_, enableTimer(testing::Ge(std::chrono::milliseconds(4000)), _)); + ON_CALL(random_, random()).WillByDefault(Return(std::numeric_limits::min())); + dns_callback_( + Network::DnsResolver::ResolutionStatus::Completed, "", + TestUtility::makeDnsResponse({"127.0.0.1", "127.0.0.2"}, std::chrono::seconds(3000))); +} + } // namespace } // namespace Upstream } // namespace Envoy From b12f2947bd221dbba01b2a858482480b8901ef09 Mon Sep 17 00:00:00 2001 From: Steven Jin Xuan Date: Wed, 4 Dec 2024 21:20:16 -0500 Subject: [PATCH 35/37] Fix tests Signed-off-by: Steven Jin Xuan --- test/common/upstream/upstream_impl_test.cc | 2 +- .../extensions/clusters/logical_dns/logical_dns_cluster_test.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/common/upstream/upstream_impl_test.cc b/test/common/upstream/upstream_impl_test.cc index 2751f9144e..97610e514c 100644 --- a/test/common/upstream/upstream_impl_test.cc +++ b/test/common/upstream/upstream_impl_test.cc @@ -1513,7 +1513,7 @@ TEST_F(StrictDnsClusterImplTest, NegativeDnsJitter) { false); EXPECT_THROW_WITH_MESSAGE( auto x = *StrictDnsClusterImpl::create(cluster_config, factory_context, dns_resolver_), - EnvoyException, "Invalid duration: Expected positive duration: seconds: -1\n"); + EnvoyException, "Expected positive duration: seconds: -1\n"); } TEST_F(StrictDnsClusterImplTest, TtlAsDnsRefreshRateYesJitter) { ResolverData resolver(*dns_resolver_, server_context_.dispatcher_); diff --git a/test/extensions/clusters/logical_dns/logical_dns_cluster_test.cc b/test/extensions/clusters/logical_dns/logical_dns_cluster_test.cc index 38fd4e95ca..be489add2a 100644 --- a/test/extensions/clusters/logical_dns/logical_dns_cluster_test.cc +++ b/test/extensions/clusters/logical_dns/logical_dns_cluster_test.cc @@ -667,7 +667,7 @@ TEST_F(LogicalDnsClusterTest, NegativeDnsJitter) { port_value: 443 )EOF"; EXPECT_THROW_WITH_MESSAGE(setupFromV3Yaml(yaml, false), EnvoyException, - "Invalid duration: Expected positive duration: seconds: -1\n"); + "Expected positive duration: seconds: -1\n"); } TEST_F(LogicalDnsClusterTest, ExtremeJitter) { From a0504e87c5a246cb097b37049b1e4dc7706c2a90 Mon Sep 17 00:00:00 2001 From: Ryan Northey Date: Sun, 8 Dec 2024 18:05:36 +0000 Subject: [PATCH 36/37] repo: Release v1.32.2 **Summary of changes**: - Minor bug fixes **Docker images**: https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.32.2 **Docs**: https://www.envoyproxy.io/docs/envoy/v1.32.2/ **Release notes**: https://www.envoyproxy.io/docs/envoy/v1.32.2/version_history/v1.32/v1.32.2 **Full changelog**: https://github.com/envoyproxy/envoy/compare/v1.32.1...v1.32.2 Signed-off-by: Ryan Northey --- VERSION.txt | 2 +- changelogs/1.29.11.yaml | 15 +++++++++++++++ changelogs/1.30.8.yaml | 18 ++++++++++++++++++ changelogs/1.31.4.yaml | 18 ++++++++++++++++++ changelogs/current.yaml | 16 ++-------------- docs/inventories/v1.29/objects.inv | Bin 168441 -> 168462 bytes docs/inventories/v1.30/objects.inv | Bin 172251 -> 172296 bytes docs/inventories/v1.31/objects.inv | Bin 175843 -> 175910 bytes docs/inventories/v1.32/objects.inv | Bin 178531 -> 178614 bytes docs/versions.yaml | 8 ++++---- 10 files changed, 58 insertions(+), 19 deletions(-) create mode 100644 changelogs/1.29.11.yaml create mode 100644 changelogs/1.30.8.yaml create mode 100644 changelogs/1.31.4.yaml diff --git a/VERSION.txt b/VERSION.txt index 96f1d1063d..c78d39b8ed 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -1.32.2-dev +1.32.2 diff --git a/changelogs/1.29.11.yaml b/changelogs/1.29.11.yaml new file mode 100644 index 0000000000..1ae719a513 --- /dev/null +++ b/changelogs/1.29.11.yaml @@ -0,0 +1,15 @@ +date: December 8, 2024 + +minor_behavior_changes: +- area: dns + change: | + Patched c-ares to address CVE-2024-25629. + +bug_fixes: +- area: access_log + change: | + Relaxed the restriction on SNI logging to allow the ``_`` character, even if + ``envoy.reloadable_features.sanitize_sni_in_access_log`` is enabled. +- area: validation/tools + change: | + Add back missing extension for ``schema_validator_tool``. diff --git a/changelogs/1.30.8.yaml b/changelogs/1.30.8.yaml new file mode 100644 index 0000000000..1a5d8e83f2 --- /dev/null +++ b/changelogs/1.30.8.yaml @@ -0,0 +1,18 @@ +date: December 8, 2024 + +minor_behavior_changes: +- area: dns + change: | + Patched c-ares to address CVE-2024-25629. + +bug_fixes: +- area: access_log + change: | + Relaxed the restriction on SNI logging to allow the ``_`` character, even if + ``envoy.reloadable_features.sanitize_sni_in_access_log`` is enabled. +- area: tracers + change: | + Avoid possible overflow when setting span attributes in Dynatrace sampler. +- area: validation/tools + change: | + Add back missing extension for ``schema_validator_tool``. diff --git a/changelogs/1.31.4.yaml b/changelogs/1.31.4.yaml new file mode 100644 index 0000000000..1a5d8e83f2 --- /dev/null +++ b/changelogs/1.31.4.yaml @@ -0,0 +1,18 @@ +date: December 8, 2024 + +minor_behavior_changes: +- area: dns + change: | + Patched c-ares to address CVE-2024-25629. + +bug_fixes: +- area: access_log + change: | + Relaxed the restriction on SNI logging to allow the ``_`` character, even if + ``envoy.reloadable_features.sanitize_sni_in_access_log`` is enabled. +- area: tracers + change: | + Avoid possible overflow when setting span attributes in Dynatrace sampler. +- area: validation/tools + change: | + Add back missing extension for ``schema_validator_tool``. diff --git a/changelogs/current.yaml b/changelogs/current.yaml index 7b595962b6..5ea31acf5a 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -1,21 +1,16 @@ -date: Pending - -behavior_changes: -# *Changes that are expected to cause an incompatibility if applicable; deployment changes are likely required* +date: December 8, 2024 minor_behavior_changes: -# *Changes that may cause incompatibilities for some users, but should not for most* - area: dns change: | Patched c-ares to address CVE-2024-25629. bug_fixes: -# *Changes expected to improve the state of the world and are unlikely to have negative effects* - area: access_log change: | Relaxed the restriction on SNI logging to allow the ``_`` character, even if ``envoy.reloadable_features.sanitize_sni_in_access_log`` is enabled. -- area: original_ip_detection custom header extension +- area: original_ip_detection change: | Reverted :ref:`custom header ` extension to its @@ -30,10 +25,3 @@ bug_fixes: change: | Fixed bug where setting ``dns_jitter `` to large values caused Envoy Bug to fire. - -removed_config_or_runtime: -# *Normally occurs at the end of the* :ref:`deprecation period ` - -new_features: - -deprecated: diff --git a/docs/inventories/v1.29/objects.inv b/docs/inventories/v1.29/objects.inv index f39a46f04de2fccd53df68ab00b93ded2987b0b7..97f301799921a1f6c534e12687cbd3262349a5be 100644 GIT binary patch delta 4032 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 WfMi0VT1;VEKQ&kRqQli9tN#ZO0=5YN delta 4011 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 Ke5k%<<^KSC8KDgT diff --git a/docs/inventories/v1.30/objects.inv b/docs/inventories/v1.30/objects.inv index 2daecd7fd2166c9baa36bc810fc5b05f1a4eb594..79532a36ef4ea2031acbbf3c9d77a0038d8469eb 100644 GIT binary patch delta 4331 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 H+Qj@HswX)j delta 4286 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 diff --git a/docs/inventories/v1.31/objects.inv b/docs/inventories/v1.31/objects.inv index e5393f9ff09e506194bfe32b4c6e92f1c0653cb9..6481a5d392285e14ac3876539144dc54aea67363 100644 GIT binary patch delta 4407 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 delta 4339 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 Silzu@Z`+>UBf7z#g#RC3yd_!y delta 4274 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 AAOHXW diff --git a/docs/versions.yaml b/docs/versions.yaml index e02e4f9e99..327c6a0fd7 100644 --- a/docs/versions.yaml +++ b/docs/versions.yaml @@ -22,7 +22,7 @@ "1.26": 1.26.8 "1.27": 1.27.7 "1.28": 1.28.7 -"1.29": 1.29.10 -"1.30": 1.30.7 -"1.31": 1.31.3 -"1.32": 1.32.0 +"1.29": 1.29.11 +"1.30": 1.30.8 +"1.31": 1.31.4 +"1.32": 1.32.1 From f336aa123b8041088bf2f055b96c68181236f007 Mon Sep 17 00:00:00 2001 From: Ryan Northey Date: Sun, 8 Dec 2024 20:41:11 +0000 Subject: [PATCH 37/37] repo: Dev v1.32.3 Signed-off-by: Ryan Northey --- VERSION.txt | 2 +- changelogs/1.32.2.yaml | 27 +++++++++++++++++++++++++++ changelogs/current.yaml | 36 +++++++++++++----------------------- 3 files changed, 41 insertions(+), 24 deletions(-) create mode 100644 changelogs/1.32.2.yaml diff --git a/VERSION.txt b/VERSION.txt index c78d39b8ed..98773de2fa 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -1.32.2 +1.32.3-dev diff --git a/changelogs/1.32.2.yaml b/changelogs/1.32.2.yaml new file mode 100644 index 0000000000..5ea31acf5a --- /dev/null +++ b/changelogs/1.32.2.yaml @@ -0,0 +1,27 @@ +date: December 8, 2024 + +minor_behavior_changes: +- area: dns + change: | + Patched c-ares to address CVE-2024-25629. + +bug_fixes: +- area: access_log + change: | + Relaxed the restriction on SNI logging to allow the ``_`` character, even if + ``envoy.reloadable_features.sanitize_sni_in_access_log`` is enabled. +- area: original_ip_detection + change: | + Reverted :ref:`custom header + ` extension to its + original behavior by disabling automatic XFF header appending that was inadvertently introduced in PR #31831. +- area: tracers + change: | + Avoid possible overflow when setting span attributes in Dynatrace sampler. +- area: validation/tools + change: | + Add back missing extension for ``schema_validator_tool``. +- area: DNS + change: | + Fixed bug where setting ``dns_jitter `` to large values caused Envoy Bug + to fire. diff --git a/changelogs/current.yaml b/changelogs/current.yaml index 5ea31acf5a..9ecf0d6e48 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -1,27 +1,17 @@ -date: December 8, 2024 +date: Pending + +behavior_changes: +# *Changes that are expected to cause an incompatibility if applicable; deployment changes are likely required* minor_behavior_changes: -- area: dns - change: | - Patched c-ares to address CVE-2024-25629. +# *Changes that may cause incompatibilities for some users, but should not for most* bug_fixes: -- area: access_log - change: | - Relaxed the restriction on SNI logging to allow the ``_`` character, even if - ``envoy.reloadable_features.sanitize_sni_in_access_log`` is enabled. -- area: original_ip_detection - change: | - Reverted :ref:`custom header - ` extension to its - original behavior by disabling automatic XFF header appending that was inadvertently introduced in PR #31831. -- area: tracers - change: | - Avoid possible overflow when setting span attributes in Dynatrace sampler. -- area: validation/tools - change: | - Add back missing extension for ``schema_validator_tool``. -- area: DNS - change: | - Fixed bug where setting ``dns_jitter `` to large values caused Envoy Bug - to fire. +# *Changes expected to improve the state of the world and are unlikely to have negative effects* + +removed_config_or_runtime: +# *Normally occurs at the end of the* :ref:`deprecation period ` + +new_features: + +deprecated: