No description
Find a file
Julian Tölle e218306028
test: various fixes for integration tests (#193)
* test: update for new locations

* test(cert): fix issues with random name failing the test

The variable hcloud_dns_test_domain used the random function to generate
a number from 1-100. This number changed between every usage of the
variable, so the test that compared the domain name of the cert to the
variable kept failing, as different numbers were generated.

By generating the number once and saving it into a fact, this is fixed.

* test: fix issues with long resource names

Server and volume names have restricted length (63 and 64 respectivly).

This can cause issues when the `hcloud_prefix` is of certain length. By
applying truncate, we can be sure to not reach the limit.

This issue mainly happened in our internal ci, as the hcloud_prefix variable
contains the hostname where the tests were running, and our hostnames are
quite long.
2023-02-13 10:48:26 +01:00
.azure-pipelines chore: remove Ansible 2.11 support (#191) 2023-02-08 10:07:27 +01:00
.github/workflows Antisibul (#151) 2022-09-14 10:15:22 +02:00
changelogs fix(server): server still locked after placement_group attach (#192) 2023-02-08 10:07:46 +01:00
meta chore: remove Ansible 2.11 support (#191) 2023-02-08 10:07:27 +01:00
plugins fix(server): server still locked after placement_group attach (#192) 2023-02-08 10:07:46 +01:00
tests test: various fixes for integration tests (#193) 2023-02-13 10:48:26 +01:00
.gitignore Implement Firewall Support (#63) 2021-03-11 11:07:41 +01:00
.gitlab-ci.yml ci(gitlab): cleanup and use latest python&ansible versions (#194) 2023-02-08 13:49:55 +01:00
CHANGELOG.rst chore: prepare v1.10.0 (#190) 2023-02-02 09:20:15 +01:00
COPYING Initial commit 2020-03-09 13:36:01 +00:00
galaxy.yml chore: prepare v1.10.0 (#190) 2023-02-02 09:20:15 +01:00
README.md Prepare Release 1.7.0 2022-06-09 14:51:49 +02:00

Build Status Codecov

Ansible Collection: hetzner.hcloud

Ansible Hetzner Cloud Collection for controlling your Hetzner Cloud Resources.

Release notes

See here.

Documentation

The documentation for all modules are available through ansible-doc.

Sample: ansible-doc hetzner.hcloud.hcloud_server shows the documentation for the hcloud_server module.

For all modules that were part of Ansible directly (before Ansible 2.11) we also have the documentation published in the Ansible documentation: https://docs.ansible.com/ansible/latest/collections/hetzner/hcloud/

Development

Requirements

You should place the collection (clone the repository) into the Ansible collection path. Normally this is ~/.ansible/collections/ansible_collections/<namespace>/<collection, so for our collection it would be: ~/.ansible/collections/ansible_collections/hetzner/hcloud.

git clone git@github.com:ansible-collections/hetzner.hcloud.git ~/.ansible/collections/ansible_collections/hetzner/hcloud

After this you just need ansible installed.

Testing

Testing is done via ansible-test. Make sure to have a cloud-config-hcloud.ini file in tests/integration which contains the hcloud API token:

[default]
hcloud_api_token=<token>

After this you should be able to use ansible-test integration to perform the integration tests for a specific module. Sample:

ansible-test integration --color --local  -vvv hcloud_server // Executed all integration tests for hcloud_server module

Releasing a new version

Generating changelog from fragments

  1. Check if the changelog fragments are available (there should be files in changelogs/fragments)
  2. Run antsibull-changelog release --version <version>, it should remove all fragments and change the changelogs/changlog.yaml and CHANGELOG.rst
  3. Push the changes to the main branch
  4. Tag the release through the Github UI, after this the Github Actions will run and publish the collection to Ansible Galaxy