Skip to content

add support for maglev for consistent hash load balancer #40142

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Aug 16, 2022

Conversation

ramaraochavali
Copy link
Contributor

@ramaraochavali ramaraochavali commented Jul 28, 2022

Implements istio/api#2434

  • Configuration Infrastructure
  • Docs
  • Installation
  • Networking
  • Performance and Scalability
  • Policies and Telemetry
  • Security
  • Test and Release
  • User Experience
  • Developer Infrastructure

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
@ramaraochavali ramaraochavali requested review from a team as code owners July 28, 2022 10:50
@istio-testing istio-testing added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Jul 28, 2022
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
@ramaraochavali ramaraochavali requested review from a team as code owners July 28, 2022 10:55
@ramaraochavali
Copy link
Contributor Author

Benchmark results of Envoy

benchmarkRingHashLoadBalancerBuildRing/100/65536                  54.8 ms         54.8 ms            1 memory=0 memory_per_host=0
benchmarkRingHashLoadBalancerBuildRing/200/65536                  54.7 ms         54.7 ms            1 memory=0 memory_per_host=0
benchmarkRingHashLoadBalancerBuildRing/500/65536                  55.3 ms         55.3 ms            1 memory=0 memory_per_host=0
benchmarkRingHashLoadBalancerBuildRing/100/256000                  216 ms          216 ms            1 memory=0 memory_per_host=0
benchmarkRingHashLoadBalancerBuildRing/200/256000                  215 ms          215 ms            1 memory=0 memory_per_host=0
benchmarkRingHashLoadBalancerBuildRing/500/256000                  215 ms          215 ms            1 memory=0 memory_per_host=0
benchmarkMaglevLoadBalancerBuildTable/100                         10.5 ms         10.5 ms            1 memory=0 memory_per_host=0
benchmarkMaglevLoadBalancerBuildTable/200                         10.4 ms         10.4 ms            1 memory=0 memory_per_host=0
benchmarkMaglevLoadBalancerBuildTable/500                         10.9 ms         10.9 ms            1 memory=0 memory_per_host=0
benchmarkRingHashLoadBalancerChooseHost/100/65536/100000          97.1 ms         97.1 ms            1 mean_hits=1000 relative_stddev_hits=0.0449153 stddev_hits=44.9153
benchmarkRingHashLoadBalancerChooseHost/200/65536/100000          99.8 ms         99.8 ms            1 mean_hits=500 relative_stddev_hits=0.0739416 stddev_hits=36.9708
benchmarkRingHashLoadBalancerChooseHost/500/65536/100000           101 ms          101 ms            1 mean_hits=200 relative_stddev_hits=0.113084 stddev_hits=22.6168
benchmarkRingHashLoadBalancerChooseHost/100/256000/100000          105 ms          105 ms            1 mean_hits=1000 relative_stddev_hits=0.0368953 stddev_hits=36.8953
benchmarkRingHashLoadBalancerChooseHost/200/256000/100000          107 ms          107 ms            1 mean_hits=500 relative_stddev_hits=0.0506154 stddev_hits=25.3077
benchmarkRingHashLoadBalancerChooseHost/500/256000/100000          107 ms          107 ms            1 mean_hits=200 relative_stddev_hits=0.0827714 stddev_hits=16.5543
benchmarkMaglevLoadBalancerChooseHost/100/100000                  76.1 ms         76.1 ms            1 mean_hits=1000 relative_stddev_hits=0.029227 stddev_hits=29.227
benchmarkMaglevLoadBalancerChooseHost/200/100000                  79.2 ms         79.2 ms            1 mean_hits=500 relative_stddev_hits=0.0415841 stddev_hits=20.7921
benchmarkMaglevLoadBalancerChooseHost/500/100000                  81.1 ms         81.1 ms            1 mean_hits=200 relative_stddev_hits=0.0687299 stddev_hits=13.746
benchmarkRingHashLoadBalancerHostLoss/500/65536/1/10000            138 ms          138 ms            1 host_loss_over_N_optimal=0.2 percent_different=0.15
benchmarkRingHashLoadBalancerHostLoss/500/65536/2/10000            138 ms          138 ms            1 host_loss_over_N_optimal=0.4 percent_different=0.34
benchmarkRingHashLoadBalancerHostLoss/500/65536/3/10000            137 ms          137 ms            1 host_loss_over_N_optimal=0.6 percent_different=0.46
benchmarkMaglevLoadBalancerHostLoss/500/1/10000                   44.4 ms         44.4 ms            1 host_loss_over_N_optimal=0.2 percent_different=1
benchmarkMaglevLoadBalancerHostLoss/500/2/10000                   44.3 ms         44.3 ms            1 host_loss_over_N_optimal=0.4 percent_different=1.65
benchmarkMaglevLoadBalancerHostLoss/500/3/10000                   44.0 ms         44.0 ms            1 host_loss_over_N_optimal=0.6 percent_different=1.9
benchmarkMaglevLoadBalancerWeighted/500/5/1/1/10000               44.2 ms         44.2 ms            1 optimal_percent_different=0 percent_different=0
benchmarkMaglevLoadBalancerWeighted/500/5/1/127/1000              41.2 ms         41.2 ms            1 optimal_percent_different=81.9863 percent_different=80.8
benchmarkMaglevLoadBalancerWeighted/500/5/127/1/10000             46.5 ms         46.5 ms            1 optimal_percent_different=81.9863 percent_different=81.72
benchmarkMaglevLoadBalancerWeighted/500/50/1/127/1000             38.7 ms         38.7 ms            1 optimal_percent_different=49.2188 percent_different=50.8
benchmarkMaglevLoadBalancerWeighted/500/50/127/1/10000            44.1 ms         44.1 ms            1 optimal_percent_different=49.2188 percent_different=50.16
benchmarkMaglevLoadBalancerWeighted/500/95/1/127/1000             38.1 ms         38.1 ms            1 optimal_percent_different=4.95857 percent_different=6.5
benchmarkMaglevLoadBalancerWeighted/500/95/127/1/10000            45.2 ms         45.2 ms            1 optimal_percent_different=4.95857 percent_different=7.25
benchmarkMaglevLoadBalancerWeighted/500/95/25/75/1000             39.1 ms         39.1 ms            1 optimal_percent_different=0.139958 percent_different=0.8
benchmarkMaglevLoadBalancerWeighted/500/95/75/25/10000            44.0 ms         44.0 ms            1 optimal_percent_different=0.139958 percent_different=0.74

Also see minimal disruption explained https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#config-cluster-v3-cluster-maglevlbconfig and https://docs.google.com/document/d/1IU4b76AgOXijNa4sew1gfBfSiOMbZNiEt5Dhis8QpYg/edit#

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
Copy link
Member

@howardjohn howardjohn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems reasonable to me but I don't know much about these features to know the possible impact

cc @hzxuzhonghu

releaseNotes:
- |
**Updated** the load balancing algorithm used for consistent hash to MAGLEV inplance of RING_HASH.
This is expected to perform better with low host lookup times and also handles changes to backend
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'The downside of Maglev is that it is not as stable as ring hash.' seems to contradict that it handles changes better?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems a doc issue.
"With that said, for many applications including Redis, Maglev is very likely a superior drop in replacement for ring hash."
and the bench marks shows the diff and this https://docs.google.com/document/d/1IU4b76AgOXijNa4sew1gfBfSiOMbZNiEt5Dhis8QpYg/edit# explains better.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// unable to distinguish between set and unset case currently.
// 1024 is the default value for envoy
minRingSize := &wrappers.UInt64Value{Value: 1024}
if consistentHash.MinimumRingSize != 0 {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now this is ignored. We may want to warn if its set? Or possibly even switch to ring_hash if its set?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning seems better and if user wants RING_HASH he can flip the flag. Should we deprecate this if we moved forward with this?

@nmittler
Copy link
Contributor

Is the issue that we don't allow the user to specify maglev today?

@ramaraochavali
Copy link
Contributor Author

Is the issue that we don't allow the user to specify maglev today?

Correct. But consistent hash is what we allow customer to specify and RING_HASH or MAGLEV is an implementation detail (choice of algo) for consistent hash to work.

@nmittler
Copy link
Contributor

@ramaraochavali ah so it's a bit murky then. Maybe we should actually expand the enum to include both ring hash and maglev in order to allow the user to be more explicit. That would make the switching of the default for consistent hashing safer and would allow a user a way to opt out without changing istiod flags.

@ramaraochavali
Copy link
Contributor Author

@nmittler I was actually thinking that we should switch to MAGLEV by default and deprecate the ring size and add https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#config-cluster-v3-cluster-maglevlbconfig.

Its not in the existing enum actually if we want to expose in the API. We have two choices https://github.com/istio/api/blob/master/networking/v1alpha3/destination_rule.proto#L607 and if user choose ConsistentHash may be we can add algorithm as one of the options and default it to RING_HASH - Is that what you are suggesting as well?

If we are good with that approach - I can add that option in ConsistentHash to choose the Algo

@nmittler
Copy link
Contributor

@nmittler I was actually thinking that we should switch to MAGLEV by default and deprecate the ring size and add https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#config-cluster-v3-cluster-maglevlbconfig.

So I assume you're suggesting to deprecate ring size because the ring hash algorithm would also be deprecated? Is it deprecated in Envoy? If not, I'm not sure we should deprecated it either ... if a user wants to use it, we should let them. There may be valid reasons apart from performance (i.e. stability). I'd rather just expand the enumeration and add any other config that we think is needed.

@howardjohn WDYT?

@howardjohn
Copy link
Member

howardjohn commented Jul 28, 2022 via email

@ramaraochavali
Copy link
Contributor Author

If we change the API I think it is better to add new field in ConsistentHashLB that tells what to pick MAGLEV, RING_HASH - But I think it is an implementation detail of consistent hash. So not 100% sure about exposing that in API

Regarding stateful session, it may be better to add it as a separate field as it is slightly from consistent hash because

  • it only supports cookie
  • And it is actually differs from consistent hash - there is no hashing involved here.

@ramaraochavali
Copy link
Contributor Author

@howardjohn @nmittler Thinking about this more the following makes more sense to me

  • Add a new config that controls maglev table size
    // The minimum number of virtual nodes to use for the hash
    // ring. Defaults to 1024. Larger ring sizes result in more granular
    // load distributions. If the number of hosts in the load balancing
    // pool is larger than the ring size, each host will be assigned a
    // single virtual node.
    uint64 minimum_ring_size = 4;

    // The table size for Maglev hashing. This helps in controlling the 
    // disruption when the backend hosts change.
    // Increasing the table size reduces the amount of disruption. 
    uint64 maglev_table_size = 5;
  • Choose the algorithm based on what user sets. If he sets minimum_ring_size that means he might have tuned the ring hash and that is a hint for us to apply ring hash. If he sets maglev_table_size that means he has chosen maglev.
  • By default if none of these parameters are set, we default to Maglev and we let users switch back to consistent hash for couple of releases and remove that flag.

WDYT?

@nmittler
Copy link
Contributor

nmittler commented Jul 29, 2022

IIUC the issue there is that of conflicting defaults. It certainly makes sense for the parameters to have sensible defaults for the particular algorithm (the comment for the minimum_ring_size indicates that it Defaults to 1024). However, at the same time you're suggesting that if these parameters are unset, it would trigger a default algorithm selection. So which is it? You can't use the presence of the parameters to indicate algorithm selection if absence also indicates a default value for a particular algorithm. Or maybe I'm missing something?

Honestly, I think instead of an enum we should have used a oneof, which would allow us to select an algorithm and define its properties all in a single structure. Maybe we should switch to that and deprecate the old field?

@hzxuzhonghu
Copy link
Member

More keys will move position when hosts are removed (simulations show approximately double the keys will move).

I would agree with @nmittler no one is the best in any case as the doc said.

@ramaraochavali
Copy link
Contributor Author

Honestly, I think instead of an enum we should have used a oneof, which would allow us to select an algorithm and define its properties all in a single structure. Maybe we should switch to that and deprecate the old field?

I am fine with that. Should I change API like this?
@howardjohn @hzxuzhonghu WDYT?

@hzxuzhonghu
Copy link
Member

I do agree add this option in API and give clear docs about pros and cons.
Then user have the right to select which algorithm they want to use

@howardjohn
Copy link
Member

howardjohn commented Aug 1, 2022 via email

@@ -151,6 +151,12 @@ var (
"UseRemoteAddress sets useRemoteAddress to true for side car outbound listeners.",
).Get()

UseMaglevForConsistentHash = env.RegisterBoolVar(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be removed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API changes are not merged yet to main repo. I will fix it after api is reflected here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is it still here since the API is merged

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API changes have not been reflected to Istio/Istio. I am waiting for it to happen so that I can change this. https://github.com/istio/istio/pull/40479/files is merged today. So I will rebase and fix it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What change do u mean? Not istio/api#2434?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That change only was not updated to main repo because it was failing lint validation for deprecated field in that PR. Automatic API did not happen. https://github.com/istio/istio/pull/40479/files manually updated the API.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So let's wait for it. I believe eventually we meant to implement it rather than this env flag.

@istio-testing istio-testing added the needs-rebase Indicates a PR needs to be rebased before being merged label Aug 15, 2022
@istio-testing istio-testing added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed needs-rebase Indicates a PR needs to be rebased before being merged size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Aug 16, 2022
@ramaraochavali ramaraochavali changed the title use maglev for consistent hash load balancer add support for maglev for consistent hash load balancer Aug 16, 2022
@ramaraochavali
Copy link
Contributor Author

@hzxuzhonghu @howardjohn implemented the new API. PTAL.

}
}
if consistentHash.MinimumRingSize != 0 {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we error if both are set? Since the deprecated one would be ignored in this case

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure I can add

@istio-testing istio-testing merged commit cf9ff9a into istio:master Aug 16, 2022
@ramaraochavali ramaraochavali deleted the fix/maglev branch August 16, 2022 15:25
Copy link
Member

@hzxuzhonghu hzxuzhonghu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

howardjohn added a commit that referenced this pull request Sep 7, 2022
* Move go.mod to 1.18 (#40028)

This enables
#36308 (comment)

* Remove unused attributes of WatchedResource to reduce memory (#39945)

* Abstract gateway context outside of mode package (#40035)

* Automator: update proxy@master in istio/istio@master (#40063)

* Add a flag for app container name and retry verifyTrafficMirror (#40053)

For some workloads the container name is different and the logs can be slower. So the verification of mirroring test cases is retried for 20 seconds.

* use common MessageToAny method everywhere (#40041)

* use common MessageToAny method everywhere

* add missing reference

* cleanup ioutil (#40062)

Signed-off-by: yxxhero <aiopsclub@163.com>

* check DNS Proxying for headless svc (#40023)

* Automator: update proxy@master in istio/istio@master (#40070)

* fix lint (#40056)

* fix lint

* make gen

* istioctl: set default port from webhook (#40069)

Kubernetes doesn't require port, but ADSC does. Set a default if its not
there yet.

* Automator: update proxy@master in istio/istio@master (#40075)

* Minor comments fix (#40079)

Signed-off-by: Zhonghu Xu <xuzhonghu@huawei.com>

* Proxy labels should be updated when pod/wle labels updated (#40036)

* Proxy labels should be updated when for example pod labels updated

* make pod labels not replace all node meta labels

* fixlint

* Adress comments

* Added localityLabel to pod label so we can get proxy locality from pod labels rather than service instances, which may not exist

* Refactor: abstract setTopologyLabels

* Update

* update

* pod label change trigger proxy update

* wle label change trigger proxy update

* update tests

* lint

* fix

* handle removes (#1)

* handle removes

* handle removes

Signed-off-by: Aditya Prerepa <adiprerepa@gmail.com>

* update

* refresh golden files

Co-authored-by: Aditya Prerepa <adiprerepa@gmail.com>

* fix typo in pilot.go (#40084)

authenication -> authentication

* use same xds types every where (#40088)

* use same types every where

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* change delta

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* Update constant definitions for metrics (#40086)

* Automator: update common-files@master in istio/istio@master (#40099)

* Automator: update proxy@master in istio/istio@master (#40095)

* Revert "Add a flag for app container name and retry verifyTrafficMirror (#40053)" (#40096)

This reverts commit d3b1687.

* move more fuzzers over to native fuzzers (#40029)

* move more fuzzers over to native fuzzers

* banner

* lint

* Automator: update istio/client-go@master dependency in istio/istio@master (#40100)

* Rewrite `interface{}` to `any` (#40073)

* Rewrite any to anypb

* Rewrite interface{} to any

* regen

* Remove validation of TunnelSettings.Protocol for empty string (#40102)

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Revert "Proxy labels should be updated when pod/wle labels updated (#40036)" (#40098)

This reverts commit 5f90e4b.

* delete multi-arch selector in the gateway templates (#40068)

* Refactor resolution of network gateway names for more efficiency (#39836)

* Refactor resolution of network gateway names for more efficiency

* Fix lint

* Fix DNS record type switch

* Automator: update proxy@master in istio/istio@master (#40117)

* Simpler injectionPath format for cluster env value with / char (#39979)

* Simpler injectionPath format for cluster env value with / char

* fix lint

* update comment

* more comment update

* improve test

* Automator: update common-files@master in istio/istio@master (#40119)

* Automator: update proxy@master in istio/istio@master (#40120)

* Automator: update istio/client-go@master dependency in istio/istio@master (#40121)

* Automator: update proxy@master in istio/istio@master (#40129)

* xdstest: use some generic functions instead of hacks (#40074)

* xdstest: use some generic functions instead of hacks

* compile

* Fix nil

* license

* Update copyright (#40126)

* Update copyright

Signed-off-by: Xiao, Ziyang <ziyang.xiao@intel.com>

* remove update in meshca.pb.go

Signed-off-by: Xiao, Ziyang <ziyang.xiao@intel.com>

* Update Wasm Dashboard Default Time (#40130)

* Update Wasm Dashboard Default Time

* resolve ci errors

Signed-off-by: Xunzhuo <mixdeers@gmail.com>

* move send unhealthy endpoint flag to atomic bool (#40140)

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix multi WasmPlugin with different imagePullSecrets (#40093)

* fix ecds secret cache

* add release-notes

* address comment and fix typo

* Automator: update common-files@master in istio/istio@master (#40150)

* Add default validator template to istio-remote (#40149)

* Automator: update istio/client-go@master dependency in istio/istio@master (#40152)

* Automator: update proxy@master in istio/istio@master (#40161)

* Support list type in analyze (#40085)

* support list type in analyze

* revise parseChunk func

* refactor response checker (#40156)

* improve build_push_update_images.sh (#40170)

Signed-off-by: xin.li <xin.li@daocloud.io>

* workload instance cause stale CDS clusters of type STRICT_DNS (#39947)

* workload instance cause stale CDS clusters with of type STRICT_DNS

* added release note

* fewer full push triggers

* code review comments for release note

* extend logic for DNS_ROUND_ROBIN

* update trigger reason to EndpointUpdate

* add unit tests

* minor refactor in gateway api (#40171)

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* Automator: update istio/client-go@master dependency in istio/istio@master (#40175)

* test: use `T.Setenv` to set env vars in tests (#40176)

This commit replaces `os.Setenv` with `t.Setenv` in tests. The
environment variable is automatically restored to its original value
when the test and all its subtests complete.

Reference: https://pkg.go.dev/testing#T.Setenv
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* Update BASE_VERSION to master-2022-07-29T19-01-38 (#40179)

* Automator: update common-files@master in istio/istio@master (#40180)

* Automator: update istio/client-go@master dependency in istio/istio@master (#40181)

* Automator: update proxy@master in istio/istio@master (#40183)

* Fix ist0103 msg incorrect displaying when injection label is set to false (#40164)

* fix ist0103 incorrect fireing

* fix unit test

* Automator: update proxy@master in istio/istio@master (#40191)

* Prevent calling json.MarshalIndent and handle err, instead using writeJSON (#40197)

* Automator: update common-files@master in istio/istio@master (#40200)

* fuzz: attempt to fix build by working around fuzzing limitation (#40203)

* fuzz: attempt to fix build by working around fuzzing limitation

* Also add to owners

* Automator: update istio/client-go@master dependency in istio/istio@master (#40202)

* Automated branching step 1 (#40206)

* Automator: update proxy@master in istio/istio@master (#40208)

* Automator: update common-files@master in istio/istio@master (#40212)

* Automator: update istio/client-go@master dependency in istio/istio@master (#40214)

* Automator: update proxy@master in istio/istio@master (#40215)

* pilot: fix issue with TLS and TCP order dependency (#40072)

* pilot: fix issue with TLS and TCP order dependency

Currently, tls_inspector is only added if its the first Service. If its
after TCP, it is missed.

example config:

```yaml
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: tcp
spec:
  addresses:
  - 10.10.10.10/24
  exportTo:
  - .
  hosts:
  - '*.tcp'
  ports:
  - name: tcp-443
    number: 443
    protocol: TCP
---
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: tls
spec:
  exportTo:
  - .
  hosts:
  - tls.example.com
  location: MESH_EXTERNAL
  ports:
  - name: https-443
    number: 443
    protocol: HTTPS
  resolution: DNS
```

depending on the order of creation it will work/not work.

* note

* Make it more generic and better tested

* optimize handleStats temporary big byte slice (#40109)

* add global stats buffer on handleStats

* remove agent errors counter

* remove process metrics function

* app metrics must go last

* scrape agent first

* process metrics without copy slice

* replace with #

* use multi buffer

* fix build

* fix comment

* reader director write to response

* fix problem

* fix lint

* fix cancel func

* add benchmark

Signed-off-by: Patrick <patrickjiang0530@gmail.com>

* modify benchmark

Signed-off-by: Patrick <patrickjiang0530@gmail.com>

* fix ci lint

Signed-off-by: Patrick <patrickjiang0530@gmail.com>

* add copyAndProcessMetrics

Signed-off-by: Patrick <patrickjiang0530@gmail.com>

* fix lint and nr <= 0

Signed-off-by: Patrick <patrickjiang0530@gmail.com>

* use bufPool

* fix lint and problem

* add copyAndProcessMetrics unit tests

Signed-off-by: Patrick <patrickjiang0530@gmail.com>

* fix unit test

* revert server for benchmark

Signed-off-by: Patrick <patrickjiang0530@gmail.com>

* revert server_test for benchmark

Signed-off-by: Patrick <patrickjiang0530@gmail.com>

* revert server_test for benchmark

Signed-off-by: Patrick <patrickjiang0530@gmail.com>

* Revert "revert server_test for benchmark"

This reverts commit b3551c0.

* Revert "revert server_test for benchmark"

This reverts commit 63be4af.

* Revert "revert server for benchmark"

This reverts commit 5a3fb73.

* fix unit test

Signed-off-by: Patrick <patrickjiang0530@gmail.com>

* remove proccess metrics

* remove proccess metrics

* fix imports

* modify benchmark

* modify benchmark

* revert to test benchmark

* fix tests

* fix unit test

* fix benchmark tests

* fix benchmark

* Revert "revert to test benchmark"

This reverts commit a2851e2.

* optimize tests

* remove sync pool

* Use absolute path when adding file watcher (#40137)

* Use absolute path when adding file watcher

* add test case which checks for absolute path

* add testdata for TestTryAddFileWatcher test

* Automator: update common-files@master in istio/istio@master (#40228)

* Fix new linter version (#40204)

The new linter fixes `go vet` to properly detect these, so update the
code to match

* Automator: update istio/client-go@master dependency in istio/istio@master (#40233)

* cleanup tunneling code (#40226)

* cleanup tunneling code

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* network test

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* Fix export to logic lead to not found logic (#40244)

* fix export to logic

* releasenotes

* gen

* fix eds comments (#40242)

* fix eds comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* minor comment

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* Automator: update istio/api@master dependency in istio/istio@master (#40248)

* Automator: update common-files@master in istio/istio@master (#40247)

* Automator: update istio/pkg@master dependency in istio/istio@master (#40251)

* Run `make gen` (#40255)

* Cleanup makefile env vars (#40252)

* Cleanup some more legacy fields

* fix packaging.mk

* Automator: update proxy@master in istio/istio@master (#40253)

* Automator: update istio/client-go@master dependency in istio/istio@master (#40249)

* Automator: update proxy@master in istio/istio@master (#40261)

* Documentation updates for comments in #40255 (#40258)

* Support pulling multi-arch envoy binaries (#39483)

* Allow no cpuinfo

* allow fail

* Bump kind image

* debug

* workaround env var

* fix docker build

* log

* arch in build

* set arch again

* fix arch type

* more logs

* more env

* Make single image architecture aware

* VM per-arch

* Opt out when requiring emulation

* Fix jwt server

* fmt

* Revert env var hacks

* cleanup

* minor fixes

* new release-builder

* multi-arch

* lint

* fix fake v1beta1 conversion (#40240)

* Remove unused fields of Agent (#40262)

* Bump master to 1.16 (#40263)

* Automator: update istio/api@master dependency in istio/istio@master (#40271)

* Automator: update istio/client-go@master dependency in istio/istio@master (#40272)

* Add qemulation to release builder (#40279)

* Add qemulation to release builder

VMs currently require emulation to cross compile. We previously just
skipped them, but then you cannot simply run `go test
./tests/integration/...` with `gcr.io/istio-testing` since we don't have
the VM images.

Instead, try emulation.

* Use our image

* Automator: update istio/pkg@master dependency in istio/istio@master (#40287)

* change log level (#40184)

* change log level

* add release notes

* Automator: update proxy@master in istio/istio@master (#40293)

* Add SkyWalking configuration samples (#40269)

* do not repeat trust id in logs (#40089)

* remove redundant id in spiffe logs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* only expand trust domains for k8s services

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* service entry can select pods

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* revert

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* remove restart epoch from envoy (#40300)

* wip

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* remove the concep of epoch

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* remove unnecessary change

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* some more code cleanup

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* some more cleanup

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* start admin interface earlier (#40151)

* start admin interface earlier

Change-Id: Icdd17bffb482f721dfd8c865a56b02835d3dbc99

* lint

Change-Id: I31eba25e850738cf47bd312b8e03f23d67f23a2a

* Support debug building mode (#40289)

* Automator: update istio/api@master dependency in istio/istio@master (#40305)

* Automator: update istio/client-go@master dependency in istio/istio@master (#40306)

* Update BASE_VERSION to master-2022-08-05T19-00-49 (#40308)

* security tests refactor (#40209)

* security tests refactor

* updated the logic to create custom configs

* fix empty endpoints weight for AUTO_PASSTHROUGH gateway (#40243)

* fix empty endpoints weight for AUTO_PASSTHROUGH gateway

* add a test

* Automator: update proxy@master in istio/istio@master (#40312)

* Automator: update proxy@master in istio/istio@master (#40319)

* Fix TestInsertDataToConfigMap flake (#40294)

* Fix bug for for Sidecar's defaultEndpoint is IPv6 format (#40265)

* fix issue#40245 for Sidecar in ipv6 defaultEndpoint format

* fix the lll go lint

* add unit test for sidecar's defaultEndpoint

* completed this fixing according to comments

* change code based on comments

* add comments in code for re-trigger the C

* check the IPv6 address by Net.IP to16

* check the IPv6 address by Net.IP to16

* Fix 0103 warning for non-injected pods on the host network (#40220)

* Fix 0103 warning on pods on the host network

* Fix newline

* Add a release note

* Fix typo

* improve sleep-spireyaml (#40328)

Signed-off-by: xin.li <xin.li@daocloud.io>

* fuzzing: fix oss-fuzz build (#40315)

Signed-off-by: AdamKorcz <adam@adalogics.com>

* fix gateway with different bind to have same host (#40275)

* fix gateway with different bind to have same host

* add release note

* address comments

Co-authored-by: youchen <youchen@ebay.com>

* improve  CheckAutoScaleAndReplicaCount (#40297)

* improve  CheckAutoScaleAndReplicaCount

* add release-notes

* update release-notes

* add UT

* Don't gen default webhooks is operatorManageWebhooks is true (#40304)

* Respect ALPN negotiation in agent prober (#40307)

* Respect ALPN negotiation in agent prober

Fixes #40173

This aligns with kubelet probe, to support http2 for `HTTPS` probes.

Note: the request from kubelet->agent will always be HTTP/1.1 still,
just the upstream is changed.

* lint

* unify timeout logic across service and virtual service (#40320)

* unify timeout logic across service and virtual service

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* release notes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* address comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* separate inbound and outobund timeouts

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* Automator: update istio/api@master dependency in istio/istio@master (#40337)

* Automator: update istio/client-go@master dependency in istio/istio@master (#40338)

* Automator: update proxy@master in istio/istio@master (#40345)

* Remove old Envoy runtime flag (#40301)

* chore: add missing templating list for datasource (#40361)

* chore: add missing templating list for datasource

Signed-off-by: Xunzhuo <mixdeers@gmail.com>

* update

Signed-off-by: Xunzhuo <mixdeers@gmail.com>

* Fix Mac build, moving linux specific code to its own files (#40343)

* Fix Mac build, moving linux specific code to its own files

* Move full ConfigureRoutes()

* Fix imports

* Automator: update proxy@master in istio/istio@master (#40371)

* Set ISTIO_META_GENERATOR only fro grpc (#40136)

* Set ISTIO_META_GENERATOR only fro grpc

* Revert change to injection to minimize risk, mixed mode will use regular template

* Fix unit test

* add identifier to crd client logs (#40327)

* add identifier to crd client logs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix log statements

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* move scope to client

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* move all scopes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* Automator: update proxy@master in istio/istio@master (#40374)

* Propagate SkyWalking tracing header (#40296)

* Automator: update proxy@master in istio/istio@master (#40388)

* fix the bug when istio ingressgateway cannot be matched to a node (#40387)

* debug interface: fix crash regression (#40393)

* debug interface: fix crash regression

Fixes #40384

The issue is before we had some somewhat odd ordering to apply the
DebugMux to the debugGen. This changes it to be more explicit - and more
importantly correct as we correctly pass it a non-nil mux

* lint

* Rework proxy labels update (#40186)

* Rework "Proxy labels should be updated when pod/wle labels updated (#40036)"

This reverts commit 2f9f3fb.

* Deepcopy labels before adding istio-locality

* rewrite when to recompute workload labels

* client no need to send istio meta labels separately

* Fix build

* revert test golden files

* Minor update

* Add UpdateWorkloadLabel in TF

* workload labels update test

* update

* fix

* retry update

* Skip vm pod label update

* Fix lint

* update

* Fix multi cluster test: run in serial

* Automator: update proxy@master in istio/istio@master (#40404)

* fix multi accesslogging not working (#39521)

* fix multi accesslogging not working

* fix lint

* fix e2e

* fix UT

* add more UT

* add failover priorities to eds cache key (#40221)

* telemetry logging: insert newlines in format, per spec (#40411)

* Promoted istioctl x uninstall to istioctl uninstall (#40362)

* Promoted istioctl x uninstall to istioctl uninstall

fixes #40339

Signed-off-by: Tong Li <litong01@us.ibm.com>

* Promoted istioctl x uninstall to istioctl uninstall

fixes #40339

Signed-off-by: Tong Li <litong01@us.ibm.com>

* Promoted istioctl x uninstall to istioctl uninstall

Fixes #40339

Signed-off-by: Tong Li <litong01@us.ibm.com>

* Promoted istioctl x uninstall to istioctl uninstall

fixes #40339

Signed-off-by: Tong Li <litong01@us.ibm.com>

Signed-off-by: Tong Li <litong01@us.ibm.com>

* Automator: update proxy@master in istio/istio@master (#40420)

* tf: Fix Istioctl XDS flakes (#40274)

* tf: Fix Istioctl XDS flakes

This is failing recently since we made proxy disconnect from control
plane more often. This exposed that these tests fail if they happen to
run when not connected.

Fixes #37169
Fixes #40273

* fix build

* fmt

* Automator: update common-files@master in istio/istio@master (#40432)

* added few more test scenarios in authz builder (#40435)

* Automator: update proxy@master in istio/istio@master (#40438)

* Add benchmarks for queue (#40406)

* telemetry logging: refactor fileAccessLogFormat (#40442)

* telemetry logging: refactor fileAccessLogFormat

* fix lint

* fix UT

* fix lint

* Refactor proxy labels: add labels fields to Proxy (#40322)

* Refactor proxy labels: add labels fields to Proxy

* only recompute proxy labels when initial request and proxy update

* Fix rebase error

* rm metadata labels

* reapply node meta labels when reconnect

* Add proxy labels to debug

* fix bootstrap node metadata

* Address comments

* Fix ut and lint

* Fix

* Fix nil pointer

* Make env with higher priority

* move maxstream duration creation inside (#40449)

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* cni: improve logging of istio-validation (#40412)

* cni: improve logging of istio-validation

currently the logging is not user friendly -- we just report validation
failed, but not what it is validating or why

* lint

* lint

* Update to istio/api before istio/api#2421 and fix lint issues (#40446)

* Update latest istio/api and fix lint issues

* Move back to commit before istio/api#2421

* improve the output's link (#40472)

Signed-off-by: xin.li <xin.li@daocloud.io>

Signed-off-by: xin.li <xin.li@daocloud.io>

* Automator: update common-files@master in istio/istio@master (#40478)

* Attempt to fix merging latest api/client-go repos (#40479)

* refactor get and process functionality of queue (#40441)

* refactor get and process

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* change condition

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* loose telemetry accesslogging validation  (#40373)

* loose telemetry accesslogging validation

Signed-off-by: hejianpeng <hejianpeng2@huawei.com>

* add tests

Signed-off-by: hejianpeng <hejianpeng2@huawei.com>

* Fix invalid use of formatting in logs (#40482)

* Fix invalid use of formatting in logs

* fix accidental change

* bump gateway-api to support arm64 (#40476)

* bump gateway-api to support arm64

* fixup some failures

* bump

* Automator: update proxy@master in istio/istio@master (#40484)

* Update message for number of sidecars (#40437)

* add support for maglev for consistent hash load balancer (#40142)

* use maglev for consistent hash load balancer

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add release notes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix release notes

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* lint

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* Unify cert validity check for xds client and caClient (#40453)

* Verify cert not expire for xds client as well

* revert token

* revert cert notBefore check

* resovle redundant match (#40492)

Signed-off-by: xin.li <xin.li@daocloud.io>

Signed-off-by: xin.li <xin.li@daocloud.io>

* Allow linking to artifact directly in prow logs (#40493)

* Allow linking to artifact directly in prow logs

* fix url

* more fixes

* fix build

* Automator: update proxy@master in istio/istio@master (#40498)

* docker: remove redundant logs (#40500)

No need to log a bunch on each call

* Set istiod seccompProfile to RuntimeDefault (#40115)

* Set istiod seccompProfile to RuntimeDefault

* Make seccompProfile configurable, with default remaining as unset

* Add seccompProfile to operator/pkg/apis/istio/v1alpha1/values_types.proto

* Update autogenerated files

* Add release note

* Add seccompProfile option to CNI and operator

* Automator: update proxy@master in istio/istio@master (#40501)

* Automator: update common-files@master in istio/istio@master (#40502)

* Automator: update istio/client-go@master dependency in istio/istio@master (#40515)

* Fix ProxyConfig merge impacting shared state (#40494)

The issue was we were overriding things by setting them to pointers.
These pointers are then shared, and when `proto.merge` is used they are
all mutated.

Instead, take deepcopies and add a test

* add validation to allow only of ring hash size or hash algorithm (#40507)

* add validation to allow only of ring hash size or hash algorithm

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* lint

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* review comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* Ignore port number in domain matching entirely (#40475)

* Ignore port name in domain matching entirely

Fixes #40474

This is finally available in Envoy so we can drop our hacks of adding
the port, adding `:*`, etc.

* fix more usages

* lint

* fix

* Flag protect sidecar

* lint

* note

* Update test images to multiarch supported versions (#40496)

* Fix VM tests on arm64

* Update more images

* fix oc

* drop mem limit

* Changing default value of ENABLE_LEGACY_FS_GROUP_INJECTION in charts (#40531)

Signed-off-by: Faseela K <faseela.k@est.tech>

Signed-off-by: Faseela K <faseela.k@est.tech>

* Add file watcher for pod labels, only override xds request node when … (#40488)

* Add file watcher for pod labels, only override xds request node when labels update

* Add StaticLabels to node metadata to specify labels from ISTIO_METAJSON_LABELS

* Fix VM test

* Fix ut

* Fix golden test

* Claiming namespace now sets default service account image pull secret. (#40524)

* kube client: use disk cache for CLI tools (#40386)

* kube client: use disk cache for CLI tools

When using istioctl on slow api-servers, things are super slow. The
issue is *every* call does API server discovery. This process is super
slow.

To workaround this slowness, k8s has caching. Today, we use an in-memory
cache. This is useless for CLI tools, which only run it once. Another
cache exists, which is used by kubectl, to cache to disk.

This PR introduces a disk based cache. This is enabled only for the
`NewExtendedClient`. To make it more explicit this should only be used
for CLI tools (and similar), the function is renamed to `NewCLIClient`.
Note all current cases of this function are correctly used in CLIs, so
this is just a renaming.

Additionally, add a new `pkg/lazy` package. This facilitates lazily
computing values, similar to `sync.Once` but more ergonomic and safer
(ability to retry, etc).

* Fix mapper to reset now that we are use cache

* rename and comment

* fmt

* Bump gce metadata fake with arm64 (#40533)

* hbone: add `hboneInsecureSkipVerify` to CLI (#40535)

* hbone: add `hboneInsecureSkipVerify` to CLI

This matches the proto. Its helpful for local testing since spiffe
certificate verification is typically not happening

* lint

* Make use of Proxy.Labels instead of Meatdata.Labels (#40505)

* Make use of Proxy.Labels instead of Meatdata.Labels

* fix ut

* rm IstioMetaLabels

* Add automatic setting logic for ENABLE_LEGACY_FSGROUP_INJECTION (#40549)

The previous logic was available only for IstioOperator,
hence helm based integration tests on k8s 1.16 were failing.

Signed-off-by: Faseela K <faseela.k@est.tech>

Signed-off-by: Faseela K <faseela.k@est.tech>

* CA client tls config ServerName first set to CAEndpoint host (#40452)

* set tlsConfifg ServerName to CAEndpoint host

* remove legacy comments

* update

* Remove redundant setting of ENABLE_LEGACY_FSGROUP_INJECTION (#40551)

Signed-off-by: Faseela K <faseela.k@est.tech>

Signed-off-by: Faseela K <faseela.k@est.tech>

* Cleanup `SetForTest` types (#40545)

* Automator: update proxy@master in istio/istio@master (#40563)

* Automator: update proxy@master in istio/istio@master (#40567)

* add stat_prefix support for virtual service api (#40503)

* add stat_prefix support for virtual service api

* add vhosts stats to inclusion list

* remove debugs

* add without stat_prefix test case

* fix tests

* add another test case

Co-authored-by: Varun Kulkarni Somashekhar <varun.kulkarni@salesforce.com>

* fix typos in pilot-discovery cmd (#40565)

* reuse fileExists (#40582)

* Improve istioctl options command description (#38236)

* improve description

* revise and add releasenotes

* revise run to runE

* lint

* strengthen the confirmation function (#40544)

Signed-off-by: xin.li <xin.li@daocloud.io>

Signed-off-by: xin.li <xin.li@daocloud.io>

* install: autodetect cniBinDir on GKE (#40547)

* install: autodetect cniBinDir on GKE

Makes users not need
https://istio.io/latest/docs/setup/additional-setup/cni/#hosted-kubernetes-settings
when installing via `helm install` or `istioctl install`.

Note: `helm template` and `istioctl manifest generate` do not use
version information, so this is still needed for those cases.

This adds GKE detection. OpenShift detection is possible as well, I just
don't have a test cluster or know how to detect OpenShift

* not

* fix note

* Add configmap as well

* lint

* istio: add metric for debouncing (#40523)

* istio: add metric for debouncing

This CL adds metric for the delay between a first config change
enters deboucing until the final merged push request is pushed into
the push queue. This time plus the proxy convergence time give us
an upper bound on the total delay between a config change and the
change is pushed to proxies.

Also increased the buckets since logging shows that the debounce time
is pretty long (more than 1 minute).

Change-Id: I3220f9c3188824ea6925151ff6837f91aac5a15a
Reviewed-on: https://gerrit.musta.ch/c/public/istio/+/3512
Reviewed-by: Weibo He <weibo.he@airbnb.com>
Reviewed-by: Ryan Smick <ryan.smick@airbnb.com>
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>

* istio: fix debounceTime typo

Change-Id: I9977c597768360cc3dd485dbf21bd9afdb2f5151
Reviewed-on: https://gerrit.musta.ch/c/public/istio/+/3517
Reviewed-by: Weibo He <weibo.he@airbnb.com>

* istio: handle debounce time entirely in the debounce() function

To address comments in #40523,
we will record after push finishes inside the debounce function.
We can actually remove the DebounceStart field in the push context
as a result.

Also change the buckets as discussed in the PR.

Change-Id: I3b7a7860590e7e5ed4f13282b4398527de089c81
Reviewed-on: https://gerrit.musta.ch/c/public/istio/+/3519
Reviewed-by: Jungho Ahn <jungho.ahn@airbnb.com>
Reviewed-by: Weibo He <weibo.he@airbnb.com>

* Add Tap gRPC handler to Istio Agent. (#40566)

* Add Tap GRPC handler to Istio Agent.

* Fix lint errors

* Add the integration test

* Disable CONFIG_DISTRIBUTION_TRACKING (#40561)

* Disable CONFIG_DISTRIBUTION_TRACKING

* release note

* fix test

* feat: delete unused function: HelmReconciler.DeleteAll (#40569)

* minor rename to avoid confusion (#40574)

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* change SetDestinationRules for testing only (#40583)

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* update Kiali to 1.55 (for Istio 1.15) (#40588)

* update Kiali to 1.55 (for Istio 1.15)

* add release notes

* Send only the Cluster ID (#40477)

* Fix PushContext.sidecarIndex.rootConfig flipping issue (#40575)

When a PushRequest doesn't have Service/VirtualService/DestinationRule/Sidecar change,
in PushContext.updateContext(), initSidecarScopes() will not be invoked, new PushContext
only copies sidecarIndex.sidecarsByNamespace from old one, sidecarIndex.rootConfig becomes
nil.

When workload namespace doesn't have Sidecar resource, this causes new ADS connection's
SidecarScope being created by DefaultSidecarScopeForNamespace(), the global default
sidecar in istio root namespace is not respected.

* Initialized PR for support multiple addresses per listener to generate LDS configuration in Istio (#40539)

* Support multiple addresses per listener to generate LDS configuration in Istio issue#40394

* add extra addresses for Istio service

* change based on comment, just change the k8s service related

* Update go modules (#40597)

* Update go modules

* lint

* fmt

* Automator: update proxy@master in istio/istio@master (#40603)

* fix regex expression for stat_prefix (#40594)

* fix regex expression for stat_prefix

* nit: use backtick

Co-authored-by: Varun Kulkarni Somashekhar <varun.kulkarni@salesforce.com>

* Automator: update istio/pkg@master dependency in istio/istio@master (#40609)

* cleanup some comments in ads (#40610)

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* refactor hashbydestination to a separate function (#40562)

* refactor hashbydestination to a separate function

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* change function

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* revert change

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* review comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* Fix bootstrap discovery service  (#40607)

* reuse fileExists

* refactor bootstrap discovery client

* Fix bootstrap ds thread leak

* Remove duplicated

* lint

* Fix lint

* add help output for gen-helloworld (#40614)

Signed-off-by: xin.li <xin.li@daocloud.io>

Signed-off-by: xin.li <xin.li@daocloud.io>

* Always set endpoints controller (#40592)

* Always set endpoints controller

Fix fuzz issue, and document how to reproduce

* lint

* md lint

* Gcp concurrent requests (#40105)

* Query GCP Instance Metadata concurrently

Signed-off-by: rinormaloku <rinormaloku37@gmail.com>

* Checking if GCP Metadata endpoint is available

Signed-off-by: rinormaloku <rinormaloku37@gmail.com>

* Checking if GCP Metadata endpoint is available

Signed-off-by: rinormaloku <rinormaloku37@gmail.com>

Signed-off-by: rinormaloku <rinormaloku37@gmail.com>

* add help output for build-services (#40616)

Signed-off-by: xin.li <xin.li@daocloud.io>

Signed-off-by: xin.li <xin.li@daocloud.io>

* security tests refactoring - part 3 (#40348)

* security tests refactory - part 3

* updating mtls_party_jwt test

* updated test utils

* refactored new ingress based tests

* refactor hash load balancer route generation (#40401)

* refactor hash load balancer route generation

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* lint

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* lint

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* lint

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* remove some more var

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* rearrange

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* rename

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* address review comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* use registerIf to disable metrics in xds cache (#40612)

* use registerIf to disable metrics in xds cache

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* wrap at creation

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* cleanup unused code for envoy package (#40625)

Signed-off-by: Tianpeng Wang <tpwang@alauda.io>

Signed-off-by: Tianpeng Wang <tpwang@alauda.io>

* improve xds proxy logs (#40631)

* improve xds proxy logs

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* fix

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* Automator: update proxy@master in istio/istio@master (#40636)

* Switch to official gRPC release version (#40632)

Prior we bumped to master to pick up a needed fix; now we can use
release version.

* Switch kind image in testing to 1.25.0 (#40635)

* Automator: update istio/pkg@master dependency in istio/istio@master (#40637)

* Lint fixes for golangci-lint 1.49.0 (#40633)

* Fix stale comments (#40641)

Fixes #39147

* e2e: move wasm_modules to samples folder (#40538)

* move wasm_modules to samples

* add README.md

* Backoff wrapper (#40629)

* Add istio backoff wrapper package

* Add tests

* Part of revert #40631, not to hide rate limited info, it is an important signal to users (#40644)

* Automator: update common-files@master in istio/istio@master (#40651)

* Automator: update istio/client-go@master dependency in istio/istio@master (#40652)

* improve setupkind.sh (#40656)

Signed-off-by: xin.li <xin.li@daocloud.io>

Signed-off-by: xin.li <xin.li@daocloud.io>

* manifests: add variant option to select distroless (#40661)

* manifests: add `variant` option to select distroless

We currently have this in ProxyConfig but that only applies for
injection. Add a new field to control everything. This also sets the
ProxyConfig field for convenience.

* gen

* Build multiarch images for bookinfo (#37546)

* Build multiarch images for bookinfo

* Allows the user to pass a `--multiarch-images` flag
to `build_push_update_images.sh` which builds and pushes
a multiarch(`linux/amd64`, `linux/arm64`) image using
`docker buildx build`

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* multiarch mysql image

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* multiarch mongo image

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* workaround for openliberty base image

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* fix env check

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* multiarch workaround

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* fix gevent build

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* release notes

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* fix script lint

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* fix release note area

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* undo apt-get changes, bump gevent & greenlet

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* prebuilt gcr.io/istio-testing/websphere-liberty

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

Signed-off-by: Arko Dasgupta <arko@tetrate.io>

* Automator: update proxy@master in istio/istio@master (#40663)

* add additional test cases for service visibility (#40650)

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* improve release/downloadIstioCandidate (#40658)

Signed-off-by: xin.li <xin.li@daocloud.io>

Signed-off-by: xin.li <xin.li@daocloud.io>

* Update k8s registry (#40662)

* make use of go generics to remove MostSpecificHostMatch2 (#40090)

* tests: consolidate opentelemetry-collector (#40606)

* tests: consolidate opentelemetry-collector

* add namespace

Signed-off-by: hejianpeng <hejianpeng2@huawei.com>

Signed-off-by: hejianpeng <hejianpeng2@huawei.com>

* analysis: optimize performance and fix dead loop (#40595)

* analysis: optimize performance and fix dead loop

Two fixes:

1. We are infinite loop on stop when it triggers. `break` is for the
   switch, not the `for`.
2. No need to use regex

* flip

* Automator: update istio/client-go@master dependency in istio/istio@master (#40678)

* install: add `--cluster-specific` flag to generate (#40548)

This allows `manifest generate` to use cluster specific settings as
well.

The only install method left is `helm template`; I have a bug filed in
helm/helm#11240.

* Automator: update istio/client-go@master dependency in istio/istio@master (#40686)

* Automator: update common-files@master in istio/istio@master (#40685)

* Automator: update proxy@master in istio/istio@master (#40690)

* Gateway api route kind status fixes (#40697)

* improve setupkind.sh (#40698)

Signed-off-by: xin.li <xin.li@daocloud.io>

Signed-off-by: xin.li <xin.li@daocloud.io>

* Switch to new Register mode (#40527)

* Fix sync issue in GCP platform (#40700)

* Automator: update proxy@master in istio/istio@master (#40704)

* tf: properly retry in TestProxyStatus (#40683)

We missed a retry; this fails when the a pod hapens to be temporarily
disconnected

* chore: remove duplicate word in comments (#40706)

Signed-off-by: Abirdcfly <fp544037857@gmail.com>

Signed-off-by: Abirdcfly <fp544037857@gmail.com>

* Fix merge issues

* Fixup merge

Signed-off-by: yxxhero <aiopsclub@163.com>
Signed-off-by: Zhonghu Xu <xuzhonghu@huawei.com>
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
Signed-off-by: Xiao, Ziyang <ziyang.xiao@intel.com>
Signed-off-by: Xunzhuo <mixdeers@gmail.com>
Signed-off-by: xin.li <xin.li@daocloud.io>
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
Signed-off-by: AdamKorcz <adam@adalogics.com>
Signed-off-by: Tong Li <litong01@us.ibm.com>
Signed-off-by: hejianpeng <hejianpeng2@huawei.com>
Signed-off-by: Faseela K <faseela.k@est.tech>
Signed-off-by: rinormaloku <rinormaloku37@gmail.com>
Signed-off-by: Tianpeng Wang <tpwang@alauda.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Abirdcfly <fp544037857@gmail.com>
Co-authored-by: Zhonghu Xu <xuzhonghu@huawei.com>
Co-authored-by: Istio Automation <istio-testing-bot@google.com>
Co-authored-by: Akshay J Nambiar <akshayjnambiar@users.noreply.github.com>
Co-authored-by: Greg Hanson <gregory.hanson@solo.io>
Co-authored-by: yxxhero <11087727+yxxhero@users.noreply.github.com>
Co-authored-by: Aryan Gupta <garyan@google.com>
Co-authored-by: zirain <hejianpeng2@huawei.com>
Co-authored-by: Aditya Prerepa <adiprerepa@gmail.com>
Co-authored-by: Ikko Ashimine <eltociear@gmail.com>
Co-authored-by: Rama Chavali <rama.rao@salesforce.com>
Co-authored-by: xiaomudk <xiaomudk@gmail.com>
Co-authored-by: Jacek Ewertowski <jewertow@redhat.com>
Co-authored-by: Zhengzhe Yang <zhengzhey@google.com>
Co-authored-by: Yaroslav Zhavoronkov <yaroslav.zh@gmail.com>
Co-authored-by: Frank Budinsky <frankb@ca.ibm.com>
Co-authored-by: ZiyangXiao <ziyang.xiao@intel.com>
Co-authored-by: Xunzhuo <mixdeers@gmail.com>
Co-authored-by: Xiaopeng Han <hanxiaop8@outlook.com>
Co-authored-by: my-git9 <xin.li@daocloud.io>
Co-authored-by: Eng Zer Jun <engzerjun@gmail.com>
Co-authored-by: Sam Naser <samnaser@google.com>
Co-authored-by: 白泽 <patrickjiang0530@gmail.com>
Co-authored-by: Anubhav <anubhavaeron@gmail.com>
Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>
Co-authored-by: Kebe <kebe.liu@daocloud.io>
Co-authored-by: kezhenxu94 <kezhenxu94@apache.org>
Co-authored-by: Steven Landow <landow@google.com>
Co-authored-by: bincherry <53431275+bincherry@users.noreply.github.com>
Co-authored-by: Steve Zhang <huailong.zhang@intel.com>
Co-authored-by: Karol Szwaj <karol.szwaj@gmail.com>
Co-authored-by: AdamKorcz <44787359+AdamKorcz@users.noreply.github.com>
Co-authored-by: Chen Youxiong <youxiongchen@126.com>
Co-authored-by: youchen <youchen@ebay.com>
Co-authored-by: Diogo Nicoleti <diogo.nicoleti@gmail.com>
Co-authored-by: Costin Manolache <costin@gmail.com>
Co-authored-by: dwq <41563853+dddddai@users.noreply.github.com>
Co-authored-by: Tong Li <litong01@users.noreply.github.com>
Co-authored-by: hottea773 <61781404+hottea773@users.noreply.github.com>
Co-authored-by: Faseela K <faseela.k@est.tech>
Co-authored-by: stewartbutler <stewartbutler@google.com>
Co-authored-by: varks <var.kulkarni@gmail.com>
Co-authored-by: Varun Kulkarni Somashekhar <varun.kulkarni@salesforce.com>
Co-authored-by: Mark4z <36187602+mark4z@users.noreply.github.com>
Co-authored-by: Ying Zhu <ying.zhu@airbnb.com>
Co-authored-by: Ingwon Song <102102227+ingwonsong@users.noreply.github.com>
Co-authored-by: Alan Wang <ranwang@alauda.io>
Co-authored-by: John Mazzitelli <mazz@redhat.com>
Co-authored-by: l8huang <l8huang@users.noreply.github.com>
Co-authored-by: Rinor Maloku <rinormaloku37@gmail.com>
Co-authored-by: Timon Wong <tpwang@alauda.io>
Co-authored-by: Arko Dasgupta <arkodg@users.noreply.github.com>
Co-authored-by: Aakash2017 <aakashshukla@google.com>
Co-authored-by: Abirdcfly <fp544037857@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/networking size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants