From 6c7fc201c56648de9622dffc48a3f47e81de9465 Mon Sep 17 00:00:00 2001 From: Narinder Gupta Date: Fri, 4 Dec 2015 13:11:44 -0600 Subject: modified to comment the use of juju-br0 as external network. Added option to install neutron-openswitch without ODL. consolidated source files to common as all sdn share the s same source for openstack and it can be modified during deployment. Change-Id: I1df7f5cd5d928d170bc6be6b32c3404dbcb5fda3 --- ci/nosdn/juju-deployer/ovs-ha.yaml | 358 ++++++++++++++++++++++++++ ci/nosdn/juju-deployer/ovs-tip.yaml | 272 +++++++++++++++++++ ci/nosdn/juju-deployer/ovs.yaml | 287 +++++++++++++++++++++ ci/nosdn/juju-deployer/scripts/cloud-setup.sh | 39 +++ ci/nosdn/juju-deployer/scripts/glance.sh | 9 + ci/nosdn/juju-deployer/scripts/openstack.sh | 44 ++++ 6 files changed, 1009 insertions(+) create mode 100644 ci/nosdn/juju-deployer/ovs-ha.yaml create mode 100644 ci/nosdn/juju-deployer/ovs-tip.yaml create mode 100644 ci/nosdn/juju-deployer/ovs.yaml create mode 100755 ci/nosdn/juju-deployer/scripts/cloud-setup.sh create mode 100755 ci/nosdn/juju-deployer/scripts/glance.sh create mode 100755 ci/nosdn/juju-deployer/scripts/openstack.sh (limited to 'ci/nosdn/juju-deployer') diff --git a/ci/nosdn/juju-deployer/ovs-ha.yaml b/ci/nosdn/juju-deployer/ovs-ha.yaml new file mode 100644 index 00000000..f315876a --- /dev/null +++ b/ci/nosdn/juju-deployer/ovs-ha.yaml @@ -0,0 +1,358 @@ +# vim: set ts=2 et: +openstack-phase1: + series: trusty + services: + nodes-api: + charm: "local:trusty/ubuntu-nodes-controller" + num_units: 3 + constraints: tags=control + nodes-compute: + charm: "local:trusty/ubuntu-nodes-compute" + 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: + "percona-cluster": + charm: "cs:trusty/percona-cluster" + 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: 1 + options: + fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7 + monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A== + osd-devices: /srv + monitor-count: 1 +# osd-reformat: 'yes' +# 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: 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 + 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: 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: 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:charms/trusty/neutron-gateway + options: +# "ext-port": "eth1" + to: + - "nodes-api=0" + "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-openvswitch: + branch: lp:~openstack-charmers/charms/trusty/neutron-openvswitch/trunk + 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-openvswitch:neutron-plugin-api + - neutron-api:neutron-plugin-api + - - nova-compute:neutron-plugin + - neutron-openvswitch:neutron-plugin + - - neutron-openvswitch:amqp + - rabbitmq-server:amqp + - - "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" +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: 1 + +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: 1 + + +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: 1 + + diff --git a/ci/nosdn/juju-deployer/ovs-tip.yaml b/ci/nosdn/juju-deployer/ovs-tip.yaml new file mode 100644 index 00000000..d944b854 --- /dev/null +++ b/ci/nosdn/juju-deployer/ovs-tip.yaml @@ -0,0 +1,272 @@ +# vim: set ts=2 et: +openstack-phase1: + series: trusty + services: + nodes-api: + charm: "local:trusty/ubuntu-nodes-controller" + num_units: 1 + constraints: tags=control + nodes-compute: + charm: "local:trusty/ubuntu-nodes-compute" + 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: 'yes' +# 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 + 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:charms/trusty/neutron-gateway + options: + openstack-origin-git: include-file://neutron-master.yaml +# "ext-port": "eth1" + to: + - "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-openvswitch: + branch: lp:~openstack-charmers/charms/trusty/neutron-openvswitch/trunk + options: + openstack-origin-git: include-file://neutron-master.yaml + relations: + - - neutron-openvswitch:neutron-plugin-api + - neutron-api:neutron-plugin-api + - - nova-compute:neutron-plugin + - neutron-openvswitch:neutron-plugin + - - neutron-openvswitch:amqp + - rabbitmq-server:amqp + - - "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/ci/nosdn/juju-deployer/ovs.yaml b/ci/nosdn/juju-deployer/ovs.yaml new file mode 100644 index 00000000..62d43bc0 --- /dev/null +++ b/ci/nosdn/juju-deployer/ovs.yaml @@ -0,0 +1,287 @@ +# vim: set ts=2 et: +openstack-phase1: + series: trusty + services: + nodes-api: + charm: "local:trusty/ubuntu-nodes-controller" + num_units: 1 + constraints: tags=control + nodes-compute: + charm: "local:trusty/ubuntu-nodes-compute" + 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: 'yes' +# 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-compute=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 + 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:charms/trusty/neutron-gateway + options: +# "ext-port": "eth1" + to: + - "nodes-api=0" + "glance": + branch: lp:charms/trusty/glance + num_units: 1 + to: + - "lxc:nodes-api=0" + neutron-openvswitch: + branch: lp:~openstack-charmers/charms/trusty/neutron-openvswitch/next + relations: + - - neutron-openvswitch:neutron-plugin-api + - neutron-api:neutron-plugin-api + - - nova-compute:neutron-plugin + - neutron-openvswitch:neutron-plugin + - - neutron-openvswitch:amqp + - rabbitmq-server:amqp + - - "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 +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/ci/nosdn/juju-deployer/scripts/cloud-setup.sh b/ci/nosdn/juju-deployer/scripts/cloud-setup.sh new file mode 100755 index 00000000..184cecc6 --- /dev/null +++ b/ci/nosdn/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/ci/nosdn/juju-deployer/scripts/glance.sh b/ci/nosdn/juju-deployer/scripts/glance.sh new file mode 100755 index 00000000..a18afe6c --- /dev/null +++ b/ci/nosdn/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/ci/nosdn/juju-deployer/scripts/openstack.sh b/ci/nosdn/juju-deployer/scripts/openstack.sh new file mode 100755 index 00000000..77f97723 --- /dev/null +++ b/ci/nosdn/juju-deployer/scripts/openstack.sh @@ -0,0 +1,44 @@ +#!/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 +} + +<<<<<<< HEAD +juju run --service ceph 'sudo ceph osd pool set cinder-ceph size 1' +juju run --service ceph 'sudo ceph osd pool set cinder-ceph min_size 1' +======= +#juju run --service ceph 'sudo ceph osd pool set cinder-ceph size 1' +#juju run --service ceph 'sudo ceph osd pool set cinder-ceph min_size 1' +>>>>>>> 69227d1... modified the bundle to include the ceph and cinder changes. + +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 + -- cgit 1.2.3-korg