For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
      • AstroFully-managed data operations, powered by Apache Airflow.
      • Astro Private CloudRun Airflow-as-a-service in your environment.
      • Professional ServicesExpert Airflow services for your enterprise's success.
    • Tools
      • Cosmos
      • Orbiter
      • CLI
      • AI SDK
      • Agents
      • Blueprint
      • UpdatesThe State of Airflow 2026See the insights from over 5,800 data practitioners in the full report. Download Now ➔
  • Customers
  • Docs
    • Insights
      • Blog
      • Webinars
      • Resource Library
      • Events
    • Education
      • Academy
      • What is Airflow?
  • Pricing
Get Started Free
      • Upgrade Astronomer
      • Apply a config change
        • Use a registry backend
        • Configure namespace pools
        • Configure platform resources
        • Configure component size limits
        • Overprovision Deployments
    • Book Office Hours

Product

  • Platform Overview
  • Astro
  • Astro Observe
  • Astro Private Cloud
  • Security & Trust
  • Pricing

Tools & Services

  • Cosmos
  • Docs
  • Professional Services
  • Product Updates

Use Cases

  • AI Ops
  • Data Observability
  • ETL/ELT
  • ML Ops
  • Operational Analytics
  • All Use Cases

Industries

  • Financial Services
  • Gaming
  • Retail
  • Manufacturing
  • Healthcare
  • All Industries

Resources

  • Academy
  • eBooks & Guides
  • Blog
  • Webinars
  • Events
  • The Data Flowcast Podcast
  • All Resources

Airflow

  • What is Airflow
  • Airflow on Astro
  • Airflow 3.0
  • Airflow Upgrades
  • Airflow Use Cases
  • Airflow 2.x End of Life

Company

  • Our Story
  • Customers
  • Newsroom
  • Careers
  • Contact

Support

  • Knowledge Base
  • Status
  • Contact Support
GitHubYouTubeLinkedInx
  • Legal
  • Privacy
  • Terms of Service
  • Consent Preferences

  • Do Not Sell or Share My Personal information
  • Limit the Use Of My Sensitive Personal Information

Apache Airflow®, Airflow, and the Airflow logo are trademarks of the Apache Software Foundation. Copyright © Astronomer 2026. All rights reserved.

LogoLogo
On this page
  • Astro Units (AU’s)
  • Configure Deployment-level limits for individual pod sizes
  • Configure Deployment-level limits for resource usage
  • Configure the sizes of individual Deployment-level components
  • Configurable Components
  • Airflow Scheduler
  • Airflow Webserver
  • StatsD
  • Database Connection Pooler (PgBouncer)
  • Celery Diagnostic Web Interface (Flower)
  • Redis
  • Celery Workers
  • Triggerer
  • Configure the size of KubernetesExecutor task pods
  • Customize Astro Units (AU’s)
AdministrationManage platform resources

Configure component size limits

Edit this page
Built with

Astronomer Software allows you to customize the minimum and maximum sizes of most Astronomer platform and Airflow components.

Astro Units (AU’s)

You can increase or decrease resources on Astro by units of size know as AU’s (Astro Units). Adding or removing an AstroUnit changes a Deployment’s size by changing the following:

  • the size of a component by one-tenth of a v-core
  • the size of the component by 384Mi of memory
  • the limit of connections to the Postgres server by half of a connection
  • the limit of connections used internally by Airflow to the database connection pooler by 5
  • the size of the deployment-namespace’s overall cumulative limits (ResourceQuota and LimitRange) by one-tenth of a v-core and 834Mi of memory.
  • the limit of pods in the namespace by one pod (ResourceQuota)

Configure Deployment-level limits for individual pod sizes

You can use astronomer.houston.config.deployments.maxPodAu to configure the maximum size any individual pod can be.

1astronomer:
2 houston:
3 config:
4 deployments:
5 maxPodAu: 35 # default is 35

Configure Deployment-level limits for resource usage

Astronomer Software limits the amount of resources that can be used by all pods in a Deployment by creating and managing a LimitRange and ResourceQuota for the namespace associated with each Deployment.

These values are automatically adjust to account for the resource requirements of various components.

You can add additional resources, beyond the standard amount allocated based on the resource-requirements of standing components, to the LimitRange and ResourceQuota. Add resources by configuring astronomer.houston.config.deployments.maxExtraAu to account for the requirements of KubernetesExecutor and KubernetesPodOperator tasks.

1astronomer:
2 houston:
3 config:
4 deployments:
5 maxExtraAu: 400 # default is 400

Configure the sizes of individual Deployment-level components

Components represent different parts of the Astronomer Software Deployment. You can customize the default configuration for a component by defining it in astronomer.houston.config.deployments.components.

A list of configurable components and options is provided in Configurable Components.

KubernetesExecutor Task pod sizes are created on an as-needed basis, and don’t have persisting resource requirements. Their resource requirements are configured at the task level.

When defining components, you must include the full definition of the component in the list entry after the components key, instead of only the components you want to define.

For example, to increase the maximum size a Celery worker task from 30 AU (3 Vcpu/11.5Gi) to 50AU (3 Vcpu/192Gi), add the full Celery worker component definition to astronomer.houston.config.deployments.components in your values.yaml with a higher limit (defined in AUs):

When increasing CPU or memory limits, ensure the maximum pod size is large enough to avoid errors during pod creation.
1astronomer:
2 houston:
3 config:
4 deployments:
5 components:
6 - name: workers
7 au:
8 default: 10
9 minimum: 1
10 limit: 50 # default was 30
11 extra:
12 - name: terminationGracePeriodSeconds
13 default: 600
14 minimum: 0
15 limit: 36000
16 - name: replicas
17 default: 1
18 minimum: 1
19 limit: 10
20 # any additional component configurations go here
21 # - name: another-component
22 # au:
23 # default: 10
24 # ...

Configurable Components

When defining components, you must include the full definition of the component in the list entry after the components key, instead of only the components you want to define.
KubernetesExecutor task pod sizes are created on an as-needed basis and don’t have persisting resource requirements. Their resource requirements are configured at the task level.

Configurable components include:

Airflow Scheduler

1- name: scheduler
2 au:
3 default: 5
4 minimum: 5
5 limit: 30
6 extra:
7 - name: replicas
8 default: 1
9 minimum: 1
10 limit: 4
11 minAirflowVersion: 2.0.0

Airflow Webserver

1- name: webserver
2 au:
3 default: 5
4 minimum: 5
5 limit: 30

StatsD

1- name: statsd
2 au:
3 default: 2
4 minimum: 2
5 limit: 30

Database Connection Pooler (PgBouncer)

1- name: pgbouncer
2 au:
3 default: 2
4 minimum: 2
5 limit: 2

Celery Diagnostic Web Interface (Flower)

1- name: flower
2 au:
3 default: 2
4 minimum: 2
5 limit: 2

Redis

1- name: redis
2 au:
3 default: 2
4 minimum: 2
5 limit: 2

Celery Workers

1- name: workers
2 au:
3 default: 10
4 minimum: 1
5 limit: 30
6 extra:
7 - name: terminationGracePeriodSeconds
8 default: 600
9 minimum: 0
10 limit: 36000
11 - name: replicas
12 default: 1
13 minimum: 1
14 limit: 10

Triggerer

1- name: triggerer
2 au:
3 default: 5
4 minimum: 5
5 limit: 30
6 extra:
7 - name: replicas
8 default: 1
9 minimum: 0
10 limit: 2
11 minAirflowVersion: 2.2.0

Configure the size of KubernetesExecutor task pods

Kubernetes Executor task pods are defined at the task level when the DAG passes resource requests as part of executor_config into the Operator. When not defined, these tasks default to using 1 AU, which is one-tenth of a Vcpu/384 Mi of memory. This means that when you define resource requests or limits for CPU and memory, ensure the maximum pod size is large enough to avoid errors during pod creation.

Astronomer Software does not automatically raise the namespace-level cumulative resource limits for pods created by the KubernetesExecutor. To avoid pod creation failures, increase the maxExtraAu to support your desired level of resourcing and concurrency.

The following example demonstrates how to configure resource limits and requests:

# import kubernetes.client.models as k8s
from kubernetes.client import models as k8s
# define an executor_config with the desired resources
my_executor_config={
"pod_override": k8s.V1Pod(
spec=k8s.V1PodSpec(
containers=[
k8s.V1Container(
name="base",
resources=k8s.V1ResourceRequirements(
requests={
"cpu": "50m",
"memory": "384Mi"
},
limits={
"cpu": "1000m",
"memory": "1024Mi"
}
)
)
]
)
)
}
# pass in executor_config=my_executor_config to any Operator
#@task(executor_config=my_executor_config)
#def some_task():
# ...
#task = PythonOperator(
# task_id="another_task",
# python_callable=my_fun,
# executor_config=my_executor_config
#)

Note that KubernetesExecutor task pods are limited to the LimitRanges and quotas defined within the pod namespace.

Customize Astro Units (AU’s)

Consult with your Astronomer Resident Architect before changing the amount of CPU or memory granted by an AU.

Configurable options include:

  • astronomer.houston.config.deployments.astroUnit.cpu - the amount an AU contributes to the size of a component, in thousandths of a vCPU, and the size of the LimitRange or ResourceQuota, defaults to 100.
  • astronomer.houston.config.deployments.astroUnit.memory - the amount an AU contributes to the size of a component, in Mi, and the size of the LimitRange or ResourceQuota, set to 384 by default.
  • astronomer.houston.config.deployments.astroUnit.pods - the amount an AU contributes to the maximum amount of pods permitted by ResourceQuota, set to 1 by default.
  • astronomer.houston.config.deployments.astroUnit.actualConns - the amount an AU contributes to the limit of connections to the Postgres server, set to 0.5 by default.
  • astronomer.houston.config.deployments.astroUnit.airflowConns - The amount an AU contributes to the limit of connections used internally by Airflow to the database connection pooler, set to 5 by default.

The following code example shows how to set the resources per individual AU:

1astronomer:
2 houston:
3 config:
4 deployments:
5 astroUnit:
6 # values are listed with their default values
7 cpu: 100
8 memory: 384
9 pods: 1
10 actualConns: 0.5 # upstream connections to postgres
11 airflowConns: 5 # downstream connections to airflow