<p>I would like to be able to automate deployments to my Kubernetes cluster using Helm charts executed by Jenkins (as part of the build cycle). The Jenkins machine is on a separate network to the Kubernetes cluster (rather than part of it as documented in numerous blogs).</p>

<p>I have a chart repo hosted inside a private GitHub account. I followed the process here: <a href="https://hackernoon.com/using-a-private-github-repo-as-helm-chart-repo-https-access-95629b2af27c" rel="noreferrer">https://hackernoon.com/using-a-private-github-repo-as-helm-chart-repo-https-access-95629b2af27c</a>  and was able to add it as a repo in Helm on an Azure server using a command of the format:</p>

<pre><code>helm repo add sample 'https://MY_PRIVATE_TOKEN@raw.githubusercontent.com/kmzfs/helm-repo-in-github/master/'
</code></pre>

<p>I've been trying to get the ElasticBox Kubernetes CI/CD (v1.3) plugin inside Jenkins to connect to this chart repo, but whenever I press "Test Connection", I get a 400 Bad Request error. I have tried to enter the details in a variety of ways:</p>

<ol>
<li>Using the same format (and token) as above and no credentials</li>
<li>Using the private token (same as in the query above) in the credentials, and the url of <a href="https://raw.githubusercontent.com/kmzfs/helm-repo-in-github/master/" rel="noreferrer">https://raw.githubusercontent.com/kmzfs/helm-repo-in-github/master/</a></li>
<li>Using my username and password in the credentials, and the url of <a href="https://raw.githubusercontent.com/kmzfs/helm-repo-in-github/master/" rel="noreferrer">https://raw.githubusercontent.com/kmzfs/helm-repo-in-github/master/</a> </li>
</ol>

<p>I have this plugin to connect to the Kubernetes Cloud and it can connect to the repository at <a href="https://github.com/helm/charts" rel="noreferrer">https://github.com/helm/charts</a> and deploy a RabbitMQ container.</p>

<p>Is it possible to get this plugin to connect to a private Github repository as a chart repository, and if so, how do I go about doing so?</p>

<p>If not, is there an alternative means of deploying Helm charts (in a private repo) from Jenkins? I couldn't find any other plugins that used Helm.</p>

<p>Thanks
Duncan</p>

<p>What we use in our CI is completely skip anyfunky Jenkins plugins and just go for the native tooling. We bake kubectl/helm into the jenkins/worker image provide credentials to them so they can speak to the cluster and then take the private Helm chart not from published charts, but directly from private git repo holding that chart. And then we simply run <code>helm</code> against this localy cloned chart with a usual script step.</p>

<p>Example of kube config part defining the ca cert (related to comment below):</p>

<pre><code>apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: &lt;base64 ca cert&gt;
    server: https://cluster_api_url
  name: mycluster
</code></pre>
