Adds a separate admin network
The admin network is intended for remote admin access to the overcloud hosts e.g SSH. If admin_oc_net_name is not set it will default to provision_oc_net_name for backwards compatability. Story: 2002096 Task: 19774 Change-Id: Ib04bbc07f97218d7503000cc363624c60c287822
This commit is contained in:
parent
3037361cb0
commit
3fca0d00a9
@ -16,7 +16,7 @@ compute_network_interfaces: >
|
|||||||
|
|
||||||
# List of default networks to which compute nodes are attached.
|
# List of default networks to which compute nodes are attached.
|
||||||
compute_default_network_interfaces: >
|
compute_default_network_interfaces: >
|
||||||
{{ ([provision_oc_net_name,
|
{{ ([admin_oc_net_name,
|
||||||
internal_net_name,
|
internal_net_name,
|
||||||
storage_net_name] +
|
storage_net_name] +
|
||||||
(external_net_names if kolla_enable_neutron_provider_networks | bool else [])) | unique | list }}
|
(external_net_names if kolla_enable_neutron_provider_networks | bool else [])) | unique | list }}
|
||||||
|
@ -18,7 +18,7 @@ controller_network_interfaces: >
|
|||||||
|
|
||||||
# List of default networks to which controller nodes are attached.
|
# List of default networks to which controller nodes are attached.
|
||||||
controller_default_network_interfaces: >
|
controller_default_network_interfaces: >
|
||||||
{{ [provision_oc_net_name,
|
{{ [admin_oc_net_name,
|
||||||
oob_wl_net_name,
|
oob_wl_net_name,
|
||||||
provision_wl_net_name,
|
provision_wl_net_name,
|
||||||
inspection_net_name,
|
inspection_net_name,
|
||||||
|
@ -18,7 +18,7 @@ monitoring_network_interfaces: >
|
|||||||
|
|
||||||
# List of default networks to which monitoring nodes are attached.
|
# List of default networks to which monitoring nodes are attached.
|
||||||
monitoring_default_network_interfaces: >
|
monitoring_default_network_interfaces: >
|
||||||
{{ [provision_oc_net_name,
|
{{ [admin_oc_net_name,
|
||||||
internal_net_name,
|
internal_net_name,
|
||||||
public_net_name] | unique | list }}
|
public_net_name] | unique | list }}
|
||||||
|
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# Network role to network name mappings.
|
# Network role to network name mappings.
|
||||||
|
|
||||||
|
# Name of the network used for admin access to the overcloud
|
||||||
|
admin_oc_net_name: "{{ provision_oc_net_name }}"
|
||||||
|
|
||||||
# Name of the network used by the overcloud hosts to manage the bare metal
|
# Name of the network used by the overcloud hosts to manage the bare metal
|
||||||
# compute hosts via their out-of-band management controllers.
|
# compute hosts via their out-of-band management controllers.
|
||||||
oob_oc_net_name: 'oob_oc_net'
|
oob_oc_net_name: 'oob_oc_net'
|
||||||
|
@ -16,7 +16,8 @@ seed_network_interfaces: >
|
|||||||
|
|
||||||
# List of default networks to which seed nodes are attached.
|
# List of default networks to which seed nodes are attached.
|
||||||
seed_default_network_interfaces: >
|
seed_default_network_interfaces: >
|
||||||
{{ [oob_oc_net_name,
|
{{ [admin_oc_net_name,
|
||||||
|
oob_oc_net_name,
|
||||||
provision_oc_net_name] | unique | list }}
|
provision_oc_net_name] | unique | list }}
|
||||||
|
|
||||||
# List of extra networks to which seed nodes are attached.
|
# List of extra networks to which seed nodes are attached.
|
||||||
|
@ -16,7 +16,7 @@ storage_network_interfaces: >
|
|||||||
|
|
||||||
# List of default networks to which storage nodes are attached.
|
# List of default networks to which storage nodes are attached.
|
||||||
storage_default_network_interfaces: >
|
storage_default_network_interfaces: >
|
||||||
{{ [provision_oc_net_name,
|
{{ [admin_oc_net_name,
|
||||||
internal_net_name,
|
internal_net_name,
|
||||||
storage_mgmt_net_name,
|
storage_mgmt_net_name,
|
||||||
storage_net_name] | unique | list }}
|
storage_net_name] | unique | list }}
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
---
|
---
|
||||||
# Host/IP with which to access the overcloud nodes via SSH.
|
# Host/IP with which to access the overcloud nodes via SSH.
|
||||||
ansible_host: "{{ provision_oc_net_name | net_ip }}"
|
ansible_host: "{{ admin_oc_net_name | net_ip }}"
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
---
|
---
|
||||||
# Host/IP with which to access the seed hypervisor via SSH.
|
# Host/IP with which to access the seed hypervisor via SSH.
|
||||||
ansible_host: "{{ provision_oc_net_name | net_ip }}"
|
ansible_host: "{{ admin_oc_net_name | net_ip }}"
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
---
|
---
|
||||||
# Host/IP with which to access the seed via SSH.
|
# Host/IP with which to access the seed via SSH.
|
||||||
ansible_host: "{{ provision_oc_net_name | net_ip }}"
|
ansible_host: "{{ admin_oc_net_name | net_ip }}"
|
||||||
|
@ -30,17 +30,17 @@
|
|||||||
vars:
|
vars:
|
||||||
seed_host: "{{ groups['seed'][0] }}"
|
seed_host: "{{ groups['seed'][0] }}"
|
||||||
bifrost_hostvars:
|
bifrost_hostvars:
|
||||||
# Also supports vlan_id and network_mtu.
|
|
||||||
addressing_mode: static
|
addressing_mode: static
|
||||||
ipv4_interface_mac: "{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}"
|
ipv4_interface_mac: "{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}"
|
||||||
ipv4_address: "{{ provision_oc_net_name | net_ip }}"
|
ipv4_address: "{{ admin_oc_net_name | net_ip }}"
|
||||||
ipv4_subnet_mask: "{{ provision_oc_net_name | net_cidr | ipaddr('netmask') }}"
|
ipv4_subnet_mask: "{{ admin_oc_net_name | net_cidr | ipaddr('netmask') }}"
|
||||||
# If the provisioning network does not have a gateway defined, use the
|
# If the admin network does not have a gateway defined, use the
|
||||||
# seed as a gateway to allow external access until other networks have
|
# seed as a gateway to allow external access until other networks have
|
||||||
# been configured.
|
# been configured.
|
||||||
ipv4_gateway: "{{ provision_oc_net_name | net_gateway or provision_oc_net_name | net_ip(seed_host) }}"
|
ipv4_gateway: "{{ admin_oc_net_name | net_gateway or admin_oc_net_name | net_ip(seed_host) }}"
|
||||||
ipv4_nameserver: "{{ resolv_nameservers }}"
|
ipv4_nameserver: "{{ resolv_nameservers }}"
|
||||||
network_mtu: "{{ provision_oc_net_name | net_mtu or '1500' }}"
|
network_mtu: "{{ admin_oc_net_name | net_mtu or '1500' }}"
|
||||||
|
vlan_id: "{{ '' if admin_oc_net_name == provision_oc_net_name else (admin_oc_net_name | net_vlan) }}"
|
||||||
tasks:
|
tasks:
|
||||||
- name: Ensure the Bifrost host variable files exist
|
- name: Ensure the Bifrost host variable files exist
|
||||||
copy:
|
copy:
|
||||||
|
@ -1,29 +1,29 @@
|
|||||||
---
|
---
|
||||||
# For some currently unknown reason, overcloud hosts end up with multiple
|
# For some currently unknown reason, overcloud hosts end up with multiple
|
||||||
# entries in /etc/hosts that map their own hostname to their provisioning
|
# entries in /etc/hosts that map their own hostname to their admin
|
||||||
# network IP address, in addition to one that maps their own hostname to their
|
# network IP address, in addition to one that maps their own hostname to their
|
||||||
# internal network IP address. This causes RabbitMQ upgrades to fail, as
|
# internal network IP address. This causes RabbitMQ upgrades to fail, as
|
||||||
# RabbitMQ expects the system's hostname to resolve to the IP address on
|
# RabbitMQ expects the system's hostname to resolve to the IP address on
|
||||||
# which it is listening. As a workaround, we remove the stale entries from
|
# which it is listening. As a workaround, we remove the stale entries from
|
||||||
# /etc/hosts. See https://github.com/stackhpc/kayobe/issues/14.
|
# /etc/hosts. See https://github.com/stackhpc/kayobe/issues/14.
|
||||||
|
|
||||||
- name: Ensure overcloud hosts' /etc/hosts does not contain provisioning network IP
|
- name: Ensure overcloud hosts' /etc/hosts does not contain admin network IP
|
||||||
hosts: overcloud
|
hosts: overcloud
|
||||||
tags:
|
tags:
|
||||||
- etc-hosts-fixup
|
- etc-hosts-fixup
|
||||||
tasks:
|
tasks:
|
||||||
- name: Ensure overcloud hosts' /etc/hosts does not contain provisioning network or loopback IPs
|
- name: Ensure overcloud hosts' /etc/hosts does not contain admin network or loopback IPs
|
||||||
lineinfile:
|
lineinfile:
|
||||||
dest: /etc/hosts
|
dest: /etc/hosts
|
||||||
regexp: "^{{ item }}[ \t]*{{ inventory_hostname }}"
|
regexp: "^{{ item }}[ \t]*{{ inventory_hostname }}"
|
||||||
state: absent
|
state: absent
|
||||||
with_items:
|
with_items:
|
||||||
- "127.0.0.1"
|
- "127.0.0.1"
|
||||||
- "{{ provision_oc_net_name | net_ip }}"
|
- "{{ admin_oc_net_name | net_ip }}"
|
||||||
when: provision_oc_net_name | net_ip != None
|
when: admin_oc_net_name | net_ip != None
|
||||||
become: True
|
become: True
|
||||||
|
|
||||||
- name: Ensure rabbitmq containers' /etc/hosts does not contain provisioning network or loopback IPs
|
- name: Ensure rabbitmq containers' /etc/hosts does not contain admin network or loopback IPs
|
||||||
hosts: overcloud
|
hosts: overcloud
|
||||||
tags:
|
tags:
|
||||||
- etc-hosts-fixup
|
- etc-hosts-fixup
|
||||||
@ -40,7 +40,7 @@
|
|||||||
with_items: "{{ rabbitmq_containers }}"
|
with_items: "{{ rabbitmq_containers }}"
|
||||||
register: ps_result
|
register: ps_result
|
||||||
|
|
||||||
- name: Ensure rabbitmq containers' /etc/hosts does not contain provisioning network or loopback IPs
|
- name: Ensure rabbitmq containers' /etc/hosts does not contain admin network or loopback IPs
|
||||||
command: >
|
command: >
|
||||||
docker exec -u root {{ item.0.item }}
|
docker exec -u root {{ item.0.item }}
|
||||||
bash -c
|
bash -c
|
||||||
@ -55,7 +55,7 @@
|
|||||||
with_nested:
|
with_nested:
|
||||||
- "{{ ps_result.results }}"
|
- "{{ ps_result.results }}"
|
||||||
- - "127.0.0.1"
|
- - "127.0.0.1"
|
||||||
- "{{ provision_oc_net_name | net_ip }}"
|
- "{{ admin_oc_net_name | net_ip }}"
|
||||||
when: item.0.rc == 0
|
when: item.0.rc == 0
|
||||||
register: sed_result
|
register: sed_result
|
||||||
when: provision_oc_net_name | net_ip != None
|
when: admin_oc_net_name | net_ip != None
|
||||||
|
@ -398,6 +398,9 @@ In order to provide flexibility in the system's network topology, Kayobe maps
|
|||||||
the named networks to logical network roles. A single named network may
|
the named networks to logical network roles. A single named network may
|
||||||
perform multiple roles, or even none at all. The available roles are:
|
perform multiple roles, or even none at all. The available roles are:
|
||||||
|
|
||||||
|
Overcloud admin network (``admin_oc_net_name``)
|
||||||
|
Name of the network used to access the overcloud for admin purposes, e.g
|
||||||
|
for remote SSH access.
|
||||||
Overcloud out-of-band network (``oob_oc_net_name``)
|
Overcloud out-of-band network (``oob_oc_net_name``)
|
||||||
Name of the network used by the seed to access the out-of-band management
|
Name of the network used by the seed to access the out-of-band management
|
||||||
controllers of the bare metal overcloud hosts.
|
controllers of the bare metal overcloud hosts.
|
||||||
@ -440,6 +443,7 @@ To configure network roles in a system with two networks, ``example1`` and
|
|||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
:caption: ``networks.yml``
|
:caption: ``networks.yml``
|
||||||
|
|
||||||
|
admin_oc_net_name: example1
|
||||||
oob_oc_net_name: example1
|
oob_oc_net_name: example1
|
||||||
provision_oc_net_name: example1
|
provision_oc_net_name: example1
|
||||||
oob_wl_net_name: example1
|
oob_wl_net_name: example1
|
||||||
@ -452,6 +456,31 @@ To configure network roles in a system with two networks, ``example1`` and
|
|||||||
inspection_net_name: example2
|
inspection_net_name: example2
|
||||||
cleaning_net_name: example2
|
cleaning_net_name: example2
|
||||||
|
|
||||||
|
Overcloud Admin Network
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
The admin network is intended to be used for remote access to the overcloud hosts.
|
||||||
|
Kayobe will use the address assigned to the host on this network as the
|
||||||
|
``ansible_host`` when executing playbooks. It is therefore a necessary requirement
|
||||||
|
to configure this network.
|
||||||
|
|
||||||
|
By default Kayobe will use the overcloud provisioning network as the admin network.
|
||||||
|
It is, however, possible to configure a separate network. To do so, you should
|
||||||
|
override ``admin_oc_net_name`` in your networking configuration.
|
||||||
|
|
||||||
|
If a separate network is configured, the following requirements should be taken into
|
||||||
|
consideration:
|
||||||
|
|
||||||
|
* The admin network must be configured to use the same physical network interface
|
||||||
|
as the provisioning network. This is because the PXE MAC address is used to
|
||||||
|
lookup the interface for the cloud-init network configuration that occurs
|
||||||
|
during bifrost provisioning of the overcloud.
|
||||||
|
|
||||||
|
* If the admin network is configured as a tagged VLAN, you must configure Kayobe
|
||||||
|
to upgrade cloud-init. This is a temporary workaround for a bug in the current
|
||||||
|
version of cloud-init shipped with CentOS 7.5. Please see :ref:`workaround-cloud-init`
|
||||||
|
for more details.
|
||||||
|
|
||||||
Overcloud Provisioning Network
|
Overcloud Provisioning Network
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
@ -593,6 +622,7 @@ Seed
|
|||||||
|
|
||||||
By default, the seed is attached to the following networks:
|
By default, the seed is attached to the following networks:
|
||||||
|
|
||||||
|
* overcloud admin network
|
||||||
* overcloud out-of-band network
|
* overcloud out-of-band network
|
||||||
* overcloud provisioning network
|
* overcloud provisioning network
|
||||||
|
|
||||||
@ -617,7 +647,7 @@ Controllers
|
|||||||
|
|
||||||
By default, controllers are attached to the following networks:
|
By default, controllers are attached to the following networks:
|
||||||
|
|
||||||
* overcloud provisioning network
|
* overcloud admin network
|
||||||
* workload (compute) out-of-band network
|
* workload (compute) out-of-band network
|
||||||
* workload (compute) provisioning network
|
* workload (compute) provisioning network
|
||||||
* workload (compute) inspection network
|
* workload (compute) inspection network
|
||||||
@ -645,7 +675,7 @@ controllers when they are in the ``controllers`` group. If the monitoring
|
|||||||
hosts are not in the ``controllers`` group, they are attached to the following
|
hosts are not in the ``controllers`` group, they are attached to the following
|
||||||
networks by default:
|
networks by default:
|
||||||
|
|
||||||
* overcloud provisioning network
|
* overcloud admin network
|
||||||
* internal network
|
* internal network
|
||||||
* public network
|
* public network
|
||||||
|
|
||||||
@ -659,7 +689,7 @@ Virtualised Compute Hosts
|
|||||||
|
|
||||||
By default, virtualised compute hosts are attached to the following networks:
|
By default, virtualised compute hosts are attached to the following networks:
|
||||||
|
|
||||||
* overcloud provisioning network
|
* overcloud admin network
|
||||||
* internal network
|
* internal network
|
||||||
* storage network
|
* storage network
|
||||||
|
|
||||||
|
@ -133,6 +133,8 @@ image name regular expressions::
|
|||||||
In order to push images to a registry after they are built, add the ``--push``
|
In order to push images to a registry after they are built, add the ``--push``
|
||||||
argument.
|
argument.
|
||||||
|
|
||||||
|
.. _workaround-cloud-init:
|
||||||
|
|
||||||
Workaround VLAN cloud-init issue
|
Workaround VLAN cloud-init issue
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# Network role to network mappings.
|
# Network role to network mappings.
|
||||||
|
|
||||||
|
# Name of the network used for admin access to the overcloud
|
||||||
|
#admin_oc_net_name:
|
||||||
|
|
||||||
# Name of the network used by the seed to manage the bare metal overcloud
|
# Name of the network used by the seed to manage the bare metal overcloud
|
||||||
# hosts via their out-of-band management controllers.
|
# hosts via their out-of-band management controllers.
|
||||||
#oob_oc_net_name:
|
#oob_oc_net_name:
|
||||||
@ -50,6 +53,15 @@
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# Network definitions.
|
# Network definitions.
|
||||||
|
|
||||||
|
# Admin network IP information.
|
||||||
|
# admin_oc_net_cidr:
|
||||||
|
# admin_oc_net_allocation_pool_start:
|
||||||
|
# admin_oc_net_allocation_pool_end:
|
||||||
|
# admin_oc_net_gateway:
|
||||||
|
# admin_oc_net_vlan:
|
||||||
|
# admin_oc_net_mtu:
|
||||||
|
# admin_oc_net_routes:
|
||||||
|
|
||||||
# Overcloud out-of-band management network IP information.
|
# Overcloud out-of-band management network IP information.
|
||||||
# oob_oc_net_cidr:
|
# oob_oc_net_cidr:
|
||||||
# oob_oc_net_allocation_pool_start:
|
# oob_oc_net_allocation_pool_start:
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Adds a new overcloud admin network to improve network separation.
|
||||||
|
The network is intended to be used for remote admin access e.g SSH.
|
||||||
|
If ``admin_oc_net_name`` is not set, Kayobe will use the previous
|
||||||
|
behaviour of using the overcloud provisioning network for this purpose.
|
||||||
|
See `Story 2002096
|
||||||
|
<https://storyboard.openstack.org/#!/story/2002096>`_
|
Loading…
x
Reference in New Issue
Block a user