Skip to content
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

[pull] master from istio:master #954

Merged
merged 6 commits into from
Jan 16, 2025
Merged

[pull] master from istio:master #954

merged 6 commits into from
Jan 16, 2025

Conversation

pull[bot]
Copy link

@pull pull bot commented Jan 16, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.1)

Can you help keep this open source service alive? 💖 Please sponsor : )

bleggett and others added 6 commits January 16, 2025 12:48
* Gateway also needs global flattening

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

* Relnote

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

---------

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>
* Fix ambient telemetry in ingress gateways

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Add tests

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fixup

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Allow non-ambient usage of peer metadata discovery

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Add release note

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Only override peer discovery for ambient if unset

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Make gen

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Make metadata discovery explicit

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* PILOT_SEND_UNHEALTHY_ENDPOINTS: exclude terminating endpoints

The purpose of PILOT_SEND_UNHEALTHY_ENDPOINTS is to let envoy know about
the count of health and unhealth endpoints as a factor into its failover
decisions. For instance, if we have 5/10 pods health, it would failover.

This has problematic behavior during scaling up/down. For instance, if I
just have a single pod and then make a change, I will temporarily have 2
pods (the new one, and the old one terminating). Envoy will now see this
as 50% health and failover. This is bad -- its not actually unhealthy at
all!

Additionally, when pods are scaling down we end up keeping them as
unhealthy. Consider I have 1/2 pods healthy, and shut down the unhealthy
one but it takes a few minutes to fully terminate. During that time,
envoy will consider us 50% healthy. However, because we requested 1 pod
and have 1 pod, I would consider that 100% healthy.

----

This PR adds a new health mode, "terminating".
* When the feature flag is false, terminating and unhealthy mean the
  same thing -- do not send the endpoint to envoy. This has no impact.
* When the feature flag is true, we will not sending terminating
  endpoints. This means a terminating endpoint is not taken into account
for the health calculations.

This change does not impact whether we send traffic to the terminating
pods or not -- both before and after, we never do this.

Note: there is another status, 'draining', which is a very specialized
mode that is only used when session persistence is enabled on a service
&& the endpoint is terminating && it used to be healthy. Comments in the
code clarify the differences between these two similar states. These
endpoints *are* sent to envoy and traffic is sent to them, so its
fundamentally different than Terminating.

* add NDS test

* add note
… relnotes (#54697)

* Be more explicit about how Helm value deprecations should manifest in relnotes

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

* fix

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>

---------

Signed-off-by: Benjamin Leggett <benjamin.leggett@solo.io>
@pull pull bot added the ⤵️ pull label Jan 16, 2025
@pull pull bot merged commit b2fde02 into makesoftwaresafe:master Jan 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants