2
votes

I have a deployment pipeline in Azure Devops to deploy a chart to my Kubernetes cluster. I'm using the built in Helm tasks to:

  1. Install Helm Client
  2. Create Tiller
  3. Deploy my chart that has been dropped by a separate build task

My Tiller Upgrade YAML (step 3) is as follows:

steps:
- task: HelmDeploy@0
  displayName: 'helm upgrade'
  inputs:
    azureSubscription: '****'
    azureResourceGroup: '****'
    kubernetesCluster: ****
    command: upgrade
    chartType: FilePath
    chartPath: '$(System.DefaultWorkingDirectory)/_Helm Chart Package/charts/****.tgz'
    releaseName: ****
    waitForExecution: false
    enableTls: true
    caCert: '****'
    certificate: '****'
    privatekey: '****'

Note that Install if not present is checked although I don't see how that is represented in the YAML.

It works sometimes but most of the time I get the following exception:

3627 portforward.go:363] error copying from remote stream to local connection: readfrom tcp4 127.0.0.1:33429->127.0.0.1:39710: write tcp4 127.0.0.1:33429->127.0.0.1:39710: write: broken pipe

This always happens after my charts have been deployed successfully. I tried removing the --wait param but that did not help and the task still fails causing my deployment pipeline to fail. There is a known issue for this on the Helm Github but is there a way to get this error to not fail my task and as a result my deployment pipeline?

1

1 Answers

0
votes

you can select "continue on error" when configuring task (under control options), which will do just that, continue running after an error.

although, I have to admit I dont see that error at all, i sometimes see this error when I create helm release right after creating AKS and AKS is bringing up system pods, so under load.