Skip to main content

Molecule Hetzner Cloud Plugin :: run molecule tests with hetzner cloud

Project description

Molecule Hetzner Cloud Plugin

Drone CI-CD PyPI Package Repository License

A Hetzner Cloud plugin for Molecule.

This plugin allows you to do molecule init role myrolename -d hetznercloud and have Molecule provision on-demand Hetzner Cloud VPSes of your choice for your integration testing. New VPSes will be automagically created and provisioned on each molecule test run, SSH keys are generated and managed internally and all resources are cleaned up regardless of whether the role under test succeeds or fails.

Support

If you use this plugin in a commercial setting or you find it personally useful, please support my maintenance work financially through my Liberapay profile or through my Github Sponsor profile. I do not receive any financial support from RedHat or Hetzner Cloud for this work.

Usage

You need to expose a HCLOUD_TOKEN environment variable in your environment. Find out more about how to get one of those over here.

$ export HCLOUD_TOKEN=mycoolapitoken

Then install the required Python package.

$ pip install molecule-hetznercloud
$ molecule init role myrolename -d hetznercloud

Your myrolename/molecule/default/molecule.yml should then look like the following.

---
dependency:
  name: galaxy
driver:
  name: hetznercloud
platforms:
  - name: my-instance-name
    server_type: cx11
    image: debian-10
provisioner:
  name: ansible
verifier:
  name: ansible

Please see docs.hetzner.cloud for information regarding images and server types.

Then just run the role.

$ cd myrolename && molecule test

To ease initial debugging for getting thing started, also expose the following environment variables.

$ export MOLECULE_NO_LOG=False  # not so verbose, helpful
$ export MOLECULE_DEBUG=True  # very verbose, last ditch effort

Mirroring

Issues will be responded to on both issue trackers.

Change log

See CHANGELOG.md.

Molecule Documentation

https://molecule.readthedocs.io

Contact

  • Ping @decentral1se on the #ansible-molecule channel on Freenode.

License

The LGPLv3 license.

Testing

This is all done on our drone.autonomic.zone setup.

Unit tests and such.

$ pip install tox
$ tox -v

Integration tests.

(Only doable by Autonomic Cooperative members.)

$ sudo apt install -y direnv
$ cp .envrc.sample .envrc
$ direnv allow
$ pip install -e .
$ cd integration-test-role && molecule test

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

molecule-hetznercloud-0.0.1.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

molecule_hetznercloud-0.0.1-py2.py3-none-any.whl (27.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file molecule-hetznercloud-0.0.1.tar.gz.

File metadata

  • Download URL: molecule-hetznercloud-0.0.1.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.0

File hashes

Hashes for molecule-hetznercloud-0.0.1.tar.gz
Algorithm Hash digest
SHA256 5e6934aa6645ad729094c3bccb96ca686a7dde15b4b03188f61413adc6c7380b
MD5 3b187a1dce099de788748530b57364fb
BLAKE2b-256 dcacfb24280d3dc7cb45a7cb53222f0bbc67ee3092a1b0b667ea69332cfb5301

See more details on using hashes here.

File details

Details for the file molecule_hetznercloud-0.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: molecule_hetznercloud-0.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 27.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.0

File hashes

Hashes for molecule_hetznercloud-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0413a63a8b91eab24c7a4453940e0cde54ef2704e9932cd26518c87ce8451002
MD5 d679d4d1a2aaedf7f3fda9d2dee144b6
BLAKE2b-256 89231bf60b578cb382d562e0a2cd1d159a86cfa5f1ce9a695375c491e3d40d85

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page