dc3099c2af
Defined profiles/roles/resources entities, and outlined the way they should work.
61 lines
1.4 KiB
Python
61 lines
1.4 KiB
Python
|
|
|
|
Profile is a global wrapper for all resources in environment.
|
|
Profile is versioned and executed by particular driver.
|
|
Profile is a container for resources.
|
|
Resources can be grouped by roles entities.
|
|
|
|
::
|
|
|
|
id: HA
|
|
type: profile
|
|
version: 0.1
|
|
# adapter for any application that satisfies our requirements
|
|
driver: ansible
|
|
|
|
|
|
Role is a logical wrapper of resources.
|
|
We will provide "opinionated" wrappers, but user should
|
|
be able to compose resource in any way.
|
|
|
|
::
|
|
|
|
roles:
|
|
- id: controller
|
|
type: role
|
|
resources: []
|
|
|
|
|
|
Resource should have deployment logic for several events:
|
|
main deployment, removal of resource, scale up of resource ?
|
|
Resource should have list of input parameters that resource provides.
|
|
Resources are isolated, and should be executable as long as
|
|
required data provided.
|
|
|
|
::
|
|
id: rabbitmq
|
|
type: resource
|
|
driver: ansible_playbook
|
|
actions:
|
|
run: $install_rabbitmq_playbook
|
|
input:
|
|
image: fuel/rabbitmq
|
|
port: 5572
|
|
# we need to be able to select ip addresses
|
|
listen: [{{management.ip}}, {{public.ip}}]
|
|
|
|
|
|
::
|
|
id: nova_compute
|
|
type: resource
|
|
driver: ansible_playbook
|
|
actions:
|
|
run: $link_to_ansible_playbook
|
|
remove: $link_to_another_playbook_that_will_migrate_vms
|
|
maintenance: $link_to_playbook_that_will_put_into_maintenance
|
|
input:
|
|
image: fuel/compute
|
|
driver: kvm
|
|
rabbitmq_hosts: []
|
|
|