Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
0381e16
Add StackHPC overcloud DIB configuration
markgoddard Jul 28, 2022
4102cde
Add StackHPC LVM configuration
markgoddard Jul 28, 2022
f093d1f
Add swap.yml custom playbook
markgoddard Jul 22, 2022
5ef8de0
Add growroot.yml custom playbook
markgoddard Jul 27, 2022
51148db
docker: enable live restore
markgoddard Jun 7, 2022
e913d76
Add basic Ansible tuning
markgoddard Jun 7, 2022
d80d58a
CI: Allow building Ubuntu Kolla container images
markgoddard Aug 8, 2022
a449fee
Merge with stackhpc/wallaby
markgoddard Aug 9, 2022
ce96233
Merge pull request #105 from stackhpc/wallaby-ubuntu-kolla-ci
markgoddard Aug 10, 2022
b3bb3a0
CI: Pull Kayobe container image to ensure latest
markgoddard Aug 10, 2022
b4abef2
Merge pull request #114 from stackhpc/wallaby-pull-kayobe-image
markgoddard Aug 10, 2022
0d340ce
add skydive feature flag
GregWhiteyBialas Aug 10, 2022
f3addef
feat: automatic update of workflows stackhpc/wallaby
stackhpc-ci Aug 10, 2022
c87747b
feat: automatic update of community files stackhpc/wallaby
stackhpc-ci Aug 10, 2022
0dba1c6
Update kayobe-automation to fix rsync issue
markgoddard Aug 10, 2022
c337c45
Merge pull request #126 from stackhpc/wallaby-community-files
markgoddard Aug 10, 2022
abe6221
Merge branch 'stackhpc/wallaby' into wallaby-workflows
markgoddard Aug 10, 2022
7b5c019
Merge pull request #123 from stackhpc/wallaby-workflows
markgoddard Aug 10, 2022
bba7a04
Merge branch 'stackhpc/wallaby' into wallaby-kayobe-automation-rsync
markgoddard Aug 10, 2022
6b62dab
feat: automatic update of workflows stackhpc/wallaby
stackhpc-ci Aug 10, 2022
8bbe1cc
Merge pull request #130 from stackhpc/wallaby-workflows
markgoddard Aug 10, 2022
a85abc4
Merge pull request #115 from stackhpc/add_skydive
markgoddard Aug 11, 2022
f90b22e
Merge pull request #128 from stackhpc/wallaby-kayobe-automation-rsync
markgoddard Aug 11, 2022
f3f95f1
add skydive tag
GregWhiteyBialas Aug 11, 2022
4b1ff96
Merge pull request #132 from stackhpc/add_skydive_tag
markgoddard Aug 11, 2022
7fc7e5b
add skydive to pulled images
GregWhiteyBialas Aug 11, 2022
87a5bc1
Merge pull request #133 from stackhpc/add_skydive_to_pulp
markgoddard Aug 11, 2022
e2e1650
Remove sahara-dashboard fork from sources
priteau Aug 12, 2022
78e6e38
Merge pull request #134 from stackhpc/sahara-dashboard-upstream
markgoddard Aug 12, 2022
d49cafa
README: fix ci-aio and ci-builder setup instructions
markgoddard Aug 17, 2022
e7775cb
Merge pull request #135 from stackhpc/readme-fix
markgoddard Aug 17, 2022
e1ce19f
add name to pulp container
bbezak Aug 18, 2022
b01b261
fix pulp post.yml instead of adding name to seed.yml
bbezak Aug 22, 2022
ee636f2
Merge pull request #137 from stackhpc/fix-pulp-password-set
markgoddard Aug 22, 2022
015c26a
add new skydive tags
GregWhiteyBialas Aug 22, 2022
2e7c430
Merge branch 'stackhpc/wallaby' into add_skydive_to_pulp
GregWhiteyBialas Aug 22, 2022
223f7c8
Merge pull request #139 from stackhpc/add_skydive_to_pulp
GregWhiteyBialas Aug 23, 2022
a14d4e4
Revert "Ubuntu: add host Apt repository configuration"
markgoddard Aug 19, 2022
356da17
Ubuntu: stop syncing Ark Ubuntu mirrors to local Pulp
markgoddard Aug 19, 2022
1c7f77b
Ubuntu: stop using Ark repo mirrors in container images
markgoddard Aug 19, 2022
e7ea0fa
Ubuntu: use newly built Kolla images
markgoddard Aug 23, 2022
acf48be
Merge pull request #104 from stackhpc/xena-mini-features
markgoddard Aug 23, 2022
817bea9
growpart.yml: Don't assume facts are present
markgoddard Aug 24, 2022
04f1582
Overcloud DIB: stop using StackHPC package repos for Ubuntu image
markgoddard Aug 24, 2022
b32e6f2
Ubuntu: set Bifrost image tag
markgoddard Aug 24, 2022
4bfb234
CI: add hook for seed container image build
markgoddard Aug 24, 2022
3931b6e
Support filtering Kolla container images to sync/publish
markgoddard Aug 24, 2022
2c50b9f
Merge branch 'stackhpc/wallaby' into wallaby-drop-ubuntu-repos
markgoddard Aug 24, 2022
3e72127
Merge pull request #140 from stackhpc/wallaby-drop-ubuntu-repos
markgoddard Aug 24, 2022
0f61e4e
growroot.yml: Fail if the expected volume group doesn't exist
markgoddard Aug 25, 2022
b5347fc
bifrost: Add stackhpc-inspector-plugins to image
markgoddard Aug 25, 2022
f02e3bf
bifrost: update tags
markgoddard Aug 25, 2022
ba355e3
Merge pull request #142 from stackhpc/bifrost-inspector-plugins
markgoddard Aug 25, 2022
10b96b4
growroot: Avoid package installation when growpart is installed
markgoddard Aug 26, 2022
2de8b2d
pulp: use pulp_url as advertised content origin
markgoddard Aug 26, 2022
5223756
Merge pull request #143 from stackhpc/wallaby-fix-pulp-host
markgoddard Aug 26, 2022
f43c3ee
README: Install python3-virtualenv for ci-aio & ci-builder environments
markgoddard Aug 30, 2022
3ddd3f5
Merge pull request #145 from stackhpc/wallaby-virtualenv-readme
markgoddard Aug 30, 2022
e937334
Add ceph group as a child of the storage group
markgoddard Aug 31, 2022
c729b50
Merge stackhpc/wallaby into stackhpc/xena
markgoddard Aug 31, 2022
ef998c4
Merge pull request #147 from stackhpc/xena-storage-group
markgoddard Aug 31, 2022
fbeb094
Merge pull request #148 from stackhpc/xena-wallaby-merge
markgoddard Aug 31, 2022
d43c77c
Merge pull request #141 from stackhpc/xena-filter-images
markgoddard Aug 31, 2022
3cee894
Merge pull request #99 from stackhpc/xena-overcloud-dib
markgoddard Aug 31, 2022
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
5 changes: 5 additions & 0 deletions .github/workflows/stackhpc-all-in-one.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,11 @@ jobs:
echo "::add-mask::$ssh_key"
echo "::set-output name=ssh_key::$ssh_key"

# The same tag may be reused (e.g. pr-123), so ensure we have the latest image.
- name: Pull latest Kayobe image
run: |
sudo docker image pull $KAYOBE_IMAGE

- name: Host configure
run: |
sudo -E docker run -t --rm \
Expand Down
12 changes: 10 additions & 2 deletions .github/workflows/stackhpc-container-image-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ on:
type: boolean
required: false
default: false
distro:
description: Container image OS distribution
type: choice
required: false
default: centos
options:
- centos
- ubuntu

env:
ANSIBLE_FORCE_COLOR: True
Expand Down Expand Up @@ -85,7 +93,7 @@ jobs:
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
kayobe overcloud container image build ${{ github.event.inputs.regexes }} --push
kayobe overcloud container image build ${{ github.event.inputs.regexes }} --push -e kolla_base_distro=${{ inputs.distro }}
env:
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
if: github.event.inputs.overcloud == 'true'
Expand All @@ -112,7 +120,7 @@ jobs:
run: |
source venvs/kayobe/bin/activate &&
source src/kayobe-config/kayobe-env --environment ci-builder &&
kayobe seed container image build --push
kayobe seed container image build --push -e kolla_base_distro=${{ inputs.distro }}
env:
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
if: github.event.inputs.seed == 'true'
Expand Down
34 changes: 32 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,21 @@ Setup

Access the host via SSH.

Install package dependencies.

On CentOS:

.. code-block:: console

sudo dnf install -y python3-virtualenv

On Ubuntu:

.. code-block:: console

sudo apt update
sudo apt install -y python3-virtualenv

Clone the Kayobe and Kayobe configuration repositories (this one):

.. code-block:: console
Expand All @@ -246,7 +261,7 @@ Clone the Kayobe and Kayobe configuration repositories (this one):
mkdir -p src
pushd src
git clone https://github.com/stackhpc/kayobe.git -b stackhpc/xena
git clone https://github.com/stackhpc/stackhpc-kayobe-config -b stackhpc/xena
git clone https://github.com/stackhpc/stackhpc-kayobe-config -b stackhpc/xena kayobe-config
popd

Create a virtual environment and install Kayobe:
Expand Down Expand Up @@ -337,6 +352,21 @@ Setup

Access the host via SSH.

Install package dependencies.

On CentOS:

.. code-block:: console

sudo dnf install -y python3-virtualenv

On Ubuntu:

.. code-block:: console

sudo apt update
sudo apt install -y python3-virtualenv

Clone the Kayobe and Kayobe configuration repositories (this one):

.. code-block:: console
Expand All @@ -345,7 +375,7 @@ Clone the Kayobe and Kayobe configuration repositories (this one):
mkdir -p src
pushd src
git clone https://github.com/stackhpc/kayobe.git -b stackhpc/xena
git clone https://github.com/stackhpc/stackhpc-kayobe-config -b stackhpc/xena
git clone https://github.com/stackhpc/stackhpc-kayobe-config -b stackhpc/xena kayobe-config
popd

Create a virtual environment and install Kayobe:
Expand Down
11 changes: 11 additions & 0 deletions etc/kayobe/ansible.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[defaults]
forks = 20
# Use the YAML stdout callback plugin.
stdout_callback = yaml
# Use the stdout_callback when running ad-hoc commands.
bin_ansible_callbacks = True
# Disable fact variable injection to improve performance.
inject_facts_as_vars = False

[ssh_connection]
pipelining = True
79 changes: 79 additions & 0 deletions etc/kayobe/ansible/growroot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
# Custom playbook to grow the partition and LVM PV of the root VG. This allows
# for expansion of LVs in that VG. This may be used as a pre-overcloud host
# configure hook.
#
# Variables:
# * growroot_group: Host pattern against which to target the playbook. Default
# is 'overcloud'.
# * growroot_vg: Name of the VG containing the PV to grow. Default is 'rootvg'.

- name: Grow root PV
hosts: "{{ growroot_group | default('overcloud') }}"
# Avoid using facts because this may be used as a pre overcloud host
# configure hook, and we don't want to populate the fact cache (if one is in
# use) with the bootstrap user's context.
gather_facts: false
tags:
- growroot
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"
# Name of the LVM VG containing the root PV.
growroot_vg: "rootvg"
# Don't assume facts are present.
os_family: "{{ ansible_facts.os_family | default('Debian' if os_distribution == 'ubuntu' else 'RedHat') }}"

tasks:
- name: Check if growpart is installed
shell:
cmd: type growpart
changed_when: false
failed_when: false
register: growpart_check
become: true

- name: Ensure growpart is installed
package:
name: "{% if os_family == 'RedHat' %}cloud-utils-growpart{% else %}cloud-guest-utils{% endif %}"
state: present
cache_valid_time: "{{ apt_cache_valid_time if os_family == 'Debian' else omit }}"
update_cache: "{{ True if os_family == 'Debian' else omit }}"
become: True
when: growpart_check.rc != 0

- name: Get root PV device
command: "pvs --select vg_name={{ growroot_vg }} --reportformat json"
register: pvs
become: True
changed_when: False

- name: Fail if root PV device not found
fail:
msg: >
Expected LVM physical volume devices not found in volume group {{ growroot_vg }}
when: (pvs.stdout | from_json).report[0].pv | length == 0

- name: Grow partition
command: "growpart {{ disk }} {{ part_num }}"
vars:
pv: "{{ pvs.stdout | from_json }}"
disk_tmp: "{{ pv.report[0].pv[0].pv_name[:-1] }}"
disk: "{{ disk_tmp[:-1] if disk_tmp[-1] == 'p' else disk_tmp }}"
part_num: "{{ pv.report[0].pv[0].pv_name[-1] }}"
become: True
failed_when: "growpart.rc != 0 and 'NOCHANGE' not in growpart.stdout"
changed_when: "'NOCHANGE' not in growpart.stdout"
register: growpart

- name: Grow LVM PV
command: "pvresize {{ disk }}"
vars:
pv: "{{ pvs.stdout | from_json }}"
disk: "{{ pv.report[0].pv[0].pv_name }}"
become: True
when: "'NOCHANGE' not in growpart.stdout"
35 changes: 35 additions & 0 deletions etc/kayobe/ansible/swap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
# Custom playbook to configure a swap device. This may be used as a
# post-overcloud host configure hook.
#
# Variables:
# * swap_group: Host pattern against which to target the playbook. Default is
# 'overcloud'.
# * swap_device: Name of the swap device to configure. Default is
# '/dev/rootvg/lv_swap'.

- name: Configure swap
hosts: "{{ swap_group | default('overcloud') }}"
tags:
- swap
vars:
swap_device: "/dev/rootvg/lv_swap"
become: true
tasks:
- name: Ensure swap filesystem is present
filesystem:
fstype: "swap"
dev: "{{ swap_device }}"

- name: Ensure swap device present in fstab
mount:
name: "none"
src: "{{ swap_device }}"
fstype: "swap"
state: "present"

# It does no harm to run this when swap is already active
- name: Enable swap devices
command: "/sbin/swapon -a"
when:
- ansible_facts.swaptotal_mb == 0
26 changes: 4 additions & 22 deletions etc/kayobe/apt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,13 @@
# * filename: name of a file in /etc/apt/apt.conf.d/ in which to write the
# configuration
# Default is an empty list.
apt_config:
# NOTE: Currently the Pulp verbatim publisher does not sync translation
# files, which results in apt update failing. Disable translations until this
# is resolved.
- content: |
Acquire::Languages "none";
filename: 99no-languages
#apt_config:

# List of apt keys. Each item is a dict containing the following keys:
# * url: URL of key
# * filename: Name of a file in which to store the downloaded key
# Default is an empty list.
apt_keys:
- url: "https://download.docker.com/linux/ubuntu/gpg"
filename: docker.asc
#apt_keys:

# A list of Apt repositories.
# * types: whitespace-separated list of repository types, e.g. deb or deb-src
Expand All @@ -46,22 +38,12 @@ apt_keys:
# * architecture: whitespace-separated list of architectures that will be used
# (optional, default is unset)
# Default is an empty list.
apt_repositories:
- url: "{{ stackhpc_repo_ubuntu_focal_url }}"
suites: "{{ ansible_facts.distribution_release }} {{ ansible_facts.distribution_release }}-updates {{ ansible_facts.distribution_release }}-backports"
components: main restricted universe multiverse
- url: "{{ stackhpc_repo_ubuntu_focal_security_url }}"
suites: "{{ ansible_facts.distribution_release }}-security"
components: main restricted universe multiverse
- url: "{{ stackhpc_repo_docker_ce_ubuntu_url }}"
suites: "{{ ansible_facts.distribution_release }}"
components: stable
signed_by: docker.asc
#apt_repositories:

# Whether to disable repositories in /etc/apt/sources.list. This may be used
# when replacing the distribution repositories via apt_repositories.
# Default is false.
apt_disable_sources_list: true
#apt_disable_sources_list:

###############################################################################
# Dummy variable to allow Ansible to accept this file.
Expand Down
2 changes: 1 addition & 1 deletion etc/kayobe/containers/pulp/post.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- name: Set the Pulp admin password
become: true
command: >-
docker exec -u root {{ seed_containers.pulp.name }}
docker exec -u root pulp
bash -c
'pulpcore-manager reset-admin-password -p {{ pulp_password }}'
no_log: true
Expand Down
6 changes: 3 additions & 3 deletions etc/kayobe/containers/pulp/settings.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CONTENT_ORIGIN='http://{{ ansible_facts.fqdn }}'
ANSIBLE_API_HOSTNAME='http://{{ ansible_facts.fqdn }}'
ANSIBLE_CONTENT_HOSTNAME='http://{{ ansible_facts.fqdn }}/pulp/content'
CONTENT_ORIGIN='{{ pulp_url }}'
ANSIBLE_API_HOSTNAME='{{ pulp_url }}'
ANSIBLE_CONTENT_HOSTNAME='{{ pulp_url }}/pulp/content'
TOKEN_AUTH_DISABLED=True
2 changes: 1 addition & 1 deletion etc/kayobe/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ docker_registry: "{{ stackhpc_docker_registry }}"
#docker_registry_mirrors:

# Enable live-restore on docker daemon
#docker_daemon_live_restore:
docker_daemon_live_restore: true

###############################################################################
# Dummy variable to allow Ansible to accept this file.
Expand Down
1 change: 1 addition & 0 deletions etc/kayobe/environments/ci-builder/stackhpc-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ kolla_enable_octavia: true
kolla_enable_ovn: true
kolla_enable_prometheus: true
kolla_enable_redis: true
kolla_enable_skydive: true

###############################################################################
# Network configuration.
Expand Down
Loading