airshipctl/playbooks/airship-airshipctl-build-gate.yaml
Andrii Ostapenko 3f559c3c1e
Implements custom QCOW delivery
With this commit QCOW images are pulled as a docker image to new
qcow-bundle container within ironic pod and copy them to shared ironic
volume to be served to hosts.

Also squashed with [0], manifests are adjusted to consume new QCOWs and
old QCOW related funtionality is removed.

[0] https://review.opendev.org/c/airship/airshipctl/+/776270

Co-Authored-By: Alexey Odinokov <aodinokov@mirantis.com>
Co-Authored-By: Craig Anderson <craig.anderson@att.com>

Change-Id: I958184b34ae94206bc5e87993e9287587b6a11d9
Signed-off-by: Andrii Ostapenko <andrii.ostapenko@att.com>
2021-02-23 15:43:45 -06:00

128 lines
3.9 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_phase_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' }
- { name: 'worker', path: 'target/workers' }
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: 6144
ephemeral_vm_vcpus: 4
target_disk_size: 20G
target_vm_cfg: "{{ target_vm_cfg }}"
target_vm_memory_mb: 7168
target_vm_vcpus: 2
target_vms_count: 1
worker_disk_size: 20G
worker_vm_cfg: "{{ worker_vm_cfg }}"
worker_vm_memory_mb: 7168
worker_vm_vcpus: 2
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