From 5a22bbd968a035b51dce0d4ac4deac2a75874f2e Mon Sep 17 00:00:00 2001 From: jvoravong <47871238+jvoravong@users.noreply.github.com> Date: Fri, 29 Sep 2023 11:11:58 -0600 Subject: [PATCH] Add support for using the OpenTelemetry chloggen tool (#923) --- .chloggen/TEMPLATE.yaml | 12 + .chloggen/migrate-to-otel-by-default.yaml | 12 + .chloggen/otl-add-chloggen.yaml | 12 + .github/workflows/validate-changelog.yaml | 28 +- CHANGELOG.md | 657 +++++++++++----------- CONTRIBUTING.md | 35 +- Makefile | 98 +++- RELEASE.md | 1 + ci_scripts/chloggen-new.sh | 59 ++ ci_scripts/chloggen-pr-validate.sh | 63 +++ ci_scripts/chloggen-update.sh | 51 ++ ci_scripts/install-tools.sh | 87 +++ examples/render-examples.sh | 0 13 files changed, 762 insertions(+), 353 deletions(-) create mode 100644 .chloggen/TEMPLATE.yaml create mode 100644 .chloggen/migrate-to-otel-by-default.yaml create mode 100644 .chloggen/otl-add-chloggen.yaml create mode 100755 ci_scripts/chloggen-new.sh create mode 100755 ci_scripts/chloggen-pr-validate.sh create mode 100755 ci_scripts/chloggen-update.sh create mode 100755 ci_scripts/install-tools.sh mode change 100644 => 100755 examples/render-examples.sh diff --git a/.chloggen/TEMPLATE.yaml b/.chloggen/TEMPLATE.yaml new file mode 100644 index 0000000000..1e4e81cb6b --- /dev/null +++ b/.chloggen/TEMPLATE.yaml @@ -0,0 +1,12 @@ +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: +# The name of the component, or a single word describing the area of concern, (e.g. agent, clusterReceiver, gateway, networkExplorer, operator, chart, other) +component: +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: +# One or more tracking issues related to the change +issues: [] +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: diff --git a/.chloggen/migrate-to-otel-by-default.yaml b/.chloggen/migrate-to-otel-by-default.yaml new file mode 100644 index 0000000000..85aa17df78 --- /dev/null +++ b/.chloggen/migrate-to-otel-by-default.yaml @@ -0,0 +1,12 @@ +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: enhancement +# The name of the component, or a single word describing the area of concern, (e.g. agent, clusterReceiver, gateway, networkExplorer, operator, chart, other) +component: agent +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Change the default logs collection engine (`logsEngine`) to the native OpenTelemetry logs collection (`otel`) +# One or more tracking issues related to the change +issues: [934] +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: If you want to keep using Fluentd sidecar for the logs collection, set `logsEngine' to 'fluentd` in your values.yaml diff --git a/.chloggen/otl-add-chloggen.yaml b/.chloggen/otl-add-chloggen.yaml new file mode 100644 index 0000000000..c33afdc84d --- /dev/null +++ b/.chloggen/otl-add-chloggen.yaml @@ -0,0 +1,12 @@ +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: enhancement +# The name of the component, or a single word describing the area of concern, (e.g. agent, clusterReceiver, gateway, networkExplorer, operator, chart, other) +component: chart +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Add support for OpenTelemetry CHANGELOG.md generator tool, see [chloggen](https://github.com/open-telemetry/opentelemetry-operator/tree/main/.chloggen) +# One or more tracking issues related to the change +issues: [923] +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: diff --git a/.github/workflows/validate-changelog.yaml b/.github/workflows/validate-changelog.yaml index 9b8dfd8f48..f0ec29a2df 100644 --- a/.github/workflows/validate-changelog.yaml +++ b/.github/workflows/validate-changelog.yaml @@ -1,9 +1,15 @@ name: Ensure valid and up-to-date Changelog +# Description: Automates the validation of .chloggen (CHANGELOG.md) entries ensuring: +# 1. All entries are valid. +# 2. A new entry is added for updates to chart templates or rendered example content. +# 3. Bypass validation with a 'Skip Changelog' label or a PR title containing '[chore]'. + on: pull_request jobs: validate-changelog: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'Skip Changelog') && !contains(github.event.pull_request.title, '[chore]') }} runs-on: ubuntu-latest steps: - name: Checkout @@ -11,12 +17,22 @@ jobs: with: fetch-depth: 0 - - name: Lint changelog file - uses: avto-dev/markdown-lint@v1 - with: - rules: /lint/rules/changelog.js - config: /lint/config/changelog.yml - args: ./CHANGELOG.md + - name: Set up Go + uses: actions/setup-go@v4 + + - name: Install chloggen + run: make install-tools + + - name: Run make chlog-validate + run: | + if ! make chlog-validate; then + echo "Options:" + echo "- Add a Changelog Entry: Please add a '.yaml' file to the './.chloggen/' directory detailing the changes in your commit. See 'CONTRIBUTING.md' for guidance on creating this entry." + echo "- Skip the Changelog Check: If your changes don't necessitate a changelog entry or it's a minor chore, you can skip this check by:" + echo " 1. Adding '[chore]' to the title of the pull request" + echo " 2. Applying the 'Skip Changelog' label to the pull request." + exit 1 + fi - name: Read current version of the Chart id: read-chart diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e99299a5b..d46cb5290a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,23 +1,18 @@ + # Changelog -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - -## Unreleased - -### Changed - -- Change the default logs collection engine (`logsEngine`) to the native OpenTelemetry logs collection (`otel`) [#934](https://github.com/signalfx/splunk-otel-collector-chart/pull/934) - - If you want to keep using Fluentd sidecar for the logs collection, set `logsEngine: fluentd` in your values.yaml + + ## [0.85.0] - 2023-09-19 This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk OpenTelemetry Collector v0.85.0](https://github.com/signalfx/splunk-otel-collector/releases/tag/v0.85.0). -### Added +### 🚀 New components 🚀 - Add `component` label to daemonset pods and optional k8s service for agent daemonset which can be enabled with `agent.service.enabled` config. [#740](https://github.com/signalfx/splunk-otel-collector-chart/pull/740) -### Changed +### 💡 Enhancements 💡 - Update Splunk Fluend HEC docker image to v1.3.3 [#924](https://github.com/signalfx/splunk-otel-collector-chart/pull/924) - Add ability to update and track operator auto-instrumentation images [#917](https://github.com/signalfx/splunk-otel-collector-chart/pull/917) @@ -30,21 +25,21 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op ## [0.84.0] - 2023-09-11 -### Changed +### 💡 Enhancements 💡 - Disable `opencensus.resourcetype` resource attribute in k8s_cluster receiver [#914](https://github.com/signalfx/splunk-otel-collector-chart/pull/914) - This change does not affect Splunk Observability users since it has already been disabled in the default translation rules of the Signalfx exporter - Disable signalfx exporter default translations in clusterReceiver deployment [#915](https://github.com/signalfx/splunk-otel-collector-chart/pull/915) - This change improves performance of clusterReceiver, but can be breaking if the deprecated signalfx exporter `translation_rules` option is being used - Upgrade the Splunk OpenTelemetry Collector for Kubernetes dependencies [#919](https://github.com/signalfx/splunk-otel-collector-chart/pull/919),[#909](https://github.com/signalfx/splunk-otel-collector-chart/pull/909) - - opentelemetry-operator upgraded to [v0.37.0](https://github.com/open-telemetry/opentelemetry-helm-charts/releases/tag/opentelemetry-operator-0.37.0) - - cert-manager upgraded to [v1.12.4](https://github.com/cert-manager/cert-manager/releases/tag/v1.12.4) +- opentelemetry-operator upgraded to [v0.37.0](https://github.com/open-telemetry/opentelemetry-helm-charts/releases/tag/opentelemetry-operator-0.37.0) +- cert-manager upgraded to [v1.12.4](https://github.com/cert-manager/cert-manager/releases/tag/v1.12.4) -### Fixed +### 🧰 Bug fixes 🧰 - Enable native OTel logs collection (logsEngine=otel) in GKE Autopilot [#809](https://github.com/signalfx/splunk-otel-collector-chart/pull/809) -### Added +### 🚀 New components 🚀 - Configuration of persistent buffering for agent [861](https://github.com/signalfx/splunk-otel-collector-chart/pull/861) - Add option to disable Openshift SecurityContextConstraint resource [#843](https://github.com/signalfx/splunk-otel-collector-chart/pull/843) @@ -53,13 +48,13 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk OpenTelemetry Collector v0.83.0](https://github.com/signalfx/splunk-otel-collector/releases/tag/v0.83.0). -### Changed +### 💡 Enhancements 💡 - Upgrade the Splunk OpenTelemetry Collector for Kubernetes dependencies [#885](https://github.com/signalfx/splunk-otel-collector-chart/pull/885),[#876](https://github.com/signalfx/splunk-otel-collector-chart/pull/876) - opentelemetry-operator upgraded to [v0.35.0](https://github.com/open-telemetry/opentelemetry-helm-charts/releases/tag/opentelemetry-operator-0.35.0) - cert-manager upgraded to [v1.12.3](https://github.com/cert-manager/cert-manager/releases/tag/v1.12.3) -### Fixed +### 🧰 Bug fixes 🧰 - Fix for secret name which now respects the same overrides as other resources in the chart [#873](https://github.com/signalfx/splunk-otel-collector-chart/pull/873) - Update the secret validation hook pod to use imagePullSecrets instead of possible non-existing serviceAccountName [#888](https://github.com/signalfx/splunk-otel-collector-chart/pull/888) @@ -68,7 +63,7 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk OpenTelemetry Collector v0.82.0](https://github.com/signalfx/splunk-otel-collector/releases/tag/v0.82.0). -### Fixed +### 🧰 Bug fixes 🧰 - Use "ContainerAdministrator" user for windows nodes by default [#809](https://github.com/signalfx/splunk-otel-collector-chart/pull/809) @@ -76,18 +71,18 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk OpenTelemetry Collector v0.81.0](https://github.com/signalfx/splunk-otel-collector/releases/tag/v0.81.0). -### Changed +### 💡 Enhancements 💡 - Upgrade the Splunk OpenTelemetry Collector for Kubernetes dependencies [#856](https://github.com/signalfx/splunk-otel-collector-chart/pull/856),[#858](https://github.com/signalfx/splunk-otel-collector-chart/pull/858) - opentelemetry-operator upgraded from 0.32.0 to [0.34.0](https://github.com/open-telemetry/opentelemetry-helm-charts/releases/tag/opentelemetry-operator-0.34.0) - Java auto-instrumentation upgraded from 1.24.0 to [1.26.0](https://github.com/signalfx/splunk-otel-java/releases/tag/v1.26.0) -### Fixed +### 🧰 Bug fixes 🧰 - Set cluster_name for host logs too if renameFieldsSck is enabled [#837](https://github.com/signalfx/splunk-otel-collector-chart/pull/837) - Fix `smartagent` collectd based monitors on read-only filesystems [#839](https://github.com/signalfx/splunk-otel-collector-chart/pull/839) -### Added +### 🚀 New components 🚀 - Update PodDisruptionBudgets API version to allow both `policy/v1beta1` and `policy/v1` [#835](https://github.com/signalfx/splunk-otel-collector-chart/pull/835) - Update clusterrole to allow collector to check for the `aws-auth` configmap in EKS clusters [#840](https://github.com/signalfx/splunk-otel-collector-chart/pull/840) @@ -97,7 +92,7 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk OpenTelemetry Collector v0.80.0](https://github.com/signalfx/splunk-otel-collector/releases/tag/v0.80.0). -### Changed +### 💡 Enhancements 💡 - Add `service.name` resource attribute to logs if `autodetect.istio` is enabled using transform processor. This change removes the limitation of `service.name` attribute being available only with logsEngine=fluentd. @@ -111,7 +106,7 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk OpenTelemetry Collector v0.79.1](https://github.com/signalfx/splunk-otel-collector/releases/tag/v0.79.1). -### Fixed +### 🧰 Bug fixes 🧰 - Fix cri-o log format time layout [#817](https://github.com/signalfx/splunk-otel-collector-chart/pull/817) - Align the set of default resource attributes added by k8s attributes processor if the gateway is enabled [#820](https://github.com/signalfx/splunk-otel-collector-chart/pull/820) @@ -120,11 +115,11 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk OpenTelemetry Collector v0.79.0](https://github.com/signalfx/splunk-otel-collector/releases/tag/v0.79.0). -### Added +### 🚀 New components 🚀 - Adopt new control-plane node toleration [#814](https://github.com/signalfx/splunk-otel-collector-chart/pull/814) -### Changed +### 💡 Enhancements 💡 - Update the Kubernetes Proxy monitor for OpenShift clusters to start using secure ports 9101 or 29101 with authentication [#810](https://github.com/signalfx/splunk-otel-collector-chart/pull/810) @@ -132,30 +127,30 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk OpenTelemetry Collector v0.78.1](https://github.com/signalfx/splunk-otel-collector/releases/tag/v0.78.1). -### Added +### 🚀 New components 🚀 - Adopt Openshift distribution in Network Explorer [#804](https://github.com/signalfx/splunk-otel-collector-chart/pull/804) ## [0.77.0] - 2023-06-05 -### Added +### 🚀 New components 🚀 - Add `serviceAccountName` to secret validation hook pod [#781](https://github.com/signalfx/splunk-otel-collector-chart/pull/781) - Allow enabling profiling only for Observability [#788](https://github.com/signalfx/splunk-otel-collector-chart/pull/788) - Add storage to filelog receiver for extraFileLog [#755](https://github.com/signalfx/splunk-otel-collector-chart/pull/755) - Add Openshift support for Network-Explorer [804](https://github.com/signalfx/splunk-otel-collector-chart/pull/804) -### Changed +### 💡 Enhancements 💡 - Avoid `runAsUser` in SecurityContext for Windows [#797](https://github.com/signalfx/splunk-otel-collector-chart/pull/797) ## [0.76.0] - 2023-05-04 -### Added +### 🚀 New components 🚀 - Option to use lightprometheus receiver through a feature gate for metrics collection from discovered Prometheus endpoints [757](https://github.com/signalfx/splunk-otel-collector-chart/pull/757) -### Changed +### 💡 Enhancements 💡 - Add `logsCollection.containers.maxRecombineLogSize` config option with default 1Mb value which is applied to `max_log_size` option of the multiline recombine operators @@ -165,23 +160,23 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op pipeline components [#764](https://github.com/signalfx/splunk-otel-collector-chart/pull/764) - Drop excessive istio attributes to avoid running into the dimensions limit when scraping istio metrics is enabled [765](https://github.com/signalfx/splunk-otel-collector-chart/pull/765) -### Fixed +### 🧰 Bug fixes 🧰 - Fix k8s.cluster.name resource attribute for logs in GCP [#771](https://github.com/signalfx/splunk-otel-collector-chart/pull/771) ## [0.75.0] - 2023-04-17 -### Changed +### 💡 Enhancements 💡 - Update the Kubernetes scheduler monitor to stop using insecure port 10251 and start using secure port 10259 with authentication [#711](https://github.com/signalfx/splunk-otel-collector-chart/pull/711) - Upgrade splunk-otel-collector image to 0.75.0 -### Fixed +### 🧰 Bug fixes 🧰 - Sending request timeouts in k8s cluster receiver deployment on big k8s clusters [#717](https://github.com/signalfx/splunk-otel-collector-chart/pull/717) - Properly handle enableMetrics in Network Explorer Reducer template [#724](https://github.com/signalfx/splunk-otel-collector-chart/pull/724) -### Added +### 🚀 New components 🚀 - Add support for Operator based Java auto-instrumentation [#701](https://github.com/signalfx/splunk-otel-collector-chart/pull/701) - Add experimental support for deploying OpenTelemetry Operator as a subchart [#691](https://github.com/signalfx/splunk-otel-collector-chart/pull/691) @@ -192,37 +187,37 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op ## [0.72.0] - 2023-03-09 -### Added +### 🚀 New components 🚀 - 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) ## [0.71.0] - 2023-03-01 -### Added +### 🚀 New components 🚀 - Added examples for supported Kubernetes distributions and Kubernetes clusters with windows nodes ([#663](https://github.com/signalfx/splunk-otel-collector-chart/pull/663)) - Refactored the examples and rendered directories into one for better usability ([#658](https://github.com/signalfx/splunk-otel-collector-chart/pull/658)) -### Changed +### 💡 Enhancements 💡 - Docker metadata turned off by default ([#655](https://github.com/signalfx/splunk-otel-collector-chart/pull/665)) -### Fixed +### 🧰 Bug fixes 🧰 - Translation of `k8s.pod.labels.app` attribute to SCK format ([#660](https://github.com/signalfx/splunk-otel-collector-chart/pull/660)) ## [0.70.0] - 2023-01-31 -### Added +### 🚀 New components 🚀 - Support sending traces via Splunk HEC exporter ([#629](https://github.com/signalfx/splunk-otel-collector-chart/pull/629) - thanks to @mr-miles) -### Changed +### 💡 Enhancements 💡 - Upgrade splunk-otel-collector image to 0.70.0, skipping 0.69.0 release ([#653](https://github.com/signalfx/splunk-otel-collector-chart/pull/653)) -### Fixed +### 🧰 Bug fixes 🧰 - Fix invalid OpenShift SecurityContextConstraints template ([#652](https://github.com/signalfx/splunk-otel-collector-chart/pull/652)) - Limit `clusterReceiver.eventsEnabled` deprecation warning to feature users ([#648](https://github.com/signalfx/splunk-otel-collector-chart/pull/648)) @@ -230,51 +225,51 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op ## [0.68.0] - 2023-01-25 -### Added +### 🚀 New components 🚀 -- Allow to overwrite default SecurityContextConstraints rules with values.yaml file (#643) +- Allow to overwrite default SecurityContextConstraints rules with values.yaml file ([#643](https://github.com/signalfx/splunk-otel-collector-chart/pull/643)) -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.68.1 (#640) +- Upgrade splunk-otel-collector image to 0.68.1 ([#640](https://github.com/signalfx/splunk-otel-collector-chart/pull/640)) -### Fixed +### 🧰 Bug fixes 🧰 -- Default recombine operator for the docker container engine (#627) -- Added acl to journald log directory (#639) +- Default recombine operator for the docker container engine ([#627](https://github.com/signalfx/splunk-otel-collector-chart/pull/627)) +- Added acl to journald log directory ([#639](https://github.com/signalfx/splunk-otel-collector-chart/pull/639)) ## [0.67.0] - 2022-12-19 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.67.0 (#612) +- Upgrade splunk-otel-collector image to 0.67.0 ([#612](https://github.com/signalfx/splunk-otel-collector-chart/pull/612)) -### Fixed +### 🧰 Bug fixes 🧰 -- Make sure the daemonset can start in GKE Autopiot (#608) -- Make containerd engine default in for fluentd logs and use always use it in GKE Autopiot (#609) +- Make sure the daemonset can start in GKE Autopiot ([#608](https://github.com/signalfx/splunk-otel-collector-chart/pull/608)) +- Make containerd engine default in for fluentd logs and use always use it in GKE Autopiot ([#609](https://github.com/signalfx/splunk-otel-collector-chart/pull/609)) - Temporary disable compression in Splunk Observability logs exporter until - 0.68.0 to workaround a compression bug (#610) + 0.68.0 to workaround a compression bug ([#610](https://github.com/signalfx/splunk-otel-collector-chart/pull/610)) ## [0.66.1] - 2022-12-08 -### Fixed +### 🧰 Bug fixes 🧰 - Fixed network explorer image pull secrets ## [0.66.0] - 2022-12-06 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.66.0 (#593) +- Upgrade splunk-otel-collector image to 0.66.0 ([#593](https://github.com/signalfx/splunk-otel-collector-chart/pull/593)) ## [0.64.0] - 2022-11-22 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.64.0 (#589) +- Upgrade splunk-otel-collector image to 0.64.0 ([#589](https://github.com/signalfx/splunk-otel-collector-chart/pull/589)) -### Fixed +### 🧰 Bug fixes 🧰 ## [0.62.2] - 2022-11-21 @@ -282,193 +277,193 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op ## [0.62.1] - 2022-11-01 -### Fixed +### 🧰 Bug fixes 🧰 -- Make sure filelog receiver uses file_storage for checkpointing (#567) +- Make sure filelog receiver uses file_storage for checkpointing ([#567](https://github.com/signalfx/splunk-otel-collector-chart/pull/567)) ## [0.62.0] - 2022-10-28 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.62.0 (#573) +- Upgrade splunk-otel-collector image to 0.62.0 ([#573](https://github.com/signalfx/splunk-otel-collector-chart/pull/573)) ## [0.61.0] - 2022-10-07 -### Changed +### 💡 Enhancements 💡 -- Increase number of queue consumers in the gateway configuration (#554) -- Upgrade splunk-otel-collector image to 0.61.0 (#556) +- Increase number of queue consumers in the gateway configuration ([#554](https://github.com/signalfx/splunk-otel-collector-chart/pull/554)) +- Upgrade splunk-otel-collector image to 0.61.0 ([#556](https://github.com/signalfx/splunk-otel-collector-chart/pull/556)) ## [0.59.0] - 2022-09-17 -### Added +### 🚀 New components 🚀 -- A way to provide a custom image for init container patching host log directories (#534, #535) +- A way to provide a custom image for init container patching host log directories ([#534](https://github.com/signalfx/splunk-otel-collector-chart/pull/534),[#535](https://github.com/signalfx/splunk-otel-collector-chart/pull/#535)) -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.59.1 (#536) +- Upgrade splunk-otel-collector image to 0.59.1 ([#536](https://github.com/signalfx/splunk-otel-collector-chart/pull/536)) - [BREAKING CHANGE] Datatype of `filelog.force_flush_period` and `filelog.poll_interval` were changed back from map to string due to upstream changes. See [upgrade guidelines](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0580-0590) ## [0.58.0] - 2022-08-24 -### Changed +### 💡 Enhancements 💡 -- Make Openshift SecurityContextConstraints more restrictive (#513) -- Upgrade splunk-otel-collector image to 0.58.0 (#518) +- Make Openshift SecurityContextConstraints more restrictive ([#513](https://github.com/signalfx/splunk-otel-collector-chart/pull/513)) +- Upgrade splunk-otel-collector image to 0.58.0 ([#518](https://github.com/signalfx/splunk-otel-collector-chart/pull/518)) - [BREAKING CHANGE] Datatype of `filelog.force_flush_period` and `filelog.poll_interval` were changed from string to map due to upstream changes. See [upgrade guidelines](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0571-to-0580) ## [0.57.1] - 2022-08-05 -### Changed +### 💡 Enhancements 💡 -- Do not send clusterReceiver metrics through gateway (#491) +- Do not send clusterReceiver metrics through gateway ([#491](https://github.com/signalfx/splunk-otel-collector-chart/pull/491)) ## [0.57.0] - 2022-08-05 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.57.0 (#504) +- Upgrade splunk-otel-collector image to 0.57.0 ([#504](https://github.com/signalfx/splunk-otel-collector-chart/pull/504)) ## [0.56.0] - 2022-07-27 -### Changed +### 💡 Enhancements 💡 -- Removed unnecessary change of group ownership in chmod initContainer (#486) -- Upgrade splunk-otel-collector image to 0.56.0 (#501) +- Removed unnecessary change of group ownership in chmod initContainer ([#486](https://github.com/signalfx/splunk-otel-collector-chart/pull/486)) +- Upgrade splunk-otel-collector image to 0.56.0 ([#501](https://github.com/signalfx/splunk-otel-collector-chart/pull/501)) ## [0.55.0] - 2022-07-19 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.55.0 (#485) +- Upgrade splunk-otel-collector image to 0.55.0 ([#485](https://github.com/signalfx/splunk-otel-collector-chart/pull/485)) ## [0.54.2] - 2022-07-19 -### Changed +### 💡 Enhancements 💡 -- The receiver.k8sclusterreceiver.reportCpuMetricsAsDouble feature gate has been removed (#487) +- The receiver.k8sclusterreceiver.reportCpuMetricsAsDouble feature gate has been removed ([#487](https://github.com/signalfx/splunk-otel-collector-chart/pull/487)) - If you are using this feature gate, then see the [upgrade guidelines](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0540-to-0550) -- Remove high cardinality fields from k8s events: (#484) +- Remove high cardinality fields from k8s events: ([#484](https://github.com/signalfx/splunk-otel-collector-chart/pull/484)) - k8s.event.start_time - k8s.event.name - k8s.event.uid -### Fixed +### 🧰 Bug fixes 🧰 -- Make sure that logs are enabled to send k8s events (#481) -- Make sure that "sourcetype" field is always set on k8s events (#483) +- Make sure that logs are enabled to send k8s events ([#481](https://github.com/signalfx/splunk-otel-collector-chart/pull/481)) +- Make sure that "sourcetype" field is always set on k8s events ([#483](https://github.com/signalfx/splunk-otel-collector-chart/pull/483)) ## [0.54.1] - 2022-07-01 -### Fixed +### 🧰 Bug fixes 🧰 -- Fix failing cluster receiver with enabled profiling and disabled logs (#480) +- Fix failing cluster receiver with enabled profiling and disabled logs ([#480](https://github.com/signalfx/splunk-otel-collector-chart/pull/480)) ## [0.54.0] - 2022-06-29 -### Changed +### 💡 Enhancements 💡 -- OTel Kubernetes receiver is now used for events collection instead of Signalfx events receiver (#478) -- Upgrade splunk-otel-collector image to 0.54.0 (#479) +- OTel Kubernetes receiver is now used for events collection instead of Signalfx events receiver ([#478](https://github.com/signalfx/splunk-otel-collector-chart/pull/478)) +- Upgrade splunk-otel-collector image to 0.54.0 ([#479](https://github.com/signalfx/splunk-otel-collector-chart/pull/479)) -### Fixed +### 🧰 Bug fixes 🧰 -- Fix recombining of oversized log records generated by CRI-O and containerd engines (#475) +- Fix recombining of oversized log records generated by CRI-O and containerd engines ([#475](https://github.com/signalfx/splunk-otel-collector-chart/pull/475)) ## [0.53.2] - 2022-06-23 -### Fixed +### 🧰 Bug fixes 🧰 -- Fix bug where clusterReceiver splunk_hec exporter is enabled but configured not to send o11y logs (#471) +- Fix bug where clusterReceiver splunk_hec exporter is enabled but configured not to send o11y logs ([#471](https://github.com/signalfx/splunk-otel-collector-chart/pull/471)) ## [0.53.1] - 2022-06-22 -### Added +### 🚀 New components 🚀 -- A recombine operator for OTel logs collection to reconstruct multiline logs on docker engine (#467) +- A recombine operator for OTel logs collection to reconstruct multiline logs on docker engine ([#467](https://github.com/signalfx/splunk-otel-collector-chart/pull/467)) -### Changed +### 💡 Enhancements 💡 -- Scrape /proc/self/mountinfo in agent pods to avoid incorrect stat attempts (#467) -- Upgrade splunk-otel-collector image to 0.53.1 (#468) +- Scrape /proc/self/mountinfo in agent pods to avoid incorrect stat attempts ([#467](https://github.com/signalfx/splunk-otel-collector-chart/pull/467)) +- Upgrade splunk-otel-collector image to 0.53.1 ([#468](https://github.com/signalfx/splunk-otel-collector-chart/pull/468)) ## [0.53.0] - 2022-06-17 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.53.0 (#466) +- Upgrade splunk-otel-collector image to 0.53.0 ([#466](https://github.com/signalfx/splunk-otel-collector-chart/pull/466)) -### Added +### 🚀 New components 🚀 -- Add `splunkPlatform.retryOnFailure` and `splunkPlatform.sendingQueue` config options to values.yaml (#460) +- Add `splunkPlatform.retryOnFailure` and `splunkPlatform.sendingQueue` config options to values.yaml ([#460](https://github.com/signalfx/splunk-otel-collector-chart/pull/460)) ## [0.52.0] - 2022-06-07 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.52.2 (#463) +- Upgrade splunk-otel-collector image to 0.52.2 ([#463](https://github.com/signalfx/splunk-otel-collector-chart/pull/463)) ## [0.51.0] - 2022-05-24 -### Added +### 🚀 New components 🚀 -- Add troubleshooting documentation for incompatible Kubernetes and container runtime issues (#452) +- Add troubleshooting documentation for incompatible Kubernetes and container runtime issues ([#452](https://github.com/signalfx/splunk-otel-collector-chart/pull/452)) -### Fixed +### 🧰 Bug fixes 🧰 -- Fix native OTel logs collection where 0 length logs cause errors after the 0.29.0 opentelemetry-logs-library changes in 0.49.0 (#451) +- Fix native OTel logs collection where 0 length logs cause errors after the 0.29.0 opentelemetry-logs-library changes in 0.49.0 ([#451](https://github.com/signalfx/splunk-otel-collector-chart/pull/451)) -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.51.0 (#453) +- Upgrade splunk-otel-collector image to 0.51.0 ([#453](https://github.com/signalfx/splunk-otel-collector-chart/pull/453)) ## [0.50.0] - 2022-05-03 -### Fixed +### 🧰 Bug fixes 🧰 -- Add gateway support for Host Logs (#437) -- Make sure that logs or profiling data is sent only when it's enabled (#444) -- Fix native OTel logs collection broken after the 0.29.0 opentelemetry-logs-library changes in 0.49.0 release (#448) +- Add gateway support for Host Logs ([#437](https://github.com/signalfx/splunk-otel-collector-chart/pull/437)) +- Make sure that logs or profiling data is sent only when it's enabled ([#444](https://github.com/signalfx/splunk-otel-collector-chart/pull/444)) +- Fix native OTel logs collection broken after the 0.29.0 opentelemetry-logs-library changes in 0.49.0 release ([#448](https://github.com/signalfx/splunk-otel-collector-chart/pull/448)) -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.50.0 (#449) +- Upgrade splunk-otel-collector image to 0.50.0 ([#449](https://github.com/signalfx/splunk-otel-collector-chart/pull/449)) ## [0.49.0] - 2022-04-28 -### Changed +### 💡 Enhancements 💡 -- Migrate filelog operators to follow opentelemetry-log-collection v0.29.0 changes (#436, #441) +- Migrate filelog operators to follow opentelemetry-log-collection v0.29.0 changes ([#436](https://github.com/signalfx/splunk-otel-collector-chart/pull/436),[#441](https://github.com/signalfx/splunk-otel-collector-chart/pull/#441)) - [BREAKING CHANGE] Several breaking changes were made that affect the filelog, syslog, tcplog, and journald receivers. Any use of the extraFileLogs config, logsCollection.containers.extraOperators config, and affected receivers in a custom manner should be reviewed. See [upgrade guidelines](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0480-to-0490) -- The receiver.k8sclusterreceiver.reportCpuMetricsAsDouble feature gate is now enabled by default (#487) +- The receiver.k8sclusterreceiver.reportCpuMetricsAsDouble feature gate is now enabled by default ([#487](https://github.com/signalfx/splunk-otel-collector-chart/pull/487)) - [BREAKING CHANGE] The Splunk Otel Collector has a feature gate to enable a bug fix that makes the k8sclusterreceiver emit a few Kubernetes cpu metrics differently to properly adhere to OpenTelemetry specifications. See [upgrade guidelines](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0480-to-0490) -- Upgrade splunk-otel-collector image to 0.49.0 (#442) +- Upgrade splunk-otel-collector image to 0.49.0 ([#442](https://github.com/signalfx/splunk-otel-collector-chart/pull/442)) ## [0.48.0] - 2022-04-13 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.48.0 (#434) +- Upgrade splunk-otel-collector image to 0.48.0 ([#434](https://github.com/signalfx/splunk-otel-collector-chart/pull/434)) ## [0.47.1] - 2022-03-31 -### Fixed +### 🧰 Bug fixes 🧰 -- Bug where the k8sclusterreceiver emits a few Kubernetes cpu metrics improperly (#419) +- Bug where the k8sclusterreceiver emits a few Kubernetes cpu metrics improperly ([#419](https://github.com/signalfx/splunk-otel-collector-chart/pull/419)) - [BREAKING CHANGE] The Splunk Otel Collector added a feature gate to enable a bug fix that makes the k8sclusterreceiver emit a few Kubernetes cpu metrics differently to properly adhere to OpenTelemetry specifications. @@ -476,146 +471,146 @@ This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk Op ## [0.47.0] - 2022-03-30 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.47.1 (#422) +- Upgrade splunk-otel-collector image to 0.47.1 ([#422](https://github.com/signalfx/splunk-otel-collector-chart/pull/422)) ## [0.46.0] - 2022-03-17 -### Added +### 🚀 New components 🚀 -- Add support for otelcol feature gates to the agent, clusterReceiver, and gateway (#410) +- Add support for otelcol feature gates to the agent, clusterReceiver, and gateway ([#410](https://github.com/signalfx/splunk-otel-collector-chart/pull/410)) -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.46.0 (#413) +- Upgrade splunk-otel-collector image to 0.46.0 ([#413](https://github.com/signalfx/splunk-otel-collector-chart/pull/413)) ## [0.45.0] - 2022-03-10 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.45.0 (#407) +- Upgrade splunk-otel-collector image to 0.45.0 ([#407](https://github.com/signalfx/splunk-otel-collector-chart/pull/407)) - [BREAKING CHANGE] Use newer batch and autoscaling APIs in the Kubernetes - cluster receiver (#433). The Kubernetes cluster receiver will not be able to + cluster receiver ([#433](https://github.com/signalfx/splunk-otel-collector-chart/pull/433)). The Kubernetes cluster receiver will not be able to collect all the metrics it previously did for Kubernetes clusters with versions below 1.21 or Openshift clusters with versions below 4.8. See [upgrade guidelines](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0441-to-0450) -### Fixed +### 🧰 Bug fixes 🧰 -- Bug where Prometheus errors out using default configuration on EKS and GKE (#401, #405) +- Bug where Prometheus errors out using default configuration on EKS and GKE ([#401](https://github.com/signalfx/splunk-otel-collector-chart/pull/401),[#405](https://github.com/signalfx/splunk-otel-collector-chart/pull/#405)) ## [0.44.1] - 2022-03-08 -### Fixed +### 🧰 Bug fixes 🧰 -- Add environment processor to metrics pipeline when sending metrics to Splunk Platform (#399) +- Add environment processor to metrics pipeline when sending metrics to Splunk Platform ([#399](https://github.com/signalfx/splunk-otel-collector-chart/pull/399)) ## [0.44.0] - 2022-03-03 -### Added +### 🚀 New components 🚀 -- Control plane metrics support: etcd (#384) +- Control plane metrics support: etcd ([#384](https://github.com/signalfx/splunk-otel-collector-chart/pull/384)) ## [0.43.5] - 2022-03-02 -### Fixed +### 🧰 Bug fixes 🧰 -- Add missing splunk-otel-collector secret to gateway and cluster receiver deployment (#390) +- Add missing splunk-otel-collector secret to gateway and cluster receiver deployment ([#390](https://github.com/signalfx/splunk-otel-collector-chart/pull/390)) ## [0.43.4] - 2022-02-25 -### Changed +### 💡 Enhancements 💡 -- [BREAKING CHANGE] Set `profilingEnabled` to default false (#388) +- [BREAKING CHANGE] Set `profilingEnabled` to default false ([#388](https://github.com/signalfx/splunk-otel-collector-chart/pull/388)) ## [0.43.3] - 2022-02-24 -### Added +### 🚀 New components 🚀 -- Added support to collect control plane component metrics; controller-manager, coredns, proxy, scheduler (#383) +- Added support to collect control plane component metrics; controller-manager, coredns, proxy, scheduler ([#383](https://github.com/signalfx/splunk-otel-collector-chart/pull/383)) -### Fixed +### 🧰 Bug fixes 🧰 -- Explicitly set match_type parameter in filter processor (#385) -- Truncate eks/fargate cluster receiver StatefulSet names (#386) +- Explicitly set match_type parameter in filter processor ([#385](https://github.com/signalfx/splunk-otel-collector-chart/pull/385)) +- Truncate eks/fargate cluster receiver StatefulSet names ([#386](https://github.com/signalfx/splunk-otel-collector-chart/pull/386)) ## [0.43.2] - 2022-02-02 -### Added +### 🚀 New components 🚀 -- Support of profiling data for Splunk Observability (#376) +- Support of profiling data for Splunk Observability ([#376](https://github.com/signalfx/splunk-otel-collector-chart/pull/376)) -### Changed +### 💡 Enhancements 💡 - [BREAKING CHANGE] OTel Collector Agent now overrides host and cloud attributes - of logs, metrics and traces that are sent through it (#375). See [upgrade + of logs, metrics and traces that are sent through it ([#375](https://github.com/signalfx/splunk-otel-collector-chart/pull/375)). See [upgrade guidelines](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0431-to-0432) ## [0.43.1] - 2022-02-01 -### Added +### 🚀 New components 🚀 -- `eks/fargate` distribution (#346) +- `eks/fargate` distribution ([#346](https://github.com/signalfx/splunk-otel-collector-chart/pull/346)) ## [0.43.0] - 2022-01-27 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.43.0 (#370) +- Upgrade splunk-otel-collector image to 0.43.0 ([#370](https://github.com/signalfx/splunk-otel-collector-chart/pull/370)) ## [0.42.0] - 2022-01-25 -### Added +### 🚀 New components 🚀 -- Journald logs collection (#290) +- Journald logs collection ([#290](https://github.com/signalfx/splunk-otel-collector-chart/pull/290)) - Automatic discovery and metrics collection from the Kubernetes API server - control plane component (#355) -- Native OTel logs collection from the Windows worker nodes (#361) -- Option to disable helm hook for custom secret validation (#350) + control plane component ([#355](https://github.com/signalfx/splunk-otel-collector-chart/pull/355)) +- Native OTel logs collection from the Windows worker nodes ([#361](https://github.com/signalfx/splunk-otel-collector-chart/pull/361)) +- Option to disable helm hook for custom secret validation ([#350](https://github.com/signalfx/splunk-otel-collector-chart/pull/350)) -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.42.0 (#367) +- Upgrade splunk-otel-collector image to 0.42.0 ([#367](https://github.com/signalfx/splunk-otel-collector-chart/pull/367)) -### Fixed +### 🧰 Bug fixes 🧰 -- Double expansion issue splunk-otel-collector (#357). See [upgrade -guideline](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0410-to-0420) -- Schema validation for `image.imagePullSecrets` configuration option (#356) +- Double expansion issue splunk-otel-collector ([#357](https://github.com/signalfx/splunk-otel-collector-chart/pull/357)). See [upgrade + guideline](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0410-to-0420) +- Schema validation for `image.imagePullSecrets` configuration option ([#356](https://github.com/signalfx/splunk-otel-collector-chart/pull/356)) - Schema validation for `logsCollection.containers.extraOperators` configuration - option (#356) + option ([#356](https://github.com/signalfx/splunk-otel-collector-chart/pull/356)) ### Removed -- Temporary helper initContainer for OTel checkpointing log path move (#358) +- Temporary helper initContainer for OTel checkpointing log path move ([#358](https://github.com/signalfx/splunk-otel-collector-chart/pull/358)) ## [0.41.0] - 2021-12-13 -### Added +### 🚀 New components 🚀 -- Google Kubernetes Engine Autopilot support (#338) +- Google Kubernetes Engine Autopilot support ([#338](https://github.com/signalfx/splunk-otel-collector-chart/pull/338)) -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.41.0 (#340) +- Upgrade splunk-otel-collector image to 0.41.0 ([#340](https://github.com/signalfx/splunk-otel-collector-chart/pull/340)) ## [0.40.0] - 2021-12-08 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.40.0 (#334) +- Upgrade splunk-otel-collector image to 0.40.0 ([#334](https://github.com/signalfx/splunk-otel-collector-chart/pull/334)) ## [0.39.0] - 2021-11-30 [Upgrade guidelines](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0380-to-0390) -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.39.0 (#322) +- Upgrade splunk-otel-collector image to 0.39.0 ([#322](https://github.com/signalfx/splunk-otel-collector-chart/pull/322)) - [BREAKING CHANGE] Logs collection is now disabled by default for Splunk - Observability destination (#325) + Observability destination ([#325](https://github.com/signalfx/splunk-otel-collector-chart/pull/325)) ## [0.38.0] - 2021-11-19 @@ -633,365 +628,365 @@ users](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/docs/mi [Upgrade guidelines for existing Splunk OpenTelemetry Collector for Kubernetes users](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0371-to-0380) -### Added +### 🚀 New components 🚀 -- Field name compatibility for SCK (#258) -- Add initContainer for file operations for running as non root user (#263) -- Helm hook for custom secret validation (#294) -- Add include logs functionality based on pod annotations (#260) -- Support for tailing custom host files (#300) +- Field name compatibility for SCK ([#258](https://github.com/signalfx/splunk-otel-collector-chart/pull/258)) +- Add initContainer for file operations for running as non root user ([#263](https://github.com/signalfx/splunk-otel-collector-chart/pull/263)) +- Helm hook for custom secret validation ([#294](https://github.com/signalfx/splunk-otel-collector-chart/pull/294)) +- Add include logs functionality based on pod annotations ([#260](https://github.com/signalfx/splunk-otel-collector-chart/pull/260)) +- Support for tailing custom host files ([#300](https://github.com/signalfx/splunk-otel-collector-chart/pull/300)) -### Changed +### 💡 Enhancements 💡 -- Extract `container.image.tag` attribute from `container.image.name` (#285) -- Upgrade splunk-otel-collector image to 0.38.1 (#284) -- Upgrade fluentd-hec image to 1.2.8 (#281) -- Change secret names according to the GDI specification (#295) -- Make `clusterName` configuration parameter generally required (#296) -- Changed the default checkpoint path to `/var/addon/splunk/otel_pos` (#292) +- Extract `container.image.tag` attribute from `container.image.name` ([#285](https://github.com/signalfx/splunk-otel-collector-chart/pull/285)) +- Upgrade splunk-otel-collector image to 0.38.1 ([#284](https://github.com/signalfx/splunk-otel-collector-chart/pull/284)) +- Upgrade fluentd-hec image to 1.2.8 ([#281](https://github.com/signalfx/splunk-otel-collector-chart/pull/281)) +- Change secret names according to the GDI specification ([#295](https://github.com/signalfx/splunk-otel-collector-chart/pull/295)) +- Make `clusterName` configuration parameter generally required ([#296](https://github.com/signalfx/splunk-otel-collector-chart/pull/296)) +- Changed the default checkpoint path to `/var/addon/splunk/otel_pos` ([#292](https://github.com/signalfx/splunk-otel-collector-chart/pull/292)) - Rename "provider" and "distro" parameters to "cloudProvider" and - "distribution" (#297) -- Changed SplunkPlatform properties to match helm best practices. (#306) -- Rename parameter groups for Splunk OTel Collector components (#301): + "distribution" ([#297](https://github.com/signalfx/splunk-otel-collector-chart/pull/297)) +- Changed SplunkPlatform properties to match helm best practices. ([#306](https://github.com/signalfx/splunk-otel-collector-chart/pull/306)) +- Rename parameter groups for Splunk OTel Collector components ([#301](https://github.com/signalfx/splunk-otel-collector-chart/pull/301)): - `otelAgent` -> `agent` - `otelCollector` -> `gateway` - `otelK8sClusterReceiver` -> `clusterReceiver` -- Rename `stream` log attribute to `log.iostream` (#311) +- Rename `stream` log attribute to `log.iostream` ([#311](https://github.com/signalfx/splunk-otel-collector-chart/pull/311)) - Improve configuration for fetching attributes from annotations and labels of - pods and namespaces (#273) + pods and namespaces ([#273](https://github.com/signalfx/splunk-otel-collector-chart/pull/273)) - Use `main` as default index and disable metrics by default for Splunk - Platform (#305) + Platform ([#305](https://github.com/signalfx/splunk-otel-collector-chart/pull/305)) -### Fixed +### 🧰 Bug fixes 🧰 -- Splunk Platform client certificates (#286) -- `logsCollection.containers.excludePaths` config parameter (#312) -- Splunk Platform sourcetype precedence order (#276) +- Splunk Platform client certificates ([#286](https://github.com/signalfx/splunk-otel-collector-chart/pull/286)) +- `logsCollection.containers.excludePaths` config parameter ([#312](https://github.com/signalfx/splunk-otel-collector-chart/pull/312)) +- Splunk Platform sourcetype precedence order ([#276](https://github.com/signalfx/splunk-otel-collector-chart/pull/276)) ### Removed -- Busybox image dependency (#275) -- `extraArgs` config parameter (#313) +- Busybox image dependency ([#275](https://github.com/signalfx/splunk-otel-collector-chart/pull/275)) +- `extraArgs` config parameter ([#313](https://github.com/signalfx/splunk-otel-collector-chart/pull/313)) ## [0.37.1] - 2021-11-01 -### Added +### 🚀 New components 🚀 -- Add initContainer for log checkpoint migration from Fluentd to Otel agent (#253) -- Add index routing for Splunk Enterprise/Cloud customers (#256) +- Add initContainer for log checkpoint migration from Fluentd to Otel agent ([#253](https://github.com/signalfx/splunk-otel-collector-chart/pull/253)) +- Add index routing for Splunk Enterprise/Cloud customers ([#256](https://github.com/signalfx/splunk-otel-collector-chart/pull/256)) -### Fixed +### 🧰 Bug fixes 🧰 -- Fix metrics/logs disabling for Splunk Platform destination (#259) +- Fix metrics/logs disabling for Splunk Platform destination ([#259](https://github.com/signalfx/splunk-otel-collector-chart/pull/259)) - Fix kubernetes events in Observability IMM by adding `kubernetes_cluster` - attribute (#261) + attribute ([#261](https://github.com/signalfx/splunk-otel-collector-chart/pull/261)) ## [0.37.0] - 2021-10-26 [Upgrade guidelines](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0362-to-0370) -### Added +### 🚀 New components 🚀 -- Add recommended Kubernetes labels (#217) -- Add an option to skip RBAC resources creation (#231) +- Add recommended Kubernetes labels ([#217](https://github.com/signalfx/splunk-otel-collector-chart/pull/217)) +- Add an option to skip RBAC resources creation ([#231](https://github.com/signalfx/splunk-otel-collector-chart/pull/231)) - Enable container metadata. This gives all collected logs new attributes: `container.image.name` and `container.image.tag`. Also the native OTel logs collection gets `container.id` attribute that allows container level correlation in Splunk Observability Cloud closing a feature parity gap with - fluentd (#238) -- Add strict values.yaml schema validation (#227, #234, #239) + fluentd ([#238](https://github.com/signalfx/splunk-otel-collector-chart/pull/238)) +- Add strict values.yaml schema validation ([#227](https://github.com/signalfx/splunk-otel-collector-chart/pull/227),[#234](https://github.com/signalfx/splunk-otel-collector-chart/pull/#234),[#239](https://github.com/signalfx/splunk-otel-collector-chart/pull/#239)) -### Changed +### 💡 Enhancements 💡 - BREAKING CHANGE: Reorder resource detectors, moving the `system` detector to the end of the list. Applying this change in an EC2 or Azure environment may change the `host.name` dimension and the resource ID dimension on some MTSes, possibly causing detectors to fire. -- BREAKING CHANGE: Reduce scope of host mounted volumes on linux systems (#232) -- Change `run_id` log resource attribute to `k8s.container.restart_count` (#226) +- BREAKING CHANGE: Reduce scope of host mounted volumes on linux systems ([#232](https://github.com/signalfx/splunk-otel-collector-chart/pull/232)) +- Change `run_id` log resource attribute to `k8s.container.restart_count` ([#226](https://github.com/signalfx/splunk-otel-collector-chart/pull/226)) - Use only `splunkPlatform.endpoint` and `splunkObservability.realm` parameters to identify which destination is enabled, remove default value for - `splunkObservability.realm` (#230, #233) -- Upgrade splunk-otel-collector image to 0.37.1 (#237, #249) -- Simplify configuration for switching to native OTel logs collection (#246) + `splunkObservability.realm` ([#230](https://github.com/signalfx/splunk-otel-collector-chart/pull/230),[#233](https://github.com/signalfx/splunk-otel-collector-chart/pull/#233)) +- Upgrade splunk-otel-collector image to 0.37.1 ([#237](https://github.com/signalfx/splunk-otel-collector-chart/pull/237),[#249](https://github.com/signalfx/splunk-otel-collector-chart/pull/#249)) +- Simplify configuration for switching to native OTel logs collection ([#246](https://github.com/signalfx/splunk-otel-collector-chart/pull/246)) -### Fixed +### 🧰 Bug fixes 🧰 -- Fix setting of SPLUNK_MEMORY_TOTAL_MIB env var in otelAgent daemonset (#240) -- Enable OTLP HTTP ports (4318 and 55681) in otelAgent daemonset (#243) +- Fix setting of SPLUNK_MEMORY_TOTAL_MIB env var in otelAgent daemonset ([#240](https://github.com/signalfx/splunk-otel-collector-chart/pull/240)) +- Enable OTLP HTTP ports (4318 and 55681) in otelAgent daemonset ([#243](https://github.com/signalfx/splunk-otel-collector-chart/pull/243)) ## [0.36.2] - 2021-10-08 -### Fixed +### 🧰 Bug fixes 🧰 - Exclude redundant `groupbyattrs/logs` processor from native logs collection - pipeline (#219) -- Fix deprecation messages for old `Enabled` parameters (#220) + pipeline ([#219](https://github.com/signalfx/splunk-otel-collector-chart/pull/219)) +- Fix deprecation messages for old `Enabled` parameters ([#220](https://github.com/signalfx/splunk-otel-collector-chart/pull/220)) ## [0.36.1] - 2021-10-07 -### Fixed +### 🧰 Bug fixes 🧰 -- Fix backward compatibility for `splunkRealm` parameter (#218) +- Fix backward compatibility for `splunkRealm` parameter ([#218](https://github.com/signalfx/splunk-otel-collector-chart/pull/218)) ## [0.36.0] - 2021-10-06 -### Added +### 🚀 New components 🚀 -- Support k8s clusters with Windows nodes (#190) +- Support k8s clusters with Windows nodes ([#190](https://github.com/signalfx/splunk-otel-collector-chart/pull/190)) -### Changed +### 💡 Enhancements 💡 - Change configuration interface to be able to send data to Splunk - Enterprise/Cloud and to Splunk Observability (#209) -- Improve multiline logs configuration for native logs collection (#208) + Enterprise/Cloud and to Splunk Observability ([#209](https://github.com/signalfx/splunk-otel-collector-chart/pull/209)) +- Improve multiline logs configuration for native logs collection ([#208](https://github.com/signalfx/splunk-otel-collector-chart/pull/208)) ## [0.35.3] - 2021-09-29 -### Added +### 🚀 New components 🚀 -- Add an option to provide additional custom RBAC rules (#206) +- Add an option to provide additional custom RBAC rules ([#206](https://github.com/signalfx/splunk-otel-collector-chart/pull/206)) ## [0.35.2] - 2021-09-28 -### Added +### 🚀 New components 🚀 -- Send k8s events additionally to Splunk HEC endpoint (#202) +- Send k8s events additionally to Splunk HEC endpoint ([#202](https://github.com/signalfx/splunk-otel-collector-chart/pull/202)) ## [0.35.1] - 2021-09-23 -### Added +### 🚀 New components 🚀 -- Add support for OpenShift distribution (#196) -- Add native OTel logs collection as an option (#197) +- Add support for OpenShift distribution ([#196](https://github.com/signalfx/splunk-otel-collector-chart/pull/196)) +- Add native OTel logs collection as an option ([#197](https://github.com/signalfx/splunk-otel-collector-chart/pull/197)) ### Removed -- Remove PodSecurityPolicy installation option (#195) +- Remove PodSecurityPolicy installation option ([#195](https://github.com/signalfx/splunk-otel-collector-chart/pull/195)) ## [0.35.0] - 2021-09-17 -### Added +### 🚀 New components 🚀 -- Add an option to collect k8s events with smartagent/kubernetes-events receiver (#187) +- Add an option to collect k8s events with smartagent/kubernetes-events receiver ([#187](https://github.com/signalfx/splunk-otel-collector-chart/pull/187)) -### Changed +### 💡 Enhancements 💡 -- Move k8s metadata enrichment from fluentd to otel-collector (#192) +- Move k8s metadata enrichment from fluentd to otel-collector ([#192](https://github.com/signalfx/splunk-otel-collector-chart/pull/192)) ## [0.31.0] - 2021-08-10 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.31.0 (#183) -- Set more frequent checks for memory_limiter (#178) -- Make Fluentd init container image variable (#182) +- Upgrade splunk-otel-collector image to 0.31.0 ([#183](https://github.com/signalfx/splunk-otel-collector-chart/pull/183)) +- Set more frequent checks for memory_limiter ([#178](https://github.com/signalfx/splunk-otel-collector-chart/pull/178)) +- Make Fluentd init container image variable ([#182](https://github.com/signalfx/splunk-otel-collector-chart/pull/182)) -### Fixed +### 🧰 Bug fixes 🧰 - All missing attributes are added to prometheus metrics reported - by gateway and k8s-cluster-receiver collector deployments (#170) -- Fix pod affinity setting (#181) + by gateway and k8s-cluster-receiver collector deployments ([#170](https://github.com/signalfx/splunk-otel-collector-chart/pull/170)) +- Fix pod affinity setting ([#181](https://github.com/signalfx/splunk-otel-collector-chart/pull/181)) ## [0.29.1] - 2021-07-09 -### Fixed +### 🧰 Bug fixes 🧰 -- Fix generation of service.name log attribute in istio environment (#176) +- Fix generation of service.name log attribute in istio environment ([#176](https://github.com/signalfx/splunk-otel-collector-chart/pull/176)) ## [0.29.0] - 2021-07-08 -### Changed +### 💡 Enhancements 💡 -- Change internal metrics port from 8888 to 8889 (#172) -- Upgrade splunk-otel-collector image version to 0.29.0 (#174) +- Change internal metrics port from 8888 to 8889 ([#172](https://github.com/signalfx/splunk-otel-collector-chart/pull/172)) +- Upgrade splunk-otel-collector image version to 0.29.0 ([#174](https://github.com/signalfx/splunk-otel-collector-chart/pull/174)) ## [0.28.2] - 2021-07-07 -### Added +### 🚀 New components 🚀 -- Add Istio specific configurations (#171) -- Enable OTLP receiver in logs pipeline (#167) +- Add Istio specific configurations ([#171](https://github.com/signalfx/splunk-otel-collector-chart/pull/171)) +- Enable OTLP receiver in logs pipeline ([#167](https://github.com/signalfx/splunk-otel-collector-chart/pull/167)) ### Removed -- BREAKING: Remove SAPM receiver from default config (#168) +- BREAKING: Remove SAPM receiver from default config ([#168](https://github.com/signalfx/splunk-otel-collector-chart/pull/168)) ## [0.28.1] - 2021-06-18 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.28.1 (#166) +- Upgrade splunk-otel-collector image to 0.28.1 ([#166](https://github.com/signalfx/splunk-otel-collector-chart/pull/166)) ## [0.28.0] - 2021-06-16 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector image to 0.28.0 (#164) +- Upgrade splunk-otel-collector image to 0.28.0 ([#164](https://github.com/signalfx/splunk-otel-collector-chart/pull/164)) ## [0.27.0] - 2021-06-15 -### Changed +### 💡 Enhancements 💡 -- BREAKING CHANGE: Auto-detection of prometheus metrics is disabled by default (#163). See +- BREAKING CHANGE: Auto-detection of prometheus metrics is disabled by default ([#163](https://github.com/signalfx/splunk-otel-collector-chart/pull/163)). See [Upgrade guideline](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#0264-to-0270) ## [0.26.4] - 2021-06-09 -### Fixed +### 🧰 Bug fixes 🧰 -- Fix container runtime detection when metrics pipeline disabled (#161) +- Fix container runtime detection when metrics pipeline disabled ([#161](https://github.com/signalfx/splunk-otel-collector-chart/pull/161)) ## [0.26.3] - 2021-06-08 -- Add an option to add extra labels to pods (#158) -- Add an option to add extra annotations to deployments, daemonset, pods and service account (#158) -- Add an option to mount extra volumes to gateway-mode and k8s cluster receiver collectors (#157) +- Add an option to add extra labels to pods ([#158](https://github.com/signalfx/splunk-otel-collector-chart/pull/158)) +- Add an option to add extra annotations to deployments, daemonset, pods and service account ([#158](https://github.com/signalfx/splunk-otel-collector-chart/pull/158)) +- Add an option to mount extra volumes to gateway-mode and k8s cluster receiver collectors ([#157](https://github.com/signalfx/splunk-otel-collector-chart/pull/157)) ## [0.26.2] - 2021-05-28 -### Changed +### 💡 Enhancements 💡 - Automatically detect container runtime using initContainers and apply relevant parsing config instead of asking user to specify criTimeFormat. This is an important change to enable smooth transition from deprecated docker - to containerd runtime (#154) + to containerd runtime ([#154](https://github.com/signalfx/splunk-otel-collector-chart/pull/154)) ## [0.26.1] - 2021-05-25 -### Added +### 🚀 New components 🚀 -- Add an option to mount extra volumes using `otelAgent.extraVolumes` and `otelAgent.extraVolumeMounts` (#151) +- Add an option to mount extra volumes using `otelAgent.extraVolumes` and `otelAgent.extraVolumeMounts` ([#151](https://github.com/signalfx/splunk-otel-collector-chart/pull/151)) ## [0.26.0] - 2021-05-21 -### Added +### 🚀 New components 🚀 -- Add signalfx metrics receiver to the agent (#136) +- Add signalfx metrics receiver to the agent ([#136](https://github.com/signalfx/splunk-otel-collector-chart/pull/136)) -### Changed +### 💡 Enhancements 💡 -- fluentd logs are now sent through the collector instead of being sent directly to the backend (#109) -- Logs are sent through the OpenTelemetry Agent on the local node by default. `otelAgent.enabled` value must be set to `true` when using logs (#127) +- fluentd logs are now sent through the collector instead of being sent directly to the backend ([#109](https://github.com/signalfx/splunk-otel-collector-chart/pull/109)) +- Logs are sent through the OpenTelemetry Agent on the local node by default. `otelAgent.enabled` value must be set to `true` when using logs ([#127](https://github.com/signalfx/splunk-otel-collector-chart/pull/127)) - `otelAgent.ports` and `otelCollector.ports` are selectively enabled depending on what telemetry types are enabled with `metricsEnabled`, `tracesEnabled`, and `logsEnabled` - Removed setting `host.name` through the `resource` processor as it is already set by the `resourcedetection/system` processor - Upgraded to Splunk OpenTelemetry Collector 0.26.0 - Kubernetes cluster metrics now have a dimension `receiver:k8scluster` to ensure that - MTS do not conflict with Kubernetes metrics sent by Smart Agent for the same cluster. (#134) + MTS do not conflict with Kubernetes metrics sent by Smart Agent for the same cluster. ([#134](https://github.com/signalfx/splunk-otel-collector-chart/pull/134)) ### Removed -- Removed `ingestHost`, `ingestPort`, `ingestProtocol`, use `ingestUrl` instead (#123) -- Removed `logsBackend`, configure `splunk_hec` exporter directly (#123) -- Removed `splunk.com/index` annotation for logs (#123) -- Removed `fluentd.config.indexFields` as all fields sent are indexed (#123) -- Removed `fluentforward` receiver from gateway (#127) -- Removed `service.ports`, sourced from `otelCollector.ports` instead (#140) +- Removed `ingestHost`, `ingestPort`, `ingestProtocol`, use `ingestUrl` instead ([#123](https://github.com/signalfx/splunk-otel-collector-chart/pull/123)) +- Removed `logsBackend`, configure `splunk_hec` exporter directly ([#123](https://github.com/signalfx/splunk-otel-collector-chart/pull/123)) +- Removed `splunk.com/index` annotation for logs ([#123](https://github.com/signalfx/splunk-otel-collector-chart/pull/123)) +- Removed `fluentd.config.indexFields` as all fields sent are indexed ([#123](https://github.com/signalfx/splunk-otel-collector-chart/pull/123)) +- Removed `fluentforward` receiver from gateway ([#127](https://github.com/signalfx/splunk-otel-collector-chart/pull/127)) +- Removed `service.ports`, sourced from `otelCollector.ports` instead ([#140](https://github.com/signalfx/splunk-otel-collector-chart/pull/140)) ## [0.25.0] - 2021-05-07 -### Changed +### 💡 Enhancements 💡 -- Upgrade splunk-otel-collector docker image to 0.25.0 (#131) +- Upgrade splunk-otel-collector docker image to 0.25.0 ([#131](https://github.com/signalfx/splunk-otel-collector-chart/pull/131)) -### Added +### 🚀 New components 🚀 - Pre-rendered manifests can be found in [rendered](rendered) directory ## [0.24.13] - 2021-05-04 -### Changed +### 💡 Enhancements 💡 - Remove internal fluentd metrics sent as logs with monitor_agent. Prometheus - metrics exposed on 0.0.0.0:24231 should be used instead (#122) + metrics exposed on 0.0.0.0:24231 should be used instead ([#122](https://github.com/signalfx/splunk-otel-collector-chart/pull/122)) ## [0.24.12] - 2021-05-03 -### Fixed +### 🧰 Bug fixes 🧰 -- Fix logs collection configuration for CRI-O / containerd runtimes (#120) +- Fix logs collection configuration for CRI-O / containerd runtimes ([#120](https://github.com/signalfx/splunk-otel-collector-chart/pull/120)) ## [0.24.11] - 2021-04-29 -### Changed +### 💡 Enhancements 💡 -- Change the way to configure "concat" filter for container logs (#117) +- Change the way to configure "concat" filter for container logs ([#117](https://github.com/signalfx/splunk-otel-collector-chart/pull/117)) ## [0.24.10] - 2021-04-21 -### Changed +### 💡 Enhancements 💡 -- Disable fluentd metrics collection by default (#108) +- Disable fluentd metrics collection by default ([#108](https://github.com/signalfx/splunk-otel-collector-chart/pull/108)) ## [0.24.9] - 2021-04-18 -### Changed +### 💡 Enhancements 💡 -- Change OTLP port from deprecated 55680 to default 4317 (#103) +- Change OTLP port from deprecated 55680 to default 4317 ([#103](https://github.com/signalfx/splunk-otel-collector-chart/pull/103)) -### Fixed +### 🧰 Bug fixes 🧰 -- Open port for signalfx-forwarder on the agent (#106) +- Open port for signalfx-forwarder on the agent ([#106](https://github.com/signalfx/splunk-otel-collector-chart/pull/106)) ## [0.24.8] - 2021-04-16 -### Fixed +### 🧰 Bug fixes 🧰 -- Fix traces enrichment with k8s metadata (#102) +- Fix traces enrichment with k8s metadata ([#102](https://github.com/signalfx/splunk-otel-collector-chart/pull/102)) ## [0.24.7] - 2021-04-15 -### Changed +### 💡 Enhancements 💡 -- Switch to stable Splunk OTel Collector image 0.24.3 (#100) +- Switch to stable Splunk OTel Collector image 0.24.3 ([#100](https://github.com/signalfx/splunk-otel-collector-chart/pull/100)) ## [0.24.6] - 2021-04-15 -### Added +### 🚀 New components 🚀 -- Enable smartagent/signalfx-forwarder in the default agent trace pipeline (#98) +- Enable smartagent/signalfx-forwarder in the default agent trace pipeline ([#98](https://github.com/signalfx/splunk-otel-collector-chart/pull/98)) ## [0.24.5] - 2021-04-13 -### Added +### 🚀 New components 🚀 -- Enable batch processor in the default metrics pipelines (#90) +- Enable batch processor in the default metrics pipelines ([#90](https://github.com/signalfx/splunk-otel-collector-chart/pull/90)) -### Changed +### 💡 Enhancements 💡 - Ensure all metrics and traces are routed through the gateway deployment if - it's enabled (#96) + it's enabled ([#96](https://github.com/signalfx/splunk-otel-collector-chart/pull/96)) ## [0.24.4] - 2021-04-12 -### Added +### 🚀 New components 🚀 -- Add an option to set extra environment variables (#91) +- Add an option to set extra environment variables ([#91](https://github.com/signalfx/splunk-otel-collector-chart/pull/91)) ## [0.24.3] - 2021-04-12 -### Fixed +### 🧰 Bug fixes 🧰 -- Fix resource attribute in the default traces pipeline (#88) -- Add metric_source:kubernetes for all k8s cluster metrics (#89) -- Fix host.name attribute in logs (#87) +- Fix resource attribute in the default traces pipeline ([#88](https://github.com/signalfx/splunk-otel-collector-chart/pull/88)) +- Add metric_source:kubernetes for all k8s cluster metrics ([#89](https://github.com/signalfx/splunk-otel-collector-chart/pull/89)) +- Fix host.name attribute in logs ([#87](https://github.com/signalfx/splunk-otel-collector-chart/pull/87)) ## [0.24.2] - 2021-04-07 -### Added +### 🚀 New components 🚀 -- Add host.name attribute to logs (#86) +- Add host.name attribute to logs ([#86](https://github.com/signalfx/splunk-otel-collector-chart/pull/86)) ## [0.24.1] - 2021-04-07 -### Changed +### 💡 Enhancements 💡 -- Remove deprecated opencensus receiver (#85) +- Remove deprecated opencensus receiver ([#85](https://github.com/signalfx/splunk-otel-collector-chart/pull/85)) ## [0.24.0] - 2021-04-07 -### Changed +### 💡 Enhancements 💡 -- Upgrade image to 0.24.0 version (#84) -- Add system detector to default metrics and traces pipelines (#84) +- Upgrade image to 0.24.0 version ([#84](https://github.com/signalfx/splunk-otel-collector-chart/pull/84)) +- Add system detector to default metrics and traces pipelines ([#84](https://github.com/signalfx/splunk-otel-collector-chart/pull/84)) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 18d8db2301..4e8fe18894 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -61,16 +61,45 @@ To send us a pull request, please: reformat all the code, it will be hard for us to focus on your change. 3. Please follow the versioning instructions found in the [RELEASE.md](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/RELEASE.md). 4. Ensure local tests pass and add new tests related to the contribution. -5. Commit to your fork using clear commit messages. -6. Send us a pull request, answering any default questions in the pull request +5. Add a CHANGELOG.md entry (make chlog-new) if the behavior of this chart is altered, see [Changelog Guidelines](https://signalfx/splunk-otel-collector-chart/blob/main/CONTRIBUTING.md#changelog-guidelines). +6. Render example documentation (make render) if chart templates are updated. +7. Commit to your fork using clear commit messages. +8. Send us a pull request, answering any default questions in the pull request interface. -7. Pay attention to any automated CI failures reported in the pull request, and +9. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation. GitHub provides additional documentation on [forking a repository](https://help.github.com/articles/fork-a-repo/) and [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). +## Changelog Guidelines + +### When to Add an Entry + +Include a changelog entry for pull requests affecting: + +1. Collector configuration or behavior +2. Telemetry data output + +**Exceptions:** + +- Documentation-only changes +- Minor, non-impactful updates (e.g., code cleanup) + +### Adding an Entry + +**Quick Guide:** + +1. **Create File:** Run `make chlog-new` to generate a `.yaml` in `./.chloggen`. +2. **Edit File:** Update the `.yaml` with relevant info. +3. **Validate:** Use `make chlog-validate` to check format. +4. **Commit:** Add the `.yaml` to your pull request. + +**Manual Option:** + +- Copy `./.chloggen/TEMPLATE.yaml` or create a unique `.yaml` file. + ## Finding contributions to work on Looking at the existing issues is a great way to find something to contribute diff --git a/Makefile b/Makefile index c214b81408..637c9cb2ab 100644 --- a/Makefile +++ b/Makefile @@ -1,25 +1,97 @@ -.PHONY: render -render: repo-update dep-build - bash ./examples/render-examples.sh +##@ General +# The general settings and variables for the project +SHELL := /bin/bash + +# TODO: Move CHART_FILE_PATH and VALUES_FILE_PATH here, currently set in multiple places +# The version of the splunk-otel-collector chart +VERSION := $(shell grep "^version:" helm-charts/splunk-otel-collector/Chart.yaml | awk '{print $$2}') + +## Location for GO resources +ifeq (,$(shell go env GOBIN)) +GOBIN=$(shell go env GOPATH)/bin +else +GOBIN=$(shell go env GOBIN) +endif + +## Location to install dependencies to +LOCALBIN ?= $(shell pwd)/bin +$(LOCALBIN): + mkdir -p $(LOCALBIN) +CHLOGGEN ?= $(LOCALBIN)/chloggen + +# The help target as provided +.PHONY: help +help: ## Display Makefile help information for all actions + @awk 'BEGIN {FS = ":.*##"; \ + printf "\nUsage:\n make \033[36m\033[0m\n"} \ + /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } \ + /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) }' \ + $(MAKEFILE_LIST) + +##@ Initialization +# Tasks for setting up the project environment + +.PHONY: install-tools +install-tools: ## Install tools (macOS/Linux) + LOCALBIN=$(LOCALBIN) GOBIN=$(LOCALBIN) ci_scripts/install-tools.sh || exit 1 + +##@ Build +# Tasks related to building the Helm chart .PHONY: repo-update -repo-update: +repo-update: ## Update Helm repositories to latest @{ \ if ! (helm repo list | grep -q open-telemetry) ; then \ - helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts ;\ + helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts || exit 1; \ fi ;\ if ! (helm repo list | grep -q jetstack) ; then \ - helm repo add jetstack https://charts.jetstack.io ;\ + helm repo add jetstack https://charts.jetstack.io || exit 1; \ fi ;\ - helm repo update open-telemetry jetstack ;\ + helm repo update open-telemetry jetstack || exit 1; \ } .PHONY: dep-build -dep-build: +dep-build: ## Build the Helm chart with latest dependencies from the current Helm repositories @{ \ - OK=true ;\ - DIR=helm-charts/splunk-otel-collector ;\ - if ! helm dependencies list $$DIR | grep open-telemetry | grep -q ok ; then OK=false ; fi ;\ - if ! helm dependencies list $$DIR | grep jetstack | grep -q ok ; then OK=false ; fi ;\ - if ! $$OK ; then helm dependencies build $$DIR ; fi ;\ + DEP_OK=true ;\ + DIR=helm-charts/splunk-otel-collector ;\ + if ! helm dependencies list $$DIR | grep open-telemetry | grep -q ok ; then DEP_OK=false ; fi ;\ + if ! helm dependencies list $$DIR | grep jetstack | grep -q ok ; then DEP_OK=false ; fi ;\ + if [ "$$DEP_OK" = "false" ] ; then helm dependencies build $$DIR || exit 1; fi ;\ } + +.PHONY: render +render: repo-update dep-build ## Render the Helm chart with the examples as input + examples/render-examples.sh || exit 1 + +##@ Changelog +# Tasks related to changelog management + +.PHONY: chlog-available +chlog-available: ## Validate the chloggen tool is available + @if [ -z "$(CHLOGGEN)" ]; then \ + echo "Error: chloggen is not available. Please run 'make install-tools' to install it."; \ + exit 1; \ + fi + +# Example Usage: +# make chlog-new CHANGE_TYPE=enhancement COMPONENT=agent NOTE="Add X" ISSUES='[42]' +# make chlog-new [CHANGE_TYPE=enhancement] [COMPONENT=agent] [NOTE="Add X"] [ISSUES='[42]'] [FILENAME=add-x] [SUBTEXT="Add Y"] +.PHONY: chlog-new +chlog-new: chlog-available ## Creates or updates a YAML file under .chloggen + ci_scripts/chloggen-new.sh || exit 1 + +.PHONY: chlog-validate +chlog-validate: chlog-available ## Validates changelog requirements for pull requests + $(CHLOGGEN) validate || exit 1 + ci_scripts/chloggen-pr-validate.sh || exit 1 + +.PHONY: chlog-preview +chlog-preview: chlog-validate ## Provide a preview of the generated CHANGELOG.md file for a release + $(CHLOGGEN) update --dry || exit 1 + +# Example Usage: make chlog-update +.PHONY: chlog-update +chlog-update: chlog-validate ## Creates an update to CHANGELOG.md for a release entry from content in .chloggen + $(CHLOGGEN) update --version "[$(VERSION)] - $$(date +'%Y-%m-%d')" || exit 1; \ + ci_scripts/chloggen-update.sh || exit 1 diff --git a/RELEASE.md b/RELEASE.md index 556fde1be1..28a80dccd4 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -16,6 +16,7 @@ of `version` field. To make a new release of the helm chart: 1. Bump the chart `version` in [Chart.yaml](helm-charts/splunk-otel-collector/Chart.yaml) 1. Run `make render` to update Helm dependencies and render all the examples with the latest changes. +1. Run `make chlog-update` to update CHANGELOG.md for the release. 1. Create PR and request review from the team. 1. When the PR gets merged, the release will automatically be made and the helm repo updated. 1. Release notes are not populated automatically. So make sure to update them manually using the notes from [CHANGELOG](./CHANGELOG.md). diff --git a/ci_scripts/chloggen-new.sh b/ci_scripts/chloggen-new.sh new file mode 100755 index 0000000000..bf0be1bd3e --- /dev/null +++ b/ci_scripts/chloggen-new.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# Purpose: Automates the creation or update of changelog entries based on input parameters. +# Notes: +# - Should be executed via the `make chlog-new` command. +# - Facilitates the automation of changelog entry creation. +# - Intended to be used with the `make chlog-new` command. +# +# Optional Parameters: +# - CHANGE_TYPE: Type of change (e.g., 'enhancement', 'bug_fix') +# - COMPONENT: Component affected by the change (e.g., 'operator') +# - NOTE: Brief description of the change +# - ISSUES: List of related issues or PRs +# - SUBCONTEXT: Additional information for the changelog entry +# - FILENAME: Name of the file to create or update, defaults to git branch name +# - DEBUG_MODE: Can be enabled for debugging + +# Include the base utility functions for setting and debugging variables +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source "$SCRIPT_DIR/base_util.sh" + +# ---- Initialize Variables ---- +if [[ -z "$FILENAME" ]]; then + setd "FILENAME" $(git branch --show-current | tr -d '[:space:][:punct:]') +fi + +# ---- Changelog Entry Validation ---- +# Check for the existence of TEMPLATE.yaml +if [ ! -f ".chloggen/TEMPLATE.yaml" ]; then + echo "Error: .chloggen/TEMPLATE.yaml not found. Ensure it exists." + exit 1 +fi + +# ---- Changelog Entry Update ---- +# Check if a changelog entry with the given filename already exists +if [ -f ".chloggen/${FILENAME}.yaml" ]; then + echo "Changelog entry ${FILENAME}.yaml already exists. Updating." +else + echo "Creating new changelog entry ${FILENAME}.yaml." + cp .chloggen/TEMPLATE.yaml .chloggen/${FILENAME}.yaml +fi + +# Update fields only if the argument was passed +[[ ! -z "$CHANGE_TYPE" ]] && yq eval -i ".change_type = \"$CHANGE_TYPE\"" .chloggen/${FILENAME}.yaml +[[ ! -z "$COMPONENT" ]] && yq eval -i ".component = \"$COMPONENT\"" .chloggen/${FILENAME}.yaml +[[ ! -z "$NOTE" ]] && yq eval -i ".note = \"$NOTE\"" .chloggen/${FILENAME}.yaml +[[ ! -z "$SUBTEXT" ]] && yq eval -i ".subtext = \"$SUBTEXT\"" .chloggen/${FILENAME}.yaml +# Extend the list of issue IDs rather than overwriting them +if [ ! -z "$ISSUES" ]; then + # Extend the .issues field and update it + setd "OLD_ISSUES" "$(yq eval '.issues' ".chloggen/${FILENAME}.yaml")" + # Combine the old and new issues and deduplicate them + setd "NEW_ISSUES" "'$(echo "$OLD_ISSUES" "$ISSUES" | jq -sc 'add | unique')'" + echo "Resulting issues: $NEW_ISSUES" + yq eval -i ".issues = ${NEW_ISSUES//\'/} | .issues style=\"flow\" " ".chloggen/${FILENAME}.yaml" +fi + + +echo "${FILENAME}.yaml has been created or updated." +exit 0 diff --git a/ci_scripts/chloggen-pr-validate.sh b/ci_scripts/chloggen-pr-validate.sh new file mode 100755 index 0000000000..f247079581 --- /dev/null +++ b/ci_scripts/chloggen-pr-validate.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# Purpose: Validates the presence of a changelog entry based on file changes. +# Notes: +# - Should be executed via the `make chlog-validate` command. +# - Designed to be a local or CI/CD pipeline check. +# - Checks for changes in specific directories and files: +# 1. Helm chart templates in 'helm-charts/splunk-otel-collector/templates/*' +# 2. Rendered manifests in 'examples/*/rendered_manifests/*' +# - Requires a '.chloggen' file if any of the above conditions is met. + +# Include the base utility functions for setting and debugging variables +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source "$SCRIPT_DIR/base_util.sh" + +# ---- Git Fetch Main ---- +if ! git show-ref --verify --quiet refs/heads/main; then + echo "The main branch is not available. Fetching..." + git fetch origin main:main +fi + +# ---- Initialize Variables ---- +CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) +LAST_COMMON_COMMIT=$(git merge-base $CURRENT_BRANCH main) +HELM_CHART_UPDATED=0 +RENDERED_MANIFESTS_UPDATED=0 +CHLOGGEN_FILE_PRESENT=0 + +# Get a list of all changed files since the last common commit with main +CHANGED_FILES=$(git diff --name-only $LAST_COMMON_COMMIT HEAD) +# Include uncommitted changes +UNCOMMITTED_CHANGED_FILES=$(git diff --name-only) + +# Check if either COMMITTED_CHANGED_FILES or UNCOMMITTED_CHANGED_FILES is non-empty +if [[ -n "$UNCOMMITTED_CHANGED_FILES" ]]; then + CHANGED_FILES="$CHANGED_FILES $UNCOMMITTED_CHANGED_FILES" +fi + +# ---- File Change Analysis ---- +for file in $CHANGED_FILES; do + case "$file" in + helm-charts/*/templates*) + HELM_CHART_UPDATED=1 + ;; + examples/*/rendered_manifests*) + RENDERED_MANIFESTS_UPDATED=1 + ;; + .chloggen*) + CHLOGGEN_FILE_PRESENT=1 + ;; + esac +done + +# ---- Changelog Entry Validation ---- +if { [[ $HELM_CHART_UPDATED -eq 1 ]] || [[ $RENDERED_MANIFESTS_UPDATED -eq 1 ]]; } && [[ $CHLOGGEN_FILE_PRESENT -eq 0 ]]; then + printf "Changed Files:\n${CHANGED_FILES}\n" + echo "FAIL: A changelog entry (.chloggen) is required for this commit due to:" + [[ $HELM_CHART_UPDATED -eq 1 ]] && echo "- Updates to files under 'helm-charts/*/templates*'" + [[ $RENDERED_MANIFESTS_UPDATED -eq 1 ]] && echo "- Updates to files under 'examples/*/rendered_manifests*'" + exit 1 +fi + +echo "PASS: all changelog entries required for PR are valid" +exit 0 diff --git a/ci_scripts/chloggen-update.sh b/ci_scripts/chloggen-update.sh new file mode 100755 index 0000000000..7d6af7bde2 --- /dev/null +++ b/ci_scripts/chloggen-update.sh @@ -0,0 +1,51 @@ +#!/bin/bash +# Purpose: Updates CHANGELOG.md file for a release. +# Notes: +# - Should be executed via the `make chlog-update` command. +# - Intended to be used as part of the release process. +# - Automates the process of hyperlinking PR/issue IDs in the CHANGELOG.md. + +# Include the base utility functions for setting and debugging variables +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source "$SCRIPT_DIR/base_util.sh" + +# ---- Initialize Variables ---- +# Create a temporary file to hold the updated CHANGELOG.md content +setd "TEMP_CHANGELOG_PATH" "CHANGELOG.md.tmp" + +# ---- Update CHANGELOG.md Content ---- +# Convert static PR/issues references into hyperlinks +while IFS= read -r line; do + if [[ $line =~ \(\#([0-9,# ]+)\)$ ]]; then + pr_ids=${BASH_REMATCH[1]} + setd "REPLACEMENT" "" + setd "FIRST" "1" + IFS=',' read -ra ADDR <<< "$pr_ids" + for i in "${ADDR[@]}"; do + setd "TRIMMED_I" $(echo "$i" | xargs) # Remove leading/trailing whitespaces + setd "HYPERLINK" "[#${TRIMMED_I}](https://github.com/${OWNER}/splunk-otel-collector-chart/pull/${TRIMMED_I})" + # Remove extra '#' characters from the HYPERLINK + setd "HYPERLINK" ${HYPERLINK//##/#} + if [ "$FIRST" -eq 1 ]; then + REPLACEMENT+="$HYPERLINK" + FIRST=0 + else + REPLACEMENT+=",$HYPERLINK" + fi + done + setd "PREFIX_LENGTH" $((${#line} - ${#pr_ids} - 3)) + echo "${line:0:${PREFIX_LENGTH}}($REPLACEMENT)" >> "$TEMP_CHANGELOG_PATH" + else + echo "$line" >> "$TEMP_CHANGELOG_PATH" + fi +done < "CHANGELOG.md" +mv "$TEMP_CHANGELOG_PATH" "CHANGELOG.md" + +# Insert the subcontext line about the Splunk OpenTelemetry Collector version adopted in this release +setd "APP_VERSION" $(grep "appVersion:" $CHART_FILE_PATH | awk '{print $2}') +setd "INSERT_LINE" "This Splunk OpenTelemetry Collector for Kubernetes release adopts the [Splunk OpenTelemetry Collector v${APP_VERSION}](https://github.com/${OWNER}/splunk-otel-collector/releases/tag/v${APP_VERSION}).\n" +awk -v n=9 -v s="$INSERT_LINE" 'NR == n {print s} {print}' CHANGELOG.md > $TEMP_CHANGELOG_PATH +mv "$TEMP_CHANGELOG_PATH" "CHANGELOG.md" + +echo "Successfully updated PR links in CHANGELOG.md" +exit 0 diff --git a/ci_scripts/install-tools.sh b/ci_scripts/install-tools.sh new file mode 100755 index 0000000000..60b02e8cd4 --- /dev/null +++ b/ci_scripts/install-tools.sh @@ -0,0 +1,87 @@ +#!/bin/bash +# Purpose: Installs or upgrades essential development tools. +# Notes: +# - Should be executed via the `make install-tools` command. +# - Supports macOS and Linux for installations via `brew install` and `go install`. +# - Installs tools like kubectl, helm, pre-commit, go, and chloggen. + +# Include the base utility functions for setting and debugging variables +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source "$SCRIPT_DIR/base_util.sh" + +# Function to install a tool +install() { + local tool=$1 + local type=$2 + + case $type in + brew) + install_brew "$tool" + ;; + go) + install_go "$tool" + ;; + *) + echo "Unsupported tool type: $type" + exit 1 + ;; + esac +} + +# Function to install a Homebrew-based tool +install_brew() { + if ! command -v brew &> /dev/null + then + echo "Homebrew could not be found. Please install Homebrew and try again." + return + fi + + local tool=$1 + local installed_version=$(brew list $tool --versions | awk '{print $2}') + local latest_version=$(brew info --json=v1 "$tool" | jq -r '.[0].versions.stable') + + if [ "$installed_version" == "$latest_version" ]; then + echo "$tool is already up to date (version $installed_version)." + return + elif [ ! -z "$installed_version" ] && [ "$installed_version" != "$latest_version" ]; then + echo "$tool $installed_version is installed. A new version $latest_version is available. Continuing for now..." + return + fi + echo "$tool (version $latest_version) is not installed, installing now..." + brew install $tool || echo "Failed to install $tool. Continuing..." +} + +# Function to install a Go-based tool +install_go() { + if ! command -v go &> /dev/null + then + echo "Go could not be found. Please install Go and try again." + return + fi + + local tool=$1 + local tool_path="$LOCALBIN/$(basename $tool)" + + if [ -f "$tool_path" ]; then + local installed_version=$($tool --version 2>/dev/null) # Try to get the version + if [ -z "$installed_version" ]; then # If version is empty + # Fallback to file modification time + installed_version="UNKNOWN (Last updated: $(stat -c %y "$tool_path" 2>/dev/null || stat -f "%Sm" "$tool_path"))" + fi + echo "$tool is already installed (version: $installed_version). Continuing for now..." + else + echo "$tool is not installed, installing now..." + GOBIN=$LOCALBIN go install ${tool}@latest || echo "Failed to install $tool. Continuing..." + fi +} + +# install brew-based tools +for tool in kubectl helm pre-commit go; do + install "$tool" brew +done + +# install Go-based tools +install "go.opentelemetry.io/build-tools/chloggen" go + +echo "Tool installation process completed!" +exit 0 diff --git a/examples/render-examples.sh b/examples/render-examples.sh old mode 100644 new mode 100755