/managing-astro-deployments
Manage Astronomer production deployments with Astro CLI. Use when the user wants to authenticate, switch workspaces, create/update/delete deployments, or deploy code to production.
$ npx -y skills add astronomer/agents --skill managing-astro-deployments --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/managing-astro-deployments
Context preview
The summary Claude sees to decide when to auto-load this skill.
Manage Astronomer production deployments with Astro CLI. Use when the user wants to authenticate, switch workspaces, create/update/delete deployments, or deploy code to production.
SKILL.md
managing-astro-deployments.SKILL.mdname: managing-astro-deployments
description: Manage Astronomer production deployments with Astro CLI. Use when the user wants to authenticate, switch workspaces, create/update/delete deployments, or deploy code to production.
Astro Deployment Management
This skill helps you manage production Astronomer deployments using the Astro CLI.
> **For local development**, see the **managing-astro-local-env** skill. > **For production troubleshooting**, see the **troubleshooting-astro-deployments** skill.
---
Authentication
All deployment operations require authentication:
# Login to Astronomer (opens browser for OAuth)
astro login
Authentication tokens are stored locally for subsequent commands. Run this before any deployment operations.
---
Workspace Management
Deployments are organized into workspaces:
# List all accessible workspaces
astro workspace list
# Switch to a specific workspace
astro workspace switch <WORKSPACE_ID>
Workspace context is maintained between sessions. Most deployment commands operate within the current workspace context.
---
List and Inspect Deployments
# List deployments in current workspace
astro deployment list
# List deployments across all workspaces
astro deployment list --all
# Inspect specific deployment (detailed info)
astro deployment inspect <DEPLOYMENT_ID>
# Inspect by name (alternative to ID)
astro deployment inspect --deployment-name data-service-stg
What `inspect` Shows
- Deployment status (HEALTHY, UNHEALTHY)
- Runtime version and Airflow version
- Executor type (CELERY, KUBERNETES, LOCAL)
- Scheduler configuration (size, count)
- Worker queue settings (min/max workers, concurrency, worker type)
- Resource quotas (CPU, memory)
- Environment variables
- Last deployment timestamp and current tag
- Webserver and API URLs
- High availability status
---
Create Deployments
# Create with default settings
astro deployment create
# Create with specific executor
astro deployment create --label production --executor celery
astro deployment create --label staging --executor kubernetes
# Executor options:
# - celery: Best for most production workloads
# - kubernetes: Best for dynamic scaling, isolated tasks
# - local: Best for development only
---
Update Deployments
# Enable DAG-only deploys (faster iteration)
astro deployment update <DEPLOYMENT_ID> --dag-deploy-enabled
# Update other settings (use --help for full options)
astro deployment update <DEPLOYMENT_ID> --help
---
Delete Deployments
# Delete a deployment (requires confirmation)
astro deployment delete <DEPLOYMENT_ID>
**Destructive**: This cannot be undone. All DAGs, task history, and metadata will be lost.
---
Deploy Code to Production
Full Deploy
Deploy both DAGs and Docker image (required when dependencies change):
astro deploy <DEPLOYMENT_ID>
Use when:
- Dependencies changed (`requirements.txt`, `packages.txt`, `Dockerfile`)
- First deployment of new project
- Significant infrastructure changes
DAG-Only Deploy (Recommended for Iteration)
Deploy only DAG files, skip Docker image rebuild:
astro deploy <DEPLOYMENT_ID> --dags
Use when:
- Only DAG files changed (Python files in `dags/` directory)
- Quick iteration during development
- Much faster than full deploy (seconds vs minutes)
**Requires**: `--dag-deploy-enabled` flag set on deployment (see Update Deployments)
Image-Only Deploy
Deploy only Docker image, skip DAG sync:
astro deploy <DEPLOYMENT_ID> --image-only
Use when:
- Only dependencies changed
- Dockerfile or requirements updated
- No DAG changes
Force Deploy
Bypass safety checks and deploy:
astro deploy <DEPLOYMENT_ID> --force
**Caution**: Skips validation that could prevent broken deployments.
---
Deployment API Tokens
Manage API tokens for programmatic access to deployments:
# List tokens for a deployment
astro deployment token list --deployment-id <DEPLOYMENT_ID>
# Create a new token
astro deployment token create \
--deployment-id <DEPLOYMENT_ID> \
--name "CI/CD Pipeline" \
--role DEPLOYMENT_ADMIN
# Create token with expiration
astro deployment token create \
--deployment-id <DEPLOYMENT_ID> \
--name "Temporary Access" \
--role DEPLOYMENT_ADMIN \
--expiry 30 # Days until expiration (0 = never expires)
**Roles**:
- `DEPLOYMENT_ADMIN`: Full access to deployment
**Note**: Token value is only shown at creation time. Store it securely.
---
Common Workflows
First-Time Production Deployment
# 1. Login
astro login
# 2. Switch to production workspace
astro workspace list
astro workspace switch <PROD_WORKSPACE_ID>
# 3. Create deployment
astro deployment create --label production --executor celery
# 4. Note the deployment ID, then deploy
astro deploy <DEPLOYMENT_ID>
Iterative DAG Development
# 1. Enable fast deploys (one-time setup)
astro deployment update <DEPLOYMENT_ID> --dag-deploy-enabled
# 2. Make DAG changes locally
# 3. Deploy quickly
astro deploy <DEPLOYMENT_ID> --dags
Promoting Code from Staging to Production
# 1. Deploy to staging first
astro workspace switch <STAGING_WORKSPACE_ID>
astro deploy <STAGING_DEPLOYMENT_ID>
# 2. Test in staging
# 3. Deploy same code to production
astro workspace switch <PROD_WORKSPACE_ID>
astro deploy <PROD_DEPLOYMENT_ID>
---
Configuration Management
# View CLI configuration
astro config get
# Set configuration value
astro config set <KEY> <VALUE>
# Check CLI version
astro version
# Upgrade CLI to latest version
astro upgrade
---
Tips
- Use `--dags` flag for fast iteration (seconds vs minutes)
- Always test in staging workspace before production
- Use `deployment inspect` to verify deployment health before deploying
- Deployment IDs are permanent, names can change
- Most commands work with deployment ID; `inspect` als
Read more
name: managing-astro-deployments description: Manage Astronomer production deployments with Astro CLI. Use when the user wants to authenticate, switch workspaces, create/update/delete deployments, or deploy code to production.
Astro Deployment Management
This skill helps you manage production Astronomer deployments using the Astro CLI.
> **For local development**, see the **managing-astro-local-env** skill. > **For production troubleshooting**, see the **troubleshooting-astro-deployments** skill.
---
Authentication
All deployment operations require authentication:
# Login to Astronomer (opens browser for OAuth) astro login
Authentication tokens are stored locally for subsequent commands. Run this before any deployment operations.
---
Workspace Management
Deployments are organized into workspaces:
# List all accessible workspaces astro workspace list # Switch to a specific workspace astro workspace switch <WORKSPACE_ID>
Workspace context is maintained between sessions. Most deployment commands operate within the current workspace context.
---
List and Inspect Deployments
# List deployments in current workspace astro deployment list # List deployments across all workspaces astro deployment list --all # Inspect specific deployment (detailed info) astro deployment inspect <DEPLOYMENT_ID> # Inspect by name (alternative to ID) astro deployment inspect --deployment-name data-service-stg
What `inspect` Shows
- Deployment status (HEALTHY, UNHEALTHY)
- Runtime version and Airflow version
- Executor type (CELERY, KUBERNETES, LOCAL)
- Scheduler configuration (size, count)
- Worker queue settings (min/max workers, concurrency, worker type)
- Resource quotas (CPU, memory)
- Environment variables
- Last deployment timestamp and current tag
- Webserver and API URLs
- High availability status
---
Create Deployments
# Create with default settings astro deployment create # Create with specific executor astro deployment create --label production --executor celery astro deployment create --label staging --executor kubernetes # Executor options: # - celery: Best for most production workloads # - kubernetes: Best for dynamic scaling, isolated tasks # - local: Best for development only
---
Update Deployments
# Enable DAG-only deploys (faster iteration) astro deployment update <DEPLOYMENT_ID> --dag-deploy-enabled # Update other settings (use --help for full options) astro deployment update <DEPLOYMENT_ID> --help
---
Delete Deployments
# Delete a deployment (requires confirmation) astro deployment delete <DEPLOYMENT_ID>
**Destructive**: This cannot be undone. All DAGs, task history, and metadata will be lost.
---
Deploy Code to Production
Full Deploy
Deploy both DAGs and Docker image (required when dependencies change):
astro deploy <DEPLOYMENT_ID>
Use when:
- Dependencies changed (`requirements.txt`, `packages.txt`, `Dockerfile`)
- First deployment of new project
- Significant infrastructure changes
DAG-Only Deploy (Recommended for Iteration)
Deploy only DAG files, skip Docker image rebuild:
astro deploy <DEPLOYMENT_ID> --dags
Use when:
- Only DAG files changed (Python files in `dags/` directory)
- Quick iteration during development
- Much faster than full deploy (seconds vs minutes)
**Requires**: `--dag-deploy-enabled` flag set on deployment (see Update Deployments)
Image-Only Deploy
Deploy only Docker image, skip DAG sync:
astro deploy <DEPLOYMENT_ID> --image-only
Use when:
- Only dependencies changed
- Dockerfile or requirements updated
- No DAG changes
Force Deploy
Bypass safety checks and deploy:
astro deploy <DEPLOYMENT_ID> --force
**Caution**: Skips validation that could prevent broken deployments.
---
Deployment API Tokens
Manage API tokens for programmatic access to deployments:
# List tokens for a deployment astro deployment token list --deployment-id <DEPLOYMENT_ID> # Create a new token astro deployment token create \ --deployment-id <DEPLOYMENT_ID> \ --name "CI/CD Pipeline" \ --role DEPLOYMENT_ADMIN # Create token with expiration astro deployment token create \ --deployment-id <DEPLOYMENT_ID> \ --name "Temporary Access" \ --role DEPLOYMENT_ADMIN \ --expiry 30 # Days until expiration (0 = never expires)
**Roles**:
- `DEPLOYMENT_ADMIN`: Full access to deployment
**Note**: Token value is only shown at creation time. Store it securely.
---
Common Workflows
First-Time Production Deployment
# 1. Login astro login # 2. Switch to production workspace astro workspace list astro workspace switch <PROD_WORKSPACE_ID> # 3. Create deployment astro deployment create --label production --executor celery # 4. Note the deployment ID, then deploy astro deploy <DEPLOYMENT_ID>
Iterative DAG Development
# 1. Enable fast deploys (one-time setup) astro deployment update <DEPLOYMENT_ID> --dag-deploy-enabled # 2. Make DAG changes locally # 3. Deploy quickly astro deploy <DEPLOYMENT_ID> --dags
Promoting Code from Staging to Production
# 1. Deploy to staging first astro workspace switch <STAGING_WORKSPACE_ID> astro deploy <STAGING_DEPLOYMENT_ID> # 2. Test in staging # 3. Deploy same code to production astro workspace switch <PROD_WORKSPACE_ID> astro deploy <PROD_DEPLOYMENT_ID>
---
Configuration Management
# View CLI configuration astro config get # Set configuration value astro config set <KEY> <VALUE> # Check CLI version astro version # Upgrade CLI to latest version astro upgrade
---
Tips
- Use `--dags` flag for fast iteration (seconds vs minutes)
- Always test in staging workspace before production
- Use `deployment inspect` to verify deployment health before deploying
- Deployment IDs are permanent, names can change
- Most commands work with deployment ID; `inspect` als
AI agent tooling for data engineering workflows. Includes an MCP server for Airflow, a CLI tool (af) for interacting with Airflow from your terminal, and skills that extend AI coding agents with specialized capabilities for working with Airflow and data
Other skills on data.
- /airflow-adapter
Airflow adapter pattern for v2/v3 API compatibility. Use when working with adapters, version detection, or adding new API methods that need to work across Airflow 2.x and 3.x.
Open skill - /airflow-hitl
Builds human-in-the-loop (HITL) Airflow workflows - approval gates, form input, and human-driven branching. Use when a DAG needs a human in the loop - an approval or reject step, sign-off before a task runs, a decision or approval UI, branching on a human choice, or collecting
Open skill - /airflow-plugins
Builds Airflow 3.1+ plugins that embed FastAPI apps, custom UI pages, React components, middleware, macros, and operator links directly into the Airflow UI. Use when building anything custom inside Airflow 3.1+ that involves Python and a browser-facing interface - creating an
Open skill - /airflow-state-store
Persists task and asset state across retries and DAG runs using Airflow 3.3's AIP-103 key/value stores (`task_state_store`, `asset_state_store`) and the crash-safe `ResumableJobMixin`. Use when the user asks about task state store, checkpointing in tasks, persisting state across
Open skill - /airflow
Queries, manages, and troubleshoots Apache Airflow using the `af` CLI. Use when working with anything related to Airflow - a DAG, a DAG run, a task log, an import or parse error, a broken DAG, or any Airflow operation. Covers listing and triggering DAGs, retrying runs, reading
Open skill - /analyzing-data
Queries the data warehouse with SQL and answers business questions about data. Use when answering anything that needs warehouse data - counts, metrics, trends, aggregations, joins across tables, data lookups, or ad-hoc SQL analysis (for example "who uses X", "how many Y", "show
Open skill

