Skip to content

Update Resource Pools

Overview⚓︎

Update pools to adjust replicas, CPU, memory, or storage after creation. Use the UI or API for quick edits, or hydrolixcluster.yaml for versioned configuration.

Pools can’t be renamed or have their service type changed. To change those, create a new pool.


Update a pool in the UI⚓︎

  1. Go to Scale in the left navigation.
  2. Select the menu for the pool you want to update.
  3. Edit the fields you need.
  4. Select Publish update.

Update a pool with the API⚓︎

Use the Update Pool endpoint.

{
  "name": "intake-pool",
  "settings": {
    "k8s_deployment": {
      "replicas": "3",
      "cpu": "2",
      "memory": "4Gi",
      "storage": "8Gi"
    }
  }
}

Update an automatic pool⚓︎

When you configure a new table source, Hydrolix creates a pool automatically. You can’t update these pools through the source endpoints. Instead, use the Update Pool endpoint.

Update a pool with hydrolixcluster.yaml⚓︎

The update method depends on how the pool was created:

  • Manually created pools: update settings in the pools section.
  • Automatically created pools or defaults: update settings in the scale section.

This example shows two intake pools:

spec:
  pools:
    intake-pool-1:
      service: intake-head
      replicas: 2
    intake-pool-2:
      service: intake-head
      cpu: 1
  scale:
    intake-head:
      replicas: 3
      cpu: 3

Result⚓︎

  • intake-pool-1: replicas: 2, cpu: 3: Pool sets replicas, global sets CPU
  • intake-pool-2: replicas: 3, cpu: 1: global sets replicas, pool sets CPU

Scale a pool⚓︎

Scale a pool to adjust replicas, CPU, memory, or storage without affecting other pools. Use the UI or API for quick changes, or hydrolixcluster.yaml for versioned configuration.

Most pool services are stateless. If you scale stateful services such as postgres, review Stateful and Stateless Scaling and PVC impacts before making changes.

Scale settings⚓︎

These keys control how a pool uses resources:

Setting Description Unit
replicas Number or range of pods in the pool Integer or range (for example 3 or 1-5)
cpu CPU requested per pod Number (can be fractional, such as 0.5 or 725m)
memory RAM requested per pod Mi or Gi
storage Ephemeral storage per container Mi or Gi
target_cpu_utilization_percentage* Target CPU for the Horizontal Pod Autoscaler (HPA) 0–100, whole number

* You can’t set target_cpu_utilization_percentage with the API. Use hydrolixcluster.yaml or Kubernetes directly.

Scale a pool in the UI⚓︎

  1. Open Scale in the left navigation.
  2. Find the pool and select the menu.
  3. Update replicas and resources.
  4. Select Publish update.

Scale a pool with the API⚓︎

Use the Update pool endpoint.

{
  "name": "intake-pool",
  "settings": {
    "k8s_deployment": {
      "replicas": "3",
      "cpu": "2",
      "memory": "4Gi",
      "storage": "8Gi"
    }
  }
}

Scale a pool with hydrolixcluster.yaml⚓︎

Update a manually created pool⚓︎

1
2
3
4
5
6
7
8
spec:
  pools:
    intake-pool:
      service: intake-head
      replicas: 3
      cpu: 2
      memory: 4Gi
      storage: 8Gi

Set an HPA target⚓︎

This example sets the CPU target to 30% for the Horizontal Pod Autoscaler (HPA).

1
2
3
4
5
6
spec:
  pools:
    merge-peer-ii:
      service: merge-peer
      replicas: 2-4
      target_cpu_utilization_percentage: 30

Precedence of scale and pools settings⚓︎

Values under spec.scale.<service> apply to all pools of that service unless a pool defines its own value.

Example:

spec:
  pools:
    intake-pool-1:
      service: intake-head
      replicas: 2
    intake-pool-2:
      service: intake-head
      cpu: 1
  scale:
    intake-head:
      replicas: 3
      cpu: 3

Result⚓︎

  • intake-pool-1: replicas: 2, cpu: 3 -> Pool sets replicas, global sets CPU
  • intake-pool-2: replicas: 3, cpu: 1 -> Global sets replicas, pool sets CPU