1
0
Fork 0
mirror of https://github.com/ansible-collections/hetzner.hcloud.git synced 2026-02-04 08:01:49 +00:00

feat: add new created state for idempotent server creation (#606)

##### SUMMARY

Add a new state for server creation without immediate start, to allow
idempotent network customization before starting

##### ISSUE TYPE
- Feature Pull Request

##### COMPONENT NAME
server

---------

Co-authored-by: jo <ljonas@riseup.net>
This commit is contained in:
Daniele Fognini 2025-03-21 14:05:03 +01:00 committed by GitHub
parent 303cdeda74
commit 4534cf6b9d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 68 additions and 23 deletions

View file

@ -5,5 +5,5 @@
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
location: "{{ hcloud_location_name }}"
state: stopped
state: created
register: test_server

View file

@ -7,7 +7,7 @@
location: "{{ hcloud_location_name }}"
labels:
firewall: "{{ hcloud_firewall_name }}"
state: stopped
state: created
register: test_server
- name: Create test_firewall

View file

@ -7,7 +7,7 @@
location: "{{ hcloud_location_name }}"
labels:
key: value
state: stopped
state: created
register: test_server
- name: Create test_firewall

View file

@ -22,7 +22,7 @@
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
location: "{{ hcloud_location_name }}"
state: stopped
state: created
register: main_server
- name: verify setup server
assert:
@ -35,7 +35,7 @@
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
location: "{{ hcloud_location_name }}"
state: stopped
state: created
register: main_server2
- name: verify setup another server
assert:

View file

@ -5,7 +5,7 @@
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
location: "{{ hcloud_location_name }}"
state: stopped
state: created
register: test_server
- name: Create test_snapshot

View file

@ -5,7 +5,7 @@
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
location: "{{ hcloud_location_name }}"
state: stopped
state: created
register: test_server
- name: Create test_load_balancer

View file

@ -5,7 +5,7 @@
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
location: "{{ hcloud_location_name }}"
state: stopped
state: created
register: test_server
- name: Create test_load_balancer

View file

@ -5,7 +5,7 @@
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
location: "{{ hcloud_location_name }}"
state: stopped
state: created
enable_ipv4: false
enable_ipv6: false
register: test_server

View file

@ -32,7 +32,7 @@
ipv6: "{{primaryIPv6.hcloud_primary_ip.id}}"
ssh_keys:
- "{{ hcloud_ssh_key_name }}"
state: stopped
state: created
register: result
- name: verify test create server with primary ips
assert:
@ -50,7 +50,7 @@
enable_ipv6: false
ssh_keys:
- "{{ hcloud_ssh_key_name }}"
state: stopped
state: created
register: result
- name: verify test create server with primary ips
assert:

View file

@ -72,7 +72,7 @@
- "{{ primaryNetwork.hcloud_network.name }}"
ssh_keys:
- "{{ hcloud_ssh_key_name }}"
state: stopped
state: created
register: result
- name: verify test create server with primary network
assert:
@ -92,7 +92,7 @@
- "{{ secondaryNetwork.hcloud_network.id }}"
ssh_keys:
- "{{ hcloud_ssh_key_name }}"
state: stopped
state: created
register: result
- name: verify test update server by adding secondary network
assert:
@ -112,7 +112,47 @@
- "{{ secondaryNetwork.hcloud_network.id }}"
ssh_keys:
- "{{ hcloud_ssh_key_name }}"
state: stopped
state: created
register: result
- name: verify test update server idem
assert:
that:
- result is not changed
- name: test server can now be started
hetzner.hcloud.server:
name: "{{ hcloud_server_name }}"
server_type: "{{ hcloud_server_type_name }}"
datacenter: "{{ hcloud_datacenter_name }}"
image: "{{ hcloud_image_name }}"
enable_ipv4: false
enable_ipv6: false
private_networks:
- "{{ primaryNetwork.hcloud_network.name }}"
- "{{ secondaryNetwork.hcloud_network.id }}"
ssh_keys:
- "{{ hcloud_ssh_key_name }}"
state: started
register: result
- name: verify test server can now be started
assert:
that:
- result is changed
- name: test update server idem
hetzner.hcloud.server:
name: "{{ hcloud_server_name }}"
server_type: "{{ hcloud_server_type_name }}"
datacenter: "{{ hcloud_datacenter_name }}"
image: "{{ hcloud_image_name }}"
enable_ipv4: false
enable_ipv6: false
private_networks:
- "{{ primaryNetwork.hcloud_network.name }}"
- "{{ secondaryNetwork.hcloud_network.id }}"
ssh_keys:
- "{{ hcloud_ssh_key_name }}"
state: created
register: result
- name: verify test update server idem
assert:

View file

@ -5,18 +5,18 @@
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
location: "{{ hcloud_location_name }}"
state: stopped
state: created
labels:
key: value
register: test_server
- name: Create test_server2 (stopped + without ip)
- name: Create test_server2 (without ip)
hetzner.hcloud.server:
name: "{{ hcloud_server_name }}2"
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
location: "{{ hcloud_location_name }}"
state: stopped
state: created
labels:
key: value
enable_ipv4: false

View file

@ -21,5 +21,5 @@
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
location: "{{ hcloud_location_name }}"
state: stopped
state: created
register: test_server

View file

@ -6,7 +6,7 @@
name: "{{hcloud_server_name}}"
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
state: stopped
state: created
location: "{{ hcloud_location_name }}"
register: vol_server
- name: verify setup server