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

feat: Add initial version of observability-pipeline chart #386

Merged
merged 28 commits into from
Sep 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
41ee933
feat: Add helm chart that installs collector & refinery
MikeGoldsmith Aug 30, 2024
f7da6fa
add readme
MikeGoldsmith Aug 30, 2024
8966ceb
update chart with refinery ingress controller and collector pipelines
MikeGoldsmith Aug 30, 2024
6b1dc09
Update chart to use service instead of ingress
TylerHelmuth Aug 30, 2024
d8a49cd
install otel collector twice, as daemonset and deployment
MikeGoldsmith Sep 11, 2024
82bcc09
add makefile
MikeGoldsmith Sep 11, 2024
e8367f1
update collector and refinery subchart versions
MikeGoldsmith Sep 11, 2024
bd978c6
add opentelemetry collector helm chart repo to ct.yaml
MikeGoldsmith Sep 11, 2024
4be9d98
Merge branch 'main' into mike/combined-chart
MikeGoldsmith Sep 11, 2024
64f9b7a
update honeycomb dep to be local
MikeGoldsmith Sep 11, 2024
cb7eb1a
setup metrics pipelines in collectors
MikeGoldsmith Sep 11, 2024
e49c297
route logs traffic through refinery
MikeGoldsmith Sep 11, 2024
bdbcd0d
add service.enabled to collectors
MikeGoldsmith Sep 11, 2024
b3b850c
remove service.name
MikeGoldsmith Sep 11, 2024
1c858e3
move makefile to root and use in ci
MikeGoldsmith Sep 11, 2024
c5d6a91
update testing tools
MikeGoldsmith Sep 11, 2024
37bdaa6
configure otlp exporter for internal collector telemetry
codeboten Sep 11, 2024
768fe5e
Update values to match our k8s quickstart
TylerHelmuth Sep 16, 2024
ce05f07
cleanup
TylerHelmuth Sep 16, 2024
c4dd411
fix chart lock
TylerHelmuth Sep 16, 2024
de5a274
fix lint
TylerHelmuth Sep 16, 2024
60a94c4
Update ct config
TylerHelmuth Sep 16, 2024
c9c6490
fix ct config
TylerHelmuth Sep 16, 2024
500418f
fix ct config
TylerHelmuth Sep 16, 2024
5dced01
Use fake API key in test
TylerHelmuth Sep 16, 2024
5f09f87
fix lint
TylerHelmuth Sep 16, 2024
c2caa6c
update chart name and helper to use observability-pipeline
MikeGoldsmith Sep 17, 2024
2b3377e
Merge branch 'main' into mike/combined-chart
MikeGoldsmith Sep 17, 2024
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: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ jobs:
minikube start --driver=none --kubernetes-version=${K8S_VERSION}
- run:
name: Lint charts
command: ct lint --config ./ct.yaml
command: make lint
- run:
name: Test charts
command: ct install --config ./ct.yaml
command: make test


release-charts:
Expand Down
10 changes: 5 additions & 5 deletions .circleci/install_testing_tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

set -o errexit

readonly HELM_VERSION=3.5.2
readonly CHART_TESTING_VERSION=3.7.1
readonly YAMLLINT_VERSION=1.27.1
readonly YAMALE_VERSION=3.0.4
readonly MINIKUBE_VERSION=v1.27.1
readonly HELM_VERSION=3.15.4
readonly CHART_TESTING_VERSION=3.11.0
readonly YAMLLINT_VERSION=1.35.1
readonly YAMALE_VERSION=5
readonly MINIKUBE_VERSION=v1.34.0

echo "Installing Helm..."
curl -LO "https://get.helm.sh/helm-v$HELM_VERSION-linux-amd64.tar.gz"
Expand Down
2 changes: 1 addition & 1 deletion .circleci/install_tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

set -o errexit

readonly HELM_VERSION=3.12.0
readonly HELM_VERSION=3.15.4
readonly CHART_RELEASER_VERSION=1.6.1

echo "Installing Helm..."
Expand Down
7 changes: 7 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.PHONY: lint
lint:
ct lint --config ./ct.yaml

.PHONY: test
test:
ct install --config ./ct.yaml
23 changes: 23 additions & 0 deletions charts/observability-pipeline/.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/
12 changes: 12 additions & 0 deletions charts/observability-pipeline/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
dependencies:
- name: refinery
repository: https://honeycombio.github.io/helm-charts
version: 2.11.3
- name: opentelemetry-collector
repository: https://open-telemetry.github.io/opentelemetry-helm-charts
version: 0.105.0
- name: opentelemetry-collector
repository: https://open-telemetry.github.io/opentelemetry-helm-charts
version: 0.105.0
digest: sha256:02906726888b8b8ee186b7f125221a4094c434fa926aedbc4be3340e82d6c685
generated: "2024-09-16T13:48:52.31186-06:00"
37 changes: 37 additions & 0 deletions charts/observability-pipeline/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
apiVersion: v2
name: observability-pipeline
description: Chart to deploy both OpenTelemetry Collector and Honeycomb Refinery
type: application
version: 0.0.1-alpha
appVersion: 0.0.1-alpha
keywords:
- refinery
- open-telemetry
- honeycomb
- observability
- sampling
- tracing
- collector
home: https://honeycomb.io
sources:
- https://github.com/honeycombio/refinery
- https://github.com/open-telemetry/opentelemetry-collector-releases
icon: https://www.honeycomb.io/wp-content/themes/honeycomb/assets/img/logo.svg
maintainers:
- name: Honeycomb
email: [email protected]
dependencies:
- name: refinery
version: 2.11.3
repository: "https://honeycombio.github.io/helm-charts"
condition: refinery.enabled
- name: opentelemetry-collector
version: 0.105.0
repository: "https://open-telemetry.github.io/opentelemetry-helm-charts"
alias: otelcol-deployment
condition: otelcol-deployment.enabled
- name: opentelemetry-collector
version: 0.105.0
repository: "https://open-telemetry.github.io/opentelemetry-helm-charts"
alias: otelcol-daemonset
condition: otelcol-daemonset.enabled
31 changes: 31 additions & 0 deletions charts/observability-pipeline/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Honeycomb Observability Pipeline

This is a WIP helm chart that can install both the OpenTelemetry Collector and Honeycomb Refinery.

## Prerequisites

- Kubernetes 1.24+
- Helm 3.9+

## Installing the Chart

Create a Kubernetes secret to store your API Key

```shell
export HONEYCOMB_API_KEY=mykey
kubectl create secret generic honeycomb --from-literal=api-key=$HONEYCOMB_API_KEY
```

Add the Honeycomb Helm repository:

```shell
helm repo add honeycomb https://honeycombio.github.io/helm-charts
```

To install the chart with the release name `my-pipeline`, run the following command:

`helm install my-pipeline honeycomb/observability-pipeline`

To uninstall the chart:

`helm uninstall my-pipeline`
74 changes: 74 additions & 0 deletions charts/observability-pipeline/ci/default-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
refinery:
resources:
limits:
cpu: 100m
memory: 200M
requests:
cpu: 100m
memory: 200M

otelcol-deployment:
extraEnvs: []
resources:
limits:
cpu: 100m
memory: 200M
requests:
cpu: 100m
memory: 200M
config:
exporters:
otlp/k8s-metrics:
headers:
"x-honeycomb-team": "TEST"
otlp/k8s-events:
headers:
"x-honeycomb-team": "TEST"
service:
telemetry:
metrics:
address: ""
readers:
- periodic:
exporter:
otlp:
protocol: http/protobuf
endpoint: https://api.honeycomb.io:443
headers:
"x-honeycomb-team": TEST

otelcol-daemonset:
extraEnvs: []
resources:
limits:
cpu: 100m
memory: 200M
requests:
cpu: 100m
memory: 200M
config:
exporters:
otlp:
headers:
"x-honeycomb-team": "TEST"
otlp/refinery:
headers:
"x-honeycomb-team": "TEST"
otlp/k8s-metrics:
headers:
"x-honeycomb-team": "TEST"
otlp/k8s-logs:
headers:
"x-honeycomb-team": "TEST"
service:
telemetry:
metrics:
address: ""
readers:
- periodic:
exporter:
otlp:
protocol: http/protobuf
endpoint: https://api.honeycomb.io:443
headers:
"x-honeycomb-team": TEST
6 changes: 6 additions & 0 deletions charts/observability-pipeline/templates/_helpters.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "honeycomb-observability-pipeline.name" -}}
{{- default .Release.Name | trunc 63 | trimSuffix "-" }}
{{- end }}
Loading
Loading