airshipctl/playbooks/airship-airshipctl-build-gate.yaml
Stanislav Egorov 2605cd9159 Gate scripts refactoring
Added flexible boot mode configuration for VMs based on BareMetalHost definition.

Change-Id: I1332ff99e7ec539ac280efda515f736b7c18f459
2020-08-19 14:49:03 -07:00

125 lines
3.8 KiB
YAML

# 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.
- hosts: primary
environment:
LIBVIRT_DEFAULT_URI: qemu:///system
tasks:
- name: set default vars
set_fact:
var_files_default:
- airship-ipam.yaml
- test-config.yaml
- name: read test variables
include_vars:
file: "vars/{{ var_file }}"
with_items: "{{ var_files | default(var_files_default) }}"
loop_control:
loop_var: var_file
- name: docker install
include_role:
name: docker-install
- name: install kustomize
include_role:
name: install-kustomize
# Installs kustomize plugin functionality needed for rendering below
- name: install airshipctl
shell: |
cd {{ local_src_dir | default(zuul.project.src_dir) }}
./tools/deployment/21_systemwide_executable.sh
- name: make sure serve directory exists
file:
dest: "{{ serve_dir }}"
state: directory
mode: "0755"
owner: "{{ ansible_user }}"
become: yes
- name: get BareMetalHost from model
block:
- name: ensure tempdir for airshipctl does not exist
file:
path: "{{ remote_work_dir }}"
state: absent
when: remote_work_dir is defined
- name: clone document model
command: git clone -q {{ airship_config_primary_repo_url }} {{ remote_work_dir }}
when: remote_work_dir is defined
- name: get VM config(MACs and bootMode) from BareMetalHost objects
include_tasks:
file: get-vm-config.yaml
vars:
name: "{{ roleinputvar.name }}"
path: "{{ roleinputvar.path }}"
loop:
- { name: 'target', path: 'ephemeral/controlplane' }
- { name: 'ephemeral', path: 'ephemeral/bootstrap' }
loop_control:
loop_var: roleinputvar
- name: deploy-gate
include_role:
name: airship-libvirt-gate
vars:
gate_flavor: medium
gate_action: build-infra
airship_gate_libvirt_pools:
- path: /var/lib/libvirt/airship
name: "airship"
- path: /var/lib/libvirt/images
name: "default"
airship_gate_flavors:
medium:
disk_format: qcow2
ephemeral_disk_size: 20G
ephemeral_vm_cfg: "{{ ephemeral_vm_cfg }}"
ephemeral_vm_memory_mb: 6124
ephemeral_vm_vcpus: 4
target_disk_size: 10G
target_vm_cfg: "{{ target_vm_cfg }}"
target_vm_memory_mb: 4096
target_vm_vcpus: 2
target_vms_count: 1
worker_disk_size: 10G
worker_vm_memory_mb: 1024
worker_vm_vcpus: 1
worker_vms_count: 1
airship_gate_file_exchanger:
servername: "localhost"
ip:
- "127.0.0.1"
- "::1"
- "{{ airship_gate_ipam.provision_network.bridge_ip }}"
http_port: "{{ serve_port }}"
path: "{{ serve_dir }}"
user:
- username: "username"
password: "password"
group:
- name: writers
member:
- username
rbac:
policies:
- role:
- PUT
group:
- writers
default:
all: granted