From 8a225f57968173596cf4e83c30cfb343e0bd8bef Mon Sep 17 00:00:00 2001 From: thilak Date: Thu, 24 Sep 2026 13:34:14 +0530 Subject: [PATCH 1/3] Document Windows node support for the collector Chart 0.6.0 can collect from Windows nodes, but nothing on this page said so or explained why it needs separate configuration. Adds a Windows Nodes section covering: why a second DaemonSet is required (one pod template cannot carry both a Linux and a Windows image, and the Linux daemon mounts host paths Windows pods do not support), the one-line opt-in, what is and is not collected, the Server 2019 tag override, and the common options (tolerations, host log path, runAsUserName, resources). Two things it calls out because they are easy to get wrong: - extraEnvs is per-collector and Helm replaces lists rather than merging, so a deployment that injects the Scout secret by env var needs its own copy under windowsDaemon.extraEnvs. Deployments that set scout.apiKey directly need nothing. - the agent Service is named after the Helm release, so with the install command on this page it is scout-agent-collector, matching the endpoint already used further down the page. Marked experimental: it is disabled by default and has not yet run on a live Windows node group. --- .../collector-setup/kubernetes-helm-setup.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/docs/instrument/collector-setup/kubernetes-helm-setup.md b/docs/instrument/collector-setup/kubernetes-helm-setup.md index 7f2cbec..9f383eb 100644 --- a/docs/instrument/collector-setup/kubernetes-helm-setup.md +++ b/docs/instrument/collector-setup/kubernetes-helm-setup.md @@ -82,6 +82,104 @@ helm install scout base14/scout-collector --version 0.6.0 \ ``` +## Windows Nodes + +:::note + +Windows node support is new and should be treated as experimental. It is +disabled by default, so enabling it is an explicit opt-in and nothing changes +until you do. + +::: + +If your cluster has Windows node groups, the collector needs a second DaemonSet +to run on them. A single DaemonSet cannot serve both operating systems: the +collector image is published separately for Linux and Windows, and the Linux +daemon mounts Linux host paths that Windows pods do not support. + +Chart `0.6.0` and above also keeps the Linux collectors off your Windows nodes +automatically. On earlier versions they could be scheduled onto a Windows node, +where they cannot start. + +### Enabling it + +Add this to the `values.yaml` you already use: + +```yaml showLineNumbers title="values.yaml" +scout: + windowsDaemon: + enabled: true +``` + +Then upgrade: + +```bash +helm repo update +helm upgrade scout base14/scout-collector --version 0.6.0 \ +--namespace scout -f values.yaml +``` + +Your Scout endpoint and credentials are inherited from the configuration you +already have. There is one exception: if your values inject the Scout secret +through an environment variable rather than setting `scout.apiKey` directly, +each collector needs its own copy, because Helm replaces lists rather than +merging them. Look for `SCOUT_API_KEY` under `agent-collector.extraEnvs`; if it +is there, add the same entry under `windowsDaemon.extraEnvs`. + +### What it collects + +Container logs from `C:\var\log\pods` and kubelet stats from the Windows +kubelet. + +Host metrics, Windows Event Log and performance counters are not collected yet. + +Telemetry from applications *running on* Windows nodes does not need any of +this — point your SDKs at the agent as usual. The service is named after your +Helm release, so with the `helm install scout ...` above it is: + +```text +scout-agent-collector.scout.svc:4318 +``` + +### Windows Server version + +The default image targets **Windows Server 2022**. A Windows container image +must match the host build, so on Server 2019 set the tag explicitly: + +```yaml showLineNumbers title="values.yaml" +scout: + windowsDaemon: + enabled: true + image: + tag: "0.130.1-windows-2019-amd64" +``` + +A cluster with a mix of 2019 and 2022 nodes needs one DaemonSet per build, since +a single pod template carries a single image. Contact support and we will help +you configure it. + +### Other options + +```yaml showLineNumbers title="values.yaml" +scout: + windowsDaemon: + enabled: true + # Windows node pools are often tainted; tolerate yours here. + tolerations: [] + # Where the kubelet writes container logs, if your nodes differ. + hostLogPath: 'C:\var\log\pods' + # The collector runs as ContainerUser, which is not an administrator. If log + # collection fails with permission errors, set ContainerAdministrator. + runAsUserName: "" + resources: + requests: + memory: 128Mi + cpu: 100m + limits: + memory: 512Mi + cpu: 400m +``` + ## Configuration Guide ## Using Otelcol style configuration From 9feb7296345ba3df226272be8b7d45e8d47fbf02 Mon Sep 17 00:00:00 2001 From: thilak Date: Thu, 24 Sep 2026 13:37:23 +0530 Subject: [PATCH 2/3] docs: drop version history from the Windows section The install guide pins 0.6.0, so what older chart versions did with Linux collectors on Windows nodes is not something a reader needs. Documentation should describe how the thing works, not how it used to be broken -- that belongs in release notes. Also drops "new and" from the experimental note: the status is what matters and it stays accurate, where novelty dates itself. --- docs/instrument/collector-setup/kubernetes-helm-setup.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/docs/instrument/collector-setup/kubernetes-helm-setup.md b/docs/instrument/collector-setup/kubernetes-helm-setup.md index 9f383eb..6e9e0d4 100644 --- a/docs/instrument/collector-setup/kubernetes-helm-setup.md +++ b/docs/instrument/collector-setup/kubernetes-helm-setup.md @@ -86,9 +86,8 @@ helm install scout base14/scout-collector --version 0.6.0 \ :::note -Windows node support is new and should be treated as experimental. It is -disabled by default, so enabling it is an explicit opt-in and nothing changes -until you do. +Windows node support is experimental. It is disabled by default, so enabling +it is an explicit opt-in. ::: @@ -97,10 +96,6 @@ to run on them. A single DaemonSet cannot serve both operating systems: the collector image is published separately for Linux and Windows, and the Linux daemon mounts Linux host paths that Windows pods do not support. -Chart `0.6.0` and above also keeps the Linux collectors off your Windows nodes -automatically. On earlier versions they could be scheduled onto a Windows node, -where they cannot start. - ### Enabling it Add this to the `values.yaml` you already use: From ee02128a48edd4bc8cace846d3bbb573b10775ff Mon Sep 17 00:00:00 2001 From: thilak Date: Thu, 24 Sep 2026 13:38:37 +0530 Subject: [PATCH 3/3] docs: stop re-documenting the install command in the Windows section The Quick Start on the same page already installs --version 0.6.0, so repeating a pinned helm upgrade here implied the reader was on an older release and had to upgrade to get this. It is an install guide: enabling Windows is one more values block, applied by the command already given. Also drops the "the values.yaml you already use" framing for the same reason -- it assumed an existing deployment the page has not described. --- .../collector-setup/kubernetes-helm-setup.md | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/docs/instrument/collector-setup/kubernetes-helm-setup.md b/docs/instrument/collector-setup/kubernetes-helm-setup.md index 6e9e0d4..a2ed36c 100644 --- a/docs/instrument/collector-setup/kubernetes-helm-setup.md +++ b/docs/instrument/collector-setup/kubernetes-helm-setup.md @@ -98,7 +98,7 @@ daemon mounts Linux host paths that Windows pods do not support. ### Enabling it -Add this to the `values.yaml` you already use: +Set this in your `values.yaml`, then install as shown above: ```yaml showLineNumbers title="values.yaml" scout: @@ -106,20 +106,13 @@ scout: enabled: true ``` -Then upgrade: +The Windows daemon shares your Scout endpoint and credentials with the other +collectors, so there is nothing further to configure. -```bash -helm repo update -helm upgrade scout base14/scout-collector --version 0.6.0 \ ---namespace scout -f values.yaml -``` - -Your Scout endpoint and credentials are inherited from the configuration you -already have. There is one exception: if your values inject the Scout secret -through an environment variable rather than setting `scout.apiKey` directly, -each collector needs its own copy, because Helm replaces lists rather than -merging them. Look for `SCOUT_API_KEY` under `agent-collector.extraEnvs`; if it -is there, add the same entry under `windowsDaemon.extraEnvs`. +The exception is `extraEnvs`, which is per-collector: Helm replaces lists rather +than merging them. If you supply the Scout secret through an environment +variable rather than setting `scout.apiKey`, add the same entry under +`windowsDaemon.extraEnvs` as well as `agent-collector.extraEnvs`. ### What it collects