Prepare Your Development Environment

March 10, 2026 ยท View on GitHub

Note

This document outlines the development dependencies required to build the RP code.

Warning

Failure to complete all prerequisites in Local RP Development Setup will cause failures

Install Local RP Dependencies

Complete all steps located in Local RP Development Setup

Getting Started

Setting up your ARO-RP development environment.

  1. Clone the repository
    git clone https://github.com/Azure/ARO-RP.git
    
  2. Go to project
    cd /path/to/ARO-RP
    
  3. Configure pyenv Python version
    pyenv local 3.10.0
    pyenv rehash
    
    python --version
    
  4. Make environment
    make pyenv
    
  5. Login to Azure

    Warning

    This will install the az client. However, if the install fails you can attempt a re-install with:

    source pyenv/bin/activate
    pip install azure-cli
    
    az login
    
  6. Configure git
    1. Set pre-commit hook
    make init-contrib
    
    1. Set GitHub username globally
    git config --global github.user "<USERNAME>"
    

    Tip

    Your GitHub username can optionally be set locally to this repository

    git config github.user "<USERNAME>"
    

Getting Started With Docker Compose

  1. Install optional dependencies
    1. Fedora/RHEL Optional Dependencies
    2. Debian Optional Dependencies
    3. MacOS Optional Dependencies
  2. Check the env.example file and copy it to create your own
    cp env.example env
    
  3. Source the env file
    . ./env
    
  4. Run VPN, RP, and Portal services using Docker Compose
    docker compose up \
        vpn \
        rp \
        portal
    

Bash Helpers

See Bash Environment Helpers

How to use ARO-RP Makefile

See Makefile Usage

Troubleshooting

IssueResolution
Error ./env:.:11: no such file or directory: secrets/env.Run SECRET_SA_ACCOUNT_NAME=rharosecretsdev make secrets to resolve.
az -v does not return aro as a dependency.Ensure the environment file parameters are correctly set, following the env.example file.
Git commit fails due to branch naming error: There is something wrong with your branch name...Ensure the branch name follows the required pattern:

^${USERNAME}\/(ARO-[0-9]{4,}[a-z0-9._-]*|hotfix-[a-z0-9._-]+|gh-issue-[0-9]+[a-z0-9._-]*)$

If the PR is not tied to a Jira ticket, GitHub issue, or hotfix, use --no-verify with git commit to bypass the check.