Merge "Add usage MAC for Ephemeral VM deploy"
This commit is contained in:
commit
7c6f727783
@ -7,7 +7,7 @@ metadata:
|
|||||||
data:
|
data:
|
||||||
PROVISIONING_IP: "192.168.10.100"
|
PROVISIONING_IP: "192.168.10.100"
|
||||||
DHCP_RANGE: "192.168.10.200,192.168.10.250"
|
DHCP_RANGE: "192.168.10.200,192.168.10.250"
|
||||||
PROVISIONING_INTERFACE: "pxe0"
|
PROVISIONING_INTERFACE: "pxe"
|
||||||
HTTP: "80"
|
HTTP: "80"
|
||||||
DEPLOY_KERNEL_PATH: "/images/tinyipa-stable-ussuri.vmlinuz"
|
DEPLOY_KERNEL_PATH: "/images/tinyipa-stable-ussuri.vmlinuz"
|
||||||
DEPLOY_RAMDISK_PATH: "/images/tinyipa-stable-ussuri.gz"
|
DEPLOY_RAMDISK_PATH: "/images/tinyipa-stable-ussuri.gz"
|
||||||
|
@ -7,4 +7,3 @@ metadata:
|
|||||||
data:
|
data:
|
||||||
PROVISIONING_IP: "10.23.24.101"
|
PROVISIONING_IP: "10.23.24.101"
|
||||||
DHCP_RANGE: "10.23.24.200,10.23.24.250"
|
DHCP_RANGE: "10.23.24.200,10.23.24.250"
|
||||||
PROVISIONING_INTERFACE: "enp0s4"
|
|
||||||
|
@ -19,10 +19,13 @@ hosts:
|
|||||||
pxe: 52:54:00:b6:ed:31
|
pxe: 52:54:00:b6:ed:31
|
||||||
bootMode: legacy
|
bootMode: legacy
|
||||||
node02:
|
node02:
|
||||||
macAddress: 00:3b:8b:0c:ec:8b
|
macAddress: 52:54:00:b6:ed:02
|
||||||
bmcAddress: redfish+http://10.23.25.2:8000/redfish/v1/Systems/air-target-2
|
bmcAddress: redfish+http://10.23.25.2:8000/redfish/v1/Systems/air-target-2
|
||||||
bmcUsername: username
|
bmcUsername: username
|
||||||
bmcPassword: password
|
bmcPassword: password
|
||||||
ipAddresses:
|
ipAddresses:
|
||||||
oam-ipv4: 10.23.25.101
|
oam-ipv4: 10.23.25.101
|
||||||
pxe-ipv4: 10.23.24.101
|
pxe-ipv4: 10.23.24.101
|
||||||
|
macAddresses:
|
||||||
|
oam: 52:54:00:9b:27:02
|
||||||
|
pxe: 52:54:00:b6:ed:02
|
||||||
|
@ -7,12 +7,12 @@ metadata:
|
|||||||
commonNetworking:
|
commonNetworking:
|
||||||
links:
|
links:
|
||||||
- id: oam
|
- id: oam
|
||||||
name: enp0s3
|
name: oam
|
||||||
type: phy
|
type: phy
|
||||||
mtu: "1500"
|
mtu: "1500"
|
||||||
# ethernet_mac_address: <from host-catalogue> (optional)
|
# ethernet_mac_address: <from host-catalogue> (optional)
|
||||||
- id: pxe
|
- id: pxe
|
||||||
name: enp0s4
|
name: pxe
|
||||||
type: phy
|
type: phy
|
||||||
mtu: "1500"
|
mtu: "1500"
|
||||||
# ethernet_mac_address: <from host-catalogue> (optional)
|
# ethernet_mac_address: <from host-catalogue> (optional)
|
||||||
|
@ -60,58 +60,17 @@
|
|||||||
- name: clone document model
|
- name: clone document model
|
||||||
command: git clone -q {{ airship_config_primary_repo_url }} {{ remote_work_dir }}
|
command: git clone -q {{ airship_config_primary_repo_url }} {{ remote_work_dir }}
|
||||||
when: remote_work_dir is defined
|
when: remote_work_dir is defined
|
||||||
- name: get BareMetalHost objects
|
- name: get MACs from BareMetalHost objects
|
||||||
shell: |
|
include_tasks:
|
||||||
set -e
|
file: get-mac-addresses.yaml
|
||||||
kustomize build --enable_alpha_plugins \
|
|
||||||
{{ airship_config_manifest_directory }}/{{ airship_config_site_path }}/ephemeral/controlplane |
|
|
||||||
kustomize config grep "kind=BareMetalHost"
|
|
||||||
register: bmh_command
|
|
||||||
failed_when: "bmh_command.stdout == ''"
|
|
||||||
environment:
|
|
||||||
KUSTOMIZE_PLUGIN_HOME: "{{ ansible_env.HOME }}/.airship/kustomize-plugins"
|
|
||||||
KUSTOMIZE_ENABLE_ALPHA_COMMANDS: "true"
|
|
||||||
- set_fact:
|
|
||||||
bmh: "{{ bmh_command.stdout | from_yaml_all | list }}"
|
|
||||||
- name: get network configuration for BareMetalHost objects
|
|
||||||
shell: |
|
|
||||||
set -e
|
|
||||||
kustomize build --enable_alpha_plugins \
|
|
||||||
{{ airship_config_manifest_directory }}/{{ airship_config_site_path }}/ephemeral/controlplane |
|
|
||||||
kustomize config grep "metadata.name={{ item.spec.networkData.name }}"
|
|
||||||
register: netdata_command
|
|
||||||
failed_when: "netdata_command.stdout == ''"
|
|
||||||
environment:
|
|
||||||
KUSTOMIZE_PLUGIN_HOME: "{{ ansible_env.HOME }}/.airship/kustomize-plugins"
|
|
||||||
KUSTOMIZE_ENABLE_ALPHA_COMMANDS: "true"
|
|
||||||
with_items: "{{ bmh }}"
|
|
||||||
- name: get links from network data per BareMetalHost object
|
|
||||||
set_fact:
|
|
||||||
links: |
|
|
||||||
{{
|
|
||||||
netdata_command.results |
|
|
||||||
map(attribute='stdout')| map('from_yaml') |
|
|
||||||
map(attribute='stringData.networkData') | map('from_yaml') |
|
|
||||||
map(attribute='links') | list
|
|
||||||
}}
|
|
||||||
- name: define list of VM mac addresses
|
|
||||||
set_fact:
|
|
||||||
vm_nic: "{{ dict(['nat_mac', 'provision_mac'] | zip([nat_mac_list[0], item.spec.bootMACAddress])) }}"
|
|
||||||
vars:
|
vars:
|
||||||
nat_mac_list: |
|
name: "{{ roleinputvar.name }}"
|
||||||
{{
|
path: "{{ roleinputvar.path }}"
|
||||||
links[idx] |
|
loop:
|
||||||
rejectattr('ethernet_mac_address', 'undefined') |
|
- { name: 'target', path: 'ephemeral/controlplane' }
|
||||||
selectattr('ethernet_mac_address', '!=', item.spec.bootMACAddress) |
|
- { name: 'ephemeral', path: 'ephemeral/bootstrap' }
|
||||||
map(attribute='ethernet_mac_address') | list
|
|
||||||
}}
|
|
||||||
failed_when: nat_mac_list | length == 0
|
|
||||||
loop: "{{ bmh }}"
|
|
||||||
loop_control:
|
loop_control:
|
||||||
index_var: idx
|
loop_var: roleinputvar
|
||||||
register: vm_nic_fact
|
|
||||||
- set_fact:
|
|
||||||
target_vm_nics: "{{ vm_nic_fact.results | map(attribute='ansible_facts.vm_nic') | list }}"
|
|
||||||
|
|
||||||
- name: deploy-gate
|
- name: deploy-gate
|
||||||
include_role:
|
include_role:
|
||||||
@ -131,6 +90,7 @@
|
|||||||
ephemeral_vm_memory_mb: 6124
|
ephemeral_vm_memory_mb: 6124
|
||||||
ephemeral_vm_vcpus: 4
|
ephemeral_vm_vcpus: 4
|
||||||
ephemeral_disk_size: 20G
|
ephemeral_disk_size: 20G
|
||||||
|
ephemeral_vm_nics: "{{ ephemeral_vm_nics }}"
|
||||||
target_disk_size: 10G
|
target_disk_size: 10G
|
||||||
disk_format: qcow2
|
disk_format: qcow2
|
||||||
target_vms_count: 1
|
target_vms_count: 1
|
||||||
|
64
playbooks/get-mac-addresses.yaml
Normal file
64
playbooks/get-mac-addresses.yaml
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
- name: get BareMetalHost objects
|
||||||
|
shell: |
|
||||||
|
set -e
|
||||||
|
kustomize build --enable_alpha_plugins \
|
||||||
|
{{ airship_config_manifest_directory }}/{{ airship_config_site_path }}/{{ path }} |
|
||||||
|
kustomize config grep "kind=BareMetalHost"
|
||||||
|
register: bmh_command
|
||||||
|
failed_when: "bmh_command.stdout == ''"
|
||||||
|
environment:
|
||||||
|
KUSTOMIZE_PLUGIN_HOME: "{{ ansible_env.HOME }}/.airship/kustomize-plugins"
|
||||||
|
KUSTOMIZE_ENABLE_ALPHA_COMMANDS: "true"
|
||||||
|
- set_fact:
|
||||||
|
bmh: "{{ bmh_command.stdout | from_yaml_all | list }}"
|
||||||
|
- name: get network configuration for BareMetalHost objects
|
||||||
|
shell: |
|
||||||
|
set -e
|
||||||
|
kustomize build --enable_alpha_plugins \
|
||||||
|
{{ airship_config_manifest_directory }}/{{ airship_config_site_path }}/{{ path }} |
|
||||||
|
kustomize config grep "metadata.name={{ item.spec.networkData.name }}"
|
||||||
|
register: netdata_command
|
||||||
|
failed_when: "netdata_command.stdout == ''"
|
||||||
|
environment:
|
||||||
|
KUSTOMIZE_PLUGIN_HOME: "{{ ansible_env.HOME }}/.airship/kustomize-plugins"
|
||||||
|
KUSTOMIZE_ENABLE_ALPHA_COMMANDS: "true"
|
||||||
|
with_items: "{{ bmh }}"
|
||||||
|
- name: get links from network data per BareMetalHost object
|
||||||
|
set_fact:
|
||||||
|
links: |
|
||||||
|
{{
|
||||||
|
netdata_command.results |
|
||||||
|
map(attribute='stdout')| map('from_yaml') |
|
||||||
|
map(attribute='stringData.networkData') | map('from_yaml') |
|
||||||
|
map(attribute='links') | list
|
||||||
|
}}
|
||||||
|
- name: define list of VM mac addresses
|
||||||
|
set_fact:
|
||||||
|
vm_nic: "{{ dict(['nat_mac', 'provision_mac'] | zip([nat_mac_list[0], item.spec.bootMACAddress])) }}"
|
||||||
|
vars:
|
||||||
|
nat_mac_list: |
|
||||||
|
{{
|
||||||
|
links[idx] |
|
||||||
|
rejectattr('ethernet_mac_address', 'undefined') |
|
||||||
|
selectattr('ethernet_mac_address', '!=', item.spec.bootMACAddress) |
|
||||||
|
map(attribute='ethernet_mac_address') | list
|
||||||
|
}}
|
||||||
|
failed_when: nat_mac_list | length == 0
|
||||||
|
loop: "{{ bmh }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
register: vm_nic_fact
|
||||||
|
- set_fact:
|
||||||
|
"{{ name }}_vm_nics": "{{ vm_nic_fact.results | map(attribute='ansible_facts.vm_nic') | list }}"
|
@ -112,7 +112,9 @@
|
|||||||
pool: "{{ airship_gate_names.pool }}"
|
pool: "{{ airship_gate_names.pool }}"
|
||||||
interfaces:
|
interfaces:
|
||||||
- network: "{{ airship_gate_names.nat_network }}"
|
- network: "{{ airship_gate_names.nat_network }}"
|
||||||
|
mac: "{{ chosen_flavor.ephemeral_vm_nics[0].nat_mac | default('')}}"
|
||||||
- network: "{{ airship_gate_names.provision_network }}"
|
- network: "{{ airship_gate_names.provision_network }}"
|
||||||
|
mac: "{{ chosen_flavor.ephemeral_vm_nics[0].provision_mac | default('')}}"
|
||||||
|
|
||||||
- name: Add noauth sushy-emulator to apache
|
- name: Add noauth sushy-emulator to apache
|
||||||
include_role:
|
include_role:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user