airshipctl/playbooks/airship-airshipctl-build-gate.yaml
Pallav Gupta 13c4e82f7e AIAP multinode deployment
It deploys 3 controlplane and 2 worker nodes using AIAP gate.

+ kubectl --context target-cluster get node
NAME     STATUS   ROLES                  AGE   VERSION
node01   Ready    control-plane,master   48m   v1.21.2
node03   Ready    worker                 43s   v1.21.2
node04   Ready    control-plane,master   16m   v1.21.2
node05   Ready    control-plane,master   26m   v1.21.2
node06   Ready    worker                 54s   v1.21.2

Tested with 32 GB node.
https://zuul.opendev.org/t/openstack/build/da1c2c440d3d4026ab454de73ee518e2/logs

Closes: #652
Closes: #228

Change-Id: Ie2267e15ed75b57e2e27f45b9be19ddcf7b0a0a8
2022-03-03 14:10:57 +00:00

129 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: ensure-docker
- 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: 'target', path: 'target/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: 30G
ephemeral_vm_cfg: "{{ ephemeral_vm_cfg }}"
ephemeral_vm_memory_mb: 6144
ephemeral_vm_vcpus: 4
target_disk_size: 30G
target_vm_cfg: "{{ target_vm_cfg }}"
target_vm_memory_mb: 7168
target_vm_vcpus: 2
target_vms_count: 3
worker_disk_size: 30G
worker_vm_cfg: "{{ worker_vm_cfg }}"
worker_vm_memory_mb: 7168
worker_vm_vcpus: 2
worker_vms_count: 2
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