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.
3
votes
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