Commit graph

29 commits

Author SHA1 Message Date
Jonas L
32b44647ef
feat: allow caching the hcloud inventory (#287)
* feat: allow caching the hcloud inventory

* chore: add changelog fragment
2023-08-16 11:59:17 +02:00
Jonas L
2d739edc88
feat: use collection version for the inventory user agent (#297) 2023-08-14 15:55:04 +02:00
Jonas L
64b6804b41
refactor: use relative imports for local modules (#279) 2023-07-31 10:12:55 +02:00
Jonas L
652a41df9d
fix!: don't set inventory image vars if server image is undefined (#275)
Related to #116

Don't set "No Image * found" string if the server image is not defined. This is not an intuitive behavior.

This is a breaking change.
2023-07-24 14:44:52 +02:00
Jonas L
8a6157e8b2
feat: vendor hcloud python dependency (#244)
* chore: ignore venv directories

* chore: ignore integration test generated inventory

* feat: vendor hcloud package

* import https://github.com/hetznercloud/hcloud-python

* use vendored hcloud in modules

* update integration test requirements

* make vendor script self contained

* chore: add  check-hcloud-vendor pre-commit hook

* pin hcloud version to v.1.24.0

* move vendored __version__.py file to _version.py

* update comment about galaxy-importer filename lint
2023-07-11 11:15:08 +02:00
Jonas L
0fcf4aad22
refactor: use new to_native function path (#238)
e535eb625b/lib/ansible/module_utils/_text.py
2023-06-27 13:17:21 +02:00
Jonas L
dfff49e31f
chore: setup pre-commit (#234)
* chore: add pre-commit config

* chore: fix pre-commit errors

* chore: add black pre-commit hook

* style: format python files with black

* chore: add isort pre-commit hook

* style: format python files using isort

* chore: add pyupgrade pre-commit hook

* refactor: upgrade code to python3.7

* Allow stacking PRs

Co-authored-by: Julian Tölle <julian.toelle97@gmail.com>

---------

Co-authored-by: Julian Tölle <julian.toelle97@gmail.com>
2023-06-27 11:50:13 +02:00
Julian Tölle
3c2d4df8bb
feat: add support for ARM APIs (#208)
* 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
2023-04-12 10:43:19 +02:00
Julian Tölle
1863fe512c
feat(inventory): add variable for ipv6 address (#188)
This variable matches the `ansible_host` variable that we set when
`connect_with: public_ipv6`, and allows the user to dynamically choose the
connection method in `compose`.
2023-02-01 12:56:21 +01:00
Julian Tölle
bfe0f7a575
feat(inventory): handle servers that dont work with connect_with setting (#187)
Currently if any of the servers in the inventory do not work with the
selected `connect_with` mode, the script exits and returns 0 servers.
This can happen for example if one of your servers does not have a public
ipv4 address, but you set `connect_with: public_ipv4` (default).

This commit changes the behaviour to log a warning message, and just skip
setting `ansible_host` for this server. This server will not be reachable
by ansible by default, but users can use `compose` to override the
`ansible_host` that we set based on the other variables.
2023-02-01 10:41:36 +01:00
Julian Tölle
83094a121d
feat(inventory): add all private networks as variables (#186)
This can be used in the `compose`, `groups` and `keyed_groups` settings
to dynamically build the inventory.

It also makes it possible for the user to override the `ansible_host`
in `compose`, based on wether or not the server has a public ipv4 address,
with fallback to the address in a specific private network.
2023-01-31 17:09:54 +01:00
n00b42
ccfa51bf66
feat: Pass extra vars to templating of api_token. (#156)
Co-authored-by: Maximilian Senftleben <maximilian.senftleben@frogblue-tec.com>
2023-01-30 12:08:09 +01:00
Julian Tölle
b5f205485a
feat(inventory): connect via public ipv6 address (#176)
Add a new `connect_with` option `public_ipv6` that uses the first
address from the servers publically-routed ipv6 network.
2022-12-21 11:10:58 +01:00
Lukas Kämmerling
d1c97c7e89
Inventory Plugin: Add support for changing the name of the top level group all servers are added to (#164)
Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>

Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>
2022-11-08 09:01:14 +01:00
Lukas Kämmerling
0965f79093
Add support for Primary IPs (#141)
Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>
2022-06-29 09:58:01 +02:00
Tagir Bakirov
38d3aa6c51
add server status as an option to filter the server inventory list (#126)
* add status as an option to filter the server list

* Update plugins/inventory/hcloud.py

fix the sanity check

Co-authored-by: Lukas Kämmerling <github@lukas-kaemmerling.de>

Co-authored-by: Tagir Bakirov <tagir.bakirov@reservix.de>
Co-authored-by: Lukas Kämmerling <github@lukas-kaemmerling.de>
2022-06-13 08:57:16 +02:00
Andrew Klychkov
181949d165
Sanity tests: copy ignore-2.13.txt to ignore-2.14.txt (#125)
* Sanity tests: copy ignore-2.13.txt to ignore-2.14.txt

* Fix sanity
2022-04-22 09:35:17 +02:00
Lukas Kämmerling
51865c29ab
inventory - support jinjia templating within network (#107)
Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>
2021-08-25 10:57:03 +02:00
Lukas Kämmerling
5d6b5b7c3f
Add full collection name as option to inventory plugin (#90)
Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>
2021-05-27 08:14:13 +02:00
Lukas Kämmerling
45af6f150c
Fix inventory: server type had the wrong value (#78) 2021-04-14 09:57:35 +02:00
Tobias Fischer
a393f4e862
expand template instructions in 'token' property (#49)
fixes #48
2021-04-07 08:17:03 +02:00
John R Barker
0d955cab88
AZP fixes (#52)
* 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>
2021-02-22 16:25:44 -05:00
Lukas Kämmerling
ff359431a1
Restore Python 2.7 support (#45)
Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>
2020-12-07 08:30:50 +01:00
Robert Kaussow
0d8a8bf7f3
add token_env option to load token from custom env variable (#43)
Co-authored-by: Lukas Kämmerling <github@lukas-kaemmerling.de>
2020-12-01 08:39:08 +01:00
Lukas Kämmerling
0617bc65f8
Add hcloud_load_balancer_info module (#41)
Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>
2020-11-27 12:25:06 +01:00
Lukas Kämmerling
8bb449d3de
Improve imports of APIException (#37)
Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>
2020-11-24 06:39:21 +01:00
Torben Hørup
11af14289a
document private_ipv4 connect_with option (#24) 2020-08-31 12:50:12 +02:00
Lukas Kämmerling
41354355e6
Fix inventory plugin does not work with old configuration files (#15) 2020-06-30 13:48:24 +02:00
Ansible Core Team
36309bd27a Initial commit 2020-03-09 13:36:01 +00:00