Skip to content

Latest commit

 

History

History
73 lines (59 loc) · 1.74 KB

CONTRIBUTING.md

File metadata and controls

73 lines (59 loc) · 1.74 KB

Contributing

To make contributions to this charm, you'll need a working Juju development setup.

Prerequisites

Install Charmcraft and LXD:

sudo snap install --classic charmcraft
sudo snap install lxd
sudo adduser $USER lxd
newgrp lxd
lxd init --auto

Install MicroK8s:

sudo snap install microk8s --channel=1.31-strict/stable
sudo usermod -a -G snap_microk8s $USER
newgrp snap_microk8s
sudo microk8s enable hostpath-storage

Enable the Multus MicroK8s addon:

sudo microk8s addons repo add community https://github.com/canonical/microk8s-community-addons --reference feat/strict-fix-multus
sudo microk8s enable multus

Install Juju and bootstrap a controller on the MicroK8S instance:

sudo snap install juju --channel=3.5/stable
juju bootstrap microk8s

This project uses uv. You can install it on Ubuntu with:

sudo snap install --classic astral-uv

You can create an environment for development with uv:

uv sync
source .venv/bin/activate

Testing

This project uses tox for managing test environments. It can be installed with:

uv tool install tox --with tox-uv

There are some pre-configured environments that can be used for linting and formatting code when you're preparing contributions to the charm:

tox -e lint                                             # code style
tox -e static                                           # static analysis
tox -e unit                                             # unit tests
tox -e integration -- --charm_path=PATH_TO_BUILD_CHARM  # integration tests
Integration tests require the charm to be built with `charmcraft pack` first.

Build

Go to the charm directory and run:

charmcraft pack