-
Notifications
You must be signed in to change notification settings - Fork 23
Xena multinode #182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Xena multinode #182
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
4aa8aed
feat: create `ci-multinode` environment
jackhodgkiss 6f49c3f
feat: successfully configure two controllers
jackhodgkiss d057d07
feat: succesfully configure three controllers with VXLAN
jackhodgkiss 27e6c61
feat: add `kayobe-compute-01`
jackhodgkiss b99dfa6
feat: add `growroot` playbook for successful deployment
jackhodgkiss 5b55f69
feat: successfully deploy environment
jackhodgkiss c359324
fix: syntax issues raised by `yamllint`
jackhodgkiss 8eb2f85
added notes
Alex-Welsh ed3f286
removed TODO
Alex-Welsh 08df280
feat: update vxlan role version and expand hosts
jackhodgkiss a4ecccc
feat: enable ceph and ceph related services
jackhodgkiss 483b887
feat: pull vxlan from ansible galaxy
jackhodgkiss cbffc6e
Removing vxlan hook
700b4db
added cephadm.yml to multinode environment.
21ffab9
feat: add storage group vars
jackhodgkiss 6c805de
Adding LVM configuration for storage nodes
grzegorzkoper 54dd5be
Reencrypting docker_registry_password
grzegorzkoper 2ecf6f1
ci-multinode: Use insecure Docker registry
markgoddard 89e5f87
Removing unnecessary config parts. Compute hosts are BM's
grzegorzkoper e0a8888
Matching with ci-builder env
grzegorzkoper 4ab1762
ci-multinode: fix pep8 issues
markgoddard File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,3 +4,5 @@ collections: | |
version: 1.10.0 | ||
- name: stackhpc.pulp | ||
version: 0.3.0 | ||
roles: | ||
- src: stackhpc.vxlan |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Multinode Test Environment | ||
|
||
## 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` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }}" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }}" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
14 changes: 14 additions & 0 deletions
14
etc/kayobe/environments/ci-multinode/inventory/group_vars/compute/network-interfaces
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
14 changes: 14 additions & 0 deletions
14
etc/kayobe/environments/ci-multinode/inventory/group_vars/controllers/network-interfaces
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
13 changes: 13 additions & 0 deletions
13
etc/kayobe/environments/ci-multinode/inventory/group_vars/seed/network-interfaces
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
23 changes: 23 additions & 0 deletions
23
etc/kayobe/environments/ci-multinode/inventory/group_vars/storage/lvm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
14 changes: 14 additions & 0 deletions
14
etc/kayobe/environments/ci-multinode/inventory/group_vars/storage/network-interfaces
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
2 changes: 2 additions & 0 deletions
2
etc/kayobe/environments/ci-multinode/inventory/kayobe-automation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
[tempest_runner] | ||
kayobe-controller-01 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
--- | ||
kolla_enable_cinder: true | ||
kolla_enable_cinder_backup: true |
2 changes: 2 additions & 0 deletions
2
etc/kayobe/environments/ci-multinode/kolla/config/ironic.conf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
[DEFAULT] | ||
minimum_required_memory = 256 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.