Skip to content

Azure/ARO-HCP

ARO-HCP

Description

The RP for the ARO-HCP project.

Development setup

For instructions on building out a dev environment for testing -- Review the Dev Infrastructure guide

For instructions on building and testing Frontend -- Check out Frontend's README

Remote Containers Development setup

The setup is based on VSCode Remote Containers. See here for more information.

VSCode should be installed from the offical downloads page (as opposed to other sources, like flatpak). This is to avoid potential docker compatibility issues with the required extensions mentioned below.

The predefined container is in .devcontainer with a custom postCreate.sh. To use it, please install the Remote - Containers extension in VSCode.

The VSCode will have the following extensions installed:

During the container setup, it also installs golangci-lint, which is the de facto standard for linting go.

On top of that, it sets up the Bicep CLI and the Azure CLI with the Bicep extension to simplify the development of infra code.

Finally, the container also contains the nodejs and sets up the typespec which is needed for the ARM contract development, as it is now mandatory to have the typespec in the ARM templates. To enable the typespec extensions, which is not yet part of official extensions, once the vscode opens and the devcontainer is ready, you need to run the following command

tsp code install

If you are developing on MacOS you will need to install both docker cli (NOT docker desktop) and colima. There have been issues with the devcontainer working with vscode using podman desktop.

brew install docker
brew install colima

Before running your devcontainer, make sure colima is started.

colima start --cpu 4 --memory 8 --vz-rosetta --vm-type=vz

Then, rebuild and connect to the dev container: cmd + shift + P => dev containers: rebuild container

Most importantly, the container is set up to use the same user as the host machine, so you can use the same git config and ssh keys. It is implemented as a host mount in the .devcontainer/devcontainer.json file.

"mounts": [
    "source=${localEnv:HOME}/.gitconfig,target=/home/vscode/.gitconfig,type=bind,consistency=cached"
],