Skip to content

Instantly share code, notes, and snippets.

@sombrafam
Created March 1, 2021 18:38
Show Gist options
  • Save sombrafam/e0741138773e444960eb4aeace6e3e79 to your computer and use it in GitHub Desktop.
Save sombrafam/e0741138773e444960eb4aeace6e3e79 to your computer and use it in GitHub Desktop.
Sample DPDK bundle
# Description:
# This bundle deploys an OpenStack cloud with
# DPDK functionality.
#
# Format: Juju 2.x
# Variables
series: &series bionic
debug: &debug True
verbose: &verbose True
openstack_origin: &openstack_origin distro
source: &source
data_ports: &data_ports >
br-data:68:05:ca:28:ff:31
br-data:e4:1d:2d:0a:10:72
br-data:14:02:ec:41:4a:85
br-data:e0:07:1b:f4:06:79
br-data:e0:07:1b:f4:16:bd
br-data:00:06:f6:30:13:03
br-data:1c:98:ec:16:17:c1
br-data:8c:dc:d4:b3:d1:f9
br-data:8c:dc:d4:b3:e1:a1
br-data:5c:b9:01:d9:70:9c
br-data:ac:f2:c5:ed:86:15
br-data:78:e7:d1:24:d2:f9
br-data:8c:dc:d4:b3:e3:95
br-data:8c:dc:d4:b3:d1:21
br-data:8c:dc:d4:b3:d0:01
br-data:00:06:f6:30:4f:a5
br-data:8c:dc:d4:b3:e0:59
br-data:8c:dc:d4:b3:d1:20
br-data:f0:92:1c:10:0f:f2
br-data:8c:dc:d4:b3:e3:71
br-data:00:0f:53:31:c1:20
br-data:00:0f:53:31:c1:21
br-data:3c:fd:fe:ab:dc:98
machines:
'1':
constraints: tags=gale
series: *series
'2':
constraints: tags=dpdk
series: *series
'3':
constraints: tags=dpdk
series: *series
# Deployment
series: *series
applications:
ntp:
charm: cs:ntp
num_units: 0
mysql:
charm: cs:percona-cluster
num_units: 1
options:
source: *source
root-password: admin
sst-password: admin
innodb-buffer-pool-size: 512M
max-connections: 1000
to:
- lxd:1
rabbitmq-server:
charm: cs:rabbitmq-server
num_units: 1
options:
source: *source
to:
- lxd:1
glance:
charm: cs:~openstack-charmers-next/glance
num_units: 1
options:
debug: *debug
verbose: *verbose
openstack-origin: *openstack_origin
worker-multiplier: 0.25
to:
- lxd:1
keystone:
charm: cs:keystone
num_units: 1
options:
debug: *debug
verbose: *verbose
openstack-origin: *openstack_origin
admin-password: openstack
worker-multiplier: 0.25
to:
- lxd:1
neutron-api:
charm: cs:neutron-api
num_units: 1
options:
debug: *debug
verbose: *verbose
openstack-origin: *openstack_origin
flat-network-providers: physnet1
neutron-security-groups: true
dhcp-agents-per-network: 1
worker-multiplier: 0.25
flat-network-providers: physnet1
overlay-network-type: vxlan gre
default-tenant-network-type: vxlan
enable-sriov: false
vlan-ranges: 'physnet1'
enable-dvr: True
enable-l3ha: True
manage-neutron-plugin-legacy-mode: true
enable-ml2-port-security: True
l2-population: True
enable-ml2-dns: True
global-physnet-mtu: 9050
path-mtu: 9050
physical-network-mtus: physnet1:9000
to:
- lxd:1
nova-cloud-controller:
charm: cs:nova-cloud-controller
num_units: 1
options:
debug: *debug
verbose: *verbose
openstack-origin: *openstack_origin
worker-multiplier: 0.25
network-manager: Neutron
to:
- lxd:1
# Need seperate apps due to: https://bugs.launchpad.net/charm-neutron-openvswitch/+bug/1736401
neutron-openvswitch:
charm: cs:neutron-openvswitch
num_units: 0
options:
debug: *debug
verbose: *verbose
enable-sriov: false
vlan-ranges: 'physnet1'
enable-local-dhcp-and-metadata: true
data-port: *data_ports
firewall-driver: openvswitch
prevent-arp-spoofing: True
flat-network-providers: physnet1
enable-dpdk: True
dpdk-driver: vfio-pci
dpdk-socket-cores: 2
dpdk-socket-memory: 4096
dns-servers: '10.230.56.2'
ovs-use-veth: 'True'
nova-compute:
charm: cs:nova-compute
num_units: 2
options:
debug: *debug
verbose: *verbose
openstack-origin: *openstack_origin
virt-type: kvm
reserved-huge-pages: "node:0,size:1GB,count:4"
reserved-host-memory: 16
to:
- '2'
- '3'
relations:
- [ 'nova-compute: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' ]
- [ '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-compute:neutron-plugin', 'neutron-openvswitch:neutron-plugin' ]
- [ 'neutron-openvswitch:amqp', 'rabbitmq-server:amqp' ]
- [ 'nova-cloud-controller:shared-db', 'mysql:shared-db' ]
- [ 'nova-cloud-controller:neutron-api', 'neutron-api:neutron-api' ]
- [ 'ntp:juju-info', 'nova-compute:juju-info' ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment