Failed to acquire Helm chart from internal repo

Hi, I’m trying to deploy a Helm chart using the “Run a kubectl CLI script” step. I configure the step to reference a package from an External Feed I created as a Helm Feed type. I configure the step to download the package directly on the execution target and extract the package during deployment.

The deployment target is an SSH target configured as a Worker running CentOS 7. It has Helm installed. My goal is to install the Helm chart (using an inline script) from disk once it’s extracted to the file system. The reason is so that I don’t have to do ‘helm repo add’ and ‘helm repo update’ in every step plus I get to associate the step with a package which is helpful when it comes time to create a release (I realize I could get this benefit by not acquiring the package, however). It would be super clean this way.

The problem is that when I try to run this deployment step, I get an error during the “Acquire Packages” step. Failed to download package mcs-services/mcs-manager-website v0.1.6+5.0.12.34515 from feed: 'https://harbor.ddti.net/chartrepo' February 14th 2021 13:23:18Error Unable to cast object of type 'YamlDotNet.RepresentationModel.YamlScalarNode' to type 'YamlDotNet.RepresentationModel.YamlMappingNode'. February 14th 2021 13:23:18Error System.InvalidCastException

This is a chart repo in Harbor but it seems to be working everywhere else so I’m not sure if it is a Harbor specific thing or if there is a bug in Octopus. Any help would be appreciated. Thanks!

Kelly

Hi Kelly,

Interesting question and something that seems like a very reasonable use case for helm.

Our initial thoughts is that there is an issue with our Octopus Code. We will do a repro of this at our end and let you know what we discover. This might take a couple of days to reproduce, test and explore - but I will get back to you as soon as I have an update.

Regards,

Dane

I was able to download the Tentacle project from GitHub to step through and debug this and I found that there seems to be an issue with how it concatenates the URL for the request. The URL for Helm as I configured it in the External Feeds UI was ‘https://harbor.ddti.net/chartrepo’. When I changed it to end in a ‘/’ (https://harbor.ddti.net/chartrepo/) the problem was resolved. I couldn’t find where in the code this needed to be fixed though

Hi @kmenzel,

Thank you. I’ll raise a bug so we can get that parsed correctly in future - whether it ends in ‘/’ or not.