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

Add possibility to specify private network when creating or updating servers (#160)

* Add possibility to specify private network when creating or updating a server

This allows creating servers without public internet access

* Add integration tests
This commit is contained in:
Konstantin Köhring 2022-11-09 22:31:03 +01:00 committed by GitHub
parent 6de022e9fb
commit ad8958a2ad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 190 additions and 0 deletions

View file

@ -5,3 +5,4 @@ hcloud_prefix: "tests"
hcloud_server_name: "{{hcloud_prefix}}-i"
hcloud_firewall_name: "{{hcloud_prefix}}-i"
hcloud_primary_ip_name: "{{hcloud_prefix}}-i"
hcloud_network_name: "{{hcloud_prefix}}-i"

View file

@ -5,3 +5,4 @@
#- ansible.builtin.include_tasks: basic.yml
#- ansible.builtin.include_tasks: firewalls.yml
- ansible.builtin.include_tasks: primary_ips.yml
- ansible.builtin.include_tasks: private_network_only.yml

View file

@ -0,0 +1,120 @@
# Copyright: (c) 2022, Hetzner Cloud GmbH <info@hetzner-cloud.de>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
---
- name: setup create network
hcloud_network:
name: "{{ hcloud_network_name }}-1"
ip_range: 192.168.0.0/23
register: primaryNetwork
- name: setup create network subnet 1
hcloud_subnetwork:
network: "{{ hcloud_network_name }}-1"
ip_range: 192.168.0.0/24
network_zone: eu-central
type: cloud
state: present
- name: setup create network subnet 2
hcloud_subnetwork:
network: "{{ hcloud_network_name }}-1"
ip_range: 192.168.1.0/24
network_zone: eu-central
type: cloud
state: present
- name: setup create secondary network
hcloud_network:
name: "{{ hcloud_network_name }}-2"
ip_range: 192.168.2.0/23
register: secondaryNetwork
- name: setup create secondary network subnet 1
hcloud_subnetwork:
network: "{{ hcloud_network_name }}-2"
ip_range: 192.168.2.0/24
network_zone: eu-central
type: cloud
state: present
- name: setup create secondary network subnet 2
hcloud_subnetwork:
network: "{{ hcloud_network_name }}-2"
ip_range: 192.168.3.0/24
network_zone: eu-central
type: cloud
state: present
- name: test create server with primary network and no internet
hcloud_server:
name: "{{ hcloud_server_name }}"
server_type: cpx11
datacenter: "fsn1-dc14"
image: "ubuntu-20.04"
enable_ipv4: no
enable_ipv6: no
private_networks:
- "{{ primaryNetwork.hcloud_network.name }}"
ssh_keys:
- ci@ansible.hetzner.cloud
state: stopped
register: result
- name: verify test create server with primary network
assert:
that:
- result is changed
- name: test update server by adding secondary network
hcloud_server:
name: "{{ hcloud_server_name }}"
server_type: cpx11
datacenter: "fsn1-dc14"
image: "ubuntu-20.04"
enable_ipv4: no
enable_ipv6: no
private_networks:
- "{{ primaryNetwork.hcloud_network.name }}"
- "{{ secondaryNetwork.hcloud_network.id }}"
ssh_keys:
- ci@ansible.hetzner.cloud
state: stopped
register: result
- name: verify test update server by adding secondary network
assert:
that:
- result is changed
- name: test update server idem
hcloud_server:
name: "{{ hcloud_server_name }}"
server_type: cpx11
datacenter: "fsn1-dc14"
image: "ubuntu-20.04"
enable_ipv4: no
enable_ipv6: no
private_networks:
- "{{ primaryNetwork.hcloud_network.name }}"
- "{{ secondaryNetwork.hcloud_network.id }}"
ssh_keys:
- ci@ansible.hetzner.cloud
state: stopped
register: result
- name: verify test update server idem
assert:
that:
- result is not changed
- name: cleanup server
hcloud_server:
name: "{{ hcloud_server_name }}"
state: absent
- name: cleanup networks
hcloud_network:
name: "{{ item }}"
state: absent
with_items:
- "{{ primaryNetwork.hcloud_network.name }}"
- "{{ secondaryNetwork.hcloud_network.id }}"
until: result is not failed
retries: 5
delay: 2