Skip to main content

Don't miss the biggest Airflow event of the year: Airflow Summit 2023, Sept 19-21

Join Us →

Configure the Astro CLI

Every Astro project includes a file called .astro/config.yaml that supports various project-level settings, including:

  • The name of your Astro project.
  • The port for the Airflow webserver and Postgres metadata database.
  • The username and password for accessing the Postgres metadata database.

In most cases, you only need to modify these settings in the case of debugging and troubleshooting the behavior of Airflow components in your local environment.

Set a configuration

Run the following command in an Astro project:

astro config set <configuration-option> <value>

This command applies your configuration to .astro/config.yaml in your current Astro project. Configurations do not persist between Astro projects.

For example, to update the port of your local Airflow webserver to 8081 from the default of 8080, run:

astro config set webserver.port 8081

Available CLI configurations

info

The Astronomer product you're using determines the format and behavior of the configuration commands. Select one of the following tabs to change product contexts.

OptionDescriptionDefault valueValid values
airflow.expose_portDetermines whether to expose the webserver and postgres database of a local Airflow environment to all connected networks.falsetrue, false
cloud.api.protocolThe type of protocol to use when calling the Airflow API in a local Airflow environment.httpshttp, https
cloud.api.portThe port to use when calling the Airflow API in a local environment.443Any available port
cloud.api.ws_protocolThe type of WebSocket (ws) protocol to use when calling the Airflow API in a local Airflow environment.wssws, wss
contextThe context for your Astro project.Empty stringAny available context
disable_astro_runDetermines whether to disable astro run commands and exclude astro-run-dag from any images built by the CLI.falsetrue, false
local.registryThe location of your local Docker container running Airflow.localhost:5555Any available port
postgres.userThe username for the Postgres metadata database.postgresAny string
postgres.passwordThe password for the Postgres metadata database.postgresAny string
postgres.hostThe hostname for the Postgres metadata database.postgresAny string
postgres.portThe port for the Postgres metadata database.5432Any available port
postgres.repositoryImage repository to pull the Postgres image fromdocker.io/postgresAny Postgres image in a repository
postgres.tagThe tag for your Postgres image12.6Any valid image tag
project.nameThe name of your Astro project.Empty stringAny string
show_warningsDetermines whether warning messages appear when starting a local Airflow environment. For example, when set to true, you'll receive warnings when a new version of Astro Runtime is available and when your Astro project doesn't have any DAGs.truetrue, false
skip_parseDetermines whether the CLI parses DAGs before pushing code to a Deployment.falsetrue, false
upgrade_messageDetermines whether a message indicating the availability of a new Astro CLI version displays in the Astro CLI.truetrue, false
webserver.portThe port for the webserver in your local Airflow environment.8080Any available port

Run the Astro CLI using Podman

The Astro CLI requires a container management engine to run Apache Airflow components on your local machine and deploy to Astro. For example, the astro dev start and astro deploy commands both require containers.

By default, the Astro CLI uses Docker as its container management engine. However, if your organization uses Podman to run and manage containers, you can configure the Astro CLI to use it instead. Podman is a secure, free, and open source alternative to Docker that doesn't require root access and orchestrates containers without using a centralized daemon.

Set up Podman on a Mac operating system so you can run Apache Airflow locally and deploy to Astro with Podman containers.

Prerequisites

  • Podman 3 or later. See Getting started with Podman.
  • A running Podman machine with at least 4 GB of RAM. To confirm that Podman is running, run podman ps.
  • (M1 MacOS) Turn on rootful mode for Podman by using podman machine set --rootful. A Podman bug currently causes issues with volumes when running in rootless mode on M1.
tip

If you receive an error after running podman ps, there is likely a problem with your Podman connection. You might need to set the system-level DOCKER_HOST environment variable to be the location of your Podman service socket:

  1. Run the following command to identify the connection URI for podman-machine-default:

    podman system connection ls

    The output should look like the following:

    podman-machine-default*      /Users/user/.ssh/podman-machine-default  ssh://core@localhost:54523/run/user/1000/podman/podman.sock
    podman-machine-default-root /Users/user/.ssh/podman-machine-default ssh://root@localhost:54523/run/podman/podman.sock
  2. Copy the value in the URI column from podman-machine-default*. This is typically unix:///run/podman/podman.sock, but it can vary based on your installation.

  3. Set your DOCKER_HOST environment variable to the value of the URI.

Setup

  1. Run the following command to confirm that Podman has access to Astro images at docker.io:

    podman run --rm -it postgres:12.6 whoami

    If this command fails, use Podman Desktop to change Podman's default image registry location to docker.io. See Provide pre-defined registries.

  2. Run the following command to set Podman as your container management engine for the Astro CLI:

    astro config set -g container.binary podman

    If you're using Podman 3, additionally run the following command:

    astro config set -g duplicate_volumes false

Switch between Docker and Podman

After you set up the Astro CLI to use Podman on your local machine, the CLI automatically runs Podman containers whenever you run a command that requires them. To revert to the default behavior and run CLI commands in Docker containers, run the following command:

astro config set container.binary docker

If you need to switch back to using Podman again, run the following command:

astro config set container.binary podman

Was this page helpful?

Sign up for Developer Updates

Get a summary of new Astro features once a month.

You can unsubscribe at any time.
By proceeding you agree to our Privacy Policy, our Website Terms and to receive emails from Astronomer.