mojaloop / helm

Helm Charts. Helm repo http://mojaloop.io/helm/repo/index.yaml
https://mojaloop.io
Other
21 stars 60 forks source link

compatibility issue with kubernetes 1.16 and above #472

Open delcroip opened 2 years ago

delcroip commented 2 years ago

Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Ingress" in version "extensions/v1beta1"

https://kubernetes.io/blog/2019/09/18/kubernetes-1-16-release-announcement/

same issue on other system for reference https://github.com/bitnami/tutorials/issues/23 https://github.com/helm/helm/issues/6969 https://github.com/pegasystems/pega-helm-charts/issues/336

mdebarros commented 2 years ago

Hi @delcroip,

Thanks for creating the issue.

Would you be so kind to provide more information on your target Kubernetes platform (i.e. version, etc)?

Also, I would ask you to verify your pre-requisites as per the following documentation: https://github.com/mojaloop/documentation/tree/master/legacy/deployment-guide#1-pre-requisites

delcroip commented 2 years ago

Indeed it is mentioned as a prerequisite but minikube provide this kind of warning

minikube start --kubernetes-version v1.15.5
* minikube v1.25.2 on Ubuntu 20.04 (amd64)
! Specified Kubernetes version 1.15.5 is less than the oldest supported version: v1.16.0
! You can force an unsupported Kubernetes version via the --force flag

Is there any plan to support v1 instead of v1beta1 ?

br

mdebarros commented 2 years ago

Hey @delcroip,

This is because you are running a supported Kubernetes version for your deployed Mojaloop version.

Please carefully read the pre-requisites, specifically the Recommended Versions part where we include suggested versions of Mojaloop which has been tested against a Kubernetes version: https://github.com/mojaloop/documentation/tree/master/legacy/deployment-guide#1-pre-requisites

I.e. For the latest versions v13.x, we recommend the following:

    Mojaloop Helm Chart release v13.x supports Kubernetes v1.13 - v1.20.

I recommend you install v1.20 as Mojaloop has been tested extensively against this version. I have also personally tested Mojaloop with Kubernetes v1.21 and have had no issues.

For K8s support of v1.22+, we have a pending issue on our backlog (https://github.com/mojaloop/project/issues/2352) which will be addressed in Mojaloop Helm Release v14.

However, the Mojaloop community would love to have any contributions to the v13.x versions to improve the Kubernetes support for v1.22+ if you are looking to help.

For reference, this is how we currently handle the Ingress version selection in v13.x --> https://github.com/mojaloop/helm/blob/master/centralledger/chart-service/templates/ingress.yaml#L3

In v14 (which is a complete re-work of our Helm charts), we not only support the API version selection (https://github.com/mojaloop/charts/blob/master/mojaloop/chart-service/templates/ingress.yaml#L2) based on the underlying K8s API version, but also the ingress structure (https://github.com/mojaloop/charts/blob/master/mojaloop/chart-service/templates/ingress.yaml#L40) changes introduced in k8s v1.22+.

delcroip commented 2 years ago

Hi, thanks you for this answer,

but with Kube 1.20, I still get the error

Error: unable to build kubernetes objects from release manifest: [unable to recognize "": no matches for kind "Deployment" in version "apps/v1beta2", unable to recognize "": no matches for kind "StatefulSet" in version "apps/v1beta2"]

here my install script on ubuntu


#installl or change to version 1.20
sudo snap install microk8s --classic --channel=1.20/stable
#sudo snap refresh microk8s --classic --channel=1.20/stable
# starting kubebernetes
sudo microk8s start

sudo microk8s enable helm3
#init helm 
sudo microk8s helm3 init --stable-repo-url=https://charts.helm.sh/stable  --upgrade --tiller-image ghcr.io/helm/tiller:v2.16.12
# nginx ingress
sudo microk8s helm3 repo add nginx-stable https://helm.nginx.com/stable
sudo microk8s helm3 repo update

# enable kube dashboard
sudo microk8s enable dashboard

#nginx
sudo microk8s enable ingress
sudo microk8s helm3 repo add nginx-stable https://helm.nginx.com/stable
sudo microk8s helm3 repo update
sudo microk8s helm3 install ingress-nginx nginx-stable/nginx-ingress

# mojaloop
sudo microk8s helm3 repo add mojaloop   https://mojaloop.io/helm/repo/
sudo microk8s helm3 repo update
sudo microk8s helm3 --namespace openimis-mojaloop install moja mojaloop/mojaloop --version v13.1.0
delcroip commented 2 years ago

I tried in the meantime with minikube

Some mojaloop pod image were not pulled, after investigation, all curl query on the calling pod was failing because of a certificate validation issue (but no error about the "extensions/v1beta1" )

I could make curl work on tha pod by adding the --cacert with a pem file from internet but I could not tell mojaloop deployment to use this specific cacerts.pem

br