aboutsummaryrefslogtreecommitdiffstats
path: root/framework/scripts/installer/joid/onos/juju-deployer
diff options
context:
space:
mode:
Diffstat (limited to 'framework/scripts/installer/joid/onos/juju-deployer')
-rw-r--r--framework/scripts/installer/joid/onos/juju-deployer/onos-ha.yaml384
-rw-r--r--framework/scripts/installer/joid/onos/juju-deployer/onos-tip.yaml284
-rw-r--r--framework/scripts/installer/joid/onos/juju-deployer/onos.yaml297
-rw-r--r--framework/scripts/installer/joid/onos/juju-deployer/scripts/cloud-setup.sh39
-rw-r--r--framework/scripts/installer/joid/onos/juju-deployer/scripts/glance.sh9
-rw-r--r--framework/scripts/installer/joid/onos/juju-deployer/scripts/openstack.sh36
6 files changed, 1049 insertions, 0 deletions
diff --git a/framework/scripts/installer/joid/onos/juju-deployer/onos-ha.yaml b/framework/scripts/installer/joid/onos/juju-deployer/onos-ha.yaml
new file mode 100644
index 00000000..a1b26887
--- /dev/null
+++ b/framework/scripts/installer/joid/onos/juju-deployer/onos-ha.yaml
@@ -0,0 +1,384 @@
+# 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=0"
+ - "lxc:nodes-api=1"
+ - "lxc:nodes-api=2"
+ "hacluster-keystone":
+ charm: "cs:trusty/hacluster"
+ options:
+ corosync_key: |
+ 'QisjNpoKHLkvyc3PEdDHP5VZjgD0kOk9t0ABPWmCELlu5AgWgnW6bJd34BVXO7VhW+3ZwNQM3W+bZ3pl28ftY4ki4N/S0KLFNia5egFgiA3AH2QXLnokS7OYXuu6GMJJ1S5mDe6P5zU+tfJe/Mebq24u7CgR0gAvohSPRdDTwdY='
+ "hacluster-horizon":
+ charm: "cs:trusty/hacluster"
+ options:
+ corosync_key: |
+ 'aCVPHw6XYne+Hxv0WPiM3+yEfeIxs0Ly0EMKB494Rdzjf5rE52GcXqqxuvIa/nXJ4GCR+UdKk9FEwcASfYkeu3HDWUld9uTE6pOc+ibWYnybNH7VBfEHW8h9YmQKs3HD2T3wlTcS2irU4CUW7/IKNok4etYdM3iFn1K2ReSGXEI='
+ "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-ceilometer":
+ charm: "cs:trusty/hacluster"
+ 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=0"
+ - "lxc:nodes-api=1"
+ - "lxc:nodes-api=2"
+ "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:
+ charm: cs:trusty/ceph
+ num_units: 2
+ options:
+ fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7
+ monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A==
+ osd-devices: /srv
+ monitor-count: 1
+ osd-reformat: 'no'
+# ceph-cluster-network: 192.168.0.0/24
+# ceph-public-network: 192.168.0.0/24
+ to:
+ - "nodes-compute=0"
+ - "nodes-compute=1"
+ ceph-osd:
+ charm: cs:trusty/ceph-osd
+ num_units: 1
+ options:
+ osd-devices: /srv
+ osd-reformat: 'yes'
+ to:
+ - "nodes-api=0"
+ ceph-radosgw:
+ charm: cs:trusty/ceph-radosgw
+ num_units: 3
+ options:
+ use-embedded-webserver: true
+ 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
+# ha-mcastport: 5401
+ to:
+ - "lxc:nodes-api=0"
+ - "lxc:nodes-api=1"
+ - "lxc:nodes-api=2"
+ cinder-ceph:
+ charm: cs:trusty/cinder-ceph
+ "rabbitmq-server":
+ branch: lp:charms/trusty/rabbitmq-server
+ num_units: 3
+ to:
+ - "lxc:nodes-api=0"
+ - "lxc:nodes-api=1"
+ - "lxc:nodes-api=2"
+ "keystone":
+ branch: lp:charms/trusty/keystone
+ num_units: 3
+ options:
+# ha-mcastport: 5402
+ "admin-password": openstack
+ "admin-token": admin
+ "admin-role": admin
+ vip: 10.4.1.13
+ to:
+ - "lxc:nodes-api=0"
+ - "lxc:nodes-api=1"
+ - "lxc:nodes-api=2"
+ "openstack-dashboard":
+ branch: lp:charms/trusty/openstack-dashboard
+ num_units: 3
+ options:
+ secret: admin
+ vip: 10.4.1.11
+ webroot: /
+ to:
+ - "lxc:nodes-api=0"
+ - "lxc:nodes-api=1"
+ - "lxc:nodes-api=2"
+ "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:charms/trusty/nova-cloud-controller
+ 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=0"
+ - "lxc:nodes-api=1"
+ - "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=0"
+ - "lxc:nodes-api=1"
+ - "lxc:nodes-api=2"
+ 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"
+ to:
+ - "lxc:nodes-api=1"
+ "glance":
+ branch: lp:charms/trusty/glance
+ num_units: 3
+ options:
+ vip: 10.4.1.12
+# ha-mcastport: 5402
+ to:
+ - "lxc:nodes-api=0"
+ - "lxc:nodes-api=1"
+ - "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
+ #prefer-ipv6: true
+ region: Canonical
+ source: "cloud:trusty-liberty"
+ "openstack-origin": "cloud:trusty-liberty"
+ series: trusty
+ ceph-osd-replication-count: 2
+
+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
+ #prefer-ipv6: true
+ region: Canonical
+ source: "cloud:trusty-kilo"
+ "openstack-origin": "cloud:trusty-kilo"
+ series: trusty
+ ceph-osd-replication-count: 2
+
+
+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
+ #prefer-ipv6: true
+ region: Canonical
+ source: "cloud:trusty-juno"
+ "openstack-origin": "cloud:trusty-juno"
+ series: trusty
+ ceph-osd-replication-count: 2
+
+
diff --git a/framework/scripts/installer/joid/onos/juju-deployer/onos-tip.yaml b/framework/scripts/installer/joid/onos/juju-deployer/onos-tip.yaml
new file mode 100644
index 00000000..049ca08e
--- /dev/null
+++ b/framework/scripts/installer/joid/onos/juju-deployer/onos-tip.yaml
@@ -0,0 +1,284 @@
+# vim: set ts=2 et:
+openstack-phase1:
+ series: trusty
+ services:
+ nodes-api:
+ charm: "cs:trusty/ubuntu"
+ num_units: 1
+ constraints: tags=control
+ nodes-compute:
+ charm: "cs:trusty/ubuntu"
+ num_units: 1
+ 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:
+ "mysql":
+ charm: "cs:trusty/mysql"
+ num_units: 1
+ options:
+ "dataset-size": 2G
+ "max-connections": 10000
+ to:
+ - "lxc:nodes-api=0"
+ "ceilometer":
+ branch: "lp:~openstack-charmers/charms/trusty/ceilometer/next"
+ num_units: 1
+ to:
+ - "lxc:nodes-api=0"
+ "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:
+ charm: cs:trusty/ceph
+ num_units: 1
+ options:
+ fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7
+ monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A==
+ osd-devices: /srv
+ monitor-count: 1
+ osd-reformat: 'no'
+# ceph-cluster-network: 192.168.0.0/24
+# ceph-public-network: 192.168.0.0/24
+ to:
+ - "nodes-compute=0"
+# - "nodes-compute=1"
+# ceph-osd:
+# charm: cs:trusty/ceph-osd
+# num_units: 1
+# options:
+# osd-devices: /dev/sdb
+# osd-reformat: 'yes'
+# to:
+# - "lxc:nodes-api=0"
+# ceph-radosgw:
+# charm: cs:trusty/ceph-radosgw
+# num_units: 1
+# options:
+# use-embedded-webserver: true
+# to:
+
+# - "lxc:nodes-api=0"
+ cinder:
+ charm: cs:trusty/cinder
+ num_units: 1
+ options:
+ block-device: None
+ glance-api-version: 2
+# ha-mcastport: 5401
+# openstack-origin-git: include-file://cinder-master.yaml
+ to:
+ - "lxc:nodes-api=0"
+ cinder-ceph:
+ charm: cs:trusty/cinder-ceph
+ "rabbitmq-server":
+ branch: lp:charms/trusty/rabbitmq-server
+ num_units: 1
+ to:
+ - "lxc:nodes-api=0"
+ "keystone":
+ branch: lp:charms/trusty/keystone
+ num_units: 1
+ options:
+ openstack-origin-git: include-file://keystone-master.yaml
+ "admin-password": openstack
+ "admin-token": admin
+ "admin-role": admin
+ to:
+ - "lxc:nodes-api=0"
+ "openstack-dashboard":
+ branch: lp:charms/trusty/openstack-dashboard
+ num_units: 1
+ options:
+ openstack-origin-git: include-file://horizon-master.yaml
+ secret: admin
+ to:
+ - "lxc:nodes-api=0"
+ "nova-compute":
+ branch: lp:~openstack-charmers/charms/trusty/nova-compute/next
+ num_units: 1
+ options:
+ openstack-origin-git: include-file://nova-master.yaml
+ "enable-live-migration": False
+ "manage-neutron-plugin-legacy-mode": False
+ to:
+ - "nodes-compute=0"
+# - "nodes-compute=1"
+ "nova-cloud-controller":
+ branch: lp:charms/trusty/nova-cloud-controller
+ num_units: 1
+ options:
+ openstack-origin-git: include-file://nova-master.yaml
+ "console-access-protocol": novnc
+ "network-manager": Neutron
+ "quantum-security-groups": "yes"
+ to:
+ - "lxc:nodes-api=0"
+ "neutron-api":
+ branch: lp:~openstack-charmers/charms/trusty/neutron-api/next
+ num_units: 1
+ options:
+ neutron-security-groups: True
+ manage-neutron-plugin-legacy-mode: False
+ to:
+ - "lxc:nodes-api=0"
+ neutron-gateway:
+ branch: "lp:~wuwenbin2/onosfw/neutron-gateway"
+ options:
+ openstack-origin-git: include-file://neutron-master.yaml
+# "ext-port": "eth1"
+ plugin: ovs-onos
+ instance-mtu: 1400
+ to:
+ - "nodes-api=0"
+ onos-controller:
+ branch: "lp:~wuwenbin2/onosfw/onos-controller"
+ to:
+ - "lxc:nodes-api=0"
+ "glance":
+ branch: lp:charms/trusty/glance
+ num_units: 1
+ options:
+ openstack-origin-git: include-file://glance-master.yaml
+ to:
+ - "lxc:nodes-api=0"
+ 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:
+ - - "nova-compute:neutron-plugin"
+ - "neutron-api:neutron-plugin"
+ - - "neutron-gateway"
+ - "onos-controller:ovsdb-manager"
+ - - "nova-compute:ovsdb-manager"
+ - "onos-controller:ovsdb-manager"
+ - - "neutron-api: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"
+trusty-liberty-nodes:
+ inherits: openstack-phase1
+ overrides:
+ series: trusty
+
+trusty-liberty:
+ inherits: openstack-phase2
+ overrides:
+ #os-data-network: 10.4.8.0/21
+ #prefer-ipv6: true
+ region: Canonical
+ source: "cloud:trusty-liberty"
+ "openstack-origin": "cloud:trusty-liberty"
+ series: trusty
+ ceph-osd-replication-count: 1
+
+trusty-kilo-nodes:
+ inherits: openstack-phase1
+ overrides:
+ series: trusty
+
+# master
+trusty-kilo:
+ inherits: openstack-phase2
+ series: trusty
+ overrides:
+ region: Canonical
+ #os-data-network: 10.4.8.0/21
+ #prefer-ipv6: true
+ openstack-origin: cloud:trusty-kilo
+ source: cloud:trusty-kilo
+ series: trusty
+ ceph-osd-replication-count: 1
+
+
diff --git a/framework/scripts/installer/joid/onos/juju-deployer/onos.yaml b/framework/scripts/installer/joid/onos/juju-deployer/onos.yaml
new file mode 100644
index 00000000..44638d2f
--- /dev/null
+++ b/framework/scripts/installer/joid/onos/juju-deployer/onos.yaml
@@ -0,0 +1,297 @@
+# vim: set ts=2 et:
+openstack-phase1:
+ series: trusty
+ services:
+ nodes-api:
+ charm: "cs:trusty/ubuntu"
+ num_units: 1
+ constraints: tags=control
+ nodes-compute:
+ charm: "cs:trusty/ubuntu"
+ num_units: 1
+ 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:
+ "mysql":
+ charm: "cs:trusty/mysql"
+ num_units: 1
+ options:
+ "dataset-size": 2G
+ "max-connections": 10000
+ to:
+ - "lxc:nodes-api=0"
+ "ceilometer":
+ branch: "lp:~openstack-charmers/charms/trusty/ceilometer/next"
+ num_units: 1
+ to:
+ - "lxc:nodes-api=0"
+ "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:
+ charm: cs:trusty/ceph
+ num_units: 1
+ options:
+ fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7
+ monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A==
+ osd-devices: /srv
+ monitor-count: 1
+ osd-reformat: 'no'
+# ceph-cluster-network: 192.168.0.0/24
+# ceph-public-network: 192.168.0.0/24
+ to:
+ - "nodes-compute=0"
+# - "nodes-compute=1"
+# ceph-osd:
+# charm: cs:trusty/ceph-osd
+# num_units: 1
+# options:
+# osd-devices: /dev/sdb
+# osd-reformat: 'yes'
+# to:
+# - "lxc:nodes-api=0"
+# ceph-radosgw:
+# charm: cs:trusty/ceph-radosgw
+# num_units: 1
+# options:
+# use-embedded-webserver: true
+# to:
+# - "lxc:nodes-api=0"
+ cinder:
+ charm: cs:trusty/cinder
+ num_units: 1
+ options:
+ block-device: None
+ glance-api-version: 2
+# ha-mcastport: 5401
+ to:
+ - "lxc:nodes-api=0"
+ cinder-ceph:
+ charm: cs:trusty/cinder-ceph
+ "rabbitmq-server":
+ branch: lp:charms/trusty/rabbitmq-server
+ num_units: 1
+ to:
+ - "lxc:nodes-api=0"
+ "keystone":
+ branch: lp:charms/trusty/keystone
+ num_units: 1
+ options:
+# ha-mcastport: 5402
+ "admin-password": openstack
+ "admin-token": admin
+ "admin-role": admin
+ to:
+ - "lxc:nodes-api=0"
+ "openstack-dashboard":
+ branch: lp:charms/trusty/openstack-dashboard
+ num_units: 1
+ options:
+ secret: admin
+ webroot: /
+ to:
+ - "lxc:nodes-api=0"
+ "nova-compute":
+ branch: lp:~openstack-charmers/charms/trusty/nova-compute/next
+ num_units: 1
+ 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:charms/trusty/nova-cloud-controller
+ num_units: 1
+ options:
+ "console-access-protocol": novnc
+ "network-manager": Neutron
+ "quantum-security-groups": "yes"
+ to:
+ - "lxc:nodes-api=0"
+ "neutron-api":
+ branch: lp:~openstack-charmers/charms/trusty/neutron-api/next
+ num_units: 1
+ options:
+ neutron-security-groups: True
+ manage-neutron-plugin-legacy-mode: False
+ to:
+ - "lxc:nodes-api=0"
+ 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"
+ to:
+ - "lxc:nodes-api=0"
+ "glance":
+ branch: lp:charms/trusty/glance
+ num_units: 1
+ to:
+ - "lxc:nodes-api=0"
+ 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:
+ - - "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"
+trusty-liberty-nodes:
+ inherits: openstack-phase1
+ overrides:
+ series: trusty
+
+trusty-liberty:
+ inherits: openstack-phase2
+ overrides:
+ #os-data-network: 10.4.8.0/21
+ #prefer-ipv6: true
+ region: Canonical
+ source: "cloud:trusty-liberty"
+ "openstack-origin": "cloud:trusty-liberty"
+ series: trusty
+ ceph-osd-replication-count: 1
+
+trusty-kilo-nodes:
+ inherits: openstack-phase1
+ overrides:
+ series: trusty
+
+trusty-kilo:
+ inherits: openstack-phase2
+ overrides:
+ #os-data-network: 10.4.8.0/21
+ #prefer-ipv6: true
+ region: Canonical
+ source: "cloud:trusty-kilo"
+ "openstack-origin": "cloud:trusty-kilo"
+ series: trusty
+ ceph-osd-replication-count: 1
+
+
+trusty-juno-nodes:
+ inherits: openstack-phase1
+ overrides:
+ series: trusty
+
+trusty-juno:
+ inherits: openstack-phase2
+ overrides:
+ #os-data-network: 10.4.8.0/21
+ #prefer-ipv6: true
+ region: Canonical
+ source: "cloud:trusty-juno"
+ "openstack-origin": "cloud:trusty-juno"
+ series: trusty
+ ceph-osd-replication-count: 1
+
+
diff --git a/framework/scripts/installer/joid/onos/juju-deployer/scripts/cloud-setup.sh b/framework/scripts/installer/joid/onos/juju-deployer/scripts/cloud-setup.sh
new file mode 100644
index 00000000..184cecc6
--- /dev/null
+++ b/framework/scripts/installer/joid/onos/juju-deployer/scripts/cloud-setup.sh
@@ -0,0 +1,39 @@
+#!/bin/sh -e
+
+. ~/admin-openrc
+
+# adjust tiny image
+nova flavor-delete m1.tiny
+nova flavor-create m1.tiny 1 512 8 1
+
+# configure security groups
+neutron security-group-rule-create --direction ingress --ethertype IPv4 --protocol icmp --remote-ip-prefix 0.0.0.0/0 default
+neutron security-group-rule-create --direction ingress --ethertype IPv4 --protocol tcp --port-range-min 22 --port-range-max 22 --remote-ip-prefix 0.0.0.0/0 default
+
+# import key pair
+keystone tenant-create --name demo --description "Demo Tenant"
+keystone user-create --name demo --tenant demo --pass demo --email demo@demo.demo
+
+nova keypair-add --pub-key id_rsa.pub ubuntu-keypair
+
+# configure external network
+neutron net-create ext-net --router:external --provider:physical_network external --provider:network_type flat
+neutron subnet-create ext-net --name ext-subnet --allocation-pool start=10.5.8.5,end=10.5.8.254 --disable-dhcp --gateway 10.5.8.1 10.5.8.0/24
+
+# create vm network
+neutron net-create demo-net
+neutron subnet-create --name demo-subnet --gateway 10.20.5.1 demo-net 10.20.5.0/24
+
+neutron router-create demo-router
+
+neutron router-interface-add demo-router demo-subnet
+
+neutron router-gateway-set demo-router ext-net
+
+# create pool of floating ips
+i=0
+while [ $i -ne 10 ]; do
+ neutron floatingip-create ext-net
+ i=$((i + 1))
+done
+
diff --git a/framework/scripts/installer/joid/onos/juju-deployer/scripts/glance.sh b/framework/scripts/installer/joid/onos/juju-deployer/scripts/glance.sh
new file mode 100644
index 00000000..a18afe6c
--- /dev/null
+++ b/framework/scripts/installer/joid/onos/juju-deployer/scripts/glance.sh
@@ -0,0 +1,9 @@
+#!/bin/sh -e
+
+. ~/admin-openrc
+
+wget -P /tmp/images http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+wget -P /tmp/images http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
+glance image-create --name "cirros-0.3.3-x86_64" --file /tmp/images/cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --progress
+glance image-create --name "ubuntu-trusty-daily" --file /tmp/images/trusty-server-cloudimg-amd64-disk1.img --disk-format qcow2 --container-format bare --progress
+rm -rf /tmp/images
diff --git a/framework/scripts/installer/joid/onos/juju-deployer/scripts/openstack.sh b/framework/scripts/installer/joid/onos/juju-deployer/scripts/openstack.sh
new file mode 100644
index 00000000..e12ebbfd
--- /dev/null
+++ b/framework/scripts/installer/joid/onos/juju-deployer/scripts/openstack.sh
@@ -0,0 +1,36 @@
+#!/bin/sh -ex
+
+configOpenrc()
+{
+ cat <<-EOF
+ export OS_USERNAME=$1
+ export OS_PASSWORD=$2
+ export OS_TENANT_NAME=$3
+ export OS_AUTH_URL=$4
+ export OS_REGION_NAME=$5
+ EOF
+}
+
+unitAddress()
+{
+ juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"public-address\"]" 2> /dev/null
+}
+
+unitMachine()
+{
+ juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"machine\"]" 2> /dev/null
+}
+
+mkdir -m 0700 -p cloud
+controller_address=$(unitAddress keystone 0)
+configOpenrc admin openstack admin http://$controller_address:5000/v2.0 Canonical > cloud/admin-openrc
+chmod 0600 cloud/admin-openrc
+
+machine=$(unitMachine glance 0)
+juju scp glance.sh cloud/admin-openrc $machine:
+juju run --machine $machine ./glance.sh
+
+machine=$(unitMachine nova-cloud-controller 0)
+juju scp cloud-setup.sh cloud/admin-openrc ~/.ssh/id_rsa.pub $machine:
+juju run --machine $machine ./cloud-setup.sh
+