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

feat: ability to override liveness and readiness probe paths #1041

Merged
merged 3 commits into from
Apr 29, 2024

Conversation

matkam
Copy link
Contributor

@matkam matkam commented Apr 19, 2024

What does this PR do?

Provides the option to override the liveness and readiness probe HTTP GET paths.

Motivation

I wrote a Traefik Plugin that adds some functionality to be used by the readiness probe only. In order to use it, the readiness probe path needs to be different from the liveness probe path. Here is the plugin: https://github.com/livekit/traefik-readiness-plugin

More

  • Yes, I updated the tests accordingly
  • Yes, I ran make test and all the tests passed

@mloiseleur
Copy link
Contributor

Hello @matkam,

Thanks for your interest in Traefik. You wrote a plugin, that's cool.

FTM, there is no plugin supported with this chart.

At first glance, I'm not sure to understand why would someone consider Traefik not ready when a threshold on CPU is reached. It's usually managed with HPA or VPA. As explained in the README:

To keep this HelmChart as generic as possible we tend to avoid integrating any third party solutions nor any specific use cases.

So => Would you please detail the use case of this plugin ? (and so why we should consider include it ?)

@matkam
Copy link
Contributor Author

matkam commented Apr 19, 2024

Hi @mloiseleur!
Nice to see a familiar face. You also reviewed my PR in https://github.com/kubernetes-sigs/external-dns.

I'm not sure to understand why would someone consider Traefik not ready when a threshold on CPU is reached. It's usually managed with HPA or VPA.

This is true under the normal circumstance of short lived HTTP requests, but does not hold true with long running WebSocket connections (multiple hours). The problem is that even after scaling up Traefik Pods, older saturated Pods will continue to receive new connections, and can become overloaded. To get around this problem, we are currently over provisioning Traefik. But if Traefik gets taken out of rotation once it has reached a usage threshold, over provisioning wouldn't be necessary. Weighted load balancing would probably work better, but not all cloud providers have load balancers that can do that.

@matkam matkam changed the title Ability to override liveness and readiness probe paths feat: bility to override liveness and readiness probe paths Apr 19, 2024
@matkam matkam changed the title feat: bility to override liveness and readiness probe paths feat: ability to override liveness and readiness probe paths Apr 19, 2024
@mloiseleur
Copy link
Contributor

There is an open issue on readiness : traefik/traefik#10458

You can also tune your probe using api/rawdata content.

@matkam
Copy link
Contributor Author

matkam commented Apr 19, 2024

There is an open issue on readiness : traefik/traefik#10458

You can also tune your probe using api/rawdata content.

thanks for the tip @mloiseleur! I've added a rawdata check to my readiness plugin: livekit/traefik-readiness-plugin@af7e8f8. though I'm not sure how much this will help, if it takes longer than readinessProbe.initialDelaySeconds to load the readiness endpoint Middleware.

Copy link
Contributor

@darkweaver87 darkweaver87 left a comment

Choose a reason for hiding this comment

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

LGTM.
To me, nothing is specific here. Some people might want to tune it using @matkam plugin or not.

Copy link
Contributor

@mloiseleur mloiseleur left a comment

Choose a reason for hiding this comment

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

LGTM

@traefiker traefiker merged commit ea95df0 into traefik:master Apr 29, 2024
1 check passed
madic-creates pushed a commit to madic-creates/k3s-git-ops that referenced this pull request Oct 25, 2024
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [traefik](https://traefik.io/) ([source](https://github.com/traefik/traefik-helm-chart)) | HelmChart | major | `27.0.2` -> `29.0.1` | `30.0.1` (+1) |

---

### Release Notes

<details>
<summary>traefik/traefik-helm-chart (traefik)</summary>

### [`v29.0.1`](https://github.com/traefik/traefik-helm-chart/releases/tag/v29.0.1)

[Compare Source](traefik/traefik-helm-chart@v29.0.0...v29.0.1)

##### [29.0.1](traefik/traefik-helm-chart@v29.0.0...v29.0.1) (2024-07-09)

##### Features

-   ✨ publish chart on OCI registry ([deaddf5](traefik/traefik-helm-chart@deaddf5))

##### Bug Fixes

-   RBACs for hub and disabled namespaced RBACs ([0827106](traefik/traefik-helm-chart@0827106))
-   semverCompare failing on some legitimate tags ([143b96f](traefik/traefik-helm-chart@143b96f))

### [`v29.0.0`](https://github.com/traefik/traefik-helm-chart/releases/tag/v29.0.0)

[Compare Source](traefik/traefik-helm-chart@v28.3.0...v29.0.0)

##### Upgrade Notes

This is a major breaking upgrade. [Migration guide](https://doc.traefik.io/traefik/v3.1/migration/v3/#v30-to-v31) from v3.0 to v3.1rc has been applied on this chart.

This release supports both Traefik Proxy v3.0.x and v3.1rc.

It comes with those ⚠️ breaking changes ⚠️ :

-   Far better support on Gateway API v1.1: Gateway, GatewayClass, CRDs & RBAC ([#&#8203;1107](traefik/traefik-helm-chart#1107))
-   Many changes on CRDs & RBAC ([#&#8203;1072](traefik/traefik-helm-chart#1072) & [#&#8203;1108](traefik/traefik-helm-chart#1108))
-   Refactor on Prometheus Operator support. Values has changed ([#&#8203;1114](traefik/traefik-helm-chart#1114))
-   Dashboard `IngressRoute` is now disabled by default ([#&#8203;1111](traefik/traefik-helm-chart#1111))

CRDs needs to be upgraded: `kubectl apply --server-side --force-conflicts -k https://github.com/traefik/traefik-helm-chart/traefik/crds/`

##### Features

-   ✨ migrate to endpointslices rbac ([0449b0b](traefik/traefik-helm-chart@0449b0b))
-   ✨ update CRDs & RBAC for Traefik Proxy ([228c4e4](traefik/traefik-helm-chart@228c4e4))
-   allow to set hostAliases for traefik pod ([42e5745](traefik/traefik-helm-chart@42e5745))
-   **dashboard:** dashboard `IngressRoute` should be disabled by default ([d9b856a](traefik/traefik-helm-chart@d9b856a))
-   **providers:** add nativeLBByDefault support ([e75a85c](traefik/traefik-helm-chart@e75a85c))
-   **providers:** improve kubernetesGateway and Gateway API support ([2eb640a](traefik/traefik-helm-chart@2eb640a))
-   **workflow:** add oci push ([aa3022a](traefik/traefik-helm-chart@aa3022a))

##### Bug Fixes

-   **dashboard:** Only set ingressClass annotation when kubernetesCRD provider is listening for it ([f142f6c](traefik/traefik-helm-chart@f142f6c))
-   **rbac:** nodes API permissions for Traefik v3.1+ ([647439d](traefik/traefik-helm-chart@647439d))
-   allow multiples values in the `secretResourceNames` slice ([24978e8](traefik/traefik-helm-chart@24978e8))
-   🐛 improve error message on additional service without ports ([d4cab24](traefik/traefik-helm-chart@d4cab24))
-   prometheus operator settings ([7d3a90d](traefik/traefik-helm-chart@7d3a90d))

##### Documentation

-   fix typos and broken link ([e43afd4](traefik/traefik-helm-chart@e43afd4))

#### New Contributors

-   [@&#8203;justinrush](https://github.com/justinrush) made their first contribution in traefik/traefik-helm-chart#1093
-   [@&#8203;x0ddf](https://github.com/x0ddf) made their first contribution in traefik/traefik-helm-chart#1094
-   [@&#8203;traefiker](https://github.com/traefiker) made their first contribution in traefik/traefik-helm-chart#1101
-   [@&#8203;mmetc](https://github.com/mmetc) made their first contribution in traefik/traefik-helm-chart#1102

### [`v28.3.0`](https://github.com/traefik/traefik-helm-chart/releases/tag/v28.3.0)

[Compare Source](traefik/traefik-helm-chart@v28.2.0...v28.3.0)

##### Features

-   allow setting permanent on redirectTo ([1b454e9](traefik/traefik-helm-chart@1b454e9))

##### Bug Fixes

-   **Security:** 🐛 🔒️ mount service account token on pod level (\[[`db4f43f`](https://github.com/traefik/traefik-helm-chart/commit/db4f43f)]\(https://github.com/traefik/traefik-helm-chart/commit/
-   **Traefik Hub:** remove namespace in mutating webhook ([f8f2da2](traefik/traefik-helm-chart@f8f2da2))
-   **Traefik Hub:** remove obsolete CRD ([4fcec62](traefik/traefik-helm-chart@4fcec62))
-   🐛 namespaced rbac when kubernetesIngress provider is disabled ([3bb41f7](traefik/traefik-helm-chart@3bb41f7))
    [`db4f43f`](traefik/traefik-helm-chart@db4f43f)))
-   🐛  add divisor: '1' to GOMAXPROCS and GOMEMLIMIT ([9ccbee2](traefik/traefik-helm-chart@9ccbee2))

#### New Contributors

-   [@&#8203;hawkesn](https://github.com/hawkesn) made their first contribution in traefik/traefik-helm-chart#1085
-   [@&#8203;berlincount](https://github.com/berlincount) made their first contribution in traefik/traefik-helm-chart#1082

**Full Changelog**: traefik/traefik-helm-chart@v28.2.0...v28.3.0

### [`v28.2.0`](https://github.com/traefik/traefik-helm-chart/releases/tag/v28.2.0)

[Compare Source](traefik/traefik-helm-chart@v28.1.0...v28.2.0)

:warning: This release align to Kubernetes default (*Always*) for `podSecurityContext.fsGroupChangePolicy`. It was *OnRootMismatch* in previous release of this chart. It can easily be set (back) to *OnRootMismatch* if needed, see [EXAMPLES](https://github.com/traefik/traefik-helm-chart/blob/master/EXAMPLES.md#use-traefik-native-lets-encrypt-integration-without-cert-manager).

##### Features

-   ✨ simplify values and provide more examples ([4eb71eb](traefik/traefik-helm-chart@4eb71eb))
-   add deletecollection right on secrets ([fb69807](traefik/traefik-helm-chart@fb69807))
-   update traefik docker tag to v3.0.1 by [@&#8203;renovate](https://github.com/renovate) in traefik/traefik-helm-chart#1075

##### Bug Fixes

-   **IngressClass:** provides annotation on IngressRoutes when it's enabled ([f5de0c3](traefik/traefik-helm-chart@f5de0c3))

#### New Contributors

-   [@&#8203;jspdown](https://github.com/jspdown) made their first contribution in traefik/traefik-helm-chart#1077

**Full Changelog**: traefik/traefik-helm-chart@v28.1.0...v28.2.0

### [`v28.1.0`](https://github.com/traefik/traefik-helm-chart/releases/tag/v28.1.0)

[Compare Source](traefik/traefik-helm-chart@v28.0.0...v28.1.0)

##### Features

-   **Traefik Hub:** add initial support for API Gateway ([dc5c68d](traefik/traefik-helm-chart@dc5c68d))
-   **Traefik Hub:** use Traefik Proxy otlp config ([a910db4](traefik/traefik-helm-chart@a910db4))

##### Bug Fixes

-   **Traefik Hub:** refine support ([60d210d](traefik/traefik-helm-chart@60d210d))
-   **Traefik Hub:** do not deploy mutating webhook when enabling only API Gateway ([cb2a98d](traefik/traefik-helm-chart@cb2a98d))

##### Documentation

-   **example:** Update Digital Ocean PROXY Protocol ([9850319](traefik/traefik-helm-chart@9850319))
-   📚️ improve UPGRADING section ([54ec665](traefik/traefik-helm-chart@54ec665))

### [`v28.0.0`](https://github.com/traefik/traefik-helm-chart/releases/tag/v28.0.0)

[Compare Source](traefik/traefik-helm-chart@v27.0.2...v28.0.0)

##### ⚠ BREAKING CHANGES

-   💥 initial support of Traefik Proxy v3
-   See [Migration guide from v2 to v3](https://doc.traefik.io/traefik/v3.0/migration/v2-to-v3/) and upgrading section of this chart on CRDs.

##### Features

-   **podtemplate:** set GOMEMLIMIT, GOMAXPROCS when limits are defined ([e4f2aa8](traefik/traefik-helm-chart@e4f2aa8))
-   💥 initial support of Traefik Proxy v3 ([536059d](traefik/traefik-helm-chart@536059d))
-   ✨ add support of `experimental-v3.0` unstable version ([579984c](traefik/traefik-helm-chart@579984c))
-   ✨ fail gracefully when required port number is not set ([f8be5e1](traefik/traefik-helm-chart@f8be5e1))
-   **ports:** add transport options ([47e0f28](traefik/traefik-helm-chart@47e0f28))
-   ability to override liveness and readiness probe paths ([ea95df0](traefik/traefik-helm-chart@ea95df0))

##### Bug Fixes

-   🐛 logs filters on status codes ([c204014](traefik/traefik-helm-chart@c204014))
-   🐛 only expose http3 port on service when TCP variant is exposed ([2d6243d](traefik/traefik-helm-chart@2d6243d))

##### Styles

-   🎨 consistent capitalization on `--entryPoints` CLI flag ([b1f6f96](traefik/traefik-helm-chart@b1f6f96))

##### Documentation

-   📚️ improve EXAMPLES on acme resolver ([2252aba](traefik/traefik-helm-chart@2252aba))

#### New Contributors

-   [@&#8203;matkam](https://github.com/matkam) made their first contribution in traefik/traefik-helm-chart#1041

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: https://code.geekbundle.org/madic/git-ops-dev/pulls/168
Co-authored-by: renovate Bot <renovate@geekbundle.org>
Co-committed-by: renovate Bot <renovate@geekbundle.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants