# vim: set ts=2 et:
trusty-mitaka-nodes:
  inherits: openstack-phase1
 
trusty-mitaka:
  inherits: openstack-phase2
  overrides:
     #os-data-network: 10.4.8.0/21
     #ceph-cluster-network: 10.4.0.0/21
     #prefer-ipv6: true
     #enable-dvr: true
     #l2-population: true
     region: Canonical
     #source: "cloud:trusty-mitaka"
     openstack-origin: "cloud:trusty-mitaka"
     ceph-osd-replication-count: 2
     admin-role: admin
     keystone-admin-role: admin

openstack-phase1:
  services:
  nodes:
    charm: "cs:trusty/ubuntu"
    num_units: 2
  ntp:
    charm: "local:trusty/ntp"
  relations:
  - - "ntp:juju-info"
    - "nodes:juju-info"

openstack-phase2:
  inherits: openstack-phase1
  relations:
    - - "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"
      - "mysql:shared-db"
    - - "nova-cloud-controller:shared-db"
      - "mysql: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"
      - "mysql:shared-db"
    - - "glance:identity-service"
      - "keystone:identity-service"
    - - "glance:amqp"
      - "rabbitmq-server:amqp"
    - - "openstack-dashboard:identity-service"
      - "keystone:identity-service"
    - - "neutron-api:shared-db"
      - "mysql: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"
      - "mysql: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"
      - "mysql: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"
    #- - nova-compute:lxd
      #- lxd:lxd
    - - congress:shared-db
      - mysql:shared-db
    - - congress:identity-service
      - keystone:identity-service
    - - congress:amqp
      - rabbitmq-server:amqp
  services:
    mysql:
      charm: "local:trusty/percona-cluster"
      options:
        dataset-size: 2G
        max-connections: 10000
      to:
        - "lxc:nodes=0"
    ceilometer:
      charm: "local:trusty/ceilometer"
      to:
        - "lxc:nodes=1"
    ceilometer-agent:
      charm: "local:trusty/ceilometer-agent"
    mongodb:
      charm: "cs:trusty/mongodb"
      to:
        - "lxc:nodes=0"
    heat:
      charm: "local:trusty/heat"
      to:
        - "lxc:nodes=1"
    ceph:
      charm: "local:trusty/ceph"
      num_units: 2
      options:
        fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7
        monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A==
        monitor-count: 2
#        osd-reformat: 'no'
#        ceph-cluster-network: 192.168.0.0/24
#        ceph-public-network: 192.168.0.0/24
      to:
        - "lxc:nodes=1"
        - "lxc:nodes=0"
    ceph-osd:
      charm: "local:trusty/ceph-osd"
      num_units: 2
      options:
        osd-devices: /srv
        osd-reformat: 'yes'
      to:
        - "nodes=0"
        - "nodes=1"
    ceph-radosgw:
      charm: "local:trusty/ceph-radosgw"
      options:
        use-embedded-webserver: true
        operator-roles: "Member,admin"
      to:
        - "lxc:nodes=0"
    cinder:
      charm: "local:trusty/cinder"
      options:
        block-device: None
        glance-api-version: 2
      to:
        - "lxc:nodes=1"
    cinder-ceph:
      charm: "local:trusty/cinder-ceph"
    rabbitmq-server:
      charm: "local:trusty/rabbitmq-server"
      to:
        - "lxc:nodes=0"
    keystone:
      charm: "local:trusty/keystone"
      options:
        admin-password: openstack
        admin-token: admin
      to:
        - "lxc:nodes=1"
    openstack-dashboard:
      charm: "local:trusty/openstack-dashboard"
      options:
        secret: admin
        webroot: /
      to:
        - "lxc:nodes=0"
    nova-compute:
      charm: local:trusty/nova-compute
      options:
        enable-live-migration: true
        enable-resize: true
        manage-neutron-plugin-legacy-mode: false
        migration-auth-type: ssh
      to:
        - "nodes=1"
    nova-cloud-controller:
      charm: "local:trusty/nova-cloud-controller"
      options:
        console-access-protocol: novnc
        network-manager: Neutron
      to:
        - "lxc:nodes=1"
    neutron-api:
      charm: local:trusty/neutron-api
      options:
        neutron-security-groups: True
        manage-neutron-plugin-legacy-mode: False
      to:
        - "lxc:nodes=0"
    neutron-gateway:
      charm: "local:trusty/neutron-gateway"
      options:
        #ext-port: "eth1"
        plugin: onos
        instance-mtu: 1400
      to:
        - "nodes=0"
    onos-controller:
      charm: "local:trusty/onos-controller"
      options:
        #ext-port: "eth1"
        #gateway-mac: "default"
      to:
        - "lxc:nodes=1"
    glance:
      charm: local:trusty/glance
      to:
        - "lxc:nodes=0"
    opnfv-promise:
      charm: local:trusty/promise
      to:
        - "lxc:nodes=1"
    neutron-api-onos:
      charm: "local:trusty/neutron-api-onos"
      options:
        overlay-network-type: 'vxlan'
        security-groups: True
    openvswitch-onos:
      charm: "local:trusty/openvswitch-onos"
    congress:
      charm: local:trusty/congress
      options:
        #source-branch: stable/mitaka
      to:
        - "lxc:nodes=0"