adding bionic support. 47/57247/3
authorNarinder Gupta <narinder.gupta@canonical.com>
Wed, 9 May 2018 19:55:21 +0000 (14:55 -0500)
committerNarinder Gupta <narinder.gupta@canonical.com>
Wed, 9 May 2018 20:04:20 +0000 (15:04 -0500)
Change-Id: I07214051129149800beac45a40727a7843cfd107
Signed-off-by: Narinder Gupta <narinder.gupta@canonical.com>
32 files changed:
ci/01-bootstrap.sh
ci/03-maasdeploy.sh
ci/clean.sh
ci/config_tpl/juju2/bundle_tpl/aodh.yaml
ci/config_tpl/juju2/bundle_tpl/bundle.yaml
ci/config_tpl/juju2/bundle_tpl/ceilometer.yaml
ci/config_tpl/juju2/bundle_tpl/ceph.yaml
ci/config_tpl/juju2/bundle_tpl/cinder.yaml
ci/config_tpl/juju2/bundle_tpl/congress.yaml
ci/config_tpl/juju2/bundle_tpl/designate.yaml
ci/config_tpl/juju2/bundle_tpl/glance.yaml
ci/config_tpl/juju2/bundle_tpl/haclusters.yaml
ci/config_tpl/juju2/bundle_tpl/heat.yaml
ci/config_tpl/juju2/bundle_tpl/keystone.yaml
ci/config_tpl/juju2/bundle_tpl/mysql.yaml
ci/config_tpl/juju2/bundle_tpl/neutron-api.yaml
ci/config_tpl/juju2/bundle_tpl/neutron-gateway.yaml
ci/config_tpl/juju2/bundle_tpl/neutron-ovs.yaml
ci/config_tpl/juju2/bundle_tpl/nova-cloud-controller.yaml
ci/config_tpl/juju2/bundle_tpl/nova-compute.yaml
ci/config_tpl/juju2/bundle_tpl/oclphase1.yaml
ci/config_tpl/juju2/bundle_tpl/odl.yaml
ci/config_tpl/juju2/bundle_tpl/onos.yaml
ci/config_tpl/juju2/bundle_tpl/openbaton.yaml
ci/config_tpl/juju2/bundle_tpl/openstack-dashboard.yaml
ci/config_tpl/juju2/bundle_tpl/opnfv-promise.yaml
ci/config_tpl/juju2/bundle_tpl/rabbitmq.yaml
ci/config_tpl/juju2/bundle_tpl/scaleio.yaml
ci/config_tpl/juju2/bundle_tpl/spaces.yaml
ci/config_tpl/juju2/bundle_tpl/subordinate.yaml
ci/deploy.sh
ci/nosdn/fetch-charms.sh

index 62692bc..5d57fab 100755 (executable)
@@ -4,4 +4,4 @@ set -ex
 
 controllername=`awk 'NR==1{print substr($1, 1, length($1)-1)}' deployconfig.yaml`
 cloudname=`awk 'NR==1{print substr($1, 1, length($1)-1)}' deployconfig.yaml`
-juju bootstrap $controllername $cloudname --debug --constraints tags=bootstrap --bootstrap-series=xenial
+juju bootstrap $controllername $cloudname --debug --constraints tags=bootstrap --bootstrap-series=$1
index c715528..73b789f 100755 (executable)
@@ -209,14 +209,26 @@ sudo virsh pool-define-as default --type dir --target /var/lib/libvirt/images/ |
 sudo virsh pool-start default || true
 sudo virsh pool-autostart default || true
 
-# As we use kvm so setup network on admin network
-ADMIN_BR=`cat labconfig.json | jq '.opnfv.spaces[] | select(.type=="admin")'.bridge | cut -d \" -f 2 `
-sed -i "s@brAdm@$ADMIN_BR@" net.xml
-sudo virsh net-destroy default || true
-sudo virsh net-undefine default || true
-sudo virsh net-define net.xml || true
-sudo virsh net-autostart default || true
-sudo virsh net-start default || true
+if [ "$virtinstall" -eq 1 ]; then
+    sudo virsh net-dumpxml default > default-net-org.xml
+    sed -i '/dhcp/d' default-net-org.xml
+    sed -i '/range/d' default-net-org.xml
+    sudo virsh net-destroy default
+    sudo virsh net-define default-net-org.xml
+    sudo virsh net-start default
+    sudo virsh net-autostart default || true
+    rm -f default-net-org.xml
+else
+    # As we use kvm so setup network on admin network
+    ADMIN_BR=`cat labconfig.json | jq '.opnfv.spaces[] | select(.type=="admin")'.bridge | cut -d \" -f 2 `
+    sed -i "s@brAdm@$ADMIN_BR@" net.xml
+    sudo virsh net-destroy default || true
+    sudo virsh net-undefine default || true
+    sudo virsh net-define net.xml || true
+    sudo virsh net-autostart default || true
+    sudo virsh net-start default || true
+    sudo virsh net-autostart default || true
+fi
 
 #
 # Cleanup, juju init and config backup
index 1f3ef54..1bd6005 100755 (executable)
@@ -18,6 +18,7 @@ juju destroy-controller $controllername --destroy-all-models -y || true
 rm -rf precise
 rm -rf trusty
 rm -rf xenial
+rm -rf bionic
 rm -rf ~/joid_config/admin-openrc
 sleep 10
 sudo sysctl -w vm.drop_caches=3
index 3402c5e..0553ff8 100644 (file)
@@ -9,6 +9,7 @@
         internal: *internal-space
         shared-db: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% if os.ha.mode == 'ha' %}
index 1f4dd0c..1ad45fb 100644 (file)
@@ -10,6 +10,7 @@
 {% else %}
     nodes:
       charm: "cs:{{ ubuntu.release }}/ubuntu"
+      series: {{ ubuntu.release }}
 {% if os.ha.mode == 'ha' %}
       num_units: 3
 {% else %}
@@ -18,6 +19,7 @@
 
     nodes-compute:
       charm: "cs:{{ ubuntu.release }}/ubuntu"
+      series: {{ ubuntu.release }}
 {% if os.ha.mode == 'ha' %}
       num_units: {{ opnfv.units - 3 }}
 {% else %}
@@ -26,6 +28,7 @@
 {% endif %}
     ntp:
       charm: "./{{ ubuntu.release }}/ntp"
+      series: {{ ubuntu.release }}
 {% if os.network.controller == 'ocl' %}
       options:
         source: "0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org"
index 9e03aff..2f7a1dc 100644 (file)
@@ -8,6 +8,7 @@
         admin: *admin-space
         internal: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% if os.ha.mode == 'ha' %}
@@ -48,6 +49,7 @@
         admin: *admin-space
         internal: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
         region: *openstack-region
index c46abeb..1096815 100644 (file)
@@ -8,6 +8,7 @@
         public: *ceph-public-space
         cluster: *ceph-cluster-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         expected-osd-count: {{ unit_ceph_qty() }}
         source: *openstack-origin
         public: *ceph-public-space
         cluster: *ceph-cluster-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         osd-devices: *osd-devices
         osd-journal: *osd-journal
-        osd-reformat: 'yes'
+        osd-reformat: 'True'
         source: *openstack-origin
 {% if os.network.ipv6 %}
         prefer-ipv6: {{ os.network.ipv6 }}
@@ -79,6 +81,7 @@
         internal: *internal-space
         mon: *ceph-public-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         region: *openstack-region
         operator-roles: "Member,admin,SwiftOperator"
index f7aee30..7486172 100644 (file)
@@ -14,6 +14,7 @@
         internal: *internal-space
         shared-db: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% if os.git_repo.origin_git %}
index 03ebc7d..a96951a 100644 (file)
@@ -9,6 +9,7 @@
         shared-db: *internal-space
         public: *public-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         region: *openstack-region
 {% if ubuntu.release == 'trusty' %}
index f58baef..208b195 100644 (file)
@@ -9,6 +9,7 @@
         internal: *internal-space
         shared-db: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% if os.git_repo.origin_git %}
index cc98ad3..1eac2e0 100644 (file)
@@ -10,6 +10,7 @@
         internal: *internal-space
         shared-db: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
         worker-multiplier: *worker-multiplier
index 093c949..79efb3f 100644 (file)
@@ -1,6 +1,7 @@
 
     hacluster-keystone:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
@@ -9,6 +10,7 @@
 {% endif %}
     hacluster-cinder:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
@@ -17,6 +19,7 @@
 {% endif %}
     hacluster-heat:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
@@ -25,6 +28,7 @@
 {% endif %}
     hacluster-horizon:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
@@ -33,6 +37,7 @@
 {% endif %}
     hacluster-nova:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
@@ -41,6 +46,7 @@
 {% endif %}
     hacluster-neutron:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
@@ -49,6 +55,7 @@
 {% endif %}
     hacluster-glance:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
@@ -58,6 +65,7 @@
 {% if os.network.controller != 'ocl' %}
     hacluster-ceilometer:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
@@ -67,6 +75,7 @@
 {% endif %}
     hacluster-mysql:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
@@ -75,6 +84,7 @@
 {% endif %}
     hacluster-ceph-radosgw:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
@@ -83,6 +93,7 @@
 {% endif %}
     hacluster-aodh:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
 {% endif %}
     hacluster-gnocchi:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
 {% endif %}
     hacluster-designate:
       charm: "./{{ ubuntu.release }}/hacluster"
+      series: {{ ubuntu.release }}
       options:
         corosync_transport: unicast
         cluster_count: 3
index 8349774..4a647e8 100644 (file)
@@ -9,6 +9,7 @@
         internal: *internal-space
         shared-db: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
         region: *openstack-region
index 6450060..9314af1 100644 (file)
@@ -9,6 +9,7 @@
         internal: *internal-space
         shared-db: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% if os.git_repo.origin_git %}
index 72d1311..273c9f8 100644 (file)
@@ -7,6 +7,7 @@
         cluster: *internal-space
         shared-db: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         innodb-buffer-pool-size: 256M
         max-connections: 4000
index f7ea60a..3bdee5e 100644 (file)
@@ -9,6 +9,7 @@
         internal: *internal-space
         shared-db: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% if os.git_repo.origin_git %}
index dd1471d..1f307da 100644 (file)
@@ -10,6 +10,7 @@
         "": *oam-space
         data: *overlay-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% if os.git_repo.origin_git %}
index 931a006..eae8e4e 100644 (file)
@@ -3,6 +3,7 @@
 {% if os.service.bindings %}
       bindings:
         data: *overlay-space
+      series: {{ ubuntu.release }}
       options:
 {% else %}
       options:
index a31db8a..7b9520f 100644 (file)
@@ -9,6 +9,7 @@
         internal: *internal-space
         shared-db: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% if os.git_repo.origin_git %}
index 73591b6..93c9770 100644 (file)
@@ -16,6 +16,7 @@
       bindings:
         "": *oam-space
         internal: *internal-space
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% if os.git_repo.origin_git %}
index 06a91f9..3d754b5 100644 (file)
@@ -1,6 +1,7 @@
 
     contrail-openstack:
       charm: ./{{ ubuntu.release }}/contrail-openstack
+      series: {{ ubuntu.release }}
       options:
         install-keys: |
           - |
@@ -40,6 +41,7 @@
 
     contrail-agent:
       charm: ./{{ ubuntu.release }}/contrail-agent
+      series: {{ ubuntu.release }}
       options:
         install-keys: |
           - |
index 2b12e6f..b38d92d 100644 (file)
@@ -7,6 +7,7 @@
         controller-api: *internal-space
         ovsdb-manager: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         install-url: "https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.0-Carbon/distribution-karaf-0.6.0-Carbon.tar.gz"
 {% if os.network.sfc %}
index a59d584..da7f720 100644 (file)
@@ -1,6 +1,7 @@
     onos-controller:
       charm: ./{{ ubuntu.release }}/onos-controller
       num_units: 1
+      series: {{ ubuntu.release }}
       options:
 {% if opnfv.ext_port is defined  %}
         ext-port: {{ opnfv.ext_port }}
index a01d13f..a3fc3cd 100644 (file)
@@ -6,6 +6,7 @@
         "": *oam-space
         internal: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       to:
         - "lxd:nodes/0"
 {# Empty block to avoid bad block trim #}
index ce340f7..c789df6 100644 (file)
@@ -7,6 +7,7 @@
         "": *public-space
         shared-db: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% if os.git_repo.origin_git %}
index d00d47b..8fecd04 100644 (file)
@@ -5,6 +5,7 @@
       bindings:
         "": *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       to:
         - "lxd:nodes/0"
 {# Empty block to avoid bad block trim #}
index b3bba40..ff0ca77 100644 (file)
@@ -7,6 +7,7 @@
         amqp: *internal-space
         cluster: *internal-space
 {% endif %}
+      series: {{ ubuntu.release }}
       options:
         source: *openstack-origin
 {% if opnfv.storage_dict.ceph is defined %}
index 0dae429..c083b3d 100644 (file)
@@ -2,6 +2,7 @@
     scaleio-mdm:
       charm: "./{{ ubuntu.release }}/scaleio-mdm"
       num_units: {{ unit_scaleio_qty() }}
+      series: {{ ubuntu.release }}
       options:
         cluster-mode: 3
       to:
@@ -17,6 +18,7 @@
     scaleio-sds:
       charm: "./{{ ubuntu.release }}/scaleio-sds"
       num_units: {{ opnfv.units }}
+      series: {{ ubuntu.release }}
       options:
         protection-domain: 'pd1'
         device-paths: {{ opnfv.storage_dict.scaleio.disk }}
@@ -32,6 +34,7 @@
 {% endif %}
     scaleio-sdc:
       charm: "./{{ ubuntu.release }}/scaleio-sdc"
+      series: {{ ubuntu.release }}
       num_units: {{ opnfv.units }}
       to:
 {% if os.hyperconverged %}
 {% endif %}
     scaleio-gw:
       charm: "./{{ ubuntu.release }}/scaleio-gw"
+      series: {{ ubuntu.release }}
       num_units: 1
       to:
         - "nodes/0"
     scaleio-gui:
       charm: "./{{ ubuntu.release }}/scaleio-gui"
       num_units: 1
+      series: {{ ubuntu.release }}
       to:
         - "nodes/0"
 {% endif %}
index 5ac8018..7036b93 100644 (file)
@@ -1,4 +1,4 @@
-{% if os.release == 'mitaka' %}
+{% if ubuntu.release == 'bionic' %}
     openstack-origin:    &openstack-origin    distro
 {% else %}
     openstack-origin:    &openstack-origin    cloud:{{ ubuntu.release }}-{{ os.release }}
index 488462f..61e672d 100644 (file)
@@ -2,12 +2,14 @@
 {% if os.network.controller != 'ocl' %}
     ceilometer-agent:
       charm: ./{{ ubuntu.release }}/ceilometer-agent
+      series: {{ ubuntu.release }}
       options:
         openstack-origin: *openstack-origin
 {% endif %}
 {% if opnfv.storage_dict.ceph is defined %}
     cinder-ceph:
       charm: ./{{ ubuntu.release }}/cinder-ceph
+      series: {{ ubuntu.release }}
       options:
 {% if opnfv.storage_dict.ceph is defined %}
         ceph-osd-replication-count: {{ unit_ceph_qty() }}
 {% elif os.network.controller == 'odl' %}
     neutron-api-odl:
       charm: ./{{ ubuntu.release }}/neutron-api-odl
+      series: {{ ubuntu.release }}
       options:
         overlay-network-type: 'vxlan'
         security-groups: True
     openvswitch-odl:
       charm: ./{{ ubuntu.release }}/openvswitch-odl
+      series: {{ ubuntu.release }}
       options:
 {% if opnfv.ext_port is defined  %}
         provider_mappings: "physnet1:{{ opnfv.ext_port }}"
 {% elif os.network.controller == 'onos' %}
     neutron-api-onos:
       charm: ./{{ ubuntu.release }}/neutron-api-onos
+      series: {{ ubuntu.release }}
       options:
         overlay-network-type: 'vxlan'
         security-groups: True
     openvswitch-onos:
       charm: ./{{ ubuntu.release }}/openvswitch-onos
+      series: {{ ubuntu.release }}
       options:
 {% if opnfv.spaces_dict.data is defined %}
         os-data-network: {{ opnfv.spaces_dict.data.cidr }}
@@ -51,6 +57,7 @@
 {% if os.lxd %}
     lxd:
       charm: ./{{ ubuntu.release }}/lxd
+      series: {{ ubuntu.release }}
       options:
 {% if 'srv' not in opnfv.storage_dict.ceph.disk %}
         block-devices: {{ opnfv.storage_dict.ceph.disk }}
@@ -61,6 +68,7 @@
 {% if opnfv.storage_dict.scaleio is defined %}
     scaleio-openstack:
       charm: ./{{ ubuntu.release }}/scaleio-openstack
+      series: {{ ubuntu.release }}
       options:
         protection-domains: 'pd1'
 {% endif %}
index a06696c..3bbddb6 100755 (executable)
@@ -90,7 +90,7 @@ for argument in $options
 
             -d|--distro )
                 if ([ "arguments[index]" != "" ]); then
-                    opnfdistro=${arguments[index]}
+                    opnfvdistro=${arguments[index]}
                 fi;
                 ;;
 
@@ -261,7 +261,7 @@ deploy() {
     fi
 
     #bootstrap the node
-    ./01-bootstrap.sh
+    ./01-bootstrap.sh $opnfvdistro
 
     juju model-config default-series=$opnfvdistro enable-os-refresh-update=false enable-os-upgrade=false
     juju set-model-constraints tags=
index c8d60ec..547bdba 100755 (executable)
@@ -12,26 +12,26 @@ function build {
 # openstack
 bzr branch lp:~narindergupta/charms/trusty/promise/trunk $distro/promise
 
-git clone -b stable/18.02 https://github.com/openstack/charm-hacluster.git $distro/hacluster
-git clone -b stable/18.02 https://github.com/openstack/charm-ceilometer.git $distro/ceilometer
-git clone -b stable/18.02 https://github.com/openstack/charm-ceilometer-agent.git $distro/ceilometer-agent
-git clone -b stable/18.02 https://github.com/openstack/charm-ceph-mon.git $distro/ceph-mon
-git clone -b stable/18.02 https://github.com/openstack/charm-ceph-osd.git $distro/ceph-osd
-git clone -b stable/18.02 https://github.com/openstack/charm-ceph-radosgw.git $distro/ceph-radosgw
-git clone -b stable/18.02 https://github.com/openstack/charm-cinder.git $distro/cinder
-git clone -b stable/18.02 https://github.com/openstack/charm-cinder-ceph.git $distro/cinder-ceph
-git clone -b stable/18.02 https://github.com/openstack/charm-glance.git $distro/glance
-git clone -b stable/18.02 https://github.com/openstack/charm-keystone.git $distro/keystone
-git clone -b stable/18.02 https://github.com/openstack/charm-percona-cluster.git $distro/percona-cluster
-git clone -b stable/18.02 https://github.com/openstack/charm-neutron-api.git $distro/neutron-api
-git clone -b stable/18.02 https://github.com/openstack/charm-neutron-gateway.git $distro/neutron-gateway
-git clone -b stable/18.02 https://github.com/openstack/charm-neutron-openvswitch.git $distro/neutron-openvswitch
-git clone -b stable/18.02 https://github.com/openstack/charm-nova-cloud-controller.git $distro/nova-cloud-controller
-git clone -b stable/18.02 https://github.com/openstack/charm-nova-compute.git $distro/nova-compute
-git clone -b stable/18.02 https://github.com/openstack/charm-openstack-dashboard.git $distro/openstack-dashboard
-git clone -b stable/18.02 https://github.com/openstack/charm-rabbitmq-server.git $distro/rabbitmq-server
-git clone -b stable/18.02 https://github.com/openstack/charm-heat.git $distro/heat
-git clone -b stable/18.02 https://github.com/openstack/charm-lxd.git $distro/lxd
+git clone https://github.com/openstack/charm-hacluster.git $distro/hacluster
+git clone https://github.com/openstack/charm-ceilometer.git $distro/ceilometer
+git clone https://github.com/openstack/charm-ceilometer-agent.git $distro/ceilometer-agent
+git clone https://github.com/openstack/charm-ceph-mon.git $distro/ceph-mon
+git clone https://github.com/openstack/charm-ceph-osd.git $distro/ceph-osd
+git clone https://github.com/openstack/charm-ceph-radosgw.git $distro/ceph-radosgw
+git clone https://github.com/openstack/charm-cinder.git $distro/cinder
+git clone https://github.com/openstack/charm-cinder-ceph.git $distro/cinder-ceph
+git clone https://github.com/openstack/charm-glance.git $distro/glance
+git clone https://github.com/openstack/charm-keystone.git $distro/keystone
+git clone https://github.com/openstack/charm-percona-cluster.git $distro/percona-cluster
+git clone https://github.com/openstack/charm-neutron-api.git $distro/neutron-api
+git clone https://github.com/openstack/charm-neutron-gateway.git $distro/neutron-gateway
+git clone https://github.com/openstack/charm-neutron-openvswitch.git $distro/neutron-openvswitch
+git clone https://github.com/openstack/charm-nova-cloud-controller.git $distro/nova-cloud-controller
+git clone https://github.com/openstack/charm-nova-compute.git $distro/nova-compute
+git clone https://github.com/openstack/charm-openstack-dashboard.git $distro/openstack-dashboard
+git clone https://github.com/openstack/charm-rabbitmq-server.git $distro/rabbitmq-server
+git clone https://github.com/openstack/charm-heat.git $distro/heat
+git clone https://github.com/openstack/charm-lxd.git $distro/lxd
 git clone https://github.com/openbaton/juju-charm.git $distro/openbaton
 
 charm pull cs:designate $distro/designate