Compare commits
27 Commits
Author | SHA1 | Date | |
---|---|---|---|
d98183e095 | |||
03671f5ead | |||
33e2a4f2bf | |||
10d26d1518 | |||
d2d548b166 | |||
837de64be9 | |||
5786a60678 | |||
671e92cd0b | |||
dfb003fdcb | |||
a2ee39a2f0 | |||
9164e92d38 | |||
5f57fb2c95 | |||
3a1602382a | |||
5179b284ba | |||
218073759f | |||
a25533d917 | |||
f55edfc0e4 | |||
4d195ee238 | |||
b89c10a593 | |||
2112fc77d4 | |||
f7eb777efb | |||
3528f12b2b | |||
e3c20bdb26 | |||
6e9ac10f8e | |||
a117a862cf | |||
b13d902d1f | |||
778147afa0 |
64
.drone.yml
64
.drone.yml
@ -7,6 +7,9 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- pip install tox==3.14.6
|
- pip install tox==3.14.6
|
||||||
- tox -e linters
|
- tox -e linters
|
||||||
|
trigger:
|
||||||
|
ref:
|
||||||
|
- "refs/heads/master"
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
@ -17,6 +20,41 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- pip install tox==3.14.6
|
- pip install tox==3.14.6
|
||||||
- tox -e packaging
|
- tox -e packaging
|
||||||
|
depends_on:
|
||||||
|
- linters
|
||||||
|
trigger:
|
||||||
|
ref:
|
||||||
|
- "refs/heads/master"
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: py36
|
||||||
|
steps:
|
||||||
|
- name: tox -e py36
|
||||||
|
image: python:3.6-buster
|
||||||
|
commands:
|
||||||
|
- pip install tox==3.14.6
|
||||||
|
- tox -e py36
|
||||||
|
depends_on:
|
||||||
|
- linters
|
||||||
|
trigger:
|
||||||
|
ref:
|
||||||
|
- "refs/heads/master"
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: py37
|
||||||
|
steps:
|
||||||
|
- name: tox -e py37
|
||||||
|
image: python:3.7-buster
|
||||||
|
commands:
|
||||||
|
- pip install tox==3.14.6
|
||||||
|
- tox -e py37
|
||||||
|
depends_on:
|
||||||
|
- linters
|
||||||
|
trigger:
|
||||||
|
ref:
|
||||||
|
- "refs/heads/master"
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
@ -27,6 +65,27 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- pip install tox==3.14.6
|
- pip install tox==3.14.6
|
||||||
- tox -e py38
|
- tox -e py38
|
||||||
|
depends_on:
|
||||||
|
- linters
|
||||||
|
trigger:
|
||||||
|
ref:
|
||||||
|
- "refs/heads/master"
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: devel
|
||||||
|
steps:
|
||||||
|
- name: tox -e devel
|
||||||
|
image: python:3.8-buster
|
||||||
|
failure: ignore
|
||||||
|
commands:
|
||||||
|
- pip install tox==3.14.6
|
||||||
|
- tox -e devel
|
||||||
|
depends_on:
|
||||||
|
- linters
|
||||||
|
trigger:
|
||||||
|
ref:
|
||||||
|
- "refs/heads/master"
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
@ -45,4 +104,9 @@ steps:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- linters
|
- linters
|
||||||
- packaging
|
- packaging
|
||||||
|
- py36
|
||||||
|
- py37
|
||||||
- py38
|
- py38
|
||||||
|
trigger:
|
||||||
|
ref:
|
||||||
|
- "refs/heads/master"
|
||||||
|
3
.github/funding.yml
vendored
Normal file
3
.github/funding.yml
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
github: decentral1se
|
||||||
|
liberapay: decentral1se
|
39
.github/labels.yml
vendored
39
.github/labels.yml
vendored
@ -1,39 +0,0 @@
|
|||||||
---
|
|
||||||
# Format and labels used aim to match those used by Ansible project
|
|
||||||
# https://github.com/marketplace/actions/github-labeler
|
|
||||||
- name: bug
|
|
||||||
color: "fbca04"
|
|
||||||
description: "This issue/PR relates to a bug."
|
|
||||||
- name: deprecated
|
|
||||||
color: "fef2c0"
|
|
||||||
description: "This issue/PR relates to a deprecated module."
|
|
||||||
- name: docs
|
|
||||||
color: "4071a5"
|
|
||||||
description: "This issue/PR relates to or includes documentation."
|
|
||||||
- name: enhancement
|
|
||||||
color: "ededed"
|
|
||||||
description: "This issue/PR relates to a feature request."
|
|
||||||
- name: feature
|
|
||||||
color: "006b75"
|
|
||||||
description: "This issue/PR relates to a feature request."
|
|
||||||
- name: major
|
|
||||||
color: "c6476b"
|
|
||||||
description: "Marks an important and likely breaking change."
|
|
||||||
- name: packaging
|
|
||||||
color: "4071a5"
|
|
||||||
description: "Packaging category"
|
|
||||||
- name: performance
|
|
||||||
color: "555555"
|
|
||||||
description: "Relates to product or testing performance."
|
|
||||||
- name: skip-changelog
|
|
||||||
color: "eeeeee"
|
|
||||||
description: "Can be missed from the changelog."
|
|
||||||
- name: stale
|
|
||||||
color: "eeeeee"
|
|
||||||
description: "Not updated in long time, will be closed soon."
|
|
||||||
- name: wontfix
|
|
||||||
color: "eeeeee"
|
|
||||||
description: "This will not be worked on"
|
|
||||||
- name: test
|
|
||||||
color: "0e8a16"
|
|
||||||
description: "This PR relates to tests, QA, CI."
|
|
19
.github/release-drafter.yml
vendored
19
.github/release-drafter.yml
vendored
@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
categories:
|
|
||||||
- title: 'Features'
|
|
||||||
labels:
|
|
||||||
- 'feature'
|
|
||||||
- 'enhancement'
|
|
||||||
- title: 'Bug Fixes'
|
|
||||||
labels:
|
|
||||||
- 'fix'
|
|
||||||
- 'bugfix'
|
|
||||||
- 'bug'
|
|
||||||
- title: 'Maintenance'
|
|
||||||
label: 'chore'
|
|
||||||
exclude-labels:
|
|
||||||
- 'skip-changelog'
|
|
||||||
template: |
|
|
||||||
## Changes
|
|
||||||
|
|
||||||
$CHANGES
|
|
19
CHANGELOG.md
19
CHANGELOG.md
@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.2.1] - 2020-04-29
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Pinned Molecule to avoid issues with `sh` dependency.
|
||||||
|
|
||||||
|
## [0.2.0] - 2020-04-27
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Add bundled playbooks so as to reduce required configuration on end-user side
|
||||||
|
- Added an internal `molecule.yml` so that `molecule init role` can get good defaults (will work with Molecule >= 3.0.4)
|
||||||
|
|
||||||
|
## [0.1.0] - 2020-04-27
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- py36,37,38 are now supported
|
||||||
|
|
||||||
## [0.0.1] - 2020-04-25
|
## [0.0.1] - 2020-04-25
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
22
README.md
22
README.md
@ -24,6 +24,7 @@ any financial support from RedHat or Hetzner Cloud for this work.
|
|||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
You need to expose a `HCLOUD_TOKEN` environment variable in your environment.
|
You need to expose a `HCLOUD_TOKEN` environment variable in your environment.
|
||||||
|
|
||||||
Find out more about how to get one of those [over here](https://docs.hetzner.cloud/#overview-authentication).
|
Find out more about how to get one of those [over here](https://docs.hetzner.cloud/#overview-authentication).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -46,7 +47,7 @@ dependency:
|
|||||||
driver:
|
driver:
|
||||||
name: hetznercloud
|
name: hetznercloud
|
||||||
platforms:
|
platforms:
|
||||||
- name: my-instance-name
|
- name: instance
|
||||||
server_type: cx11
|
server_type: cx11
|
||||||
image: debian-10
|
image: debian-10
|
||||||
provisioner:
|
provisioner:
|
||||||
@ -63,7 +64,7 @@ Then just run the role.
|
|||||||
$ cd myrolename && molecule test
|
$ cd myrolename && molecule test
|
||||||
```
|
```
|
||||||
|
|
||||||
To ease initial debugging for getting thing started, also expose the following
|
To ease initial debugging for getting things started, also expose the following
|
||||||
environment variables.
|
environment variables.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -71,6 +72,17 @@ $ export MOLECULE_NO_LOG=False # not so verbose, helpful
|
|||||||
$ export MOLECULE_DEBUG=True # very verbose, last ditch effort
|
$ export MOLECULE_DEBUG=True # very verbose, last ditch effort
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Only use `molecule.yml` for configuration
|
||||||
|
|
||||||
|
It is being worked on that it is possible to remove all the files except the
|
||||||
|
`molecule.yml` scenario file in your scenario directory. This is useful when
|
||||||
|
you only require this plugin to do the default behaviour each time. It is also
|
||||||
|
useful to reduce maintenance effort for migration of configurations. This
|
||||||
|
plugin currently embeds the `create.yml` and `destroy.yml` playbooks. All other
|
||||||
|
playbooks (e.g. prepare, cleanup) can be created as needed and Molecule will
|
||||||
|
pick them up and run them. Embedding the `converge.yml` awaits [this feature
|
||||||
|
request](https://github.com/ansible-community/molecule/issues/2675).
|
||||||
|
|
||||||
## Mirroring
|
## Mirroring
|
||||||
|
|
||||||
Issues will be responded to on both issue trackers.
|
Issues will be responded to on both issue trackers.
|
||||||
@ -98,16 +110,16 @@ The [LGPLv3](https://www.gnu.org/licenses/lgpl-3.0.en.html) license.
|
|||||||
|
|
||||||
This is all done on our [drone.autonomic.zone](https://drone.autonomic.zone/autonomic-cooperative/molecule-hetznercloud) setup.
|
This is all done on our [drone.autonomic.zone](https://drone.autonomic.zone/autonomic-cooperative/molecule-hetznercloud) setup.
|
||||||
|
|
||||||
Unit tests and such.
|
### Unit
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ pip install tox
|
$ pip install tox
|
||||||
$ tox -v
|
$ tox -v
|
||||||
```
|
```
|
||||||
|
|
||||||
Integration tests.
|
### Integration
|
||||||
|
|
||||||
(Only doable by [Autonomic Cooperative](https://autonomic.zone/) members.)
|
Only doable by [Autonomic Cooperative](https://autonomic.zone/) members.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sudo apt install -y direnv
|
$ sudo apt install -y direnv
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"molecule_directory": "molecule",
|
"molecule_directory": "molecule",
|
||||||
"role_name": "OVERRIDDEN",
|
"role_name": "OVERRIDDEN",
|
||||||
"scenario_name": "OVERRIDDEN"
|
"scenario_name": "OVERRIDDEN"
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
driver:
|
||||||
|
name: hetznercloud
|
||||||
|
platforms:
|
||||||
|
- name: "{{ cookiecutter.role_name }}"
|
||||||
|
server_type: cx11
|
||||||
|
image: debian-10
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
lint: |
|
||||||
|
set -e
|
||||||
|
yamllint .
|
||||||
|
ansible-lint .
|
@ -98,3 +98,8 @@ class HetznerCloud(Driver):
|
|||||||
"account API token value"
|
"account API token value"
|
||||||
)
|
)
|
||||||
sysexit_with_message(msg)
|
sysexit_with_message(msg)
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
"""Destroy all resources managed by this plugin."""
|
||||||
|
# TODO(decentral1se): implement if ever needed
|
||||||
|
pass
|
||||||
|
@ -54,13 +54,15 @@
|
|||||||
|
|
||||||
- name: Populate instance config dict
|
- name: Populate instance config dict
|
||||||
set_fact:
|
set_fact:
|
||||||
instance_conf_dict: {
|
instance_conf_dict:
|
||||||
'instance': "{{ item.hcloud_server.name }}",
|
{
|
||||||
'ssh_key_name': "{{ ssh_key_name }}",
|
"instance": "{{ item.hcloud_server.name }}",
|
||||||
'address': "{{ item.hcloud_server.ipv4_address }}",
|
"ssh_key_name": "{{ ssh_key_name }}",
|
||||||
'user': "{{ ssh_user }}",
|
"address": "{{ item.hcloud_server.ipv4_address }}",
|
||||||
'port': "{{ ssh_port }}",
|
"user": "{{ ssh_user }}",
|
||||||
'identity_file': "{{ ssh_path }}", }
|
"port": "{{ ssh_port }}",
|
||||||
|
"identity_file": "{{ ssh_path }}",
|
||||||
|
}
|
||||||
with_items: "{{ hetzner_jobs.results }}"
|
with_items: "{{ hetzner_jobs.results }}"
|
||||||
register: instance_config_dict
|
register: instance_config_dict
|
||||||
when: server.changed | bool
|
when: server.changed | bool
|
@ -44,7 +44,7 @@ keywords =
|
|||||||
|
|
||||||
[options]
|
[options]
|
||||||
use_scm_version = True
|
use_scm_version = True
|
||||||
python_requires = >=3.8
|
python_requires = >=3.6
|
||||||
packages = find:
|
packages = find:
|
||||||
include_package_data = True
|
include_package_data = True
|
||||||
zip_safe = False
|
zip_safe = False
|
||||||
@ -53,12 +53,12 @@ setup_requires =
|
|||||||
setuptools_scm_git_archive >= 1.1
|
setuptools_scm_git_archive >= 1.1
|
||||||
install_requires =
|
install_requires =
|
||||||
hcloud >= 1.6.3, < 2
|
hcloud >= 1.6.3, < 2
|
||||||
molecule >= 3.0.3, <= 3.1
|
molecule >= 3.0.4, <= 3.1
|
||||||
pyyaml >= 5.3.1, < 6
|
pyyaml >= 5.3.1, < 6
|
||||||
|
|
||||||
[options.extras_require]
|
[options.extras_require]
|
||||||
test =
|
test =
|
||||||
hcloud >= 1.6.3
|
hcloud >= 1.6.3, < 2
|
||||||
mock >= 4.0.2, < 5
|
mock >= 4.0.2, < 5
|
||||||
pytest-cov >= 2.8.1, < 3
|
pytest-cov >= 2.8.1, < 3
|
||||||
pytest-helpers-namespace >= 2019.1.8, < 2020
|
pytest-helpers-namespace >= 2019.1.8, < 2020
|
||||||
|
Reference in New Issue
Block a user