3
votes

I am working on an application which deploys helm charts to kubernetes cluster on user's demand. Helm charts are stored in private repo on github. The scenario is whenever user request an application deployment the system fetches chart from git repo build it and deploy it on the cluster.Helm does not provide REST api(as it uses gRPC protocol to talk to tiller server) and helm-cli is not the option to use in this scenario so my question is Is their any way to call tiller services without using helm cli e.g curl or python-client etc.

2

2 Answers

6
votes

You can find my fork of pyhelm with examples and Python3 support.

git clone [email protected]:andriisoldatenko/pyhelm.git
cd pyhelm && python setup.py install

I've added simple how-to to README.md:

from pyhelm.chartbuilder import ChartBuilder
from pyhelm.tiller import Tiller

chart = ChartBuilder({'name': 'mongodb', 'source': {'type': 'directory', 'location': '/tmp/pyhelm-kibwtj8d/mongodb'}})
t.install_release(chart.get_helm_chart(), dry_run=False, namespace='default')

Out[9]:
release {
  name: "fallacious-bronco"
  info {
    status {
      code: 6
    }
    first_deployed {
      seconds: 1521647335
      nanos: 746785000
    }
    last_deployed {
      seconds: 1521647335
      nanos: 746785000
    }
    Description: "Dry run complete"
  }
  chart {....
}
2
votes

I just finished creating a new package that you may find useful, called avionix. It takes what pyhelm did a bit further, and actually implements all of the corresponding kubernetes objects in python native objects. You can check it out here or you can install it from pypi

pip install avionix