docker compose testing env orchestrator
Project description
Maxwell's demon of test enviroment
Orchestrate testing env easily.
Wraps docker-compose and it's dependencies into it's own container with http api.
Execute docker-compose commands sequences for starting requested services set from volumed docker-compose files. Rerun environment when in-flight one is different from new requested.
Vedro usage
Add "supervisor" container
maxwelld:
image: docker.io/ko10ok/maxwelld:0.2.9
volumes:
- .:/project
- ./docker-composes:/docker-composes
- ./env-tmp:/env-tmp
environment:
- DOCKER_HOST=tcp://dockersock:2375
- COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}
- NON_STOP_CONTAINERS=dockersock,maxwelld,e2e
- HOST_PROJECT_ROOT_DIRECTORY=${HOST_PROJECT_ROOT_DIRECTORY}
Define services config
# env_set.py
from maxwelld import Environments
from maxwelld import Environment
from maxwelld import DEFAULT_ENV
from maxwelld import Service
web = Service('web')
web_gallery = Service('web-gallery') # Service names "web-gallery", "mq", etc from docker-compose.yml
mq = Service('mq')
db = Service('db')
class Envs(Environments):
DEFAULT = Environment(
DEFAULT_ENV,
web, web_gallery,
db,
mq
)
Enable plugin
from maxwelld import vedro_plugin as vedro_maxwell
from maxwelld import ComposeConfig
from env_set import Envs
class Config(vedro.Config):
class Plugins(vedro.Config.Plugins):
class VedroMaxwell(vedro_maxwell.VedroMaxwell):
enabled = True
envs = Envs()
compose_cfgs = {
'default': ComposeConfig('docker-compose.yml', parallel_env_limit=1),
'dev': ComposeConfig('docker-compose.yml:docker-compose.dev.yml', parallel_env_limit=1),
}
How To Start Contributing
Run e2e tests
cd tests
make watch # separate terminal to watch for changes
make e2e-run
# verbose output
make e2e-run args='-vvv'
# specific test
make e2e-run args='scenarios/api/up_env_with_custom_services_set_enviroment.py -vvv'
Update in-image maxwelld library / rebuild dependencies
make watch -B # kill & restart existing watcher
# or
make e2e-run -B # rebuild before test run
Run in-project integrated
Client changes testing (e2e vedro)
Add volume with package
e2e:
volumes:
- /Users/***/repos/maxwelld:/maxwelld
and update in started container
docker-compose exec e2e /venv/bin/python3 -m pip install /maxwelld
Server changes testing
make beta image
make build-image-beta
and change it for ur project
image: docker.io/***/maxwelld:*.*.*-beta
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file maxwelld-2.1.5.tar.gz.
File metadata
- Download URL: maxwelld-2.1.5.tar.gz
- Upload date:
- Size: 34.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
879110ea020739a30209411a350df52243b5e876ea109a012c34990e887fde17
|
|
| MD5 |
ed5bd64bafcc72658ed8f710d49d2efc
|
|
| BLAKE2b-256 |
4dd56d4492ffd26c35c63e2f92a599c53c07d7a149e8a58713eb781d34044ad1
|
File details
Details for the file maxwelld-2.1.5-py3-none-any.whl.
File metadata
- Download URL: maxwelld-2.1.5-py3-none-any.whl
- Upload date:
- Size: 47.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72e107e63949e488e1f1609742230ef9a0907ebaacf229a65b893ee6b41e1619
|
|
| MD5 |
9cbb9f888060ecaa62bfd6a20c46a96e
|
|
| BLAKE2b-256 |
c773e78f389898846edd131320a0a6e346d617a7553b249a96709163b487eaa8
|