refactor: convert IR map fields to slices to ensure deterministic Dee…#7953
refactor: convert IR map fields to slices to ensure deterministic Dee…#7953arkodg merged 6 commits intoenvoyproxy:mainfrom
Conversation
✅ Deploy Preview for cerulean-figolla-1f9435 canceled.
|
e1ab70a to
e53faad
Compare
71aa5ec to
8853dd2
Compare
internal/ir/utils.go
Outdated
| for k, v := range m { | ||
| res = append(res, MapEntry{Key: k, Value: v}) | ||
| } | ||
| slices.SortFunc(res, func(a, b MapEntry) int { |
There was a problem hiding this comment.
nit: can you check if this style
is faster ?|
thanks @Junnygram this is great ! |
|
hey @Junnygram can you rebase and also help fix the new |
e7e1913 to
ce95e57
Compare
0b91684 to
6d2e822
Compare
|
@Junnygram can you rebase with main branch? |
9dd6df3 to
dde4a8f
Compare
dde4a8f to
07d514b
Compare
|
there's an issue with rebase, can you rebase properly and only push your changes |
…pEqual Addresses issue envoyproxy#7852. Signed-off-by: Junnygram <junnexclusive@gmail.com>
… mismatch Signed-off-by: Junnygram <junnexclusive@gmail.com>
Use sort.Slice instead of slices.SortFunc and cmp.Compare. Fix undefined apisv1 in zz_generated.deepcopy.go. Signed-off-by: Junnygram <junnexclusive@gmail.com>
…-to-slice refactor Signed-off-by: Junnygram <junnexclusive@gmail.com>
0f193a7 to
81624bf
Compare
|
lint is failing |
Signed-off-by: Junnygram <junnexclusive@gmail.com>
Signed-off-by: Junnygram <junnexclusive@gmail.com>
|
hi @arkodg I've addressed the linting issues by fixing the indentation in the YAML test data files. I also regenerated the test snapshots (make generate) to ensure they match the formatting changes. CI should be green now. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #7953 +/- ##
==========================================
+ Coverage 73.67% 73.73% +0.05%
==========================================
Files 240 241 +1
Lines 36488 36546 +58
==========================================
+ Hits 26884 26948 +64
+ Misses 7699 7693 -6
Partials 1905 1905 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
envoyproxy#7953) * refactor: convert IR map fields to slices to ensure deterministic DeepEqual Addresses issue envoyproxy#7852. Signed-off-by: Junnygram <junnexclusive@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com>
* e2e: speed tracing tests (#8124) * e2e: speed tracing tests Signed-off-by: zirain <zirain2009@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix(translator): allow single-label backends in host mode (#8123) Signed-off-by: Adrian Cole <adrian@tetrate.io> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * ci: release json report (#8107) Signed-off-by: zirain <zirain2009@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix oidc flakiness (#8119) * fix oidc flakiness Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix: skip_test_workflow doesn't exist (#8116) This also uses grouped redirects to satisfy shellcheck SC2129. Signed-off-by: Dylan M. Taylor <dylan@dylanmtaylor.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix e2e test panic (#8109) fix e2e test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * chore: bump func-e to v1.4.0 (#8105) bump func-e to v1.4.0 Signed-off-by: Adrian Cole <adrian@tetrate.io> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix: route idle timeout (#8058) * fix: route idle timeout Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * address comments Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> * add test Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> --------- Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * docs: add Mirakl to adopters list (#8138) Signed-off-by: Thierry Wandja <thierry.wandja@mirakl.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * docs: add security warning to control plane extensions (#7967) chore(docs): add warnings about control plane extensions Signed-off-by: Guy Daich <guy.daich@sap.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * chore: add lint for release notes filenames (#8137) * chore: add lint for release notes filenames Signed-off-by: zirain <zirain2009@gmail.com> * remove 1.7.0 Signed-off-by: zirain <zirain2009@gmail.com> * fix lint Signed-off-by: zirain <zirain2009@gmail.com> --------- Signed-off-by: zirain <zirain2009@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix: remove global logger in message package (#8131) * fix: remove global logger in message package Signed-off-by: zirain <zirain2009@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * docs: fix url result of regex rewrite (#7864) * Update http-urlrewrite.md Signed-off-by: Sadmi Bouhafs <sadmibouhafs@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * chore: log skipped xds (#8132) log skipped xds Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * docs: fixes for OPA sidecar + Unix Domain Socket task (#8142) Signed-off-by: Matt Miller <millermatt@outlook.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix: basic auth validation (#8053) * fix basic auth validation Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix: controller cache-sync readiness check (#7430) Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix: replace context.TODO with timeout context in config dump (#8122) * fix: replace context.TODO with timeout context in config dump Uses context.WithTimeout instead of context.TODO() to enable proper cancellation and prevent indefinite hangs when Kubernetes API is slow or unavailable. Fixes #8121 Signed-off-by: jaffar <keikei.jaffar@mail.utoronto.ca> * Make config dump timeout configurable with 30s default - Add Timeout field to ConfigDump struct - Add DefaultConfigDumpTimeout constant (30s) - Add getTimeout() helper that returns configured timeout or default - Update Collect() to use cd.getTimeout() instead of hardcoded value Signed-off-by: jaffar <keikei.jaffar@mail.utoronto.ca> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * refactor: convert IR map fields to slices to ensure deterministic Dee… (#7953) * refactor: convert IR map fields to slices to ensure deterministic DeepEqual Addresses issue #7852. Signed-off-by: Junnygram <junnexclusive@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix links in releasing and develop docs (#8141) * fix links in releasing and develop docs Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * update quickstart link Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> --------- Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * docs: add provider guide for entra (#7977) * docs: add provider guide for entra Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * chore: clean up test output files (#8154) clean up test output files Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix: TCPRoute mTLS didn't work (#8152) * fix: remove auto HTTP config on TCP cluster Signed-off-by: zirain <zirain2009@gmail.com> * fix lint Signed-off-by: zirain <zirain2009@gmail.com> * add e2e Signed-off-by: zirain <zirain2009@gmail.com> * fix e2e Signed-off-by: zirain <zirain2009@gmail.com> * fix comment Signed-off-by: zirain <zirain2009@gmail.com> * fix Signed-off-by: zirain <zirain2009@gmail.com> * fix resource name Signed-off-by: zirain <zirain2009@gmail.com> * address Arko's comment Signed-off-by: zirain <zirain2009@gmail.com> --------- Signed-off-by: zirain <zirain2009@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * v1.7.0-rc2 release notes (#8163) * v1.7.0-rc2 release notes Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> * fix the date Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> --------- Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> --------- Signed-off-by: zirain <zirain2009@gmail.com> Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> Signed-off-by: Adrian Cole <adrian@tetrate.io> Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Dylan M. Taylor <dylan@dylanmtaylor.com> Signed-off-by: Thierry Wandja <thierry.wandja@mirakl.com> Signed-off-by: Guy Daich <guy.daich@sap.com> Signed-off-by: Sadmi Bouhafs <sadmibouhafs@gmail.com> Signed-off-by: Matt Miller <millermatt@outlook.com> Signed-off-by: jaffar <keikei.jaffar@mail.utoronto.ca> Signed-off-by: Junnygram <junnexclusive@gmail.com> Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com> Co-authored-by: zirain <zirain2009@gmail.com> Co-authored-by: Adrian Cole <64215+codefromthecrypt@users.noreply.github.com> Co-authored-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Co-authored-by: Dylan M. Taylor <dylan@dylanmtaylor.com> Co-authored-by: Thierry Wandja <thierry.wandja@mirakl.com> Co-authored-by: Guy Daich <guy.daich@sap.com> Co-authored-by: Sadmi Bouhafs <sadmibouhafs@gmail.com> Co-authored-by: Matt Miller <millermatt@outlook.com> Co-authored-by: Isaac Wilson <10012479+jukie@users.noreply.github.com> Co-authored-by: jaffar keikei <keikei.jaffar@mail.utoronto.ca> Co-authored-by: Olaleye <90139191+Junnygram@users.noreply.github.com> Co-authored-by: Oliver Bähler <oliverbaehler@hotmail.com>
envoyproxy#7953) * refactor: convert IR map fields to slices to ensure deterministic DeepEqual Addresses issue envoyproxy#7852. Signed-off-by: Junnygram <junnexclusive@gmail.com>
refactor: convert IR map fields to slices to ensure deterministic DeepEqual
This PR refactors the Intermediate Representation (IR) to replacing map fields with slices of structs. This ensures consistent ordering of elements, which is critical for deterministic
DeepEqualcomparisons and preventing unnecessary xDS updates.Key changes:
map[string]stringwith[]MapEntryin IR structs.map[string]CustomTagwith[]CustomTagMapEntry.TrafficFeatures.Telemetryfrom API types to enforce slice usage.gatewayapitranslator to convert API maps to sorted IR slices.xds/translatorto consume slice-based IR.Fixes #7783.