Openshift - Automation Broker - Auto Discovery for charts in custom helm repository

12/17/2019

I have set up the automation broker using the below link and able to see the helm charts on service catalog from 'https://kubernetes-charts.storage.googleapis.com' repository.

https://blog.openshift.com/automation-broker-discovering-helm-charts/

My requirement is to set up a custom helm repository and I have done the same in Nexus.

enter image description here

I am able to add and search the charts from this repository on a kubernetes cluster where helm is installed. But now to automate this process and to see these charts on openshift service catalog, I have configured the nexus url in automation broker config. But I can not see the charts being available on service catalog for my nexus repository.

Can anybody help please?

Update: I also tried the same with openshift ansible service broker and I can see in the debug logs that two of these artifacts (mysql and redis) have been detected but they are not updated on service catalog.

-- DD2607
kubernetes-helm
openshift-origin

1 Answer

12/18/2019

Ansible Service Broker and automation broker is not working with nexus helm (hosted) repository because the index.yaml created in nexus repository is not having absolute url for a helm chart.

apiVersion: '1.0'
entries:
  my-app:
  - appVersion: 5.0.7
    created: 2019-12-18T13:59:38.027Z
    description: Open source, advanced key-value store. It is often referred to as
      a data structure server since keys can contain strings, hashes, lists, sets
      and sorted sets.
    digest: 8331c7641aa21fc40a160f85f9e8d9cbe61b17258eb13877ff83e0632c1d66aa
    icon: https://bitnami.com/assets/stacks/redis/img/redis-stack-220x234.png
    maintainers:
    - email: containers@bitnami.com
      name: Bitnami
    - email: cedric@desaintmartin.fr
      name: desaintmartin
    name: my-app
    sources:
    - https://github.com/bitnami/bitnami-docker-redis
    urls:
    - my-app-0.1.0.tgz
    version: 0.1.0
generated: 2019-12-18T14:20:43.228Z

the url section should be the full path:

urls:
    - https://<ip>:<port>/nexus/repository/helm-release/my-app-0.1.0.tgz

But ansible service broker in openshift is looking for a absolute url in index.yaml which is being used in the service catalog of that app.

This looks to be a bug with service broker. There should be a fix to read the relative path because url is already given in the registry information of broker config.

-- DD2607
Source: StackOverflow