From 24bba779d81a0228916efb07cc1a602e3680f740 Mon Sep 17 00:00:00 2001 From: Jorge Gallegos Date: Thu, 5 Jun 2025 18:54:43 -0700 Subject: [PATCH] Update integration tests to account for nicType changes Signed-off-by: Jorge Gallegos --- .../gcp_compute_instance/tasks/main.yml | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/tests/integration/targets/gcp_compute_instance/tasks/main.yml b/tests/integration/targets/gcp_compute_instance/tasks/main.yml index fe47378c..4cd0f881 100644 --- a/tests/integration/targets/gcp_compute_instance/tasks/main.yml +++ b/tests/integration/targets/gcp_compute_instance/tasks/main.yml @@ -1,3 +1,143 @@ --- - name: Generated tests ansible.builtin.include_tasks: autogen.yml + +- name: Test nic_type scenarios + block: + - name: Create disk for virtio + google.cloud.gcp_compute_disk: + name: "{{ resource_prefix }}-virtio" + size_gb: 50 + source_image: projects/rhel-cloud/global/images/rhel-9-v20250513 + zone: us-central1-a + project: "{{ gcp_project }}" + auth_kind: "{{ gcp_cred_kind }}" + service_account_file: "{{ gcp_cred_file | default(omit) }}" + state: present + register: _virtio_disk + + - name: Create disk for gVNIC + google.cloud.gcp_compute_disk: + name: "{{ resource_prefix }}-gvnic" + size_gb: 50 + source_image: projects/rhel-cloud/global/images/rhel-9-v20250513 + zone: us-central1-a + project: "{{ gcp_project }}" + auth_kind: "{{ gcp_cred_kind }}" + service_account_file: "{{ gcp_cred_file | default(omit) }}" + state: present + register: _gvnic_disk + + - name: Create network + google.cloud.gcp_compute_network: + name: "{{ resource_prefix }}" + project: "{{ gcp_project }}" + auth_kind: "{{ gcp_cred_kind }}" + service_account_file: "{{ gcp_cred_file | default(omit) }}" + auto_create_subnetworks: true + state: present + register: _network + + - name: Create virtio instance + google.cloud.gcp_compute_instance: + name: "{{ resource_name }}-virtio" + machine_type: n1-standard-1 + disks: + - auto_delete: "true" + boot: "true" + source: "{{ _virtio_disk }}" + network_interfaces: + - network: "{{ _network }}" + nic_type: VIRTIO_NET + zone: us-central1-a + project: "{{ gcp_project }}" + auth_kind: "{{ gcp_cred_kind }}" + service_account_file: "{{ gcp_cred_file | default(omit) }}" + state: present + register: _virtio_result + + - name: Verify virtio instance was created + google.cloud.gcp_compute_instance_info: + filters: + - name = {{ resource_name }}-virtio + zone: us-central1-a + project: "{{ gcp_project }}" + auth_kind: "{{ gcp_cred_kind }}" + service_account_file: "{{ gcp_cred_file | default(omit) }}" + scopes: + - https://www.googleapis.com/auth/compute + register: _virtio_info + + - name: Pass assertions + ansible.builtin.assert: + that: + - _virtio_result.changed == true + - _virtio_result.networkInterfaces[0].nicType == 'VIRTIO_NET' + - _virtio_info.resources[0].networkInterfaces[0].nicType == 'VIRTIO_NET' + + - name: Create gvnic instance + google.cloud.gcp_compute_instance: + name: "{{ resource_name }}-gvnic" + machine_type: n1-standard-1 + disks: + - auto_delete: "true" + boot: "true" + source: "{{ _gvnic_disk }}" + network_interfaces: + - network: "{{ _network }}" + nic_type: GVNIC + zone: us-central1-a + project: "{{ gcp_project }}" + auth_kind: "{{ gcp_cred_kind }}" + service_account_file: "{{ gcp_cred_file | default(omit) }}" + state: present + register: _gvnic_result + + - name: Verify gvnic instance was created + google.cloud.gcp_compute_instance_info: + filters: + - name = {{ resource_name }}-gvnic + zone: us-central1-a + project: "{{ gcp_project }}" + auth_kind: "{{ gcp_cred_kind }}" + service_account_file: "{{ gcp_cred_file | default(omit) }}" + scopes: + - https://www.googleapis.com/auth/compute + register: _gvnic_info + + - name: Pass assertions + ansible.builtin.assert: + that: + - _gvnic_result.changed == true + - _gvnic_result.networkInterfaces[0].nicType == 'GVNIC' + - _gvnic_info.resources[0].networkInterfaces[0].nicType == 'GVNIC' + + always: + - name: Delete virtio instance + google.cloud.gcp_compute_instance: + name: "{{ resource_name }}-virtio" + machine_type: n1-standard-1 + zone: us-central1-a + project: "{{ gcp_project }}" + auth_kind: "{{ gcp_cred_kind }}" + service_account_file: "{{ gcp_cred_file | default(omit) }}" + state: absent + + - name: Delete gVNIC instance + google.cloud.gcp_compute_instance: + name: "{{ resource_name }}-gvnic" + machine_type: n1-standard-1 + zone: us-central1-a + project: "{{ gcp_project }}" + auth_kind: "{{ gcp_cred_kind }}" + service_account_file: "{{ gcp_cred_file | default(omit) }}" + state: absent + + - name: Delete network + google.cloud.gcp_compute_network: + name: "{{ resource_prefix }}" + project: "{{ gcp_project }}" + auth_kind: "{{ gcp_cred_kind }}" + service_account_file: "{{ gcp_cred_file | default(omit) }}" + auto_create_subnetworks: true + state: absent