# vim: set ts=2 et: # adapted from https://bazaar.launchpad.net/~cpe-consulting/+junk/bundles/view/head:/bundle-ha-lxc.yaml openstack-phase1: services: "nodes-api": charm: "cs:trusty/ubuntu" num_units: 3 constraints: "tags=physical" "nodes-compute": charm: "cs:trusty/ubuntu" num_units: 3 constraints: "tags=physical" "nodes-contrail": charm: "cs:trusty/ubuntu" num_units: 3 constraints: "tags=physical" "rsyslog-forwarder": charm: "cs:trusty/rsyslog-forwarder" "rsyslog": charm: "cs:trusty/rsyslog" num_units: 2 constraints: "tags=virtual" options: messages_rotate: 30 nova_logs: true syslog_rotate: 30 "ntp": charm: "cs:trusty/ntp" "cinder-ceph": charm: "cs:trusty/cinder-ceph" "hacluster-keystone": charm: "cs:trusty/hacluster" options: corosync_key: | 'QisjNpoKHLkvyc3PEdDHP5VZjgD0kOk9t0ABPWmCELlu5AgWgnW6bJd34BVXO7VhW+3ZwNQM3W+bZ3pl28ftY4ki4N/S0KLFNia5egFgiA3AH2QXLnokS7OYXuu6GMJJ1S5mDe6P5zU+tfJe/Mebq24u7CgR0gAvohSPRdDTwdY=' "hacluster-cinder": charm: "cs:trusty/hacluster" options: corosync_key: | 'hj1hELZN94OqISuOk6Eysrl1RGFnIpUugiKJq7B3/+RScspMDuOsYtNMNRkzaNXw7jmjUhW8nnaJlNo28GIbPDqvWEjFclLcgphmTwwxC1+esiEtZhtLyKR57+GRcyXrLaWZm2hI5QtnGZyJafOBhbg7lqzmfrd/9Sf5OmDmA74=' "hacluster-horizon": charm: "cs:trusty/hacluster" options: corosync_key: | 'aCVPHw6XYne+Hxv0WPiM3+yEfeIxs0Ly0EMKB494Rdzjf5rE52GcXqqxuvIa/nXJ4GCR+UdKk9FEwcASfYkeu3HDWUld9uTE6pOc+ibWYnybNH7VBfEHW8h9YmQKs3HD2T3wlTcS2irU4CUW7/IKNok4etYdM3iFn1K2ReSGXEI=' "hacluster-pxc": charm: "cs:trusty/hacluster" options: corosync_key: | '0dKCg0mlLbrWyspIqmNeqT1oXpx2VVEpw4uJRqn1xB7VPoeBxwprTNtSL/PqUxFeDstTW69cE0V74tiONwl2AF3xTuGrYy+BJnlIAea5b0F4wME64igMsFRg+6IoUMy7Qy/wR/5d15YBknTV3DUx1kTpjxqktMc4ljJpHMmhu2s=' "hacluster-nova": charm: "cs:trusty/hacluster" options: corosync_key: | 'gel86qmEze8dYKYbfqIgRpqapJpKtdYL2hxC1y5nWYBPq7EMf6V8mF01IjeUkSRs14CUDrsPpT4PWeom7EOY2fleuLx/aIuqQUfEDkhf/gvaz7BaU4hrmTCoDBK7/HvEwY+/wu4qkEeckzSRPsm9MYzqnLRshh8yjZJ70xU/mmk=' "hacluster-neutron": charm: "cs:trusty/hacluster" options: corosync_key: | 'KNhb4++3jlllbnscS5D3qdzOJDsQPEeZ7zOLZJHbkKrRjX9gRCijVVOiv2JCvq03HqQ7LIufQzWGl9Za8qh0f6QmQ3XhFh/Cb/3WaYFj+tEf0zArWv+8miswmM1z4eyTSrTWBq0dTgx1z96wjBxP5HV0+1LWW+3Ei4oZWyRGeR0=' "hacluster-glance": charm: "cs:trusty/hacluster" options: corosync_key: | 'el1dd8107J5mwQDPS7tEJPZrr0XFfL95+Tku/QG90W5Q5f5SP4W8TRfKvddGmZWZl2lVd1neG5WqaHa1mq/aScJpoflzVAJCvshN7Gd2AjHhLNNugeI8S90j/7wrKUhqiCAlkKaeri2xs5bB5PZ7Z9AHuNZL7SW1al8lxrKhUFI=' "hacluster-swift": charm: "cs:trusty/hacluster" options: corosync_key: | 'QQTNp3Dw/J3xbZGbvRibV/47CzpiS/07JI4PhdC+oPZvft556Kigu407wfgWOhxB6d+I4XtKI2hzQ46rdUvccAOov7Q3MRAax6i60w8fvXk2t671hrPUlx/w2ITi9Uwe0AkNLXcucPYQTxAT9H/vvFrWJjUisxMayVcd7HN8ANc=' "ceilometer-agent": charm: "cs:trusty/ceilometer-agent" overrides: "openstack-origin": "cloud:trusty-juno" corosync_transport: "unicast" cluster_count: 3 "use-syslog": true relations: - - "ntp:juju-info" - "rsyslog:juju-info" - - "rsyslog-forwarder:syslog" - "rsyslog:aggregator" - - "ntp:juju-info" - "nodes-api:juju-info" - - "rsyslog-forwarder:juju-info" - "nodes-api:juju-info" - - "ntp:juju-info" - "nodes-compute:juju-info" - - "rsyslog-forwarder:juju-info" - "nodes-compute:juju-info" openstack-phase2: inherits: openstack-phase1 services: "nova-compute": charm: "cs:trusty/nova-compute" num_units: 3 options: "enable-live-migration": true "enable-resize": true "migration-auth-type": ssh manage-neutron-plugin-legacy-mode: false to: - "nodes-compute=0" - "nodes-compute=1" - "nodes-compute=2" "ceph": charm: "cs:trusty/ceph" num_units: 3 options: fsid: "5a791d94-980b-11e4-b6f6-3c970e8b1cf7" "ignore-device-errors": true "monitor-secret": AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A== "osd-devices": "" "osd-reformat": "yes" to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "keystone": charm: "cs:trusty/keystone" num_units: 3 options: "admin-password": admin "admin-token": admin vip: 10.232.1.13 to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "glance": charm: "cs:trusty/glance" num_units: 3 options: vip: 10.232.1.12 to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "cinder": charm: "cs:trusty/cinder" num_units: 3 options: "block-device": None "glance-api-version": 2 vip: 10.232.1.14 to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "neutron-api": charm: "cs:trusty/neutron-api" num_units: 3 options: "neutron-security-groups": true vip: 10.232.1.17 manage-neutron-plugin-legacy-mode: false to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "nova-cloud-controller": charm: "cs:trusty/nova-cloud-controller" num_units: 3 options: "console-access-protocol": novnc "network-manager": Neutron "quantum-security-groups": "yes" "service-guard": true vip: 10.232.1.16 to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "openstack-dashboard": charm: "cs:trusty/openstack-dashboard" num_units: 3 options: secret: gmq3i4gnoq3g4gqve46v8wy5wov vip: 10.232.1.11 webroot: / to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "rabbitmq-server": charm: "cs:trusty/rabbitmq-server" num_units: 3 options: management_plugin: true to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "percona-cluster": charm: "cs:trusty/percona-cluster" num_units: 3 constraints: mem=1G options: "dataset-size": 2G "lp1366997-workaround": true "max-connections": 10000 "root-password": 293rhc395m "sst-password": 127rc14t51 vip: 10.232.1.15 to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "swift-proxy": num_units: 3 charm: "cs:trusty/swift-proxy" options: vip: 10.232.1.18 zone-assignment: 'manual' swift-hash: '047ba999e0070af0' to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "memcached": num_units: 3 charm: "cs:trusty/memcached" options: allow-ufw-ip6-softfail: "true" to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "ceilometer": num_units: 3 charm: "cs:trusty/ceilometer" options: vip: 10.232.1.19 to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" mongodb: num_units: 3 charm: "cs:trusty/mongodb" to: - "lxc:nodes-api=0" - "lxc:nodes-api=1" - "lxc:nodes-api=2" "swift-zone1": charm: "cs:trusty/swift-storage" to: - 'nodes-api=0' options: block-device: '/dev/sdb' overwrite: 'true' zone: 1 "swift-zone2": charm: "cs:trusty/swift-storage" to: - 'nodes-api=1' options: block-device: '/dev/sdb' overwrite: 'true' zone: 2 "swift-zone3": charm: "cs:trusty/swift-storage" to: - 'nodes-api=2' options: block-device: '/dev/sdb' overwrite: 'true' zone: 3 overrides: # source: "cloud:trusty-juno" "openstack-origin": "cloud:trusty-juno" use-syslog: "true" region: RegionOne relations: - - "percona-cluster:ha" - "hacluster-pxc:ha" - - "cinder:ha" - "hacluster-cinder:ha" - - "glance:ha" - "hacluster-glance:ha" - - "keystone:ha" - "hacluster-keystone:ha" - - "neutron-api:ha" - "hacluster-neutron:ha" - - "nova-cloud-controller:ha" - "hacluster-nova:ha" - - "openstack-dashboard:ha" - "hacluster-horizon:ha" - - "swift-proxy:ha" - "hacluster-swift:ha" openstack-phase3: inherits: openstack-phase2 services: "ceph-osd": charm: "cs:trusty/ceph-osd" num_units: 3 options: "osd-devices": /dev/sdb "osd-reformat": "yes" source: "cloud:trusty-juno" "use-syslog": true to: - "nodes-compute=0" - "nodes-compute=1" - "nodes-compute=2" relations: - - "nova-compute:amqp" - "rabbitmq-server:amqp" - - "nova-cloud-controller:identity-service" - "keystone:identity-service" - - "glance:identity-service" - "keystone:identity-service" - - "neutron-api:identity-service" - "keystone:identity-service" - - "neutron-api:amqp" - "rabbitmq-server:amqp" - - "glance:amqp" - "rabbitmq-server:amqp" - - "nova-cloud-controller:image-service" - "glance:image-service" - - "nova-compute:image-service" - "glance:image-service" - - "nova-cloud-controller:cloud-compute" - "nova-compute:cloud-compute" - - "nova-cloud-controller:amqp" - "rabbitmq-server:amqp" - - "openstack-dashboard:identity-service" - "keystone:identity-service" - - "nova-cloud-controller:neutron-api" - "neutron-api:neutron-api" - - "cinder:image-service" - "glance:image-service" - - "cinder:amqp" - "rabbitmq-server:amqp" - - "cinder:identity-service" - "keystone:identity-service" - - "swift-proxy:identity-service" - "keystone:identity-service" - - "nova-cloud-controller:cinder-volume-service" - "cinder:cinder-volume-service" - - "cinder:storage-backend" - "cinder-ceph:storage-backend" - - "nova-compute:ceph" - "ceph:client" - - "cinder-ceph:ceph" - "ceph:client" - - "glance:ceph" - "ceph:client" - - "ceph-osd:mon" - "ceph:osd" - - "glance:shared-db" - "percona-cluster:shared-db" - - "keystone:shared-db" - "percona-cluster:shared-db" - - "cinder:shared-db" - "percona-cluster:shared-db" - - "nova-cloud-controller:shared-db" - "percona-cluster:shared-db" - - "neutron-api:shared-db" - "percona-cluster:shared-db" - - "rsyslog-forwarder:juju-info" - "openstack-dashboard:juju-info" - - "rsyslog-forwarder:juju-info" - "glance:juju-info" - - "rsyslog-forwarder:juju-info" - "keystone:juju-info" - - "rsyslog-forwarder:juju-info" - "cinder:juju-info" - - "rsyslog-forwarder:juju-info" - "percona-cluster:juju-info" - - "rsyslog-forwarder:juju-info" - "nova-compute:juju-info" - - "rsyslog-forwarder:juju-info" - "rabbitmq-server:juju-info" - - "memcached:cache" - "nova-cloud-controller:memcache" - - "nova-compute:nova-ceilometer" - "ceilometer-agent:nova-ceilometer" - - "rsyslog-forwarder:juju-info" - "nova-cloud-controller:juju-info" - - "rsyslog-forwarder:juju-info" - "neutron-api:juju-info" - - "rsyslog-forwarder:juju-info" - "ceph:juju-info" - - "rsyslog-forwarder:juju-info" - "ceph-osd:juju-info" - - "ceilometer:shared-db" - "mongodb:database" - - "ceilometer:ceilometer-service" - "ceilometer-agent:ceilometer-service" - - "ceilometer:identity-notifications" - "keystone:identity-notifications" - - "ceilometer:identity-service" - "keystone:identity-service" - - "ceilometer:amqp" - "rabbitmq-server:amqp" - - "swift-proxy:swift-storage" - "swift-zone1:swift-storage" - - "swift-proxy:swift-storage" - "swift-zone2:swift-storage" - - "swift-proxy:swift-storage" - "swift-zone3:swift-storage" contrail: inherits: openstack-phase3 services: "nodes-contrail": charm: "cs:trusty/ubuntu" num_units: 3 constraints: "tags=physical" cassandra: branch: lp:~charmers/charms/precise/cassandra/trunk series: precise constraints: mem=8G root-disk=20G num_units: 3 to: - "lxc:nodes-contrail=0" - "lxc:nodes-contrail=1" - "lxc:nodes-contrail=2" zookeeper: branch: lp:~charmers/charms/precise/zookeeper/trunk series: precise constraints: mem=1G num_units: 3 to: - "lxc:nodes-contrail=0" - "lxc:nodes-contrail=1" - "lxc:nodes-contrail=2" contrail-control: branch: lp:~sdn-charmers/charms/trusty/contrail-control/trunk series: trusty constraints: mem=2G num_units: 2 to: - "lxc:nodes-contrail=0" - "lxc:nodes-contrail=2" contrail-analytics: branch: lp:~sdn-charmers/charms/trusty/contrail-analytics/trunk series: trusty constraints: mem=4G num_units: 2 to: - "lxc:nodes-contrail=0" - "lxc:nodes-contrail=1" contrail-webui: branch: lp:~sdn-charmers/charms/trusty/contrail-webui/trunk series: trusty num_units: 2 to: - "lxc:nodes-contrail=1" - "lxc:nodes-contrail=2" neutron-api-contrail: branch: lp:~sdn-charmers/charms/trusty/neutron-api-contrail/trunk series: trusty neutron-contrail: branch: lp:~sdn-charmers/charms/trusty/neutron-contrail/trunk series: trusty haproxy: charm: cs:trusty/haproxy options: peering_mode: active-active num_units: 2 constraints: "tags=virtual" contrail-configuration: branch: lp:~sdn-charmers/charms/trusty/contrail-configuration/trunk series: trusty constraints: mem=4G options: vip: 10.232.1.20 num_units: 2 to: - "lxc:nodes-contrail=1" - "lxc:nodes-contrail=2" keepalived: branch: lp:~sdn-charmers/charms/trusty/keepalived/trunk series: trusty options: virtual-ip: 10.232.1.20 router-id: 1 # must be identical as contrail-configuration vip nova-compute: options: manage-neutron-plugin-legacy-mode: false neutron-api: options: manage-neutron-plugin-legacy-mode: false overrides: admin-role: admin relations: - - "contrail-configuration:cassandra" - "cassandra:database" - - contrail-configuration - zookeeper - - contrail-configuration - rabbitmq-server - - contrail-configuration - keystone - - neutron-api-contrail - contrail-configuration - - neutron-api-contrail - keystone - - neutron-api-contrail - neutron-api - - "contrail-control:contrail-api" - "contrail-configuration:contrail-api" - - "contrail-control:contrail-discovery" - "contrail-configuration:contrail-discovery" - - "contrail-control:contrail-ifmap" - "contrail-configuration:contrail-ifmap" - - contrail-control - keystone - - "contrail-analytics:cassandra" - "cassandra:database" - - contrail-analytics - contrail-configuration - - contrail-webui - keystone - - "contrail-webui:contrail_api" - "contrail-configuration:contrail-api" - - "contrail-webui:contrail_discovery" - "contrail-configuration:contrail-discovery" - - "contrail-webui:cassandra" - "cassandra:database" - - nova-compute - neutron-contrail - - "neutron-contrail:contrail-discovery" - "contrail-configuration:contrail-discovery" - - "neutron-contrail:contrail-api" - "contrail-configuration:contrail-api" - - neutron-contrail - keystone - - contrail-configuration - haproxy - - contrail-analytics - haproxy - - contrail-webui - haproxy - - haproxy - keepalived - - "ntp:juju-info" - "nodes-contrail:juju-info" - - "rsyslog-forwarder:juju-info" - "nodes-contrail:juju-info" - - "ntp:juju-info" - "rsyslog:juju-info" - - "ntp:juju-info" - "contrail-control:juju-info" - - "ntp:juju-info" - "contrail-webui:juju-info" - - "ntp:juju-info" - "contrail-configuration:juju-info" - - "ntp:juju-info" - "contrail-analytics:juju-info" - - "ntp:juju-info" - "rabbitmq-server:juju-info" - - "ntp:juju-info" - "nova-compute:juju-info" - - "ntp:juju-info" - "ceilometer:juju-info" - - "ntp:juju-info" - "haproxy:juju-info" - - "ntp:juju-info" - "memcached:juju-info" series: trusty