aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ansible/module_utils/kolla_container_worker.py5
-rw-r--r--ansible/module_utils/kolla_docker_worker.py1
-rw-r--r--ansible/roles/grafana/defaults/main.yml5
-rw-r--r--ansible/roles/grafana/tasks/post_config.yml17
-rw-r--r--ansible/roles/grafana/templates/grafana.ini.j25
-rw-r--r--ansible/roles/kolla_toolbox/handlers/main.yml4
-rw-r--r--ansible/roles/neutron/templates/ml2_conf.ini.j21
-rw-r--r--ansible/roles/rabbitmq/tasks/precheck.yml2
-rw-r--r--doc/source/reference/logging-and-monitoring/grafana-guide.rst3
-rw-r--r--releasenotes/notes/bug-1889611-a89ddb10134081f4.yaml7
-rw-r--r--releasenotes/notes/bug-2166048-9707508fca725bd7.yaml5
-rw-r--r--releasenotes/notes/fix-certificates-prechecks-5baa68cd11fbe61c.yaml8
-rw-r--r--tests/kolla_container_tests/test_docker_worker.py6
-rw-r--r--tests/kolla_container_tests/test_podman_worker.py6
14 files changed, 56 insertions, 19 deletions
diff --git a/ansible/module_utils/kolla_container_worker.py b/ansible/module_utils/kolla_container_worker.py
index 4c7bedffc..bf0c20b25 100644
--- a/ansible/module_utils/kolla_container_worker.py
+++ b/ansible/module_utils/kolla_container_worker.py
@@ -316,7 +316,10 @@ class ContainerWorker(ABC):
def compare_labels(self, container_info):
new_labels = self.params.get('labels')
current_labels = container_info['Config'].get('Labels', dict())
- image_labels = self.check_image().get('Labels', dict())
+ image_info = self.check_image()
+ if not image_info:
+ return False
+ image_labels = image_info.get('Labels', dict())
for k, v in image_labels.items():
if k in new_labels:
if v != new_labels[k]:
diff --git a/ansible/module_utils/kolla_docker_worker.py b/ansible/module_utils/kolla_docker_worker.py
index 70b6af39b..f488bab66 100644
--- a/ansible/module_utils/kolla_docker_worker.py
+++ b/ansible/module_utils/kolla_docker_worker.py
@@ -77,6 +77,7 @@ class DockerWorker(ContainerWorker):
for image_name in repo_tags:
if image_name == find_image:
return image
+ return dict()
def check_volume(self):
for vol in self.dc.volumes()['Volumes'] or list():
diff --git a/ansible/roles/grafana/defaults/main.yml b/ansible/roles/grafana/defaults/main.yml
index e7aac005a..402519d78 100644
--- a/ansible/roles/grafana/defaults/main.yml
+++ b/ansible/roles/grafana/defaults/main.yml
@@ -122,6 +122,11 @@ grafana_start_first_node_retries: 12
grafana_remove_old_volume: true
+grafana_custom_home_dashboard: >-
+ {{ 'grafana_home_dashboard.json' in
+ check_extra_conf_grafana.files | default([], true) |
+ map(attribute='path') | map('basename') }}
+
############
# Prometheus
############
diff --git a/ansible/roles/grafana/tasks/post_config.yml b/ansible/roles/grafana/tasks/post_config.yml
index e90a2ab47..949ef31f6 100644
--- a/ansible/roles/grafana/tasks/post_config.yml
+++ b/ansible/roles/grafana/tasks/post_config.yml
@@ -41,20 +41,3 @@
failed_when: response.status not in [200, 409] or response.status == 409 and ("name already exists" not in response.json.message | default(""))
with_dict: "{{ grafana_data_sources }}"
when: item.value.enabled | bool
-
-- name: Disable Getting Started panel
- become: true
- kolla_toolbox:
- container_engine: "{{ kolla_container_engine }}"
- module_name: uri
- module_args:
- url: "{{ grafana_internal_endpoint }}/api/user/helpflags/1"
- method: PUT
- user: "{{ grafana_admin_username }}"
- password: "{{ grafana_admin_password }}"
- force_basic_auth: true
- status_code: 200
- register: grafana_response
- changed_when: grafana_response.status == 200
- run_once: true
- when: "'grafana_home_dashboard.json' in check_extra_conf_grafana.files | map(attribute='path') | map('basename')"
diff --git a/ansible/roles/grafana/templates/grafana.ini.j2 b/ansible/roles/grafana/templates/grafana.ini.j2
index 763915796..4aae4caa5 100644
--- a/ansible/roles/grafana/templates/grafana.ini.j2
+++ b/ansible/roles/grafana/templates/grafana.ini.j2
@@ -41,3 +41,8 @@ enabled = true
config_file = /etc/grafana/ldap.toml
allow_sign_up = true
{% endif %}
+
+{% if grafana_custom_home_dashboard | bool %}
+[dashboards]
+default_home_dashboard_path = /usr/share/grafana/public/dashboards/home.json
+{% endif %}
diff --git a/ansible/roles/kolla_toolbox/handlers/main.yml b/ansible/roles/kolla_toolbox/handlers/main.yml
index 73db9be9d..8acaece93 100644
--- a/ansible/roles/kolla_toolbox/handlers/main.yml
+++ b/ansible/roles/kolla_toolbox/handlers/main.yml
@@ -23,3 +23,7 @@
become: true
ansible.builtin.command: "{{ kolla_container_engine }} exec -t {{ service['container_name'] }} ansible --version"
changed_when: false
+ register: result
+ until: result.rc == 0
+ retries: 5
+ delay: 5
diff --git a/ansible/roles/neutron/templates/ml2_conf.ini.j2 b/ansible/roles/neutron/templates/ml2_conf.ini.j2
index 7a4e72bdb..5af72163a 100644
--- a/ansible/roles/neutron/templates/ml2_conf.ini.j2
+++ b/ansible/roles/neutron/templates/ml2_conf.ini.j2
@@ -40,5 +40,4 @@ ovn_nb_connection = {{ ovn_nb_connection }}
ovn_sb_connection = {{ ovn_sb_connection_no_relay }}
ovn_metadata_enabled = true
enable_distributed_floating_ip = {{ neutron_ovn_distributed_fip | bool }}
-ovn_emit_need_to_frag = true
{% endif %}
diff --git a/ansible/roles/rabbitmq/tasks/precheck.yml b/ansible/roles/rabbitmq/tasks/precheck.yml
index a5c8f6340..827ab66ae 100644
--- a/ansible/roles/rabbitmq/tasks/precheck.yml
+++ b/ansible/roles/rabbitmq/tasks/precheck.yml
@@ -88,6 +88,7 @@
- "{{ kolla_certificates_dir }}/{{ inventory_hostname }}/rabbitmq-cert.pem"
- "{{ kolla_certificates_dir }}/{{ inventory_hostname }}-cert.pem"
- "{{ kolla_certificates_dir }}/rabbitmq-cert.pem"
+ - "{{ kolla_tls_backend_cert }}"
when:
- not kolla_externally_managed_cert | bool
- rabbitmq_enable_tls | bool
@@ -102,6 +103,7 @@
- "{{ kolla_certificates_dir }}/{{ inventory_hostname }}/rabbitmq-key.pem"
- "{{ kolla_certificates_dir }}/{{ inventory_hostname }}-key.pem"
- "{{ kolla_certificates_dir }}/rabbitmq-key.pem"
+ - "{{ kolla_tls_backend_key }}"
when:
- not kolla_externally_managed_cert | bool
- rabbitmq_enable_tls | bool
diff --git a/doc/source/reference/logging-and-monitoring/grafana-guide.rst b/doc/source/reference/logging-and-monitoring/grafana-guide.rst
index 412ca88e1..8b896d1d8 100644
--- a/doc/source/reference/logging-and-monitoring/grafana-guide.rst
+++ b/doc/source/reference/logging-and-monitoring/grafana-guide.rst
@@ -90,6 +90,9 @@ sub-folders is also supported when using a custom ``provisioning.yaml``
file. Dashboards will be imported into the Grafana dashboards 'General'
folder by default.
+To set a custom home dashboard, place the dashboard file in
+``{{ node_custom_config }}/grafana/grafana_home_dashboard.json``.
+
Grafana provisioner config can be altered by placing ``provisioning.yaml`` to
``{{ node_custom_config }}/grafana/`` folder.
diff --git a/releasenotes/notes/bug-1889611-a89ddb10134081f4.yaml b/releasenotes/notes/bug-1889611-a89ddb10134081f4.yaml
new file mode 100644
index 000000000..05cce09d8
--- /dev/null
+++ b/releasenotes/notes/bug-1889611-a89ddb10134081f4.yaml
@@ -0,0 +1,7 @@
+---
+fixes:
+ - |
+ Fixes image check with containers that don't exist locally. A bug in the
+ image comparison logic would make service-check-containers fail with
+ ``AttributeError: NoneType object has no attribute get``
+ `LP#2166024 <https://launchpad.net/bugs/2166024>`__
diff --git a/releasenotes/notes/bug-2166048-9707508fca725bd7.yaml b/releasenotes/notes/bug-2166048-9707508fca725bd7.yaml
new file mode 100644
index 000000000..0004097ab
--- /dev/null
+++ b/releasenotes/notes/bug-2166048-9707508fca725bd7.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+ - |
+ Fixes Grafana deployment with custom home dashboard in Grafana 13.2.
+ `LP#2166048 <https://launchpad.net/bugs/2166048>`__
diff --git a/releasenotes/notes/fix-certificates-prechecks-5baa68cd11fbe61c.yaml b/releasenotes/notes/fix-certificates-prechecks-5baa68cd11fbe61c.yaml
new file mode 100644
index 000000000..3c38e1658
--- /dev/null
+++ b/releasenotes/notes/fix-certificates-prechecks-5baa68cd11fbe61c.yaml
@@ -0,0 +1,8 @@
+---
+fixes:
+ - |
+ Fixes RabbitMQ precheck failing with "No TLS certificate/key provided
+ for RabbitMQ" when relying on the shared ``kolla_tls_backend_cert``/
+ ``kolla_tls_backend_key`` fallback, which ``service-cert-copy`` already
+ supports but the precheck did not check for.
+
diff --git a/tests/kolla_container_tests/test_docker_worker.py b/tests/kolla_container_tests/test_docker_worker.py
index cd351e4ef..e32da66cb 100644
--- a/tests/kolla_container_tests/test_docker_worker.py
+++ b/tests/kolla_container_tests/test_docker_worker.py
@@ -1251,6 +1251,12 @@ class TestAttrComp(base.BaseTestCase):
self.dw = get_DockerWorker({'privileged': False})
self.assertTrue(self.dw.compare_privileged(container_info))
+ def test_compare_labels_image_missing(self):
+ container_info = {'Config': dict(Labels={'kolla_version': '1.0.1'})}
+ self.dw = get_DockerWorker({'labels': {}})
+ self.dw.check_image = mock.MagicMock(return_value=dict())
+ self.assertFalse(self.dw.compare_labels(container_info))
+
def test_compare_labels_neg(self):
container_info = {'Config': dict(Labels={'kolla_version': '2.0.1'})}
self.dw = get_DockerWorker({'labels': {'kolla_version': '2.0.1'}})
diff --git a/tests/kolla_container_tests/test_podman_worker.py b/tests/kolla_container_tests/test_podman_worker.py
index 048a7a797..04d6d987b 100644
--- a/tests/kolla_container_tests/test_podman_worker.py
+++ b/tests/kolla_container_tests/test_podman_worker.py
@@ -1264,6 +1264,12 @@ class TestAttrComp(base.BaseTestCase):
self.pw = get_PodmanWorker({'privileged': False})
self.assertTrue(self.pw.compare_privileged(container_info))
+ def test_compare_labels_image_missing(self):
+ container_info = {'Config': dict(Labels={'kolla_version': '1.0.1'})}
+ self.pw = get_PodmanWorker({'labels': {}})
+ self.pw.check_image = mock.MagicMock(return_value=dict())
+ self.assertFalse(self.pw.compare_labels(container_info))
+
def test_compare_labels_neg(self):
container_info = {'Config': dict(Labels={'kolla_version': '2.0.1'})}
self.pw = get_PodmanWorker({'labels': {'kolla_version': '2.0.1'}})