Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Hyperdx helm chart #325

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,7 @@ scripts/*.csv
# docker
docker-compose.prod.yml
.volumes

# helm chart dependencies
**/charts/*.tgz

3 changes: 3 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ dist
coverage
tests
.volumes

# Ignore helm templates and yamls https://github.com/prettier/prettier/issues/6517
charts/
23 changes: 23 additions & 0 deletions charts/hyperdx/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
18 changes: 18 additions & 0 deletions charts/hyperdx/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
dependencies:
- name: common
repository: oci://registry-1.docker.io/bitnamicharts
version: 2.14.1
- name: redis
repository: oci://registry-1.docker.io/bitnamicharts
version: 18.12.1
- name: clickhouse
repository: oci://registry-1.docker.io/bitnamicharts
version: 4.5.4
- name: mongodb
repository: oci://registry-1.docker.io/bitnamicharts
version: 14.8.2
- name: kong
repository: oci://registry-1.docker.io/bitnamicharts
version: 10.4.2
digest: sha256:d077b3408144c1ba7a0d2127a024aee5579b46d3f75d2fa721e00ec7fa1dc176
generated: "2024-02-12T01:36:17.450446-08:00"
46 changes: 46 additions & 0 deletions charts/hyperdx/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
apiVersion: v2
name: hyperdx
description: A Helm chart for hyperdx
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: '1.6.0'

home: https://hyperdx.io

dependencies:
- name: common
repository: oci://registry-1.docker.io/bitnamicharts
tags:
- bitnami-common
version: 2.x.x
- name: redis
repository: oci://registry-1.docker.io/bitnamicharts
tags:
- redis
version: 18.x.x
condition: redis.enabled
- name: clickhouse
repository: oci://registry-1.docker.io/bitnamicharts
tags:
- clickhouse
version: 4.x.x
condition: clickhouse.enabled
- name: mongodb
repository: oci://registry-1.docker.io/bitnamicharts
tags:
- mongodb
version: 14.x.x
condition: mongodb.enabled
- condition: kong.enabled
name: kong
repository: oci://registry-1.docker.io/bitnamicharts
version: 10.x.x
1,029 changes: 1,029 additions & 0 deletions charts/hyperdx/README.md

Large diffs are not rendered by default.

88 changes: 88 additions & 0 deletions charts/hyperdx/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
CHART NAME: {{ .Chart.Name }}
CHART VERSION: {{ .Chart.Version }}
APP VERSION: {{ .Chart.AppVersion }}

** Please be patient while the chart is being deployed **

The following elements have been deployed

{{- if .Values.app.enabled }}
- app
{{- end }}
{{- if .Values.api.enabled }}
- api
{{- end }}
{{- if .Values.ingestor.enabled }}
- ingestor
{{- end }}
{{- if .Values.aggregator.enabled }}
- aggregator
{{- end }}
{{- if .Values.goParser.enabled }}
- go-parser
{{- end }}
{{- if .Values.miner.enabled }}
- miner
{{- end }}
{{- if .Values.otelCollector.enabled }}
- opentelemetry-collector
{{- end }}
{{- if .Values.taskCheckAlerts.enabled }}
- task-check-alerts
{{- end }}
{{- if .Values.kong.enabled }}
- kong
{{- end }}
{{- if .Values.mongodb.enabled }}
- mongodb
{{- end }}
{{- if .Values.redis.enabled }}
- redis
{{- end }}
{{- if .Values.clickhouse.enabled }}
- clickhouse
{{- end }}

{{- if .Values.diagnosticMode.enabled }}
The chart has been deployed in diagnostic mode. All probes have been disabled and the command has been overwritten with:

command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 4 }}
args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 4 }}

Get the list of pods by executing:

kubectl get pods --namespace {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }}

Access the pod you want to debug by executing

kubectl exec --namespace {{ .Release.Namespace }} -ti <NAME OF THE POD> -- bash

{{- else }}

Hyperdx API can be accessed through the following DNS name from within your cluster:

{{ include "hyperdx.api.url" . }}

{{- if .Values.publicUrl }}
To access the Hyperdx API from outside the cluster

{{ include "hyperdx.api.publicUrl" . }}

NOTE: It may take a few minutes for the LoadBalancer IP to be available.
Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ include "hyperdx.kong.fullname" . }}'

Point your DNS record "{{ .Values.publicUrl }}" to the external IP of the load balancer once it's ready. This is required for the dashboard to work (see README for more details)
Wait for DNS to propagate and you can now access the dashboard at "{{ .Values.publicUrl }}"

{{- else }}
TODO: provide portforward instructions and how to mimic an identical docker compose setup on a kind cluster
portforward the appropriate svcs specified in the README
{{- end }}
{{- end }}

To get a quick preview of HyperDX and demo logs, enable self-instrumentation by
- accessing your api key at {{ include "hyperdx.app.publicUrl" . }}/team
- set the api key secret and restart the stack

kubectl patch secret {{ include "hyperdx.apiKey.secretName" . }} -p '{"data":{"api-key":"<INGESTION_API_KEY>"}}'
kubectl delete pods --all -n {{ .Release.Namespace }}
Loading