From bb930dc4a4b4510091d6886d2565e6a7668115f4 Mon Sep 17 00:00:00 2001 From: Robert Fratto Date: Thu, 10 Mar 2022 13:40:54 -0500 Subject: [PATCH 1/5] crow: make sure that default settings are applied to crow --- tools/crow/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/crow/main.go b/tools/crow/main.go index d6c37a3e55a0..fc19e9c70d06 100644 --- a/tools/crow/main.go +++ b/tools/crow/main.go @@ -28,8 +28,8 @@ func main() { var ( fs = flag.NewFlagSet(os.Args[0], flag.ExitOnError) - serverCfg server.Config - crowCfg crow.Config + serverCfg = server.DefaultConfig + crowCfg = crow.DefaultConfig showVersion bool ) From 475076463882f3950e2745d5e35847be06f8e67f Mon Sep 17 00:00:00 2001 From: Robert Fratto Date: Thu, 10 Mar 2022 13:43:00 -0500 Subject: [PATCH 2/5] explicitly set HTTP address in crow lib --- production/tanka/grafana-agent/smoke/crow/main.libsonnet | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/production/tanka/grafana-agent/smoke/crow/main.libsonnet b/production/tanka/grafana-agent/smoke/crow/main.libsonnet index 10dbf3d0fa46..a159e6c16657 100644 --- a/production/tanka/grafana-agent/smoke/crow/main.libsonnet +++ b/production/tanka/grafana-agent/smoke/crow/main.libsonnet @@ -15,7 +15,9 @@ local volume = k.core.v1.volume; _config+:: { image: 'us.gcr.io/kubernetes-dev/grafana/agent-crow:main', - args: {}, + args: { + 'server.http.address': '0.0.0.0:80', + }, pull_secret: '', } + config, From 73b720753754e488b471d9a72d67c6e4343f1da2 Mon Sep 17 00:00:00 2001 From: Robert Fratto Date: Thu, 10 Mar 2022 13:53:30 -0500 Subject: [PATCH 3/5] tanka/v2: allow passing in custom flags and override exposed http port --- production/tanka/grafana-agent/v2/README.md | 12 +++++----- .../grafana-agent/v2/internal/base.libsonnet | 11 ++++++---- .../tanka/grafana-agent/v2/main.libsonnet | 22 +++++++++++-------- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/production/tanka/grafana-agent/v2/README.md b/production/tanka/grafana-agent/v2/README.md index 9c2bdfa48b4f..33c18cadeac7 100644 --- a/production/tanka/grafana-agent/v2/README.md +++ b/production/tanka/grafana-agent/v2/README.md @@ -57,6 +57,8 @@ scraping service config management API. ## General - `withAgentConfig(config)`: Provide a custom Agent config. +- `withArgsMixin(config)`: Pass a map of additional flags to set. +- `withMetricsPort(port)`: Value for the `http-metrics` port (default 80) - `withImagesMixin(images)`: Use custom images instead of the defaults. - `withConfigHash(include=true)`: Whether to include a config hash annotation. - `withPortsMixin(ports=[])`: Mixin ports from `k.core.v1.containerPort` against @@ -66,15 +68,15 @@ scraping service config management API. ## Helpers -- `newKubernetesMetrics(config)`: Creates a set of metrics scrape_configs for +- `newKubernetesMetrics(config={})`: Creates a set of metrics scrape_configs for collecting metrics from Kubernetes pods. -- `newKubernetesLogs(config)`: Creates a set of logs scrape_configs for +- `newKubernetesLogs(config={})`: Creates a set of logs scrape_configs for collecting logs from Kubernetes pods. -- `newKubernetesTraces(config)`: Creates a set of traces scrape_configs for +- `newKubernetesTraces(config={})`: Creates a set of traces scrape_configs for associating spans with metadata from discovered Kubernetes pods. -- `withLogVolumeMounts()`: Adds volume mounts to the controller for collecting +- `withLogVolumeMounts(config={})`: Adds volume mounts to the controller for collecting logs. -- `withLogPermissions()`: Runs the container as privileged and as the root user +- `withLogPermissions(config={})`: Runs the container as privileged and as the root user so logs can be collected properly. - `withService(config)`: Add a service for the deployment, statefulset, or daemonset. Note that this must be called after any ports are added via `withPortsMixin`. diff --git a/production/tanka/grafana-agent/v2/internal/base.libsonnet b/production/tanka/grafana-agent/v2/internal/base.libsonnet index 90afd08ef537..c09867efeba7 100644 --- a/production/tanka/grafana-agent/v2/internal/base.libsonnet +++ b/production/tanka/grafana-agent/v2/internal/base.libsonnet @@ -18,6 +18,11 @@ function(name='grafana-agent', namespace='') { namespace: namespace, config_hash: true, agent_config: '', + agent_port: 80, + agent_args: { + 'config.file': '/etc/agent/agent.yaml', + 'server.http.address': '0.0.0.0:80', + }, }, rbac: k.util.rbac(name, [ @@ -40,9 +45,7 @@ function(name='grafana-agent', namespace='') { container:: container.new(name, this._images.agent) + - container.withPorts(containerPort.new('http-metrics', 80)) + + container.withPorts(containerPort.new('http-metrics', this._config.agent_port)) + container.withCommand('/bin/agent') + - container.withArgsMixin(k.util.mapToFlags({ - 'config.file': '/etc/agent/agent.yaml', - })), + container.withArgsMixin(k.util.mapToFlags(this._config.agent_args)), } diff --git a/production/tanka/grafana-agent/v2/main.libsonnet b/production/tanka/grafana-agent/v2/main.libsonnet index b659d9d31250..8539d9cfdb83 100644 --- a/production/tanka/grafana-agent/v2/main.libsonnet +++ b/production/tanka/grafana-agent/v2/main.libsonnet @@ -26,23 +26,27 @@ local podTemplateSpec = k.core.v1.podTemplateSpec.spec; withVolumeMountsMixin(mounts=[]):: { container+:: container.withVolumeMountsMixin(mounts) }, withVolumesMixin(volumes=[]):: { controller+: { - spec+: { - template+: podTemplateSpec.withVolumesMixin(volumes) - }, + spec+: { + template+: podTemplateSpec.withVolumesMixin(volumes), + }, }, }, + // Update port number used for the http-metrics port. + withMetricsPort(port):: { _config+: { agent_port: port } }, + withArgsMixin(args):: { _config+: { agent_args+: args } }, + // Helpers - newKubernetesMetrics(config):: + newKubernetesMetrics(config={}):: (import './internal/helpers/k8s.libsonnet').metrics(config), - newKubernetesLogs(config):: + newKubernetesLogs(config={}):: (import './internal/helpers/k8s.libsonnet').logs(config), - newKubernetesTraces(config):: + newKubernetesTraces(config={}):: (import './internal/helpers/k8s.libsonnet').traces(config), - withLogVolumeMounts(config):: + withLogVolumeMounts(config={}):: (import './internal/helpers/logs.libsonnet').volumeMounts(config), - withLogPermissions(config):: + withLogPermissions(config={}):: (import './internal/helpers/logs.libsonnet').permissions(config), - withService(config):: + withService(config={}):: (import './internal/helpers/service.libsonnet').service(config), } From 3b6b0ce887e5b3a99af4f6d00ed0a3477a2ce761 Mon Sep 17 00:00:00 2001 From: Robert Fratto Date: Thu, 10 Mar 2022 13:55:19 -0500 Subject: [PATCH 4/5] tanka/v2: shift functions around --- production/tanka/grafana-agent/v2/main.libsonnet | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/production/tanka/grafana-agent/v2/main.libsonnet b/production/tanka/grafana-agent/v2/main.libsonnet index 8539d9cfdb83..71a8e4b69f6d 100644 --- a/production/tanka/grafana-agent/v2/main.libsonnet +++ b/production/tanka/grafana-agent/v2/main.libsonnet @@ -20,6 +20,8 @@ local podTemplateSpec = k.core.v1.podTemplateSpec.spec; // General withAgentConfig(config):: { _config+: { agent_config: config } }, + withMetricsPort(port):: { _config+: { agent_port: port } }, + withArgsMixin(args):: { _config+: { agent_args+: args } }, withImagesMixin(images):: { _images+: images }, withConfigHash(include=true):: { _config+: { config_hash: include } }, withPortsMixin(ports=[]):: { container+:: container.withPortsMixin(ports) }, @@ -32,10 +34,6 @@ local podTemplateSpec = k.core.v1.podTemplateSpec.spec; }, }, - // Update port number used for the http-metrics port. - withMetricsPort(port):: { _config+: { agent_port: port } }, - withArgsMixin(args):: { _config+: { agent_args+: args } }, - // Helpers newKubernetesMetrics(config={}):: (import './internal/helpers/k8s.libsonnet').metrics(config), From 54189f43270f6e4e2ee693bc41f98f30843c8961 Mon Sep 17 00:00:00 2001 From: Robert Fratto Date: Thu, 10 Mar 2022 13:56:04 -0500 Subject: [PATCH 5/5] example/k3d/smoke: remove redundant argument --- example/k3d/smoke/main.jsonnet | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example/k3d/smoke/main.jsonnet b/example/k3d/smoke/main.jsonnet index 31e74f5dd65b..6e00e007bf08 100644 --- a/example/k3d/smoke/main.jsonnet +++ b/example/k3d/smoke/main.jsonnet @@ -159,7 +159,7 @@ local smoke = { ], ) + gragent.withVolumeMountsMixin([volumeMount.new('agent-wal', '/var/lib/agent')]) + - gragent.withService({}) + + gragent.withService() + gragent.withAgentConfig({ server: { log_level: 'debug' }, @@ -189,7 +189,7 @@ local smoke = { ], ) + gragent.withVolumeMountsMixin([volumeMount.new('agent-cluster-wal', '/var/lib/agent')]) + - gragent.withService({}) + + gragent.withService() + gragent.withAgentConfig({ server: { log_level: 'debug' },