Skip to content

Commit 170880a

Browse files
committed
wip
1 parent b186ebd commit 170880a

File tree

6 files changed

+103
-19
lines changed

6 files changed

+103
-19
lines changed

.github/workflows/stackhpc-all-in-one.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,17 @@ jobs:
344344
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
345345
if: inputs.upgrade
346346

347+
- name: Migrate RabbitMQ queues
348+
run: |
349+
docker run -t --rm \
350+
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
351+
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
352+
${{ steps.kayobe_image.outputs.kayobe_image }} \
353+
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh etc/kayobe/ansible/migrate-rabbitmq-queues.yml --tags rabbit-queue-migration
354+
env:
355+
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
356+
if: inputs.upgrade
357+
347358
- name: Service upgrade
348359
run: |
349360
docker run -t --rm \
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
# Migrate RabbitMQ queues from HA to Quorum
3+
# This is primarily used in CI workflows
4+
5+
- name: Migrate RabbitMQ queues
6+
hosts: localhost
7+
gather_facts: no
8+
vars:
9+
- rabbitmq_container_name: "rabbitmq"
10+
- services_to_restart: "barbican,blazar,cinder,cloudkitty,designate,heat,ironic,keystone,magnum,manila,neutron,nova,octavia"
11+
tasks:
12+
- name: Checking timedatectl status
13+
command: timedatectl status
14+
register: timedatectl_status
15+
changed_when: false
16+
17+
- name: Fail if the clock is not synchronized
18+
assert:
19+
that:
20+
- "'synchronized: yes' not in timedatectl_status.stdout"
21+
fail_msg: >
22+
timedatectl sees the system clock as unsynchronized.
23+
You may need to force synchronisation using `chronyc makestep`.
24+
Otherwise, please wait for synchronization.
25+
26+
- name: Inspect the {{ rabbitmq_container_name }} container
27+
shell:
28+
cmd: "docker container inspect --format '{{ '{{' }} .State.Running {{ '}}' }}' {{ rabbitmq_container_name }}"
29+
register: inspection
30+
become: true
31+
32+
- name: Ensure the {{ rabbitmq_container_name }} container is running
33+
command: "systemctl start kolla-{{ rabbitmq_container_name }}-container.service"
34+
when: inspection.stdout == 'false'
35+
become: true
36+
37+
- name: Wait for the {{ rabbitmq_container_name }} container to reach state 'Running'
38+
shell:
39+
cmd: "docker container inspect --format '{{ '{{' }} .State.Running {{ '}}' }}' {{ rabbitmq_container_name }}"
40+
register: result
41+
until: result.stdout == 'true'
42+
retries: 10
43+
delay: 6
44+
become: true
45+
46+
- name: Wait for the rabbitmq node to automatically start on container start
47+
command: "docker exec {{ rabbitmq_container_name }} /bin/bash -c 'rabbitmqctl wait /var/lib/rabbitmq/mnesia/rabbitmq.pid --timeout 60'"
48+
when: inspection.stdout == 'false'
49+
become: true
50+
51+
- name: Migrate RabbitMQ queues
52+
shell:
53+
cmd: >
54+
kayobe overcloud service configuration generate --node-config-dir /etc/kolla --kolla-skip-tags rabbitmq-ha-precheck -ke om_enable_rabbitmq_quorum_queues=true -ke om_enable_rabbitmq_high_availability=false &&
55+
kayobe kolla ansible run "stop --yes-i-really-really-mean-it" -kt {{ services_to_restart }} -ke om_enable_rabbitmq_quorum_queues=true -ke om_enable_rabbitmq_high_availability=false &&
56+
kayobe kolla ansible run rabbitmq-reset-state -ke om_enable_rabbitmq_quorum_queues=true -ke om_enable_rabbitmq_high_availability=false &&
57+
kayobe kolla ansible run deploy -kt {{ services_to_restart }} -ke om_enable_rabbitmq_quorum_queues=true -ke om_enable_rabbitmq_high_availability=false
58+
executable: /bin/bash
59+
run_once: true
60+
delegate_to: localhost
61+
tags: rabbit-queue-migration
62+
63+
- name: Inspect RabbitMQ queues
64+
shell:
65+
cmd: "docker exec {{ rabbitmq_container_name }} rabbitmqctl list_queues type"
66+
run_once: true
67+
delegate_to: localhost
68+
register: queues
69+
become: true
70+
71+
- name: Assert that queues have been migrated
72+
assert:
73+
that: "{{ 'quorum' in queues.stdout }}"
74+
fail_msg: Queue migration has failed. Run the migration manually.
75+
run_once: true
76+
delegate_to: localhost
77+
78+
- name: Print warning message
79+
debug:
80+
msg: >
81+
Queues have been migrated, now ensure
82+
om_enable_rabbitmq_quorum_queues is set to true in kolla/globals.yml
83+
run_once: true
84+
delegate_to: localhost

etc/kayobe/ansible/prometheus.yml.j2

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -247,18 +247,6 @@ scrape_configs:
247247
{% endfor %}
248248
{% endif %}
249249

250-
{% if enable_ironic_prometheus_exporter | bool %}
251-
- job_name: ironic_prometheus_exporter
252-
static_configs:
253-
{% for host in groups['ironic-conductor'] %}
254-
- targets: ["{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ hostvars[host]['ironic_prometheus_exporter_port'] }}"]
255-
{% if hostvars[host].prometheus_instance_label | default(false, true) %}
256-
labels:
257-
instance: "{{ hostvars[host].prometheus_instance_label }}"
258-
{% endif %}
259-
{% endfor %}
260-
{% endif %}
261-
262250
{% if enable_prometheus_alertmanager | bool %}
263251
- job_name: alertmanager
264252
static_configs:
@@ -273,14 +261,10 @@ scrape_configs:
273261

274262
alerting:
275263
alertmanagers:
276-
- static_configs:
277-
- targets:
264+
- static_configs:
278265
{% for host in groups["prometheus-alertmanager"] %}
266+
- targets:
279267
- '{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ hostvars[host]['prometheus_alertmanager_port'] }}'
280-
{% if hostvars[host].prometheus_instance_label | default(false, true) %}
281-
labels:
282-
instance: "{{ hostvars[host].prometheus_instance_label }}"
283-
{% endif %}
284268
{% endfor %}
285269
{% endif %}
286270
{% endraw %}

etc/kayobe/kolla-image-tags.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,6 @@ kolla_image_tags:
66
openstack:
77
rocky-9: 2024.1-rocky-9-20240725T165045
88
ubuntu-jammy: 2024.1-ubuntu-jammy-20240725T165045
9+
heat:
10+
rocky-9: 2024.1-rocky-9-20240805T142526
11+
ubuntu-jammy: 2024.1-ubuntu-jammy-20240805T142526

etc/kayobe/stackhpc.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,8 @@ stackhpc_kolla_source_version: "stackhpc/{{ openstack_release }}"
145145

146146
# Kolla Ansible source repository.
147147
stackhpc_kolla_ansible_source_url: "https://github.com/stackhpc/kolla-ansible"
148-
stackhpc_kolla_ansible_source_version: "stackhpc/{{ openstack_release }}"
148+
# stackhpc_kolla_ansible_source_version: "stackhpc/{{ openstack_release }}"
149+
stackhpc_kolla_ansible_source_version: "fix-prometheus"
149150

150151
###############################################################################
151152
# Container image registry

terraform/aio/vm.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ resource "null_resource" "kayobe-aio" {
9393
inline = [
9494
"#!/bin/sh",
9595
"echo 'connected!'"
96+
"sudo hostnamectl set-hostname $(sed s/.novalocal// /etc/hostname)"
9697
]
9798
}
9899
}

0 commit comments

Comments
 (0)