From c6fea3e22d9452d3a53a10eed72eff3cd31c7e3a Mon Sep 17 00:00:00 2001
From: Alberto Colla <alberto.colla@garr.it>
Date: Wed, 17 Apr 2019 14:42:01 +0000
Subject: [PATCH] 2019-04-17 AC: Compute nodes on LXD containers

---
 .../openstack/bundle-config.cephlocal.yaml    |   68 +-
 .../bundle-config.cephlocal.yaml.ori          |  381 +++++++
 .../openstack/bundle.cephlocal.allinone.yaml  |  277 ++---
 bundles/openstack/bundle.pd.federation.yaml   | 1006 +++++++++++++++++
 bundles/openstack/bundle.yaml                 |  595 +++++++---
 .../openstack/bundle_nopasswd_00216760.yaml   |  989 ++++++++++++++++
 .../old/bundle.cephlocal.pd.tmp.yaml          | 1003 ++++++++++++++++
 .../openstack/old/bundle.cephlocal.pd.yaml    | 1005 ++++++++++++++++
 bundles/openstack/test-openrc.sh              |   38 +
 9 files changed, 5063 insertions(+), 299 deletions(-)
 create mode 100644 bundles/openstack/bundle-config.cephlocal.yaml.ori
 create mode 100644 bundles/openstack/bundle.pd.federation.yaml
 create mode 100644 bundles/openstack/bundle_nopasswd_00216760.yaml
 create mode 100644 bundles/openstack/old/bundle.cephlocal.pd.tmp.yaml
 create mode 100644 bundles/openstack/old/bundle.cephlocal.pd.yaml
 create mode 100644 bundles/openstack/test-openrc.sh

diff --git a/bundles/openstack/bundle-config.cephlocal.yaml b/bundles/openstack/bundle-config.cephlocal.yaml
index e98b25c0..dd0fac80 100644
--- a/bundles/openstack/bundle-config.cephlocal.yaml
+++ b/bundles/openstack/bundle-config.cephlocal.yaml
@@ -3,20 +3,20 @@
 
 parameters:
   # Region settings
-  region: &region                               <region>
-  access-network: &access_network               <network_used_by_rabbit_and_percona>
-  os-internal-network: &os_internal_network     <OpenStack_internal_network>
-  source_ntp: &source_ntp             <NTP_server>
-  os-data-network: &os_data_network   <OS_data_network>
+  region: &region                               unipd-1
+  # access-network: &access_network               <network_used_by_rabbit_and_percona>
+  # os-internal-network: &os_internal_network     <OpenStack_internal_network>
+  source_ntp: &source_ntp             ntp1.inrim.it
+  # os-data-network: &os_data_network   <OS_data_network>
 
   # Nagios
-  nagios_context: &nagios_context               <nagios_context>
-  nagios_admin_email: &nagios_admin_email       <nagiosadmin@domain.org>
-  nagios_admin_pwd: &nagiosadmin_pwd            <aVeryDifficultPwd>
-  nagios_readonly_pwd: &nagiosro_pwd            <aDifficultPwd>
+  nagios_context: &nagios_context               nagios
+  nagios_admin_email: &nagios_admin_email       vittorio.gallo@unipd.it	
+  nagios_admin_pwd: &nagiosadmin_pwd            !garr123
+  nagios_readonly_pwd: &nagiosro_pwd            !garr123
 
   # Ceph configs
-  ceph-osd-partition: &ceph_osd_partition  /data
+  ceph-osd-partition: &ceph_osd_partition  "/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv" 
   ceph-cinder-replication-count: &ceph_cinder_replication_count  2
   ceph-glance-replication-count: &ceph_glance_replication_count  2
   ceph-radosgw-replication-count: &ceph_radosgw_replication_count  2
@@ -24,44 +24,44 @@ parameters:
 
   # vips (number of VIPs should match number of different bindings)
 
-  vip-ceilometer: &vip_ceilometer       <VIP_priv_8> <VIP_pub_8>
-  vip-ceph-radosgw: &vip_ceph_radosgw   <VIP_priv_7> <VIP_pub_7>
-  vip-cinder: &vip_cinder               <VIP_priv_0> <VIP_pub_0>
-  vip-glance: &vip_glance               <VIP_priv_5> <VIP_pub_5>
-  vip-heat: &vip_heat                   <VIP_priv_4> <VIP_pub_4>
-  vip-dashboard: &vip_dashboard         <VIP_pub_2>
-  vip-keystone: &vip_keystone           <VIP_priv_1> <VIP_pub_1>
-  vip-percona: &vip_percona             <VIP_priv_2>
-  vip-neutron: &vip_neutron             <VIP_priv_6> <VIP_pub_6>
-  vip-nova: &vip_nova_cloud_controller  <VIP_priv_3> <VIP_pub_3>
-  console-proxy-ip: &console_proxy_ip   <VIP_pub_3>
+  vip-ceilometer: &vip_ceilometer       192.168.20.61 147.162.164.21
+  vip-ceph-radosgw: &vip_ceph_radosgw   192.168.20.62 147.162.164.22
+  vip-cinder: &vip_cinder               192.168.20.63 147.162.164.23
+  vip-glance: &vip_glance               192.168.20.64 147.162.164.24
+  vip-heat: &vip_heat                   192.168.20.65 147.162.164.25
+  vip-dashboard: &vip_dashboard                       147.162.164.26
+  vip-keystone: &vip_keystone           192.168.20.66 147.162.164.27
+  vip-percona: &vip_percona             192.168.20.67
+  vip-neutron: &vip_neutron             192.168.20.68 147.162.164.28
+  vip-nova: &vip_nova_cloud_controller  192.168.20.69 147.162.164.29
+  console-proxy-ip: &console_proxy_ip                 147.162.164.29
   # This is the gateway for public VIPs
-  default_public_gateway: &default_public_gateway  <default_public_gateway_in_CIDR_notation>
+  default_public_gateway: &default_public_gateway     147.162.164.1
 
   # hostnames
-  os-public-hostname: &os_public_hostname  <keystone_public_hostname>
-  os-internal-hostname: &os_internal_hostname  <keystone_internal_hostname>
+  os-public-hostname: &os_public_hostname      keystone.ict.unipd.it
+  os-internal-hostname: &os_internal_hostname  keystone.ict.unipd.it
   # this one could be identical to internal-hostname
-  os-admin-hostname: &os_admin_hostname  <keystone_admin_hostname>
+  os-admin-hostname: &os_admin_hostname        keystone.ict.unipd.it
 
   # network setup: should be the same cross-sites
   ### Use network-space-* in bindings unless os-admin-* is usable instead
-  network-space-default: &network_space_default	<MAAS_OS_mgmt_space>
-  network-space-pub: &network_space_pub		<MAAS_pub_space>
+  network-space-default: &network_space_default	openstack-mgt
+  network-space-pub: &network_space_pub		pubblica
 # In the following we assume space-os-data is used both for compute-network
 # communication, and for ceph-OSD communication: can be split for better separation
-  network-space-os-data: &network_space_os_data	<MAAS_OS_data_space>
-  network-space-os-mgmt: &network_space_os_mgmt	<MAAS_OS_mgmt_space>
+  network-space-os-data: &network_space_os_data	openstack-mgt
+  network-space-os-mgmt: &network_space_os_mgmt openstack-mgt
 
   # Change as appropriate
   bridge-mappings: &bridge_mappings             ext_net:br-ex
-  data-port: &data_port				br-ex:bond0.188
+  data-port: &data_port				br-ex:bond0.20
 
   # secrets and passwords:
-  root-password: &root_password  <root_password>
-  sst-password:  &sst_password   <sst_password>
-  admin-password: &admin_password  <admin_password>
-  secret_dashboard: &secret_dashboard   <secret>
+  root-password: &root_password  !garr123
+  sst-password:  &sst_password   !garr123
+  admin-password: &admin_password  !garr123
+  secret_dashboard: &secret_dashboard   garr123
   encryption-key: &encryption_key       <encryption_key>
 #
 #  Set your corosync_keys by running (on your preferred machine):
diff --git a/bundles/openstack/bundle-config.cephlocal.yaml.ori b/bundles/openstack/bundle-config.cephlocal.yaml.ori
new file mode 100644
index 00000000..e98b25c0
--- /dev/null
+++ b/bundles/openstack/bundle-config.cephlocal.yaml.ori
@@ -0,0 +1,381 @@
+## Specific configuration file for a cloud region.
+## Edit values within <...> to represent your region.
+
+parameters:
+  # Region settings
+  region: &region                               <region>
+  access-network: &access_network               <network_used_by_rabbit_and_percona>
+  os-internal-network: &os_internal_network     <OpenStack_internal_network>
+  source_ntp: &source_ntp             <NTP_server>
+  os-data-network: &os_data_network   <OS_data_network>
+
+  # Nagios
+  nagios_context: &nagios_context               <nagios_context>
+  nagios_admin_email: &nagios_admin_email       <nagiosadmin@domain.org>
+  nagios_admin_pwd: &nagiosadmin_pwd            <aVeryDifficultPwd>
+  nagios_readonly_pwd: &nagiosro_pwd            <aDifficultPwd>
+
+  # Ceph configs
+  ceph-osd-partition: &ceph_osd_partition  /data
+  ceph-cinder-replication-count: &ceph_cinder_replication_count  2
+  ceph-glance-replication-count: &ceph_glance_replication_count  2
+  ceph-radosgw-replication-count: &ceph_radosgw_replication_count  2
+  ceph-radosgw-pool-prefix: &ceph_radosgw_pool_prefix    rgw
+
+  # vips (number of VIPs should match number of different bindings)
+
+  vip-ceilometer: &vip_ceilometer       <VIP_priv_8> <VIP_pub_8>
+  vip-ceph-radosgw: &vip_ceph_radosgw   <VIP_priv_7> <VIP_pub_7>
+  vip-cinder: &vip_cinder               <VIP_priv_0> <VIP_pub_0>
+  vip-glance: &vip_glance               <VIP_priv_5> <VIP_pub_5>
+  vip-heat: &vip_heat                   <VIP_priv_4> <VIP_pub_4>
+  vip-dashboard: &vip_dashboard         <VIP_pub_2>
+  vip-keystone: &vip_keystone           <VIP_priv_1> <VIP_pub_1>
+  vip-percona: &vip_percona             <VIP_priv_2>
+  vip-neutron: &vip_neutron             <VIP_priv_6> <VIP_pub_6>
+  vip-nova: &vip_nova_cloud_controller  <VIP_priv_3> <VIP_pub_3>
+  console-proxy-ip: &console_proxy_ip   <VIP_pub_3>
+  # This is the gateway for public VIPs
+  default_public_gateway: &default_public_gateway  <default_public_gateway_in_CIDR_notation>
+
+  # hostnames
+  os-public-hostname: &os_public_hostname  <keystone_public_hostname>
+  os-internal-hostname: &os_internal_hostname  <keystone_internal_hostname>
+  # this one could be identical to internal-hostname
+  os-admin-hostname: &os_admin_hostname  <keystone_admin_hostname>
+
+  # network setup: should be the same cross-sites
+  ### Use network-space-* in bindings unless os-admin-* is usable instead
+  network-space-default: &network_space_default	<MAAS_OS_mgmt_space>
+  network-space-pub: &network_space_pub		<MAAS_pub_space>
+# In the following we assume space-os-data is used both for compute-network
+# communication, and for ceph-OSD communication: can be split for better separation
+  network-space-os-data: &network_space_os_data	<MAAS_OS_data_space>
+  network-space-os-mgmt: &network_space_os_mgmt	<MAAS_OS_mgmt_space>
+
+  # Change as appropriate
+  bridge-mappings: &bridge_mappings             ext_net:br-ex
+  data-port: &data_port				br-ex:bond0.188
+
+  # secrets and passwords:
+  root-password: &root_password  <root_password>
+  sst-password:  &sst_password   <sst_password>
+  admin-password: &admin_password  <admin_password>
+  secret_dashboard: &secret_dashboard   <secret>
+  encryption-key: &encryption_key       <encryption_key>
+#
+#  Set your corosync_keys by running (on your preferred machine):
+#  corosync-keygen ; cat /etc/corosync/authkey | base64 -w 0 ; echo " "
+  corosync_key: &corosync_key   <corosync_key>
+
+  # keystone/dashboard
+  admin-token: &admin_token  <admin_token>
+
+# ----------------------------------------------------------------------
+services:
+
+  controller:
+    bindings:
+      "": *network_space_default
+
+  ntp:
+    options:
+      source: *source_ntp
+
+  defaultgw:
+    options:
+      gateway: *default_public_gateway
+
+  ceph-radosgw-hacluster:
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      corosync_key: *corosync_key
+      nagios_context: *nagios_context
+
+  cinder-hacluster:
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      corosync_key: *corosync_key
+      nagios_context: *nagios_context
+
+  controller-hacluster:
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      corosync_key: *corosync_key
+      nagios_context: *nagios_context
+
+  glance-hacluster:
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      corosync_key: *corosync_key
+      nagios_context: *nagios_context
+
+  horizon-hacluster:
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      corosync_key: *corosync_key
+      nagios_context: *nagios_context
+
+  keystone-hacluster:
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      corosync_key: *corosync_key
+      nagios_context: *nagios_context
+
+  neutron-api-hacluster:
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      corosync_key: *corosync_key
+      nagios_context: *nagios_context
+
+  percona-hacluster:
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      corosync_key: *corosync_key
+      nagios_context: *nagios_context
+
+  nagios-server:
+    bindings:
+      "": *network_space_os_mgmt
+      website: *network_space_pub
+    options:
+      admin_email: *nagios_admin_email
+      password: *nagiosadmin_pwd
+      ro-password: *nagiosro_pwd
+
+  rabbitmq-server:
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+    options:
+      access-network: *access_network
+      nagios_context: *nagios_context
+
+  percona-cluster:
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      access-network: *access_network
+      cluster-network: *access_network
+      nagios_context: *nagios_context
+      root-password: *root_password
+      sst-password: *sst_password
+      vip: *vip_percona
+
+  keystone:
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      admin-password: *admin_password
+      admin-token: *admin_token
+      nagios_context: *nagios_context
+      os-public-hostname: *os_public_hostname
+      region: *region
+      vip: *vip_keystone
+
+  openstack-dashboard:
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      website: *network_space_pub
+      dashboard-plugin: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      secret: *secret_dashboard
+      vip: *vip_dashboard
+
+  nova-compute:
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      compute-peer: *network_space_os_mgmt
+      neutron-plugin: *network_space_os_mgmt
+    options:
+      os-internal-network: *os_internal_network
+      nagios_context: *nagios_context
+
+  nova-cloud-controller:
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+#      cell: ###
+      memcache: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      region: *region
+      console-proxy-ip: *console_proxy_ip
+      nagios_context: *nagios_context
+      vip: *vip_nova_cloud_controller
+
+  neutron-api:
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      region: *region
+      nagios_context: *nagios_context
+      neutron-external-network: *neutron_external_network
+      vip: *vip_neutron
+
+  neutron-openvswitch:
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      data: *network_space_os_data
+      neutron-plugin: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+    options:
+      os-data-network: *os_data_network
+
+  cinder:
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      region: *region
+      vip: *vip_cinder
+
+  cinder-ceph:
+    bindings:
+      "": *network_space_default
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_cinder_replication_count
+
+  ceph-mon:
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      client: *network_space_os_mgmt
+      radosgw: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      mon: *network_space_os_mgmt
+      osd: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+
+  ceph-osd:
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      cluster: *network_space_os_data
+      mon: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      osd-devices: *ceph_osd_partition
+
+  ceph-radosgw:
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_radosgw_replication_count
+      config-flags: *ceph_radosgw_config_flags
+      nagios_context: *nagios_context
+      pool-prefix: *ceph_radosgw_pool_prefix
+      region: *region
+      rgw-buckets-pool-weight:  *ceph_radosgw_rgw_buckets_pool_weight
+      rgw-lightweight-pool-pg-num: *ceph_radosgw_lightweight_pool_pg_num
+      vip: *vip_ceph_radosgw
+
+  glance:
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_glance_replication_count
+      region: *region
+      nagios_context: *nagios_context
+      vip: *vip_glance
+
+  memcached:
+    bindings:
+      "": *network_space_default
+      cache: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+
+  neutron-gateway:
+    bindings:
+      "": *network_space_default
+      data: *network_space_os_data
+      amqp: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      bridge-mappings: *bridge_mappings
+      nagios_context: *nagios_context
+      os-data-network: *os_data_network
+
+  ceilometer:
+    bindings:
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+    options:
+      region: *region
diff --git a/bundles/openstack/bundle.cephlocal.allinone.yaml b/bundles/openstack/bundle.cephlocal.allinone.yaml
index 850b9666..2f534435 100644
--- a/bundles/openstack/bundle.cephlocal.allinone.yaml
+++ b/bundles/openstack/bundle.cephlocal.allinone.yaml
@@ -4,8 +4,8 @@
 
 parameters:
   # sources
-  openstack-origin: &openstack_origin   cloud:xenial-ocata
-  series: &series  xenial
+  openstack-origin: &openstack_origin   cloud:bionic-rocky
+  series: &series  bionic
 
   # Ceph configs
   ceph-radosgw-lightweight-pool-pg-num:  &ceph_radosgw_lightweight_pool_pg_num  8
@@ -40,20 +40,20 @@ parameters:
 ## Specific configuration file for a cloud region.
 ## Edit values within <...> to represent your region.
   # Region settings
-  region: &region                               <region>
-  access-network: &access_network               <network_used_by_rabbit_and_percona>
-  os-internal-network: &os_internal_network     <OpenStack_internal_network>
-  source_ntp: &source_ntp             <NTP_server>
-  os-data-network: &os_data_network   <OS_data_network>
+  region: &region                               unipd-1
+  # access-network: &access_network               <network_used_by_rabbit_and_percona>
+  # os-internal-network: &os_internal_network     <OpenStack_internal_network>
+  source_ntp: &source_ntp             ntp1.inrim.it
+  # os-data-network: &os_data_network   <OS_data_network>
 
   # Nagios
-  nagios_context: &nagios_context               <nagios_context>
-  nagios_admin_email: &nagios_admin_email       <nagiosadmin@domain.org>
-  nagios_admin_pwd: &nagiosadmin_pwd            <aVeryDifficultPwd>
-  nagios_readonly_pwd: &nagiosro_pwd            <aDifficultPwd>
+  nagios_context: &nagios_context               nagios
+  nagios_admin_email: &nagios_admin_email       vittorio.gallo@unipd.it	
+  nagios_admin_pwd: &nagiosadmin_pwd            !garr123
+  nagios_readonly_pwd: &nagiosro_pwd            !garr123
 
   # Ceph configs
-  ceph-osd-partition: &ceph_osd_partition  /data
+  ceph-osd-partition: &ceph_osd_partition  "/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv" 
   ceph-cinder-replication-count: &ceph_cinder_replication_count  2
   ceph-glance-replication-count: &ceph_glance_replication_count  2
   ceph-radosgw-replication-count: &ceph_radosgw_replication_count  2
@@ -61,69 +61,61 @@ parameters:
 
   # vips (number of VIPs should match number of different bindings)
 
-  vip-ceilometer: &vip_ceilometer       <VIP_priv_8> <VIP_pub_8>
-  vip-ceph-radosgw: &vip_ceph_radosgw   <VIP_priv_7> <VIP_pub_7>
-  vip-cinder: &vip_cinder               <VIP_priv_0> <VIP_pub_0>
-  vip-glance: &vip_glance               <VIP_priv_5> <VIP_pub_5>
-  vip-heat: &vip_heat                   <VIP_priv_4> <VIP_pub_4>
-  vip-dashboard: &vip_dashboard         <VIP_pub_2>
-  vip-keystone: &vip_keystone           <VIP_priv_1> <VIP_pub_1>
-  vip-percona: &vip_percona             <VIP_priv_2>
-  vip-neutron: &vip_neutron             <VIP_priv_6> <VIP_pub_6>
-  vip-nova: &vip_nova_cloud_controller  <VIP_priv_3> <VIP_pub_3>
-  console-proxy-ip: &console_proxy_ip   <VIP_pub_3>
+  vip-ceilometer: &vip_ceilometer       192.168.20.61 147.162.164.21
+  vip-ceph-radosgw: &vip_ceph_radosgw   192.168.20.62 147.162.164.22
+  vip-cinder: &vip_cinder               192.168.20.63 147.162.164.23
+  vip-glance: &vip_glance               192.168.20.64 147.162.164.24
+  vip-heat: &vip_heat                   192.168.20.65 147.162.164.25
+  vip-dashboard: &vip_dashboard                       147.162.164.26
+  vip-keystone: &vip_keystone           192.168.20.66 147.162.164.27
+  vip-percona: &vip_percona             192.168.20.67
+  vip-neutron: &vip_neutron             192.168.20.68 147.162.164.28
+  vip-nova: &vip_nova_cloud_controller  192.168.20.69 147.162.164.29
+  console-proxy-ip: &console_proxy_ip                 147.162.164.29
   # This is the gateway for public VIPs
-  default_public_gateway: &default_public_gateway  <default_public_gateway_in_CIDR_notation>
+  default_public_gateway: &default_public_gateway     147.162.164.1
 
   # hostnames
-  os-public-hostname: &os_public_hostname  <keystone_public_hostname>
-  os-internal-hostname: &os_internal_hostname  <keystone_internal_hostname>
+  os-public-hostname: &os_public_hostname      keystone.ict.unipd.it
+  os-internal-hostname: &os_internal_hostname  keystone.ict.unipd.it
   # this one could be identical to internal-hostname
-  os-admin-hostname: &os_admin_hostname  <keystone_admin_hostname>
+  os-admin-hostname: &os_admin_hostname        keystone.ict.unipd.it
 
   # network setup: should be the same cross-sites
   ### Use network-space-* in bindings unless os-admin-* is usable instead
-  network-space-default: &network_space_default	<MAAS_OS_mgmt_space>
-  network-space-pub: &network_space_pub		<MAAS_pub_space>
+  network-space-default: &network_space_default	openstack-mgt
+  network-space-pub: &network_space_pub		pubblica
 # In the following we assume space-os-data is used both for compute-network
 # communication, and for ceph-OSD communication: can be split for better separation
-  network-space-os-data: &network_space_os_data	<MAAS_OS_data_space>
-  network-space-os-mgmt: &network_space_os_mgmt	<MAAS_OS_mgmt_space>
+  network-space-os-data: &network_space_os_data	openstack-mgt
+  network-space-os-mgmt: &network_space_os_mgmt openstack-mgt
 
   # Change as appropriate
   bridge-mappings: &bridge_mappings             ext_net:br-ex
-  data-port: &data_port				br-ex:bond0.188
+  data-port: &data_port				br-ex:bond0.20
 
   # secrets and passwords:
-  root-password: &root_password  <root_password>
-  sst-password:  &sst_password   <sst_password>
-  admin-password: &admin_password  <admin_password>
-  secret_dashboard: &secret_dashboard   <secret>
-  encryption-key: &encryption_key       <encryption_key>
+  root-password: &root_password  !garr123
+  sst-password:  &sst_password   !garr123
+  admin-password: &admin_password  !garr123
+  secret_dashboard: &secret_dashboard   garr123
+  # encryption-key: &encryption_key       <encryption_key>
 #
 #  Set your corosync_keys by running (on your preferred machine):
 #  corosync-keygen ; cat /etc/corosync/authkey | base64 -w 0 ; echo " "
-  corosync_key: &corosync_key   <corosync_key>
+  # corosync_key: &corosync_key   <corosync_key>
 
   # keystone/dashboard
-  admin-token: &admin_token  <admin_token>
+  # CLA: ho usato pwgen 62 1
+  admin-token: &admin_token  Eig5JeiX5aiphohgiech6aozegh7ahfe5volei5zie2riemienai4ye3eiv3wi
 
 # ------------------------------------------------------------------------------
 machines:
   '0':
-    constraints: arch=amd64 tags=neutron-gw
+    constraints: arch=amd64 tags=hyperconverged_host
     series: *series
   '1':
-    constraints: arch=amd64 tags=controller
-    series: *series
-  '2':
-    constraints: arch=amd64 tags=controller
-    series: *series
-  '3':
-    constraints: arch=amd64 tags=compute
-    series: *series
-  '4':
-    constraints: arch=amd64 tags=compute
+    constraints: arch=amd64 tags=hyperconverged_host
     series: *series
 
 # ------------------------------------------------------------------------------
@@ -136,32 +128,32 @@ services:
     bindings:
       "": *network_space_default
     to:
+      - '0'
       - '1'
-      - '2'
     annotations:
       gui-x: '2000'
       gui-y: '0'
 
-  compute-host:
-    charm: cs:ubuntu
-    series: *series
-    num_units: 2
-    to:
-      - '3'
-      - '4'
-    annotations:
-      gui-x: '2000'
-      gui-y: '500'
-
-  network-host:
-    charm: cs:ubuntu
-    series: *series
-    num_units: 1
-    to:
-      - '0'
-    annotations:
-      gui-x: '2000'
-      gui-y: '800'
+#  compute-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 2
+#    to:
+#      - '3'
+#      - '4'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '500'
+
+#  network-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 1
+#    to:
+#      - '0'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '800'
 
   ntp:
     charm: cs:ntp
@@ -186,7 +178,7 @@ services:
     bindings:
       "": *network_space_os_mgmt
     options:
-      corosync_key: *corosync_key
+      # corosync_key: *corosync_key
       nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: ceph,object,storage
@@ -200,7 +192,7 @@ services:
     bindings:
       "": *network_space_os_mgmt
     options:
-      corosync_key: *corosync_key
+      # corosync_key: *corosync_key
       nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: ceph,block,storage
@@ -214,7 +206,7 @@ services:
     bindings:
       "": *network_space_os_mgmt
     options:
-      corosync_key: *corosync_key
+      # corosync_key: *corosync_key
       nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: nova,compute
@@ -228,7 +220,7 @@ services:
     bindings:
       "": *network_space_os_mgmt
     options:
-      corosync_key: *corosync_key
+      # corosync_key: *corosync_key
       nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: ceph,object,storage
@@ -242,7 +234,7 @@ services:
     bindings:
       "": *network_space_os_mgmt
     options:
-      corosync_key: *corosync_key
+      # corosync_key: *corosync_key
       nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: dashboard,web
@@ -256,7 +248,7 @@ services:
     bindings:
       "": *network_space_os_mgmt
     options:
-      corosync_key: *corosync_key
+      # corosync_key: *corosync_key
       nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: keystone
@@ -270,7 +262,7 @@ services:
     bindings:
       "": *network_space_os_mgmt
     options:
-      corosync_key: *corosync_key
+      # corosync_key: *corosync_key
       nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: neutron
@@ -284,7 +276,7 @@ services:
     bindings:
       "": *network_space_os_mgmt
     options:
-      corosync_key: *corosync_key
+      # corosync_key: *corosync_key
       nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: database
@@ -306,7 +298,7 @@ services:
       ro-password: *nagiosro_pwd
       monitor_self: true
     to:
-      - 'lxd:2'
+      - 'lxd:0'
   nrpe-controller:
     charm: cs:nrpe
     series: *series
@@ -393,13 +385,14 @@ services:
     options:
       access-network: *access_network
       nagios_context: *nagios_context
-      min-cluster-size: 2
+      min-cluster-size: 3
       cluster-partition-handling: pause_minority
       management_plugin: True
       nagios_servicegroups: messaging
       use-syslog: True
     to:
-      - 'lxd:2'
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
     annotations:
       gui-x: '400'
@@ -420,14 +413,15 @@ services:
       root-password: *root_password
       sst-password: *sst_password
       vip: *vip_percona
-      min-cluster-size: 2
+      min-cluster-size: 3
       innodb-buffer-pool-size: 10G
       lp1366997-workaround: True
       max-connections: 30000
       nagios_servicegroups: database
     to:
+      - 'lxd:0'
+      - 'lxd:0'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       gui-x: '1000'
       gui-y: '800'
@@ -461,7 +455,8 @@ services:
       region: *region
       use-syslog: True
     to:
-      - 'lxd:2'
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
     annotations:
       gui-x: '500'
@@ -490,8 +485,9 @@ services:
       use-syslog: True
       webroot: '/'
     to:
+      - 'lxd:0'
+      - 'lxd:0'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       gui-x: '500'
       gui-y: '0'
@@ -526,8 +522,8 @@ services:
       enable-resize: True
       enable-live-migration: True
     to:
-      - '3'
-      - '4'
+      - '0'
+      - '1'
     annotations:
       gui-x: '0'
       gui-y: '200'
@@ -572,8 +568,9 @@ services:
       use-internal-endpoints: True
       worker-multiplier: *worker_multiplier
     to:
+      - 'lxd:0'
+      - 'lxd:0'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       gui-x: '0'
       gui-y: '450'
@@ -612,7 +609,8 @@ services:
       use-syslog: True
       worker-multiplier: *worker_multiplier
     to:
-      - 'lxd:2'
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
     annotations:
       gui-x: '500'
@@ -669,8 +667,9 @@ services:
       use-internal-endpoints: True
       worker-multiplier: *worker_multiplier
     to:
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       gui-x: '1000'
       gui-y: '200'
@@ -706,7 +705,8 @@ services:
       nagios_context: *nagios_context
       nagios_servicegroups: ceph,storage
     to:
-      - 'lxd:2'
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
     annotations:
       gui-x: '1200'
@@ -730,8 +730,8 @@ services:
       osd-format: 'xfs'
       use-syslog: True
     to:
-      - '3'
-      - '4'
+      - '0'
+      - '1'
     annotations:
       gui-x: '1400'
       gui-y: '400'
@@ -760,8 +760,9 @@ services:
       restrict-ceph-pools: True
       use-syslog: True
     to:
+      - 'lxd:0'
+      - 'lxd:0'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       "gui-x": "1000"
       "gui-y": "0"
@@ -798,7 +799,8 @@ services:
       use-syslog: True
       restrict-ceph-pools: True
     to:
-      - 'lxd:2'
+      - 'lxd:0'
+      - 'lxd:0'
       - 'lxd:1'
     annotations:
       gui-x: '1000'
@@ -816,8 +818,9 @@ services:
       nagios_context: *nagios_context
       allow-ufw-ip6-softfail: True
     to:
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       gui-x: '100'
       gui-y: '800'
@@ -849,42 +852,42 @@ services:
       gui-x: '0'
       gui-y: '1100'
 
-  ceilometer:
-    charm: cs:ceilometer
-    series: xenial
-    num_units: 1
-    bindings:
-      public: *network_space_pub
-      admin: *network_space_os_mgmt
-      internal: *network_space_os_mgmt
-    options:
-      region: *region
-      action-managed-upgrade: True
-      debug: False
-      verbose: False
-      event-time-to-live: *celiometer_event_time_to_live
-      metering-time-to-live: *celiometer_metering_time_to_live
-      region: *region
-    to:
-      - 'lxd:1'
-    annotations:
-      gui-x: '450'
-      gui-y: '-250'
-
-  ceilometer-agent:
-    charm: cs:ceilometer-agent
-    series: xenial
-    options:
-      action-managed-upgrade: True
-    annotations:
-      gui-x: '200'
-      gui-y: '-150'
+#  ceilometer:
+#    charm: cs:ceilometer
+#    series: *series
+#    num_units: 1
+#    bindings:
+#      public: *network_space_pub
+#      admin: *network_space_os_mgmt
+#      internal: *network_space_os_mgmt
+#    options:
+#      region: *region
+#      action-managed-upgrade: True
+#      debug: False
+#      verbose: False
+#      event-time-to-live: *celiometer_event_time_to_live
+#      metering-time-to-live: *celiometer_metering_time_to_live
+#      region: *region
+#    to:
+#      - 'lxd:1'
+#    annotations:
+#      gui-x: '450'
+#      gui-y: '-250'
+
+#  ceilometer-agent:
+#    charm: cs:ceilometer-agent
+#    series: xenial
+#    options:
+#      action-managed-upgrade: True
+#    annotations:
+#      gui-x: '200'
+#      gui-y: '-150'
 
 # ------------------------------------------------------------------------------
 relations:
   - [ ntp, controller ]
-  - [ ntp, compute-host ]
-  - [ ntp, network-host ]
+#  - [ ntp, compute-host ]
+#  - [ ntp, network-host ]
   - [ percona-cluster, percona-hacluster ]
   - [ cinder, cinder-hacluster ]
   - [ glance, glance-hacluster ]
@@ -969,14 +972,14 @@ relations:
   - [ neutron-api, nrpe-neutron]
   - [ neutron-api-hacluster, nrpe-neutron]
   - [ "nrpe-neutron:monitors", "nagios-server:monitors" ]
-  - [ network-host, nrpe-neutrongw]
+#  - [ network-host, nrpe-neutrongw]
   - [ neutron-gateway, nrpe-neutrongw]
   - [ "nrpe-neutrongw:monitors", "nagios-server:monitors" ]
 # nagios nova
   - [ nova-cloud-controller, nrpe-nova]
   - [ controller-hacluster, nrpe-nova]
   - [ "nrpe-nova:monitors", "nagios-server:monitors" ]
-  - [ compute-host, nrpe-novacompute]
+#  - [ compute-host, nrpe-novacompute]
   - [ nova-compute, nrpe-novacompute]
   - [ "nrpe-novacompute:monitors", "nagios-server:monitors" ]
 # nagios percona
@@ -990,9 +993,9 @@ relations:
   - [rabbitmq-server, nrpe-rabbitmq]
   - [ "nrpe-rabbitmq:monitors", "nagios-server:monitors" ]
 # ceilometer
-  - [ "ceilometer:amqp", "rabbitmq-server:amqp" ]
-  - [ "ceilometer:identity-service", "keystone:identity-service" ]
-  - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
-  - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
-  - [ "ceilometer:ceilometer-service", "ceilometer-agent:ceilometer-service" ]
-  - [ "ceilometer:juju-info", "defaultgw:juju-info" ]
+#  - [ "ceilometer:amqp", "rabbitmq-server:amqp" ]
+#  - [ "ceilometer:identity-service", "keystone:identity-service" ]
+#  - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
+#  - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
+#  - [ "ceilometer:ceilometer-service", "ceilometer-agent:ceilometer-service" ]
+#  - [ "ceilometer:juju-info", "defaultgw:juju-info" ]
diff --git a/bundles/openstack/bundle.pd.federation.yaml b/bundles/openstack/bundle.pd.federation.yaml
new file mode 100644
index 00000000..97458e62
--- /dev/null
+++ b/bundles/openstack/bundle.pd.federation.yaml
@@ -0,0 +1,1006 @@
+## Sample bundle for the deployment of OpenStack in a region of the
+## GARR Federated Cloud Platform.
+## This version deploys a local ceph.
+
+parameters:
+  # sources
+  openstack-origin: &openstack_origin   distro
+  series: &series  bionic
+  dashboard-series: &dashboard_series bionic
+
+  # Ceph configs
+  ceph-radosgw-lightweight-pool-pg-num:  &ceph_radosgw_lightweight_pool_pg_num  8
+  ceph-radosgw-rgw-buckets-pool-weight:  &ceph_radosgw_rgw_buckets_pool_weight  5
+  ceph-radosgw-config-flags:  &ceph_radosgw_config_flags
+
+  # network defaults:
+  flat-network-providers: &flat_network_providers  ext_net
+  neutron-external-network: &neutron_external_network ext_net
+  network-device-mtu: &network_device_mtu  1500
+  instance-mtu: &instance_mtu	1400
+  enable-dvr: &dvr_mode		False
+  vlan-ranges: &vlan_ranges	physnet-ovs:801:801
+  enable-local-dhcp-and-metadata: &enable_local_dhcp_and_metadata   True
+
+  # keystone/dashboard
+  preferred-api-version: &preferred_api_version     3
+
+  # nova-compute
+  worker-multiplier: &worker_multiplier             '1.0'
+  cpu-allocation-ratio: &cpu_allocation_ratio       '2.0'
+  ram-allocation-ratio: &ram_allocation_ratio       '1.5'
+  n-c-config-flags: &nova_compute_config_flags    "block_device_allocate_retries=600,block_device_allocate_retries_interval=5"
+
+  hugepages: &hugepages    '5%'
+  libvirt-image-backend: &libvirt_image_backend
+  cpu-mode: &cpu-mode
+
+# Ceilometer
+  event-time-to-live: &celiometer_event_time_to_live -1
+  metering-time-to-live: &celiometer_metering_time_to_live -1
+
+## Specific configuration file for a cloud region.
+## Edit values within <...> to represent your region.
+  # Region settings
+  region: &region                               unipd-1
+  # access-network: &access_network               <network_used_by_rabbit_and_percona>
+  # os-internal-network: &os_internal_network     <OpenStack_internal_network>
+  source_ntp: &source_ntp             ntp1.inrim.it
+  # os-data-network: &os_data_network   <OS_data_network>
+
+  # Nagios
+  nagios_context: &nagios_context               nagios
+  nagios_admin_email: &nagios_admin_email       vittorio.gallo@unipd.it	
+  nagios_admin_pwd: &nagiosadmin_pwd            '!garr123'
+  nagios_readonly_pwd: &nagiosro_pwd            '!garr123'
+
+  # Ceph configs
+  ceph-osd-partition: &ceph_osd_partition  "/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv" 
+  ceph-cinder-replication-count: &ceph_cinder_replication_count  2
+  ceph-glance-replication-count: &ceph_glance_replication_count  2
+  ceph-radosgw-replication-count: &ceph_radosgw_replication_count  2
+  ceph-radosgw-pool-prefix: &ceph_radosgw_pool_prefix    rgw
+
+  # vips (number of VIPs should match number of different bindings)
+
+  vip-ceilometer: &vip_ceilometer       192.168.20.61 147.162.164.21
+  vip-ceph-radosgw: &vip_ceph_radosgw   192.168.20.62 147.162.164.22
+  vip-cinder: &vip_cinder               192.168.20.63 147.162.164.23
+  vip-glance: &vip_glance               192.168.20.64 147.162.164.24
+  vip-heat: &vip_heat                   192.168.20.65 147.162.164.25
+  vip-dashboard: &vip_dashboard                       147.162.164.26
+  vip-keystone: &vip_keystone           192.168.20.66 147.162.164.27
+  vip-percona: &vip_percona             192.168.20.67
+  vip-neutron: &vip_neutron             192.168.20.68 147.162.164.28
+  vip-nova: &vip_nova_cloud_controller  192.168.20.69 147.162.164.29
+  console-proxy-ip: &console_proxy_ip                 147.162.164.29
+  # This is the gateway for public VIPs
+  default_public_gateway: &default_public_gateway     147.162.164.1
+
+  # hostnames
+  os-public-hostname: &os_public_hostname      keystone.ict.unipd.it
+  os-internal-hostname: &os_internal_hostname  keystone.ict.unipd.it
+  # this one could be identical to internal-hostname
+  os-admin-hostname: &os_admin_hostname        keystone.ict.unipd.it
+
+  # network setup: should be the same cross-sites
+  ### Use network-space-* in bindings unless os-admin-* is usable instead
+  network-space-default: &network_space_default	openstack-mgt
+   #network-space-default: &network_space_default	pubblica # temporary change
+  network-space-pub: &network_space_pub		pubblica
+# In the following we assume space-os-data is used both for compute-network
+# communication, and for ceph-OSD communication: can be split for better separation
+  network-space-os-data: &network_space_os_data	openstack-mgt
+  network-space-os-mgmt: &network_space_os_mgmt openstack-mgt
+
+  # Change as appropriate
+  bridge-mappings: &bridge_mappings             ext_net:br-ex
+  data-port: &data_port				"br-ex:enp94s0f1.20"
+
+  # secrets and passwords:
+  root-password: &root_password  '!garr123'
+  sst-password:  &sst_password   '!garr123'
+  admin-password: &admin_password  '!garr123'
+  secret_dashboard: &secret_dashboard   garr123
+  # encryption-key: &encryption_key       <encryption_key>
+#
+#  Set your corosync_keys by running (on your preferred machine):
+#  corosync-keygen ; cat /etc/corosync/authkey | base64 -w 0 ; echo " "
+  # corosync_key: &corosync_key   <corosync_key>
+
+  # keystone/dashboard
+  # CLA: ho usato pwgen 62 1
+  admin-token: &admin_token  Eig5JeiX5aiphohgiech6aozegh7ahfe5volei5zie2riemienai4ye3eiv3wi
+
+# ------------------------------------------------------------------------------
+machines:
+  '0':
+    constraints: arch=amd64 tags=hyperconverged_host
+    series: *series
+  '1':
+    constraints: arch=amd64 tags=hyperconverged_host
+    series: *series
+
+# ------------------------------------------------------------------------------
+services:
+
+  controller:
+    charm: cs:ubuntu
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '2000'
+      gui-y: '0'
+
+#  compute-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 2
+#    to:
+#      - '3'
+#      - '4'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '500'
+
+#  network-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 1
+#    to:
+#      - '0'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '800'
+
+  ntp:
+    charm: cs:ntp
+    series: *series
+    options:
+      source: *source_ntp
+    annotations:
+      gui-x: '2200'
+      gui-y: '500'
+
+#   defaultgw:
+#     charm: cs:~csd-garr/defaultgw
+#     options:
+#       gateway: *default_public_gateway
+#     annotations:
+#       gui-x: '800'
+#       gui-y: '0'
+
+  ceph-radosgw-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,object,storage
+    annotations:
+      gui-x: '1000'
+      gui-y: '-200'
+
+  cinder-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,block,storage
+    annotations:
+      gui-x: '1250'
+      gui-y: '350'
+
+  controller-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: nova,compute
+    annotations:
+      gui-x: '-200'
+      gui-y: '500'
+
+  glance-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,object,storage
+    annotations:
+      gui-x: '1200'
+      gui-y: '600'
+
+  horizon-hacluster:
+    charm: cs:hacluster
+    series: *dashboard_series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: dashboard,web
+    annotations:
+      gui-x: '250'
+      gui-y: '50'
+
+  keystone-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: keystone
+    annotations:
+      gui-x: '350'
+      gui-y: '350'
+
+  neutron-api-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: neutron
+    annotations:
+      gui-x: '550'
+      gui-y: '1350'
+
+  percona-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: database
+    annotations:
+      gui-x: '1300'
+      gui-y: '800'
+
+# Nagios
+  nagios-server:
+    charm: cs:nagios
+    series: *series
+    num_units: 1
+    bindings:
+      "": *network_space_default
+      website: *network_space_pub
+      #      website: *network_space_os_mgmt
+    options:
+      admin_email: *nagios_admin_email
+      password: *nagiosadmin_pwd
+      ro-password: *nagiosro_pwd
+      monitor_self: true
+    to:
+      - 'lxd:0'
+  nrpe-controller:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cinder:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cephmon:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cephosd:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-glance:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-radosgw:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-keystone:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-dashboard:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-neutron:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-neutrongw:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-nova:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-novacompute:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-percona:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-rabbitmq:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-memcache:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+
+  rabbitmq-server:
+    charm: cs:rabbitmq-server
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+    options:
+      # access-network: *access_network
+      nagios_context: *nagios_context
+      min-cluster-size: 3
+      cluster-partition-handling: pause_minority
+      management_plugin: True
+      nagios_servicegroups: messaging
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '400'
+      gui-y: '800'
+
+  percona-cluster:
+    charm: cs:percona-cluster
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      # access-network: *access_network
+      # cluster-network: *access_network
+      nagios_context: *nagios_context
+      root-password: *root_password
+      sst-password: *sst_password
+      vip: *vip_percona
+      min-cluster-size: 3
+      innodb-buffer-pool-size: 10G
+      max-connections: 30000
+      nagios_servicegroups: database
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '800'
+
+  keystone:
+    charm: cs:keystone
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      admin-password: *admin_password
+      admin-token: *admin_token
+      nagios_context: *nagios_context
+      os-public-hostname: *os_public_hostname
+      region: *region
+      vip: *vip_keystone
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      admin-user: admin
+      nagios_servicegroups: keystone
+      worker-multiplier: *worker_multiplier
+      preferred-api-version: *preferred_api_version
+      region: *region
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '500'
+
+  openstack-dashboard:
+    charm: cs:openstack-dashboard
+    series: *dashboard_series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      website: *network_space_pub
+      dashboard-plugin: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      secret: *secret_dashboard
+      vip: *vip_dashboard
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      endpoint-type: internalURL,publicURL
+      nagios_servicegroups: dashboard,web
+      use-syslog: True
+      webroot: '/'
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '0'
+
+  nova-compute:
+    charm: cs:nova-compute
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      compute-peer: *network_space_os_mgmt
+      neutron-plugin: *network_space_os_mgmt
+    options:
+      # os-internal-network: *os_internal_network
+      nagios_context: *nagios_context
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      config-flags: *nova_compute_config_flags
+      cpu-mode: *cpu-mode
+      #enable-live-migration: False
+      enable-resize: False
+      migration-auth-type: ssh
+      libvirt-image-backend: *libvirt_image_backend
+      nagios_servicegroups: nova,compute
+      use-internal-endpoints: True
+      enable-resize: True
+      enable-live-migration: True
+    to:
+      - '0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '0'
+      gui-y: '200'
+
+  nova-cloud-controller:
+    charm: cs:nova-cloud-controller
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+#      cell: ###
+      memcache: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      region: *region
+      console-proxy-ip: *console_proxy_ip
+      nagios_context: *nagios_context
+      vip: *vip_nova_cloud_controller
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      console-access-protocol: 'vnc'
+      nagios_servicegroups: nova,compute
+      network-manager: Neutron
+      cpu-allocation-ratio: *cpu_allocation_ratio
+      ram-allocation-ratio: *ram_allocation_ratio
+      service-guard: True
+      single-nova-consoleauth: False
+      use-internal-endpoints: True
+      worker-multiplier: *worker_multiplier
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '0'
+      gui-y: '450'
+
+  neutron-api:
+    charm: cs:neutron-api
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      region: *region
+      nagios_context: *nagios_context
+      neutron-external-network: *neutron_external_network
+      vip: *vip_neutron
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      enable-ml2-port-security: True
+      flat-network-providers: *flat_network_providers
+      nagios_servicegroups: neutron
+      neutron-security-groups: True
+      network-device-mtu: *network_device_mtu
+      use-internal-endpoints: True
+      use-syslog: True
+      worker-multiplier: *worker_multiplier
+      enable-dvr: *dvr_mode
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '1100'
+
+  neutron-openvswitch:
+    charm: cs:neutron-openvswitch
+    series: *series
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      data: *network_space_os_data
+      neutron-plugin: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+    options:
+      # os-data-network: *os_data_network
+      debug: 'False'
+      verbose: 'False'
+      disable-security-groups: False
+      flat-network-providers: *flat_network_providers
+      use-syslog: True
+      enable-local-dhcp-and-metadata: *enable_local_dhcp_and_metadata
+    annotations:
+      gui-x: '1100'
+      gui-y: '1100'
+
+  cinder:
+    charm: cs:cinder
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      region: *region
+      vip: *vip_cinder
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      block-device: None
+      glance-api-version: 2
+      nagios_servicegroups: ceph,block,storage
+      region: *region
+      use-syslog: True
+      use-internal-endpoints: True
+      worker-multiplier: *worker_multiplier
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '200'
+
+  cinder-ceph:
+    charm: cs:cinder-ceph
+    series: *series
+    num_units: 0
+    bindings:
+      "": *network_space_default
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_cinder_replication_count
+      restrict-ceph-pools: True
+    annotations:
+      gui-x: '1330'
+      gui-y: '230'
+
+  ceph-mon:
+    charm: cs:ceph-mon
+    series: *series
+    num_units: 3 
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      client: *network_space_os_mgmt
+      radosgw: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      mon: *network_space_os_mgmt
+      osd: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      nagios_servicegroups: ceph,storage
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1200'
+      gui-y: '400'
+
+  ceph-osd:
+    charm: cs:ceph-osd
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      cluster: *network_space_os_data
+      mon: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      osd-devices: *ceph_osd_partition
+      nagios_servicegroups: ceph,storage
+      osd-devices: *ceph_osd_partition
+      # osd-reformat: 'True'
+      osd-format: 'xfs'
+      use-syslog: True
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '1400'
+      gui-y: '400'
+
+  ceph-radosgw:
+    charm: cs:ceph-radosgw
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_radosgw_replication_count
+      config-flags: *ceph_radosgw_config_flags
+      nagios_context: *nagios_context
+      pool-prefix: *ceph_radosgw_pool_prefix
+      region: *region
+      rgw-buckets-pool-weight:  *ceph_radosgw_rgw_buckets_pool_weight
+      rgw-lightweight-pool-pg-num: *ceph_radosgw_lightweight_pool_pg_num
+      vip: *vip_ceph_radosgw
+      nagios_servicegroups: ceph,object,storage
+      region: *region
+      restrict-ceph-pools: True
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      "gui-x": "1000"
+      "gui-y": "0"
+
+  glance:
+    charm: cs:glance
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_glance_replication_count
+      region: *region
+      nagios_context: *nagios_context
+      vip: *vip_glance
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      nagios_servicegroups: ceph,object,storage
+      use-internal-endpoints: True
+      use-syslog: True
+      restrict-ceph-pools: True
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '400'
+
+  memcached:
+    charm: cs:memcached
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      cache: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      allow-ufw-ip6-softfail: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '100'
+      gui-y: '800'
+
+  neutron-gateway:
+    charm: cs:neutron-gateway
+    series: *series
+    num_units: 1
+    bindings:
+      "": *network_space_default
+      data: *network_space_os_data
+      amqp: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      bridge-mappings: *bridge_mappings
+      nagios_context: *nagios_context
+      # os-data-network: *os_data_network
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      data-port: *data_port
+      # Lower instance MTU to fit GRE tunnel (without changing switch config etc)
+      instance-mtu: *instance_mtu
+      nagios_servicegroups: neutron
+    to:
+      - '1'
+    annotations:
+      gui-x: '0'
+      gui-y: '1100'
+
+#  ceilometer:
+#    charm: cs:ceilometer
+#    series: *series
+#    num_units: 1
+#    bindings:
+#      public: *network_space_pub
+#      admin: *network_space_os_mgmt
+#      internal: *network_space_os_mgmt
+#    options:
+#      region: *region
+#      action-managed-upgrade: True
+#      debug: False
+#      verbose: False
+#      event-time-to-live: *celiometer_event_time_to_live
+#      metering-time-to-live: *celiometer_metering_time_to_live
+#      region: *region
+#    to:
+#      - 'lxd:1'
+#    annotations:
+#      gui-x: '450'
+#      gui-y: '-250'
+
+#  ceilometer-agent:
+#    charm: cs:ceilometer-agent
+#    series: xenial
+#    options:
+#      action-managed-upgrade: True
+#    annotations:
+#      gui-x: '200'
+#      gui-y: '-150'
+
+# ------------------------------------------------------------------------------
+relations:
+  - [ ntp, controller ]
+#  - [ ntp, compute-host ]
+#  - [ ntp, network-host ]
+  - [ percona-cluster, percona-hacluster ]
+  - [ cinder, cinder-hacluster ]
+  - [ glance, glance-hacluster ]
+  - [ keystone, keystone-hacluster ]
+  - [ neutron-api, neutron-api-hacluster ]
+  - [ nova-cloud-controller, controller-hacluster ]
+  - [ openstack-dashboard, horizon-hacluster ]
+  - [ keystone, percona-cluster ]
+  - [ neutron-api, percona-cluster ]
+  - [ neutron-api, rabbitmq-server ]
+  - [ neutron-api, nova-cloud-controller ]
+  - [ neutron-api, keystone ]
+  - [ neutron-openvswitch, rabbitmq-server ]
+  - [ neutron-openvswitch, neutron-api ]
+  - [ neutron-openvswitch, nova-compute ]
+  - [ nova-cloud-controller, memcached ]
+  - [ "nova-cloud-controller:shared-db", "percona-cluster:shared-db" ]
+  - [ "nova-cloud-controller:amqp", "rabbitmq-server:amqp" ]
+  - [ nova-cloud-controller, glance ]
+  - [ nova-cloud-controller, keystone ]
+  - [ nova-compute, nova-cloud-controller ]
+  - [ "nova-compute:amqp", "rabbitmq-server:amqp" ]
+  - [ nova-compute, glance ]
+  - [ glance, percona-cluster ]
+  - [ glance, keystone ]
+  - [ "glance:image-service", "cinder:image-service" ]
+  - [ "glance:amqp", "rabbitmq-server:amqp" ]
+  - [ cinder, percona-cluster ]
+  - [ cinder, rabbitmq-server ]
+  - [ cinder, nova-cloud-controller ]
+  - [ cinder, keystone ]
+  - [ "openstack-dashboard:identity-service", "keystone:identity-service" ]
+  - [ "neutron-gateway:amqp", "rabbitmq-server:amqp" ]
+  - [ "neutron-gateway:neutron-plugin-api", "neutron-api:neutron-plugin-api" ]
+  - [ "nova-cloud-controller:quantum-network-service", "neutron-gateway:quantum-network-service" ]
+  - [ "cinder-ceph:ceph-access", "nova-compute:ceph-access" ]
+  - [ "ceph-mon:client", "nova-compute:ceph" ]
+  - [ "ceph-mon:client", "cinder-ceph:ceph" ]
+  - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ]
+  - [ "ceph-mon:client", "glance:ceph" ]
+  - [ "ceph-osd:mon", "ceph-mon:osd" ]
+# ceph-radosgw
+  - [ "ceph-radosgw:ha", "ceph-radosgw-hacluster:ha" ]
+  - [ "keystone:identity-service", "ceph-radosgw:identity-service" ]
+  - [ "ceph-radosgw:mon", "ceph-mon:radosgw" ]
+#  - [ "ceph-radosgw:juju-info", "defaultgw:juju-info" ]
+# default-gw
+#  - [ "keystone:juju-info", "defaultgw:juju-info" ]
+#  - [ "openstack-dashboard:juju-info", "defaultgw:juju-info" ]
+#  - [ "nova-cloud-controller:juju-info", "defaultgw:juju-info" ]
+#  - [ "glance:juju-info", "defaultgw:juju-info" ]
+#  - [ "cinder:juju-info", "defaultgw:juju-info" ]
+#  - [ "neutron-api:juju-info", "defaultgw:juju-info" ]
+# nagios server
+#  - [ "nagios-server:juju-info", "defaultgw:juju-info" ]
+# nagios controllers (physical)
+  - [ controller, nrpe-controller]
+  - [ "nrpe-controller:monitors", "nagios-server:monitors" ]
+# nagios ceph
+  - [ ceph-mon, nrpe-cephmon]
+  - [ "nrpe-cephmon:monitors", "nagios-server:monitors" ]
+  - [ ceph-osd, nrpe-cephosd]
+  - [ "nrpe-cephosd:monitors", "nagios-server:monitors" ]
+  - [ cinder, nrpe-cinder]
+  - [ cinder-hacluster, nrpe-cinder]
+  - [ "nrpe-cinder:monitors", "nagios-server:monitors" ]
+  - [ glance, nrpe-glance]
+  - [ glance-hacluster, nrpe-glance]
+  - [ "nrpe-glance:monitors", "nagios-server:monitors" ]
+  - [ ceph-radosgw, nrpe-radosgw]
+  - [ ceph-radosgw-hacluster, nrpe-radosgw]
+  - [ "nrpe-radosgw:monitors", "nagios-server:monitors" ]
+# nagios keystone
+  - [ keystone, nrpe-keystone]
+  - [ keystone-hacluster, nrpe-keystone]
+  - [ "nrpe-keystone:monitors", "nagios-server:monitors" ]
+# nagios horizon
+  - [ openstack-dashboard, nrpe-dashboard]
+  - [ horizon-hacluster, nrpe-dashboard] 
+  - [ "nrpe-dashboard:monitors", "nagios-server:monitors" ] 
+# nagios neutron
+  - [ neutron-api, nrpe-neutron]
+  - [ neutron-api-hacluster, nrpe-neutron]
+  - [ "nrpe-neutron:monitors", "nagios-server:monitors" ]
+#  - [ network-host, nrpe-neutrongw]
+  - [ neutron-gateway, nrpe-neutrongw]
+  - [ "nrpe-neutrongw:monitors", "nagios-server:monitors" ]
+# nagios nova
+  - [ nova-cloud-controller, nrpe-nova]
+  - [ controller-hacluster, nrpe-nova]
+  - [ "nrpe-nova:monitors", "nagios-server:monitors" ]
+#  - [ compute-host, nrpe-novacompute]
+  - [ nova-compute, nrpe-novacompute]
+  - [ "nrpe-novacompute:monitors", "nagios-server:monitors" ]
+# nagios percona
+  - [ percona-cluster, nrpe-percona]
+  - [ percona-hacluster, nrpe-percona]
+  - [ "nrpe-percona:monitors", "nagios-server:monitors" ]
+# nagios memcache
+  - [ "memcached:nrpe-external-master", "nrpe-memcache:nrpe-external-master" ]
+  - [ "nrpe-memcache:monitors", "nagios-server:monitors" ]
+# nagios rabbitmq
+  - [rabbitmq-server, nrpe-rabbitmq]
+  - [ "nrpe-rabbitmq:monitors", "nagios-server:monitors" ]
+# ceilometer
+#  - [ "ceilometer:amqp", "rabbitmq-server:amqp" ]
+#  - [ "ceilometer:identity-service", "keystone:identity-service" ]
+#  - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
+#  - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
+#  - [ "ceilometer:ceilometer-service", "ceilometer-agent:ceilometer-service" ]
+#  - [ "ceilometer:juju-info", "defaultgw:juju-info" ]
diff --git a/bundles/openstack/bundle.yaml b/bundles/openstack/bundle.yaml
index 25ff8b76..0cae7b15 100644
--- a/bundles/openstack/bundle.yaml
+++ b/bundles/openstack/bundle.yaml
@@ -1,11 +1,12 @@
 ## Sample bundle for the deployment of OpenStack in a region of the
 ## GARR Federated Cloud Platform.
+## This version deploys a local ceph.
 
-defaults:
-
+parameters:
   # sources
-  openstack-origin: &openstack_origin   cloud:xenial-ocata
-  series: &series  xenial
+  openstack-origin: &openstack_origin   distro
+  series: &series  bionic
+  dashboard-series: &dashboard_series bionic
 
   # Ceph configs
   ceph-radosgw-lightweight-pool-pg-num:  &ceph_radosgw_lightweight_pool_pg_num  8
@@ -17,8 +18,9 @@ defaults:
   neutron-external-network: &neutron_external_network ext_net
   network-device-mtu: &network_device_mtu  1500
   instance-mtu: &instance_mtu	1400
-  enable-dvr: &dvr-mode		True
+  enable-dvr: &dvr_mode		False
   vlan-ranges: &vlan_ranges	physnet-ovs:801:801
+  enable-local-dhcp-and-metadata: &enable_local_dhcp_and_metadata   True
 
   # keystone/dashboard
   preferred-api-version: &preferred_api_version     3
@@ -37,19 +39,86 @@ defaults:
   event-time-to-live: &celiometer_event_time_to_live -1
   metering-time-to-live: &celiometer_metering_time_to_live -1
 
+## Specific configuration file for a cloud region.
+## Edit values within <...> to represent your region.
+  # Region settings
+  region: &region                               unipd-1
+  # access-network: &access_network               <network_used_by_rabbit_and_percona>
+  # os-internal-network: &os_internal_network     <OpenStack_internal_network>
+  source_ntp: &source_ntp             ntp1.inrim.it
+  # os-data-network: &os_data_network   <OS_data_network>
+
+  # Nagios
+  nagios_context: &nagios_context               nagios
+  nagios_admin_email: &nagios_admin_email       vittorio.gallo@unipd.it	
+  nagios_admin_pwd: &nagiosadmin_pwd            '!garr123'
+  nagios_readonly_pwd: &nagiosro_pwd            '!garr123'
+
+  # Ceph configs
+  ceph-osd-partition: &ceph_osd_partition  "/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv" 
+  ceph-cinder-replication-count: &ceph_cinder_replication_count  2
+  ceph-glance-replication-count: &ceph_glance_replication_count  2
+  ceph-radosgw-replication-count: &ceph_radosgw_replication_count  2
+  ceph-radosgw-pool-prefix: &ceph_radosgw_pool_prefix    rgw
+
+  # vips (number of VIPs should match number of different bindings)
+
+  vip-ceilometer: &vip_ceilometer       192.168.20.61 147.162.164.21
+  vip-ceph-radosgw: &vip_ceph_radosgw   192.168.20.62 147.162.164.22
+  vip-cinder: &vip_cinder               192.168.20.63 147.162.164.23
+  vip-glance: &vip_glance               192.168.20.64 147.162.164.24
+  vip-heat: &vip_heat                   192.168.20.65 147.162.164.25
+  vip-dashboard: &vip_dashboard                       147.162.164.26
+  vip-keystone: &vip_keystone           192.168.20.66 147.162.164.27
+  vip-percona: &vip_percona             192.168.20.67
+  vip-neutron: &vip_neutron             192.168.20.68 147.162.164.28
+  vip-nova: &vip_nova_cloud_controller  192.168.20.69 147.162.164.29
+  console-proxy-ip: &console_proxy_ip                 147.162.164.29
+  # This is the gateway for public VIPs
+  default_public_gateway: &default_public_gateway     147.162.164.1
+
+  # hostnames
+  os-public-hostname: &os_public_hostname      keystone.ict.unipd.it
+  os-internal-hostname: &os_internal_hostname  keystone.ict.unipd.it
+  # this one could be identical to internal-hostname
+  os-admin-hostname: &os_admin_hostname        keystone.ict.unipd.it
+
+  # network setup: should be the same cross-sites
+  ### Use network-space-* in bindings unless os-admin-* is usable instead
+  network-space-default: &network_space_default	openstack-mgt
+   #network-space-default: &network_space_default	pubblica # temporary change
+  network-space-pub: &network_space_pub		pubblica
+# In the following we assume space-os-data is used both for compute-network
+# communication, and for ceph-OSD communication: can be split for better separation
+  network-space-os-data: &network_space_os_data	openstack-mgt
+  network-space-os-mgmt: &network_space_os_mgmt openstack-mgt
+
+  # Change as appropriate
+  bridge-mappings: &bridge_mappings             ext_net:br-ex
+  data-port: &data_port                               "br-ex:enp94s0f1.20"
+
+  # secrets and passwords:
+  root-password: &root_password  '!garr123'
+  sst-password:  &sst_password   '!garr123'
+  admin-password: &admin_password  '!garr123'
+  secret_dashboard: &secret_dashboard   garr123
+  # encryption-key: &encryption_key       <encryption_key>
+#
+#  Set your corosync_keys by running (on your preferred machine):
+#  corosync-keygen ; cat /etc/corosync/authkey | base64 -w 0 ; echo " "
+  # corosync_key: &corosync_key   <corosync_key>
+
+  # keystone/dashboard
+  # CLA: ho usato pwgen 62 1
+  admin-token: &admin_token  Eig5JeiX5aiphohgiech6aozegh7ahfe5volei5zie2riemienai4ye3eiv3wi
+
 # ------------------------------------------------------------------------------
 machines:
   '0':
-    constraints: arch=amd64 tags=neutron-gw
+    constraints: arch=amd64 tags=hyperconverged_host
     series: *series
   '1':
-    constraints: arch=amd64 tags=controller
-    series: *series
-  '2':
-    constraints: arch=amd64 tags=controller
-    series: *series
-  '3':
-    constraints: arch=amd64 tags=compute
+    constraints: arch=amd64 tags=hyperconverged_host
     series: *series
 
 # ------------------------------------------------------------------------------
@@ -59,32 +128,35 @@ services:
     charm: cs:ubuntu
     series: *series
     num_units: 2
+    bindings:
+      "": *network_space_default
     to:
+      - '0'
       - '1'
-      - '2'
     annotations:
       gui-x: '2000'
       gui-y: '0'
 
-  compute-host:
-    charm: cs:ubuntu
-    series: *series
-    num_units: 1
-    to:
-      - '3'
-    annotations:
-      gui-x: '2000'
-      gui-y: '500'
-
-  network-host:
-    charm: cs:ubuntu
-    series: *series
-    num_units: 1
-    to:
-      - '0'
-    annotations:
-      gui-x: '2000'
-      gui-y: '800'
+#  compute-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 2
+#    to:
+#      - '3'
+#      - '4'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '500'
+
+#  network-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 1
+#    to:
+#      - '0'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '800'
 
   ntp:
     charm: cs:ntp
@@ -95,16 +167,22 @@ services:
       gui-x: '2200'
       gui-y: '500'
 
-  defaultgw:
-    charm: cs:~csd-garr/defaultgw
-    annotations:
-      gui-x: '800'
-      gui-y: '0'
+#   defaultgw:
+#     charm: cs:~csd-garr/defaultgw
+#     options:
+#       gateway: *default_public_gateway
+#     annotations:
+#       gui-x: '800'
+#       gui-y: '0'
 
   ceph-radosgw-hacluster:
     charm: cs:hacluster
     series: *series
+    bindings:
+      "": *network_space_default
     options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: ceph,object,storage
     annotations:
@@ -114,7 +192,11 @@ services:
   cinder-hacluster:
     charm: cs:hacluster
     series: *series
+    bindings:
+      "": *network_space_default
     options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: ceph,block,storage
     annotations:
@@ -124,7 +206,11 @@ services:
   controller-hacluster:
     charm: cs:hacluster
     series: *series
+    bindings:
+      "": *network_space_default
     options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: nova,compute
     annotations:
@@ -134,7 +220,11 @@ services:
   glance-hacluster:
     charm: cs:hacluster
     series: *series
+    bindings:
+      "": *network_space_default
     options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: ceph,object,storage
     annotations:
@@ -143,8 +233,12 @@ services:
 
   horizon-hacluster:
     charm: cs:hacluster
-    series: *series
+    series: *dashboard_series
+    bindings:
+      "": *network_space_default
     options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: dashboard,web
     annotations:
@@ -154,7 +248,11 @@ services:
   keystone-hacluster:
     charm: cs:hacluster
     series: *series
+    bindings:
+      "": *network_space_default
     options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: keystone
     annotations:
@@ -164,7 +262,11 @@ services:
   neutron-api-hacluster:
     charm: cs:hacluster
     series: *series
+    bindings:
+      "": *network_space_default
     options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: neutron
     annotations:
@@ -174,7 +276,11 @@ services:
   percona-hacluster:
     charm: cs:hacluster
     series: *series
+    bindings:
+      "": *network_space_default
     options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
       corosync_transport: 'unicast'
       nagios_servicegroups: database
     annotations:
@@ -186,10 +292,17 @@ services:
     charm: cs:nagios
     series: *series
     num_units: 1
-    options:
+    bindings:
+      "": *network_space_default
+      website: *network_space_pub
+      #      website: *network_space_os_mgmt
+    options:
+      admin_email: *nagios_admin_email
+      password: *nagiosadmin_pwd
+      ro-password: *nagiosro_pwd
       monitor_self: true
     to:
-      - 'lxd:2'
+      - 'lxd:0'
   nrpe-controller:
     charm: cs:nrpe
     series: *series
@@ -200,6 +313,16 @@ services:
     series: *series
     options:
       swap: '-w 40% -c 25% -n ok'
+  nrpe-cephmon:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cephosd:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
   nrpe-glance:
     charm: cs:nrpe
     series: *series
@@ -260,14 +383,20 @@ services:
     charm: cs:rabbitmq-server
     series: *series
     num_units: 3
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
     options:
-      min-cluster-size: 2
+      # access-network: *access_network
+      nagios_context: *nagios_context
+      min-cluster-size: 3
       cluster-partition-handling: pause_minority
       management_plugin: True
       nagios_servicegroups: messaging
       use-syslog: True
     to:
-      - 'lxd:2'
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
     annotations:
       gui-x: '400'
@@ -277,15 +406,25 @@ services:
     charm: cs:percona-cluster
     series: *series
     num_units: 3
-    options:
-      min-cluster-size: 2
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      # access-network: *access_network
+      # cluster-network: *access_network
+      nagios_context: *nagios_context
+      root-password: *root_password
+      sst-password: *sst_password
+      vip: *vip_percona
+      min-cluster-size: 3
       innodb-buffer-pool-size: 10G
-      lp1366997-workaround: True
       max-connections: 30000
       nagios_servicegroups: database
     to:
+      - 'lxd:0'
+      - 'lxd:0'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       gui-x: '1000'
       gui-y: '800'
@@ -294,7 +433,20 @@ services:
     charm: cs:keystone
     series: *series
     num_units: 3
-    options:
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      admin-password: *admin_password
+      admin-token: *admin_token
+      nagios_context: *nagios_context
+      os-public-hostname: *os_public_hostname
+      region: *region
+      vip: *vip_keystone
       openstack-origin: *openstack_origin
       action-managed-upgrade: True
       debug: 'False'
@@ -306,7 +458,8 @@ services:
       region: *region
       use-syslog: True
     to:
-      - 'lxd:2'
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
     annotations:
       gui-x: '500'
@@ -314,9 +467,19 @@ services:
 
   openstack-dashboard:
     charm: cs:openstack-dashboard
-    series: *series
+    series: *dashboard_series
     num_units: 3
-    options:
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      website: *network_space_pub
+      dashboard-plugin: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      secret: *secret_dashboard
+      vip: *vip_dashboard
       openstack-origin: *openstack_origin
       action-managed-upgrade: True
       debug: 'False'
@@ -325,8 +488,9 @@ services:
       use-syslog: True
       webroot: '/'
     to:
+      - 'lxd:0'
+      - 'lxd:0'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       gui-x: '500'
       gui-y: '0'
@@ -334,24 +498,35 @@ services:
   nova-compute:
     charm: cs:nova-compute
     series: *series
-    num_units: 1
-    options:
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      compute-peer: *network_space_os_mgmt
+      neutron-plugin: *network_space_os_mgmt
+    options:
+      # os-internal-network: *os_internal_network
+      nagios_context: *nagios_context
       openstack-origin: *openstack_origin
       action-managed-upgrade: True
       debug: 'False'
       verbose: 'False'
       config-flags: *nova_compute_config_flags
       cpu-mode: *cpu-mode
-      enable-live-migration: False
+      #enable-live-migration: False
       enable-resize: False
-      migration-auth-type: none
+      migration-auth-type: ssh
       libvirt-image-backend: *libvirt_image_backend
       nagios_servicegroups: nova,compute
       use-internal-endpoints: True
       enable-resize: True
       enable-live-migration: True
     to:
-      - '3'
+      - 'lxd:0'
+      - 'lxd:1'
     annotations:
       gui-x: '0'
       gui-y: '200'
@@ -360,7 +535,27 @@ services:
     charm: cs:nova-cloud-controller
     series: *series
     num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+#      cell: ###
+      memcache: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
     options:
+      region: *region
+      console-proxy-ip: *console_proxy_ip
+      nagios_context: *nagios_context
+      vip: *vip_nova_cloud_controller
       openstack-origin: *openstack_origin
       action-managed-upgrade: True
       debug: 'False'
@@ -376,8 +571,9 @@ services:
       use-internal-endpoints: True
       worker-multiplier: *worker_multiplier
     to:
+      - 'lxd:0'
+      - 'lxd:0'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       gui-x: '0'
       gui-y: '450'
@@ -386,7 +582,22 @@ services:
     charm: cs:neutron-api
     series: *series
     num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
     options:
+      region: *region
+      nagios_context: *nagios_context
+      neutron-external-network: *neutron_external_network
+      vip: *vip_neutron
       openstack-origin: *openstack_origin
       action-managed-upgrade: True
       debug: 'False'
@@ -400,8 +611,10 @@ services:
       use-internal-endpoints: True
       use-syslog: True
       worker-multiplier: *worker_multiplier
+      enable-dvr: *dvr_mode
     to:
-      - 'lxd:2'
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
     annotations:
       gui-x: '500'
@@ -410,12 +623,20 @@ services:
   neutron-openvswitch:
     charm: cs:neutron-openvswitch
     series: *series
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      data: *network_space_os_data
+      neutron-plugin: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
     options:
+      # os-data-network: *os_data_network
       debug: 'False'
       verbose: 'False'
       disable-security-groups: False
       flat-network-providers: *flat_network_providers
       use-syslog: True
+      enable-local-dhcp-and-metadata: *enable_local_dhcp_and_metadata
     annotations:
       gui-x: '1100'
       gui-y: '1100'
@@ -424,7 +645,23 @@ services:
     charm: cs:cinder
     series: *series
     num_units: 3
-    options:
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      region: *region
+      vip: *vip_cinder
       openstack-origin: *openstack_origin
       action-managed-upgrade: True
       block-device: None
@@ -435,8 +672,9 @@ services:
       use-internal-endpoints: True
       worker-multiplier: *worker_multiplier
     to:
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       gui-x: '1000'
       gui-y: '200'
@@ -445,34 +683,90 @@ services:
     charm: cs:cinder-ceph
     series: *series
     num_units: 0
+    bindings:
+      "": *network_space_default
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
     options:
+      ceph-osd-replication-count: *ceph_cinder_replication_count
       restrict-ceph-pools: True
     annotations:
       gui-x: '1330'
       gui-y: '230'
 
-  ceph-proxy:
-    charm: cs:ceph-proxy
-    series: *series
-    num_units: 1
+  ceph-mon:
+    charm: cs:ceph-mon
+    series: *series
+    num_units: 3 
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      client: *network_space_os_mgmt
+      radosgw: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      mon: *network_space_os_mgmt
+      osd: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      nagios_servicegroups: ceph,storage
     to:
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
     annotations:
-      gui-x: '1300'
-      gui-y: '0'
+      gui-x: '1200'
+      gui-y: '400'
+
+  ceph-osd:
+    charm: cs:ceph-osd
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      cluster: *network_space_os_data
+      mon: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      osd-devices: *ceph_osd_partition
+      nagios_servicegroups: ceph,storage
+      osd-devices: *ceph_osd_partition
+      # osd-reformat: 'True'
+      osd-format: 'xfs'
+      use-syslog: True
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '1400'
+      gui-y: '400'
 
   ceph-radosgw:
     charm: cs:ceph-radosgw
     series: *series
     num_units: 3
-    options:
-      nagios_servicegroups: ceph,object,storage
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_radosgw_replication_count
+      config-flags: *ceph_radosgw_config_flags
+      nagios_context: *nagios_context
+      pool-prefix: *ceph_radosgw_pool_prefix
       region: *region
+      rgw-buckets-pool-weight:  *ceph_radosgw_rgw_buckets_pool_weight
+      rgw-lightweight-pool-pg-num: *ceph_radosgw_lightweight_pool_pg_num
+      vip: *vip_ceph_radosgw
+      nagios_servicegroups: ceph,object,storage
       restrict-ceph-pools: True
       use-syslog: True
     to:
+      - 'lxd:0'
+      - 'lxd:0'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       "gui-x": "1000"
       "gui-y": "0"
@@ -481,7 +775,24 @@ services:
     charm: cs:glance
     series: *series
     num_units: 3
-    options:
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_glance_replication_count
+      region: *region
+      nagios_context: *nagios_context
+      vip: *vip_glance
       openstack-origin: *openstack_origin
       action-managed-upgrade: True
       debug: 'False'
@@ -492,7 +803,8 @@ services:
       use-syslog: True
       restrict-ceph-pools: True
     to:
-      - 'lxd:2'
+      - 'lxd:0'
+      - 'lxd:0'
       - 'lxd:1'
     annotations:
       gui-x: '1000'
@@ -502,11 +814,17 @@ services:
     charm: cs:memcached
     series: *series
     num_units: 3
+    bindings:
+      "": *network_space_default
+      cache: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
     options:
+      nagios_context: *nagios_context
       allow-ufw-ip6-softfail: True
     to:
+      - 'lxd:0'
+      - 'lxd:1'
       - 'lxd:1'
-      - 'lxd:2'
     annotations:
       gui-x: '100'
       gui-y: '800'
@@ -514,8 +832,18 @@ services:
   neutron-gateway:
     charm: cs:neutron-gateway
     series: *series
-    num_units: 1
-    options:
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      data: *network_space_os_data
+      amqp: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      bridge-mappings: *bridge_mappings
+      nagios_context: *nagios_context
+      # os-data-network: *os_data_network
       openstack-origin: *openstack_origin
       action-managed-upgrade: True
       data-port: *data_port
@@ -524,41 +852,47 @@ services:
       nagios_servicegroups: neutron
     to:
       - '0'
+      - '1'
     annotations:
       gui-x: '0'
       gui-y: '1100'
 
-  ceilometer:
-    charm: cs:ceilometer
-    series: xenial
-    num_units: 1
-    options:
-      action-managed-upgrade: True
-      debug: False
-      verbose: False
-      event-time-to-live: *celiometer_event_time_to_live
-      metering-time-to-live: *celiometer_metering_time_to_live
-      region: *region
-    to:
-      - 'lxd:1'
-    annotations:
-      gui-x: '450'
-      gui-y: '-250'
-
-  ceilometer-agent:
-    charm: cs:ceilometer-agent
-    series: xenial
-    options:
-      action-managed-upgrade: True
-    annotations:
-      gui-x: '200'
-      gui-y: '-150'
+#  ceilometer:
+#    charm: cs:ceilometer
+#    series: *series
+#    num_units: 1
+#    bindings:
+#      public: *network_space_pub
+#      admin: *network_space_os_mgmt
+#      internal: *network_space_os_mgmt
+#    options:
+#      region: *region
+#      action-managed-upgrade: True
+#      debug: False
+#      verbose: False
+#      event-time-to-live: *celiometer_event_time_to_live
+#      metering-time-to-live: *celiometer_metering_time_to_live
+#      region: *region
+#    to:
+#      - 'lxd:1'
+#    annotations:
+#      gui-x: '450'
+#      gui-y: '-250'
+
+#  ceilometer-agent:
+#    charm: cs:ceilometer-agent
+#    series: xenial
+#    options:
+#      action-managed-upgrade: True
+#    annotations:
+#      gui-x: '200'
+#      gui-y: '-150'
 
 # ------------------------------------------------------------------------------
 relations:
   - [ ntp, controller ]
-  - [ ntp, compute-host ]
-  - [ ntp, network-host ]
+#  - [ ntp, compute-host ]
+#  - [ ntp, network-host ]
   - [ percona-cluster, percona-hacluster ]
   - [ cinder, cinder-hacluster ]
   - [ glance, glance-hacluster ]
@@ -575,14 +909,13 @@ relations:
   - [ neutron-openvswitch, neutron-api ]
   - [ neutron-openvswitch, nova-compute ]
   - [ nova-cloud-controller, memcached ]
-  - [ nova-cloud-controller, percona-cluster ]
-  - [ nova-cloud-controller, rabbitmq-server ]
+  - [ "nova-cloud-controller:shared-db", "percona-cluster:shared-db" ]
+  - [ "nova-cloud-controller:amqp", "rabbitmq-server:amqp" ]
   - [ nova-cloud-controller, glance ]
   - [ nova-cloud-controller, keystone ]
   - [ nova-compute, nova-cloud-controller ]
   - [ "nova-compute:amqp", "rabbitmq-server:amqp" ]
   - [ nova-compute, glance ]
-  - [ nova-compute, percona-cluster ]
   - [ glance, percona-cluster ]
   - [ glance, keystone ]
   - [ "glance:image-service", "cinder:image-service" ]
@@ -591,32 +924,38 @@ relations:
   - [ cinder, rabbitmq-server ]
   - [ cinder, nova-cloud-controller ]
   - [ cinder, keystone ]
-  - [ openstack-dashboard, keystone ]
+  - [ "openstack-dashboard:identity-service", "keystone:identity-service" ]
   - [ "neutron-gateway:amqp", "rabbitmq-server:amqp" ]
   - [ "neutron-gateway:neutron-plugin-api", "neutron-api:neutron-plugin-api" ]
   - [ "nova-cloud-controller:quantum-network-service", "neutron-gateway:quantum-network-service" ]
-  - [ "ceph-proxy:client", "nova-compute:ceph" ]
-  - [ "ceph-proxy:client", "cinder-ceph:ceph" ]
+  - [ "cinder-ceph:ceph-access", "nova-compute:ceph-access" ]
+  - [ "ceph-mon:client", "nova-compute:ceph" ]
+  - [ "ceph-mon:client", "cinder-ceph:ceph" ]
   - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ]
-  - [ "ceph-proxy:client", "glance:ceph" ]
+  - [ "ceph-mon:client", "glance:ceph" ]
+  - [ "ceph-osd:mon", "ceph-mon:osd" ]
 # ceph-radosgw
   - [ "ceph-radosgw:ha", "ceph-radosgw-hacluster:ha" ]
   - [ "keystone:identity-service", "ceph-radosgw:identity-service" ]
-  - [ "ceph-radosgw:mon", "ceph-proxy:radosgw" ]
-  - [ "ceph-radosgw:juju-info", "defaultgw:juju-info" ]
+  - [ "ceph-radosgw:mon", "ceph-mon:radosgw" ]
+#  - [ "ceph-radosgw:juju-info", "defaultgw:juju-info" ]
 # default-gw
-  - [ "keystone:juju-info", "defaultgw:juju-info" ]
-  - [ "openstack-dashboard:juju-info", "defaultgw:juju-info" ]
-  - [ "nova-cloud-controller:juju-info", "defaultgw:juju-info" ]
-  - [ "glance:juju-info", "defaultgw:juju-info" ]
-  - [ "cinder:juju-info", "defaultgw:juju-info" ]
-  - [ "neutron-api:juju-info", "defaultgw:juju-info" ]
+#  - [ "keystone:juju-info", "defaultgw:juju-info" ]
+#  - [ "openstack-dashboard:juju-info", "defaultgw:juju-info" ]
+#  - [ "nova-cloud-controller:juju-info", "defaultgw:juju-info" ]
+#  - [ "glance:juju-info", "defaultgw:juju-info" ]
+#  - [ "cinder:juju-info", "defaultgw:juju-info" ]
+#  - [ "neutron-api:juju-info", "defaultgw:juju-info" ]
 # nagios server
-  - [ "nagios-server:juju-info", "defaultgw:juju-info" ]
+#  - [ "nagios-server:juju-info", "defaultgw:juju-info" ]
 # nagios controllers (physical)
   - [ controller, nrpe-controller]
   - [ "nrpe-controller:monitors", "nagios-server:monitors" ]
 # nagios ceph
+  - [ ceph-mon, nrpe-cephmon]
+  - [ "nrpe-cephmon:monitors", "nagios-server:monitors" ]
+  - [ ceph-osd, nrpe-cephosd]
+  - [ "nrpe-cephosd:monitors", "nagios-server:monitors" ]
   - [ cinder, nrpe-cinder]
   - [ cinder-hacluster, nrpe-cinder]
   - [ "nrpe-cinder:monitors", "nagios-server:monitors" ]
@@ -632,20 +971,20 @@ relations:
   - [ "nrpe-keystone:monitors", "nagios-server:monitors" ]
 # nagios horizon
   - [ openstack-dashboard, nrpe-dashboard]
-  - [ horizon-hacluster, nrpe-dashboard]
-  - [ "nrpe-dashboard:monitors", "nagios-server:monitors" ]
+  - [ horizon-hacluster, nrpe-dashboard] 
+  - [ "nrpe-dashboard:monitors", "nagios-server:monitors" ] 
 # nagios neutron
   - [ neutron-api, nrpe-neutron]
   - [ neutron-api-hacluster, nrpe-neutron]
   - [ "nrpe-neutron:monitors", "nagios-server:monitors" ]
-  - [ network-host, nrpe-neutrongw]
+#  - [ network-host, nrpe-neutrongw]
   - [ neutron-gateway, nrpe-neutrongw]
   - [ "nrpe-neutrongw:monitors", "nagios-server:monitors" ]
 # nagios nova
   - [ nova-cloud-controller, nrpe-nova]
   - [ controller-hacluster, nrpe-nova]
   - [ "nrpe-nova:monitors", "nagios-server:monitors" ]
-  - [ compute-host, nrpe-novacompute]
+#  - [ compute-host, nrpe-novacompute]
   - [ nova-compute, nrpe-novacompute]
   - [ "nrpe-novacompute:monitors", "nagios-server:monitors" ]
 # nagios percona
@@ -659,9 +998,9 @@ relations:
   - [rabbitmq-server, nrpe-rabbitmq]
   - [ "nrpe-rabbitmq:monitors", "nagios-server:monitors" ]
 # ceilometer
-  - [ "ceilometer:amqp", "rabbitmq-server:amqp" ]
-  - [ "ceilometer:identity-service", "keystone:identity-service" ]
-  - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
-  - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
-  - [ "ceilometer:ceilometer-service", "ceilometer-agent:ceilometer-service" ]
-  - [ "ceilometer:juju-info", "defaultgw:juju-info" ]
+#  - [ "ceilometer:amqp", "rabbitmq-server:amqp" ]
+#  - [ "ceilometer:identity-service", "keystone:identity-service" ]
+#  - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
+#  - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
+#  - [ "ceilometer:ceilometer-service", "ceilometer-agent:ceilometer-service" ]
+#  - [ "ceilometer:juju-info", "defaultgw:juju-info" ]
diff --git a/bundles/openstack/bundle_nopasswd_00216760.yaml b/bundles/openstack/bundle_nopasswd_00216760.yaml
new file mode 100644
index 00000000..fd50c19c
--- /dev/null
+++ b/bundles/openstack/bundle_nopasswd_00216760.yaml
@@ -0,0 +1,989 @@
+## Sample bundle for the deployment of OpenStack in a region of the
+## GARR Federated Cloud Platform.
+## This version deploys a local ceph.
+
+parameters:
+  # sources
+  openstack-origin: &openstack_origin   distro
+  series: &series  bionic
+  dashboard-series: &dashboard_series bionic
+
+  # Ceph configs
+  ceph-radosgw-lightweight-pool-pg-num:  &ceph_radosgw_lightweight_pool_pg_num  8
+  ceph-radosgw-rgw-buckets-pool-weight:  &ceph_radosgw_rgw_buckets_pool_weight  5
+  ceph-radosgw-config-flags:  &ceph_radosgw_config_flags
+
+  # network defaults:
+  flat-network-providers: &flat_network_providers  ext_net
+  neutron-external-network: &neutron_external_network ext_net
+  network-device-mtu: &network_device_mtu  1500
+  instance-mtu: &instance_mtu	1400
+  enable-dvr: &dvr_mode		False
+  vlan-ranges: &vlan_ranges	physnet-ovs:801:801
+  enable-local-dhcp-and-metadata: &enable_local_dhcp_and_metadata   True
+
+  # keystone/dashboard
+  preferred-api-version: &preferred_api_version     3
+
+  # nova-compute
+  worker-multiplier: &worker_multiplier             '1.0'
+  cpu-allocation-ratio: &cpu_allocation_ratio       '2.0'
+  ram-allocation-ratio: &ram_allocation_ratio       '1.5'
+  n-c-config-flags: &nova_compute_config_flags    "block_device_allocate_retries=600,block_device_allocate_retries_interval=5"
+
+  hugepages: &hugepages    '5%'
+  libvirt-image-backend: &libvirt_image_backend
+  cpu-mode: &cpu-mode
+
+# Ceilometer
+  event-time-to-live: &celiometer_event_time_to_live -1
+  metering-time-to-live: &celiometer_metering_time_to_live -1
+
+## Specific configuration file for a cloud region.
+## Edit values within <...> to represent your region.
+  # Region settings
+  region: &region                               unipd-1
+  # access-network: &access_network               <network_used_by_rabbit_and_percona>
+  # os-internal-network: &os_internal_network     <OpenStack_internal_network>
+  source_ntp: &source_ntp             ntp1.inrim.it
+  # os-data-network: &os_data_network   <OS_data_network>
+
+  # Nagios
+  nagios_context: &nagios_context               nagios
+  nagios_admin_email: &nagios_admin_email       HIDDEN	
+  nagios_admin_pwd: &nagiosadmin_pwd            HIDDEN
+  nagios_readonly_pwd: &nagiosro_pwd            HIDDEN
+
+  # Ceph configs
+  ceph-osd-partition: &ceph_osd_partition  "/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv" 
+  ceph-cinder-replication-count: &ceph_cinder_replication_count  2
+  ceph-glance-replication-count: &ceph_glance_replication_count  2
+  ceph-radosgw-replication-count: &ceph_radosgw_replication_count  2
+  ceph-radosgw-pool-prefix: &ceph_radosgw_pool_prefix    rgw
+
+  # vips (number of VIPs should match number of different bindings)
+
+  vip-ceilometer: &vip_ceilometer       192.168.20.61 147.162.164.21
+  vip-ceph-radosgw: &vip_ceph_radosgw   192.168.20.62 147.162.164.22
+  vip-cinder: &vip_cinder               192.168.20.63 147.162.164.23
+  vip-glance: &vip_glance               192.168.20.64 147.162.164.24
+  vip-heat: &vip_heat                   192.168.20.65 147.162.164.25
+  vip-dashboard: &vip_dashboard                       147.162.164.26
+  vip-keystone: &vip_keystone           192.168.20.66 147.162.164.27
+  vip-percona: &vip_percona             192.168.20.67
+  vip-neutron: &vip_neutron             192.168.20.68 147.162.164.28
+  vip-nova: &vip_nova_cloud_controller  192.168.20.69 147.162.164.29
+  console-proxy-ip: &console_proxy_ip                 147.162.164.29
+  # This is the gateway for public VIPs
+  default_public_gateway: &default_public_gateway     147.162.164.1
+
+  # hostnames
+  os-public-hostname: &os_public_hostname      KEYSTONE_HOSTNAME
+  os-internal-hostname: &os_internal_hostname  KEYSTONE_HOSTNAME
+  # this one could be identical to internal-hostname
+  os-admin-hostname: &os_admin_hostname        KEYSTONE_HOSTNAME
+
+  # network setup: should be the same cross-sites
+  ### Use network-space-* in bindings unless os-admin-* is usable instead
+  network-space-default: &network_space_default	openstack-mgt
+   #network-space-default: &network_space_default	pubblica # temporary change
+  network-space-pub: &network_space_pub		pubblica
+# In the following we assume space-os-data is used both for compute-network
+# communication, and for ceph-OSD communication: can be split for better separation
+  network-space-os-data: &network_space_os_data	openstack-mgt
+  network-space-os-mgmt: &network_space_os_mgmt openstack-mgt
+
+  # Change as appropriate
+  bridge-mappings: &bridge_mappings             ext_net:br-ex
+  data-port: &data_port                               "br-ex:enp94s0f1.20"
+
+  # secrets and passwords:
+  root-password: &root_password  HIDDEN
+  sst-password:  &sst_password   HIDDEN
+  admin-password: &admin_password  HIDDEN
+  secret_dashboard: &secret_dashboard   HIDDEN
+  # encryption-key: &encryption_key       <encryption_key>
+#
+#  Set your corosync_keys by running (on your preferred machine):
+#  corosync-keygen ; cat /etc/corosync/authkey | base64 -w 0 ; echo " "
+  # corosync_key: &corosync_key   <corosync_key>
+
+  # keystone/dashboard
+  # CLA: ho usato pwgen 62 1
+  admin-token: &admin_token  HIDDEN
+
+# ------------------------------------------------------------------------------
+machines:
+  '0':
+    constraints: arch=amd64 tags=hyperconverged_host
+    series: *series
+  '1':
+    constraints: arch=amd64 tags=hyperconverged_host
+    series: *series
+
+# ------------------------------------------------------------------------------
+services:
+
+  controller:
+    charm: cs:ubuntu
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '2000'
+      gui-y: '0'
+
+#  compute-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 2
+#    to:
+#      - '3'
+#      - '4'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '500'
+
+#  network-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 1
+#    to:
+#      - '0'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '800'
+
+  ntp:
+    charm: cs:ntp
+    series: *series
+    options:
+      source: *source_ntp
+    annotations:
+      gui-x: '2200'
+      gui-y: '500'
+
+#   defaultgw:
+#     charm: cs:~csd-garr/defaultgw
+#     options:
+#       gateway: *default_public_gateway
+#     annotations:
+#       gui-x: '800'
+#       gui-y: '0'
+
+  ceph-radosgw-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,object,storage
+    annotations:
+      gui-x: '1000'
+      gui-y: '-200'
+
+  cinder-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,block,storage
+    annotations:
+      gui-x: '1250'
+      gui-y: '350'
+
+  controller-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: nova,compute
+    annotations:
+      gui-x: '-200'
+      gui-y: '500'
+
+  glance-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,object,storage
+    annotations:
+      gui-x: '1200'
+      gui-y: '600'
+
+  horizon-hacluster:
+    charm: cs:hacluster
+    series: *dashboard_series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: dashboard,web
+    annotations:
+      gui-x: '250'
+      gui-y: '50'
+
+  keystone-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: keystone
+    annotations:
+      gui-x: '350'
+      gui-y: '350'
+
+  neutron-api-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: neutron
+    annotations:
+      gui-x: '550'
+      gui-y: '1350'
+
+  percona-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: database
+    annotations:
+      gui-x: '1300'
+      gui-y: '800'
+
+# Nagios
+  nagios-server:
+    charm: cs:nagios
+    series: *series
+    num_units: 1
+    bindings:
+      "": *network_space_default
+      website: *network_space_pub
+      #      website: *network_space_os_mgmt
+    options:
+      admin_email: *nagios_admin_email
+      password: *nagiosadmin_pwd
+      ro-password: *nagiosro_pwd
+      monitor_self: true
+    to:
+      - 'lxd:0'
+  nrpe-controller:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cinder:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cephmon:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cephosd:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-glance:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-radosgw:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-keystone:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-dashboard:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-neutron:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-neutrongw:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-nova:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-novacompute:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-percona:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-rabbitmq:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-memcache:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+
+  rabbitmq-server:
+    charm: cs:rabbitmq-server
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+    options:
+      # access-network: *access_network
+      nagios_context: *nagios_context
+      min-cluster-size: 3
+      cluster-partition-handling: pause_minority
+      management_plugin: True
+      nagios_servicegroups: messaging
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '400'
+      gui-y: '800'
+
+  percona-cluster:
+    charm: cs:percona-cluster
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      # access-network: *access_network
+      # cluster-network: *access_network
+      nagios_context: *nagios_context
+      root-password: *root_password
+      sst-password: *sst_password
+      vip: *vip_percona
+      min-cluster-size: 3
+      innodb-buffer-pool-size: 10G
+      max-connections: 30000
+      nagios_servicegroups: database
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '800'
+
+  keystone:
+    charm: cs:keystone
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      admin-password: *admin_password
+      admin-token: *admin_token
+      nagios_context: *nagios_context
+      os-public-hostname: *os_public_hostname
+      region: *region
+      vip: *vip_keystone
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      admin-user: admin
+      nagios_servicegroups: keystone
+      worker-multiplier: *worker_multiplier
+      preferred-api-version: *preferred_api_version
+      region: *region
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '500'
+
+  openstack-dashboard:
+    charm: cs:openstack-dashboard
+    series: *dashboard_series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      website: *network_space_pub
+      dashboard-plugin: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      secret: *secret_dashboard
+      vip: *vip_dashboard
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      endpoint-type: internalURL,publicURL
+      nagios_servicegroups: dashboard,web
+      use-syslog: True
+      webroot: '/'
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '0'
+
+  nova-compute:
+    charm: cs:nova-compute
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      compute-peer: *network_space_os_mgmt
+      neutron-plugin: *network_space_os_mgmt
+    options:
+      # os-internal-network: *os_internal_network
+      nagios_context: *nagios_context
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      config-flags: *nova_compute_config_flags
+      cpu-mode: *cpu-mode
+      #enable-live-migration: False
+      enable-resize: False
+      migration-auth-type: ssh
+      libvirt-image-backend: *libvirt_image_backend
+      nagios_servicegroups: nova,compute
+      use-internal-endpoints: True
+      enable-resize: True
+      enable-live-migration: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '0'
+      gui-y: '200'
+
+  nova-cloud-controller:
+    charm: cs:nova-cloud-controller
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+#      cell: ###
+      memcache: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      region: *region
+      console-proxy-ip: *console_proxy_ip
+      nagios_context: *nagios_context
+      vip: *vip_nova_cloud_controller
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      console-access-protocol: 'vnc'
+      nagios_servicegroups: nova,compute
+      network-manager: Neutron
+      cpu-allocation-ratio: *cpu_allocation_ratio
+      ram-allocation-ratio: *ram_allocation_ratio
+      service-guard: True
+      single-nova-consoleauth: False
+      use-internal-endpoints: True
+      worker-multiplier: *worker_multiplier
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '0'
+      gui-y: '450'
+
+  neutron-api:
+    charm: cs:neutron-api
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      region: *region
+      nagios_context: *nagios_context
+      neutron-external-network: *neutron_external_network
+      vip: *vip_neutron
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      enable-ml2-port-security: True
+      flat-network-providers: *flat_network_providers
+      nagios_servicegroups: neutron
+      neutron-security-groups: True
+      network-device-mtu: *network_device_mtu
+      use-internal-endpoints: True
+      use-syslog: True
+      worker-multiplier: *worker_multiplier
+      enable-dvr: *dvr_mode
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '1100'
+
+  neutron-openvswitch:
+    charm: cs:neutron-openvswitch
+    series: *series
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      data: *network_space_os_data
+      neutron-plugin: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+    options:
+      # os-data-network: *os_data_network
+      debug: 'False'
+      verbose: 'False'
+      disable-security-groups: False
+      flat-network-providers: *flat_network_providers
+      use-syslog: True
+      enable-local-dhcp-and-metadata: *enable_local_dhcp_and_metadata
+    annotations:
+      gui-x: '1100'
+      gui-y: '1100'
+
+  cinder:
+    charm: cs:cinder
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      region: *region
+      vip: *vip_cinder
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      block-device: None
+      glance-api-version: 2
+      nagios_servicegroups: ceph,block,storage
+      region: *region
+      use-syslog: True
+      use-internal-endpoints: True
+      worker-multiplier: *worker_multiplier
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '200'
+
+  cinder-ceph:
+    charm: cs:cinder-ceph
+    series: *series
+    num_units: 0
+    bindings:
+      "": *network_space_default
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_cinder_replication_count
+      restrict-ceph-pools: True
+    annotations:
+      gui-x: '1330'
+      gui-y: '230'
+
+  ceph-mon:
+    charm: cs:ceph-mon
+    series: *series
+    num_units: 3 
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      client: *network_space_os_mgmt
+      radosgw: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      mon: *network_space_os_mgmt
+      osd: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      nagios_servicegroups: ceph,storage
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1200'
+      gui-y: '400'
+
+  ceph-osd:
+    charm: cs:ceph-osd
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      cluster: *network_space_os_data
+      mon: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      osd-devices: *ceph_osd_partition
+      nagios_servicegroups: ceph,storage
+      osd-devices: *ceph_osd_partition
+      # osd-reformat: 'True'
+      osd-format: 'xfs'
+      use-syslog: True
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '1400'
+      gui-y: '400'
+
+  ceph-radosgw:
+    charm: cs:ceph-radosgw
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_radosgw_replication_count
+      config-flags: *ceph_radosgw_config_flags
+      nagios_context: *nagios_context
+      pool-prefix: *ceph_radosgw_pool_prefix
+      region: *region
+      rgw-buckets-pool-weight:  *ceph_radosgw_rgw_buckets_pool_weight
+      rgw-lightweight-pool-pg-num: *ceph_radosgw_lightweight_pool_pg_num
+      vip: *vip_ceph_radosgw
+      nagios_servicegroups: ceph,object,storage
+      restrict-ceph-pools: True
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      "gui-x": "1000"
+      "gui-y": "0"
+
+  glance:
+    charm: cs:glance
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_glance_replication_count
+      region: *region
+      nagios_context: *nagios_context
+      vip: *vip_glance
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      nagios_servicegroups: ceph,object,storage
+      use-internal-endpoints: True
+      use-syslog: True
+      restrict-ceph-pools: True
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '400'
+
+  memcached:
+    charm: cs:memcached
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      cache: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      allow-ufw-ip6-softfail: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '100'
+      gui-y: '800'
+
+  neutron-gateway:
+    charm: cs:neutron-gateway
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      data: *network_space_os_data
+      amqp: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      bridge-mappings: *bridge_mappings
+      nagios_context: *nagios_context
+      # os-data-network: *os_data_network
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      data-port: *data_port
+      # Lower instance MTU to fit GRE tunnel (without changing switch config etc)
+      instance-mtu: *instance_mtu
+      nagios_servicegroups: neutron
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '0'
+      gui-y: '1100'
+
+#  ceilometer:
+#    charm: cs:ceilometer
+#    series: *series
+#    num_units: 1
+#    bindings:
+#      public: *network_space_pub
+#      admin: *network_space_os_mgmt
+#      internal: *network_space_os_mgmt
+#    options:
+#      region: *region
+#      action-managed-upgrade: True
+#      debug: False
+#      verbose: False
+#      event-time-to-live: *celiometer_event_time_to_live
+#      metering-time-to-live: *celiometer_metering_time_to_live
+#      region: *region
+#    to:
+#      - 'lxd:1'
+#    annotations:
+#      gui-x: '450'
+#      gui-y: '-250'
+
+#  ceilometer-agent:
+#    charm: cs:ceilometer-agent
+#    series: xenial
+#    options:
+#      action-managed-upgrade: True
+#    annotations:
+#      gui-x: '200'
+#      gui-y: '-150'
+
+# ------------------------------------------------------------------------------
+relations:
+  - [ ntp, controller ]
+#  - [ ntp, compute-host ]
+#  - [ ntp, network-host ]
+  - [ percona-cluster, percona-hacluster ]
+  - [ cinder, cinder-hacluster ]
+  - [ glance, glance-hacluster ]
+  - [ keystone, keystone-hacluster ]
+  - [ neutron-api, neutron-api-hacluster ]
+  - [ nova-cloud-controller, controller-hacluster ]
+  - [ openstack-dashboard, horizon-hacluster ]
+  - [ keystone, percona-cluster ]
+  - [ neutron-api, percona-cluster ]
+  - [ neutron-api, rabbitmq-server ]
+  - [ neutron-api, nova-cloud-controller ]
+  - [ neutron-api, keystone ]
+  - [ neutron-openvswitch, rabbitmq-server ]
+  - [ neutron-openvswitch, neutron-api ]
+  - [ neutron-openvswitch, nova-compute ]
+  - [ nova-cloud-controller, memcached ]
+  - [ "nova-cloud-controller:shared-db", "percona-cluster:shared-db" ]
+  - [ "nova-cloud-controller:amqp", "rabbitmq-server:amqp" ]
+  - [ nova-cloud-controller, glance ]
+  - [ nova-cloud-controller, keystone ]
+  - [ nova-compute, nova-cloud-controller ]
+  - [ "nova-compute:amqp", "rabbitmq-server:amqp" ]
+  - [ nova-compute, glance ]
+  - [ glance, percona-cluster ]
+  - [ glance, keystone ]
+  - [ "glance:image-service", "cinder:image-service" ]
+  - [ "glance:amqp", "rabbitmq-server:amqp" ]
+  - [ cinder, percona-cluster ]
+  - [ cinder, rabbitmq-server ]
+  - [ cinder, nova-cloud-controller ]
+  - [ cinder, keystone ]
+  - [ "openstack-dashboard:identity-service", "keystone:identity-service" ]
+  - [ "neutron-gateway:amqp", "rabbitmq-server:amqp" ]
+  - [ "neutron-gateway:neutron-plugin-api", "neutron-api:neutron-plugin-api" ]
+  - [ "nova-cloud-controller:quantum-network-service", "neutron-gateway:quantum-network-service" ]
+  - [ "cinder-ceph:ceph-access", "nova-compute:ceph-access" ]
+  - [ "ceph-mon:client", "nova-compute:ceph" ]
+  - [ "ceph-mon:client", "cinder-ceph:ceph" ]
+  - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ]
+  - [ "ceph-mon:client", "glance:ceph" ]
+  - [ "ceph-osd:mon", "ceph-mon:osd" ]
+# ceph-radosgw
+  - [ "ceph-radosgw:ha", "ceph-radosgw-hacluster:ha" ]
+  - [ "keystone:identity-service", "ceph-radosgw:identity-service" ]
+  - [ "ceph-radosgw:mon", "ceph-mon:radosgw" ]
+# nagios controllers (physical)
+  - [ controller, nrpe-controller]
+  - [ "nrpe-controller:monitors", "nagios-server:monitors" ]
+# nagios ceph
+  - [ ceph-mon, nrpe-cephmon]
+  - [ "nrpe-cephmon:monitors", "nagios-server:monitors" ]
+  - [ ceph-osd, nrpe-cephosd]
+  - [ "nrpe-cephosd:monitors", "nagios-server:monitors" ]
+  - [ cinder, nrpe-cinder]
+  - [ cinder-hacluster, nrpe-cinder]
+  - [ "nrpe-cinder:monitors", "nagios-server:monitors" ]
+  - [ glance, nrpe-glance]
+  - [ glance-hacluster, nrpe-glance]
+  - [ "nrpe-glance:monitors", "nagios-server:monitors" ]
+  - [ ceph-radosgw, nrpe-radosgw]
+  - [ ceph-radosgw-hacluster, nrpe-radosgw]
+  - [ "nrpe-radosgw:monitors", "nagios-server:monitors" ]
+# nagios keystone
+  - [ keystone, nrpe-keystone]
+  - [ keystone-hacluster, nrpe-keystone]
+  - [ "nrpe-keystone:monitors", "nagios-server:monitors" ]
+# nagios horizon
+  - [ openstack-dashboard, nrpe-dashboard]
+  - [ horizon-hacluster, nrpe-dashboard] 
+  - [ "nrpe-dashboard:monitors", "nagios-server:monitors" ] 
+# nagios neutron
+  - [ neutron-api, nrpe-neutron]
+  - [ neutron-api-hacluster, nrpe-neutron]
+  - [ "nrpe-neutron:monitors", "nagios-server:monitors" ]
+#  - [ network-host, nrpe-neutrongw]
+  - [ neutron-gateway, nrpe-neutrongw]
+  - [ "nrpe-neutrongw:monitors", "nagios-server:monitors" ]
+# nagios nova
+  - [ nova-cloud-controller, nrpe-nova]
+  - [ controller-hacluster, nrpe-nova]
+  - [ "nrpe-nova:monitors", "nagios-server:monitors" ]
+#  - [ compute-host, nrpe-novacompute]
+  - [ nova-compute, nrpe-novacompute]
+  - [ "nrpe-novacompute:monitors", "nagios-server:monitors" ]
+# nagios percona
+  - [ percona-cluster, nrpe-percona]
+  - [ percona-hacluster, nrpe-percona]
+  - [ "nrpe-percona:monitors", "nagios-server:monitors" ]
+# nagios memcache
+  - [ "memcached:nrpe-external-master", "nrpe-memcache:nrpe-external-master" ]
+  - [ "nrpe-memcache:monitors", "nagios-server:monitors" ]
+# nagios rabbitmq
+  - [rabbitmq-server, nrpe-rabbitmq]
+  - [ "nrpe-rabbitmq:monitors", "nagios-server:monitors" ]
diff --git a/bundles/openstack/old/bundle.cephlocal.pd.tmp.yaml b/bundles/openstack/old/bundle.cephlocal.pd.tmp.yaml
new file mode 100644
index 00000000..a4f0b423
--- /dev/null
+++ b/bundles/openstack/old/bundle.cephlocal.pd.tmp.yaml
@@ -0,0 +1,1003 @@
+## Sample bundle for the deployment of OpenStack in a region of the
+## GARR Federated Cloud Platform.
+## This version deploys a local ceph.
+
+parameters:
+  # sources
+  openstack-origin: &openstack_origin   cloud:bionic-rocky
+  series: &series  bionic
+
+  # Ceph configs
+  ceph-radosgw-lightweight-pool-pg-num:  &ceph_radosgw_lightweight_pool_pg_num  8
+  ceph-radosgw-rgw-buckets-pool-weight:  &ceph_radosgw_rgw_buckets_pool_weight  5
+  ceph-radosgw-config-flags:  &ceph_radosgw_config_flags
+
+  # network defaults:
+  flat-network-providers: &flat_network_providers  ext_net
+  neutron-external-network: &neutron_external_network ext_net
+  network-device-mtu: &network_device_mtu  1500
+  instance-mtu: &instance_mtu	1400
+  enable-dvr: &dvr-mode		True
+  vlan-ranges: &vlan_ranges	physnet-ovs:801:801
+
+  # keystone/dashboard
+  preferred-api-version: &preferred_api_version     3
+
+  # nova-compute
+  worker-multiplier: &worker_multiplier             '1.0'
+  cpu-allocation-ratio: &cpu_allocation_ratio       '2.0'
+  ram-allocation-ratio: &ram_allocation_ratio       '1.5'
+  n-c-config-flags: &nova_compute_config_flags    "block_device_allocate_retries=600,block_device_allocate_retries_interval=5"
+
+  hugepages: &hugepages    '5%'
+  libvirt-image-backend: &libvirt_image_backend
+  cpu-mode: &cpu-mode
+
+# Ceilometer
+  event-time-to-live: &celiometer_event_time_to_live -1
+  metering-time-to-live: &celiometer_metering_time_to_live -1
+
+## Specific configuration file for a cloud region.
+## Edit values within <...> to represent your region.
+  # Region settings
+  region: &region                               unipd-1
+  # access-network: &access_network               <network_used_by_rabbit_and_percona>
+  # os-internal-network: &os_internal_network     <OpenStack_internal_network>
+  source_ntp: &source_ntp             ntp1.inrim.it
+  # os-data-network: &os_data_network   <OS_data_network>
+
+  # Nagios
+  nagios_context: &nagios_context               nagios
+  nagios_admin_email: &nagios_admin_email       vittorio.gallo@unipd.it	
+  nagios_admin_pwd: &nagiosadmin_pwd            !garr123
+  nagios_readonly_pwd: &nagiosro_pwd            !garr123
+
+  # Ceph configs
+  ceph-osd-partition: &ceph_osd_partition  "/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv" 
+  ceph-cinder-replication-count: &ceph_cinder_replication_count  2
+  ceph-glance-replication-count: &ceph_glance_replication_count  2
+  ceph-radosgw-replication-count: &ceph_radosgw_replication_count  2
+  ceph-radosgw-pool-prefix: &ceph_radosgw_pool_prefix    rgw
+
+  # vips (number of VIPs should match number of different bindings)
+
+  vip-ceilometer: &vip_ceilometer       192.168.20.61 147.162.164.21
+  vip-ceph-radosgw: &vip_ceph_radosgw   192.168.20.62 147.162.164.22
+  vip-cinder: &vip_cinder               192.168.20.63 147.162.164.23
+  vip-glance: &vip_glance               192.168.20.64 147.162.164.24
+  vip-heat: &vip_heat                   192.168.20.65 147.162.164.25
+  vip-dashboard: &vip_dashboard                       147.162.164.26
+  vip-keystone: &vip_keystone           192.168.20.66 147.162.164.27
+  vip-percona: &vip_percona             192.168.20.67
+  vip-neutron: &vip_neutron             192.168.20.68 147.162.164.28
+  vip-nova: &vip_nova_cloud_controller  192.168.20.69 147.162.164.29
+  console-proxy-ip: &console_proxy_ip                 147.162.164.29
+  # This is the gateway for public VIPs
+  default_public_gateway: &default_public_gateway     147.162.164.1
+
+  # hostnames
+  os-public-hostname: &os_public_hostname      keystone.ict.unipd.it
+  os-internal-hostname: &os_internal_hostname  keystone.ict.unipd.it
+  # this one could be identical to internal-hostname
+  os-admin-hostname: &os_admin_hostname        keystone.ict.unipd.it
+
+  # network setup: should be the same cross-sites
+  ### Use network-space-* in bindings unless os-admin-* is usable instead
+  # ---->
+  # network-space-default: &network_space_default	openstack-mgt # temporary change
+  network-space-default: &network_space_default	pubblica # temporary change
+  # <----
+  network-space-pub: &network_space_pub		pubblica
+# In the following we assume space-os-data is used both for compute-network
+# communication, and for ceph-OSD communication: can be split for better separation
+  network-space-os-data: &network_space_os_data	openstack-mgt
+  network-space-os-mgmt: &network_space_os_mgmt openstack-mgt
+
+  # Change as appropriate
+  bridge-mappings: &bridge_mappings             ext_net:br-ex
+  data-port: &data_port				"br-ex:enp94s0f1.20"
+
+  # secrets and passwords:
+  root-password: &root_password  !garr123
+  sst-password:  &sst_password   !garr123
+  admin-password: &admin_password  !garr123
+  secret_dashboard: &secret_dashboard   garr123
+  # encryption-key: &encryption_key       <encryption_key>
+#
+#  Set your corosync_keys by running (on your preferred machine):
+#  corosync-keygen ; cat /etc/corosync/authkey | base64 -w 0 ; echo " "
+  # corosync_key: &corosync_key   <corosync_key>
+
+  # keystone/dashboard
+  # CLA: ho usato pwgen 62 1
+  admin-token: &admin_token  Eig5JeiX5aiphohgiech6aozegh7ahfe5volei5zie2riemienai4ye3eiv3wi
+
+# ------------------------------------------------------------------------------
+machines:
+  '0':
+    constraints: arch=amd64 tags=hyperconverged_host
+    series: *series
+  '1':
+    constraints: arch=amd64 tags=hyperconverged_host
+    series: *series
+
+# ------------------------------------------------------------------------------
+services:
+
+  controller:
+    charm: cs:ubuntu
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '2000'
+      gui-y: '0'
+
+#  compute-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 2
+#    to:
+#      - '3'
+#      - '4'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '500'
+
+#  network-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 1
+#    to:
+#      - '0'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '800'
+
+  ntp:
+    charm: cs:ntp
+    series: *series
+    options:
+      source: *source_ntp
+    annotations:
+      gui-x: '2200'
+      gui-y: '500'
+
+#   defaultgw:
+#     charm: cs:~csd-garr/defaultgw
+#     options:
+#       gateway: *default_public_gateway
+#     annotations:
+#       gui-x: '800'
+#       gui-y: '0'
+
+  ceph-radosgw-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,object,storage
+    annotations:
+      gui-x: '1000'
+      gui-y: '-200'
+
+  cinder-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,block,storage
+    annotations:
+      gui-x: '1250'
+      gui-y: '350'
+
+  controller-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: nova,compute
+    annotations:
+      gui-x: '-200'
+      gui-y: '500'
+
+  glance-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,object,storage
+    annotations:
+      gui-x: '1200'
+      gui-y: '600'
+
+  horizon-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: dashboard,web
+    annotations:
+      gui-x: '250'
+      gui-y: '50'
+
+  keystone-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: keystone
+    annotations:
+      gui-x: '350'
+      gui-y: '350'
+
+  neutron-api-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: neutron
+    annotations:
+      gui-x: '550'
+      gui-y: '1350'
+
+  percona-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_default
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: database
+    annotations:
+      gui-x: '1300'
+      gui-y: '800'
+
+# Nagios
+  nagios-server:
+    charm: cs:nagios
+    series: *series
+    num_units: 1
+    bindings:
+      "": *network_space_default
+      #      website: *network_space_pub # TEMPORARILY CHANGED
+      website: *network_space_os_mgmt
+    options:
+      admin_email: *nagios_admin_email
+      password: *nagiosadmin_pwd
+      ro-password: *nagiosro_pwd
+      monitor_self: true
+    to:
+      - 'lxd:0'
+  nrpe-controller:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cinder:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cephmon:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cephosd:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-glance:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-radosgw:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-keystone:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-dashboard:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-neutron:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-neutrongw:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-nova:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-novacompute:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-percona:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-rabbitmq:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-memcache:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+
+  rabbitmq-server:
+    charm: cs:rabbitmq-server
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+    options:
+      # access-network: *access_network
+      nagios_context: *nagios_context
+      min-cluster-size: 3
+      cluster-partition-handling: pause_minority
+      management_plugin: True
+      nagios_servicegroups: messaging
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '400'
+      gui-y: '800'
+
+  percona-cluster:
+    charm: cs:percona-cluster
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      # access-network: *access_network
+      # cluster-network: *access_network
+      nagios_context: *nagios_context
+      root-password: *root_password
+      sst-password: *sst_password
+      vip: *vip_percona
+      min-cluster-size: 3
+      innodb-buffer-pool-size: 10G
+      max-connections: 30000
+      nagios_servicegroups: database
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '800'
+
+  keystone:
+    charm: cs:keystone
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      admin-password: *admin_password
+      admin-token: *admin_token
+      nagios_context: *nagios_context
+      os-public-hostname: *os_public_hostname
+      region: *region
+      vip: *vip_keystone
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      admin-user: admin
+      nagios_servicegroups: keystone
+      worker-multiplier: *worker_multiplier
+      preferred-api-version: *preferred_api_version
+      region: *region
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '500'
+
+  openstack-dashboard:
+    charm: cs:openstack-dashboard
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      website: *network_space_pub
+      dashboard-plugin: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      secret: *secret_dashboard
+      vip: *vip_dashboard
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      endpoint-type: internalURL,publicURL
+      nagios_servicegroups: dashboard,web
+      use-syslog: True
+      webroot: '/'
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '0'
+
+  nova-compute:
+    charm: cs:nova-compute
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      compute-peer: *network_space_os_mgmt
+      neutron-plugin: *network_space_os_mgmt
+    options:
+      # os-internal-network: *os_internal_network
+      nagios_context: *nagios_context
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      config-flags: *nova_compute_config_flags
+      cpu-mode: *cpu-mode
+      enable-live-migration: False
+      enable-resize: False
+      migration-auth-type: ssh
+      libvirt-image-backend: *libvirt_image_backend
+      nagios_servicegroups: nova,compute
+      use-internal-endpoints: True
+      enable-resize: True
+      enable-live-migration: True
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '0'
+      gui-y: '200'
+
+  nova-cloud-controller:
+    charm: cs:nova-cloud-controller
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+#      cell: ###
+      memcache: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      region: *region
+      console-proxy-ip: *console_proxy_ip
+      nagios_context: *nagios_context
+      vip: *vip_nova_cloud_controller
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      console-access-protocol: 'vnc'
+      nagios_servicegroups: nova,compute
+      network-manager: Neutron
+      cpu-allocation-ratio: *cpu_allocation_ratio
+      ram-allocation-ratio: *ram_allocation_ratio
+      service-guard: True
+      single-nova-consoleauth: False
+      use-internal-endpoints: True
+      worker-multiplier: *worker_multiplier
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '0'
+      gui-y: '450'
+
+  neutron-api:
+    charm: cs:neutron-api
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      region: *region
+      nagios_context: *nagios_context
+      neutron-external-network: *neutron_external_network
+      vip: *vip_neutron
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      enable-ml2-port-security: True
+      flat-network-providers: *flat_network_providers
+      nagios_servicegroups: neutron
+      neutron-security-groups: True
+      network-device-mtu: *network_device_mtu
+      use-internal-endpoints: True
+      use-syslog: True
+      worker-multiplier: *worker_multiplier
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '1100'
+
+  neutron-openvswitch:
+    charm: cs:neutron-openvswitch
+    series: *series
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      data: *network_space_os_data
+      neutron-plugin: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+    options:
+      # os-data-network: *os_data_network
+      debug: 'False'
+      verbose: 'False'
+      disable-security-groups: False
+      flat-network-providers: *flat_network_providers
+      use-syslog: True
+    annotations:
+      gui-x: '1100'
+      gui-y: '1100'
+
+  cinder:
+    charm: cs:cinder
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      region: *region
+      vip: *vip_cinder
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      block-device: None
+      glance-api-version: 2
+      nagios_servicegroups: ceph,block,storage
+      region: *region
+      use-syslog: True
+      use-internal-endpoints: True
+      worker-multiplier: *worker_multiplier
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '200'
+
+  cinder-ceph:
+    charm: cs:cinder-ceph
+    series: *series
+    num_units: 0
+    bindings:
+      "": *network_space_default
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_cinder_replication_count
+      restrict-ceph-pools: True
+    annotations:
+      gui-x: '1330'
+      gui-y: '230'
+
+  ceph-mon:
+    charm: cs:ceph-mon
+    series: *series
+    num_units: 3 
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      client: *network_space_os_mgmt
+      radosgw: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      mon: *network_space_os_mgmt
+      osd: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      nagios_servicegroups: ceph,storage
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1200'
+      gui-y: '400'
+
+  ceph-osd:
+    charm: cs:ceph-osd
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      cluster: *network_space_os_data
+      mon: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      osd-devices: *ceph_osd_partition
+      nagios_servicegroups: ceph,storage
+      osd-devices: *ceph_osd_partition
+      # osd-reformat: 'True'
+      osd-format: 'xfs'
+      use-syslog: True
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '1400'
+      gui-y: '400'
+
+  ceph-radosgw:
+    charm: cs:ceph-radosgw
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_radosgw_replication_count
+      config-flags: *ceph_radosgw_config_flags
+      nagios_context: *nagios_context
+      pool-prefix: *ceph_radosgw_pool_prefix
+      region: *region
+      rgw-buckets-pool-weight:  *ceph_radosgw_rgw_buckets_pool_weight
+      rgw-lightweight-pool-pg-num: *ceph_radosgw_lightweight_pool_pg_num
+      vip: *vip_ceph_radosgw
+      nagios_servicegroups: ceph,object,storage
+      region: *region
+      restrict-ceph-pools: True
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      "gui-x": "1000"
+      "gui-y": "0"
+
+  glance:
+    charm: cs:glance
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_glance_replication_count
+      region: *region
+      nagios_context: *nagios_context
+      vip: *vip_glance
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      nagios_servicegroups: ceph,object,storage
+      use-internal-endpoints: True
+      use-syslog: True
+      restrict-ceph-pools: True
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '400'
+
+  memcached:
+    charm: cs:memcached
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      cache: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      allow-ufw-ip6-softfail: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '100'
+      gui-y: '800'
+
+  neutron-gateway:
+    charm: cs:neutron-gateway
+    series: *series
+    num_units: 1
+    bindings:
+      "": *network_space_default
+      data: *network_space_os_data
+      amqp: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      bridge-mappings: *bridge_mappings
+      nagios_context: *nagios_context
+      # os-data-network: *os_data_network
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      data-port: *data_port
+      # Lower instance MTU to fit GRE tunnel (without changing switch config etc)
+      instance-mtu: *instance_mtu
+      nagios_servicegroups: neutron
+    to:
+      - '1'
+    annotations:
+      gui-x: '0'
+      gui-y: '1100'
+
+#  ceilometer:
+#    charm: cs:ceilometer
+#    series: *series
+#    num_units: 1
+#    bindings:
+#      public: *network_space_pub
+#      admin: *network_space_os_mgmt
+#      internal: *network_space_os_mgmt
+#    options:
+#      region: *region
+#      action-managed-upgrade: True
+#      debug: False
+#      verbose: False
+#      event-time-to-live: *celiometer_event_time_to_live
+#      metering-time-to-live: *celiometer_metering_time_to_live
+#      region: *region
+#    to:
+#      - 'lxd:1'
+#    annotations:
+#      gui-x: '450'
+#      gui-y: '-250'
+
+#  ceilometer-agent:
+#    charm: cs:ceilometer-agent
+#    series: xenial
+#    options:
+#      action-managed-upgrade: True
+#    annotations:
+#      gui-x: '200'
+#      gui-y: '-150'
+
+# ------------------------------------------------------------------------------
+relations:
+  - [ ntp, controller ]
+#  - [ ntp, compute-host ]
+#  - [ ntp, network-host ]
+  - [ percona-cluster, percona-hacluster ]
+  - [ cinder, cinder-hacluster ]
+  - [ glance, glance-hacluster ]
+  - [ keystone, keystone-hacluster ]
+  - [ neutron-api, neutron-api-hacluster ]
+  - [ nova-cloud-controller, controller-hacluster ]
+  - [ openstack-dashboard, horizon-hacluster ]
+  - [ keystone, percona-cluster ]
+  - [ neutron-api, percona-cluster ]
+  - [ neutron-api, rabbitmq-server ]
+  - [ neutron-api, nova-cloud-controller ]
+  - [ neutron-api, keystone ]
+  - [ neutron-openvswitch, rabbitmq-server ]
+  - [ neutron-openvswitch, neutron-api ]
+  - [ neutron-openvswitch, nova-compute ]
+  - [ nova-cloud-controller, memcached ]
+  - [ "nova-cloud-controller:shared-db", "percona-cluster:shared-db" ]
+  - [ "nova-cloud-controller:amqp", "rabbitmq-server:amqp" ]
+  - [ nova-cloud-controller, glance ]
+  - [ nova-cloud-controller, keystone ]
+  - [ nova-compute, nova-cloud-controller ]
+  - [ "nova-compute:amqp", "rabbitmq-server:amqp" ]
+  - [ nova-compute, glance ]
+  - [ glance, percona-cluster ]
+  - [ glance, keystone ]
+  - [ "glance:image-service", "cinder:image-service" ]
+  - [ "glance:amqp", "rabbitmq-server:amqp" ]
+  - [ cinder, percona-cluster ]
+  - [ cinder, rabbitmq-server ]
+  - [ cinder, nova-cloud-controller ]
+  - [ cinder, keystone ]
+  - [ "openstack-dashboard:identity-service", "keystone:identity-service" ]
+  - [ "neutron-gateway:amqp", "rabbitmq-server:amqp" ]
+  - [ "neutron-gateway:neutron-plugin-api", "neutron-api:neutron-plugin-api" ]
+  - [ "nova-cloud-controller:quantum-network-service", "neutron-gateway:quantum-network-service" ]
+  - [ "ceph-mon:client", "nova-compute:ceph" ]
+  - [ "ceph-mon:client", "cinder-ceph:ceph" ]
+  - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ]
+  - [ "ceph-mon:client", "glance:ceph" ]
+  - [ "ceph-osd:mon", "ceph-mon:osd" ]
+# ceph-radosgw
+  - [ "ceph-radosgw:ha", "ceph-radosgw-hacluster:ha" ]
+  - [ "keystone:identity-service", "ceph-radosgw:identity-service" ]
+  - [ "ceph-radosgw:mon", "ceph-mon:radosgw" ]
+#  - [ "ceph-radosgw:juju-info", "defaultgw:juju-info" ]
+# default-gw
+#  - [ "keystone:juju-info", "defaultgw:juju-info" ]
+#  - [ "openstack-dashboard:juju-info", "defaultgw:juju-info" ]
+#  - [ "nova-cloud-controller:juju-info", "defaultgw:juju-info" ]
+#  - [ "glance:juju-info", "defaultgw:juju-info" ]
+#  - [ "cinder:juju-info", "defaultgw:juju-info" ]
+#  - [ "neutron-api:juju-info", "defaultgw:juju-info" ]
+# nagios server
+#  - [ "nagios-server:juju-info", "defaultgw:juju-info" ]
+# nagios controllers (physical)
+  - [ controller, nrpe-controller]
+  - [ "nrpe-controller:monitors", "nagios-server:monitors" ]
+# nagios ceph
+  - [ ceph-mon, nrpe-cephmon]
+  - [ "nrpe-cephmon:monitors", "nagios-server:monitors" ]
+  - [ ceph-osd, nrpe-cephosd]
+  - [ "nrpe-cephosd:monitors", "nagios-server:monitors" ]
+  - [ cinder, nrpe-cinder]
+  - [ cinder-hacluster, nrpe-cinder]
+  - [ "nrpe-cinder:monitors", "nagios-server:monitors" ]
+  - [ glance, nrpe-glance]
+  - [ glance-hacluster, nrpe-glance]
+  - [ "nrpe-glance:monitors", "nagios-server:monitors" ]
+  - [ ceph-radosgw, nrpe-radosgw]
+  - [ ceph-radosgw-hacluster, nrpe-radosgw]
+  - [ "nrpe-radosgw:monitors", "nagios-server:monitors" ]
+# nagios keystone
+  - [ keystone, nrpe-keystone]
+  - [ keystone-hacluster, nrpe-keystone]
+  - [ "nrpe-keystone:monitors", "nagios-server:monitors" ]
+# nagios horizon
+  - [ openstack-dashboard, nrpe-dashboard]
+  - [ horizon-hacluster, nrpe-dashboard]
+  - [ "nrpe-dashboard:monitors", "nagios-server:monitors" ]
+# nagios neutron
+  - [ neutron-api, nrpe-neutron]
+  - [ neutron-api-hacluster, nrpe-neutron]
+  - [ "nrpe-neutron:monitors", "nagios-server:monitors" ]
+#  - [ network-host, nrpe-neutrongw]
+  - [ neutron-gateway, nrpe-neutrongw]
+  - [ "nrpe-neutrongw:monitors", "nagios-server:monitors" ]
+# nagios nova
+  - [ nova-cloud-controller, nrpe-nova]
+  - [ controller-hacluster, nrpe-nova]
+  - [ "nrpe-nova:monitors", "nagios-server:monitors" ]
+#  - [ compute-host, nrpe-novacompute]
+  - [ nova-compute, nrpe-novacompute]
+  - [ "nrpe-novacompute:monitors", "nagios-server:monitors" ]
+# nagios percona
+  - [ percona-cluster, nrpe-percona]
+  - [ percona-hacluster, nrpe-percona]
+  - [ "nrpe-percona:monitors", "nagios-server:monitors" ]
+# nagios memcache
+  - [ "memcached:nrpe-external-master", "nrpe-memcache:nrpe-external-master" ]
+  - [ "nrpe-memcache:monitors", "nagios-server:monitors" ]
+# nagios rabbitmq
+  - [rabbitmq-server, nrpe-rabbitmq]
+  - [ "nrpe-rabbitmq:monitors", "nagios-server:monitors" ]
+# ceilometer
+#  - [ "ceilometer:amqp", "rabbitmq-server:amqp" ]
+#  - [ "ceilometer:identity-service", "keystone:identity-service" ]
+#  - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
+#  - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
+#  - [ "ceilometer:ceilometer-service", "ceilometer-agent:ceilometer-service" ]
+#  - [ "ceilometer:juju-info", "defaultgw:juju-info" ]
diff --git a/bundles/openstack/old/bundle.cephlocal.pd.yaml b/bundles/openstack/old/bundle.cephlocal.pd.yaml
new file mode 100644
index 00000000..63445d7e
--- /dev/null
+++ b/bundles/openstack/old/bundle.cephlocal.pd.yaml
@@ -0,0 +1,1005 @@
+## Sample bundle for the deployment of OpenStack in a region of the
+## GARR Federated Cloud Platform.
+## This version deploys a local ceph.
+
+parameters:
+  # sources
+  openstack-origin: &openstack_origin   cloud:xenial-queens
+  series: &series  xenial
+  dash-series: &dash_series bionic
+
+  # Ceph configs
+  ceph-radosgw-lightweight-pool-pg-num:  &ceph_radosgw_lightweight_pool_pg_num  8
+  ceph-radosgw-rgw-buckets-pool-weight:  &ceph_radosgw_rgw_buckets_pool_weight  5
+  ceph-radosgw-config-flags:  &ceph_radosgw_config_flags
+
+  # network defaults:
+  flat-network-providers: &flat_network_providers  ext_net
+  neutron-external-network: &neutron_external_network ext_net
+  network-device-mtu: &network_device_mtu  1500
+  instance-mtu: &instance_mtu	1400
+  enable-dvr: &dvr-mode		True
+  vlan-ranges: &vlan_ranges	physnet-ovs:801:801
+
+  # keystone/dashboard
+  preferred-api-version: &preferred_api_version     3
+
+  # nova-compute
+  worker-multiplier: &worker_multiplier             '1.0'
+  cpu-allocation-ratio: &cpu_allocation_ratio       '2.0'
+  ram-allocation-ratio: &ram_allocation_ratio       '1.5'
+  n-c-config-flags: &nova_compute_config_flags    "block_device_allocate_retries=600,block_device_allocate_retries_interval=5"
+
+  hugepages: &hugepages    '5%'
+  libvirt-image-backend: &libvirt_image_backend
+  cpu-mode: &cpu-mode
+
+# Ceilometer
+  event-time-to-live: &celiometer_event_time_to_live -1
+  metering-time-to-live: &celiometer_metering_time_to_live -1
+
+## Specific configuration file for a cloud region.
+## Edit values within <...> to represent your region.
+  # Region settings
+  region: &region                               unipd-1
+  # access-network: &access_network               <network_used_by_rabbit_and_percona>
+  # os-internal-network: &os_internal_network     <OpenStack_internal_network>
+  source_ntp: &source_ntp             ntp1.inrim.it
+  # os-data-network: &os_data_network   <OS_data_network>
+
+  # Nagios
+  nagios_context: &nagios_context               nagios
+  nagios_admin_email: &nagios_admin_email       vittorio.gallo@unipd.it	
+  nagios_admin_pwd: &nagiosadmin_pwd            !garr123
+  nagios_readonly_pwd: &nagiosro_pwd            !garr123
+
+  # Ceph configs
+  ceph-osd-partition: &ceph_osd_partition  "/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv" 
+  ceph-cinder-replication-count: &ceph_cinder_replication_count  2
+  ceph-glance-replication-count: &ceph_glance_replication_count  2
+  ceph-radosgw-replication-count: &ceph_radosgw_replication_count  2
+  ceph-radosgw-pool-prefix: &ceph_radosgw_pool_prefix    rgw
+
+  # vips (number of VIPs should match number of different bindings)
+
+  vip-ceilometer: &vip_ceilometer       192.168.20.61 147.162.164.21
+  vip-ceph-radosgw: &vip_ceph_radosgw   192.168.20.62 147.162.164.22
+  vip-cinder: &vip_cinder               192.168.20.63 147.162.164.23
+  vip-glance: &vip_glance               192.168.20.64 147.162.164.24
+  vip-heat: &vip_heat                   192.168.20.65 147.162.164.25
+  vip-dashboard: &vip_dashboard                       147.162.164.26
+  vip-keystone: &vip_keystone           192.168.20.66 147.162.164.27
+  vip-percona: &vip_percona             192.168.20.67
+  vip-neutron: &vip_neutron             192.168.20.68 147.162.164.28
+  vip-nova: &vip_nova_cloud_controller  192.168.20.69 147.162.164.29
+  console-proxy-ip: &console_proxy_ip                 147.162.164.29
+  # This is the gateway for public VIPs
+  default_public_gateway: &default_public_gateway     147.162.164.1
+
+  # hostnames
+  os-public-hostname: &os_public_hostname      keystone.ict.unipd.it
+  os-internal-hostname: &os_internal_hostname  keystone.ict.unipd.it
+  # this one could be identical to internal-hostname
+  os-admin-hostname: &os_admin_hostname        keystone.ict.unipd.it
+
+  # network setup: should be the same cross-sites
+  ### Use network-space-* in bindings unless os-admin-* is usable instead
+  # ---->
+  # network-space-default: &network_space_default	openstack-mgt # temporary change
+  network-space-default: &network_space_default	pubblica # temporary change
+  # <----
+  network-space-pub: &network_space_pub		pubblica
+# In the following we assume space-os-data is used both for compute-network
+# communication, and for ceph-OSD communication: can be split for better separation
+  network-space-os-data: &network_space_os_data	openstack-mgt
+  network-space-os-mgmt: &network_space_os_mgmt openstack-mgt
+
+  # Change as appropriate
+  bridge-mappings: &bridge_mappings             ext_net:br-ex
+  data-port: &data_port				br-ex:bond0.20
+
+  # secrets and passwords:
+  root-password: &root_password  !garr123
+  sst-password:  &sst_password   !garr123
+  admin-password: &admin_password  !garr123
+  secret_dashboard: &secret_dashboard   garr123
+  # encryption-key: &encryption_key       <encryption_key>
+#
+#  Set your corosync_keys by running (on your preferred machine):
+#  corosync-keygen ; cat /etc/corosync/authkey | base64 -w 0 ; echo " "
+  # corosync_key: &corosync_key   <corosync_key>
+
+  # keystone/dashboard
+  # CLA: ho usato pwgen 62 1
+  admin-token: &admin_token  Eig5JeiX5aiphohgiech6aozegh7ahfe5volei5zie2riemienai4ye3eiv3wi
+
+# ------------------------------------------------------------------------------
+machines:
+  '0':
+    constraints: arch=amd64 tags=hyperconverged_host
+    series: *series
+  '1':
+    constraints: arch=amd64 tags=hyperconverged_host
+    series: *series
+
+# ------------------------------------------------------------------------------
+services:
+
+  controller:
+    charm: cs:ubuntu
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '2000'
+      gui-y: '0'
+
+#  compute-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 2
+#    to:
+#      - '3'
+#      - '4'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '500'
+
+#  network-host:
+#    charm: cs:ubuntu
+#    series: *series
+#    num_units: 1
+#    to:
+#      - '0'
+#    annotations:
+#      gui-x: '2000'
+#      gui-y: '800'
+
+  ntp:
+    charm: cs:ntp
+    series: *series
+    options:
+      source: *source_ntp
+    annotations:
+      gui-x: '2200'
+      gui-y: '500'
+
+  defaultgw:
+    charm: cs:~csd-garr/defaultgw
+    options:
+      gateway: *default_public_gateway
+    annotations:
+      gui-x: '800'
+      gui-y: '0'
+
+  ceph-radosgw-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,object,storage
+    annotations:
+      gui-x: '1000'
+      gui-y: '-200'
+
+  cinder-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,block,storage
+    annotations:
+      gui-x: '1250'
+      gui-y: '350'
+
+  controller-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: nova,compute
+    annotations:
+      gui-x: '-200'
+      gui-y: '500'
+
+  glance-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: ceph,object,storage
+    annotations:
+      gui-x: '1200'
+      gui-y: '600'
+
+  horizon-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: dashboard,web
+    annotations:
+      gui-x: '250'
+      gui-y: '50'
+
+  keystone-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: keystone
+    annotations:
+      gui-x: '350'
+      gui-y: '350'
+
+  neutron-api-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: neutron
+    annotations:
+      gui-x: '550'
+      gui-y: '1350'
+
+  percona-hacluster:
+    charm: cs:hacluster
+    series: *series
+    bindings:
+      "": *network_space_os_mgmt
+    options:
+      # corosync_key: *corosync_key
+      nagios_context: *nagios_context
+      corosync_transport: 'unicast'
+      nagios_servicegroups: database
+    annotations:
+      gui-x: '1300'
+      gui-y: '800'
+
+# Nagios
+  nagios-server:
+    charm: cs:nagios
+    series: *series
+    num_units: 1
+    bindings:
+      "": *network_space_os_mgmt
+      website: *network_space_pub
+    options:
+      admin_email: *nagios_admin_email
+      password: *nagiosadmin_pwd
+      ro-password: *nagiosro_pwd
+      monitor_self: true
+    to:
+      - 'lxd:0'
+  nrpe-controller:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cinder:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cephmon:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-cephosd:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-glance:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-radosgw:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-keystone:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-dashboard:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-neutron:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-neutrongw:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-nova:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-novacompute:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-percona:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-rabbitmq:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+  nrpe-memcache:
+    charm: cs:nrpe
+    series: *series
+    options:
+      swap: '-w 40% -c 25% -n ok'
+
+  rabbitmq-server:
+    charm: cs:rabbitmq-server
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+    options:
+      access-network: *access_network
+      nagios_context: *nagios_context
+      min-cluster-size: 3
+      cluster-partition-handling: pause_minority
+      management_plugin: True
+      nagios_servicegroups: messaging
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '400'
+      gui-y: '800'
+
+  percona-cluster:
+    charm: cs:percona-cluster
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      access-network: *access_network
+      cluster-network: *access_network
+      nagios_context: *nagios_context
+      root-password: *root_password
+      sst-password: *sst_password
+      vip: *vip_percona
+      min-cluster-size: 3
+      innodb-buffer-pool-size: 10G
+      lp1366997-workaround: True
+      max-connections: 30000
+      nagios_servicegroups: database
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '800'
+
+  keystone:
+    charm: cs:keystone
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      admin-password: *admin_password
+      admin-token: *admin_token
+      nagios_context: *nagios_context
+      os-public-hostname: *os_public_hostname
+      region: *region
+      vip: *vip_keystone
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      admin-user: admin
+      nagios_servicegroups: keystone
+      worker-multiplier: *worker_multiplier
+      preferred-api-version: *preferred_api_version
+      region: *region
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '500'
+
+  openstack-dashboard:
+    charm: cs:openstack-dashboard
+    series: *dash_series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      website: *network_space_pub
+      dashboard-plugin: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      secret: *secret_dashboard
+      vip: *vip_dashboard
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      endpoint-type: internalURL,publicURL
+      nagios_servicegroups: dashboard,web
+      use-syslog: True
+      webroot: '/'
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '0'
+
+  nova-compute:
+    charm: cs:nova-compute
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      compute-peer: *network_space_os_mgmt
+      neutron-plugin: *network_space_os_mgmt
+    options:
+      os-internal-network: *os_internal_network
+      nagios_context: *nagios_context
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      config-flags: *nova_compute_config_flags
+      cpu-mode: *cpu-mode
+      enable-live-migration: False
+      enable-resize: False
+      migration-auth-type: none
+      libvirt-image-backend: *libvirt_image_backend
+      nagios_servicegroups: nova,compute
+      use-internal-endpoints: True
+      enable-resize: True
+      enable-live-migration: True
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '0'
+      gui-y: '200'
+
+  nova-cloud-controller:
+    charm: cs:nova-cloud-controller
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      cloud-compute: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+#      cell: ###
+      memcache: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      region: *region
+      console-proxy-ip: *console_proxy_ip
+      nagios_context: *nagios_context
+      vip: *vip_nova_cloud_controller
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      console-access-protocol: 'vnc'
+      nagios_servicegroups: nova,compute
+      network-manager: Neutron
+      cpu-allocation-ratio: *cpu_allocation_ratio
+      ram-allocation-ratio: *ram_allocation_ratio
+      service-guard: True
+      single-nova-consoleauth: False
+      use-internal-endpoints: True
+      worker-multiplier: *worker_multiplier
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '0'
+      gui-y: '450'
+
+  neutron-api:
+    charm: cs:neutron-api
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      neutron-api: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      region: *region
+      nagios_context: *nagios_context
+      neutron-external-network: *neutron_external_network
+      vip: *vip_neutron
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      enable-ml2-port-security: True
+      flat-network-providers: *flat_network_providers
+      nagios_servicegroups: neutron
+      neutron-security-groups: True
+      network-device-mtu: *network_device_mtu
+      use-internal-endpoints: True
+      use-syslog: True
+      worker-multiplier: *worker_multiplier
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '500'
+      gui-y: '1100'
+
+  neutron-openvswitch:
+    charm: cs:neutron-openvswitch
+    series: *series
+    bindings:
+      "": *network_space_default
+      amqp: *network_space_os_mgmt
+      data: *network_space_os_data
+      neutron-plugin: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+    options:
+      os-data-network: *os_data_network
+      debug: 'False'
+      verbose: 'False'
+      disable-security-groups: False
+      flat-network-providers: *flat_network_providers
+      use-syslog: True
+    annotations:
+      gui-x: '1100'
+      gui-y: '1100'
+
+  cinder:
+    charm: cs:cinder
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      region: *region
+      vip: *vip_cinder
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      block-device: None
+      glance-api-version: 2
+      nagios_servicegroups: ceph,block,storage
+      region: *region
+      use-syslog: True
+      use-internal-endpoints: True
+      worker-multiplier: *worker_multiplier
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '200'
+
+  cinder-ceph:
+    charm: cs:cinder-ceph
+    series: *series
+    num_units: 0
+    bindings:
+      "": *network_space_default
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_cinder_replication_count
+      restrict-ceph-pools: True
+    annotations:
+      gui-x: '1330'
+      gui-y: '230'
+
+  ceph-mon:
+    charm: cs:ceph-mon
+    series: *series
+    num_units: 3 
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      client: *network_space_os_mgmt
+      radosgw: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+      mon: *network_space_os_mgmt
+      osd: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      nagios_servicegroups: ceph,storage
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1200'
+      gui-y: '400'
+
+  ceph-osd:
+    charm: cs:ceph-osd
+    series: *series
+    num_units: 2
+    bindings:
+      "": *network_space_default
+      public: *network_space_os_mgmt
+      cluster: *network_space_os_data
+      mon: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      osd-devices: *ceph_osd_partition
+      nagios_servicegroups: ceph,storage
+      osd-devices: *ceph_osd_partition
+      osd-reformat: 'True'
+      osd-format: 'xfs'
+      use-syslog: True
+    to:
+      - '0'
+      - '1'
+    annotations:
+      gui-x: '1400'
+      gui-y: '400'
+
+  ceph-radosgw:
+    charm: cs:ceph-radosgw
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_radosgw_replication_count
+      config-flags: *ceph_radosgw_config_flags
+      nagios_context: *nagios_context
+      pool-prefix: *ceph_radosgw_pool_prefix
+      region: *region
+      rgw-buckets-pool-weight:  *ceph_radosgw_rgw_buckets_pool_weight
+      rgw-lightweight-pool-pg-num: *ceph_radosgw_lightweight_pool_pg_num
+      vip: *vip_ceph_radosgw
+      nagios_servicegroups: ceph,object,storage
+      region: *region
+      restrict-ceph-pools: True
+      use-syslog: True
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      "gui-x": "1000"
+      "gui-y": "0"
+
+  glance:
+    charm: cs:glance
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      public: *network_space_pub
+      admin: *network_space_os_mgmt
+      internal: *network_space_os_mgmt
+      amqp: *network_space_os_mgmt
+      cinder-volume-service: *network_space_os_mgmt
+      identity-service: *network_space_os_mgmt
+      image-service: *network_space_os_mgmt
+      ceph: *network_space_os_mgmt
+      storage-backend: *network_space_os_mgmt
+      shared-db: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      ceph-osd-replication-count: *ceph_glance_replication_count
+      region: *region
+      nagios_context: *nagios_context
+      vip: *vip_glance
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      debug: 'False'
+      verbose: 'False'
+      region: *region
+      nagios_servicegroups: ceph,object,storage
+      use-internal-endpoints: True
+      use-syslog: True
+      restrict-ceph-pools: True
+    to:
+      - 'lxd:0'
+      - 'lxd:0'
+      - 'lxd:1'
+    annotations:
+      gui-x: '1000'
+      gui-y: '400'
+
+  memcached:
+    charm: cs:memcached
+    series: *series
+    num_units: 3
+    bindings:
+      "": *network_space_default
+      cache: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      nagios_context: *nagios_context
+      allow-ufw-ip6-softfail: True
+    to:
+      - 'lxd:0'
+      - 'lxd:1'
+      - 'lxd:1'
+    annotations:
+      gui-x: '100'
+      gui-y: '800'
+
+  neutron-gateway:
+    charm: cs:neutron-gateway
+    series: *series
+    num_units: 1
+    bindings:
+      "": *network_space_default
+      data: *network_space_os_data
+      amqp: *network_space_os_mgmt
+      quantum-network-service: *network_space_os_mgmt
+      neutron-plugin-api: *network_space_os_mgmt
+      cluster: *network_space_os_mgmt
+    options:
+      bridge-mappings: *bridge_mappings
+      nagios_context: *nagios_context
+      os-data-network: *os_data_network
+      openstack-origin: *openstack_origin
+      action-managed-upgrade: True
+      data-port: *data_port
+      # Lower instance MTU to fit GRE tunnel (without changing switch config etc)
+      instance-mtu: *instance_mtu
+      nagios_servicegroups: neutron
+    to:
+      - '1'
+    annotations:
+      gui-x: '0'
+      gui-y: '1100'
+
+#  ceilometer:
+#    charm: cs:ceilometer
+#    series: *series
+#    num_units: 1
+#    bindings:
+#      public: *network_space_pub
+#      admin: *network_space_os_mgmt
+#      internal: *network_space_os_mgmt
+#    options:
+#      region: *region
+#      action-managed-upgrade: True
+#      debug: False
+#      verbose: False
+#      event-time-to-live: *celiometer_event_time_to_live
+#      metering-time-to-live: *celiometer_metering_time_to_live
+#      region: *region
+#    to:
+#      - 'lxd:1'
+#    annotations:
+#      gui-x: '450'
+#      gui-y: '-250'
+
+#  ceilometer-agent:
+#    charm: cs:ceilometer-agent
+#    series: xenial
+#    options:
+#      action-managed-upgrade: True
+#    annotations:
+#      gui-x: '200'
+#      gui-y: '-150'
+
+# ------------------------------------------------------------------------------
+relations:
+  - [ ntp, controller ]
+#  - [ ntp, compute-host ]
+#  - [ ntp, network-host ]
+  - [ percona-cluster, percona-hacluster ]
+  - [ cinder, cinder-hacluster ]
+  - [ glance, glance-hacluster ]
+  - [ keystone, keystone-hacluster ]
+  - [ neutron-api, neutron-api-hacluster ]
+  - [ nova-cloud-controller, controller-hacluster ]
+  - [ openstack-dashboard, horizon-hacluster ]
+  - [ keystone, percona-cluster ]
+  - [ neutron-api, percona-cluster ]
+  - [ neutron-api, rabbitmq-server ]
+  - [ neutron-api, nova-cloud-controller ]
+  - [ neutron-api, keystone ]
+  - [ neutron-openvswitch, rabbitmq-server ]
+  - [ neutron-openvswitch, neutron-api ]
+  - [ neutron-openvswitch, nova-compute ]
+  - [ nova-cloud-controller, memcached ]
+  - [ nova-cloud-controller, percona-cluster ]
+  - [ nova-cloud-controller, rabbitmq-server ]
+  - [ nova-cloud-controller, glance ]
+  - [ nova-cloud-controller, keystone ]
+  - [ nova-compute, nova-cloud-controller ]
+  - [ "nova-compute:amqp", "rabbitmq-server:amqp" ]
+  - [ nova-compute, glance ]
+  - [ nova-compute, percona-cluster ]
+  - [ glance, percona-cluster ]
+  - [ glance, keystone ]
+  - [ "glance:image-service", "cinder:image-service" ]
+  - [ "glance:amqp", "rabbitmq-server:amqp" ]
+  - [ cinder, percona-cluster ]
+  - [ cinder, rabbitmq-server ]
+  - [ cinder, nova-cloud-controller ]
+  - [ cinder, keystone ]
+  - [ openstack-dashboard, keystone ]
+  - [ "neutron-gateway:amqp", "rabbitmq-server:amqp" ]
+  - [ "neutron-gateway:neutron-plugin-api", "neutron-api:neutron-plugin-api" ]
+  - [ "nova-cloud-controller:quantum-network-service", "neutron-gateway:quantum-network-service" ]
+  - [ "ceph-mon:client", "nova-compute:ceph" ]
+  - [ "ceph-mon:client", "cinder-ceph:ceph" ]
+  - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ]
+  - [ "ceph-mon:client", "glance:ceph" ]
+  - [ "ceph-osd:mon", "ceph-mon:osd" ]
+# ceph-radosgw
+  - [ "ceph-radosgw:ha", "ceph-radosgw-hacluster:ha" ]
+  - [ "keystone:identity-service", "ceph-radosgw:identity-service" ]
+  - [ "ceph-radosgw:mon", "ceph-mon:radosgw" ]
+  - [ "ceph-radosgw:juju-info", "defaultgw:juju-info" ]
+# default-gw
+  - [ "keystone:juju-info", "defaultgw:juju-info" ]
+  - [ "openstack-dashboard:juju-info", "defaultgw:juju-info" ]
+  - [ "nova-cloud-controller:juju-info", "defaultgw:juju-info" ]
+  - [ "glance:juju-info", "defaultgw:juju-info" ]
+  - [ "cinder:juju-info", "defaultgw:juju-info" ]
+  - [ "neutron-api:juju-info", "defaultgw:juju-info" ]
+# nagios server
+  - [ "nagios-server:juju-info", "defaultgw:juju-info" ]
+# nagios controllers (physical)
+  - [ controller, nrpe-controller]
+  - [ "nrpe-controller:monitors", "nagios-server:monitors" ]
+# nagios ceph
+  - [ ceph-mon, nrpe-cephmon]
+  - [ "nrpe-cephmon:monitors", "nagios-server:monitors" ]
+  - [ ceph-osd, nrpe-cephosd]
+  - [ "nrpe-cephosd:monitors", "nagios-server:monitors" ]
+  - [ cinder, nrpe-cinder]
+  - [ cinder-hacluster, nrpe-cinder]
+  - [ "nrpe-cinder:monitors", "nagios-server:monitors" ]
+  - [ glance, nrpe-glance]
+  - [ glance-hacluster, nrpe-glance]
+  - [ "nrpe-glance:monitors", "nagios-server:monitors" ]
+  - [ ceph-radosgw, nrpe-radosgw]
+  - [ ceph-radosgw-hacluster, nrpe-radosgw]
+  - [ "nrpe-radosgw:monitors", "nagios-server:monitors" ]
+# nagios keystone
+  - [ keystone, nrpe-keystone]
+  - [ keystone-hacluster, nrpe-keystone]
+  - [ "nrpe-keystone:monitors", "nagios-server:monitors" ]
+# nagios horizon
+  - [ openstack-dashboard, nrpe-dashboard]
+  - [ horizon-hacluster, nrpe-dashboard]
+  - [ "nrpe-dashboard:monitors", "nagios-server:monitors" ]
+# nagios neutron
+  - [ neutron-api, nrpe-neutron]
+  - [ neutron-api-hacluster, nrpe-neutron]
+  - [ "nrpe-neutron:monitors", "nagios-server:monitors" ]
+#  - [ network-host, nrpe-neutrongw]
+  - [ neutron-gateway, nrpe-neutrongw]
+  - [ "nrpe-neutrongw:monitors", "nagios-server:monitors" ]
+# nagios nova
+  - [ nova-cloud-controller, nrpe-nova]
+  - [ controller-hacluster, nrpe-nova]
+  - [ "nrpe-nova:monitors", "nagios-server:monitors" ]
+#  - [ compute-host, nrpe-novacompute]
+  - [ nova-compute, nrpe-novacompute]
+  - [ "nrpe-novacompute:monitors", "nagios-server:monitors" ]
+# nagios percona
+  - [ percona-cluster, nrpe-percona]
+  - [ percona-hacluster, nrpe-percona]
+  - [ "nrpe-percona:monitors", "nagios-server:monitors" ]
+# nagios memcache
+  - [ "memcached:nrpe-external-master", "nrpe-memcache:nrpe-external-master" ]
+  - [ "nrpe-memcache:monitors", "nagios-server:monitors" ]
+# nagios rabbitmq
+  - [rabbitmq-server, nrpe-rabbitmq]
+  - [ "nrpe-rabbitmq:monitors", "nagios-server:monitors" ]
+# ceilometer
+#  - [ "ceilometer:amqp", "rabbitmq-server:amqp" ]
+#  - [ "ceilometer:identity-service", "keystone:identity-service" ]
+#  - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
+#  - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
+#  - [ "ceilometer:ceilometer-service", "ceilometer-agent:ceilometer-service" ]
+#  - [ "ceilometer:juju-info", "defaultgw:juju-info" ]
diff --git a/bundles/openstack/test-openrc.sh b/bundles/openstack/test-openrc.sh
new file mode 100644
index 00000000..e5aaac01
--- /dev/null
+++ b/bundles/openstack/test-openrc.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+# To use an OpenStack cloud you need to authenticate against the Identity
+# service named keystone, which returns a **Token** and **Service Catalog**.
+# The catalog contains the endpoints for all services the user/tenant has
+# access to - such as Compute, Image Service, Identity, Object Storage, Block
+# Storage, and Networking (code-named nova, glance, keystone, swift,
+# cinder, and neutron).
+#
+# *NOTE*: Using the 3 *Identity API* does not necessarily mean any other
+# OpenStack API is version 3. For example, your cloud provider may implement
+# Image API v1.1, Block Storage API v2, and Compute API v2.0. OS_AUTH_URL is
+# only for the Identity API served through keystone.
+export OS_AUTH_URL=http://keystone.ict.unipd.it:5000/v3
+# With the addition of Keystone we have standardized on the term **project**
+# as the entity that owns the resources.
+export OS_PROJECT_ID=decda90487444329ad4ac3a6e2fda63d
+export OS_PROJECT_NAME="admin"
+export OS_USER_DOMAIN_NAME="admin_domain"
+if [ -z "$OS_USER_DOMAIN_NAME" ]; then unset OS_USER_DOMAIN_NAME; fi
+export OS_PROJECT_DOMAIN_ID="0b53b4b9b214405a8d55d336559d4c04"
+if [ -z "$OS_PROJECT_DOMAIN_ID" ]; then unset OS_PROJECT_DOMAIN_ID; fi
+# unset v2.0 items in case set
+unset OS_TENANT_ID
+unset OS_TENANT_NAME
+# In addition to the owning entity (tenant), OpenStack stores the entity
+# performing the action as the **user**.
+export OS_USERNAME="admin"
+# With Keystone you pass the keystone password.
+echo "Please enter your OpenStack Password for project $OS_PROJECT_NAME as user $OS_USERNAME: "
+read -sr OS_PASSWORD_INPUT
+export OS_PASSWORD=$OS_PASSWORD_INPUT
+# If your configuration has multiple regions, we set that information here.
+# OS_REGION_NAME is optional and only valid in certain environments.
+export OS_REGION_NAME="unipd-1"
+# Don't leave a blank variable, unset it if it was empty
+if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi
+export OS_INTERFACE=public
+export OS_IDENTITY_API_VERSION=3
-- 
GitLab