From cd74c43efb04a5c2899af458ed47d1be4d4132b7 Mon Sep 17 00:00:00 2001 From: Robert Fratto Date: Thu, 27 Jul 2023 13:52:26 -0400 Subject: [PATCH] [release-v0.35] Prepare for release v0.35.2 (#4624) * prometheus.operator.*: fix UI issues (#4538) (cherry picked from commit 11e0087af1aa67e695aa078a4e25c0f0ec46f90d) * Fix nil reference oauth2 (#4548) * Fix nil reference oauth2 * Update CHANGELOG.md Co-authored-by: Robert Fratto --------- Co-authored-by: Robert Fratto (cherry picked from commit bbfbf37624ea63a083811053455fb88968fd7751) * pkg/metrics/wal: always write series records to WAL, even on rollback (#4619) If a new series is introduced in a storage.Appender instance, that series should be written to the WAL once the storage.Appender is closed, even on Rollback. Previously, new series would only be written to the WAL when calling Commit. However, because the series is stored in memory regardless, subsequent calls to Commit may write samples to the WAL which reference a series ID which that was never written. Port of prometheus/prometheus#12592 (cherry picked from commit 3837d47dbbfff039b49c5a8272a97c52feb4b58b) * Fix issue with fips on behalf of @andrewimeson (#4622) (cherry picked from commit 234b05602a1b076fd2edd20454cfd731312f1989) * agentctl: add journald support (#4544) Add journald support into agentctl so `grafana-agentctl test-logs` functions properly when using a config which reads log entries from the systemd journal. Fixes #4520. (cherry picked from commit f2548606bd4b3dd70fcebc2b04c8277e0f2f6f4c) * [release-v0.35] prepare for release v0.35.2 (cherry picked from commit 138dc3405564e5e2fb4a232ec3eac03fa3220e0c) --------- Co-authored-by: mattdurham --- CHANGELOG.md | 28 ++++++++- cmd/grafana-agentctl/Dockerfile | 1 + component/common/config/types.go | 7 ++- component/common/config/types_test.go | 18 ++++++ .../prometheus/operator/common/crdmanager.go | 6 +- .../deploy-agent-operator-resources.md | 2 +- docs/sources/operator/getting-started.md | 2 +- .../integrations/node-exporter-config.md | 6 +- .../integrations/process-exporter-config.md | 4 +- .../set-up/install/install-agent-docker.md | 4 +- packaging/grafana-agent-flow/rpm/gpg-sign.sh | 1 + packaging/grafana-agent/rpm/gpg-sign.sh | 1 + pkg/metrics/wal/wal.go | 57 +++++++++++++++++-- pkg/metrics/wal/wal_test.go | 29 ++++++++++ pkg/operator/defaults.go | 2 +- pkg/river/encoding/riverjson/riverjson.go | 22 ++++--- .../encoding/riverjson/riverjson_test.go | 24 ++++++++ production/kubernetes/agent-bare.yaml | 2 +- production/kubernetes/agent-loki.yaml | 2 +- production/kubernetes/agent-traces.yaml | 2 +- .../kubernetes/build/lib/version.libsonnet | 2 +- .../build/templates/operator/main.jsonnet | 4 +- production/kubernetes/install-bare.sh | 2 +- .../operator/templates/agent-operator.yaml | 4 +- .../tanka/grafana-agent/v1/main.libsonnet | 4 +- .../grafana-agent/v2/internal/base.libsonnet | 4 +- .../v2/internal/syncer.libsonnet | 2 +- tools/make/packaging.mk | 16 ++++-- 28 files changed, 210 insertions(+), 48 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eaf08836f3b0..9747dc90869b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,13 +7,37 @@ This document contains a historical list of changes between releases. Only changes that impact end-user behavior are listed; changes to documentation or internal API changes are not present. +v0.35.2 (2023-07-27) +-------------------- + +### Bugfixes + +- Fix issue where the flow mode UI would show an empty page when navigating to + an unhealthy `prometheus.operator` component or a healthy + `prometheus.operator` component which discovered no custom resources. + (@rfratto) + +- Fix panic when using `oauth2` without specifying `tls_config`. (@mattdurham) + +- Fix issue where series records would never get written to the WAL if a scrape + was rolled back, resulting in "dropped sample for series that was not + explicitly dropped via relabelling" log messages. (@rfratto) + +- Fix RPM file digests so that installation on FIPS-enabled systems succeeds. (@andrewimeson) + +### Other changes + +- Compile journald support into builds of `grafana-agentctl` so + `grafana-agentctl test-logs` functions as expected when testing tailing the + systemd journal. (@rfratto) + v0.35.1 (2023-07-25) -------------------- ### Bugfixes - Fix incorrect display of trace IDs in the automatic_logging processor of static mode's traces subsystem. - Users of the static mode's service graph processor are also advised to upgrade, + Users of the static mode's service graph processor are also advised to upgrade, although the bug should theoretically not affect them. (@ptodev) v0.35.0 (2023-07-18) @@ -21,7 +45,7 @@ v0.35.0 (2023-07-18) > **BREAKING CHANGES**: This release has breaking changes. Please read entries > carefully and consult the [upgrade guide][] for specific instructions. - + ### Breaking changes - The algorithm for the "hash" action of `otelcol.processor.attributes` has changed. diff --git a/cmd/grafana-agentctl/Dockerfile b/cmd/grafana-agentctl/Dockerfile index 47aafdff21fe..4509be51caf8 100644 --- a/cmd/grafana-agentctl/Dockerfile +++ b/cmd/grafana-agentctl/Dockerfile @@ -20,6 +20,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/go/pkg/mod \ GOOS="$TARGETOS" GOARCH="$TARGETARCH" GOARM="${TARGETVARIANT#v}" \ RELEASE_BUILD="${RELEASE_BUILD}" VERSION="${VERSION}" \ + GO_TAGS="promtail_journal_enabled" \ make agentctl FROM ubuntu:lunar diff --git a/component/common/config/types.go b/component/common/config/types.go index 1745391b5c4b..e3c7a66df59f 100644 --- a/component/common/config/types.go +++ b/component/common/config/types.go @@ -292,16 +292,19 @@ func (o *OAuth2Config) Convert() *config.OAuth2 { if o == nil { return nil } - return &config.OAuth2{ + oa := &config.OAuth2{ ClientID: o.ClientID, ClientSecret: config.Secret(o.ClientSecret), ClientSecretFile: o.ClientSecretFile, Scopes: o.Scopes, TokenURL: o.TokenURL, EndpointParams: o.EndpointParams, - TLSConfig: *o.TLSConfig.Convert(), ProxyConfig: config.ProxyConfig{ ProxyURL: o.ProxyURL.Convert(), }, } + if o.TLSConfig != nil { + oa.TLSConfig = *o.TLSConfig.Convert() + } + return oa } diff --git a/component/common/config/types_test.go b/component/common/config/types_test.go index 3a1a8b6c7e84..ccb48ebffb5f 100644 --- a/component/common/config/types_test.go +++ b/component/common/config/types_test.go @@ -160,6 +160,24 @@ func TestHTTPClientConfigOath2ClientSecretFile(t *testing.T) { require.NoError(t, err) } +func TestOath2TLSConvert(t *testing.T) { + var exampleRiverConfig = ` + oauth2 { + client_id = "client_id" + client_secret_file = "/path/to/file.oath2" + scopes = ["scope1", "scope2"] + token_url = "token_url" + endpoint_params = {"param1" = "value1", "param2" = "value2"} + } +` + + var httpClientConfig HTTPClientConfig + err := river.Unmarshal([]byte(exampleRiverConfig), &httpClientConfig) + require.NoError(t, err) + newCfg := httpClientConfig.Convert() + require.NotNil(t, newCfg) +} + func TestHTTPClientBadConfig(t *testing.T) { var exampleRiverConfig = ` bearer_token = "token" diff --git a/component/prometheus/operator/common/crdmanager.go b/component/prometheus/operator/common/crdmanager.go index 3cba54c0c795..c8902372a0d9 100644 --- a/component/prometheus/operator/common/crdmanager.go +++ b/component/prometheus/operator/common/crdmanager.go @@ -205,7 +205,11 @@ func (c *crdManager) DebugInfo() interface{} { for _, pm := range c.debugInfo { info.DiscoveredCRDs = append(info.DiscoveredCRDs, pm) } - info.Targets = compscrape.BuildTargetStatuses(c.scrapeManager.TargetsActive()) + + // c.scrapeManager can be nil if the client failed to build. + if c.scrapeManager != nil { + info.Targets = compscrape.BuildTargetStatuses(c.scrapeManager.TargetsActive()) + } return info } diff --git a/docs/sources/operator/deploy-agent-operator-resources.md b/docs/sources/operator/deploy-agent-operator-resources.md index ca4e3a8b796f..ed2deb9c7f4a 100644 --- a/docs/sources/operator/deploy-agent-operator-resources.md +++ b/docs/sources/operator/deploy-agent-operator-resources.md @@ -58,7 +58,7 @@ To deploy the `GrafanaAgent` resource: labels: app: grafana-agent spec: - image: grafana/agent:v0.35.0 + image: grafana/agent:v0.35.2 integrations: selector: matchLabels: diff --git a/docs/sources/operator/getting-started.md b/docs/sources/operator/getting-started.md index cd0faf5920ce..53c03c5a1dbd 100644 --- a/docs/sources/operator/getting-started.md +++ b/docs/sources/operator/getting-started.md @@ -74,7 +74,7 @@ To install Agent Operator: serviceAccountName: grafana-agent-operator containers: - name: operator - image: grafana/agent-operator:v0.35.0 + image: grafana/agent-operator:v0.35.2 args: - --kubelet-service=default/kubelet --- diff --git a/docs/sources/static/configuration/integrations/node-exporter-config.md b/docs/sources/static/configuration/integrations/node-exporter-config.md index a0e0cbaa5d34..29dda106edfa 100644 --- a/docs/sources/static/configuration/integrations/node-exporter-config.md +++ b/docs/sources/static/configuration/integrations/node-exporter-config.md @@ -29,7 +29,7 @@ docker run \ -v "/proc:/host/proc:ro,rslave" \ -v /tmp/agent:/etc/agent \ -v /path/to/config.yaml:/etc/agent-config/agent.yaml \ - grafana/agent:v0.35.0 \ + grafana/agent:v0.35.2 \ --config.file=/etc/agent-config/agent.yaml ``` @@ -68,7 +68,7 @@ metadata: name: agent spec: containers: - - image: grafana/agent:v0.35.0 + - image: grafana/agent:v0.35.2 name: agent args: - --config.file=/etc/agent-config/agent.yaml @@ -368,7 +368,7 @@ the Agent is running on is a no-op. # Perf software profilers that should be collected. perf_software_profilers: [- ] - + # Disable perf cache profilers. [perf_disable_cache_profilers: | default = false] diff --git a/docs/sources/static/configuration/integrations/process-exporter-config.md b/docs/sources/static/configuration/integrations/process-exporter-config.md index fdcb314d92e2..5263e838f2b6 100644 --- a/docs/sources/static/configuration/integrations/process-exporter-config.md +++ b/docs/sources/static/configuration/integrations/process-exporter-config.md @@ -21,7 +21,7 @@ docker run \ -v "/proc:/proc:ro" \ -v /tmp/agent:/etc/agent \ -v /path/to/config.yaml:/etc/agent-config/agent.yaml \ - grafana/agent:v0.35.0 \ + grafana/agent:v0.35.2 \ --config.file=/etc/agent-config/agent.yaml ``` @@ -38,7 +38,7 @@ metadata: name: agent spec: containers: - - image: grafana/agent:v0.35.0 + - image: grafana/agent:v0.35.2 name: agent args: - --config.file=/etc/agent-config/agent.yaml diff --git a/docs/sources/static/set-up/install/install-agent-docker.md b/docs/sources/static/set-up/install/install-agent-docker.md index 7f9a07caeace..96962fe93c18 100644 --- a/docs/sources/static/set-up/install/install-agent-docker.md +++ b/docs/sources/static/set-up/install/install-agent-docker.md @@ -33,7 +33,7 @@ To run a Grafana Agent Docker container on Linux, run the following command in a docker run \ -v WAL_DATA_DIRECTORY:/etc/agent/data \ -v CONFIG_FILE_PATH:/etc/agent/agent.yaml \ - grafana/agent:v0.35.0 + grafana/agent:v0.35.2 ``` Replace `CONFIG_FILE_PATH` with the configuration file path on your Linux host system. @@ -50,7 +50,7 @@ To run a Grafana Agent Docker container on Windows, run the following command in docker run ^ -v WAL_DATA_DIRECTORY:C:\etc\grafana-agent\data ^ -v CONFIG_FILE_PATH:C:\etc\grafana-agent ^ - grafana/agent:v0.35.0-windows + grafana/agent:v0.35.2-windows ``` Replace the following: diff --git a/packaging/grafana-agent-flow/rpm/gpg-sign.sh b/packaging/grafana-agent-flow/rpm/gpg-sign.sh index c33592d42f3d..7d84262c6cbb 100755 --- a/packaging/grafana-agent-flow/rpm/gpg-sign.sh +++ b/packaging/grafana-agent-flow/rpm/gpg-sign.sh @@ -18,6 +18,7 @@ echo "%_gpg_name Grafana Labs %_gpg_path /root/.gnupg %_gpgbin /usr/bin/gpg %_gpg_digest_algo sha256 +%_binary_filedigest_algorithm 8 %__gpg /usr/bin/gpg %__gpg_sign_cmd %{__gpg} \ gpg --no-tty --batch --yes --no-verbose --no-armor \ diff --git a/packaging/grafana-agent/rpm/gpg-sign.sh b/packaging/grafana-agent/rpm/gpg-sign.sh index c33592d42f3d..7d84262c6cbb 100755 --- a/packaging/grafana-agent/rpm/gpg-sign.sh +++ b/packaging/grafana-agent/rpm/gpg-sign.sh @@ -18,6 +18,7 @@ echo "%_gpg_name Grafana Labs %_gpg_path /root/.gnupg %_gpgbin /usr/bin/gpg %_gpg_digest_algo sha256 +%_binary_filedigest_algorithm 8 %__gpg /usr/bin/gpg %__gpg_sign_cmd %{__gpg} \ gpg --no-tty --batch --yes --no-verbose --no-armor \ diff --git a/pkg/metrics/wal/wal.go b/pkg/metrics/wal/wal.go index 0141983cac22..6f84e607db04 100644 --- a/pkg/metrics/wal/wal.go +++ b/pkg/metrics/wal/wal.go @@ -861,6 +861,16 @@ func (a *appender) UpdateMetadata(ref storage.SeriesRef, _ labels.Labels, m meta // Commit submits the collected samples and purges the batch. func (a *appender) Commit() error { + if err := a.log(); err != nil { + return err + } + + a.clearData() + a.w.appenderPool.Put(a) + return nil +} + +func (a *appender) log() error { a.w.walMtx.RLock() defer a.w.walMtx.RUnlock() @@ -870,6 +880,9 @@ func (a *appender) Commit() error { var encoder record.Encoder buf := a.w.bufPool.Get().([]byte) + defer func() { + a.w.bufPool.Put(buf) //nolint:staticcheck + }() if len(a.pendingSeries) > 0 { buf = encoder.Series(a.pendingSeries, buf) @@ -931,12 +944,11 @@ func (a *appender) Commit() error { } } - //nolint:staticcheck - a.w.bufPool.Put(buf) - return a.Rollback() + return nil } -func (a *appender) Rollback() error { +// clearData clears all pending data. +func (a *appender) clearData() { a.pendingSeries = a.pendingSeries[:0] a.pendingSamples = a.pendingSamples[:0] a.pendingHistograms = a.pendingHistograms[:0] @@ -945,6 +957,43 @@ func (a *appender) Rollback() error { a.sampleSeries = a.sampleSeries[:0] a.histogramSeries = a.histogramSeries[:0] a.floatHistogramSeries = a.floatHistogramSeries[:0] +} + +func (a *appender) Rollback() error { + // Series are created in-memory regardless of rollback. This means we must + // log them to the WAL, otherwise subsequent commits may reference a series + // which was never written to the WAL. + if err := a.logSeries(); err != nil { + return err + } + + a.clearData() a.w.appenderPool.Put(a) return nil } + +// logSeries logs only pending series records to the WAL. +func (a *appender) logSeries() error { + a.w.walMtx.RLock() + defer a.w.walMtx.RUnlock() + + if a.w.walClosed { + return ErrWALClosed + } + + if len(a.pendingSeries) > 0 { + var encoder record.Encoder + buf := a.w.bufPool.Get().([]byte) + defer func() { + a.w.bufPool.Put(buf) //nolint:staticcheck + }() + + buf = encoder.Series(a.pendingSeries, buf) + if err := a.w.wal.Log(buf); err != nil { + return err + } + buf = buf[:0] + } + + return nil +} diff --git a/pkg/metrics/wal/wal_test.go b/pkg/metrics/wal/wal_test.go index 912419447fc6..b8d22a7c322d 100644 --- a/pkg/metrics/wal/wal_test.go +++ b/pkg/metrics/wal/wal_test.go @@ -99,6 +99,35 @@ func TestStorage(t *testing.T) { require.Equal(t, expectedExemplars, actualExemplars) } +func TestStorage_Rollback(t *testing.T) { + walDir := t.TempDir() + s, err := NewStorage(log.NewNopLogger(), nil, walDir) + require.NoError(t, err) + t.Cleanup(func() { + require.NoError(t, s.Close()) + }) + + app := s.Appender(context.Background()) + + payload := buildSeries([]string{"foo", "bar", "baz", "blerg"}) + for _, metric := range payload { + metric.Write(t, app) + } + + require.NoError(t, app.Rollback()) + + var collector walDataCollector + + replayer := walReplayer{w: &collector} + require.NoError(t, replayer.Replay(s.wal.Dir())) + + require.Len(t, collector.series, 4, "Series records should be written on Rollback") + require.Len(t, collector.samples, 0, "Samples should not be written on rollback") + require.Len(t, collector.exemplars, 0, "Exemplars should not be written on rollback") + require.Len(t, collector.histograms, 0, "Histograms should not be written on rollback") + require.Len(t, collector.floatHistograms, 0, "Native histograms should not be written on rollback") +} + func TestStorage_DuplicateExemplarsIgnored(t *testing.T) { walDir := t.TempDir() diff --git a/pkg/operator/defaults.go b/pkg/operator/defaults.go index de85682f8cce..793b8f77c2cc 100644 --- a/pkg/operator/defaults.go +++ b/pkg/operator/defaults.go @@ -2,7 +2,7 @@ package operator // Supported versions of the Grafana Agent. var ( - DefaultAgentVersion = "v0.35.0" + DefaultAgentVersion = "v0.35.2" DefaultAgentBaseImage = "grafana/agent" DefaultAgentImage = DefaultAgentBaseImage + ":" + DefaultAgentVersion ) diff --git a/pkg/river/encoding/riverjson/riverjson.go b/pkg/river/encoding/riverjson/riverjson.go index 821b34212d1e..f93c9ec03228 100644 --- a/pkg/river/encoding/riverjson/riverjson.go +++ b/pkg/river/encoding/riverjson/riverjson.go @@ -87,15 +87,6 @@ func encodeFieldAsStatements(prefix []string, field rivertags.Field, fieldValue fullName := mergeStringSlice(prefix, field.Name) switch { - case fieldValue.IsZero(): - // It shouldn't be possible to have a required block which is unset, but - // we'll encode something anyway. - return []jsonStatement{jsonBlock{ - Name: strings.Join(fullName, "."), - Type: "block", - Body: nil, - }} - case fieldValue.Kind() == reflect.Map: // Iterate over the map and add each element as an attribute into it. @@ -137,6 +128,19 @@ func encodeFieldAsStatements(prefix []string, field rivertags.Field, fieldValue return statements case fieldValue.Kind() == reflect.Struct: + if fieldValue.IsZero() { + // It shouldn't be possible to have a required block which is unset, but + // we'll encode something anyway. + return []jsonStatement{jsonBlock{ + Name: strings.Join(fullName, "."), + Type: "block", + + // Never set this to nil, since the API contract always expects blocks + // to have an array value for the body. + Body: []jsonStatement{}, + }} + } + return []jsonStatement{jsonBlock{ Name: strings.Join(fullName, "."), Type: "block", diff --git a/pkg/river/encoding/riverjson/riverjson_test.go b/pkg/river/encoding/riverjson/riverjson_test.go index b7658b890b47..01acb7310388 100644 --- a/pkg/river/encoding/riverjson/riverjson_test.go +++ b/pkg/river/encoding/riverjson/riverjson_test.go @@ -199,6 +199,30 @@ func TestBlock(t *testing.T) { require.JSONEq(t, expect, string(actual)) } +func TestBlock_Empty_Required_Block_Slice(t *testing.T) { + type wrapper struct { + Blocks []testBlock `river:"some_block,block"` + } + + tt := []struct { + name string + val any + }{ + {"nil block slice", wrapper{Blocks: nil}}, + {"empty block slice", wrapper{Blocks: []testBlock{}}}, + } + + for _, tc := range tt { + t.Run(tc.name, func(t *testing.T) { + expect := `[]` + + actual, err := riverjson.MarshalBody(tc.val) + require.NoError(t, err) + require.JSONEq(t, expect, string(actual)) + }) + } +} + type testBlock struct { Number int `river:"number,attr,optional"` String string `river:"string,attr,optional"` diff --git a/production/kubernetes/agent-bare.yaml b/production/kubernetes/agent-bare.yaml index c88575c9f6c7..3b24e1218f0b 100644 --- a/production/kubernetes/agent-bare.yaml +++ b/production/kubernetes/agent-bare.yaml @@ -83,7 +83,7 @@ spec: valueFrom: fieldRef: fieldPath: spec.nodeName - image: grafana/agent:v0.35.0 + image: grafana/agent:v0.35.2 imagePullPolicy: IfNotPresent name: grafana-agent ports: diff --git a/production/kubernetes/agent-loki.yaml b/production/kubernetes/agent-loki.yaml index 01b8bffae71e..97874b8c650f 100644 --- a/production/kubernetes/agent-loki.yaml +++ b/production/kubernetes/agent-loki.yaml @@ -65,7 +65,7 @@ spec: valueFrom: fieldRef: fieldPath: spec.nodeName - image: grafana/agent:v0.35.0 + image: grafana/agent:v0.35.2 imagePullPolicy: IfNotPresent name: grafana-agent-logs ports: diff --git a/production/kubernetes/agent-traces.yaml b/production/kubernetes/agent-traces.yaml index f2289e0bc417..657bd55d27b4 100644 --- a/production/kubernetes/agent-traces.yaml +++ b/production/kubernetes/agent-traces.yaml @@ -114,7 +114,7 @@ spec: valueFrom: fieldRef: fieldPath: spec.nodeName - image: grafana/agent:v0.35.0 + image: grafana/agent:v0.35.2 imagePullPolicy: IfNotPresent name: grafana-agent-traces ports: diff --git a/production/kubernetes/build/lib/version.libsonnet b/production/kubernetes/build/lib/version.libsonnet index 93c12d58814c..8a8980dde0c7 100644 --- a/production/kubernetes/build/lib/version.libsonnet +++ b/production/kubernetes/build/lib/version.libsonnet @@ -1 +1 @@ -'grafana/agent:v0.35.0' +'grafana/agent:v0.35.2' diff --git a/production/kubernetes/build/templates/operator/main.jsonnet b/production/kubernetes/build/templates/operator/main.jsonnet index 9760cadfea5d..a5ece80b1937 100644 --- a/production/kubernetes/build/templates/operator/main.jsonnet +++ b/production/kubernetes/build/templates/operator/main.jsonnet @@ -23,8 +23,8 @@ local ksm = import 'kube-state-metrics/kube-state-metrics.libsonnet'; local this = self, _images:: { - agent: 'grafana/agent:v0.35.0', - agent_operator: 'grafana/agent-operator:v0.35.0', + agent: 'grafana/agent:v0.35.2', + agent_operator: 'grafana/agent-operator:v0.35.2', ksm: 'registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.5.0', }, diff --git a/production/kubernetes/install-bare.sh b/production/kubernetes/install-bare.sh index efb2ca8c1294..7d57a73cc8ac 100644 --- a/production/kubernetes/install-bare.sh +++ b/production/kubernetes/install-bare.sh @@ -25,7 +25,7 @@ check_installed() { check_installed curl check_installed envsubst -MANIFEST_BRANCH=v0.35.0 +MANIFEST_BRANCH=v0.35.2 MANIFEST_URL=${MANIFEST_URL:-https://raw.githubusercontent.com/grafana/agent/${MANIFEST_BRANCH}/production/kubernetes/agent-bare.yaml} NAMESPACE=${NAMESPACE:-default} diff --git a/production/operator/templates/agent-operator.yaml b/production/operator/templates/agent-operator.yaml index 902c197d1cee..9df6cf2c0ee0 100644 --- a/production/operator/templates/agent-operator.yaml +++ b/production/operator/templates/agent-operator.yaml @@ -372,7 +372,7 @@ spec: containers: - args: - --kubelet-service=default/kubelet - image: grafana/agent-operator:v0.35.0 + image: grafana/agent-operator:v0.35.2 imagePullPolicy: IfNotPresent name: grafana-agent-operator serviceAccount: grafana-agent-operator @@ -436,7 +436,7 @@ metadata: name: grafana-agent namespace: ${NAMESPACE} spec: - image: grafana/agent:v0.35.0 + image: grafana/agent:v0.35.2 integrations: selector: matchLabels: diff --git a/production/tanka/grafana-agent/v1/main.libsonnet b/production/tanka/grafana-agent/v1/main.libsonnet index dbf5394dac7c..6fc5afff9037 100644 --- a/production/tanka/grafana-agent/v1/main.libsonnet +++ b/production/tanka/grafana-agent/v1/main.libsonnet @@ -15,8 +15,8 @@ local service = k.core.v1.service; (import './lib/traces.libsonnet') + { _images:: { - agent: 'grafana/agent:v0.35.0', - agentctl: 'grafana/agentctl:v0.35.0', + agent: 'grafana/agent:v0.35.2', + agentctl: 'grafana/agentctl:v0.35.2', }, // new creates a new DaemonSet deployment of the grafana-agent. By default, diff --git a/production/tanka/grafana-agent/v2/internal/base.libsonnet b/production/tanka/grafana-agent/v2/internal/base.libsonnet index fe4a3a7134f8..b88b5c216238 100644 --- a/production/tanka/grafana-agent/v2/internal/base.libsonnet +++ b/production/tanka/grafana-agent/v2/internal/base.libsonnet @@ -11,8 +11,8 @@ function(name='grafana-agent', namespace='') { local this = self, _images:: { - agent: 'grafana/agent:v0.35.0', - agentctl: 'grafana/agentctl:v0.35.0', + agent: 'grafana/agent:v0.35.2', + agentctl: 'grafana/agentctl:v0.35.2', }, _config:: { name: name, diff --git a/production/tanka/grafana-agent/v2/internal/syncer.libsonnet b/production/tanka/grafana-agent/v2/internal/syncer.libsonnet index f6f7f4c42079..2e5b8b50d38d 100644 --- a/production/tanka/grafana-agent/v2/internal/syncer.libsonnet +++ b/production/tanka/grafana-agent/v2/internal/syncer.libsonnet @@ -14,7 +14,7 @@ function( ) { local _config = { api: error 'api must be set', - image: 'grafana/agentctl:v0.35.0', + image: 'grafana/agentctl:v0.35.2', schedule: '*/5 * * * *', configs: [], } + config, diff --git a/tools/make/packaging.mk b/tools/make/packaging.mk index a2ade7c44722..7803889d6eb4 100644 --- a/tools/make/packaging.mk +++ b/tools/make/packaging.mk @@ -107,23 +107,27 @@ dist-agentctl-binaries: dist/grafana-agentctl-linux-amd64 \ dist/grafana-agentctl-windows-amd64.exe \ dist/grafana-agentctl-freebsd-amd64 +dist/grafana-agentctl-linux-amd64: GO_TAGS += promtail_journal_enabled dist/grafana-agentctl-linux-amd64: GOOS := linux dist/grafana-agentctl-linux-amd64: GOARCH := amd64 dist/grafana-agentctl-linux-amd64: $(PACKAGING_VARS) AGENTCTL_BINARY=$@ $(MAKE) -f $(PARENT_MAKEFILE) agentctl -dist/grafana-agentctl-linux-arm64: GOOS := linux -dist/grafana-agentctl-linux-arm64: GOARCH := arm64 +dist/grafana-agentctl-linux-arm64: GO_TAGS += promtail_journal_enabled +dist/grafana-agentctl-linux-arm64: GOOS := linux +dist/grafana-agentctl-linux-arm64: GOARCH := arm64 dist/grafana-agentctl-linux-arm64: $(PACKAGING_VARS) AGENTCTL_BINARY=$@ $(MAKE) -f $(PARENT_MAKEFILE) agentctl -dist/grafana-agentctl-linux-ppc64le: GOOS := linux -dist/grafana-agentctl-linux-ppc64le: GOARCH := ppc64le +dist/grafana-agentctl-linux-ppc64le: GO_TAGS += promtail_journal_enabled +dist/grafana-agentctl-linux-ppc64le: GOOS := linux +dist/grafana-agentctl-linux-ppc64le: GOARCH := ppc64le dist/grafana-agentctl-linux-ppc64le: $(PACKAGING_VARS) AGENTCTL_BINARY=$@ $(MAKE) -f $(PARENT_MAKEFILE) agentctl -dist/grafana-agentctl-linux-s390x: GOOS := linux -dist/grafana-agentctl-linux-s390x: GOARCH := s390x +dist/grafana-agentctl-linux-s390x: GO_TAGS += promtail_journal_enabled +dist/grafana-agentctl-linux-s390x: GOOS := linux +dist/grafana-agentctl-linux-s390x: GOARCH := s390x dist/grafana-agentctl-linux-s390x: $(PACKAGING_VARS) AGENTCTL_BINARY=$@ $(MAKE) -f $(PARENT_MAKEFILE) agentctl