mirror of
https://opendev.org/openstack/ansible-collections-openstack.git
synced 2026-05-06 05:13:01 +00:00
OpenStack allows to attach multiple floating ips to a single server. Previously, only one floating ip was supported by this module. It would call openstacksdk's get_server_public_ip(), which in turn would return just one of the attached floating ips. If this floating ip would not point to the right nat_destination or fixed_address, then the module would fail. If no floating ip had been attached to a server, then this module would call openstacksdk's add_ips_to_server() with both parameters "floating_ip_address" and "network" to attach a floating ip to the server. But both parameters are mutually exclusive [1], i.e. add_ips_to_server() will ignore "floating_ip_address" if "network" is set and then choose any non-attached floating ip from "network". If "floating_ip_address" has not been created in OpenStack and "network" is not given, then this module would not create this floating ip [2]. The new module code allows to create and add more than one floating ip to a server. It priorizes more specific parameters over generic ones, i.e. if both "floating_ip_address" and "network" are given, then "floating_ip_address" precedes "network". Parameter "network" is now required if "floating_ip_address" is specified, because both are necessary when creating floating ips. Module documentation and args have been updated accordingly. Ref.: [1]a6b0ece282/openstack/cloud/_floating_ip.py (L987)[2]a6b0ece282/openstack/cloud/_floating_ip.py (L907)Task: 40939 Story: 2008181 Change-Id: I1ada1be0994f526f72f81f7458782afbcca3c92c
54 lines
1.8 KiB
YAML
54 lines
1.8 KiB
YAML
---
|
|
- hosts: localhost
|
|
connection: local
|
|
gather_facts: true
|
|
|
|
roles:
|
|
- { role: address_scope, tags: address_scope }
|
|
- { role: auth, tags: auth }
|
|
- { role: client_config, tags: client_config }
|
|
- { role: dns_zone_info, tags: dns_zone_info }
|
|
- role: object_container
|
|
tags: object_container
|
|
when: sdk_version is version(0.18, '>=')
|
|
- { role: group, tags: group }
|
|
- role: dns
|
|
tags: dns
|
|
when: sdk_version is version(0.28, '>=')
|
|
- { role: floating_ip_info, tags: floating_ip_info }
|
|
- { role: image, tags: image }
|
|
- { role: keypair, tags: keypair }
|
|
- { role: keystone_domain, tags: keystone_domain }
|
|
- role: keystone_mapping
|
|
tags: keystone_mapping
|
|
when: sdk_version is version(0.44, '>=')
|
|
- role: keystone_idp
|
|
tags: keystone_idp
|
|
when: sdk_version is version(0.44, '>=')
|
|
- role: keystone_federation_protocol
|
|
tags: keystone_federation_protocol
|
|
when: sdk_version is version(0.44, '>=')
|
|
- { role: keystone_role, tags: keystone_role }
|
|
- { role: network, tags: network }
|
|
- { role: nova_flavor, tags: nova_flavor }
|
|
- { role: object, tags: object }
|
|
- { role: port, tags: port }
|
|
- { role: project, tags: project }
|
|
- role: project_properties
|
|
tags: project_properties
|
|
when: sdk_version is version("0.45.01", '>')
|
|
- { role: router, tags: router }
|
|
- { role: security_group, tags: security_group }
|
|
- { role: server, tags: server }
|
|
- { role: subnet, tags: subnet }
|
|
- { role: user, tags: user }
|
|
- { role: user_group, tags: user_group }
|
|
- { role: user_role, tags: user_role }
|
|
- { role: volume, tags: volume }
|
|
- role: orchestration
|
|
tags: orchestrate
|
|
when: sdk_version is version("0.53.0", '>=')
|
|
- role: loadbalancer
|
|
tags: loadbalancer
|
|
- { role: floating_ip, tags: floating_ip }
|