Hi, I’m facing issues in creating an umbrella char...
# all-things-deployment
s
Hi, I’m facing issues in creating an umbrella chart with Helm3 to deploy Datahub and it’s prerequisites from a single chart in GKE. My chart looks like this:
Copy code
apiVersion: v2
name: my-datahub
description: An umbrella chart for Kubernetes deployment of Datahub and it's prerequisites
type: application
version: 0.1.0
appVersion: 1.16.0
dependencies:
  - name: datahub-prerequisites
    repository: <https://helm.datahubproject.io>
    version: 0.0.9
    condition: prerequisites.enabled
  - name: datahub
    repository: <https://helm.datahubproject.io>
    version: 0.2.92
    condition: datahub.enabled
values.yaml look like this:
Copy code
prerequisites:
  enabled: true
datahub:
  enabled: true
pre-deployment steps I ran: 1.
helm dependency update -n <namespace>
This created the
charts
folder and downloaded charts
datahub-prerequisites-0.0.9.tgz
and
datahub-0.2.92.tgz
2.
helm upgrade --install --debug my-datahub . --values=values.yaml -n <namespace>
Here is the output from chart install
Copy code
history.go:53: [debug] getting history for release my-datahub
Release "my-datahub" does not exist. Installing it now.
install.go:172: [debug] Original chart version: ""
install.go:189: [debug] CHART PATH: <path to my chart folder>

client.go:254: [debug] Starting delete for "my-datahub-elasticsearch-setup-job" Job
client.go:108: [debug] creating 1 resource(s)
client.go:463: [debug] Watching for changes to Job my-datahub-elasticsearch-setup-job with timeout of 5m0s
client.go:491: [debug] Add/Modify event for my-datahub-elasticsearch-setup-job: ADDED
client.go:530: [debug] my-datahub-elasticsearch-setup-job: Jobs active: 1, jobs failed: 0, jobs succeeded: 0
client.go:491: [debug] Add/Modify event for my-datahub-elasticsearch-setup-job: MODIFIED
client.go:530: [debug] my-datahub-elasticsearch-setup-job: Jobs active: 1, jobs failed: 1, jobs succeeded: 0
client.go:491: [debug] Add/Modify event for my-datahub-elasticsearch-setup-job: MODIFIED
client.go:530: [debug] my-datahub-elasticsearch-setup-job: Jobs active: 1, jobs failed: 2, jobs succeeded: 0
Error: failed pre-install: timed out waiting for the condition
helm.go:94: [debug] failed pre-install: timed out waiting for the condition
Issues observed: 1. I see that the chart is trying to run
elasticsearch-setup-job
first which actually depends on the installation of
elasticsearch-master
service. Which obviously times out after 5m. 2. What is that I’m missing here that leads to not running the jobs in a proper order? Any help would be greatly appreciated 🙂
b
as a workaround , you can try installing pre-requisite first
helm upgrade --install --debug my-datahub . --values=values.yaml --set prerequisites.enabled=true --set datahub.enabled=false -n <namespace>
and then datahub
helm upgrade --install --debug my-datahub . --values=values.yaml --set prerequisites.enabled=false --set datahub.enabled=true -n <namespace>
s
Hi @bumpy-needle-3184 thanks for the answer. I see that splitting it into two separate commands is working. But I am looking for a solution where I can manage the whole deployment from a single chart. I think the method of installing two separate charts as described in documentation falls into the same basket I believe. Going forward I would need to run these two charts in a more customised environment to fit in my organisations need.
Referring to the ordering of dependencies if I understand the documentation correctly, there is some sort of installation order based on Kubernetes types Assuming that order
elasticsearch-master:StatefulSet
should have been installed before
my-datahub-elasticsearch-setup-job:Job
. Which is not the actual installation order 😞
b
this is because we have set
pre-install
type of helm hook for setup jobs (mysql, kafka , elasticsearch) to istall them prior to installing core datahub component(gms, frontend, action etc) https://helm.sh/docs/topics/charts_hooks/
s
Right.. when I tried to install everything as a single chart the dependencies list and their installation order is different from when these two charts are installed separately. I am curious to know how anyone else is achieving this.. installing from a shell-script? We are using Harness to deploy charts.. need to find a way if I can install two charts one after the other(or build some sort of dependency) with Harness.
For now I have created 2 different services to install these charts in Harness. Created a pipeline to run those services in sequence so that it will be one trigger(or click) that installs complete Datahub for me 🙂