Containerized Development Environment

March 20, 2026 · View on GitHub

This guide walks you through setting up the containerized ARO-RP development environment on Linux.

For an overview of the setup and how the workspace is mounted, see Containerized Development Environment.

Prerequisites

  1. Podman 4.7+ installed on your host system (https://podman.io/docs/installation).
  2. Azure CLI installed on your host system.
  3. You've followed the steps to prepare your development environment.

Setup Steps

Follow these steps from the root directory of the ARO-RP repository.

1. Set up your environment variables

Copy the example environment file and edit it with your specific configuration.

cp env.example env
# Edit the newly created 'env' file with your settings

2. Get the required secrets and source your environment

Use the project's Makefile to fetch necessary secrets from Azure storage. The secrets will be downloaded and extracted to the ./secrets directory.

SECRET_SA_ACCOUNT_NAME=<secrets_storage_account_name> make secrets

Replace <secrets_storage_account_name> with the actual storage account name for your environment.

Then source your environment file to load the configuration (including secrets):

. ./env

3. Enable the Podman socket

This is required when not using Hive for cluster deployment.

systemctl --user enable --now podman.socket

Verify the socket is running:

systemctl --user status podman.socket

4. Build the container image

make dev-env-build

5. Start the container

make dev-env-start

The container runs an entrypoint script that sources your environment variables and starts the RP in local development mode.

Verify the container is running:

podman compose ps

6. View RP Logs (Optional)

Check the logs to see the RP startup output.

podman compose logs aro-dev-env

7. Enter the container shell

To interact with the environment inside the container (e.g., run other commands, debug):

podman compose exec aro-dev-env bash

8. Run other development commands (inside container shell)

From inside the container, you can run project-specific make commands or scripts that expect the Go environment to be set up.

# Example: Run tests
make test-go

# Example: Build all components
make build-all

Using Local Azure CLI with the Development RP

To use your local Azure CLI (az) to interact with the RP running in the container, you need to configure your local environment:

  1. Exit the container shell if you are in it.

  2. Set the RP_MODE environment variable in your local host terminal:

    export RP_MODE="development"
    # Or set it in your local .env file if your local az setup loads it
    
  3. Install the development az aro extension from your local source code:

    make az
    

    This should build the extension and configure your local az to use it when RP_MODE is set to development.

Now, when you run az aro commands on your local host (from the project root), they should be directed to the RP running in your container (accessible via localhost:8443).

Cleanup

To stop and remove the containerized development environment:

make dev-env-stop

If you also want to remove the built image:

podman rmi localhost/aro-rp_aro-dev