{% endif %}
{% include 'mysql.yaml' %}
{% include 'ceilometer.yaml' %}
+{% if opnfv.storage_dict.scaleio is defined %}
+{% include 'scaleio.yaml' %}
+{% else %}
{% include 'ceph.yaml' %}
+{% endif %}
{% include 'cinder.yaml' %}
{% include 'glance.yaml' %}
{% include 'opnfv-promise.yaml' %}
cinder:
charm: "local:{{ ubuntu.release }}/cinder"
+{% if opnfv.storage_dict.scaleio is defined %}
+ num_units: 1
+{% else %}
num_units: {{ unit_qty() }}
+{% endif %}
options:
{% if os.ha.mode == 'ha' %}
vip: {{ opnfv.vip.cinder }}
block-device: None
glance-api-version: 2
to:
+{% if opnfv.storage_dict.scaleio is defined %}
+ - "nodes=0"
+{% else %}
{% for unit_id in to_select() %}
- "lxc:nodes={{ unit_id }}"
{% endfor %}
+{% endif %}
{% endif %}
openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
{% if os.ha.mode == 'nonha' %}
+{% if opnfv.storage_dict.ceph is defined %}
ceph-osd-replication-count: {{ unit_ceph_qty() }}
+{% endif %}
{% endif %}
admin-role: {{ os.admin.role }}
keystone-admin-role: {{ os.admin.role }}
- [ 'cinder:amqp', 'rabbitmq-server:amqp' ]
- [ 'cinder:identity-service', 'keystone:identity-service' ]
- [ 'cinder:cinder-volume-service', 'nova-cloud-controller:cinder-volume-service' ]
+ - [ 'cinder:shared-db', 'mysql:shared-db' ]
+{% if opnfv.storage_dict.scaleio is defined %}
+ - [ 'cinder:storage-backend', 'scaleio-openstack:storage-backend' ]
+ - [ 'scaleio-mdm:scaleio-sds', 'scaleio-sds:scaleio-sds' ]
+# - [ 'scaleio-mdm:scaleio-sds', 'scaleio-sds-pd2:scaleio-sds' ]
+ - [ 'scaleio-mdm:scaleio-mdm', 'scaleio-sdc:scaleio-mdm' ]
+ - [ 'scaleio-mdm:scaleio-mdm', 'scaleio-gw:scaleio-mdm' ]
+ - [ 'scaleio-openstack:scaleio-gw', 'scaleio-gw:scaleio-gw' ]
+ - [ 'nova-compute:ephemeral-backend', 'scaleio-openstack:ephemeral-backend' ]
+{% else %}
- [ 'cinder-ceph:storage-backend', 'cinder:storage-backend' ]
- [ 'ceph:client', 'nova-compute:ceph' ]
- - [ 'cinder:shared-db', 'mysql:shared-db' ]
- [ 'ceph:client', 'cinder-ceph:ceph' ]
- [ 'ceph:client', 'glance:ceph' ]
- [ 'ceph-osd:mon', 'ceph:osd' ]
- [ 'ceph-radosgw:mon', 'ceph:radosgw' ]
- [ 'ceph-radosgw:identity-service', 'keystone:identity-service' ]
+{% endif %}
- [ 'ceilometer:amqp', 'rabbitmq-server:amqp' ]
- [ 'ceilometer-agent:ceilometer-service', 'ceilometer:ceilometer-service' ]
- [ 'ceilometer:identity-service', 'keystone:identity-service' ]
--- /dev/null
+{% if opnfv.storage_dict.scaleio is defined %}
+ scaleio-mdm:
+ charm: "local:{{ ubuntu.release }}/scaleio-mdm"
+ num_units: {{ unit_scaleio_qty() }}
+ options:
+ cluster-mode: 3
+ to:
+{% if os.hyperconverged %}
+{% for unit_id in range(0, 3) %}
+ - "nodes={{ unit_id }}"
+{% endfor %}
+{% else %}
+ - "nodes=0"
+ - "nodes-compute=0"
+ - "nodes-compute=1"
+{% endif %}
+ scaleio-sds:
+ charm: "local:{{ ubuntu.release }}/scaleio-sds"
+ num_units: {{ opnfv.units }}
+ options:
+ protection-domain: 'pd1'
+ device-paths: {{ opnfv.storage_dict.scaleio.disk }}
+ to:
+{% if os.hyperconverged %}
+{% for unit_id in range(0, opnfv.units) %}
+ - "nodes={{ unit_id }}"
+{% endfor %}
+{% else %}
+{% for unit_id in range(0, opnfv.units) %}
+ - "{{ unit_id }}"
+{% endfor %}
+{% endif %}
+ scaleio-sdc:
+ charm: "local:{{ ubuntu.release }}/scaleio-sdc"
+ num_units: {{ opnfv.units }}
+ to:
+{% if os.hyperconverged %}
+{% for unit_id in range(0, opnfv.units) %}
+ - "nodes={{ unit_id }}"
+{% endfor %}
+{% else %}
+{% for unit_id in range(0, opnfv.units) %}
+ - "{{ unit_id }}"
+{% endfor %}
+{% endif %}
+ scaleio-gw:
+ charm: "local:{{ ubuntu.release }}/scaleio-gw"
+ to:
+ - "nodes=0"
+ scaleio-gui:
+ charm: "local:{{ ubuntu.release }}/scaleio-gui"
+ to:
+ - "nodes=0"
+{% endif %}
lxd:
charm: local:{{ ubuntu.release }}/lxd
{% endif %}
+{% if opnfv.storage_dict.scaleio is defined %}
+ scaleio-openstack:
+ charm: local:{{ ubuntu.release }}/scaleio-openstack
+ options:
+ protection-domains: 'pd1'
+{% endif %}
admNetgway: {{ opnfv.spaces_dict.admin.gateway }}
admNetwork: {{ net_prefix }}2
admin_password: openstack
- ceph-disk: {{ opnfv.storage_dict.ceph.disk }}
+{% if opnfv.storage_dict.ceph is defined %}
+ ceph-disk: {{ opnfv.storage_dict.ceph.disk }}
+{% endif %}
{% if opnfv.spaces_dict.data is defined %}
dataNetwork: {{ opnfv.spaces_dict.data.cidr }}
{% endif %}
else:
return 2
+def unit_scaleio_qty():
+ """Return size of the scaleio cluster"""
+ return 3
def to_select(qty=False):
"""Return a random list of machines numbers to deploy"""
env.globals.update(get_password=get_password)
env.globals.update(unit_qty=unit_qty)
env.globals.update(unit_ceph_qty=unit_ceph_qty)
+env.globals.update(unit_scaleio_qty=unit_scaleio_qty)
env.globals.update(to_select=to_select)
# Render the template
sdncontroller:
- type: nosdn
storage:
- - type: ceph
+ - type: scaleio
disk: /dev/sdb
feature: odl_l2
spaces: