Skip to content

Commit

Permalink
Merge "Add cyborg to kolla-ansible"
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and openstack-gerrit committed Mar 28, 2019
2 parents 14bcf33 + ed2fd24 commit 03d3885
Show file tree
Hide file tree
Showing 38 changed files with 678 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ Kolla-Ansible deploys containers for the following OpenStack projects:
- `Cinder <https://docs.openstack.org/cinder/latest/>`__
- `CloudKitty <https://docs.openstack.org/cloudkitty/latest/>`__
- `Congress <https://docs.openstack.org/congress/latest/>`__
- `Cyborg <https://docs.openstack.org/cyborg/latest/>`__
- `Designate <https://docs.openstack.org/designate/latest/>`__
- `Freezer <https://docs.openstack.org/freezer/latest/>`__
- `Glance <https://docs.openstack.org/glance/latest/>`__
Expand Down
3 changes: 3 additions & 0 deletions ansible/group_vars/all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,8 @@ cloudkitty_api_port: "8889"

collectd_udp_port: "25826"

cyborg_api_port: "6666"

designate_internal_fqdn: "{{ kolla_internal_fqdn }}"
designate_external_fqdn: "{{ kolla_external_fqdn }}"
designate_api_port: "9001"
Expand Down Expand Up @@ -527,6 +529,7 @@ enable_cinder_backend_zfssa_iscsi: "no"
enable_cinder_backend_quobyte: "no"
enable_cloudkitty: "no"
enable_congress: "no"
enable_cyborg: "no"
enable_designate: "no"
enable_etcd: "no"
enable_fluentd: "yes"
Expand Down
14 changes: 14 additions & 0 deletions ansible/inventory/all-in-one
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,10 @@ control
[aodh:children]
control

[cyborg:children]
control
compute

[congress:children]
control

Expand Down Expand Up @@ -549,6 +553,16 @@ aodh
[aodh-notifier:children]
aodh

# Cyborg
[cyborg-api:children]
cyborg

[cyborg-agent:children]
compute

[cyborg-conductor:children]
cyborg

# Panko
[panko-api:children]
panko
Expand Down
14 changes: 14 additions & 0 deletions ansible/inventory/multinode
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,10 @@ control
[aodh:children]
control

[cyborg:children]
control
compute

[congress:children]
control

Expand Down Expand Up @@ -578,6 +582,16 @@ aodh
[aodh-notifier:children]
aodh

# Cyborg
[cyborg-api:children]
cyborg

[cyborg-agent:children]
compute

[cyborg-conductor:children]
cyborg

# Congress
[congress-api:children]
congress
Expand Down
1 change: 1 addition & 0 deletions ansible/roles/common/tasks/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,7 @@
- { name: "cloudkitty", enabled: "{{ enable_cloudkitty }}" }
- { name: "collectd", enabled: "{{ enable_collectd }}" }
- { name: "congress", enabled: "{{ enable_congress }}" }
- { name: "cyborg", enabled: "{{ enable_cyborg }}" }
- { name: "designate", enabled: "{{ enable_designate }}" }
- { name: "elasticsearch", enabled: "{{ enable_elasticsearch }}" }
- { name: "etcd", enabled: "{{ enable_etcd }}" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,5 @@
rewriterule30 programname ^(tacker-server|tacker-conductor)$ openstack_python
rewriterule31 programname ^(vitrage-ml|vitrage-notifier|vitrage-graph)$ openstack_python
rewriterule32 programname ^(blazar-api|blazar-manager)$ openstack_python
rewriterule33 programname ^(cyborg-api|cyborg-conductor|cyborg-agent)$ openstack_python
</match>
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@
pattern ^(aodh-notifier|aodh-listener|aodh-evaluator|aodh-dbsync)$
tag openstack_python
</rule>
<rule>
key programname
pattern ^(cyborg-api|cyborg-conductor|cyborg-agent)$
tag openstack_python
</rule>
<rule>
key programname
pattern ^(cinder-api|cinder-scheduler|cinder-manage|cinder-volume|cinder-backup|privsep-helper)$
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
( 'cinder', enable_cinder ),
( 'cloudkitty', enable_cloudkitty ),
( 'congress', enable_congress ),
( 'cyborg', enable_cyborg ),
( 'designate', enable_designate ),
( 'freezer', enable_freezer ),
( 'glance', enable_glance ),
Expand Down
3 changes: 3 additions & 0 deletions ansible/roles/common/templates/cron-logrotate-cyborg.conf.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
"/var/log/kolla/cyborg/*.log"
{
}
1 change: 1 addition & 0 deletions ansible/roles/common/templates/cron.json.j2
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
( 'cloudkitty', enable_cloudkitty ),
( 'collectd', enable_collectd ),
( 'congress', enable_congress ),
( 'cyborg', enable_cyborg ),
( 'designate', enable_designate ),
( 'elasticsearch', enable_elasticsearch ),
( 'etcd', enable_etcd ),
Expand Down
77 changes: 77 additions & 0 deletions ansible/roles/cyborg/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
project_name: "cyborg"

cyborg_services:
cyborg-api:
container_name: cyborg_api
group: cyborg-api
enabled: true
image: "{{ cyborg_api_image_full }}"
volumes:
- "{{ node_config_directory }}/cyborg-api/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "cyborg:/var/lib/cyborg/"
- "kolla_logs:/var/log/kolla/"
dimensions: "{{ cyborg_api_dimensions }}"
cyborg-agent:
container_name: cyborg_agent
group: cyborg-agent
enabled: true
image: "{{ cyborg_agent_image_full }}"
volumes:
- "{{ node_config_directory }}/cyborg-agent/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "kolla_logs:/var/log/kolla/"
dimensions: "{{ cyborg_agent_dimensions }}"
cyborg-conductor:
container_name: cyborg_conductor
group: cyborg-conductor
enabled: true
image: "{{ cyborg_conductor_image_full }}"
volumes:
- "{{ node_config_directory }}/cyborg-conductor/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "kolla_logs:/var/log/kolla/"
dimensions: "{{ cyborg_conductor_dimensions }}"

####################
# Database
####################
cyborg_database_name: "cyborg"
cyborg_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cyborg{% endif %}"
cyborg_database_address: "{{ database_address }}:{{ database_port }}"

####################
# Docker
####################
cyborg_install_type: "{{ kolla_install_type }}"
cyborg_tag: "{{ openstack_release }}"

cyborg_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ cyborg_install_type }}-cyborg-api"
cyborg_api_tag: "{{ cyborg_tag }}"
cyborg_api_image_full: "{{ cyborg_api_image }}:{{ cyborg_api_tag }}"

cyborg_agent_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ cyborg_install_type }}-cyborg-agent"
cyborg_agent_tag: "{{ cyborg_tag }}"
cyborg_agent_image_full: "{{ cyborg_agent_image }}:{{ cyborg_agent_tag }}"

cyborg_conductor_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ cyborg_install_type }}-cyborg-conductor"
cyborg_conductor_tag: "{{ cyborg_tag }}"
cyborg_conductor_image_full: "{{ cyborg_conductor_image }}:{{ cyborg_conductor_tag }}"

cyborg_api_dimensions: "{{ default_container_dimensions }}"
cyborg_agent_dimensions: "{{ default_container_dimensions }}"
cyborg_conductor_dimensions: "{{ default_container_dimensions }}"

####################
# OpenStack
####################
cyborg_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ cyborg_api_port }}"
cyborg_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ cyborg_api_port }}"
cyborg_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ cyborg_api_port }}"

cyborg_logging_debug: "{{ openstack_logging_debug }}"

cyborg_keystone_user: "cyborg"

openstack_cyborg_auth: "{{ openstack_auth }}"
72 changes: 72 additions & 0 deletions ansible/roles/cyborg/handlers/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
- name: Restart cyborg-api container
vars:
service_name: "cyborg-api"
service: "{{ cyborg_services[service_name] }}"
config_json: "{{ cyborg_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
cyborg_conf: "{{ cyborg_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
policy_overwriting: "{{ cyborg_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
cyborg_api_container: "{{ check_cyborg_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 }}"
dimensions: "{{ service.dimensions }}"
when:
- action != "config"
- inventory_hostname in groups[service.group]
- service.enabled | bool
- config_json.changed | bool
or cyborg_conf.changed | bool
or policy_overwriting.changed | bool
or cyborg_api_container.changed | bool

- name: Restart cyborg-conductor container
vars:
service_name: "cyborg-conductor"
service: "{{ cyborg_services[service_name] }}"
config_json: "{{ cyborg_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
cyborg_conf: "{{ cyborg_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
policy_overwriting: "{{ cyborg_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
cyborg_conductor_container: "{{ check_cyborg_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 }}"
dimensions: "{{ service.dimensions }}"
when:
- action != "config"
- inventory_hostname in groups[service.group]
- service.enabled | bool
- config_json.changed | bool
or cyborg_conf.changed | bool
or policy_overwriting.changed | bool
or cyborg_conductor_container.changed | bool

- name: Restart cyborg-agent container
vars:
service_name: "cyborg-agent"
service: "{{ cyborg_services[service_name] }}"
config_json: "{{ cyborg_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
cyborg_conf: "{{ cyborg_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
policy_overwriting: "{{ cyborg_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
cyborg_agent_container: "{{ check_cyborg_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 }}"
dimensions: "{{ service.dimensions }}"
when:
- action != "config"
- inventory_hostname in groups[service.group]
- service.enabled | bool
- config_json.changed | bool
or cyborg_conf.changed | bool
or policy_overwriting.changed | bool
or cyborg_agent_container.changed | bool
3 changes: 3 additions & 0 deletions ansible/roles/cyborg/meta/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
dependencies:
- { role: common }
36 changes: 36 additions & 0 deletions ansible/roles/cyborg/tasks/bootstrap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
- name: Creating cyborg database
kolla_toolbox:
module_name: mysql_db
module_args:
login_host: "{{ database_address }}"
login_port: "{{ database_port }}"
login_user: "{{ database_user }}"
login_password: "{{ database_password }}"
name: "{{ cyborg_database_name }}"
register: database
run_once: True
delegate_to: "{{ groups['cyborg-api'][0] }}"
when:
- not use_preconfigured_databases | bool

- name: Creating cyborg database user and setting permissions
kolla_toolbox:
module_name: mysql_user
module_args:
login_host: "{{ database_address }}"
login_port: "{{ database_port }}"
login_user: "{{ database_user }}"
login_password: "{{ database_password }}"
name: "{{ cyborg_database_user }}"
password: "{{ cyborg_database_password }}"
host: "%"
priv: "{{ cyborg_database_name }}.*:ALL"
append_privs: "yes"
run_once: True
delegate_to: "{{ groups['cyborg-api'][0] }}"
when:
- not use_preconfigured_databases | bool

- include_tasks: bootstrap_service.yml
when: database.changed or use_preconfigured_databases | bool
19 changes: 19 additions & 0 deletions ansible/roles/cyborg/tasks/bootstrap_service.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
- name: Running cyborg bootstrap container
vars:
cyborg_api: "{{ cyborg_services['cyborg-api'] }}"
kolla_docker:
action: "start_container"
common_options: "{{ docker_common_options }}"
detach: False
environment:
KOLLA_BOOTSTRAP:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
image: "{{ cyborg_api.image }}"
labels:
BOOTSTRAP:
name: "bootstrap_cyborg"
restart_policy: "never"
volumes: "{{ cyborg_api.volumes }}"
run_once: True
delegate_to: "{{ groups[cyborg_api.group][0] }}"
1 change: 1 addition & 0 deletions ansible/roles/cyborg/tasks/check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---
7 changes: 7 additions & 0 deletions ansible/roles/cyborg/tasks/clone.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
- name: Cloning cyborg source repository for development
git:
repo: "{{ cyborg_git_repository }}"
dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
update: "{{ cyborg_dev_repos_pull }}"
version: "{{ cyborg_source_version }}"
Loading

0 comments on commit 03d3885

Please sign in to comment.