diff options
author | Narinder Gupta <narinder.gupta@canonical.com> | 2016-06-07 11:08:15 -0500 |
---|---|---|
committer | Narinder Gupta <narinder.gupta@canonical.com> | 2016-06-07 14:50:38 -0500 |
commit | a974eb71bd5a89062ff5a1899703ef22ba41852e (patch) | |
tree | 10b3a7584c37921c7dd3288f5020e0fd6cff6a26 /ci/onos | |
parent | cf4fbcbbfa5b7132be324717499d9d13f9452b3d (diff) |
modified the onos deployment as per new process where charms were
downloaded first then deployment started.
Change-Id: I97711241121577200d1223764c84e91cc1be05cb
Signed-off-by: Narinder Gupta <narinder.gupta@canonical.com>
Diffstat (limited to 'ci/onos')
-rw-r--r-- | ci/onos/juju-deployer/ovs-onos-ha.yaml | 499 | ||||
-rw-r--r-- | ci/onos/juju-deployer/ovs-onos-nonha.yaml | 385 | ||||
-rw-r--r-- | ci/onos/juju-deployer/ovs-onos-tip.yaml | 360 |
3 files changed, 555 insertions, 689 deletions
diff --git a/ci/onos/juju-deployer/ovs-onos-ha.yaml b/ci/onos/juju-deployer/ovs-onos-ha.yaml index a4cfa366..a6ad0efa 100644 --- a/ci/onos/juju-deployer/ovs-onos-ha.yaml +++ b/ci/onos/juju-deployer/ovs-onos-ha.yaml @@ -1,91 +1,211 @@ # vim: set ts=2 et: +trusty-mitaka-nodes: + inherits: openstack-phase1 + overrides: + series: trusty + +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" + series: trusty + #ceph-osd-replication-count: 2 + admin-role: admin + keystone-admin-role: admin + 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 + nodes: + charm: "local:trusty/ubuntu" + num_units: 5 ntp: - charm: "cs:trusty/ntp" + charm: "local:trusty/ntp" relations: - - "ntp:juju-info" - - "nodes-api:juju-info" - - - "ntp:juju-info" - - "nodes-compute:juju-info" + - "nodes:juju-info" + openstack-phase2: inherits: openstack-phase1 + 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" + #- - nova-compute:lxd + #- lxd:lxd + 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" + charm: "local:trusty/hacluster" options: corosync_key: | 'QisjNpoKHLkvyc3PEdDHP5VZjgD0kOk9t0ABPWmCELlu5AgWgnW6bJd34BVXO7VhW+3ZwNQM3W+bZ3pl28ftY4ki4N/S0KLFNia5egFgiA3AH2QXLnokS7OYXuu6GMJJ1S5mDe6P5zU+tfJe/Mebq24u7CgR0gAvohSPRdDTwdY=' hacluster-horizon: - branch: "lp:~openstack-charmers/charms/trusty/hacluster/next" + charm: "local:trusty/hacluster" options: corosync_key: | 'aCVPHw6XYne+Hxv0WPiM3+yEfeIxs0Ly0EMKB494Rdzjf5rE52GcXqqxuvIa/nXJ4GCR+UdKk9FEwcASfYkeu3HDWUld9uTE6pOc+ibWYnybNH7VBfEHW8h9YmQKs3HD2T3wlTcS2irU4CUW7/IKNok4etYdM3iFn1K2ReSGXEI=' hacluster-nova: - branch: "lp:~openstack-charmers/charms/trusty/hacluster/next" + charm: "local:trusty/hacluster" options: corosync_key: | 'gel86qmEze8dYKYbfqIgRpqapJpKtdYL2hxC1y5nWYBPq7EMf6V8mF01IjeUkSRs14CUDrsPpT4PWeom7EOY2fleuLx/aIuqQUfEDkhf/gvaz7BaU4hrmTCoDBK7/HvEwY+/wu4qkEeckzSRPsm9MYzqnLRshh8yjZJ70xU/mmk=' - hacluster-neutron: - branch: "lp:~openstack-charmers/charms/trusty/hacluster/next" + hacluster-neutron: + charm: "local:trusty/hacluster" options: corosync_key: | 'KNhb4++3jlllbnscS5D3qdzOJDsQPEeZ7zOLZJHbkKrRjX9gRCijVVOiv2JCvq03HqQ7LIufQzWGl9Za8qh0f6QmQ3XhFh/Cb/3WaYFj+tEf0zArWv+8miswmM1z4eyTSrTWBq0dTgx1z96wjBxP5HV0+1LWW+3Ei4oZWyRGeR0=' hacluster-glance: - branch: "lp:~openstack-charmers/charms/trusty/hacluster/next" + charm: "local:trusty/hacluster" options: corosync_key: | 'el1dd8107J5mwQDPS7tEJPZrr0XFfL95+Tku/QG90W5Q5f5SP4W8TRfKvddGmZWZl2lVd1neG5WqaHa1mq/aScJpoflzVAJCvshN7Gd2AjHhLNNugeI8S90j/7wrKUhqiCAlkKaeri2xs5bB5PZ7Z9AHuNZL7SW1al8lxrKhUFI=' hacluster-ceilometer: - branch: "lp:~openstack-charmers/charms/trusty/hacluster/next" + charm: "local:trusty/hacluster" options: corosync_key: | 'cHkgKGJpdHMgPSA5NjApLgpQcmVzcyBrZXlzIG9uIHlvdXIga2V5Ym9hcmQgdG8gZ2VuZXJhdGUgZW50cm9weSAoYml0cyA9IDEwMDgpLgpXcml0aW5nIGNvcm9zeW5jIGtleSB0byAvZXRjL2Nvcm9zeW5jL2F1dGhrZXkuCg==' + percona-cluster: + charm: "local: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=1" + - "lxc:nodes=2" + - "lxc:nodes=3" ceilometer: - branch: "lp:~openstack-charmers/charms/trusty/ceilometer/next" + charm: "local:trusty/ceilometer" num_units: 3 options: vip: 10.4.1.14 to: - - "lxc:nodes-api=2" - - "lxc:nodes-api=0" - - "lxc:nodes-api=1" + - "lxc:nodes=2" + - "lxc:nodes=3" + - "lxc:nodes=4" ceilometer-agent: - branch: "lp:~openstack-charmers/charms/trusty/ceilometer-agent/next" + charm: "local:trusty/ceilometer-agent" mongodb: - charm: "cs:trusty/mongodb" - num_units: 1 + charm: "local:trusty/mongodb" to: - - "lxc:nodes-api=0" + - "lxc:nodes=0" heat: - branch: "lp:~openstack-charmers/charms/trusty/heat/next" + charm: "local:trusty/heat" to: - - "lxc:nodes-api=0" + - "lxc:nodes=0" ceph: - branch: "lp:~openstack-charmers/charms/trusty/ceph/next" + charm: "local:trusty/ceph" num_units: 3 options: fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7 @@ -96,88 +216,87 @@ openstack-phase2: # 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" + - "lxc:nodes=3" + - "lxc:nodes=4" + - "lxc:nodes=0" ceph-osd: - branch: "lp:~openstack-charmers/charms/trusty/ceph-osd/next" - num_units: 2 + charm: "local:trusty/ceph-osd" + num_units: 3 options: osd-devices: /srv osd-reformat: 'yes' to: - - "nodes-compute=0" - - "nodes-compute=1" + - "nodes=2" + - "nodes=3" + - "nodes=4" ceph-radosgw: - branch: "lp:~openstack-charmers/charms/trusty/ceph-radosgw/next" - num_units: 3 + charm: "local:trusty/ceph-radosgw" options: use-embedded-webserver: true operator-roles: "Member,admin" to: - - "lxc:nodes-api=1" - - "lxc:nodes-api=0" - - "lxc:nodes-api=2" + - "lxc:nodes=0" cinder: - branch: "lp:~openstack-charmers/charms/trusty/cinder/next" + charm: "local:trusty/cinder" 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" + - "lxc:nodes=4" + - "lxc:nodes=0" + - "lxc:nodes=1" cinder-ceph: - branch: "lp:~openstack-charmers/charms/trusty/cinder-ceph/next" - rabbitmq-server: - branch: "lp:~openstack-charmers/charms/trusty/rabbitmq-server/next" + charm: "local:trusty/cinder-ceph" + rabbitmq-server: + charm: "local:trusty/rabbitmq-server" 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" + - "lxc:nodes=0" + - "lxc:nodes=1" + - "lxc:nodes=2" + keystone: + charm: "local:trusty/keystone" num_units: 3 - options: + 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" + - "lxc:nodes=1" + - "lxc:nodes=2" + - "lxc:nodes=3" + openstack-dashboard: + charm: "local:trusty/openstack-dashboard" num_units: 3 - options: + 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: + - "lxc:nodes=2" + - "lxc:nodes=3" + - "lxc:nodes=4" + nova-compute: + charm: local:trusty/nova-compute + num_units: 4 + options: enable-live-migration: true enable-resize: true manage-neutron-plugin-legacy-mode: false migration-auth-type: ssh + #hugepages: "50%" + #virt-type: lxd`` to: - - "nodes-compute=0" - - "nodes-compute=1" -# - "nodes-api=0" -# - "nodes-api=1" -# - "nodes-api=2" + - "nodes=1" + - "nodes=2" + - "nodes=3" + - "nodes=4" nova-cloud-controller: - branch: "lp:~openstack-charmers/charms/trusty/nova-cloud-controller/next" + charm: "local:trusty/nova-cloud-controller" num_units: 3 options: console-access-protocol: novnc @@ -185,218 +304,54 @@ openstack-phase2: service-guard: true vip: 10.4.1.16 to: - - "lxc:nodes-api=1" - - "lxc:nodes-api=0" - - "lxc:nodes-api=2" + - "lxc:nodes=3" + - "lxc:nodes=4" + - "lxc:nodes=0" neutron-api: - branch: lp:~openstack-charmers/charms/trusty/neutron-api/next + charm: local:trusty/neutron-api num_units: 3 options: neutron-security-groups: True + flat-network-providers: "*" manage-neutron-plugin-legacy-mode: False vip: 10.4.1.17 to: - - "lxc:nodes-api=2" - - "lxc:nodes-api=0" - - "lxc:nodes-api=1" + - "lxc:nodes=4" + - "lxc:nodes=0" + - "lxc:nodes=1" neutron-gateway: - branch: "lp:~wuwenbin2/onosfw/neutron-gateway" + charm: "local:trusty/neutron-gateway" options: #ext-port: "eth1" plugin: onos instance-mtu: 1400 to: - - "nodes-api=0" + - "nodes=0" onos-controller: - branch: "lp:~wuwenbin2/onosfw/onos-controller" + charm: "local:trusty/onos-controller" options: #ext-port: "eth1" #gateway-mac: "default" to: - - "lxc:nodes-api=1" + - "lxc:nodes=0" glance: - branch: lp:~openstack-charmers/charms/trusty/glance/next + charm: local:trusty/glance 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" + - "lxc:nodes=0" + - "lxc:nodes=1" + - "lxc:nodes=2" opnfv-promise: - branch: lp:~narindergupta/charms/trusty/promise/trunk - num_units: 1 + charm: local:trusty/promise to: - - "lxc:nodes-api=2" + - "lxc:nodes=0" neutron-api-onos: - branch: "lp:~wuwenbin2/onosfw/neutron-api-onos" + charm: "local:trusty/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 - + charm: "local:trusty/openvswitch-onos" diff --git a/ci/onos/juju-deployer/ovs-onos-nonha.yaml b/ci/onos/juju-deployer/ovs-onos-nonha.yaml index be7819c0..31a7e155 100644 --- a/ci/onos/juju-deployer/ovs-onos-nonha.yaml +++ b/ci/onos/juju-deployer/ovs-onos-nonha.yaml @@ -1,173 +1,39 @@ # vim: set ts=2 et: +trusty-mitaka-nodes: + inherits: openstack-phase1 + overrides: + series: trusty + +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" + series: trusty + ceph-osd-replication-count: 2 + admin-role: admin + keystone-admin-role: admin + 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" + nodes: + charm: "cs:trusty/ubuntu" + num_units: 2 + ntp: + charm: "local:trusty/ntp" relations: - - - "ntp:juju-info" - - "nodes-api:juju-info" - - - "ntp:juju-info" - - "nodes-compute:juju-info" + - - "ntp:juju-info" + - "nodes:juju-info" + openstack-phase2: inherits: openstack-phase1 - services: - mysql: - branch: "lp:~openstack-charmers/charms/trusty/percona-cluster/next" - 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: - branch: "lp:~openstack-charmers/charms/trusty/ceph/next" - num_units: 1 - options: - fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7 - monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A== - osd-devices: "" - monitor-count: 1 -# osd-reformat: 'no' -# ceph-cluster-network: 192.168.0.0/24 -# ceph-public-network: 192.168.0.0/24 - to: - - "lxc:nodes-api=0" - ceph-osd: - branch: "lp:~openstack-charmers/charms/trusty/ceph-osd/next" - num_units: 1 - options: - osd-devices: /srv - osd-reformat: 'yes' - to: - - "nodes-compute=0" - ceph-radosgw: - branch: "lp:~openstack-charmers/charms/trusty/ceph-radosgw/next" - num_units: 1 - options: - use-embedded-webserver: true - operator-roles: "Member,admin" - to: - - "lxc:nodes-api=0" - cinder: - branch: "lp:~openstack-charmers/charms/trusty/cinder/next" - num_units: 1 - options: - block-device: None - glance-api-version: 2 -# ha-mcastport: 5401 - to: - - "lxc:nodes-api=0" - cinder-ceph: - branch: "lp:~openstack-charmers/charms/trusty/cinder-ceph/next" - rabbitmq-server: - branch: "lp:~openstack-charmers/charms/trusty/rabbitmq-server/next" - num_units: 1 - to: - - "lxc:nodes-api=0" - keystone: - branch: "lp:~openstack-charmers/charms/trusty/keystone/next" - num_units: 1 - options: -# ha-mcastport: 5402 - admin-password: openstack - admin-token: admin - to: - - "lxc:nodes-api=0" - openstack-dashboard: - branch: "lp:~openstack-charmers/charms/trusty/openstack-dashboard/next" - 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: true - enable-resize: true - manage-neutron-plugin-legacy-mode: false - migration-auth-type: ssh - 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: 1 - options: - console-access-protocol: novnc - network-manager: Neutron - 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" - options: - #ext-port: "eth1" - #gateway-mac: "default" - to: - - "lxc:nodes-api=0" - glance: - branch: lp:~openstack-charmers/charms/trusty/glance/next - num_units: 1 - to: - - "lxc:nodes-api=0" - opnfv-promise: - branch: lp:~narindergupta/charms/trusty/promise/trunk - 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" @@ -259,60 +125,139 @@ openstack-phase2: - "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 - #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: 1 - admin-role: admin - keystone-admin-role: admin - -trusty-kilo-nodes: - inherits: openstack-phase1 - overrides: - series: trusty - -trusty-kilo: - inherits: openstack-phase2 - overrides: - #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: 1 - admin-role: admin - keystone-admin-role: admin - -trusty-juno-nodes: - inherits: openstack-phase1 - overrides: - series: trusty - -trusty-juno: - inherits: openstack-phase2 - overrides: - #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: 1 - admin-role: admin - keystone-admin-role: admin - + #- - nova-compute:lxd + #- lxd:lxd + 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== + osd-devices: "" + 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 +# ha-mcastport: 5401 + 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: +# ha-mcastport: 5402 + 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" diff --git a/ci/onos/juju-deployer/ovs-onos-tip.yaml b/ci/onos/juju-deployer/ovs-onos-tip.yaml index 13786b91..8b4cd6dd 100644 --- a/ci/onos/juju-deployer/ovs-onos-tip.yaml +++ b/ci/onos/juju-deployer/ovs-onos-tip.yaml @@ -1,115 +1,215 @@ # vim: set ts=2 et: +trusty-mitaka-nodes: + inherits: openstack-phase1 + overrides: + series: trusty + +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" + series: trusty + ceph-osd-replication-count: 2 + admin-role: admin + keystone-admin-role: admin + openstack-phase1: series: trusty services: - nodes-api: + nodes: charm: "cs:trusty/ubuntu" - num_units: 1 - constraints: tags=control - nodes-compute: - charm: "cs:trusty/ubuntu" - num_units: 1 - constraints: tags=compute + num_units: 2 ntp: - charm: "cs:trusty/ntp" + charm: "local:trusty/ntp" relations: - - - "ntp:juju-info" - - "nodes-api:juju-info" - - - "ntp:juju-info" - - "nodes-compute:juju-info" + - - "ntp:juju-info" + - "nodes:juju-info" + openstack-phase2: inherits: openstack-phase1 + 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" + - - "ceph-osd:mon" + - "ceph:osd" + - - "ceph-radosgw:mon" + - "ceph:radosgw" + - - "ceph-radosgw:identity-service" + - "keystone:identity-service" + #- - nova-compute:lxd + #- lxd:lxd + services: mysql: - branch: "lp:~openstack-charmers/charms/trusty/percona-cluster/next" - num_units: 1 + charm: "local:trusty/percona-cluster" options: dataset-size: 2G max-connections: 10000 to: - - "lxc:nodes-api=0" + - "lxc:nodes=0" ceilometer: - branch: "lp:~openstack-charmers/charms/trusty/ceilometer/next" - num_units: 1 + charm: "local:trusty/ceilometer" to: - - "lxc:nodes-api=0" + - "lxc:nodes=1" ceilometer-agent: - branch: "lp:~openstack-charmers/charms/trusty/ceilometer-agent/next" + charm: "local:trusty/ceilometer-agent" mongodb: charm: "cs:trusty/mongodb" - num_units: 1 to: - - "lxc:nodes-api=0" + - "lxc:nodes=0" heat: - branch: "lp:~openstack-charmers/charms/trusty/heat/next" + charm: "local:trusty/heat" to: - - "lxc:nodes-api=0" + - "lxc:nodes=1" ceph: - branch: "lp:~openstack-charmers/charms/trusty/ceilometer/next" - num_units: 1 + charm: "local:trusty/ceilometer" + num_units: 2 options: fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7 monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A== osd-devices: "" - monitor-count: 1 + 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-api=0" + - "lxc:nodes=1" + - "lxc:nodes=0" ceph-osd: - branch: "lp:~openstack-charmers/charms/trusty/ceph-osd/next" - num_units: 1 + charm: "local:trusty/ceph-osd" + num_units: 2 options: osd-devices: /srv osd-reformat: 'yes' to: - - "nodes-compute=0" + - "nodes=0" + - "nodes=1" ceph-radosgw: - branch: "lp:~openstack-charmers/charms/trusty/ceph-radosgw/next" - num_units: 1 + charm: "local:trusty/ceph-radosgw" options: use-embedded-webserver: true operator-roles: "Member,admin" to: - - "lxc:nodes-api=0" + - "lxc:nodes=0" cinder: - branch: "lp:~openstack-charmers/charms/trusty/cinder/next" - num_units: 1 + charm: "local:trusty/cinder" options: block-device: None glance-api-version: 2 # ha-mcastport: 5401 # openstack-origin-git: include-file://cinder-master.yaml to: - - "lxc:nodes-api=0" + - "lxc:nodes=1" cinder-ceph: - branch: "lp:~openstack-charmers/charms/trusty/cinder-ceph/next" + charm: "local:trusty/cinder-ceph" rabbitmq-server: - branch: "lp:~openstack-charmers/charms/trusty/rabbitmq-server/next" - num_units: 1 + charm: "local:trusty/rabbitmq-server" to: - - "lxc:nodes-api=0" + - "lxc:nodes=0" keystone: - branch: "lp:~openstack-charmers/charms/trusty/keystone/next" - num_units: 1 + charm: "local:trusty/keystone" options: openstack-origin-git: include-file://keystone-master.yaml admin-password: openstack admin-token: admin to: - - "lxc:nodes-api=0" + - "lxc:nodes=1" openstack-dashboard: - branch: "lp:~openstack-charmers/charms/trusty/openstack-dashboard/next" - num_units: 1 + charm: "local:trusty/openstack-dashboard" options: openstack-origin-git: include-file://horizon-master.yaml secret: admin to: - - "lxc:nodes-api=0" + - "lxc:nodes=0" nova-compute: - branch: lp:~openstack-charmers/charms/trusty/nova-compute/next - num_units: 1 + charm: local:trusty/nova-compute options: openstack-origin-git: include-file://nova-master.yaml enable-live-migration: true @@ -117,186 +217,52 @@ openstack-phase2: manage-neutron-plugin-legacy-mode: false migration-auth-type: ssh to: - - "nodes-compute=0" -# - "nodes-compute=1" + - "nodes=1" nova-cloud-controller: - branch: "lp:~openstack-charmers/charms/trusty/nova-cloud-controller/next" - num_units: 1 + charm: "local:trusty/nova-cloud-controller" options: openstack-origin-git: include-file://nova-master.yaml console-access-protocol: novnc network-manager: Neutron to: - - "lxc:nodes-api=0" + - "lxc:nodes=1" neutron-api: - branch: lp:~openstack-charmers/charms/trusty/neutron-api/next - num_units: 1 + charm: local:trusty/neutron-api options: neutron-security-groups: True manage-neutron-plugin-legacy-mode: False to: - - "lxc:nodes-api=0" + - "lxc:nodes=0" neutron-gateway: - branch: "lp:~wuwenbin2/onosfw/neutron-gateway" + charm: "local:trusty/neutron-gateway" options: openstack-origin-git: include-file://neutron-master.yaml #ext-port: "eth1" plugin: onos instance-mtu: 1400 to: - - "nodes-api=0" + - "nodes=0" onos-controller: - branch: "lp:~wuwenbin2/onosfw/onos-controller" + charm: "local:trusty/onos-controller" options: #ext-port: "eth1" #gateway-mac: "default" to: - - "lxc:nodes-api=0" + - "lxc:nodes=1" glance: - branch: "lp:~openstack-charmers/charms/trusty/glance/next" - num_units: 1 + charm: "local:trusty/glance" options: openstack-origin-git: include-file://glance-master.yaml to: - - "lxc:nodes-api=0" + - "lxc:nodes=0" opnfv-promise: - branch: lp:~narindergupta/charms/trusty/promise/trunk - num_units: 1 + charm: local:trusty/promise to: - - "lxc:nodes-api=0" + - "lxc:nodes=1" neutron-api-onos: - branch: "lp:~wuwenbin2/onosfw/neutron-api-onos" + charm: "local:trusty/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" - - - "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 - #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: 1 - admin-role: admin - keystone-admin-role: admin - -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 - #ceph-cluster-network: 10.4.0.0/21 - #prefer-ipv6: true - openstack-origin: cloud:trusty-kilo - source: cloud:trusty-kilo - series: trusty - ceph-osd-replication-count: 1 - admin-role: admin - keystone-admin-role: admin - + charm: "local:trusty/openvswitch-onos" |