Update and Scale Resource Pools

Change settings for existing resource pools with the UI, API, or hydrolixcluster.yaml

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:

SettingDescriptionUnit
replicasNumber or range of pods in the poolInteger or range (for example 3 or 1-5)
cpuCPU requested per podNumber (can be fractional, such as 0.5 or 725m)
memoryRAM requested per podMi or Gi
storageEphemeral storage per containerMi 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

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).

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

Related