cnti-testcatalog / testsuite

📞📱☎️📡🌐 Cloud Native Telecom Initiative (CNTI) Test Catalog is a tool to check for and provide feedback on the use of K8s + cloud native best practices in networking applications and platforms
https://wiki.lfnetworking.org/display/LN/Test+Catalog
Apache License 2.0
174 stars 72 forks source link

[MAINTENANCE] update stable/envoy #2116

Closed kosstennbl closed 3 months ago

kosstennbl commented 3 months ago

It seems that current version of envoy helm chart is being pulled from https://cncf.gitlab.io/stable as stable/envoy. Kubernetes have deprecated some apis in version 1.25 (https://kubernetes.io/blog/2022/08/04/upcoming-changes-in-kubernetes-1-25/)

It seems that helm installation fails due to usage of some deprecated and unsupported API, helm install envoy stable/envoy gives this error: Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: resource mapping not found for name: "envoy" namespace: "" from "": no matches for kind "PodDisruptionBudget" in version "policy/v1beta1", you can see template for pod PodDisruptionBudget in likely source

Solution: update envoy version in the https://cncf.gitlab.io/stable repository. It seems that previous source was helm repo (https://github.com/helm/charts/blob/master/stable/envoy), but it's now deprecated. Some community chart should be tested and taken or other solution is needed.

horecoli commented 3 months ago

Update/upgrade of envoy was already tried to solve in past -> https://github.com/cnti-testcatalog/testsuite/issues/1938

kosstennbl commented 3 months ago

Sadly, #1938 doesn't have any proposals for the upgrade process itself. We have few options:

  1. Somehow get access to CNCF gitlab and update the chart there
  2. Change installation method to HelmDirectory and keep the updated version of chart in our testsuite repo
  3. Upload the updated chart to some other helm repo, and pull it from there (or use some existing one).
horecoli commented 3 months ago

I would say option 2 is good option for us and we will have some "freezed" version under our control inside our repository. Anyway we have same solution also in some other examples.