Re-add freezer to inventory

This adds a minimal requirement sceleton to enable os_freezer deployment
and testing with AIO.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-os_horizon/+/975513
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-os_tempest/+/981239
Needed-By: https://review.opendev.org/c/openstack/openstack-ansible-os_freezer/+/975794
Needed-By: https://review.opendev.org/c/openstack/openstack-ansible-plugins/+/975793
Change-Id: I9f2ee74979466fff3c09b5dc4179f4a51162529d
Signed-off-by: Dmitriy Rabotyagov <dmitriy.rabotyagov@cleura.com>
This commit is contained in:
Dmitriy Rabotyagov
2026-02-03 15:24:09 +01:00
parent f39ef5f065
commit 48b50de111
15 changed files with 210 additions and 5 deletions
+6
View File
@@ -161,6 +161,12 @@
version: master
trackbranch: master
shallow_since: '2025-12-03'
- name: os_freezer
scm: git
src: https://opendev.org/openstack/openstack-ansible-os_freezer
version: master
trackbranch: master
shallow_since:
- name: os_glance
scm: git
src: https://opendev.org/openstack/openstack-ansible-os_glance
@@ -0,0 +1,10 @@
---
backup_infra_hosts:
aio1:
ip: {{ bootstrap_host_public_address }}
management_ip: {{ bootstrap_host_management_address }}
backup_runner_hosts:
aio1:
ip: {{ bootstrap_host_public_address }}
management_ip: {{ bootstrap_host_management_address }}
@@ -0,0 +1,14 @@
# The infra nodes that will be running the Freezer services
backup_infra_hosts:
infra1:
ip: 172.20.236.111
infra2:
ip: 172.20.236.112
infra3:
ip: 172.20.236.113
backup_runner_hosts:
storage1:
ip: 172.29.236.13
storage2:
ip: 172.29.236.14
@@ -0,0 +1,9 @@
---
# This file contains an example to show how to deploy
# the freezer-scheduler service to run inside of the utility container.
container_skel:
utility_container:
contains:
- utility
- freezer_scheduler
+4
View File
@@ -91,6 +91,10 @@ cloudkitty_oslomsg_rpc_password:
# your user variables.
#cloudkitty_oslomsg_notify_password:
## Freezer Options
freezer_service_password:
freezer_galera_password:
## Glance Options
glance_container_mysql_password:
glance_service_password:
+50
View File
@@ -0,0 +1,50 @@
---
# Copyright 2026, Cleura AB.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
component_skel:
freezer_api:
belongs_to:
- freezer_all
freezer_scheduler:
belongs_to:
- freezer_all
container_skel:
freezer_api_container:
belongs_to:
- backup_infra_containers
contains:
- freezer_api
freezer_scheduler_container:
belongs_to:
- backup_runner_containers
contains:
- freezer_scheduler
physical_skel:
backup_infra_containers:
belongs_to:
- all_containers
backup_infra_hosts:
belongs_to:
- hosts
backup_runner_containers:
belongs_to:
- all_containers
backup_runner_hosts:
belongs_to:
- all_containers
@@ -0,0 +1,34 @@
---
# Copyright 2023, Cleura AB
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
haproxy_freezer_api_service:
haproxy_service_name: freezer_api
haproxy_backend_nodes: "{{ groups['freezer_api'] | default([]) }}"
haproxy_ssl: "{{ haproxy_ssl }}"
haproxy_ssl_all_vips: "{{ haproxy_ssl_all_vips }}"
haproxy_port: 9090
haproxy_balance_type: http
haproxy_backend_options:
- "forwardfor"
- "httplog"
haproxy_backend_httpcheck_options:
- 'send hdr User-Agent "osa-haproxy-healthcheck" meth GET uri /healthcheck'
haproxy_backend_ssl: "{{ freezer_backend_ssl | default(openstack_service_backend_ssl) }}"
haproxy_backend_ca: "{{ freezer_haproxy_backend_ca | default(openstack_haproxy_backend_ca) }}"
haproxy_accept_both_protocols: "{{ freezer_accept_both_protocols | default(openstack_service_accept_both_protocols) }}"
haproxy_service_enabled: "{{ groups['freezer_api'] is defined and groups['freezer_api'] | length > 0 }}"
freezer_haproxy_services:
- "{{ haproxy_freezer_api_service | combine(haproxy_freezer_api_service_overrides | default({})) }}"
@@ -0,0 +1,24 @@
---
# Copyright 2023, Cleura AB
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
### HEAD as of 08.12.2025 ###
freezer_api_git_repo: "{{ openstack_opendev_base_url }}/openstack/freezer-api"
freezer_api_git_install_branch: master
freezer_api_git_track_branch: master
freezer_scheduler_git_repo: "{{ openstack_opendev_base_url }}/openstack/freezer"
freezer_scheduler_git_install_branch: master
freezer_scheduler_git_track_branch: master
@@ -40,6 +40,11 @@ designate_dashboard_git_repo: "{{ openstack_opendev_base_url }}/openstack/design
designate_dashboard_git_install_branch: f235f5e601a909c49d040cd1f9e512661e56d8fd
designate_dashboard_git_track_branch: master
## Horizon Freezer dashboard plugin
freezer_dashboard_git_repo: "{{ openstack_opendev_base_url }}/openstack/freezer-web-ui"
freezer_dashboard_git_install_branch: master
freezer_dashboard_git_track_branch: master
## Horizon Heat dashboard plugin
heat_dashboard_git_repo: "{{ openstack_opendev_base_url }}/openstack/heat-dashboard"
heat_dashboard_git_install_branch: d47d1b136f3cc9619a06a00c6867abb8701d878e
@@ -39,6 +39,10 @@ tempest_plugin_designate_git_repo: "{{ openstack_opendev_base_url }}/openstack/d
tempest_plugin_designate_git_install_branch: 88fc51f6327a4b8ac50078380d0fc91eca7eb449
tempest_plugin_designate_git_track_branch: master
tempest_plugin_freezer_git_repo: "{{ openstack_opendev_base_url }}/openstack/freezer-tempest-plugin"
tempest_plugin_freezer_git_install_branch: master
tempest_plugin_freezer_git_track_branch: master
tempest_plugin_glance_git_repo: "{{ openstack_opendev_base_url }}/openstack/glance-tempest-plugin"
tempest_plugin_glance_git_install_branch: 54889708741080bd7d7119730a68873ca51d686c
tempest_plugin_glance_git_track_branch: master
@@ -166,6 +166,9 @@
- src: user_variables_blazar.yml.j2
dest: user_variables_blazar.yml
condition: "{{ 'blazar' in bootstrap_host_scenarios_expanded }}"
- src: user_variables_freezer.yml.j2
dest: user_variables_freezer.yml
condition: "{{ 'freezer' in bootstrap_host_scenarios_expanded }}"
- src: user_variables_magnum.yml.j2
dest: user_variables_magnum.yml
condition: "{{ 'magnum' in bootstrap_host_scenarios_expanded }}"
@@ -197,13 +200,20 @@
dest: user_variables_tls.yml
condition: "{{ 'tls' in bootstrap_host_scenarios_expanded }}"
- name: Copy modified cinder-volume env.d file for ceph scenario
- name: Copy modified env.d files for scenarios
ansible.builtin.copy:
src: "{{ playbook_dir }}/../etc/openstack_deploy/env.d/cinder-volume.yml.container.example"
dest: "/etc/openstack_deploy/env.d/cinder-volume.yml"
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "0644"
when:
- "'ceph' in bootstrap_host_scenarios_expanded"
- item.condition | default(true)
with_items:
- src: "{{ playbook_dir }}/../etc/openstack_deploy/env.d/cinder-volume.yml.container.example"
dest: "/etc/openstack_deploy/env.d/cinder-volume.yml"
condition: "{{ 'ceph' in bootstrap_host_scenarios_expanded }}"
- src: "{{ playbook_dir }}/../etc/openstack_deploy/env.d/freezer-scheduler.yml.utility.example"
dest: "/etc/openstack_deploy/env.d/freezer-scheduler.yml"
condition: "{{ 'freezer' in bootstrap_host_scenarios_expanded }}"
- name: Create user-space overrides
ansible.builtin.lineinfile:
@@ -0,0 +1,17 @@
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
cinder_service_backup_program_enabled: true
horizon_enable_cinder_backup: true
tempest_test_includelist_freezer:
- freezer_tempest_plugin.tests.freezer.scenario.test_backups
+2 -1
View File
@@ -51,7 +51,8 @@ bootstrap_host_scenarios_expanded: |-
('validate' in bootstrap_host_scenarios and ('integrated' in bootstrap_host_scenarios or 'plugins' in bootstrap_host_scenarios)) %}
{% set _ = scenario_list.extend(['zookeeper']) %}
{% endif %}
{% if 'ironic' in bootstrap_host_scenarios %}
{% if 'ironic' in bootstrap_host_scenarios or
'freezer' in bootstrap_host_scenarios %}
{% set _ = scenario_list.extend(['swift']) %}
{% endif %}
{% if ('magnum' in bootstrap_host_scenarios) %}
+11
View File
@@ -145,6 +145,12 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
'aodh_api',
'aodh_container',
'aodh_listener',
'backup_infra_all',
'backup_infra_containers',
'backup_infra_hosts',
'backup_runner_all',
'backup_runner_containers',
'backup_runner_hosts',
'barbican_all',
'barbican_api',
'barbican_container',
@@ -223,6 +229,11 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
'designate_worker',
'designate_producer',
'designate_sink',
'freezer_all',
'freezer_api',
'freezer_api_container',
'freezer_scheduler',
'freezer_scheduler_container',
'galera',
'galera_all',
'galera_container',
+6
View File
@@ -68,6 +68,7 @@
- name: openstack/openstack-ansible-os_blazar
- name: openstack/openstack-ansible-os_ceilometer
- name: openstack/openstack-ansible-os_cinder
- name: openstack/openstack-ansible-os_freezer
- name: openstack/openstack-ansible-os_designate
- name: openstack/openstack-ansible-os_glance
- name: openstack/openstack-ansible-os_gnocchi
@@ -196,6 +197,7 @@
- name: openstack/openstack-ansible-os_cloudkitty
- name: openstack/openstack-ansible-os_cinder
- name: openstack/openstack-ansible-os_designate
- name: openstack/openstack-ansible-os_freezer
- name: openstack/openstack-ansible-os_glance
- name: openstack/openstack-ansible-os_gnocchi
- name: openstack/openstack-ansible-os_heat
@@ -237,6 +239,9 @@
- name: openstack/cinder
- name: openstack/cloudkitty
- name: openstack/cloudkitty-dashboard
- name: openstack/freezer
- name: openstack/freezer-api
- name: openstack/freezer-web-ui
- name: openstack/designate
- name: openstack/designate-dashboard
- name: openstack/glance
@@ -288,6 +293,7 @@
- name: openstack/cinder-tempest-plugin
- name: openstack/cloudkitty-tempest-plugin
- name: openstack/designate-tempest-plugin
- name: openstack/freezer-tempest-plugin
- name: openstack/glance-tempest-plugin
- name: openstack/heat-tempest-plugin
- name: openstack/ironic-tempest-plugin