From 1b537512b4483380c33338a97a90b3f764b9b1a5 Mon Sep 17 00:00:00 2001
From: Scott Anderson <scott@influxdata.com>
Date: Mon, 7 Oct 2024 09:31:00 -0600
Subject: [PATCH 1/2] updates to address PR feedback

---
 .../clustered/install/customize-cluster/scale.md       | 10 +++++++---
 .../install/set-up-cluster/configure-cluster/_index.md |  9 ++++++---
 .../set-up-cluster/configure-cluster/directly.md       |  2 +-
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/content/influxdb/clustered/install/customize-cluster/scale.md b/content/influxdb/clustered/install/customize-cluster/scale.md
index 238810cb7..63294eaa3 100644
--- a/content/influxdb/clustered/install/customize-cluster/scale.md
+++ b/content/influxdb/clustered/install/customize-cluster/scale.md
@@ -27,13 +27,17 @@ to increase your write throughput and latency.
   requests.
 - **3 ingesters**:
   Ensures redundancy on the write path.
+- **1 querier**:
+  The optimal number of queriers depends on the number of concurrent queries you
+  are likely to have and how long they take to execute.
 - **1 compactor**:
   While you can have multiple compactors, it is more efficient to scale the
   compactor vertically (assign more CPU and memory) rather than horizontally
   (increase the number of compactors).
-- **1 querier**:
-  The optimal number of queriers depends on the number of concurrent queries you
-  are likely to have and how long they take to execute.
+- **1 garbage collector**:
+  The garbage collector is a light-weight process that only needs to be scaled
+  vertically when you observe high resource usage by the garbage collector.
+  _The garbage collector cannot be scaled horizontally._
 
 The default values provide a good starting point for testing.
 Once you have your cluster up and running and are looking for scaling
diff --git a/content/influxdb/clustered/install/set-up-cluster/configure-cluster/_index.md b/content/influxdb/clustered/install/set-up-cluster/configure-cluster/_index.md
index 7f40acaa9..d774ef5a4 100644
--- a/content/influxdb/clustered/install/set-up-cluster/configure-cluster/_index.md
+++ b/content/influxdb/clustered/install/set-up-cluster/configure-cluster/_index.md
@@ -17,9 +17,12 @@ a YAML configuration file.
 Apply configuration settings to your cluster by editing and applying a
 Kubernetes custom resource (CRD) called `AppInstance`.
 The AppInstance CRD is defined in a YAML file (use the `example-customer.yml`
-provided by InfluxData as a template) or, if using the InfluxDB Clustered Helm
-chart, is provided by the chart and configured in a `values.yaml` file.
+provided by InfluxData as a template).
 
-Use one of the following methods to configure your InfluxDB cluster:
+We recommend editing the `AppInstance` resource directly as the primary method
+for configuring and managing your InfluxDB cluster. If you are required to use
+[Helm](https://helm.sh/), there is a InfluxDB Clustered Helm chart available
+that acts as a wrapper for the `AppInstance` resource and lets you use Helm to
+manage configuration changes in your InfluxDB cluster.
 
 {{< children >}}
diff --git a/content/influxdb/clustered/install/set-up-cluster/configure-cluster/directly.md b/content/influxdb/clustered/install/set-up-cluster/configure-cluster/directly.md
index 6294c5bab..3876bdec1 100644
--- a/content/influxdb/clustered/install/set-up-cluster/configure-cluster/directly.md
+++ b/content/influxdb/clustered/install/set-up-cluster/configure-cluster/directly.md
@@ -11,7 +11,7 @@ menu:
     parent: Configure your cluster
 weight: 220
 list_code_example: |
-  <a class="btn arrow" href="/influxdb/clustered/install/set-up-cluster/configure-cluster/directly/">Configure AppInstance directly <span class="cf-icon CaretOutlineRight"></span></a>
+  <a class="btn arrow" href="/influxdb/clustered/install/set-up-cluster/configure-cluster/directly/">Configure AppInstance directly <em class="op65">Recommended</em> <span class="cf-icon CaretOutlineRight"></span></a>
 aliases:
   - /influxdb/clustered/install/configure-cluster/directly/
 ---

From 683fd62ad5ac21ae27ee65b51f83ef406ac1c5b4 Mon Sep 17 00:00:00 2001
From: Scott Anderson <scott@influxdata.com>
Date: Mon, 7 Oct 2024 11:08:37 -0600
Subject: [PATCH 2/2] added garbage collector scaling config

---
 .../influxdb/clustered/admin/scale-cluster.md | 42 ++++++++++++++++++-
 .../install/customize-cluster/scale.md        | 34 ++++++++++++++-
 2 files changed, 72 insertions(+), 4 deletions(-)

diff --git a/content/influxdb/clustered/admin/scale-cluster.md b/content/influxdb/clustered/admin/scale-cluster.md
index bc0329150..3607b6c67 100644
--- a/content/influxdb/clustered/admin/scale-cluster.md
+++ b/content/influxdb/clustered/admin/scale-cluster.md
@@ -32,6 +32,7 @@ resources available to each component.
   - [Querier](#querier)
   - [Router](#router)
   - [Compactor](#compactor)
+  - [Garbage collector](#garbage-collector)
   - [Catalog](#catalog)
   - [Object store](#object-store)
 
@@ -67,6 +68,7 @@ properties in your `AppInstance` resource:
 - Querier
 - Compactor
 - Router
+- Garbage collector
 
 {{% note %}}
 #### Scale your Catalog and Object store
@@ -129,11 +131,18 @@ resource minimums and limits per pod and replicas per component:
     - `limits`
       - `cpu`: Maximum CPU Resource units to assign to routers
       - `memory`: Maximum memory resource units to assign to routers
+  - `garbage-collector`
+    - `requests`
+      - `cpu`: Minimum CPU resource units to assign to the garbage collector
+      - `memory`: Minimum memory resource units to assign to the garbage collector
+    - `limits`
+      - `cpu`: Maximum CPU Resource units to assign to the garbage collector
+      - `memory`: Maximum memory resource units to assign to the garbage collector
 
 {{< expand-wrapper >}}
 {{% expand "View example `AppInstance` with resource requests and limits" %}}
 
-{{% code-placeholders "(INGESTER|COMPACTOR|QUERIER|ROUTER)_(CPU_(MAX|MIN)|MEMORY_(MAX|MIN)|REPLICAS)" %}}
+{{% code-placeholders "(INGESTER|COMPACTOR|QUERIER|ROUTER|GC)_(CPU_(MAX|MIN)|MEMORY_(MAX|MIN)|REPLICAS)" %}}
 
 ```yml
 apiVersion: kubecfg.dev/v1alpha1
@@ -178,6 +187,13 @@ spec:
           limits:
             cpu: ROUTER_CPU_MAX
             memory: ROUTER_MEMORY_MAX
+        garbage-collector:
+          requests:
+            cpu: GC_CPU_MIN
+            memory: GC_MEMORY_MIN
+          limits:
+            cpu: GC_CPU_MAX
+            memory: GC_MEMORY_MAX
 ```
 
 {{% /code-placeholders %}}
@@ -233,11 +249,18 @@ replicas per component:
     - `limits`
       - `cpu`: Maximum CPU Resource units to assign to routers
       - `memory`: Maximum memory resource units to assign to routers
+  - `garbage-collector`
+    - `requests`
+      - `cpu`: Minimum CPU resource units to assign to the garbage collector
+      - `memory`: Minimum memory resource units to assign to the garbage collector
+    - `limits`
+      - `cpu`: Maximum CPU Resource units to assign to the garbage collector
+      - `memory`: Maximum memory resource units to assign to the garbage collector
 
 {{< expand-wrapper >}}
 {{% expand "View example `values.yaml` with resource requests and limits" %}}
 
-{{% code-placeholders "(INGESTER|COMPACTOR|QUERIER|ROUTER)_(CPU_(MAX|MIN)|MEMORY_(MAX|MIN)|REPLICAS)" %}}
+{{% code-placeholders "(INGESTER|COMPACTOR|QUERIER|ROUTER|GC)_(CPU_(MAX|MIN)|MEMORY_(MAX|MIN)|REPLICAS)" %}}
 
 ```yml
 # ...
@@ -274,6 +297,13 @@ replicas per component:
       limits:
         cpu: ROUTER_CPU_MAX
         memory: ROUTER_MEMORY_MAX
+    garbage-collector:
+      requests:
+        cpu: GC_CPU_MIN
+        memory: GC_MEMORY_MIN
+      limits:
+        cpu: GC_CPU_MAX
+        memory: GC_MEMORY_MAX
 ```
 
 {{% /code-placeholders %}}
@@ -435,6 +465,7 @@ to automatically scale your cluster as needed.
 - [Ingester](#ingester)
 - [Querier](#querier)
 - [Compactor](#compactor)
+- [Garbage collector](#garbage-collector)
 - [Catalog](#catalog)
 - [Object store](#object-store)
 
@@ -530,6 +561,13 @@ increasing the available CPU) is the most effective scaling strategy for the
 Compactor. Horizontal scaling increases compaction throughput, but not as
 efficiently as vertical scaling.
 
+### Garbage collector
+
+The Garbage collector can be scaled [vertically](#vertical-scaling). It is a
+light-weight process that typically doesn't require many system resources, but
+if you begin to see high resource consumption on the garbage collector, you can
+scale it vertically to address the added workload.
+
 ### Catalog
 
 Scaling strategies available for the Catalog depend on the PostgreSQL-compatible
diff --git a/content/influxdb/clustered/install/customize-cluster/scale.md b/content/influxdb/clustered/install/customize-cluster/scale.md
index 63294eaa3..4b71c9c85 100644
--- a/content/influxdb/clustered/install/customize-cluster/scale.md
+++ b/content/influxdb/clustered/install/customize-cluster/scale.md
@@ -108,11 +108,18 @@ If omitted, your cluster uses the default scale settings.
     - `limits`
       - `cpu`: Maximum CPU Resource units to assign to routers
       - `memory`: Maximum memory resource units to assign to routers
+  - `garbage-collector`
+    - `requests`
+      - `cpu`: Minimum CPU resource units to assign to the garbage collector
+      - `memory`: Minimum memory resource units to assign to the garbage collector
+    - `limits`
+      - `cpu`: Maximum CPU Resource units to assign to the garbage collector
+      - `memory`: Maximum memory resource units to assign to the garbage collector
 
 {{< expand-wrapper >}}
 {{% expand "View example `AppInstance` with resource requests and limits" %}}
 
-{{% code-placeholders "(INGESTER|COMPACTOR|QUERIER|ROUTER)_(CPU_(MAX|MIN)|MEMORY_(MAX|MIN)|REPLICAS)" %}}
+{{% code-placeholders "(INGESTER|COMPACTOR|QUERIER|ROUTER|GC)_(CPU_(MAX|MIN)|MEMORY_(MAX|MIN)|REPLICAS)" %}}
 
 ```yml
 apiVersion: kubecfg.dev/v1alpha1
@@ -157,6 +164,13 @@ spec:
           limits:
             cpu: ROUTER_CPU_MAX
             memory: ROUTER_MEMORY_MAX
+        garbage-collector:
+          requests:
+            cpu: GC_CPU_MIN
+            memory: GC_MEMORY_MIN
+          limits:
+            cpu: GC_CPU_MAX
+            memory: GC_MEMORY_MAX
 ```
 
 {{% /code-placeholders %}}
@@ -207,11 +221,18 @@ in your `values.yaml`. If omitted, your cluster will use the default scale setti
     - `limits`
       - `cpu`: Maximum CPU Resource units to assign to routers
       - `memory`: Maximum memory resource units to assign to routers
+  - `garbage-collector`
+    - `requests`
+      - `cpu`: Minimum CPU resource units to assign to the garbage collector
+      - `memory`: Minimum memory resource units to assign to the garbage collector
+    - `limits`
+      - `cpu`: Maximum CPU Resource units to assign to the garbage collector
+      - `memory`: Maximum memory resource units to assign to the garbage collector
 
 {{< expand-wrapper >}}
 {{% expand "View example `values.yaml` with resource requests and limits" %}}
 
-{{% code-placeholders "(INGESTER|COMPACTOR|QUERIER|ROUTER)_(CPU_(MAX|MIN)|MEMORY_(MAX|MIN)|REPLICAS)" %}}
+{{% code-placeholders "(INGESTER|COMPACTOR|QUERIER|ROUTER|GC)_(CPU_(MAX|MIN)|MEMORY_(MAX|MIN)|REPLICAS)" %}}
 
 ```yml
 # The following settings tune the various pods for their cpu/memory/replicas
@@ -257,6 +278,15 @@ resources:
     limits:
       cpu: ROUTER_CPU_MAX
       memory: ROUTER_MEMORY_MAX
+  
+  # The garbage collector evicts obsolete data and files
+  garbage-collector:
+    requests:
+      cpu: GC_CPU_MIN
+      memory: GC_MEMORY_MIN
+    limits:
+      cpu: GC_CPU_MAX
+      memory: GC_MEMORY_MAX
 ```
 
 {{% /code-placeholders %}}