Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions etc/kayobe/ansible/configure-vxlan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
- name: Configure VXLAN
hosts: storage,seed,controllers,compute
gather_facts: false
vars:
ansible_user: "{{ bootstrap_user }}"
# We can't assume that a virtualenv exists at this point, so use the system
# python interpreter.
ansible_python_interpreter: /usr/bin/python3
# Work around no known_hosts entry on first boot.
ansible_ssh_common_args: "-o StrictHostKeyChecking=no"
roles:
- role: stackhpc.vxlan
vars:
vxlan_phys_dev: "{{ admin_oc_net_name | net_interface }}"
vxlan_dstport: 4790
vxlan_interfaces:
- device: vxlan10
group: 224.0.0.10
bridge: breth1
2 changes: 2 additions & 0 deletions etc/kayobe/ansible/requirements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ collections:
version: 1.10.0
- name: stackhpc.pulp
version: 0.3.0
roles:
- src: stackhpc.vxlan
48 changes: 48 additions & 0 deletions etc/kayobe/environments/ci-multinode/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Multinode Test Environment
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jack has since made some changes to these docs.

Copy link
Contributor Author

@grzegorzkoper grzegorzkoper Oct 12, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we just merge the multinode-steps branch after we're done ? There will be changes there still. Naming convention will change in terraform.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that branch should be merged.


## Set up hosts
1. Create four baremetal instances with a centos 8 stream LVM image, and a
Centos 8 stream vm
2. SSH into each baremetal and run `sudo chown -R centos:.` in the home directory,
then add the lines
>`10.0.0.34 pelican pelican.service.compute.sms-lab.cloud`
>`10.205.3.187 pulp-server pulp-server.internal.sms-cloud`

to /etc/hosts (if you're waiting on them starting up, you can progress until
`kayobe overcloud host configure` without this step)

## Basic Kayobe Setup
1. SSH into the VM
1. `sudo dnf install -y python3-virtualenv`
1. `mkdir src` and `cd src`
1. Clone https://github.com/stackhpc/stackhpc-kayobe-config.git, then checkout
commit f31df6256f1b1fea99c84547d44f06c4cb74b161
1. `cd ..` and `mkdir venvs`
1. `virtualenv venvs/kayobe` and source `venvs/kayobe/bin/activate`
1. `pip install -U pip`
1. `pip install ./src/kayobe`
1. Acquire the Ansible Vault password for this repository, and store a copy at
``~/vault-pw``
1. `export KAYOBE_VAULT_PASSWORD=$(cat ~/vault-pw)`

## Config changes
1. In etc/kayobe/ansible/requirements.yml remove version from vxlan
4. In etc/kayobe/ansible/configure-vxlan.yml, change the group of
vxlan_interfaces so that the last octet is different e.g. 224.0.0.15
5. Also under vxlan_interfaces, add vni:x where x is between 500 and 1000
5. Also under vxlan_interfaces, check vxlan_dstport is not 4789 (this causes
conflicts, change to 4790)
6. In /etc/kayobe/environments/ci-multinode/tf-networks.yml,
edit admin_ips so that the compute and controller IPs line up with the
instances that were created earlier, remove the other IPs for seed and
cephOSD
7. In /etc/kayobe/environments/ci-multinode/network-allocation.yml, remove all
the entries and just assign `aio_ips:` an empty set `[]`
8. In etc/kayobe/environments/ci-multinode/inventory/hosts, remove the seed
9. run stackhpc-kayobe-config/etc/kayobe/ansible/growroot.yml (if this fails,
manually increase the partition size on each host)

## Final steps
1. `source kayobe-env --environment ci-aio`
10. Run `kayobe overcloud host configure`
11. Run `kayobe overcloud service deploy`
61 changes: 61 additions & 0 deletions etc/kayobe/environments/ci-multinode/cephadm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
###############################################################################
# Cephadm deployment configuration.

# Ceph container image.
cephadm_image: "quay.io/ceph/ceph:v16.2.5"

# Ceph OSD specification.
cephadm_osd_spec:
service_type: osd
service_id: osd_spec_default
placement:
host_pattern: "*"
data_devices:
all: true

###############################################################################
# Ceph post-deployment configuration.

# List of Ceph erasure coding profiles. See stackhpc.cephadm.ec_profiles role
# for format.
cephadm_ec_profiles: []

# List of Ceph CRUSH rules. See stackhpc.cephadm.crush_rules role for format.
cephadm_crush_rules: []

# List of Ceph pools. See stackhpc.cephadm.pools role for format.
cephadm_pools:
- name: backups
application: rbd
state: present
- name: images
application: rbd
state: present
- name: volumes
application: rbd
state: present
- name: vms
application: rbd
state: present

# List of Cephx keys. See stackhpc.cephadm.keys role for format.
cephadm_keys:
- name: client.cinder
caps:
mon: "profile rbd"
osd: "profile rbd pool=volumes, profile rbd pool=vms, profile rbd-read-only pool=images"
mgr: "profile rbd pool=volumes, profile rbd pool=vms"
state: present
- name: client.cinder-backup
caps:
mon: "profile rbd"
osd: "profile rbd pool=volumes, profile rbd pool=backups"
mgr: "profile rbd pool=volumes, profile rbd pool=backups"
state: present
- name: client.glance
caps:
mon: "profile rbd"
osd: "profile rbd pool=images"
mgr: "profile rbd pool=images"
state: present
5 changes: 5 additions & 0 deletions etc/kayobe/environments/ci-multinode/compute.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
# List of storage volume groups. See mrlesmithjr.manage-lvm role for
# format.
compute_lvm_groups:
- "{{ stackhpc_lvm_group_rootvg }}"
5 changes: 5 additions & 0 deletions etc/kayobe/environments/ci-multinode/controllers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
# List of storage volume groups. See mrlesmithjr.manage-lvm role for
# format.
controller_lvm_groups:
- "{{ stackhpc_lvm_group_rootvg }}"
63 changes: 63 additions & 0 deletions etc/kayobe/environments/ci-multinode/globals.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
# Kayobe global configuration.

###############################################################################
# Local path configuration (Ansible control host).

# Path to Kayobe configuration directory on Ansible control host, with an
# environment path appended if kayobe_environment is set.
#kayobe_config_path:

# Name of Kayobe environment to use. Default is $KAYOBE_ENVIRONMENT, or an
# empty string if $KAYOBE_ENVIRONMENT is not set. Can also be set via the
# --environment argument when invoking kayobe.
#kayobe_environment:

# Path to Kayobe configuration directory on Ansible control host with an
# environment path appended if kayobe_environment is set.
#kayobe_env_config_path:

###############################################################################
# Remote path configuration (seed, seed-hypervisor and overcloud hosts).

# Base path for kayobe state on remote hosts.
#base_path:

# Path in which to store configuration on remote hosts.
#config_path:

# Path in which to cache downloaded images on remote hosts.
#image_cache_path:

# Path on which to checkout source code repositories on remote hosts.
#source_checkout_path:

# Path on which to create python virtualenvs on remote hosts.
#virtualenv_path:

###############################################################################
# User configuration.

# User with which to access remote hosts. This user will be created if it does
# not exist.
#kayobe_ansible_user:

###############################################################################
# OS distribution.

# OS distribution name. Valid options are "centos", "ubuntu". Default is
# "centos".
os_distribution: "{{ lookup('pipe', '. /etc/os-release && echo $ID') | trim }}"

# OS release. Valid options are "8-stream" when os_distribution is "centos", or
# "focal" when os_distribution is "ubuntu".
#os_release:

###############################################################################

# Avoid a reboot.
disable_selinux_do_reboot: false

###############################################################################
# Dummy variable to allow Ansible to accept this file.
workaround_ansible_issue_8743: yes
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
###############################################################################
# Network interface definitions for the controller group.

admin_interface: eno1

# Controller interface on all-in-one network.
aio_interface: breth1
# Use dummy1 if it exists, otherwise the bridge will have no ports.
aio_bridge_ports: []

###############################################################################
# Dummy variable to allow Ansible to accept this file.
workaround_ansible_issue_8743: yes
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
###############################################################################
# Network interface definitions for the controller group.

admin_interface: eno1

# Controller interface on all-in-one network.
aio_interface: breth1
# Use dummy1 if it exists, otherwise the bridge will have no ports.
aio_bridge_ports: []

###############################################################################
# Dummy variable to allow Ansible to accept this file.
workaround_ansible_issue_8743: yes
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
###############################################################################
# Network interface definitions for the controller group.

admin_interface: eth0

# Controller interface on all-in-one network.
aio_interface: breth1
# Use dummy1 if it exists, otherwise the bridge will have no ports.
aio_bridge_ports: []
###############################################################################
# Dummy variable to allow Ansible to accept this file.
workaround_ansible_issue_8743: yes
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# StackHPC LVM lv_swap LV size.
stackhpc_lvm_lv_swap_size: 1g

# StackHPC LVM lv_root LV size.
stackhpc_lvm_lv_root_size: 8g

# StackHPC LVM lv_tmp LV size.
stackhpc_lvm_lv_tmp_size: 2g

# StackHPC LVM lv_var LV size.
stackhpc_lvm_lv_var_size: 12g

# StackHPC LVM lv_var_tmp LV size.
stackhpc_lvm_lv_var_tmp_size: 1g

# StackHPC LVM lv_log LV size.
stackhpc_lvm_lv_log_size: 2g

# StackHPC LVM lv_audit LV size.
stackhpc_lvm_lv_audit_size: 1g

# StackHPC LVM lv_home LV size.
stackhpc_lvm_lv_home_size: 2g
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
###############################################################################
# Network interface definitions for the stroage group.

admin_interface: ens3

# Controller interface on all-in-one network.
aio_interface: breth1
# Use dummy1 if it exists, otherwise the bridge will have no ports.
aio_bridge_ports: []

###############################################################################
# Dummy variable to allow Ansible to accept this file.
workaround_ansible_issue_8743: yes
5 changes: 5 additions & 0 deletions etc/kayobe/environments/ci-multinode/inventory/groups
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[controllers]

[container-image-builders:children]
# Build container images on the all-in-one controller.
controllers
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[tempest_runner]
kayobe-controller-01
3 changes: 3 additions & 0 deletions etc/kayobe/environments/ci-multinode/kolla.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
kolla_enable_cinder: true
kolla_enable_cinder_backup: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[DEFAULT]
minimum_required_memory = 256
9 changes: 9 additions & 0 deletions etc/kayobe/environments/ci-multinode/kolla/globals.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
# Glance Ceph configuration
glance_backend_ceph: "yes"

# Cinder Ceph configuration
cinder_backend_ceph: "yes"

# Nova Ceph configuration
nova_backend_ceph: "yes"
Loading