Gunicorn

  • By Franco Luciano Forneron Buschiazzo
Channel Revision Published Runs on
latest/stable 45 25 Nov 2022
Ubuntu 20.04
latest/edge 96 26 Apr 2024
Ubuntu 20.04
juju deploy gunicorn-k8s --channel edge
Show information

Platform:

How to contribute

This document explains the processes and practices recommended for contributing enhancements to the Gunicorn-k8s operator.

  • Generally, before developing enhancements to this charm, you should consider opening an issue explaining your use case.
  • If you would like to chat with us about your use-cases or proposed implementation, you can reach us at Canonical Mattermost public channel or Discourse.
  • Familiarising yourself with the Charmed Operator Framework library will help you a lot when working on new features or bug fixes.
  • All enhancements require review before being merged. Code review typically examines
    • code quality
    • test coverage
    • user experience for Juju administrators of this charm.
  • Please help us out in ensuring easy to review branches by rebasing your pull request branch onto the main branch. This also avoids merge commits and creates a linear Git commit history.

Developing

The code for this charm can be downloaded as follows:

git clone https://github.com/canonical/gunicorn-k8s-operator

You can use the environments created by tox for development:

tox --notest -e unit
source .tox/unit/bin/activate

Testing

tox -e fmt           # update your code according to linting rules
tox -e lint          # code style
tox -e unit          # unit tests
# integration tests (see below for building docker images)
tox -e integration -- --gunicorn-image localhost:32000/gunicorn:latest --statsd-prometheus-exporter-image prom/statsd-exporter
tox                  # runs 'lint' and 'unit' environments

Build charm

Build the charm in this git repository using:

charmcraft pack

For the integration tests (and also to deploy the charm locally), the gunicorn image is required in the microk8s registry. To enable it:

microk8s enable registry

The following command pushes the required image into the registry:

docker build . -t localhost:32000/gunicorn:latest -f gunicorn.Dockerfile
docker push localhost:32000/gunicorn:latest

Deploy

# Create a model
juju add-model gunicorn-dev
# Enable DEBUG logging
juju model-config logging-config="<root>=INFO;unit=DEBUG"
# Deploy the charm (Assuming you're on amd64)
juju deploy ./gunicorn-k8s_ubuntu-20.04-amd64.charm --resource gunicorn-image='localhost:32000/gunicorn:latest' --resource statsd-prometheus-exporter-image='prom/statsd-exporter'

Canonical contributor agreement

Canonical welcomes contributions to the Indico Operator. Please check out our contributor agreement if you’re interested in contributing to the solution.


Help improve this document in the forum (guidelines). Last updated 1 year, 1 month ago.