Fixes#203
The namespace used to differentiate the resources between CI pipelines, CI stages or even between test targets was broken and resulted in conflicting resource names. This PR ensure the resources names don't collide with each other by making sure we use the entire hcloud_prefix value as md5sum, and by including the target role names inside the resource names.
Create a setup/teardown framework to handle testing resources used by the tests.
To simplify the review process, additional changes such as splitting the setup/teardown task in the prepare.yml and cleanup.yml files will be done in future PRs (many files were renamed, and git will not preserve the file history after the PR squash).
* chore: move integrations targets files
* test: create integration common files
* test: fix resources name namespace using the magic hcloud_ns
* test: simplify requirements install
* test: rename hcloud_server test taskfiles
* Added new command hcloud_isos_info.py to get informations from all ISOs on HETZNER cloud.
* continue iso_info implementation
* add changelog
* fixes and improvements
* remove return docs choices for ansible 2.12 support
* rebase changes
* fix wording
Co-authored-by: Julian Tölle <julian.toelle97@gmail.com>
* run tests in group3
Co-authored-by: Julian Tölle <julian.toelle97@gmail.com>
* docs: returned architecture field might be null
* unused/invalid community.general.ipfilter collection in tests
* update wording relevant -> supported
* apply rebase changes
---------
Co-authored-by: patlegu <3754859+patlegu@users.noreply.github.com>
Co-authored-by: Julian Tölle <julian.toelle97@gmail.com>
* feat(server_type_info): return deprecation info
Co-authored-by: jo <ljonas@riseup.net>
* feat(server): show warning if server-type is deprecated
Co-authored-by: jo <ljonas@riseup.net>
---------
Co-authored-by: jo <ljonas@riseup.net>
* feat: add architecture fields for image & server type
* feat: filter images by architecture
* feat: select right image by arch on server create & rebuild
* feat(inventory): add architecture field to returned servers
* docs: add changelog for arm features
* chore: prepare v1.11.0
The server that was being handled could still exist from previous tests
running in the same suite. This can be fixed by making sure that the
server does not exist at the start of this test suite.
* fix(server): prevent backups from being disabled when undefined
With an existing server with backups enabled and the state being either
present, started, stopped, restarted or rebuild and the backups module
parameter not set, the module would disable backups and in turn delete
all existing backups.
The correct behaviour (leave backups untouched when parameter not set)
is implemented by this commit. Strong typing would have prevented this.
* test: verify fix works
---------
Co-authored-by: Julian Tölle <julian.toelle@hetzner-cloud.de>
* 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.
* Add possibility to specify private network when creating or updating a server
This allows creating servers without public internet access
* Add integration tests
- hcloud_server - When state stopped and server is created, do not start the server
Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>
* Add placement_groups
* Create server with placement_group
* Add/remove server to/from placement_group
* Remove deprecated tmage test
* Add changelogs
* Add placement groups to hcloud_server_info
* Deprecate force_upgrade flag
* Tidy up files
* Add Sanity ignore files
* Use master as branch name instead of main
* Use targets in integration jobs
* Remove tests/sanity/requirements.txt (not used by ansible-test)
* sanity: prevent import exception for inventory script
Co-authored-by: David Moreau Simard <moi@dmsimard.com>