added option to choose the architecture of hyperconverged ot not. 77/18677/3
authorNarinder Gupta <narinder.gupta@canonical.com>
Mon, 15 Aug 2016 13:41:55 +0000 (08:41 -0500)
committerNarinder Gupta <narinder.gupta@canonical.com>
Mon, 15 Aug 2016 14:18:31 +0000 (09:18 -0500)
Change-Id: If5d83b221ce1481014f2e76816a7fe568e656904
Signed-off-by: Narinder Gupta <narinder.gupta@canonical.com>
ci/config_tpl/bundle_tpl/bundle.yaml
ci/config_tpl/bundle_tpl/ceph.yaml
ci/config_tpl/bundle_tpl/haclusters.yaml
ci/config_tpl/bundle_tpl/harelations.yaml
ci/config_tpl/bundle_tpl/heat.yaml
ci/config_tpl/bundle_tpl/nova-compute.yaml
ci/default_deployment_config.yaml
ci/genBundle.py

index 8c08c1a..a5aa557 100644 (file)
@@ -9,9 +9,27 @@
 
 openstack-phase1:
   services:
+{% if os.hyperconverged %}
     nodes:
       charm: "cs:{{ ubuntu.release }}/ubuntu"
       num_units: {{ opnfv.units }}
+{% else %}
+    nodes:
+      charm: "cs:{{ ubuntu.release }}/ubuntu"
+{% if os.ha.mode == 'ha' %}
+      num_units: 3
+{% else %}
+      num_units: 1
+{% endif %}
+      constraints: tags=control
+    nodes-compute:
+      charm: "cs:{{ ubuntu.release }}/ubuntu"
+{% if os.ha.mode == 'ha' %}
+      num_units: {{ opnfv.units - 3 }}
+{% else %}
+      num_units: {{ opnfv.units - 1 }}
+{% endif %}
+{% endif %}
     ntp:
       charm: "local:{{ ubuntu.release }}/ntp"
 {% if os.network.controller == 'ocl' %}
@@ -46,8 +64,14 @@ openstack-phase1:
 {% include 'haclusters.yaml' %}
 {% endif %}
 
+{% if os.hyperconverged %}
   relations:
     - [ 'ntp:juju-info', 'nodes:juju-info' ]
+{% else %}
+  relations:
+    - [ 'ntp:juju-info', 'nodes:juju-info' ]
+    - [ 'ntp:juju-info', 'nodes-compute:juju-info' ]
+{% endif %}
 {% if os.ha.mode == 'ha' %}
 {% include 'harelations.yaml' %}
 {% endif %}
index 82cfd28..da1e8b5 100644 (file)
 {% endfor %}
     ceph-osd:
       charm: "local:{{ ubuntu.release }}/ceph-osd"
+{% if os.hyperconverged %}
       num_units: {{ opnfv.units }}
+{% else %}
+      num_units: 3
+{% endif %}
       options:
         osd-devices: {{ opnfv.storage_dict.ceph.disk }}
         osd-reformat: 'yes'
       to:
+{% if os.hyperconverged %}
 {% for unit_id in range(0, opnfv.units) %}
         - "nodes={{ unit_id }}"
 {% endfor %}
+{% else %}
+{% if os.ha.mode == 'ha' %}
+{% for unit_id in range(0, 3) %}
+        - "nodes={{ unit_id }}"
+{% endfor %}
+{% else %}
+        - "nodes=0"
+        - "nodes-compute=0"
+        - "nodes-compute=1"
+{% endif %}
+{% endif %}
     ceph-radosgw:
       charm: "local:{{ ubuntu.release }}/ceph-radosgw"
       num_units: {{ unit_qty() if os.beta.hacluster_ceph_radosgw else 1 }}
index fc42d38..ef19365 100644 (file)
@@ -9,11 +9,11 @@
       options:
         corosync_transport: unicast
         cluster_count: 3
-#    hacluster-heat:
-#      charm: "local:{{ ubuntu.release }}/hacluster"
-#      options:
-#        corosync_transport: unicast
-#        cluster_count: 3
+    hacluster-heat:
+      charm: "local:{{ ubuntu.release }}/hacluster"
+      options:
+        corosync_transport: unicast
+        cluster_count: 3
     hacluster-horizon:
       charm: "local:{{ ubuntu.release }}/hacluster"
       options:
index d4c4c06..e7bac9a 100644 (file)
@@ -1,7 +1,7 @@
 {% if os.ha.mode == 'ha' %}
     - [ 'mysql:ha', 'hacluster-mysql:ha' ]
     - [ 'cinder:ha', 'hacluster-cinder:ha' ]
-#    - [ 'heat:ha', 'hacluster-heat:ha' ]
+    - [ 'heat:ha', 'hacluster-heat:ha' ]
     - [ 'glance:ha', 'hacluster-glance:ha' ]
     - [ 'keystone:ha', 'hacluster-keystone:ha' ]
     - [ 'neutron-api:ha', 'hacluster-neutron:ha' ]
index 4fe9deb..40ed71a 100644 (file)
@@ -1,13 +1,15 @@
     heat:
       charm: "local:{{ ubuntu.release }}/heat"
-#      num_units: {{ unit_qty() }}
+      num_units: {{ unit_qty() }}
       options:
 {% if os.ha.mode == 'ha' %}
-#        vip: {{ opnfv.vip.heat }}
+        vip: {{ opnfv.vip.heat }}
 {% endif %}
 {% if os.beta.public_api %}
-#        os-public-hostname: api.{{ opnfv.domain }}
+        os-public-hostname: api.{{ opnfv.domain }}
 {% endif %}
       to:
-        - "lxc:nodes=0"
+{% for unit_id in to_select() %}
+        - "lxc:nodes={{ unit_id }}"
+{% endfor %}
 {# Empty block to avoid bad block trim #}
index 8180380..24a8125 100644 (file)
@@ -1,6 +1,14 @@
     nova-compute:
       charm: "local:{{ ubuntu.release }}/nova-compute"
+{% if os.hyperconverged %}
       num_units: {{ opnfv.units - 1 }}
+{% else %}
+{% if os.ha.mode == 'ha' %}
+      num_units: {{ opnfv.units - 3 }}
+{% else %}
+      num_units: {{ opnfv.units - 1 }}
+{% endif %}
+{% endif %}
       options:
         enable-live-migration: true
         enable-resize: true
         virt-type: lxd
 {% endif %}
       to:
+{% if os.hyperconverged %}
 {% for unit_id in range(1, opnfv.units) %}
         - "nodes={{ unit_id }}"
 {% endfor %}
+{% else %}
+{% if os.ha.mode == 'ha' %}
+{% for unit_id in range(0, opnfv.units - 3) %}
+        - "nodes-compute={{ unit_id }}"
+{% endfor %}
+{% else %}
+{% for unit_id in range(0, opnfv.units - 1) %}
+        - "nodes-compute={{ unit_id }}"
+{% endfor %}
+{% endif %}
+{% endif %}
index 4b941a7..10001fe 100644 (file)
@@ -2,6 +2,7 @@ ubuntu:
     release: xenial
 os:
     release: mitaka
+    hyperconverged: True
     ha:
         mode: ha
         cluster_size: 3
index 9c6781b..499cd63 100644 (file)
@@ -88,7 +88,10 @@ def to_select(qty=False):
     if not qty:
         qty = config['os']['ha']['cluster_size'] if \
                 config['os']['ha']['mode'] == 'ha' else 1
-    return random.sample(range(0, config['opnfv']['units']), qty)
+    if config['os']['hyperconverged']:
+        return random.sample(range(0, config['opnfv']['units']), qty)
+    else:
+        return random.sample(range(0, qty), qty)
 
 
 def get_password(key, length=16, special=False):
@@ -173,6 +176,8 @@ if 'bgpvpn' in features:
     config['os']['network']['bgpvpn'] = True
 if 'odll3' in features:
     config['os']['network']['odll3'] = True
+if 'dishypcon' in features:
+    config['os']['hyperconverged'] = False
 
 # Set beta option from extra
 if 'publicapi' in extra:
@@ -185,6 +190,8 @@ if 'trusty' in extra:
     config['ubuntu']['release'] = 'trusty'
     if 'liberty' in extra:
         config['os']['release'] = 'liberty'
+if 'dishypcon' in extra:
+    config['os']['hyperconverged'] = False
 
 #
 # Transform template to bundle.yaml according to config