@cryptotaxi247 / netdata / commits / ea4646c75

docs: task class: improve_docs — add a kubernetes multi-environment example (#22548)

* docs: update docs/netdata-cloud-room-per-kubernetes-namespace * docs: clarify room assignment Kubernetes example * delete review sow * docs: restore room-assignment page structure * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: nedi-app[bot] <nedi-app[bot]@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Fotis Voutsas <fotis@netdata.cloud> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

nedi-app[bot] committed May 27, 2026 at 11:11 UTC ea4646c7593c954944e38dd6c1d8cfa5fe6d3a98
2 files changed +52
docs/netdata-agent/configuration/organize-systems-metrics-and-alerts.md
+2
@@ -168,6 +168,8 @@ Add your own labels to categorize systems by any criteria you need.
168
169 5. Verify your labels at `http://HOST-IP:19999/api/v1/info`
170
171 +Use custom host labels such as `environment` with [Node Rule-Based Room Assignment](/docs/netdata-cloud/node-rule-based-room-assignment.md) to route Kubernetes Nodes into separate Rooms.
172 +
173 ### Stream labels from Child to Parent
174
175 In Parent-Child setups, host labels automatically stream from children to the parent node. Access any child's labels through the parent at:
docs/netdata-cloud/node-rule-based-room-assignment.md
+50
@@ -105,3 +105,53 @@ You can view each Node's membership status in the Room's Nodes table under the "
105 Group membership can be either STATIC or RULE—these work independently. A node can belong to groups through STATIC assignments (added manually) or through RULE assignments (matched automatically). RULEs cannot override STATIC memberships, and removing a node's STATIC membership does not affect its RULE memberships.
106
107 :::
108 +
109 +<details>
110 +<summary><strong>Example: Kubernetes environments</strong></summary><br/>
111 +
112 +If you run multiple environments (such as dev, acc, and prod) in a single Kubernetes cluster, you can use custom host labels and room assignment rules to automatically route each environment's Nodes into separate Rooms.
113 +
114 +### Step 1 — Set host labels on child Nodes
115 +
116 +Use the Helm chart's `child.configs.netdata.data` override to add a `[host labels]` section to every child Node. Create (or edit) an `override.yml` file:
117 +
118 +```yaml
119 +child:
120 + configs:
121 + netdata:
122 + data: |
123 + [host labels]
124 + environment = ${CLUSTER_ENV}
125 +```
126 +
127 +Deploy or upgrade with the override:
128 +
129 +```bash
130 +helm upgrade --install -f override.yml netdata netdata/netdata
131 +```
132 +
133 +Set `CLUSTER_ENV` to `dev`, `acc`, or `prod` per cluster (or node pool) via your deployment tooling. For more Helm chart options, see the [Kubernetes installation guide](/packaging/installer/methods/kubernetes.md) and the [Helm chart reference](https://github.com/netdata/helmchart#configuration).
134 +
135 +### Step 2 — Create one Room per environment
136 +
137 +In Netdata Cloud, create three Rooms — for example **Dev**, **Acc**, and **Prod**.
138 +
139 +### Step 3 — Create inclusion rules
140 +
141 +In each Room's **Nodes** tab, add an inclusion rule that matches the `environment` host label:
142 +
143 +| Room | Label | Operator | Value |
144 +|:-----|:--------------|:---------|:-------|
145 +| Dev | `environment` | equals | `dev` |
146 +| Acc | `environment` | equals | `acc` |
147 +| Prod | `environment` | equals | `prod` |
148 +
149 +Rules are evaluated in real time — as soon as a child Node connects with the matching label, it is assigned to the corresponding Room.
150 +
151 +:::note
152 +
153 +Netdata deploys one child Agent per Kubernetes **node**, not per namespace or workload, and Room assignment rules apply to that child Agent as a whole. This pattern works best when each environment runs on dedicated nodes or node pools. If environments share the same nodes, host-label rules cannot route namespaces on those nodes into different Rooms.
154 +
155 +:::
156 +
157 +</details>