+++ /dev/null
- aodh:
- charm: "local:{{ ubuntu.release }}/aodh"
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- to:
- - "lxc:nodes=0"
-{# Empty block to avoid bad block trim #}
+++ /dev/null
-# vim: set ts=2 et:
-{{ ubuntu.release }}-{{ os.release }}-nodes:
- inherits: openstack-phase1
- overrides:
-{% include 'phase2-overrides.yaml' %}
-
-{{ ubuntu.release }}-{{ os.release }}:
- inherits: openstack-phase2
-
-openstack-phase1:
- services:
-{% if os.hyperconverged %}
- nodes:
- charm: "cs:{{ ubuntu.release }}/ubuntu"
- num_units: {{ opnfv.units }}
-{% else %}
- nodes:
- charm: "cs:{{ ubuntu.release }}/ubuntu"
-{% if os.ha.mode == 'ha' %}
- num_units: 3
-{% else %}
- num_units: 1
-{% endif %}
- constraints: tags=control
- nodes-compute:
- charm: "cs:{{ ubuntu.release }}/ubuntu"
-{% if os.ha.mode == 'ha' %}
- num_units: {{ opnfv.units - 3 }}
-{% else %}
- num_units: {{ opnfv.units - 1 }}
-{% endif %}
-{% endif %}
- ntp:
- charm: "local:{{ ubuntu.release }}/ntp"
-{% if os.network.controller == 'ocl' %}
- options:
- source: "0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org"
- auto_peers: false
-{% endif %}
-{% include 'mysql.yaml' %}
-{% include 'ceilometer.yaml' %}
-{% if opnfv.storage_dict.scaleio is defined %}
-{% include 'scaleio.yaml' %}
-{% else %}
-{% include 'ceph.yaml' %}
-{% endif %}
-{% include 'cinder.yaml' %}
-{% include 'glance.yaml' %}
-{% if opnfv.storage_dict.ceph is defined %}
-{% if os.service.promise %}
-{% include 'opnfv-promise.yaml' %}
-{% endif %}
-{% if os.service.congress %}
-{% include 'congress.yaml' %}
-{% endif %}
-{% endif %}
-{% include 'keystone.yaml' %}
-{% include 'nova-cloud-controller.yaml' %}
-{% include 'nova-compute.yaml' %}
-{% include 'openstack-dashboard.yaml' %}
-{% include 'rabbitmq.yaml' %}
-{% include 'heat.yaml' %}
-{% include 'neutron-api.yaml' %}
-{% include 'neutron-gateway.yaml' %}
-{% include 'aodh.yaml' %}
-{% if os.network.controller == 'odl' %}
-{% include 'odl.yaml' %}
-{% elif os.network.controller == 'onos' %}
-{% include 'onos.yaml' %}
-{% elif os.network.controller == 'ocl' %}
-{% include 'oclphase1.yaml' %}
-{% endif %}
-{% if os.ha.mode == 'ha' %}
-{% include 'haclusters.yaml' %}
-{% endif %}
-
-
-{% if os.hyperconverged %}
- relations:
- - [ 'ntp:juju-info', 'nodes:juju-info' ]
-{% else %}
- relations:
- - [ 'ntp:juju-info', 'nodes:juju-info' ]
- - [ 'ntp:juju-info', 'nodes-compute:juju-info' ]
-{% endif %}
-
-{% if os.ha.mode == 'ha' %}
-{% include 'harelations.yaml' %}
-{% endif %}
-
-openstack-phase2:
- inherits: openstack-phase1
- relations:
-{% include 'relations.yaml' %}
- services:
-{% include 'subordinate.yaml' %}
+++ /dev/null
- mongodb:
- charm: local:{{ ubuntu.release }}/mongodb
- to:
- - "lxc:nodes=0"
- ceilometer:
- charm: "local:{{ ubuntu.release }}/ceilometer"
- num_units: {{ unit_qty() }}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- region: {{ os.region }}
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.ceilometer }}
-{% endif %}
-{% if os.beta.public_api %}
- os-public-hostname: api.{{ opnfv.domain }}
-{% endif %}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
+++ /dev/null
-{% if opnfv.storage_dict.ceph is defined %}
- ceph:
- charm: "local:{{ ubuntu.release }}/ceph"
- num_units: {{ unit_ceph_qty() }}
- options:
- monitor-count: {{ unit_ceph_qty() }}
- fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7
- monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A==
-{% if ubuntu.release == 'trusty' and os.release < 'newton' %}
- source: "cloud:{{ ubuntu.release }}-updates/{{ os.release }}"
-{% elif ubuntu.release == 'xenial' and os.release >= 'newton' %}
- source: "cloud:{{ ubuntu.release }}-updates/{{ os.release }}"
-{% endif %}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if opnfv.spaces_dict.storage is defined %}
- #ceph-cluster-network: {{ opnfv.spaces_dict.storage.cidr }}
-{% endif %}
- to:
-{% if os.hyperconverged %}
-{% for unit_id in to_select(unit_ceph_qty()) %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
-{% else %}
-{% if os.ha.mode == 'ha' %}
-{% for unit_id in range(0, 3) %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
-{% else %}
- - "lxc:nodes=0"
- - "lxc:nodes=0"
- - "lxc:nodes=0"
-{% endif %}
-{% endif %}
- ceph-osd:
- charm: "local:{{ ubuntu.release }}/ceph-osd"
-{% if os.hyperconverged %}
- num_units: {{ opnfv.units }}
-{% else %}
- num_units: 3
-{% endif %}
- options:
- osd-devices: {{ opnfv.storage_dict.ceph.disk }}
- osd-reformat: 'yes'
-{% if ubuntu.release == 'trusty' and os.release < 'newton' %}
- source: "cloud:{{ ubuntu.release }}-updates/{{ os.release }}"
-{% elif ubuntu.release == 'xenial' and os.release >= 'newton' %}
- source: "cloud:{{ ubuntu.release }}-updates/{{ os.release }}"
-{% endif %}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
- to:
-{% if os.hyperconverged %}
-{% for unit_id in range(0, opnfv.units) %}
- - "nodes={{ unit_id }}"
-{% endfor %}
-{% else %}
-{% if os.ha.mode == 'ha' %}
-{% for unit_id in range(0, 3) %}
- - "nodes={{ unit_id }}"
-{% endfor %}
-{% else %}
- - "nodes=0"
- - "nodes-compute=0"
- - "nodes-compute=1"
-{% endif %}
-{% endif %}
- ceph-radosgw:
- charm: "local:{{ ubuntu.release }}/ceph-radosgw"
- num_units: {{ unit_qty() if os.beta.hacluster_ceph_radosgw else 1 }}
- options:
- region: {{ os.region }}
- use-embedded-webserver: true
- operator-roles: "Member,admin"
-{% if ubuntu.release == 'trusty' and os.release < 'newton' %}
- source: "cloud:{{ ubuntu.release }}-updates/{{ os.release }}"
-{% elif ubuntu.release == 'xenial' and os.release >= 'newton' %}
- source: "cloud:{{ ubuntu.release }}-updates/{{ os.release }}"
-{% endif %}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if opnfv.storage_dict.ceph is defined %}
- ceph-osd-replication-count: {{ unit_ceph_qty() }}
-{% endif %}
- to:
-{% for unit_id in to_select(unit_qty() if os.beta.hacluster_ceph_radosgw else 1) %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
-{% endif %}
+++ /dev/null
- cinder:
- charm: "local:{{ ubuntu.release }}/cinder"
-{% if opnfv.storage_dict.scaleio is defined %}
- num_units: 1
-{% else %}
- num_units: {{ unit_qty() }}
-{% endif %}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- region: {{ os.region }}
- block-device: None
- glance-api-version: 2
-{% if os.beta.public_api %}
- use-internal-endpoints: true
-{% endif %}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if os.api.worker_multiplier %}
- worker-multiplier: {{ os.api.worker_multiplier }}
-{% endif %}
-{% if opnfv.storage_dict.ceph is defined %}
- ceph-osd-replication-count: {{ unit_ceph_qty() }}
-{% endif %}
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.cinder }}
-{% endif %}
-{% if os.beta.public_api %}
- os-public-hostname: api.{{ opnfv.domain }}
-{% endif %}
- to:
-{% if opnfv.storage_dict.scaleio is defined %}
- - "nodes=0"
-{% else %}
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
-{% endif %}
+++ /dev/null
- congress:
- charm: "local:{{ ubuntu.release }}/congress"
- options:
- region: {{ os.region }}
-{% if ubuntu.release == 'trusty' %}
- source-branch: "stable/{{ os.release }}"
-{% endif %}
- to:
- - "lxc:nodes=0"
-{# Empty block to avoid bad block trim #}
+++ /dev/null
- glance:
- charm: "local:{{ ubuntu.release }}/glance"
- num_units: {{ unit_qty() }}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- region: {{ os.region }}
-{% if os.beta.public_api %}
- use-internal-endpoints: true
-{% endif %}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if opnfv.storage_dict.ceph is defined %}
- ceph-osd-replication-count: {{ unit_ceph_qty() }}
-{% endif %}
-{% if os.api.worker_multiplier %}
- worker-multiplier: {{ os.api.worker_multiplier }}
-{% endif %}
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.glance }}
-{% endif %}
-{% if os.beta.public_api %}
- os-public-hostname: api.{{ opnfv.domain }}
-{% endif %}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
+++ /dev/null
-
- hacluster-keystone:
- charm: "local:{{ ubuntu.release }}/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
- hacluster-cinder:
- charm: "local:{{ ubuntu.release }}/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-# hacluster-heat:
-# charm: "local:{{ ubuntu.release }}/hacluster"
-# options:
-# corosync_transport: unicast
-# cluster_count: 3
-{% if os.network.ipv6 %}
-# prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
- hacluster-horizon:
- charm: "local:{{ ubuntu.release }}/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
- hacluster-nova:
- charm: "local:{{ ubuntu.release }}/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
- hacluster-neutron:
- charm: "local:{{ ubuntu.release }}/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
- hacluster-glance:
- charm: "local:{{ ubuntu.release }}/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
- hacluster-ceilometer:
- charm: "local:{{ ubuntu.release }}/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
- hacluster-mysql:
- charm: "local:{{ ubuntu.release }}/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if os.beta.hacluster_ceph_radosgw %}
- hacluster-ceph-radosgw:
- charm: "local:{{ ubuntu.release }}/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% endif %}
+++ /dev/null
-{% if os.ha.mode == 'ha' %}
- - [ 'mysql:ha', 'hacluster-mysql:ha' ]
- - [ 'cinder:ha', 'hacluster-cinder:ha' ]
-# - [ 'heat:ha', 'hacluster-heat:ha' ]
- - [ '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' ]
-{% if os.beta.hacluster_ceph_radosgw %}
- - [ 'ceph-radosgw:ha', 'hacluster-ceph-radosgw:ha' ]
-{% endif %}
-{% endif %}
+++ /dev/null
- heat:
- charm: "local:{{ ubuntu.release }}/heat"
- num_units: 1
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- region: {{ os.region }}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if os.api.worker_multiplier %}
- worker-multiplier: {{ os.api.worker_multiplier }}
-{% endif %}
-{% if os.ha.mode == 'ha' %}
-# vip: {{ opnfv.vip.heat }}
-{% endif %}
-{% if os.beta.public_api %}
-# os-public-hostname: api.{{ opnfv.domain }}
-{% endif %}
- to:
- - "lxc:nodes=0"
-{# Empty block to avoid bad block trim #}
+++ /dev/null
- keystone:
- charm: "local:{{ ubuntu.release }}/keystone"
- num_units: {{ unit_qty() }}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- region: {{ os.region }}
- admin-role: {{ os.admin.role }}
- keystone-admin-role: {{ os.admin.role }}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if os.api.worker_multiplier %}
- worker-multiplier: {{ os.api.worker_multiplier }}
-{% endif %}
- admin-password: {{ opnfv.admin_password | default(os.admin.password) }}
- admin-token: {{ os.admin.name }}
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.keystone }}
-{% endif %}
-{% if os.beta.public_api %}
- os-public-hostname: api.{{ opnfv.domain }}
-{% endif %}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
+++ /dev/null
- mysql:
- charm: "local:{{ ubuntu.release }}/percona-cluster"
- num_units: {{ unit_qty() }}
- options:
-{% if os.ha.mode == 'ha' %}
- innodb-buffer-pool-size: 10G
-{% else %}
- innodb-buffer-pool-size: 1G
-{% endif %}
- max-connections: 20000
- root-password: {{ get_password('mysql_root') }}
- sst-password: {{ get_password('mysql_sst') }}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.mysql }}
-{% endif %}
- min-cluster-size: {{ unit_qty() }}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
+++ /dev/null
- neutron-api:
- charm: "local:{{ ubuntu.release }}/neutron-api"
- num_units: {{ unit_qty() }}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- region: {{ os.region }}
- neutron-security-groups: true
-{% if os.beta.public_api %}
- use-internal-endpoints: true
-{% endif %}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if os.api.worker_multiplier %}
- worker-multiplier: {{ os.api.worker_multiplier }}
-{% endif %}
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.neutron }}
-{% endif %}
-{% if os.network.controller == 'nosdn' %}
- flat-network-providers: physnet1
-{% if os.network.dvr %}
- overlay-network-type: vxlan
-{% endif %}
-{% elif os.network.controller == 'odl' %}
- manage-neutron-plugin-legacy-mode: False
- flat-network-providers: physnet1
-{% elif os.network.controller == 'onos' %}
- flat-network-providers: physnet1
- manage-neutron-plugin-legacy-mode: False
-{% endif %}
-{% if os.beta.public_api %}
- os-public-hostname: api.{{ opnfv.domain }}
-{% endif %}
-{% if os.network.dvr %}
- enable-dvr: true
-{% endif %}
-{% if os.network.l2_population %}
- l2-population: true
-{% endif %}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
+++ /dev/null
- neutron-gateway:
- charm: "local:{{ ubuntu.release }}/neutron-gateway"
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
-{% if os.api.worker_multiplier %}
- worker-multiplier: {{ os.api.worker_multiplier }}
-{% endif %}
-{% if opnfv.spaces_dict.data is defined %}
- os-data-network: {{ opnfv.spaces_dict.data.cidr }}
-{% endif %}
-{% if os.network.controller == 'nosdn' %}
-{% if opnfv.ext_port is defined %}
-{% if opnfv.data_port is defined %}
- bridge-mappings: physnet1:br-ex physnet2:br-data
- data-port: br-ex:{{ opnfv.ext_port }} br-data:{{ opnfv.data_port }}
-{% else %}
- bridge-mappings: physnet1:br-ex
- data-port: br-ex:{{ opnfv.ext_port }}
-{% endif %}
-{% endif %}
-{% elif os.network.controller == 'onos' %}
- plugin: onos
-{% if opnfv.ext_port is defined %}
-{% if opnfv.data_port is defined %}
- bridge-mappings: physnet1:br-data external:br-ex
- data-port: br-data:{{ opnfv.data_port }} br-ex:{{ opnfv.ext_port }}
-{% else %}
- bridge-mappings: external:br-ex
- data-port: br-ex:{{ opnfv.ext_port }}
-{% endif %}
-{% endif %}
-{% if os.network.sfc %}
- profile: onos-sfc
-{% endif %}
-{% elif os.network.controller == 'odl' %}
- plugin: ovs-odl
-{% if opnfv.ext_port is defined %}
-{% if opnfv.data_port is defined %}
- bridge-mappings: physnet1:br-ex physnet2:br-data
- data-port: br-ex:{{ opnfv.ext_port }} br-data:{{ opnfv.data_port }}
-{% else %}
- bridge-mappings: physnet1:br-ex
- data-port: br-ex:{{ opnfv.ext_port }}
-{% endif %}
-{% endif %}
-{% else %}
-{% if opnfv.ext_port is defined %}
- ext-port: {{ opnfv.ext_port }}
-{% endif %}
-{% endif %}
- instance-mtu: 1400
- to:
- - "nodes=0"
-{# Empty block to avoid bad block trim #}
+++ /dev/null
- neutron-openvswitch:
- charm: local:{{ ubuntu.release }}/neutron-openvswitch
- options:
-{% if opnfv.spaces_dict.data is defined %}
- os-data-network: {{ opnfv.spaces_dict.data.cidr }}
-{% endif %}
-{% if os.network.dpdk %}
- enable-dpdk: true
- #dpdk-driver: uio_pci_generic
- #data-port: ""
- #default-socket-memory: 1024
- #default-socket-cores: 1
-{% endif %}
-{% if opnfv.ext_port is defined %}
-{% if os.network.dvr %}
-{% if os.network.controller == 'nosdn' %}
-{% if opnfv.data_port is defined %}
- bridge-mappings: physnet1:br-ex physnet2:br-data
- data-port: br-ex:{{ opnfv.ext_port }} br-data:{{ opnfv.data_port }}
-{% else %}
- bridge-mappings: physnet1:br-ex
- data-port: br-ex:{{ opnfv.ext_port }}
-{% endif %}
-{% else %}
- ext-port: {{ opnfv.ext_port }}
-{% endif %}
-{% endif %}
-{% endif %}
-{# Empty block to avoid bad block trim #}
+++ /dev/null
- nova-cloud-controller:
- charm: "local:{{ ubuntu.release }}/nova-cloud-controller"
- num_units: {{ unit_qty() }}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- region: {{ os.region }}
- #console-access-protocol: novnc
- neutron-external-network: ext-net
- service-guard: true
-{% if os.beta.public_api %}
- use-internal-endpoints: true
-{% endif %}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if os.api.worker_multiplier %}
- worker-multiplier: {{ os.api.worker_multiplier }}
-{% endif %}
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.nova }}
-{% endif %}
-{% if opnfv.domain is defined %}
- console-proxy-ip: {{ opnfv.domain }}
-{% endif %}
- network-manager: Neutron
-{% if os.beta.public_api %}
- os-public-hostname: api.{{ opnfv.domain }}
-{% endif %}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
+++ /dev/null
- nova-compute:
- charm: "local:{{ ubuntu.release }}/nova-compute"
-{% if os.hyperconverged %}
- num_units: {{ opnfv.units - 1 }}
-{% else %}
-{% if os.ha.mode == 'ha' %}
- num_units: {{ opnfv.units - 3 }}
-{% else %}
- num_units: {{ opnfv.units - 1 }}
-{% endif %}
-{% endif %}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- enable-live-migration: true
- enable-resize: true
- migration-auth-type: ssh
-{% if os.beta.public_api %}
- use-internal-endpoints: true
-{% endif %}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if opnfv.storage_dict.ceph is defined %}
- ceph-osd-replication-count: {{ unit_ceph_qty() }}
-{% endif %}
-{% if os.beta.huge_pages %}
- hugepages: "50%"
-{% endif %}
-{% if os.lxd %}
- virt-type: lxd
-{% endif %}
- to:
-{% if os.hyperconverged %}
-{% for unit_id in range(1, opnfv.units) %}
- - "nodes={{ unit_id }}"
-{% endfor %}
-{% else %}
-{% if os.ha.mode == 'ha' %}
-{% for unit_id in range(0, opnfv.units - 3) %}
- - "nodes-compute={{ unit_id }}"
-{% endfor %}
-{% else %}
-{% for unit_id in range(0, opnfv.units - 1) %}
- - "nodes-compute={{ unit_id }}"
-{% endfor %}
-{% endif %}
-{% endif %}
+++ /dev/null
- zookeeper:
- charm: local:{{ ubuntu.release }}/zookeeper
- num_units: {{ unit_qty() }}
- series: {{ ubuntu.release }}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
- cassandra:
- charm: local:{{ ubuntu.release }}/cassandra
- num_units: {{ unit_qty() }}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
- options:
- authenticator: AllowAllAuthenticator
- contrail-configuration:
- charm: local:{{ ubuntu.release }}/contrail-configuration
- num_units: {{ unit_qty() }}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- install-sources: |
- - ppa:opencontrail/ppa
- - ppa:opencontrail/trunk-20160812
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.contrailconfig }}
-{% endif %}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
- contrail-control:
- charm: local:{{ ubuntu.release }}/contrail-control
- num_units: {{ unit_qty() }}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- install-sources: |
- - ppa:opencontrail/ppa
- - ppa:opencontrail/trunk-20160812
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
- contrail-analytics:
- charm: local:{{ ubuntu.release }}/contrail-analytics
- num_units: {{ unit_qty() }}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- install-sources: |
- - ppa:opencontrail/ppa
- - ppa:opencontrail/trunk-20160812
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
- contrail-webui:
- charm: local:{{ ubuntu.release }}/contrail-webui
- num_units: {{ unit_qty() }}
- options:
- install-sources: |
- - ppa:opencontrail/ppa
- - ppa:opencontrail/trunk-20160812
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
- haproxy:
- charm: local:{{ ubuntu.release }}/haproxy
- num_units: {{ unit_qty() }}
- options:
- peering_mode: active-active
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
- kafka:
- charm: local:{{ ubuntu.release }}/kafka
- num_units: {{ unit_qty() }}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
-
+++ /dev/null
- odl-controller:
- charm: local:{{ ubuntu.release }}/odl-controller
- options:
- install-url: "https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.5.0-Boron/distribution-karaf-0.5.0-Boron.tar.gz"
-{% if os.network.sfc %}
- profile: "openvswitch-odl-beryllium-sfc"
-{% elif os.network.bgpvpn %}
- profile: "openvswitch-odl-beryllium-vpn"
-{% elif os.network.odll3 %}
- profile: "openvswitch-odl-beryllium-l3"
-{% else %}
- profile: "openvswitch-odl-boron"
-{% endif %}
- http-proxy: "http://squid.internal:3128"
- https-proxy: "http://squid.internal:3128"
- to:
- - "lxc:nodes=0"
+++ /dev/null
- onos-controller:
- charm: local:{{ ubuntu.release }}/onos-controller
- options:
-{% if opnfv.ext_port is defined %}
- ext-port: {{ opnfv.ext_port }}
-{% endif %}
- #gateway-mac: "default"
- to:
- - "lxc:nodes=0"
+++ /dev/null
- openstack-dashboard:
- charm: "local:{{ ubuntu.release }}/openstack-dashboard"
- num_units: {{ unit_qty() }}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- secret: admin
- webroot: /
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.dashboard }}
-{% endif %}
-{% if os.beta.public_api %}
- endpoint-type: internalURL
-{% endif %}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
+++ /dev/null
- opnfv-promise:
- charm: local:{{ ubuntu.release }}/promise
- to:
- - "lxc:nodes=0"
-{# Empty block to avoid bad block trim #}
+++ /dev/null
-{% if opnfv.spaces_dict.storage is defined %}
- #ceph-cluster-network: {{ opnfv.spaces_dict.storage.cidr }}
-{% endif %}
-{% if os.network.ipv6 %}
- #prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if os.ha.mode == 'ha' %}
-{% if os.api.haproxy_timeout %}
- #haproxy-server-timeout: {{ os.api.haproxy_timeout }}
- #haproxy-client-timeout: {{ os.api.haproxy_timeout }}
- #haproxy-queue-timeout: {{ os.api.haproxy_timeout }}
- #haproxy-connect-timeout: {{ os.api.haproxy_timeout }}
-{% endif %}
-{% endif %}
-{% if os.api.worker_multiplier %}
- #worker-multiplier: {{ os.api.worker_multiplier }}
-{% endif %}
-{% if os.network.dvr %}
- #enable-dvr: true
-{% endif %}
-{% if os.network.l2_population %}
- #l2-population: true
-{% endif %}
- region: {{ os.region }}
-{% if ubuntu.release == 'trusty' %}
- #source: "cloud:{{ ubuntu.release }}-{{ os.release }}"
-{% endif %}
- #openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
-{% if ubuntu.release == 'xenial' %}
-{% if os.release == 'newton' %}
- #source: "cloud:{{ ubuntu.release }}-{{ os.release }}"
-{% endif %}
-{% endif %}
-{% if os.ha.mode == 'nonha' %}
-{% if opnfv.storage_dict.ceph is defined %}
- #ceph-osd-replication-count: {{ unit_ceph_qty() }}
-{% endif %}
-{% endif %}
- #admin-role: {{ os.admin.role }}
- #keystone-admin-role: {{ os.admin.role }}
-{% if os.beta.public_api %}
- #use-internal-endpoints: true
-{% endif %}
+++ /dev/null
- rabbitmq-server:
- charm: "local:{{ ubuntu.release }}/rabbitmq-server"
- num_units: {{ unit_qty() }}
- options:
-{% if opnfv.storage_dict.ceph is defined %}
- ceph-osd-replication-count: {{ unit_ceph_qty() }}
-{% endif %}
-{% if os.network.ipv6 %}
- prefer-ipv6: {{ os.network.ipv6 }}
-{% endif %}
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.rabbitmq }}
- min-cluster-size: {{ unit_qty() }}
-{% endif %}
- to:
-{% for unit_id in to_select() %}
- - "lxc:nodes={{ unit_id }}"
-{% endfor %}
+++ /dev/null
- - [ 'nova-compute:amqp', 'rabbitmq-server:amqp' ]
- - [ 'neutron-gateway:amqp', 'rabbitmq-server:amqp' ]
- - [ 'keystone:shared-db', 'mysql:shared-db' ]
- - [ 'nova-cloud-controller:identity-service', 'keystone:identity-service' ]
- - [ 'glance:identity-service', 'keystone:identity-service' ]
- - [ 'neutron-api:identity-service', 'keystone:identity-service' ]
- - [ 'neutron-api:shared-db', 'mysql:shared-db' ]
- - [ 'neutron-api:amqp', 'rabbitmq-server:amqp' ]
- - [ 'neutron-gateway:neutron-plugin-api', 'neutron-api:neutron-plugin-api' ]
- - [ 'glance:shared-db', 'mysql:shared-db' ]
- - [ 'glance:amqp', 'rabbitmq-server:amqp' ]
- - [ 'nova-cloud-controller:image-service', 'glance:image-service' ]
- - [ 'nova-compute:image-service', 'glance:image-service' ]
- - [ 'nova-cloud-controller:cloud-compute', 'nova-compute:cloud-compute' ]
- - [ 'nova-cloud-controller:amqp', 'rabbitmq-server:amqp' ]
- - [ 'nova-cloud-controller:quantum-network-service', 'neutron-gateway:quantum-network-service' ]
- - [ 'openstack-dashboard:identity-service', 'keystone:identity-service' ]
- - [ 'nova-cloud-controller:shared-db', 'mysql:shared-db' ]
- - [ 'nova-cloud-controller:neutron-api', 'neutron-api:neutron-api' ]
- - [ '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:shared-db', 'mysql:shared-db' ]
-{% if opnfv.storage_dict.scaleio is defined %}
- - [ 'cinder:storage-backend', 'scaleio-openstack:storage-backend' ]
- - [ 'scaleio-mdm:scaleio-sds', 'scaleio-sds:scaleio-sds' ]
-# - [ 'scaleio-mdm:scaleio-sds', 'scaleio-sds-pd2:scaleio-sds' ]
- - [ 'scaleio-mdm:scaleio-mdm', 'scaleio-sdc:scaleio-mdm' ]
- - [ 'scaleio-mdm:scaleio-mdm', 'scaleio-gw:scaleio-mdm' ]
- - [ 'scaleio-openstack:scaleio-gw', 'scaleio-gw:scaleio-gw' ]
- - [ 'nova-compute:ephemeral-backend', 'scaleio-openstack:ephemeral-backend' ]
-{% else %}
- - [ 'cinder-ceph:storage-backend', 'cinder:storage-backend' ]
- - [ 'ceph:client', 'nova-compute:ceph' ]
- - [ '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' ]
-{% if os.service.congress %}
- - [ 'congress:shared-db', 'mysql:shared-db' ]
- - [ 'congress:identity-service', 'keystone:identity-service' ]
- - [ 'congress:amqp', 'rabbitmq-server:amqp' ]
-{% endif %}
-{% endif %}
- - [ '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' ]
- - [ 'aodh:amqp', 'rabbitmq-server:amqp' ]
- - [ 'aodh:shared-db', 'mysql:shared-db' ]
- - [ 'aodh:identity-service', 'keystone:identity-service' ]
-{% if os.lxd %}
- - [ 'nova-compute:lxd', 'lxd:lxd' ]
-{% endif %}
-{% if os.network.controller == 'nosdn' %}
- - [ 'neutron-openvswitch:amqp', 'rabbitmq-server:amqp' ]
- - [ 'nova-compute:neutron-plugin', 'neutron-openvswitch:neutron-plugin' ]
- - [ 'neutron-openvswitch:neutron-plugin-api', 'neutron-api:neutron-plugin-api' ]
-{% elif os.network.controller == 'odl' %}
- - [ 'neutron-api:neutron-plugin-api-subordinate', 'neutron-api-odl:neutron-plugin-api-subordinate' ]
- - [ 'nova-compute:neutron-plugin', 'openvswitch-odl:neutron-plugin' ]
- - [ 'neutron-gateway', 'openvswitch-odl' ]
- - [ 'openvswitch-odl:ovsdb-manager', 'odl-controller:ovsdb-manager' ]
- - [ 'neutron-api-odl:odl-controller', 'odl-controller:controller-api' ]
-{% elif os.network.controller == 'onos' %}
- - [ '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' ]
-{% elif os.network.controller == 'ocl' %}
- - [ 'kafka', 'zookeeper' ]
- - [ 'contrail-configuration:cassandra', 'cassandra:database' ]
- - [ 'contrail-configuration:contrail-analytics-api', 'contrail-analytics:contrail-analytics-api' ]
- - [ 'contrail-configuration', 'zookeeper' ]
- - [ 'contrail-configuration', 'rabbitmq-server' ]
- - [ 'contrail-configuration', 'keystone' ]
- - [ 'contrail-configuration', 'haproxy' ]
- - [ 'contrail-analytics:cassandra', 'cassandra:database' ]
- - [ 'contrail-analytics:contrail-api', 'contrail-configuration:contrail-api' ]
- - [ 'contrail-analytics:contrail-discovery', 'contrail-configuration:contrail-discovery' ]
- - [ 'contrail-analytics', 'kafka' ]
- - [ 'contrail-analytics', 'zookeeper' ]
- - [ 'contrail-analytics', 'keystone' ]
- - [ 'contrail-analytics', 'haproxy' ]
- - [ 'contrail-control:contrail-discovery', 'contrail-configuration:contrail-discovery' ]
- - [ 'contrail-control:contrail-ifmap', 'contrail-configuration:contrail-ifmap' ]
- - [ 'contrail-control:contrail-api', 'contrail-configuration:contrail-api' ]
- - [ 'contrail-control', 'keystone' ]
- - [ 'neutron-api-contrail', 'contrail-configuration' ]
- - [ 'neutron-api-contrail', 'keystone' ]
- - [ 'contrail-webui', 'keystone' ]
- - [ 'contrail-webui:contrail_api', 'contrail-configuration:contrail-api' ]
- - [ 'contrail-webui:contrail_discovery', 'contrail-configuration:contrail-discovery' ]
- - [ 'contrail-webui:cassandra', 'cassandra:database' ]
- - [ 'contrail-webui', 'haproxy' ]
- - [ 'neutron-contrail', 'keystone' ]
- - [ 'neutron-contrail:contrail-discovery', 'contrail-configuration:contrail-discovery' ]
- - [ 'neutron-contrail:contrail-api', 'contrail-configuration:contrail-api' ]
- - [ 'haproxy', 'keepalived' ]
- - [ 'ceilometer', 'ceilometer-contrail' ]
- - [ 'ceilometer-contrail', 'contrail-analytics' ]
-{% endif %}
+++ /dev/null
-{% if opnfv.storage_dict.scaleio is defined %}
- scaleio-mdm:
- charm: "local:{{ ubuntu.release }}/scaleio-mdm"
- num_units: {{ unit_scaleio_qty() }}
- options:
- cluster-mode: 3
- to:
-{% if os.hyperconverged %}
-{% for unit_id in range(0, 3) %}
- - "nodes={{ unit_id }}"
-{% endfor %}
-{% else %}
- - "nodes=0"
- - "nodes-compute=0"
- - "nodes-compute=1"
-{% endif %}
- scaleio-sds:
- charm: "local:{{ ubuntu.release }}/scaleio-sds"
- num_units: {{ opnfv.units }}
- options:
- protection-domain: 'pd1'
- device-paths: {{ opnfv.storage_dict.scaleio.disk }}
- to:
-{% if os.hyperconverged %}
-{% for unit_id in range(0, opnfv.units) %}
- - "nodes={{ unit_id }}"
-{% endfor %}
-{% else %}
-{% for unit_id in range(0, opnfv.units) %}
- - "{{ unit_id }}"
-{% endfor %}
-{% endif %}
- scaleio-sdc:
- charm: "local:{{ ubuntu.release }}/scaleio-sdc"
- num_units: {{ opnfv.units }}
- to:
-{% if os.hyperconverged %}
-{% for unit_id in range(0, opnfv.units) %}
- - "nodes={{ unit_id }}"
-{% endfor %}
-{% else %}
-{% for unit_id in range(0, opnfv.units) %}
- - "{{ unit_id }}"
-{% endfor %}
-{% endif %}
- scaleio-gw:
- charm: "local:{{ ubuntu.release }}/scaleio-gw"
- to:
- - "nodes=0"
- scaleio-gui:
- charm: "local:{{ ubuntu.release }}/scaleio-gui"
- to:
- - "nodes=0"
-{% endif %}
+++ /dev/null
-
- ceilometer-agent:
- charm: local:{{ ubuntu.release }}/ceilometer-agent
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
-{% if os.beta.public_api %}
- use-internal-endpoints: true
-{% endif %}
-{% if opnfv.storage_dict.ceph is defined %}
- cinder-ceph:
- charm: local:{{ ubuntu.release }}/cinder-ceph
- options:
-{% if opnfv.storage_dict.ceph is defined %}
- ceph-osd-replication-count: {{ unit_ceph_qty() }}
-{% endif %}
-{% endif %}
-{% if os.network.controller == 'nosdn' %}
-{% include 'neutron-ovs.yaml' %}
-{% elif os.network.controller == 'odl' %}
- neutron-api-odl:
- charm: local:{{ ubuntu.release }}/neutron-api-odl
- options:
- overlay-network-type: 'vxlan'
- security-groups: True
- openvswitch-odl:
- charm: local:{{ ubuntu.release }}/openvswitch-odl
- options:
-{% if opnfv.spaces_dict.data is defined %}
- os-data-network: {{ opnfv.spaces_dict.data.cidr }}
-{% endif %}
-{% elif os.network.controller == 'onos' %}
- neutron-api-onos:
- charm: local:{{ ubuntu.release }}/neutron-api-onos
- options:
- overlay-network-type: 'vxlan'
- security-groups: True
- openvswitch-onos:
- charm: local:{{ ubuntu.release }}/openvswitch-onos
- options:
-{% if opnfv.spaces_dict.data is defined %}
- os-data-network: {{ opnfv.spaces_dict.data.cidr }}
-{% endif %}
-{% if os.network.sfc %}
- profile: onos-sfc
-{% endif %}
-{% elif os.network.controller == 'ocl' %}
- ceilometer-contrail:
- charm: local:{{ ubuntu.release }}/ceilometer-contrail
- options:
- install-sources: |
- - ppa:opencontrail/ppa
- - ppa:opencontrail/trunk-20160812
- neutron-api-contrail:
- charm: local:{{ ubuntu.release }}/neutron-api-contrail
- options:
- install-sources: |
- - ppa:opencontrail/ppa
- - ppa:opencontrail/trunk-20160812
- neutron-contrail:
- charm: local:{{ ubuntu.release }}/neutron-contrail
- options:
- install-sources: |
- - ppa:opencontrail/ppa
- - ppa:opencontrail/trunk-20160812
- keepalived:
- charm: local:{{ ubuntu.release }}/keepalived
- options:
- router-id: 1
-{% if os.ha.mode == 'ha' %}
- virtual-ip: {{ opnfv.vip.keepalived }}
-{% endif %}
-{% endif %}
-{% if os.lxd %}
- lxd:
- charm: local:{{ ubuntu.release }}/lxd
- options:
-{% endif %}
-{% if opnfv.storage_dict.scaleio is defined %}
- scaleio-openstack:
- charm: local:{{ ubuntu.release }}/scaleio-openstack
- options:
- protection-domains: 'pd1'
-{% endif %}
- zookeeper:
- charm: ./{{ ubuntu.release }}/zookeeper
- num_units: {{ unit_qty() }}
- series: {{ ubuntu.release }}
- to:
-{% for unit_id in to_select() %}
- - "lxd:nodes/{{ unit_id }}"
-{% endfor %}
- cassandra:
- charm: ./{{ ubuntu.release }}/cassandra
- num_units: {{ unit_qty() }}
- to:
-{% for unit_id in to_select() %}
- - "lxd:nodes/{{ unit_id }}"
-{% endfor %}
- options:
- authenticator: AllowAllAuthenticator
- contrail-configuration:
- charm: ./{{ ubuntu.release }}/contrail-configuration
- num_units: {{ unit_qty() }}
+
+ contrail-openstack:
+ charm: ./{{ ubuntu.release }}/contrail-openstack
options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- install-sources: ppa:opencontrail/trunk-20160812
-{% if os.ha.mode == 'ha' %}
- vip: {{ opnfv.vip.contrailconfig }}
-{% endif %}
- to:
-{% for unit_id in to_select() %}
- - "lxd:nodes/{{ unit_id }}"
-{% endfor %}
- contrail-control:
- charm: ./{{ ubuntu.release }}/contrail-control
- num_units: {{ unit_qty() }}
+ install-keys: |
+ - |
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+ Version: GnuPG v1
+
+ mQENBFkff8kBCADm+xSDvRjblHEZ5aISb/j6pdvgLL5Ht1SgJ6a8EJdRBJGIt3lP
+ 6Eurvmn4gxm7McelpFMWsDKy+Rr0GJ6Wjq6CwFzDi2Vvl2IQpafYuYLGaFYG1/73
+ 0+O0LclwPnVezQ9wu/AWkD/y6YJFhxDCCeBplNf/pdRzZg2c6BBugMBN2s0nsqHN
+ xKqRDItR8OxeVdF70bmdSecemHmB7ccoCMD5F81E2IdUN8ATpRqJOVXOMt2BWrj+
+ dhQK2Amzv/qzYdYOvqYqvFqTl6RNy4YkOJIVc45hBoYxlRpd18/fT3ejWM25WZ2b
+ d+c5MNGRV2+2lgqqzRgUehBo2f4RDT+p4fAxABEBAAG0CWNvbnRyYWlsNIkBOAQT
+ AQIAIgUCWR9/yQIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQcsuWr0gx
+ U0w58wgAg+nmWRSDYNU99MU5tEMMurWMkwpC1V0uB20cr5z7gREyAUN+HAWV8Ngz
+ R+DMaDQK6JHPkNu8xNgyfAB7sO795DKF2aSP3RhephXsDJdyb55zEsjzmsJiZ9JI
+ sdkSg/6zRKkkK9S0VqY5C9jhj6TCUOVuJjk56ynbS/0klwUjpf6qqutJg0LyIWn0
+ o3vdpVr/PVJUTK9uOriNXtQPkvai+7jBEJ28zaDCilLhdX0Kg4gmpgpm8IlscDGK
+ dqxQiraGvK3fGmmQ1mk5jEk5ydQOGvVIJO5N/H6AgBJ+xIUSU3yzNVJlfBUnBrSO
+ OHdFNOPnSrwZuepQfht8vWgwTArczrkBDQRZH3/JAQgAzZMwPBVjpstYnThsgWO5
+ HQ9kbsviVWK/4ZHceYujfJ/ovZn/b9TGsvmL9U1dMJbBbBO6cFh7GvKFoIoR8c7g
+ QPHbh+MwH7EyBizpJPE+Fg+YP4hlaLvKf3bzVor9nFP4FUF671gXCFwvSbTMh/pm
+ EnOM6p6E/dWD2Ag1rcEX2lXn1sKvO+0nEdmHra8c6EeGhwt/sJ8MMVx61ZgKi0/Z
+ UGmfwBR004Tb4XBbUPOYzIZqtsK9lBUeFs6v3mNaZCBxzTb3fIXnqX5o9d7F/8ya
+ a+S+sLqYzheCiJz5JpYxh2GovoeDkPczd8HeAK9REedEs12grZj3cxnVyZApbeX5
+ yQARAQABiQEfBBgBAgAJBQJZH3/JAhsMAAoJEHLLlq9IMVNMRFAIAJzEv6Y0ngqU
+ jgcE+kd+nLGtSgQ4MRWD5y0s8cLP/M5WNtJNWy70038fG3/ilh8Y4HsfTDu4ZMHQ
+ mVM1lpJg/U08fUIiU+iQfVnckB+Oj/irc2FgUF2YJSJwZkwFaIv0u1NKkvKr8Qmt
+ jJuAuNv97uHLF9fkAJGUrLGZDk5MmCNdnQDkPEn7NaRMxf+1SvbGvPS3jGzGbR0p
+ Umtdm5/zs4kre7xS71d4F5De4d1bhTNT8weC9KDJdXXf8xsuF1NPlxU/Cv6XB78Y
+ W2I4/FMkyQOkVZyNz20SbupiZt0L0ldlnk1brf2hoKagmBLNU8bXKrQAkqQTxJcT
+ d+E671t4w94=
+ =Fbaq
+ -----END PGP PUBLIC KEY BLOCK-----
+ install-sources: |
+ - "deb http://10.102.44.96/contrail4 /"
+
+ contrail-agent:
+ charm: ./{{ ubuntu.release }}/contrail-agent
options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- install-sources: ppa:opencontrail/trunk-20160812
- to:
-{% for unit_id in to_select() %}
- - "lxd:nodes/{{ unit_id }}"
-{% endfor %}
+ install-keys: |
+ - |
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+ Version: GnuPG v1
+
+ mQENBFkff8kBCADm+xSDvRjblHEZ5aISb/j6pdvgLL5Ht1SgJ6a8EJdRBJGIt3lP
+ 6Eurvmn4gxm7McelpFMWsDKy+Rr0GJ6Wjq6CwFzDi2Vvl2IQpafYuYLGaFYG1/73
+ 0+O0LclwPnVezQ9wu/AWkD/y6YJFhxDCCeBplNf/pdRzZg2c6BBugMBN2s0nsqHN
+ xKqRDItR8OxeVdF70bmdSecemHmB7ccoCMD5F81E2IdUN8ATpRqJOVXOMt2BWrj+
+ dhQK2Amzv/qzYdYOvqYqvFqTl6RNy4YkOJIVc45hBoYxlRpd18/fT3ejWM25WZ2b
+ d+c5MNGRV2+2lgqqzRgUehBo2f4RDT+p4fAxABEBAAG0CWNvbnRyYWlsNIkBOAQT
+ AQIAIgUCWR9/yQIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQcsuWr0gx
+ U0w58wgAg+nmWRSDYNU99MU5tEMMurWMkwpC1V0uB20cr5z7gREyAUN+HAWV8Ngz
+ R+DMaDQK6JHPkNu8xNgyfAB7sO795DKF2aSP3RhephXsDJdyb55zEsjzmsJiZ9JI
+ sdkSg/6zRKkkK9S0VqY5C9jhj6TCUOVuJjk56ynbS/0klwUjpf6qqutJg0LyIWn0
+ o3vdpVr/PVJUTK9uOriNXtQPkvai+7jBEJ28zaDCilLhdX0Kg4gmpgpm8IlscDGK
+ dqxQiraGvK3fGmmQ1mk5jEk5ydQOGvVIJO5N/H6AgBJ+xIUSU3yzNVJlfBUnBrSO
+ OHdFNOPnSrwZuepQfht8vWgwTArczrkBDQRZH3/JAQgAzZMwPBVjpstYnThsgWO5
+ HQ9kbsviVWK/4ZHceYujfJ/ovZn/b9TGsvmL9U1dMJbBbBO6cFh7GvKFoIoR8c7g
+ QPHbh+MwH7EyBizpJPE+Fg+YP4hlaLvKf3bzVor9nFP4FUF671gXCFwvSbTMh/pm
+ EnOM6p6E/dWD2Ag1rcEX2lXn1sKvO+0nEdmHra8c6EeGhwt/sJ8MMVx61ZgKi0/Z
+ UGmfwBR004Tb4XBbUPOYzIZqtsK9lBUeFs6v3mNaZCBxzTb3fIXnqX5o9d7F/8ya
+ a+S+sLqYzheCiJz5JpYxh2GovoeDkPczd8HeAK9REedEs12grZj3cxnVyZApbeX5
+ yQARAQABiQEfBBgBAgAJBQJZH3/JAhsMAAoJEHLLlq9IMVNMRFAIAJzEv6Y0ngqU
+ jgcE+kd+nLGtSgQ4MRWD5y0s8cLP/M5WNtJNWy70038fG3/ilh8Y4HsfTDu4ZMHQ
+ mVM1lpJg/U08fUIiU+iQfVnckB+Oj/irc2FgUF2YJSJwZkwFaIv0u1NKkvKr8Qmt
+ jJuAuNv97uHLF9fkAJGUrLGZDk5MmCNdnQDkPEn7NaRMxf+1SvbGvPS3jGzGbR0p
+ Umtdm5/zs4kre7xS71d4F5De4d1bhTNT8weC9KDJdXXf8xsuF1NPlxU/Cv6XB78Y
+ W2I4/FMkyQOkVZyNz20SbupiZt0L0ldlnk1brf2hoKagmBLNU8bXKrQAkqQTxJcT
+ d+E671t4w94=
+ =Fbaq
+ -----END PGP PUBLIC KEY BLOCK-----
+ install-sources: |
+ - "deb http://10.102.44.96/contrail4 /"
+
contrail-analytics:
charm: ./{{ ubuntu.release }}/contrail-analytics
num_units: {{ unit_qty() }}
- options:
- openstack-origin: "cloud:{{ ubuntu.release }}-{{ os.release }}"
- install-sources: ppa:opencontrail/trunk-20160812
to:
{% for unit_id in to_select() %}
- - "lxd:nodes/{{ unit_id }}"
+ - "nodes/{{ unit_id }}"
{% endfor %}
- contrail-webui:
- charm: ./{{ ubuntu.release }}/contrail-webui
+
+ contrail-analyticsdb:
+ charm: ./{{ ubuntu.release }}/contrail-analyticsdb
num_units: {{ unit_qty() }}
- options:
- install-sources: ppa:opencontrail/trunk-20160812
to:
{% for unit_id in to_select() %}
- - "lxd:nodes/{{ unit_id }}"
+ - "nodes/{{ unit_id }}"
{% endfor %}
- haproxy:
- charm: ./{{ ubuntu.release }}/haproxy
+
+ contrail-controller:
+ charm: ./{{ ubuntu.release }}/contrail-controller
num_units: {{ unit_qty() }}
- options:
- peering_mode: active-active
to:
{% for unit_id in to_select() %}
- - "lxd:nodes/{{ unit_id }}"
+ - "nodes/{{ unit_id }}"
{% endfor %}
- kafka:
- charm: ./{{ ubuntu.release }}/kafka
- num_units: {{ unit_qty() }}
+
+ contrail-keystone-auth:
+ charm: ./{{ ubuntu.release }}/contrail-keystone-auth
+ num_units: 1
to:
-{% for unit_id in to_select() %}
- - "lxd:nodes/{{ unit_id }}"
-{% endfor %}
+ - "lxd:nodes/0"
- [ 'openvswitch-onos:ovsdb-manager', 'onos-controller:ovsdb-manager' ]
- [ 'neutron-api-onos:onos-controller', 'onos-controller:controller-api' ]
{% elif os.network.controller == 'ocl' %}
- - [ 'kafka', 'zookeeper' ]
- - [ 'contrail-configuration:cassandra', 'cassandra:database' ]
- - [ 'contrail-configuration:contrail-analytics-api', 'contrail-analytics:contrail-analytics-api' ]
- - [ 'contrail-configuration', 'zookeeper' ]
- - [ 'contrail-configuration', 'rabbitmq-server' ]
- - [ 'contrail-configuration', 'keystone' ]
- - [ 'contrail-configuration', 'haproxy' ]
- - [ 'contrail-analytics:cassandra', 'cassandra:database' ]
- - [ 'contrail-analytics:contrail-api', 'contrail-configuration:contrail-api' ]
- - [ 'contrail-analytics:contrail-discovery', 'contrail-configuration:contrail-discovery' ]
- - [ 'contrail-analytics', 'kafka' ]
- - [ 'contrail-analytics', 'zookeeper' ]
- - [ 'contrail-analytics', 'keystone' ]
- - [ 'contrail-analytics', 'haproxy' ]
- - [ 'contrail-control:contrail-discovery', 'contrail-configuration:contrail-discovery' ]
- - [ 'contrail-control:contrail-ifmap', 'contrail-configuration:contrail-ifmap' ]
- - [ 'contrail-control:contrail-api', 'contrail-configuration:contrail-api' ]
- - [ 'contrail-control', 'keystone' ]
- - [ 'neutron-api-contrail', 'contrail-configuration' ]
- - [ 'neutron-api-contrail', 'keystone' ]
- - [ 'contrail-webui', 'keystone' ]
- - [ 'contrail-webui:contrail_api', 'contrail-configuration:contrail-api' ]
- - [ 'contrail-webui:contrail_discovery', 'contrail-configuration:contrail-discovery' ]
- - [ 'contrail-webui:cassandra', 'cassandra:database' ]
- - [ 'contrail-webui', 'haproxy' ]
- - [ 'neutron-contrail', 'keystone' ]
- - [ 'neutron-contrail:contrail-discovery', 'contrail-configuration:contrail-discovery' ]
- - [ 'neutron-contrail:contrail-api', 'contrail-configuration:contrail-api' ]
- - [ 'haproxy', 'keepalived' ]
- - [ 'ceilometer', 'ceilometer-contrail' ]
- - [ 'ceilometer-contrail', 'contrail-analytics' ]
+ - [ 'contrail-keystone-auth', 'keystone' ]
+ - [ 'contrail-controller', 'contrail-keystone-auth' ]
+ - [ 'contrail-analytics', 'contrail-analyticsdb' ]
+ - [ 'contrail-controller', 'contrail-analytics' ]
+ - [ 'contrail-controller', 'contrail-analyticsdb' ]
+ - [ 'contrail-openstack', 'nova-compute' ]
+ - [ 'contrail-openstack', 'neutron-api' ]
+ - [ 'contrail-openstack', 'contrail-controller' ]
+ - [ 'contrail-agent:juju-info', 'nova-compute:juju-info' ]
+ - [ 'contrail-agent', 'contrail-controller']
{% endif %}
{% if os.network.sfc %}
profile: onos-sfc
{% endif %}
-{% elif os.network.controller == 'ocl' %}
- ceilometer-contrail:
- charm: ./{{ ubuntu.release }}/ceilometer-contrail
- options:
- install-sources: ppa:opencontrail/trunk-20160812
- neutron-api-contrail:
- charm: ./{{ ubuntu.release }}/neutron-api-contrail
- options:
- install-sources: ppa:opencontrail/trunk-20160812
- neutron-contrail:
- charm: ./{{ ubuntu.release }}/neutron-contrail
- options:
- install-sources: ppa:opencontrail/trunk-20160812
- keepalived:
- charm: ./{{ ubuntu.release }}/keepalived
- options:
- router-id: 1
-{% if os.ha.mode == 'ha' %}
- virtual-ip: {{ opnfv.vip.keepalived }}
-{% endif %}
{% endif %}
{% if os.lxd %}
lxd:
+++ /dev/null
-opnfv-{{ lab.location }}{{ lab.racks[0].rack }}-maas:
- juju-bootstrap:
-{% include 'juju-bootstrap.yaml' %}
- maas:
- apt_sources:
- - ppa:maas/stable
- - ppa:juju/stable
- arch: amd64
- boot_source:
- keyring_filename: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
- selections:
- '1':
- arches: amd64
- labels: release
- os: ubuntu
- release: xenial
- subarches: '*'
- url: http://maas.ubuntu.com/images/ephemeral-v2/releases/
- disk_size: 160G
- interfaces:
-{% for net in opnfv.spaces %}
- - bridge={{ net.bridge }},model=virtio
-{% endfor %}
- ip_address: {{ opnfv.spaces_dict.admin.cidr[:-4] }}5
- memory: 4096
- name: opnfv-{{ lab.location }}{{ lab.racks[0].rack }}
- network_config: |
-{% include 'maas-network_config.yaml' %}
- node_group_ifaces:
-{% include 'maas-node_group_ifaces.yaml' %}
- nodes:
-{% include 'maas-nodes.yaml' %}
- password: ubuntu
- pool: default
- release: trusty
- settings:
- maas_name: {{ lab.location }}{{ lab.racks[0].rack }}
- main_archive: http://archive.ubuntu.com/ubuntu
- upstream_dns: {{ lab.racks[0].dns }}
- user: ubuntu
- vcpus: 4
- virsh:
- rsa_priv_key: {{ os.home }}/.ssh/id_rsa
- rsa_pub_key: {{ os.home }}/.ssh/id_rsa.pub
- uri: qemu+ssh://{{ os.user }}@{{ os.brAdmIP }}/system
+++ /dev/null
- arch: amd64
- disk_size: 60G
- interfaces:
-{% for net in ['admin','public','external'] %}
-{% if net in opnfv.spaces_dict %}
- - bridge={{ opnfv.spaces_dict[net].bridge }},model=virtio
-{% endif %}
-{% endfor %}
- memory: 4096
- name: bootstrap
- pool: default
- vcpus: 4
-{# Empty block to avoid bad block trim #}
+++ /dev/null
- auto lo
- iface lo inet loopback
-{% set ethid = 0 %}
-{% for net in opnfv.spaces %}
-
- auto eth{{ ethid }}
- iface eth{{ ethid }} inet static
- netmask 255.255.255.0
-{% if net.type!='external' %}
-{% set net_prefix = net.cidr[:-4] %}
- address {{ net_prefix }}5
-{% else %}
- address {{ net.ipaddress }}
-{% endif %}
-{% if net.type=='admin' %}
- gateway {{ net.gateway }}
- dns-nameservers {{ lab.racks[0].dns }} {{ net_prefix }}5 127.0.0.1
-{% endif %}
-{% set ethid = ethid+1 %}
-{% endfor %}
+++ /dev/null
-{% set ethid = 0 %}
-{% for net in opnfv.spaces %}
-{% if net.type!='external' %}
-{% set net_prefix = net.cidr[:-4] %}
- - broadcast_ip: {{ net_prefix }}255
- device: eth{{ ethid }}
- dynamic_range:
- high: {{ net_prefix }}250
- low: {{ net_prefix }}81
- ip: {{ net_prefix }}5
-{% if net.gateway!= None %}
- router_ip: {{ net.gateway }}
-{% endif %}
-{% if net.type!='admin' %}
- management: 1
-{% endif %}
- static_range:
- high: {{ net_prefix }}80
- low: {{ net_prefix }}50
- subnet_mask: 255.255.255.0
-{% set ethid = ethid+1 %}
-{% endif %}
-{% endfor %}
+++ /dev/null
-{% for node in lab.racks[0].nodes %}
- - interfaces:
-{% for nic in node.nics %}
- - mac_address: {{ nic.mac[0] }}
- mode: auto
- name: {{ nic.ifname }}
-{% endfor %}
-{% if node.architecture=='x86_64' %}
- architecture: amd64/generic
-{% endif %}
- mac_addresses:
-{% for nic in node.nics %}
- - {{ nic.mac[0] }}
-{% endfor %}
- name: {{ node.name }}
- power:
-{% if node.power.type=='ipmi' %}
- address: {{ node.power.address }}
- driver: LAN_2_0
- pass: {{ node.power.pass }}
- type: ipmi
- user: {{ node.power.user }}
-{% elif node.power.type=='wakeonlan' %}
- type: ether_wake
- mac_address: {{ node.power.mac_address }}
-{% endif %}
- tags: {{ ' '.join(node.roles) }}
-{% endfor %}
# change ha mode
config['os']['network']['controller'] = sdn
+if 'ocl' in sdn:
+ config['os']['hyperconverged'] = False
+
# Change features
if 'lxd' in features:
config['os']['lxd'] = True
+++ /dev/null
-#!/bin/sh -e
-
-. ~/admin-openrc
-
-# adjust tiny image
-nova flavor-delete m1.tiny
-nova flavor-create m1.tiny 1 512 8 1
-
-# configure external network
-neutron net-create --router:external=True public-net
-neutron subnet-create --name public-subnet --no-gateway --allocation-pool start=10.0.10.2,end=10.0.10.254 --disable-dhcp public-net 10.0.10.0/24
-
-# create vm network
-neutron net-create ubuntu-net
-neutron subnet-create --name ubuntu-subnet --gateway 10.0.5.1 ubuntu-net 10.0.5.0/24
-
-# create pool of floating ips
-i=0
-while [ $i -ne 10 ]; do
- neutron floatingip-create public-net
- i=$((i + 1))
-done
-
-# 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
-nova keypair-add --pub-key id_rsa.pub ubuntu-keypair
+++ /dev/null
-#!/bin/sh -e
-
-modprobe kvm_intel
-printf "\n%s\n" kvm_intel >> /etc/modules
-service libvirt-bin restart
-
-sed -e 's/KSM_ENABLED=1/KSM_ENABLED=0/' -i /etc/default/qemu-kvm
-service qemu-kvm restart
+++ /dev/null
-export JUJU_REPOSITORY=../charms
-
-DEFAULT_SERIES=precise
-
-CHARM_CASSANDRA=local:precise/cassandra
-CHARM_CASSANDRA_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_CONTRAIL_ANALYTICS=local:precise/contrail-analytics
-CHARM_CONTRAIL_ANALYTICS_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_CONTRAIL_CONFIGURATION=local:precise/contrail-configuration
-CHARM_CONTRAIL_CONFIGURATION_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_CONTRAIL_CONTROL=local:precise/contrail-control
-CHARM_CONTRAIL_CONTROL_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_CONTRAIL_WEBUI=local:trusty/contrail-webui
-
-CHARM_GLANCE=local:precise/glance
-CHARM_GLANCE_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_KEYSTONE=local:precise/keystone
-CHARM_KEYSTONE_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_MYSQL=precise/mysql
-CHARM_MYSQL_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_NEUTRON_API=local:precise/neutron-api
-CHARM_NEUTRON_API_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_NEUTRON_API_CONTRAIL=local:precise/neutron-api-contrail
-
-CHARM_NEUTRON_CONTRAIL=local:precise/neutron-contrail
-
-CHARM_NOVA_CLOUD_CONTROLLER=local:precise/nova-cloud-controller
-CHARM_NOVA_CLOUD_CONTROLLER_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_NOVA_COMPUTE=local:precise/nova-compute
-CHARM_NOVA_COMPUTE_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_OPENSTACK_DASHBOARD=local:precise/openstack-dashboard
-CHARM_OPENSTACK_DASHBOARD_DEPLOY_OPTS="--config config-precise.yaml"
-
-CHARM_RABBITMQ_SERVER=precise/rabbitmq-server
-
-CHARM_ZOOKEEPER=local:precise/zookeeper
-
-CONFIGURE_HOST_ROUTING=true
+++ /dev/null
-cassandra:
- authenticator: AllowAllAuthenticator
-
-contrail-analytics:
- openstack-origin: cloud:precise-icehouse
-
-contrail-configuration:
- openstack-origin: cloud:precise-icehouse
-
-contrail-control:
- openstack-origin: cloud:precise-icehouse
-
-glance:
- openstack-origin: cloud:precise-icehouse
-
-keystone:
- admin-password: password
- admin-role: admin
- openstack-origin: cloud:precise-icehouse
-
-mysql:
- dataset-size: 15%
-
-neutron-api:
- manage-neutron-plugin-legacy-mode: false
- openstack-origin: cloud:precise-icehouse
-
-nova-cloud-controller:
- network-manager: Neutron
- openstack-origin: cloud:precise-icehouse
-
-nova-compute:
- manage-neutron-plugin-legacy-mode: false
- openstack-origin: cloud:precise-icehouse
-
-openstack-dashboard:
- openstack-origin: cloud:precise-icehouse
+++ /dev/null
-export JUJU_REPOSITORY=../charms
-
-DEFAULT_SERIES=trusty
-
-CHARM_CASSANDRA=local:trusty/cassandra
-CHARM_CASSANDRA_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_CONTRAIL_ANALYTICS=local:trusty/contrail-analytics
-CHARM_CONTRAIL_ANALYTICS_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_CONTRAIL_CONFIGURATION=local:trusty/contrail-configuration
-CHARM_CONTRAIL_CONFIGURATION_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_CONTRAIL_CONTROL=local:trusty/contrail-control
-CHARM_CONTRAIL_CONTROL_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_CONTRAIL_WEBUI=local:trusty/contrail-webui
-
-CHARM_GLANCE=local:trusty/glance
-CHARM_GLANCE_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_KEYSTONE=local:trusty/keystone
-CHARM_KEYSTONE_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_MYSQL=trusty/mysql
-CHARM_MYSQL_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_NEUTRON_API=local:trusty/neutron-api
-CHARM_NEUTRON_API_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_NEUTRON_API_CONTRAIL=local:trusty/neutron-api-contrail
-
-CHARM_NEUTRON_CONTRAIL=local:trusty/neutron-contrail
-
-CHARM_NOVA_CLOUD_CONTROLLER=local:trusty/nova-cloud-controller
-CHARM_NOVA_CLOUD_CONTROLLER_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_NOVA_COMPUTE=local:trusty/nova-compute
-CHARM_NOVA_COMPUTE_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_OPENSTACK_DASHBOARD=local:trusty/openstack-dashboard
-CHARM_OPENSTACK_DASHBOARD_DEPLOY_OPTS="--config config-trusty-juno.yaml"
-
-CHARM_RABBITMQ_SERVER=trusty/rabbitmq-server
-
-CHARM_ZOOKEEPER=local:precise/zookeeper
-
-CONFIGURE_HOST_ROUTING=true
+++ /dev/null
-cassandra:
- authenticator: AllowAllAuthenticator
-
-contrail-analytics:
- openstack-origin: cloud:trusty-juno
-
-contrail-configuration:
- openstack-origin: cloud:trusty-juno
-
-contrail-control:
- openstack-origin: cloud:trusty-juno
-
-glance:
- openstack-origin: cloud:trusty-juno
-
-keystone:
- admin-password: password
- admin-role: admin
- openstack-origin: cloud:trusty-juno
-
-mysql:
- dataset-size: 15%
-
-neutron-api:
- manage-neutron-plugin-legacy-mode: false
- openstack-origin: cloud:trusty-juno
-
-nova-cloud-controller:
- network-manager: Neutron
- openstack-origin: cloud:trusty-juno
-
-nova-compute:
- manage-neutron-plugin-legacy-mode: false
- openstack-origin: cloud:trusty-juno
-
-openstack-dashboard:
- openstack-origin: cloud:trusty-juno
+++ /dev/null
-export JUJU_REPOSITORY=../charms
-
-DEFAULT_SERIES=trusty
-
-CHARM_CASSANDRA=local:trusty/cassandra
-CHARM_CASSANDRA_DEPLOY_OPTS="--config config-trusty.yaml"
-
-CHARM_CONTRAIL_ANALYTICS=local:trusty/contrail-analytics
-
-CHARM_CONTRAIL_CONFIGURATION=local:trusty/contrail-configuration
-
-CHARM_CONTRAIL_CONTROL=local:trusty/contrail-control
-
-CHARM_CONTRAIL_WEBUI=local:trusty/contrail-webui
-
-CHARM_GLANCE=local:trusty/glance
-
-CHARM_KEYSTONE=local:trusty/keystone
-CHARM_KEYSTONE_DEPLOY_OPTS="--config config-trusty.yaml"
-
-CHARM_MYSQL=trusty/mysql
-CHARM_MYSQL_DEPLOY_OPTS="--config config-trusty.yaml"
-
-CHARM_NEUTRON_API=local:trusty/neutron-api
-CHARM_NEUTRON_API_DEPLOY_OPTS="--config config-trusty.yaml"
-
-CHARM_NEUTRON_API_CONTRAIL=local:trusty/neutron-api-contrail
-
-CHARM_NEUTRON_CONTRAIL=local:trusty/neutron-contrail
-
-CHARM_NOVA_CLOUD_CONTROLLER=local:trusty/nova-cloud-controller
-CHARM_NOVA_CLOUD_CONTROLLER_DEPLOY_OPTS="--config config-trusty.yaml"
-
-CHARM_NOVA_COMPUTE=local:trusty/nova-compute
-CHARM_NOVA_COMPUTE_DEPLOY_OPTS="--config config-trusty.yaml"
-
-CHARM_OPENSTACK_DASHBOARD=local:trusty/openstack-dashboard
-
-CHARM_RABBITMQ_SERVER=trusty/rabbitmq-server
-
-CHARM_ZOOKEEPER=local:precise/zookeeper
-
-CONFIGURE_HOST_ROUTING=true
+++ /dev/null
-cassandra:
- authenticator: AllowAllAuthenticator
-
-keystone:
- admin-password: password
- admin-role: admin
-
-mysql:
- dataset-size: 15%
-
-neutron-api:
- manage-neutron-plugin-legacy-mode: false
-
-nova-cloud-controller:
- network-manager: Neutron
-
-nova-compute:
- manage-neutron-plugin-legacy-mode: false
+++ /dev/null
-#!/bin/sh -e
-exec ./openstack.sh ./config-precise.sh 2>&1 | tee out.log
+++ /dev/null
-#!/bin/sh -e
-exec ./openstack.sh ./config-trusty-juno.sh 2>&1 | tee out.log
+++ /dev/null
-#!/bin/sh -e
-exec ./openstack.sh ./config-trusty.sh 2>&1 | tee out.log
+++ /dev/null
-default: local
-
-environments:
- local:
- type: local
- container: kvm
- default-series: trusty
- lxc-clone: true
+++ /dev/null
-#!/bin/sh -e
-
-. ~/admin-openrc
-
-wget http://cloud-images.ubuntu.com/trusty/current/MD5SUMS
-
-wget http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
-glance image-create --name ubuntu-trusty-daily --disk-format qcow2 --container-format bare --owner admin --file trusty-server-cloudimg-amd64-disk1.img --checksum $(grep trusty-server-cloudimg-amd64-disk1.img MD5SUMS | cut -d " " -f 1) --is-public True
+++ /dev/null
-#!/bin/sh -e
-
-DEBIAN_FRONTEND=noninteractive apt-get -qy -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install lxc < /dev/null
-
-sed -e 's/^USE_LXC_BRIDGE="true"/USE_LXC_BRIDGE="false"/' -i /etc/default/lxc
-service lxc-net restart
-
-ifdown eth0
-mv /etc/network/interfaces.d/eth0.cfg /etc/network/interfaces.d/eth0.cfg.bak
-cat <<-"EOF" > /etc/network/interfaces.d/bridge.cfg
- auto eth0
- iface eth0 inet manual
-
- auto lxcbr0
- iface lxcbr0 inet dhcp
- bridge_ports eth0
- EOF
-ifup eth0 lxcbr0
+++ /dev/null
-#!/bin/sh -ex
-
-agentState()
-{
- juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"machines\"][\"$1\"][\"agent-state\"]" 2> /dev/null
-}
-
-agentStateUnit()
-{
- juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"agent-state\"]" 2> /dev/null
-}
-
-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
-}
-
-waitForMachine()
-{
- for machine; do
- while [ "$(agentState $machine)" != started ]; do
- sleep 5
- done
- done
-}
-
-waitForService()
-{
- for service; do
- while [ "$(agentStateUnit "$service" 0)" != started ]; do
- sleep 5
- done
- done
-}
-
-if [ $# -ne 0 ]; then
- . "$1"
-fi
-
-juju bootstrap
-waitForMachine 0
-
-spare_cpus=$(($(grep processor /proc/cpuinfo | wc -l) - 4))
-if [ $spare_cpus -gt 0 ]; then
- spare_cpus=$(((spare_cpus * 3) / 4))
-else
- spare_cpus=0
-fi
-
-extra_cpus=0
-[ $spare_cpus -ne 0 ] && extra_cpus=$((1 + (((spare_cpus - 1) * 3) / 4))) && spare_cpus=$((spare_cpus - extra_cpus))
-juju add-machine --constraints "cpu-cores=$((1 + extra_cpus)) mem=12G root-disk=20G" --series $DEFAULT_SERIES
-
-extra_cpus=0
-[ $spare_cpus -ne 0 ] && extra_cpus=$((1 + (((spare_cpus - 1) * 3) / 4))) && spare_cpus=$((spare_cpus - extra_cpus))
-juju deploy --constraints "cpu-cores=$((1 + extra_cpus)) mem=4G root-disk=20G" $CHARM_NOVA_COMPUTE_DEPLOY_OPTS "${CHARM_NOVA_COMPUTE:-nova-compute}"
-
-juju add-machine --constraints "cpu-cores=$((1 + spare_cpus)) mem=8G root-disk=20G" --series $DEFAULT_SERIES
-
-waitForMachine 1
-juju scp lxc-network.sh 1:
-juju run --machine 1 "sudo ./lxc-network.sh"
-
-waitForMachine 3
-juju scp lxc-network.sh 3:
-juju run --machine 3 "sudo ./lxc-network.sh"
-
-juju deploy --to lxc:1 $CHARM_MYSQL_DEPLOY_OPTS "${CHARM_MYSQL:-mysql}"
-juju deploy --to lxc:1 $CHARM_RABBITMQ_SERVER_DEPLOY_OPTS "${CHARM_RABBITMQ_SERVER:-rabbitmq-server}"
-juju deploy --to lxc:1 $CHARM_KEYSTONE_DEPLOY_OPTS "${CHARM_KEYSTONE:-keystone}"
-juju deploy --to lxc:1 $CHARM_NOVA_CLOUD_CONTROLLER_DEPLOY_OPTS "${CHARM_NOVA_CLOUD_CONTROLLER:-nova-cloud-controller}"
-juju deploy --to lxc:1 $CHARM_NEUTRON_API_DEPLOY_OPTS "${CHARM_NEUTRON_API:-neutron-api}"
-juju deploy --to lxc:1 $CHARM_GLANCE_DEPLOY_OPTS "${CHARM_GLANCE:-glance}"
-juju deploy --to lxc:1 $CHARM_OPENSTACK_DASHBOARD_DEPLOY_OPTS "${CHARM_OPENSTACK_DASHBOARD:-openstack-dashboard}"
-# contrail
-juju deploy --to lxc:1 $CHARM_ZOOKEEPER_DEPLOY_OPTS "${CHARM_ZOOKEEPER:-zookeeper}"
-juju deploy --to lxc:1 $CHARM_CONTRAIL_CONFIGURATION_DEPLOY_OPTS "${CHARM_CONTRAIL_CONFIGURATION:-contrail-configuration}"
-juju deploy --to lxc:1 $CHARM_CONTRAIL_CONTROL_DEPLOY_OPTS "${CHARM_CONTRAIL_CONTROL:-contrail-control}"
-juju deploy --to lxc:1 $CHARM_CONTRAIL_ANALYTICS_DEPLOY_OPTS "${CHARM_CONTRAIL_ANALYTICS:-contrail-analytics}"
-juju deploy --to lxc:1 $CHARM_CONTRAIL_WEBUI_DEPLOY_OPTS "${CHARM_CONTRAIL_WEBUI:-contrail-webui}"
-juju deploy --to lxc:3 $CHARM_CASSANDRA_DEPLOY_OPTS "${CHARM_CASSANDRA:-cassandra}"
-juju deploy $CHARM_NEUTRON_API_CONTRAIL_DEPLOY_OPTS "${CHARM_NEUTRON_API_CONTRAIL:-neutron-api-contrail}"
-juju deploy $CHARM_NEUTRON_CONTRAIL_DEPLOY_OPTS "${CHARM_NEUTRON_CONTRAIL:-neutron-contrail}"
-
-# relation must be set first
-# no official way of knowing when this relation hook will fire
-waitForService mysql keystone
-juju add-relation keystone mysql
-sleep 60
-
-waitForService rabbitmq-server nova-cloud-controller glance openstack-dashboard nova-compute
-juju add-relation nova-cloud-controller mysql
-juju add-relation nova-cloud-controller rabbitmq-server
-juju add-relation nova-cloud-controller glance
-juju add-relation nova-cloud-controller keystone
-juju add-relation nova-compute:shared-db mysql:shared-db
-juju add-relation nova-compute:amqp rabbitmq-server:amqp
-juju add-relation nova-compute glance
-juju add-relation nova-compute nova-cloud-controller
-juju add-relation glance mysql
-juju add-relation glance keystone
-juju add-relation openstack-dashboard keystone
-sleep 60
-
-waitForService neutron-api
-juju add-relation neutron-api mysql
-juju add-relation neutron-api rabbitmq-server
-juju add-relation neutron-api nova-cloud-controller
-juju add-relation neutron-api keystone
-juju add-relation neutron-api neutron-api-contrail
-sleep 60
-
-# contrail
-waitForService cassandra zookeeper contrail-configuration
-juju add-relation contrail-configuration:cassandra cassandra:database
-juju add-relation contrail-configuration zookeeper
-juju add-relation contrail-configuration rabbitmq-server
-juju add-relation contrail-configuration keystone
-sleep 60
-
-waitForService contrail-control contrail-analytics
-juju add-relation neutron-api-contrail contrail-configuration
-juju add-relation neutron-api-contrail keystone
-juju add-relation contrail-control:contrail-api contrail-configuration:contrail-api
-juju add-relation contrail-control:contrail-discovery contrail-configuration:contrail-discovery
-juju add-relation contrail-control:contrail-ifmap contrail-configuration:contrail-ifmap
-juju add-relation contrail-control keystone
-juju add-relation contrail-analytics:cassandra cassandra:database
-juju add-relation contrail-analytics contrail-configuration
-juju add-relation nova-compute neutron-contrail
-juju add-relation neutron-contrail:contrail-discovery contrail-configuration:contrail-discovery
-juju add-relation neutron-contrail:contrail-api contrail-configuration:contrail-api
-juju add-relation neutron-contrail keystone
-sleep 60
-
-waitForService contrail-webui
-juju add-relation contrail-webui keystone
-juju add-relation contrail-webui:contrail_api contrail-configuration:contrail-api
-juju add-relation contrail-webui:contrail_discovery contrail-configuration:contrail-discovery
-juju add-relation contrail-webui:cassandra cassandra:database
-sleep 60
-
-# enable kvm on compute
-machine=$(unitMachine nova-compute 0)
-juju scp compute.sh $machine:
-juju run --machine $machine "sudo ./compute.sh"
-
-mkdir -m 0700 -p cloud
-controller_address=$(unitAddress keystone 0)
-configOpenrc admin password Admin http://$controller_address:5000/v2.0 RegionOne > cloud/admin-openrc
-chmod 0600 cloud/admin-openrc
-
-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
-
-# setup contrail routing
-juju set contrail-configuration "floating-ip-pools=[ { project: admin, network: public-net, pool-name: floatingip_pool, target-projects: [ admin ] } ]"
-juju set neutron-contrail "virtual-gateways=[ { project: admin, network: public-net, interface: vgw, subnets: [ 10.0.10.0/24 ], routes: [ 0.0.0.0/0 ] } ]"
-
-machine=$(unitMachine glance 0)
-juju scp glance.sh cloud/admin-openrc $machine:
-juju run --machine $machine ./glance.sh
-
-# setup host routing
-if [ -n "$CONFIGURE_HOST_ROUTING" ]; then
- compute_address=$(unitAddress nova-compute 0)
- sudo ip route replace 10.0.10.0/24 via $compute_address
- sudo iptables -C FORWARD -s 10.0.10.0/24 -j ACCEPT 2> /dev/null || sudo iptables -I FORWARD 1 -s 10.0.10.0/24 -j ACCEPT
- sudo iptables -C FORWARD -d 10.0.10.0/24 -j ACCEPT 2> /dev/null || sudo iptables -I FORWARD 2 -d 10.0.10.0/24 -j ACCEPT
- sudo iptables -t nat -C POSTROUTING -s 10.0.10.0/24 ! -d 10.0.10.0/24 -j MASQUERADE 2> /dev/null || sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 ! -d 10.0.10.0/24 -j MASQUERADE
-fi
--- /dev/null
+#!/bin/bash -ex
+
+distro=$1
+mkdir -p $distro
+
+function build {
+ sudo apt-get install charm-tools -y
+ (cd $distro/charm-$1; charm build -s $distro -obuild src)
+ mv $distro/charm-$1/build/$distro/$1 $distro
+}
+
+# openstack
+bzr branch lp:~narindergupta/charms/trusty/promise/trunk $distro/promise
+bzr branch lp:~billy-olsen/charms/xenial/mongodb/trunk $distro/mongodb
+bzr branch lp:~narindergupta/opnfv/ntp $distro/ntp
+
+git clone -b stable/17.02 https://github.com/openstack/charm-hacluster.git $distro/hacluster
+git clone -b stable/17.02 https://github.com/openstack/charm-ceilometer.git $distro/ceilometer
+git clone -b stable/17.02 https://github.com/openstack/charm-ceilometer-agent.git $distro/ceilometer-agent
+git clone -b stable/17.02 https://github.com/openstack/charm-ceph-mon.git $distro/ceph-mon
+git clone -b stable/17.02 https://github.com/openstack/charm-ceph-osd.git $distro/ceph-osd
+git clone -b stable/17.02 https://github.com/openstack/charm-ceph-radosgw.git $distro/ceph-radosgw
+git clone -b stable/17.02 https://github.com/openstack/charm-cinder.git $distro/cinder
+git clone -b stable/17.02 https://github.com/openstack/charm-cinder-ceph.git $distro/cinder-ceph
+git clone -b stable/17.02 https://github.com/openstack/charm-glance.git $distro/glance
+git clone -b stable/17.02 https://github.com/openstack/charm-keystone.git $distro/keystone
+git clone -b stable/17.02 https://github.com/openstack/charm-percona-cluster.git $distro/percona-cluster
+git clone -b stable/17.02 https://github.com/openstack/charm-neutron-api.git $distro/neutron-api
+git clone -b stable/17.02 https://github.com/openstack/charm-neutron-gateway.git $distro/neutron-gateway
+git clone -b stable/17.02 https://github.com/openstack/charm-neutron-openvswitch.git $distro/neutron-openvswitch
+git clone -b stable/17.02 https://github.com/openstack/charm-nova-cloud-controller.git $distro/nova-cloud-controller
+git clone -b stable/17.02 https://github.com/openstack/charm-nova-compute.git $distro/nova-compute
+git clone -b stable/17.02 https://github.com/openstack/charm-openstack-dashboard.git $distro/openstack-dashboard
+git clone -b stable/17.02 https://github.com/openstack/charm-rabbitmq-server.git $distro/rabbitmq-server
+git clone -b stable/17.02 https://github.com/openstack/charm-heat.git $distro/heat
+git clone https://github.com/openstack/charm-lxd.git $distro/lxd
+git clone https://github.com/openbaton/juju-charm.git $distro/openbaton
+
+charm pull cs:$distro/aodh $distro/aodh
+charm pull cs:~free.ekanayaka/xenial/haproxy-1 $distro/haproxy
+charm pull cs:~narindergupta/congress-1 $distro/congress
+
+#pulling scaleio charms.
+charm pull cs:~cloudscaling/scaleio-mdm $distro/scaleio-mdm
+charm pull cs:~cloudscaling/scaleio-sds $distro/scaleio-sds
+charm pull cs:~cloudscaling/scaleio-gw $distro/scaleio-gw
+charm pull cs:~cloudscaling/scaleio-sdc $distro/scaleio-sdc
+charm pull cs:~cloudscaling/scaleio-openstack $distro/scaleio-openstack
+charm pull cs:~cloudscaling/scaleio-cluster $distro/scaleio-cluster
+charm pull cs:~cloudscaling/scaleio-gui $distro/scaleio-gui
+
+git clone https://github.com/Juniper/contrail-charms.git
+cd contrail-charms/
+mv * ../$distro/
+cd ../
+++ /dev/null
-ovs-opencontrail-ha.yaml
\ No newline at end of file
+++ /dev/null
-ovs-opencontrail-nonha.yaml
\ No newline at end of file
+++ /dev/null
-ovs-opencontrail-tip.yaml
\ No newline at end of file
+++ /dev/null
-# vim: set ts=2 et:
-trusty-mitaka-nodes:
- inherits: openstack-phase1
-
-trusty-mitaka:
- inherits: contrail
- overrides:
- #os-data-network: 10.4.8.0/21
- #ceph-cluster-network: 10.4.0.0/21
- #prefer-ipv6: true
- #enable-dvr: true
- #l2-population: true
- region: Canonical
- #source: "cloud:trusty-mitaka"
- openstack-origin: "cloud:trusty-mitaka"
- #ceph-osd-replication-count: 2
- admin-role: admin
- keystone-admin-role: admin
-
-openstack-phase1:
- services:
- nodes:
- charm: "cs:trusty/ubuntu"
- num_units: 5
- ntp:
- charm: "local:trusty/ntp"
- options:
- source: "0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org"
- auto_peers: false
- zookeeper:
- charm: local:precise/zookeeper
- num_units: 3
- series: precise
- to:
- - "lxc:nodes=0"
- - "lxc:nodes=1"
- - "lxc:nodes=2"
- cassandra:
- charm: local:trusty/cassandra
- num_units: 3
- to:
- - "lxc:nodes=1"
- - "lxc:nodes=2"
- - "lxc:nodes=3"
- options:
- authenticator: AllowAllAuthenticator
- relations:
- - - "ntp:juju-info"
- - "nodes:juju-info"
- - - "ntp:juju-info"
- - "nodes:juju-info"
-
-contrail:
- inherits: openstack-phase2
- overrides:
- admin-role: admin
- relations:
- - [ "contrail-configuration:cassandra", "cassandra:database" ]
- - [ contrail-configuration, zookeeper ]
- - [ contrail-configuration, rabbitmq-server ]
- - [ contrail-configuration, keystone ]
- - [ neutron-api-contrail, contrail-configuration ]
- - [ neutron-api-contrail, keystone ]
- - [ "contrail-control:contrail-api", "contrail-configuration:contrail-api" ]
- - [ "contrail-control:contrail-discovery", "contrail-configuration:contrail-discovery" ]
- - [ "contrail-control:contrail-ifmap", "contrail-configuration:contrail-ifmap" ]
- - [ contrail-control, keystone ]
- - [ "contrail-analytics:cassandra", "cassandra:database" ]
- - [ "contrail-analytics:contrail-analytics-api", "contrail-configuration:contrail-analytics-api" ]
- - [ "contrail-configuration:contrail-discovery", "contrail-analytics:contrail-discovery" ]
- - [ contrail-webui, keystone ]
- - [ "contrail-webui:contrail_api", "contrail-configuration:contrail-api" ]
- - [ "contrail-webui:contrail_discovery", "contrail-configuration:contrail-discovery" ]
- - [ "contrail-webui:cassandra", "cassandra:database" ]
- - [ nova-compute, neutron-contrail ]
- - [ "neutron-contrail:contrail-discovery", "contrail-configuration:contrail-discovery" ]
- - [ "neutron-contrail:contrail-api", "contrail-configuration:contrail-api" ]
- - [ neutron-contrail, keystone ]
- - [ contrail-configuration, ntp ]
- - [ contrail-control, ntp ]
- - [ contrail-analytics, ntp ]
- - [ contrail-configuration, haproxy ]
- - [ contrail-analytics, haproxy ]
- - [ contrail-webui, haproxy ]
- - [ haproxy, keepalived ]
- services:
- contrail-configuration:
- charm: local:trusty/contrail-configuration
- num_units: 3
- options:
- vip: 10.4.1.18
- to:
- - "lxc:nodes=2"
- - "lxc:nodes=3"
- - "lxc:nodes=4"
- contrail-control:
- charm: local:trusty/contrail-control
- num_units: 3
- to:
- - "lxc:nodes=3"
- - "lxc:nodes=4"
- - "lxc:nodes=0"
- contrail-analytics:
- charm: local:trusty/contrail-analytics
- num_units: 3
- to:
- - "lxc:nodes=4"
- - "lxc:nodes=0"
- - "lxc:nodes=1"
- contrail-webui:
- charm: local:trusty/contrail-webui
- num_units: 3
- to:
- - "lxc:nodes=0"
- - "lxc:nodes=1"
- - "lxc:nodes=2"
- neutron-api-contrail:
- charm: local:trusty/neutron-api-contrail
- neutron-contrail:
- charm: local:trusty/neutron-contrail
- haproxy:
- charm: local:trusty/haproxy
- num_units: 3
- options:
- peering_mode: active-active
- to:
- - "lxc:nodes=1"
- - "lxc:nodes=2"
- - "lxc:nodes=3"
- keepalived:
- charm: local:trusty/keepalived
- options:
- virtual-ip: 10.4.1.19
-
-openstack-phase2:
- inherits: openstack-phase1
- relations:
- - [ "mysql:ha", "hacluster-mysql:ha" ]
- - [ "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" ]
- - [ keystone, mysql ]
- - [ nova-cloud-controller, mysql ]
- - [ nova-cloud-controller, rabbitmq-server ]
- - [ nova-cloud-controller, glance ]
- - [ nova-cloud-controller, keystone ]
- - [ nova-compute, nova-cloud-controller ]
- - [ "nova-compute:shared-db", "mysql:shared-db" ]
- - [ "nova-compute:amqp", "rabbitmq-server:amqp" ]
- - [ nova-compute, glance ]
- - [ glance, mysql ]
- - [ glance, keystone ]
- - [ openstack-dashboard, keystone ]
- - [ neutron-api, mysql ]
- - [ neutron-api, rabbitmq-server ]
- - [ neutron-api, nova-cloud-controller ]
- - [ neutron-api, keystone ]
- - [ neutron-api, neutron-api-contrail ]
- - [ "ceilometer:amqp", "rabbitmq-server:amqp" ]
- - [ "ceilometer-agent:ceilometer-service", "ceilometer:ceilometer-service" ]
- - [ "ceilometer:identity-service", "keystone:identity-service" ]
- - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
- - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
- - [ "ceilometer:shared-db", "mongodb:database" ]
- - [ "heat:shared-db", "mysql:shared-db" ]
- - [ "heat:identity-service", "keystone:identity-service" ]
- - [ "heat:amqp", "rabbitmq-server:amqp" ]
- - [ "cinder:image-service", "glance:image-service" ]
- - [ "cinder:amqp", "rabbitmq-server:amqp" ]
- - [ "cinder:identity-service", "keystone:identity-service" ]
- - [ "cinder:cinder-volume-service", "nova-cloud-controller:cinder-volume-service" ]
- - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ]
- - [ "ceph:client", "nova-compute:ceph" ]
- - [ "cinder:shared-db", "mysql:shared-db" ]
- - [ "ceph:client", "cinder-ceph:ceph" ]
- - [ "ceph:client", "glance:ceph" ]
- - [ "ceph-osd:mon", "ceph:osd" ]
- - [ "ceph-radosgw:mon", "ceph:radosgw" ]
- - [ "ceph-radosgw:identity-service", "keystone:identity-service" ]
- #- - nova-compute:lxd
- #- lxd:lxd
- - - congress:shared-db
- - mysql:shared-db
- - - congress:identity-service
- - keystone:identity-service
- - - congress:amqp
- - rabbitmq-server:amqp
-
- services:
- mysql:
- charm: "local:trusty/percona-cluster"
- 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=2"
- - "lxc:nodes=3"
- - "lxc:nodes=4"
- hacluster-keystone:
- charm: "local:trusty/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
- hacluster-horizon:
- charm: "local:trusty/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
- hacluster-nova:
- charm: "local:trusty/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
- hacluster-neutron:
- charm: "local:trusty/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
- hacluster-glance:
- charm: "local:trusty/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
- hacluster-ceilometer:
- charm: "local:trusty/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
- hacluster-mysql:
- charm: "local:trusty/hacluster"
- options:
- corosync_transport: unicast
- cluster_count: 3
- ceilometer:
- charm: "local:trusty/ceilometer"
- num_units: 3
- options:
- vip: 10.4.1.14
- to:
- - "lxc:nodes=3"
- - "lxc:nodes=4"
- - "lxc:nodes=0"
- ceilometer-agent:
- charm: "local:trusty/ceilometer-agent"
- mongodb:
- charm: "cs:trusty/mongodb"
- num_units: 1
- to:
- - "lxc:nodes=0"
- heat:
- charm: "local:trusty/heat"
- to:
- - "lxc:nodes=0"
- ceph:
- charm: local:trusty/ceph
- num_units: 3
- options:
- fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7
- monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A==
- monitor-count: 3
-# osd-reformat: 'no'
-# ceph-cluster-network: 192.168.0.0/24
-# ceph-public-network: 192.168.0.0/24
- to:
- - "lxc:nodes=4"
- - "lxc:nodes=0"
- - "lxc:nodes=1"
- ceph-osd:
- charm: local:trusty/ceph-osd
- num_units: 3
- options:
- osd-devices: /srv
- osd-reformat: 'yes'
- to:
- - "nodes=2"
- - "nodes=3"
- - "nodes=4"
- 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
- num_units: 3
- options:
- block-device: None
- glance-api-version: 2
- to:
- - "lxc:nodes=0"
- - "lxc:nodes=1"
- - "lxc:nodes=2"
- cinder-ceph:
- charm: local:trusty/cinder-ceph
- rabbitmq-server:
- charm: local:trusty/rabbitmq-server
- num_units: 3
- options:
- vip: 10.4.1.10
- to:
- - "lxc:nodes=1"
- - "lxc:nodes=2"
- - "lxc:nodes=3"
- keystone:
- charm: local:trusty/keystone
- num_units: 3
- options:
- admin-password: openstack
- admin-token: admin
- vip: 10.4.1.13
- to:
- - "lxc:nodes=2"
- - "lxc:nodes=3"
- - "lxc:nodes=4"
- openstack-dashboard:
- charm: local:trusty/openstack-dashboard
- num_units: 3
- options:
- secret: admin
- vip: 10.4.1.11
- webroot: /
- to:
- - "lxc:nodes=3"
- - "lxc:nodes=4"
- - "lxc:nodes=0"
- nova-compute:
- charm: local:trusty/nova-compute
- num_units: 4
- options:
- enable-live-migration: False
- manage-neutron-plugin-legacy-mode: False
- migration-auth-type: ssh
- #hugepages: "50%"
- #virt-type: lxd
- to:
- - "nodes=1"
- - "nodes=2"
- - "nodes=3"
- - "nodes=4"
- nova-cloud-controller:
- charm: local:trusty/nova-cloud-controller
- num_units: 3
- options:
- console-access-protocol: novnc
- network-manager: Neutron
- service-guard: true
- vip: 10.4.1.16
- to:
- - "lxc:nodes=4"
- - "lxc:nodes=0"
- - "lxc:nodes=1"
- neutron-api:
- charm: local:trusty/neutron-api
- num_units: 3
- options:
- neutron-security-groups: True
- manage-neutron-plugin-legacy-mode: False
- vip: 10.4.1.17
- to:
- - "lxc:nodes=0"
- - "lxc:nodes=1"
- - "lxc:nodes=2"
- glance:
- charm: local:trusty/glance
- num_units: 3
- options:
- vip: 10.4.1.12
- to:
- - "lxc:nodes=1"
- - "lxc:nodes=2"
- - "lxc:nodes=3"
- opnfv-promise:
- charm: local:trusty/promise
- num_units: 1
- to:
- - "lxc:nodes=0"
- congress:
- charm: local:trusty/congress
- options:
- #source-branch: stable/mitaka
- to:
- - "lxc:nodes=0"
+++ /dev/null
-# vim: set ts=2 et:
-trusty-mitaka-nodes:
- inherits: openstack-phase1
-
-trusty-mitaka:
- inherits: contrail
- overrides:
- #os-data-network: 10.4.8.0/21
- #ceph-cluster-network: 10.4.0.0/21
- #prefer-ipv6: true
- #enable-dvr: true
- #l2-population: true
- region: Canonical
- #source: "cloud:trusty-mitaka"
- openstack-origin: "cloud:trusty-mitaka"
- #ceph-osd-replication-count: 2
- admin-role: admin
- keystone-admin-role: admin
-
-openstack-phase1:
- services:
- nodes:
- charm: "cs:trusty/ubuntu"
- num_units: 2
- ntp:
- charm: "local:trusty/ntp"
- options:
- source: "0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org"
- auto_peers: false
- zookeeper:
- charm: local:precise/zookeeper
- series: precise
- to:
- - "lxc:nodes=0"
- cassandra:
- charm: local:trusty/cassandra
- to:
- - "lxc:nodes=1"
- options:
- authenticator: AllowAllAuthenticator
- relations:
- - - "ntp:juju-info"
- - "nodes:juju-info"
- - - "ntp:juju-info"
- - "nodes:juju-info"
-
-contrail:
- inherits: openstack-phase2
- overrides:
- admin-role: admin
- relations:
- - [ "contrail-configuration:cassandra", "cassandra:database" ]
- - [ contrail-configuration, zookeeper ]
- - [ contrail-configuration, rabbitmq-server ]
- - [ contrail-configuration, keystone ]
- - [ neutron-api-contrail, contrail-configuration ]
- - [ neutron-api-contrail, keystone ]
- - [ "contrail-control:contrail-api", "contrail-configuration:contrail-api" ]
- - [ "contrail-control:contrail-discovery", "contrail-configuration:contrail-discovery" ]
- - [ "contrail-control:contrail-ifmap", "contrail-configuration:contrail-ifmap" ]
- - [ contrail-control, keystone ]
- - [ "contrail-analytics:cassandra", "cassandra:database" ]
- - [ "contrail-analytics:contrail-analytics-api", "contrail-configuration:contrail-analytics-api" ]
- - [ "contrail-configuration:contrail-discovery", "contrail-analytics:contrail-discovery" ]
- - [ contrail-webui, keystone ]
- - [ "contrail-webui:contrail_api", "contrail-configuration:contrail-api" ]
- - [ "contrail-webui:contrail_discovery", "contrail-configuration:contrail-discovery" ]
- - [ "contrail-webui:cassandra", "cassandra:database" ]
- - [ nova-compute, neutron-contrail ]
- - [ "neutron-contrail:contrail-discovery", "contrail-configuration:contrail-discovery" ]
- - [ "neutron-contrail:contrail-api", "contrail-configuration:contrail-api" ]
- - [ neutron-contrail, keystone ]
- - [ contrail-configuration, ntp ]
- - [ contrail-control, ntp ]
- - [ contrail-analytics, ntp ]
- services:
- contrail-configuration:
- charm: local:trusty/contrail-configuration
- to:
- - "lxc:nodes=0"
- contrail-control:
- charm: local:trusty/contrail-control
- to:
- - "lxc:nodes=1"
- contrail-analytics:
- charm: local:trusty/contrail-analytics
- to:
- - "lxc:nodes=0"
- contrail-webui:
- charm: local:trusty/contrail-webui
- to:
- - "lxc:nodes=1"
- neutron-api-contrail:
- charm: local:trusty/neutron-api-contrail
- neutron-contrail:
- charm: local:trusty/neutron-contrail
-
-openstack-phase2:
- inherits: openstack-phase1
- relations:
- - [ keystone, mysql ]
- - [ nova-cloud-controller, mysql ]
- - [ nova-cloud-controller, rabbitmq-server ]
- - [ nova-cloud-controller, glance ]
- - [ nova-cloud-controller, keystone ]
- - [ nova-compute, nova-cloud-controller ]
- - [ "nova-compute:shared-db", "mysql:shared-db" ]
- - [ "nova-compute:amqp", "rabbitmq-server:amqp" ]
- - [ nova-compute, glance ]
- - [ glance, mysql ]
- - [ glance, keystone ]
- - [ openstack-dashboard, keystone ]
- - [ neutron-api, mysql ]
- - [ neutron-api, rabbitmq-server ]
- - [ neutron-api, nova-cloud-controller ]
- - [ neutron-api, keystone ]
- - [ neutron-api, neutron-api-contrail ]
- - [ "ceilometer:amqp", "rabbitmq-server:amqp" ]
- - [ "ceilometer-agent:ceilometer-service", "ceilometer:ceilometer-service" ]
- - [ "ceilometer:identity-service", "keystone:identity-service" ]
- - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
- - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
- - [ "ceilometer:shared-db", "mongodb:database" ]
- - [ "heat:shared-db", "mysql:shared-db" ]
- - [ "heat:identity-service", "keystone:identity-service" ]
- - [ "heat:amqp", "rabbitmq-server:amqp" ]
- - [ "cinder:image-service", "glance:image-service" ]
- - [ "cinder:amqp", "rabbitmq-server:amqp" ]
- - [ "cinder:identity-service", "keystone:identity-service" ]
- - [ "cinder:cinder-volume-service", "nova-cloud-controller:cinder-volume-service" ]
- - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ]
- - [ "ceph:client", "nova-compute:ceph" ]
- - [ "cinder:shared-db", "mysql:shared-db" ]
- - [ "ceph:client", "cinder-ceph:ceph" ]
- - [ "ceph:client", "glance:ceph" ]
- - [ "ceph-osd:mon", "ceph:osd" ]
- - [ "ceph-radosgw:mon", "ceph:radosgw" ]
- - [ "ceph-radosgw:identity-service", "keystone:identity-service"]
- #- - nova-compute:lxd
- #- lxd:lxd
- - - congress:shared-db
- - mysql:shared-db
- - - congress:identity-service
- - keystone:identity-service
- - - congress:amqp
- - rabbitmq-server:amqp
- services:
- mysql:
- charm: "local:trusty/percona-cluster"
- options:
- dataset-size: 2G
- max-connections: 10000
- to:
- - "lxc:nodes=0"
- mongodb:
- charm: local:trusty/mongodb
- to:
- - "lxc:nodes=1"
- ceilometer:
- charm: "local:trusty/ceilometer"
- to:
- - "lxc:nodes=0"
- ceilometer-agent:
- charm: "local:trusty/ceilometer-agent"
- heat:
- charm: "local:trusty/heat"
- to:
- - "lxc:nodes=1"
- ceph:
- charm: "local:trusty/ceph"
- num_units: 2
- options:
- fsid: 5a791d94-980b-11e4-b6f6-3c970e8b1cf7
- monitor-secret: AQAi5a9UeJXUExAA+By9u+GPhl8/XiUQ4nwI3A==
- monitor-count: 2
-# osd-reformat: 'no'
-# ceph-cluster-network: 192.168.0.0/24
-# ceph-public-network: 192.168.0.0/24
- to:
- - "lxc:nodes=0"
- - "lxc:nodes=1"
- ceph-osd:
- charm: "local:trusty/ceph-osd"
- num_units: 2
- options:
- osd-devices: /srv
- osd-reformat: 'yes'
- to:
- - "nodes=0"
- - "nodes=1"
- ceph-radosgw:
- charm: local:trusty/ceph-radosgw
- options:
- use-embedded-webserver: true
- operator-roles: "Member,admin"
- to:
- - "lxc:nodes=0"
- cinder:
- charm: local:trusty/cinder
- options:
- block-device: None
- glance-api-version: 2
- to:
- - "lxc:nodes=1"
- cinder-ceph:
- charm: local:trusty/cinder-ceph
- rabbitmq-server:
- charm: local:trusty/rabbitmq-server
- to:
- - "lxc:nodes=0"
- keystone:
- charm: local:trusty/keystone
- options:
- admin-password: openstack
- admin-token: admin
- to:
- - "lxc:nodes=1"
- openstack-dashboard:
- charm: local:trusty/openstack-dashboard
- options:
- secret: admin
- webroot: /
- to:
- - "lxc:nodes=0"
- nova-compute:
- charm: local:trusty/nova-compute
- options:
- manage-neutron-plugin-legacy-mode: False
- to:
- - "nodes=1"
- nova-cloud-controller:
- charm: local:trusty/nova-cloud-controller
- options:
- network-manager: Neutron
- to:
- - "lxc:nodes=1"
- neutron-api:
- charm: local:trusty/neutron-api
- options:
- manage-neutron-plugin-legacy-mode: False
- to:
- - "lxc:nodes=0"
- glance:
- charm: local:trusty/glance
- to:
- - "lxc:nodes=1"
- opnfv-promise:
- charm: local:trusty/promise
- to:
- - "lxc:nodes=0"
- congress:
- charm: local:trusty/congress
- options:
- #source-branch: stable/mitaka
- to:
- - "lxc:nodes=1"
+++ /dev/null
-# vim: set ts=2 et:
-trusty-mitaka-nodes:
- inherits: openstack-phase1
-
-trusty-mitaka:
- inherits: contrail
- overrides:
- #os-data-network: 10.4.8.0/21
- #ceph-cluster-network: 10.4.0.0/21
- #prefer-ipv6: true
- #enable-dvr: true
- #l2-population: true
- region: Canonical
- #source: "cloud:trusty-mitaka"
- openstack-origin: "cloud:trusty-mitaka"
- #ceph-osd-replication-count: 2
- admin-role: admin
- keystone-admin-role: admin
- openstack-origin-git: mitaka
-
-openstack-phase1:
- services:
- nodes:
- charm: "cs:trusty/ubuntu"
- num_units: 2
- ntp:
- charm: "local:trusty/ntp"
- options:
- source: "0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org"
- auto_peers: false
- zookeeper:
- charm: local:precise/zookeeper
- series: precise
- to:
- - "lxc:nodes=0"
- cassandra:
- charm: local:trusty/cassandra
- to:
- - "lxc:nodes=1"
- options:
- authenticator: AllowAllAuthenticator
- relations:
- - - "ntp:juju-info"
- - "nodes:juju-info"
- - - "ntp:juju-info"
- - "nodes:juju-info"
-
-contrail:
- inherits: openstack-phase2
- overrides:
- admin-role: admin
- relations:
- - [ "contrail-configuration:cassandra", "cassandra:database" ]
- - [ contrail-configuration, zookeeper ]
- - [ contrail-configuration, rabbitmq-server ]
- - [ contrail-configuration, keystone ]
- - [ neutron-api-contrail, contrail-configuration ]
- - [ neutron-api-contrail, keystone ]
- - [ "contrail-control:contrail-api", "contrail-configuration:contrail-api" ]
- - [ "contrail-control:contrail-discovery", "contrail-configuration:contrail-discovery" ]
- - [ "contrail-control:contrail-ifmap", "contrail-configuration:contrail-ifmap" ]
- - [ contrail-control, keystone ]
- - [ "contrail-analytics:cassandra", "cassandra:database" ]
- - [ "contrail-analytics:contrail-analytics-api", "contrail-configuration:contrail-analytics-api" ]
- - [ "contrail-configuration:contrail-discovery", "contrail-analytics:contrail-discovery" ]
- - [ contrail-webui, keystone ]
- - [ "contrail-webui:contrail_api", "contrail-configuration:contrail-api" ]
- - [ "contrail-webui:contrail_discovery", "contrail-configuration:contrail-discovery" ]
- - [ "contrail-webui:cassandra", "cassandra:database" ]
- - [ nova-compute, neutron-contrail ]
- - [ "neutron-contrail:contrail-discovery", "contrail-configuration:contrail-discovery" ]
- - [ "neutron-contrail:contrail-api", "contrail-configuration:contrail-api" ]
- - [ neutron-contrail, keystone ]
- - [ contrail-configuration, ntp ]
- - [ contrail-control, ntp ]
- - [ contrail-analytics, ntp ]
- services:
- contrail-configuration:
- charm: local:trusty/contrail-configuration
- to:
- - "lxc:nodes=0"
- contrail-control:
- charm: local:trusty/contrail-control
- to:
- - "lxc:nodes=1"
- contrail-analytics:
- charm: local:trusty/contrail-analytics
- to:
- - "lxc:nodes=0"
- contrail-webui:
- charm: local:trusty/contrail-webui
- to:
- - "lxc:nodes=1"
- neutron-api-contrail:
- charm: local:trusty/neutron-api-contrail
- neutron-contrail:
- charm: local:trusty/neutron-contrail
-
-openstack-phase2:
- inherits: openstack-phase1
- relations:
- - [ keystone, mysql ]
- - [ nova-cloud-controller, mysql ]
- - [ nova-cloud-controller, rabbitmq-server ]
- - [ nova-cloud-controller, glance ]
- - [ nova-cloud-controller, keystone ]
- - [ nova-compute, nova-cloud-controller ]
- - [ "nova-compute:shared-db", "mysql:shared-db" ]
- - [ "nova-compute:amqp", "rabbitmq-server:amqp" ]
- - [ nova-compute, glance ]
- - [ glance, mysql ]
- - [ glance, keystone ]
- - [ openstack-dashboard, keystone ]
- - [ neutron-api, mysql ]
- - [ neutron-api, rabbitmq-server ]
- - [ neutron-api, nova-cloud-controller ]
- - [ neutron-api, keystone ]
- - [ neutron-api, neutron-api-contrail ]
- - [ "ceilometer:amqp", "rabbitmq-server:amqp" ]
- - [ "ceilometer-agent:ceilometer-service", "ceilometer:ceilometer-service" ]
- - [ "ceilometer:identity-service", "keystone:identity-service" ]
- - [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
- - [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
- - [ "ceilometer:shared-db", "mongodb:database" ]
- - [ "heat:shared-db", "mysql:shared-db" ]
- - [ "heat:identity-service", "keystone:identity-service" ]
- - [ "heat:amqp", "rabbitmq-server:amqp" ]
- - [ "cinder:image-service", "glance:image-service" ]
- - [ "cinder:amqp", "rabbitmq-server:amqp" ]
- - [ "cinder:identity-service", "keystone:identity-service" ]
- - [ "cinder:cinder-volume-service", "nova-cloud-controller:cinder-volume-service" ]
- - [ "cinder-ceph:storage-backend", "cinder:storage-backend" ]
- - [ "ceph:client", "nova-compute:ceph" ]
- - [ "cinder:shared-db", "mysql:shared-db" ]
- - [ "ceph:client", "cinder-ceph:ceph" ]
- - [ "ceph:client", "glance:ceph" ]
- - [ "ceph-osd:mon", "ceph:osd" ]
- - [ "ceph-radosgw:mon", "ceph:radosgw" ]
- - [ "ceph-radosgw:identity-service", "keystone:identity-service"]
- #- - nova-compute:lxd
- #- lxd:lxd
- - - congress:shared-db
- - mysql:shared-db
- - - congress:identity-service
- - keystone:identity-service
- - - congress:amqp
- - rabbitmq-server:amqp
- services:
- mysql:
- charm: "local:trusty/percona-cluster"
- options:
- dataset-size: 2G
- max-connections: 10000
- to:
- - "lxc:nodes=0"
- mongodb:
- charm: local:trusty/mongodb
- to:
- - "lxc:nodes=1"
- ceilometer:
- charm: "local:trusty/ceilometer"
- to:
- - "lxc:nodes=0"
- ceilometer-agent:
- charm: "local:trusty/ceilometer-agent"
- 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: 1
-# osd-reformat: 'no'
-# ceph-cluster-network: 192.168.0.0/24
-# ceph-public-network: 192.168.0.0/24
- to:
- - "lxc:nodes=0"
- - "lxc:nodes=1"
- ceph-osd:
- charm: "local:trusty/ceph-osd"
- num_units: 2
- options:
- osd-devices: /srv
- osd-reformat: 'yes'
- to:
- - "nodes=0"
- - "nodes=1"
- ceph-radosgw:
- charm: local:trusty/ceph-radosgw
- options:
- use-embedded-webserver: true
- operator-roles: "Member,admin"
- to:
- - "lxc:nodes=0"
- cinder:
- charm: local:trusty/cinder
- options:
- block-device: None
- glance-api-version: 2
- to:
- - "lxc:nodes=1"
- cinder-ceph:
- charm: local:trusty/cinder-ceph
- rabbitmq-server:
- charm: local:trusty/rabbitmq-server
- to:
- - "lxc:nodes=0"
- keystone:
- charm: local:trusty/keystone
- options:
- admin-password: openstack
- admin-token: admin
- to:
- - "lxc:nodes=1"
- openstack-dashboard:
- charm: local:trusty/openstack-dashboard
- options:
- secret: admin
- webroot: /
- to:
- - "lxc:nodes=0"
- nova-compute:
- charm: local:trusty/nova-compute
- options:
- manage-neutron-plugin-legacy-mode: False
- to:
- - "nodes=1"
- nova-cloud-controller:
- charm: local:trusty/nova-cloud-controller
- options:
- network-manager: Neutron
- to:
- - "lxc:nodes=1"
- neutron-api:
- charm: local:trusty/neutron-api
- options:
- manage-neutron-plugin-legacy-mode: False
- to:
- - "lxc:nodes=0"
- glance:
- charm: local:trusty/glance
- to:
- - "lxc:nodes=1"
- opnfv-promise:
- charm: local:trusty/promise
- to:
- - "lxc:nodes=0"
- congress:
- charm: local:trusty/congress
- options:
- #source-branch: stable/mitaka
- to:
- - "lxc:nodes=1"
+++ /dev/null
-#!/bin/sh -e
-
-. ~/admin-openrc
-
-# adjust tiny image
-nova flavor-delete m1.tiny
-nova flavor-create m1.tiny 1 512 8 1
-
-# configure external network
-neutron net-create --router:external=True public-net
-neutron subnet-create --name public-subnet --no-gateway --allocation-pool start=10.0.10.2,end=10.0.10.254 --disable-dhcp public-net 10.0.10.0/24
-
-# create vm network
-neutron net-create ubuntu-net
-neutron subnet-create --name ubuntu-subnet --gateway 10.0.5.1 ubuntu-net 10.0.5.0/24
-
-# create pool of floating ips
-i=0
-while [ $i -ne 10 ]; do
- neutron floatingip-create public-net
- i=$((i + 1))
-done
-
-# 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
-nova keypair-add --pub-key id_rsa.pub ubuntu-keypair
-
-#http://docs.openstack.org/juno/install-guide/install/apt/content/launch-instance-neutron.html
-# nova boot --flavor m1.small --image cirros-0.3.3-x86_64 --nic net-id=b65479a4-3638-4595-9245-6e41ccd8bfd8 --security-group default --key-name ubuntu-keypair demo-instance1
-# nova floating-ip-associate demo-instance1 10.5.8.35
+++ /dev/null
-#!/bin/sh -e
-
-. ~/admin-openrc
-
-wget http://cloud-images.ubuntu.com/trusty/current/MD5SUMS
-
-wget http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
-glance image-create --name ubuntu-trusty-daily --disk-format qcow2 --container-format bare --owner admin --file trusty-server-cloudimg-amd64-disk1.img --checksum $(grep trusty-server-cloudimg-amd64-disk1.img MD5SUMS | cut -d " " -f 1) --is-public True
+++ /dev/null
-#!/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 openstck admin http://$controller_address:5000/v2.0 RegionOne > cloud/admin-openrc
-chmod 0600 cloud/admin-openrc
-
-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
-
-# setup contrail routing
-juju set contrail-configuration "floating-ip-pools=[ { project: admin, network: public-net, pool-name: floatingip_pool, target-projects: [ admin ] } ]"
-juju set neutron-contrail "virtual-gateways=[ { project: admin, network: public-net, interface: vgw, subnets: [ 10.0.10.0/24 ], routes: [ 0.0.0.0/0 ] } ]"
-
-machine=$(unitMachine glance 0)
-juju scp glance.sh cloud/admin-openrc $machine:
-juju run --machine $machine ./glance.sh
-
-# setup host routing
-if [ -n "$CONFIGURE_HOST_ROUTING" ]; then
- compute_address=$(dig +short $(unitAddress nova-compute 0) | tail -n 1)
- sudo ip route replace 10.0.10.0/24 via $compute_address
- sudo iptables -C FORWARD -s 10.0.10.0/24 -j ACCEPT 2> /dev/null || sudo iptables -I FORWARD 1 -s 10.0.10.0/24 -j ACCEPT
- sudo iptables -C FORWARD -d 10.0.10.0/24 -j ACCEPT 2> /dev/null || sudo iptables -I FORWARD 2 -d 10.0.10.0/24 -j ACCEPT
- sudo iptables -t nat -C POSTROUTING -s 10.0.10.0/24 ! -d 10.0.10.0/24 -j MASQUERADE 2> /dev/null || sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 ! -d 10.0.10.0/24 -j MASQUERADE
-fi