# vim: set ts=2 et:
openstack-phase1:
  series: trusty
  services:
    nodes-api:
      charm: "cs:trusty/ubuntu"
      num_units: 3
      constraints: tags=control
    nodes-compute:
      charm: "cs:trusty/ubuntu"
      num_units: 2
      constraints: tags=compute
    ntp:
      charm: "cs:trusty/ntp"
  relations:
    - - "ntp:juju-info"
      - "nodes-api:juju-info"
    - - "ntp:juju-info"
      - "nodes-compute:juju-info"
openstack-phase2:
  inherits: openstack-phase1
  services:
    percona-cluster:
      branch: "lp:~openstack-charmers/charms/trusty/percona-cluster/next"
      num_units: 3
      options:
        dataset-size: 2G
        lp1366997-workaround: true
        max-connections: 10000
        root-password: 293rhc395m
        sst-password: 127rc14t51
        vip: 10.4.1.15
      to:
        - "lxc:nodes-api=1"
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=2"
    hacluster-keystone:
      branch: "lp:~openstack-charmers/charms/trusty/hacluster/next"
      options:
        corosync_key: |
          'QisjNpoKHLkvyc3PEdDHP5VZjgD0kOk9t0ABPWmCELlu5AgWgnW6bJd34BVXO7VhW+3ZwNQM3W+bZ3pl28ftY4ki4N/S0KLFNia5egFgiA3AH2QXLnokS7OYXuu6GMJJ1S5mDe6P5zU+tfJe/Mebq24u7CgR0gAvohSPRdDTwdY='
    hacluster-horizon:
      branch: "lp:~openstack-charmers/charms/trusty/hacluster/next"
      options:
        corosync_key: |
          'aCVPHw6XYne+Hxv0WPiM3+yEfeIxs0Ly0EMKB494Rdzjf5rE52GcXqqxuvIa/nXJ4GCR+UdKk9FEwcASfYkeu3HDWUld9uTE6pOc+ibWYnybNH7VBfEHW8h9YmQKs3HD2T3wlTcS2irU4CUW7/IKNok4etYdM3iFn1K2ReSGXEI='
    hacluster-nova:
      branch: "lp:~openstack-charmers/charms/trusty/hacluster/next"
      options:
        corosync_key: |
          'gel86qmEze8dYKYbfqIgRpqapJpKtdYL2hxC1y5nWYBPq7EMf6V8mF01IjeUkSRs14CUDrsPpT4PWeom7EOY2fleuLx/aIuqQUfEDkhf/gvaz7BaU4hrmTCoDBK7/HvEwY+/wu4qkEeckzSRPsm9MYzqnLRshh8yjZJ70xU/mmk='
    hacluster-neutron: 
      branch: "lp:~openstack-charmers/charms/trusty/hacluster/next"
      options:
        corosync_key: |
          'KNhb4++3jlllbnscS5D3qdzOJDsQPEeZ7zOLZJHbkKrRjX9gRCijVVOiv2JCvq03HqQ7LIufQzWGl9Za8qh0f6QmQ3XhFh/Cb/3WaYFj+tEf0zArWv+8miswmM1z4eyTSrTWBq0dTgx1z96wjBxP5HV0+1LWW+3Ei4oZWyRGeR0='
    hacluster-glance:
      branch: "lp:~openstack-charmers/charms/trusty/hacluster/next"
      options:
        corosync_key: |
          'el1dd8107J5mwQDPS7tEJPZrr0XFfL95+Tku/QG90W5Q5f5SP4W8TRfKvddGmZWZl2lVd1neG5WqaHa1mq/aScJpoflzVAJCvshN7Gd2AjHhLNNugeI8S90j/7wrKUhqiCAlkKaeri2xs5bB5PZ7Z9AHuNZL7SW1al8lxrKhUFI='
    hacluster-ceilometer:
      branch: "lp:~openstack-charmers/charms/trusty/hacluster/next"
      options:
        corosync_key: |
          'cHkgKGJpdHMgPSA5NjApLgpQcmVzcyBrZXlzIG9uIHlvdXIga2V5Ym9hcmQgdG8gZ2VuZXJhdGUgZW50cm9weSAoYml0cyA9IDEwMDgpLgpXcml0aW5nIGNvcm9zeW5jIGtleSB0byAvZXRjL2Nvcm9zeW5jL2F1dGhrZXkuCg=='
    ceilometer:
      branch: "lp:~openstack-charmers/charms/trusty/ceilometer/next"
      num_units: 3
      options:
        vip: 10.4.1.14
      to:
        - "lxc:nodes-api=2"
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=1"
    ceilometer-agent:
      branch: "lp:~openstack-charmers/charms/trusty/ceilometer-agent/next"
    mongodb:
      charm: "cs:trusty/mongodb"
      num_units: 1
      to:
        - "lxc:nodes-api=0"
    heat:
      branch: "lp:~openstack-charmers/charms/trusty/heat/next"
      to:
        - "lxc:nodes-api=0"
    ceph:
      branch: "lp:~openstack-charmers/charms/trusty/ceph/next"
      num_units: 3
      options:
        fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7
        monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A==
        osd-devices: ""
        monitor-count: 3
#        osd-reformat: 'no'
#        ceph-cluster-network: 192.168.0.0/24
#        ceph-public-network: 192.168.0.0/24
      to:
        - "lxc:nodes-api=2"
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=1"
    ceph-osd:
      branch: "lp:~openstack-charmers/charms/trusty/ceph-osd/next"
      num_units: 2
      options:
        osd-devices: /srv
        osd-reformat: 'yes'
      to:
        - "nodes-compute=0"
        - "nodes-compute=1"
    ceph-radosgw:
      branch: "lp:~openstack-charmers/charms/trusty/ceph-radosgw/next"
      num_units: 3
      options:
        use-embedded-webserver: true
        operator-roles: "Member,admin"
      to:
        - "lxc:nodes-api=1"
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=2"

    cinder:
      branch: "lp:~openstack-charmers/charms/trusty/cinder/next"
      num_units: 3
      options:
        block-device: None
        glance-api-version: 2
#        ha-mcastport: 5401
      to:
        - "lxc:nodes-api=2"
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=1"
    cinder-ceph:
      branch: "lp:~openstack-charmers/charms/trusty/cinder-ceph/next"
    rabbitmq-server: 
      branch: "lp:~openstack-charmers/charms/trusty/rabbitmq-server/next"
      num_units: 3
      to:
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=1"
        - "lxc:nodes-api=2"
    keystone: 
      branch: "lp:~openstack-charmers/charms/trusty/keystone/next"
      num_units: 3
      options: 
#        ha-mcastport: 5402
        admin-password: openstack
        admin-token: admin
        vip: 10.4.1.13
      to:
        - "lxc:nodes-api=1"
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=2"
    openstack-dashboard: 
      branch: "lp:~openstack-charmers/charms/trusty/openstack-dashboard/next"
      num_units: 3
      options: 
        secret: admin
        vip: 10.4.1.11
        webroot: /
      to:
        - "lxc:nodes-api=2"
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=1"
    nova-compute: 
      branch: lp:~openstack-charmers/charms/trusty/nova-compute/next
      num_units: 2
      options: 
        enable-live-migration: False
        manage-neutron-plugin-legacy-mode: False
      to:
        - "nodes-compute=0"
        - "nodes-compute=1"
#        - "nodes-api=0"
#        - "nodes-api=1"
#        - "nodes-api=2"
    nova-cloud-controller:
      branch: "lp:~openstack-charmers/charms/trusty/nova-cloud-controller/next"
      num_units: 3
      options:
        console-access-protocol: novnc
        network-manager: Neutron
        quantum-security-groups: "yes"
        service-guard: true
        vip: 10.4.1.16
      to:
        - "lxc:nodes-api=1"
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=2"
    neutron-api:
      branch: lp:~openstack-charmers/charms/trusty/neutron-api/next
      num_units: 3
      options:
        neutron-security-groups: True
        manage-neutron-plugin-legacy-mode: False
        vip: 10.4.1.17
      to:
        - "lxc:nodes-api=2"
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=1"
    neutron-gateway:
      branch: "lp:~wuwenbin2/onosfw/neutron-gateway"
      options:
        #ext-port: "eth1"
        plugin: onos
        instance-mtu: 1400
      to:
        - "nodes-api=0"
    onos-controller:
      branch: "lp:~wuwenbin2/onosfw/onos-controller"
      options:
        #ext-port: "eth1"
      to:
        - "lxc:nodes-api=1"
    glance:
      branch: lp:~openstack-charmers/charms/trusty/glance/next
      num_units: 3
      options:
        vip: 10.4.1.12
#        ha-mcastport: 5402
      to:
        - "lxc:nodes-api=2"
        - "lxc:nodes-api=0"
        - "lxc:nodes-api=1"
    opnfv-promise:
      branch: lp:~narindergupta/charms/trusty/promise/trunk
      num_units: 1
      to:
        - "lxc:nodes-api=2"
    neutron-api-onos:
      branch: "lp:~wuwenbin2/onosfw/neutron-api-onos"
      options:
        overlay-network-type: 'vxlan'
        security-groups: True
    openvswitch-onos:
      branch: "lp:~wuwenbin2/onosfw/openvswitch-onos"
  relations:
    - - "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"
    - - "ceilometer:ha"
      - "hacluster-ceilometer:ha"
    - - "neutron-api:neutron-plugin-api-subordinate"
      - "neutron-api-onos:neutron-plugin-api-subordinate"
    - - "nova-compute:neutron-plugin"
      - "openvswitch-onos:neutron-plugin"
    - - "neutron-gateway"
      - "openvswitch-onos"
    - - "openvswitch-onos:ovsdb-manager"
      - "onos-controller:ovsdb-manager"
    - - "neutron-api-onos:onos-controller"
      - "onos-controller:controller-api"
    - - "keystone:shared-db"
      - "percona-cluster:shared-db"
    - - "nova-cloud-controller:shared-db"
      - "percona-cluster:shared-db"
    - - "nova-cloud-controller:amqp"
      - "rabbitmq-server:amqp"
    - - "nova-cloud-controller:image-service"
      - "glance:image-service"
    - - "nova-cloud-controller:identity-service"
      - "keystone:identity-service"
    - - "nova-cloud-controller:cloud-compute"
      - "nova-compute:cloud-compute"
    - - "nova-compute:amqp"
      - "rabbitmq-server:amqp"
    - - "nova-compute:image-service"
      - "glance:image-service"
    - - "glance:shared-db"
      - "percona-cluster:shared-db"
    - - "glance:identity-service"
      - "keystone:identity-service"
    - - "glance:amqp"
      - "rabbitmq-server:amqp"
    - - "openstack-dashboard:identity-service"
      - "keystone:identity-service"
    - - "neutron-api:shared-db"
      - "percona-cluster:shared-db"
    - - "neutron-api:amqp"
      - "rabbitmq-server:amqp"
    - - "nova-cloud-controller:neutron-api"
      - "neutron-api:neutron-api"
    - - "neutron-api: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"
    - - "ceilometer:amqp"
      - "rabbitmq-server:amqp"
    - - "ceilometer-agent:ceilometer-service"
      - "ceilometer:ceilometer-service"
    - - "ceilometer:identity-service"
      - "keystone:identity-service"
    - - "ceilometer:identity-notifications"
      - "keystone:identity-notifications"
    - - "ceilometer-agent:nova-ceilometer"
      - "nova-compute:nova-ceilometer"
    - - "ceilometer:shared-db"
      - "mongodb:database"
    - - "heat:shared-db"
      - "percona-cluster:shared-db"
    - - "heat:identity-service"
      - "keystone:identity-service"
    - - "heat:amqp"
      - "rabbitmq-server:amqp"
    - - "cinder:image-service"
      - "glance:image-service"
    - - "cinder:amqp"
      - "rabbitmq-server:amqp"
    - - "cinder:identity-service"
      - "keystone:identity-service"
    - - "cinder:cinder-volume-service"
      - "nova-cloud-controller:cinder-volume-service"
    - - "cinder-ceph:storage-backend"
      - "cinder:storage-backend"
    - - "ceph:client"
      - "nova-compute:ceph"
    - - "cinder:shared-db"
      - "percona-cluster:shared-db"
    - - "ceph:client"
      - "cinder-ceph:ceph"
    - - "ceph:client"
      - "glance:ceph"
    - - "ceph-osd:mon"
      - "ceph:osd"
    - - "ceph-radosgw:mon"
      - "ceph:radosgw"
    - - "ceph-radosgw:identity-service"
      - "keystone:identity-service"

trusty-liberty-nodes:
  inherits: openstack-phase1
  overrides:
    series: trusty

trusty-liberty:
  inherits: openstack-phase2
  overrides:
    cluster_count: 3
    #os-data-network: 10.4.8.0/21
    #ceph-cluster-network: 10.4.0.0/21
    #prefer-ipv6: true
    region: Canonical
    source: "cloud:trusty-liberty"
    openstack-origin: "cloud:trusty-liberty"
    series: trusty
    ceph-osd-replication-count: 2
    admin-role: admin
    keystone-admin-role: admin

trusty-kilo-nodes:
  inherits: openstack-phase1
  overrides:
    series: trusty

trusty-kilo:
  inherits: openstack-phase2
  overrides:
    cluster_count: 3
    #os-data-network: 10.4.8.0/21
    #ceph-cluster-network: 10.4.0.0/21
    #prefer-ipv6: true
    region: Canonical
    source: "cloud:trusty-kilo"
    openstack-origin: "cloud:trusty-kilo"
    series: trusty
    ceph-osd-replication-count: 2
    admin-role: admin
    keystone-admin-role: admin

trusty-juno-nodes:
  inherits: openstack-phase1
  overrides:
    series: trusty

trusty-juno:
  inherits: openstack-phase2
  overrides:
    cluster_count: 3
    #os-data-network: 10.4.8.0/21
    #ceph-cluster-network: 10.4.0.0/21
    #prefer-ipv6: true
    region: Canonical
    source: "cloud:trusty-juno"
    openstack-origin: "cloud:trusty-juno"
    series: trusty
    ceph-osd-replication-count: 2
    admin-role: admin
    keystone-admin-role: admin