I want to install an OpenStack with my MAAS 2.4 and juju 2.4.1 environment. The MAAS is now running very well and I can manage my hardware with it. I installed juju and a juju-controller (dedicated hardware is provided by MAAS), all wonderful so far!
Now I have taken the juju charm "openstack-base" and adapted it to my hardware (3x Storage-Nodes, 2x Controller-Nodes, 2x Nova-Nodes), here my "bundle.yaml":
machines:
'0':
series: bionic
constraints: "tags=virtual-machine"
'1':
series: bionic
constraints: "tags=virtual-machine"
'2':
series: bionic
constraints: "tags=controller"
'3':
series: bionic
constraints: "tags=controller"
'4':
series: bionic
constraints: "tags=storage"
'5':
series: bionic
constraints: "tags=storage"
'6':
series: bionic
constraints: "tags=storage"
relations:
- - 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-openvswitch:neutron-plugin-api
- neutron-api:neutron-plugin-api
- - 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
- - nova-compute:neutron-plugin
- neutron-openvswitch:neutron-plugin
- - neutron-openvswitch:amqp
- rabbitmq-server:amqp
- - 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-ceph:storage-backend
- cinder:storage-backend
- - ceph-mon:client
- nova-compute:ceph
- - nova-compute:ceph-access
- cinder-ceph:ceph-access
- - cinder:shared-db
- mysql:shared-db
- - ceph-mon:client
- cinder-ceph:ceph
- - ceph-mon:client
- glance:ceph
- - ceph-osd:mon
- ceph-mon:osd
- - ntp:juju-info
- nova-compute:juju-info
- - ntp:juju-info
- neutron-gateway:juju-info
- - ceph-radosgw:mon
- ceph-mon:radosgw
- - ceph-radosgw:identity-service
- keystone:identity-service
series: bionic
services:
ceph-mon:
annotations:
gui-x: '750'
gui-y: '500'
charm: cs:ceph-mon-25
num_units: 3
options:
expected-osd-count: 3
bindings:
public: admin-space
cluster: admin-space
admin: admin-space
bootstrap-source: admin-space
mon: admin-space
osd: admin-space
radosgw: admin-space
to:
- lxd:4
- lxd:5
- lxd:6
ceph-osd:
annotations:
gui-x: '1000'
gui-y: '500'
charm: cs:ceph-osd-268
num_units: 3
options:
osd-devices: '/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj'
bindings:
public: admin-space
cluster: admin-space
mon: admin-space
to:
- '4'
- '5'
- '6'
ceph-radosgw:
annotations:
gui-x: '1000'
gui-y: '250'
charm: cs:ceph-radosgw-258
num_units: 1
bindings:
public: admin-space
admin: admin-space
internal: admin-space
to:
- lxd:3
cinder:
annotations:
gui-x: '750'
gui-y: '0'
charm: cs:cinder-272
num_units: 1
options:
block-device: None
glance-api-version: 2
worker-multiplier: 0.25
bindings:
public: admin-space
admin: admin-space
internal: admin-space
to:
- lxd:2
cinder-ceph:
annotations:
gui-x: '750'
gui-y: '250'
charm: cs:cinder-ceph-233
num_units: 0
bindings:
ceph: admin-space
glance:
annotations:
gui-x: '250'
gui-y: '0'
charm: cs:glance-267
num_units: 1
options:
worker-multiplier: 0.25
bindings:
public: admin-space
admin: admin-space
internal: admin-space
to:
- lxd:3
keystone:
annotations:
gui-x: '500'
gui-y: '0'
charm: cs:keystone-282
num_units: 1
options:
worker-multiplier: 0.25
bindings:
public: admin-space
admin: admin-space
internal: admin-space
shared-db: admin-space
to:
- lxd:2
mysql:
annotations:
gui-x: '0'
gui-y: '250'
charm: cs:percona-cluster-268
num_units: 1
options:
innodb-buffer-pool-size: 256M
max-connections: 1000
bindings:
db-admin: admin-space
access: admin-space
to:
- lxd:3
neutron-api:
annotations:
gui-x: '500'
gui-y: '500'
charm: cs:neutron-api-261
num_units: 1
options:
flat-network-providers: physnet1
neutron-security-groups: true
worker-multiplier: 0.25
overlay-network-type: vxlan
default-tenant-network-type: vxlan
bindings:
public: admin-space
admin: admin-space
internal: admin-space
neutron-api: admin-space
neutron-plugin-api: admin-space
shared-db: admin-space
amqp: admin-space
identity-service: admin-space
vsd-rest-api: admin-space
neutron-plugin-api-subordinate: admin-space
etcd-proxy: admin-space
midonet: admin-space
external-dns: admin-space
to:
- lxd:2
neutron-gateway:
annotations:
gui-x: '0'
gui-y: '0'
charm: cs:neutron-gateway-252
num_units: 1
options:
bridge-mappings: physnet1:br-ex
data-port: br-ex:eno1
worker-multiplier: 0.25
bindings:
amqp: admin-space
amqp-nova: admin-space
neutron-plugin-api: admin-space
data: admin-space
quantum-network-service: admin-space
to:
- '2'
neutron-openvswitch:
annotations:
gui-x: '250'
gui-y: '500'
charm: cs:neutron-openvswitch-250
num_units: 0
bindings:
amqp: admin-space
data: admin-space
neutron-control: admin-space
neutron-plugin: admin-space
neutron-plugin-api: admin-space
nova-cloud-controller:
annotations:
gui-x: '0'
gui-y: '500'
charm: cs:nova-cloud-controller-310
num_units: 1
options:
network-manager: Neutron
worker-multiplier: 0.25
console-access-protocol: spice
bindings:
public: admin-space
admin: admin-space
internal: admin-space
shared-db: admin-space
amqp: admin-space
image-service: admin-space
identity-service: admin-space
cloud-compute: admin-space
cinder-volume-service: admin-space
neutron-api: admin-space
to:
- lxd:3
nova-compute:
annotations:
gui-x: '250'
gui-y: '250'
charm: cs:nova-compute-284
num_units: 2
options:
config-flags: default_ephemeral_format=ext4
enable-live-migration: true
enable-resize: true
migration-auth-type: ssh
virt-type: kvm
libvirt-image-backend: rbd
bindings:
internal: admin-space
amqp: admin-space
ceph: admin-space
ceph-access: admin-space
cloud-compute: admin-space
compute-peer: admin-space
ephemeral-backend: admin-space
image-service: admin-space
neutron-plugin: admin-space
to:
- '0'
- '1'
ntp:
annotations:
gui-x: '1000'
gui-y: '0'
charm: cs:ntp-27
num_units: 0
openstack-dashboard:
annotations:
gui-x: '500'
gui-y: '-250'
charm: cs:openstack-dashboard-261
num_units: 1
bindings:
public: admin-space
website: admin-space
dashboard-plugin: admin-space
identity-service: admin-space
cluster: admin-space
to:
- lxd:3
rabbitmq-server:
annotations:
gui-x: '500'
gui-y: '250'
charm: cs:rabbitmq-server-77
num_units: 1
bindings:
"": admin-space
amqp: admin-space
ceph: admin-space
cluster: admin-space
to:
- lxd:2
I know the extensive "bindings" settings are the result of several attempts to get the stuff to work. With this setup, I can successfully deploy the complete juju-charm and all services work (apparently). Now I have configured everything in the "horizon dashboard" and started my instance (cirrOS 0.3.4), however, unfortunately, it is not possible for me to access the external network, therefore there is no internet on the VMs. Also, the instances are not accessible from outside (ext-net -> VM via floating IP).
I think my problem is various assignments of "bridge-mappings" and "data-port" settings. except for the storage-nodes I only use the first network card (eno1) on all servers. Later I want to add another card, but first I try to get it to work at all.
ok, after i had the "ext-br" point to "eno2" i now have access to my external gateway ergo internet! important is the fact, you should leave the interface unconfigured via MAAS, "ovs" ignores these settings anyway or only irritates them. if no own interface is available, a VLAN can also be used.