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

feat: attach server or load balancer to specific subnet (#726)

##### SUMMARY

Attach the server or load balancer to the specific subnet ip_range.

##### ISSUE TYPE

- Feature Pull Request


##### COMPONENT NAME
- server_network
- load_balancer_network
This commit is contained in:
Jonas L. 2025-11-05 16:15:08 +01:00 committed by GitHub
parent 2b183fb486
commit 66aaef7be4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 274 additions and 32 deletions

View file

@ -5,13 +5,21 @@
ip_range: 10.0.0.0/16
register: test_network
- name: Create test_subnetwork
- name: Create test_subnetwork1
hetzner.hcloud.subnetwork:
network: "{{ hcloud_network_name }}"
network_zone: "{{ hcloud_network_zone_name }}"
type: cloud
ip_range: 10.0.1.0/24
register: test_subnetwork
register: test_subnetwork1
- name: Create test_subnetwork2
hetzner.hcloud.subnetwork:
network: "{{ hcloud_network_name }}"
network_zone: "{{ hcloud_network_zone_name }}"
type: cloud
ip_range: 10.0.2.0/24
register: test_subnetwork2
- name: Create test_load_balancer
hetzner.hcloud.load_balancer:

View file

@ -85,6 +85,62 @@
that:
- result is changed
- name: Test create with ip_range
hetzner.hcloud.load_balancer_network:
load_balancer: "{{ hcloud_load_balancer_name }}"
network: "{{ hcloud_network_name }}"
ip_range: 10.0.1.0/24
state: present
register: result
- name: Verify create with ip_range
ansible.builtin.assert:
that:
- result is changed
- result.hcloud_load_balancer_network.load_balancer == hcloud_load_balancer_name
- result.hcloud_load_balancer_network.network == hcloud_load_balancer_name
- >
"10.0.1.0/24" | ansible.utils.network_in_usable(result.hcloud_load_balancer_network.ip)
- name: Test update with ip_range
hetzner.hcloud.load_balancer_network:
load_balancer: "{{ hcloud_load_balancer_name }}"
network: "{{ hcloud_network_name }}"
ip_range: 10.0.2.0/24
state: present
register: result
- name: Verify update with ip_range
ansible.builtin.assert:
that:
- result is changed
- result.hcloud_load_balancer_network.load_balancer == hcloud_load_balancer_name
- result.hcloud_load_balancer_network.network == hcloud_load_balancer_name
- >
"10.0.2.0/24" | ansible.utils.network_in_usable(result.hcloud_load_balancer_network.ip)
- name: Test update with ip_range idempotency
hetzner.hcloud.load_balancer_network:
load_balancer: "{{ hcloud_load_balancer_name }}"
network: "{{ hcloud_network_name }}"
ip_range: 10.0.2.0/24
state: present
register: result
- name: Verify update with ip_range idempotency
ansible.builtin.assert:
that:
- result is not changed
- name: Test delete with ip_range
hetzner.hcloud.load_balancer_network:
load_balancer: "{{ hcloud_load_balancer_name }}"
network: "{{ hcloud_network_name }}"
ip_range: 10.0.2.0/24
state: absent
register: result
- name: Verify delete with ip_range
ansible.builtin.assert:
that:
- result is changed
- name: Test create with ip
hetzner.hcloud.load_balancer_network:
load_balancer: "{{ hcloud_load_balancer_name }}"

View file

@ -7,13 +7,21 @@
key: value
register: test_network
- name: Create test_subnetwork
- name: Create test_subnetwork1
hetzner.hcloud.subnetwork:
network: "{{ hcloud_network_name }}"
type: server
network_zone: "{{ hcloud_network_zone_name }}"
ip_range: 10.0.1.0/24
register: test_subnetwork
register: test_subnetwork1
- name: Create test_subnetwork2
hetzner.hcloud.subnetwork:
network: "{{ hcloud_network_name }}"
type: server
network_zone: "{{ hcloud_network_zone_name }}"
ip_range: 10.0.2.0/24
register: test_subnetwork2
- name: Create test_server
hetzner.hcloud.server:

View file

@ -85,6 +85,62 @@
that:
- result is changed
- name: Test create with ip_range
hetzner.hcloud.server_network:
network: "{{ hcloud_network_name }}"
server: "{{ hcloud_server_name }}"
ip_range: "10.0.1.0/24"
state: present
register: result
- name: Verify create with ip_range
ansible.builtin.assert:
that:
- result is changed
- result.hcloud_server_network.network == hcloud_network_name
- result.hcloud_server_network.server == hcloud_server_name
- >
"10.0.1.0/24" | ansible.utils.network_in_usable(result.hcloud_server_network.ip)
- name: Test update with ip_range
hetzner.hcloud.server_network:
network: "{{ hcloud_network_name }}"
server: "{{ hcloud_server_name }}"
ip_range: "10.0.2.0/24"
state: present
register: result
- name: Verify update with ip_range
ansible.builtin.assert:
that:
- result is changed
- result.hcloud_server_network.network == hcloud_network_name
- result.hcloud_server_network.server == hcloud_server_name
- >
"10.0.2.0/24" | ansible.utils.network_in_usable(result.hcloud_server_network.ip)
- name: Test update with ip_range idempotency
hetzner.hcloud.server_network:
network: "{{ hcloud_network_name }}"
server: "{{ hcloud_server_name }}"
ip_range: "10.0.2.0/24"
state: present
register: result
- name: Verify update with ip_range idempotency
ansible.builtin.assert:
that:
- result is not changed
- name: Test delete with ip_range
hetzner.hcloud.server_network:
network: "{{ hcloud_network_name }}"
server: "{{ hcloud_server_name }}"
ip_range: "10.0.2.0/24"
state: absent
register: result
- name: Verify delete with ip_range
ansible.builtin.assert:
that:
- result is changed
- name: Test create with alias ips
hetzner.hcloud.server_network:
network: "{{ hcloud_network_name }}"