getporter / helm2-mixin

Helm mixin for Porter
https://porter.sh/mixins/helm
Apache License 2.0
13 stars 7 forks source link

Tiller is not ready, mixin execution failed #53

Closed KarthikeyanODL closed 4 years ago

KarthikeyanODL commented 4 years ago

Hi, I am trying to understand CNAB with porter. In my system k8s is running, i tried [https://github.com/deislabs/porter/tree/master/examples/kubernetes](porter-k8s example). Its working,able to see the nginx pods. but when I tried porter-helm /examples/mysql, It failed porter build porter credentials generate porter install -c kubernetes plz find the errors in the image.

Screen Shot 2020-01-17 at 22 57 07 can you help me?

vdice commented 4 years ago

Hi @KarthikeyanODL , I'm unable to reproduce the error, so I thought I'd offer some troubleshooting questions to see if we can get at the issue.

  1. Is Tiller running on the kubernetes cluster used? We can check via helm version and check the server version shows up, e.g.
    $ helm version
    Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
    Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
  2. Can the Helm chart used in the bundle be installed standalone? e.g.
    $ helm install stable/mysql
    NAME:   measly-yak
    LAST DEPLOYED: Fri Jan 17 09:46:21 2020
    NAMESPACE: default
    STATUS: DEPLOYED
    ...
KarthikeyanODL commented 4 years ago

Thank you for your quick response. I'm beginner in CNAB & porter.

I didn't install helm & tiller in my machine. Because my understanding about CNAB is, We are packaging application & required tools as well.

So this example Bundle comes with application & helm installer(invocation image).

I thought - i only need my kubernetes cluster. CNAB bundle will install helm & tiller , also deploy application. Is my understanding correct?

I have one more question- invocation image has all the kubectl/helm binaries inside its image. how this invocation image installing resources on my k8s node ?. will it copy the binaries to my node?

Thanks, Karthik.

On Fri, 17 Jan, 2020, 11:47 PM Vaughn Dice, notifications@github.com wrote:

Hi @KarthikeyanODL https://github.com/KarthikeyanODL , I'm unable to reproduce the error, so I thought I'd offer some troubleshooting questions to see if we can get at the issue.

  1. Is Tiller running on the kubernetes cluster used? We can check via helm version and check the server version shows up, e.g.

    $ helm version Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}

  2. Can the Helm chart used in the bundle be installed standalone? e.g.

    $ helm install stable/mysql NAME: measly-yak LAST DEPLOYED: Fri Jan 17 09:46:21 2020 NAMESPACE: default STATUS: DEPLOYED ...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/deislabs/porter-helm/issues/53?email_source=notifications&email_token=AHFOAWI63IU2QJWCU5D4PJDQ6HAGTA5CNFSM4KIIW5Q2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJH42CA#issuecomment-575655176, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHFOAWNJBDGU3QL5FEF5AJTQ6HAGTANCNFSM4KIIW5QQ .

vdice commented 4 years ago

Hi Karthik,

You are understanding correctly. However, to further debug a scenario like this, we often need to investigate the lower-level tools at play.

In this case, it seems an issue with the Kubernetes cluster. Therefore, I've offered a few ideas on how we might rule out certain culprits in an effort to hone in on the root issue. The error message seen in the logs, Error: the server could not find the requested resource is coming from the Kubernetes API server - perhaps some Google searches might lead to clues?

I'm wondering if it is an issue around kubectl client and server version differences? Currently, this mixin has the kubectl version hard-coded to v1.15.3. What does kubectl version show?

invocation image has all the kubectl/helm binaries inside its image. how this invocation image installing resources on my k8s node ?. will it copy the binaries to my node?

Indeed, the invocation image contains the kubectl and helm binaries. However, as this Helm version is v2, the binary does indeed install a server component onto the k8s cluster (this is Tiller). Therefore, Tiller must be up and ready before the Helm chart proceeds to install. As seen, the mixin attempts to install/init Tiller before proceeding, but there may be instances where either Tiller isn't fully ready before chart install or Tiller itself cannot create resources (perhaps lacking RBAC, etc.)

KarthikeyanODL commented 4 years ago

Hello @vdice Thank you for your suggestion!. The found out the problem.

Curent porter-helm mixin supports only helm-v2.14.3 and helm v2.14.3 is not supported by kubernetes v1.17 . To support k8s,I tried to upgrade helm with v3 in invocation Docker image file,but helm-mixin required v2.14.3 -> I downgraded my kubernetes v1.15 , then porter-helm example worked !

When can we expect update on helm-mixin that supports latest k8s ?

Thanks, Karthik

vdice commented 4 years ago

@KarthikeyanODL great find! Thank you for your trouble in determining the cause.

I've created a PR to bump the helm client version to v2.15.2 in https://github.com/deislabs/porter-helm/pull/56. In my testing (incl. k8s 1.17 via minikube), with this version, the symptom above was not seen.

Also, you may be interested in the Helm 3 mixin from @squillace : https://github.com/squillace/porter-helm3 . We'll be working on making that mixin more visible, as well as other community-developed mixins, in the near future.