Add freezer-scheduler role
Change-Id: I469800239bfc7f3bb5acc899edf7a971b792655c Implements: blueprint kolla-freezer-scheduler-container Co-Authored-By: wu.chunyang <wu.chunyang@99cloud.net>
This commit is contained in:
parent
1ff358cb04
commit
b81442a082
@ -359,6 +359,7 @@ openstack_auth:
|
||||
password: "{{ keystone_admin_password }}"
|
||||
project_name: "admin"
|
||||
domain_name: "default"
|
||||
user_domain_name: "default"
|
||||
|
||||
# Endpoint type used to connect with OpenStack services with ansible modules.
|
||||
# Valid options are [ public, internal, admin ]
|
||||
|
@ -345,6 +345,9 @@ cloudkitty
|
||||
[freezer-api:children]
|
||||
freezer
|
||||
|
||||
[freezer-scheduler:children]
|
||||
freezer
|
||||
|
||||
# iSCSI
|
||||
[iscsid:children]
|
||||
compute
|
||||
|
@ -364,6 +364,9 @@ cloudkitty
|
||||
[freezer-api:children]
|
||||
freezer
|
||||
|
||||
[freezer-scheduler:children]
|
||||
freezer
|
||||
|
||||
# iSCSI
|
||||
[iscsid:children]
|
||||
compute
|
||||
|
@ -12,6 +12,16 @@ freezer_services:
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
- "freezer:/var/lib/freezer/"
|
||||
- "kolla_logs:/var/log/kolla/"
|
||||
freezer-scheduler:
|
||||
container_name: freezer_scheduler
|
||||
group: freezer-scheduler
|
||||
enabled: true
|
||||
image: "{{ freezer_scheduler_image_full }}"
|
||||
volumes:
|
||||
- "{{ node_config_directory }}/freezer-scheduler/:{{ container_config_directory }}/:ro"
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
- "freezer:/var/lib/freezer/"
|
||||
- "kolla_logs:/var/log/kolla/"
|
||||
|
||||
|
||||
####################
|
||||
@ -20,6 +30,9 @@ freezer_services:
|
||||
freezer_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-freezer-api"
|
||||
freezer_api_tag: "{{ openstack_release }}"
|
||||
freezer_api_image_full: "{{ freezer_api_image }}:{{ freezer_api_tag }}"
|
||||
freezer_scheduler_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-freezer-scheduler"
|
||||
freezer_scheduler_tag: "{{ openstack_release }}"
|
||||
freezer_scheduler_image_full: "{{ freezer_scheduler_image }}:{{ freezer_scheduler_tag }}"
|
||||
|
||||
|
||||
####################
|
||||
|
@ -22,3 +22,26 @@
|
||||
or freezer_conf.changed | bool
|
||||
or policy_overwriting.changed | bool
|
||||
or freezer_api_container.changed | bool
|
||||
|
||||
- name: Restart freezer-scheduler container
|
||||
vars:
|
||||
service_name: "freezer-scheduler"
|
||||
service: "{{ freezer_services[service_name] }}"
|
||||
config_json: "{{ freezer_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
||||
freezer_conf: "{{ freezer_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
||||
policy_overwriting: "{{ freezer_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
||||
freezer_scheduler_container: "{{ check_freezer_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
||||
kolla_docker:
|
||||
action: "recreate_or_restart_container"
|
||||
common_options: "{{ docker_common_options }}"
|
||||
name: "{{ service.container_name }}"
|
||||
image: "{{ service.image }}"
|
||||
volumes: "{{ service.volumes }}"
|
||||
when:
|
||||
- action != "config"
|
||||
- inventory_hostname in groups[service.group]
|
||||
- service.enabled | bool
|
||||
- config_json.changed | bool
|
||||
or freezer_conf.changed | bool
|
||||
or policy_overwriting.changed | bool
|
||||
or freezer_scheduler_container.changed | bool
|
||||
|
@ -41,33 +41,34 @@
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
notify:
|
||||
- Restart freezer-api container
|
||||
- "Restart {{ item.key }} container"
|
||||
|
||||
- name: Copying over wsgi-freezer-api.conf
|
||||
vars:
|
||||
service: "{{ freezer_services['freezer-api'] }}"
|
||||
template:
|
||||
src: "wsgi-freezer-api.conf.j2"
|
||||
dest: "{{ node_config_directory }}/{{ item.key }}/wsgi-freezer-api.conf"
|
||||
dest: "{{ node_config_directory }}/freezer-api/wsgi-freezer-api.conf"
|
||||
mode: "0660"
|
||||
become: true
|
||||
register: wsgi_freezer_api
|
||||
when:
|
||||
- inventory_hostname in groups[item.value.group]
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
- inventory_hostname in groups[service.group]
|
||||
- service.enabled | bool
|
||||
notify:
|
||||
- Restart freezer-api container
|
||||
|
||||
- name: Copying over freezer-api.conf
|
||||
- name: Copying over freezer confs
|
||||
vars:
|
||||
service_name: "{{ item.key }}"
|
||||
merge_configs:
|
||||
sources:
|
||||
- "{{ role_path }}/templates/freezer-api.conf.j2"
|
||||
- "{{ role_path }}/templates/freezer.conf.j2"
|
||||
- "{{ node_custom_config }}/global.conf"
|
||||
- "{{ node_custom_config }}/freezer.conf"
|
||||
- "{{ node_custom_config }}/freezer/{{ item.key }}.conf"
|
||||
- "{{ node_custom_config }}/freezer/{{ inventory_hostname }}/{{ item.key }}.conf"
|
||||
dest: "{{ node_config_directory }}/{{ item.key }}/freezer-api.conf"
|
||||
dest: "{{ node_config_directory }}/{{ item.key }}/freezer.conf"
|
||||
mode: "0660"
|
||||
become: true
|
||||
register: freezer_confs
|
||||
@ -76,7 +77,7 @@
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
notify:
|
||||
- Restart freezer-api container
|
||||
- "Restart {{ item.key }} container"
|
||||
|
||||
- name: Copying over existing policy file
|
||||
template:
|
||||
@ -91,7 +92,7 @@
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
notify:
|
||||
- Restart freezer-api container
|
||||
- "Restart {{ item.key }} container"
|
||||
|
||||
- name: Check freezer containers
|
||||
kolla_docker:
|
||||
@ -107,4 +108,4 @@
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
notify:
|
||||
- Restart freezer-api container
|
||||
- "Restart {{ item.key }} container"
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
- name: Pulling freezer image
|
||||
- name: Pulling freezer images
|
||||
kolla_docker:
|
||||
action: "pull_image"
|
||||
common_options: "{{ docker_common_options }}"
|
||||
|
@ -4,7 +4,7 @@
|
||||
"command": "{{ apache_cmd }} -DFOREGROUND",
|
||||
"config_files": [
|
||||
{
|
||||
"source": "{{ container_config_directory }}/freezer-api.conf",
|
||||
"source": "{{ container_config_directory }}/freezer.conf",
|
||||
"dest": "/etc/freezer/freezer.conf",
|
||||
"owner": "freezer",
|
||||
"perm": "0600"
|
||||
|
24
ansible/roles/freezer/templates/freezer-scheduler.json.j2
Normal file
24
ansible/roles/freezer/templates/freezer-scheduler.json.j2
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"command": "freezer-scheduler --config-file /etc/freezer/freezer.conf start",
|
||||
"config_files": [
|
||||
{
|
||||
"source": "{{ container_config_directory }}/freezer.conf",
|
||||
"dest": "/etc/freezer/freezer.conf",
|
||||
"owner": "freezer",
|
||||
"perm": "0600"
|
||||
}{% if freezer_policy_file is defined %},
|
||||
{
|
||||
"source": "{{ container_config_directory }}/{{ freezer_policy_file }}",
|
||||
"dest": "/etc/freezer/{{ freezer_policy_file }}",
|
||||
"owner": "freezer",
|
||||
"perm": "0600"
|
||||
}{% endif %}
|
||||
],
|
||||
"permissions": [
|
||||
{
|
||||
"path": "/var/log/kolla/freezer",
|
||||
"owner": "freezer:freezer",
|
||||
"recurse": true
|
||||
}
|
||||
]
|
||||
}
|
@ -8,6 +8,19 @@ bind_host = {{ api_interface_address }}
|
||||
bind_port = {{ freezer_api_port }}
|
||||
{% endif %}
|
||||
|
||||
{% if service_name == 'freezer-scheduler' %}
|
||||
client_id = {{ inventory_hostname }}
|
||||
jobs_dir = /etc/freezer/scheduler/conf.d
|
||||
|
||||
os_username = {{ openstack_auth.username }}
|
||||
os_password = {{ openstack_auth.password }}
|
||||
os_auth_url = {{ openstack_auth.auth_url }}/v3
|
||||
os_project_name = {{ openstack_auth.project_name }}
|
||||
os_project_domain_name = {{ openstack_auth.domain_name }}
|
||||
os_user_domain_name = {{ openstack_auth.user_domain_name }}
|
||||
{% endif %}
|
||||
|
||||
{% if service_name == 'freezer-api' %}
|
||||
[keystone_authtoken]
|
||||
auth_uri = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_public_port }}
|
||||
auth_url = {{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_admin_port }}
|
||||
@ -38,3 +51,4 @@ driver = freezer_api.storage.elasticv2.ElasticSearchEngineV2
|
||||
hosts = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ elasticsearch_port }}
|
||||
number_of_replicas = 0
|
||||
index = freezer
|
||||
{% endif %}
|
@ -0,0 +1,4 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Add a kolla-ansible role for freezer-scheduler
|
Loading…
Reference in New Issue
Block a user