diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml index 05d30a4376..68bdbbf124 100644 --- a/.github/workflows/lint-test.yaml +++ b/.github/workflows/lint-test.yaml @@ -14,12 +14,14 @@ jobs: - name: Set up Helm uses: azure/setup-helm@v3.5 with: - version: v3.6.3 + version: v3.11.2 - name: Set up chart-testing uses: helm/chart-testing-action@v2.3.1 with: - version: v3.3.1 + version: v3.7.1 + run: | + helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts - name: Run chart-testing (list-changed) id: list-changed diff --git a/CHANGELOG.md b/CHANGELOG.md index 39e741161a..ba74fd9828 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Add functional test coverage for Network Explorer metrics ([#684](https://github.com/signalfx/splunk-otel-collector-chart/pull/684) - Apply the same resources to init containers as allocated to the otel agent container ([#690](https://github.com/signalfx/splunk-otel-collector-chart/pull/690) +- Add basic support for deploying OpenTelemetry Operator as a subchart [#691](https://github.com/signalfx/splunk-otel-collector-chart/pull/691) + - Disabled for all users until the feature is more mature ## [0.71.0] - 2023-03-01 diff --git a/RELEASE.md b/RELEASE.md index a983c57182..ee85218273 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -15,8 +15,12 @@ of `version` field. To make a new release of the helm chart: 1. Bump the `version` in [Chart.yaml](helm-charts/splunk-otel-collector/Chart.yaml) -2. Run `make render` to render all the examples with the latest changes. -3. Create PR and request review from the team. -4. When the PR gets merged, the release will automatically be made and the helm repo updated. -5. Release notes are not populated automatically. So make sure to update them manually using the notes from +2. Check for Helm Subchart version updates. + - Look for a new version at https://github.com/open-telemetry/opentelemetry-operator/releases. + - If needed, in the [Chart.yaml](helm-charts/splunk-otel-collector/Chart.yaml) + update the operator version and run `helm dependency build`. +3. Run `make render` to render all the examples with the latest changes. +4. Create PR and request review from the team. +5. When the PR gets merged, the release will automatically be made and the helm repo updated. +6. Release notes are not populated automatically. So make sure to update them manually using the notes from [CHANGELOG](./CHANGELOG.md). diff --git a/docs/auto-instrumentation.md b/docs/auto-instrumentation.md new file mode 100644 index 0000000000..c780807660 --- /dev/null +++ b/docs/auto-instrumentation.md @@ -0,0 +1,28 @@ +# Auto-instrumentation +> :INFO: More documentation coming soon. + +## Automatically instrumenting Kubernetes pods +This chart supports deploying auto-instrumentation of applications running +in Kubernetes pods via the OpenTelemetry Operator. +- This **Splunk Otel Collector Chart** will deploy the collector and the + operator. +- The **[OpenTelemetry Operator](https://github.com/open-telemetry/opentelemetry-operator)** + will be setup up auto-instrumentation of + Kubernetes pods. + - The auto-instrumented applications can be configured to send data to + collector agents, collector gateways, or Splunk backend ingestion + endpoints. + +## Getting Started + +### Learn by example + +See: [Java Spring Clinic Example](../examples/enable-operator-and-auto-instrumentation/README.md) + +### Documentation Resources +https://developers.redhat.com/devnation/tech-talks/using-opentelemetry-on-kubernetes +https://github.com/open-telemetry/opentelemetry-operator/blob/main/README.md +https://github.com/open-telemetry/opentelemetry-operator/blob/main/docs/api.md#instrumentation +https://github.com/open-telemetry/opentelemetry-operator/blob/main/README.md#opentelemetry-auto-instrumentation-injection +https://github.com/open-telemetry/opentelemetry-operator/blob/main/README.md#use-customized-or-vendor-instrumentation +https://opentelemetry.io/docs/k8s-operator/ diff --git a/helm-charts/splunk-otel-collector/Chart.lock b/helm-charts/splunk-otel-collector/Chart.lock new file mode 100644 index 0000000000..a66c89d250 --- /dev/null +++ b/helm-charts/splunk-otel-collector/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: opentelemetry-operator + repository: https://open-telemetry.github.io/opentelemetry-helm-charts + version: 0.24.0 +digest: sha256:20de0b2969640b8196b498231c82953749ec59b6c45d2d8679c5025af8ad61f4 +generated: "2023-03-08T16:26:43.484325-07:00" diff --git a/helm-charts/splunk-otel-collector/Chart.yaml b/helm-charts/splunk-otel-collector/Chart.yaml index 94729beccf..114b0ba0d7 100644 --- a/helm-charts/splunk-otel-collector/Chart.yaml +++ b/helm-charts/splunk-otel-collector/Chart.yaml @@ -17,3 +17,9 @@ maintainers: - name: dmitryax - name: jvoravong - name: emaderer +dependencies: + - name: opentelemetry-operator + version: 0.24.0 + repository: https://open-telemetry.github.io/opentelemetry-helm-charts + alias: operator + condition: operator.enabled diff --git a/helm-charts/splunk-otel-collector/charts/opentelemetry-operator-0.24.0.tgz b/helm-charts/splunk-otel-collector/charts/opentelemetry-operator-0.24.0.tgz new file mode 100644 index 0000000000..7668e2301e Binary files /dev/null and b/helm-charts/splunk-otel-collector/charts/opentelemetry-operator-0.24.0.tgz differ diff --git a/helm-charts/splunk-otel-collector/values.schema.json b/helm-charts/splunk-otel-collector/values.schema.json index ec2c00fa62..c3c8ae1c5f 100644 --- a/helm-charts/splunk-otel-collector/values.schema.json +++ b/helm-charts/splunk-otel-collector/values.schema.json @@ -1444,6 +1444,17 @@ } } } + }, + "operator": { + "description": "OpenTelemetry Operator configuration. A subchart is used to install the operator, see https://github.com/open-telemetry/opentelemetry-helm-charts/blob/main/charts/opentelemetry-operator/values.schema.json for more info.", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "const": false + } + }, + "additionalProperties": true } }, "allOf": [ diff --git a/helm-charts/splunk-otel-collector/values.yaml b/helm-charts/splunk-otel-collector/values.yaml index 235eb2622e..da5fae94ad 100644 --- a/helm-charts/splunk-otel-collector/values.yaml +++ b/helm-charts/splunk-otel-collector/values.yaml @@ -1331,3 +1331,15 @@ networkExplorer: # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' + +################################################################################ +# Open-telemetry operator running as a deployment with a replica count of 1. +# It auto-instruments applications to send telemetry data to the Splunk backend. +# The operator is imported as a subchart into this chart. For a full list of +# values, see: +# https://github.com/open-telemetry/opentelemetry-helm-charts/blob/main/charts/opentelemetry-operator/values.yaml +################################################################################ + +operator: + # Coming soon. This feature cannot be currently enabled. + enabled: false