https://github.com/huntdatacenter/jujuna
Jujuna - Continuous deployment, upgrade and testing for Juju.
https://github.com/huntdatacenter/jujuna
bundles charms ci-cd cloud hacktoberfest juju openstack
Last synced: 2 months ago
JSON representation
Jujuna - Continuous deployment, upgrade and testing for Juju.
- Host: GitHub
- URL: https://github.com/huntdatacenter/jujuna
- Owner: huntdatacenter
- License: apache-2.0
- Created: 2018-10-24T11:15:33.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-08-24T09:14:06.000Z (almost 4 years ago)
- Last Synced: 2026-03-13T07:33:10.220Z (3 months ago)
- Topics: bundles, charms, ci-cd, cloud, hacktoberfest, juju, openstack
- Language: Python
- Homepage: https://jujuna.readthedocs.io/
- Size: 202 KB
- Stars: 4
- Watchers: 2
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- License: LICENSE
Awesome Lists containing this project
README
# Jujuna
[](https://github.com/huntdatacenter/jujuna/actions)
[](https://jujuna.readthedocs.io/en/latest/?badge=latest)
[](https://pypi.org/project/jujuna/)
Continuous deployment, upgrade and testing for Juju.
At [HUNT Cloud](https://www.ntnu.edu/huntgenes/hunt-cloud) we run our scientific services based on OpenStack orchestrated by Juju. Such cloud deployments rely on a large set of collaborative softwares, and upgrades can sometimes cause considerable pain. We have therefore introduced Jujuna - a tool to simplify the validation of Juju-based OpenStack upgrades.
New to [Juju](https://jujucharms.com/)? Juju is a cool controller and agent based tool from Canonical to easily deploy and manage applications (called Charms) on different clouds and environments (see [how it works](https://jujucharms.com/how-it-works) for more details).
## Installation
Easy to install using:
```
pip3 install jujuna
```
May require installation of `libssl-dev` package or equivalent if not present in the system.
Run command `jujuna --help` to get the help menu. You can also check the usage in [the documentation](https://jujuna.readthedocs.io/en/latest/usage.html).
## Usage
Running Jujuna requires a working deployment of Juju controller. Juju configs `~/.local/share/juju/` have to be present or credentials have to be specified using params.
```
# Deploy Ceph bundle into ceph model
jujuna deploy openstack/bundle.yaml -m test-cloud -w
# Upgrade apps in ceph model_name
jujuna upgrade -m test-cloud
# Test apps in the model after upgrade
jujuna test tests/openstack-ocata.yaml -t 1800 -m test-cloud
# Destroy apps within a model, without destroying the model
jujuna clean -m test-cloud -w -f -t 1800
```
If you don't have any bundle or just need to try jujuna with some simple example, you can follow our [example guide](https://jujuna.readthedocs.io/en/latest/examples.html).
## Testing Jujuna
How to make sure jujuna and your feature works before pushing out new version.
Testing jujuna with python environments:
```
tox -e lint
tox -e py35
tox -e py36
tox -e py37
```
Testing specific feature:
```
py.test -k test_feature
```
## Deploy to docker registry:
Build image:
```
docker build -t registry.example.com/group/jujuna:0.2.1 -t registry.example.com/group/jujuna:latest .
```
Push to registry:
```
docker push registry.example.com/group/jujuna
```