From 791595dcdfd6422d6a30da6a2bc2383bb3554f77 Mon Sep 17 00:00:00 2001 From: Egon Rijpkema Date: Mon, 23 Apr 2018 15:07:18 +0200 Subject: [PATCH] All changes in the merlin branches. --- docker-cinder-storage/Dockerfile | 5 +- docker-cinder-storage/bootstrap.sh | 4 +- docker-cinder-storage/run.sh | 4 +- docker-cinder-storage/write_conf.sh | 17 +++---- docker-glance/Dockerfile | 2 + docker-glance/write_conf.sh | 17 ++++--- docker-neutron-controller/run.sh | 2 +- docker-neutron-controller/write_conf.sh | 61 +++++++++++++++++-------- docker-nova-compute/Dockerfile | 5 +- docker-nova-compute/run.sh | 8 ++++ docker-nova-compute/write_conf.sh | 42 +++++++++++------ 11 files changed, 109 insertions(+), 58 deletions(-) diff --git a/docker-cinder-storage/Dockerfile b/docker-cinder-storage/Dockerfile index 644eaba..1b10932 100644 --- a/docker-cinder-storage/Dockerfile +++ b/docker-cinder-storage/Dockerfile @@ -15,7 +15,8 @@ RUN set -x \ python-openstackclient \ python-oslo.cache \ lvm2 \ - tgt \ + python-ceph \ + python-rbd \ && apt-get -y clean @@ -28,8 +29,6 @@ COPY bootstrap.sh /etc/bootstrap.sh COPY run.sh /etc/run.sh -COPY lvm.conf /etc/lvm/lvm.conf - RUN chown root.root /etc/bootstrap.sh && chmod a+x /etc/bootstrap.sh RUN chown root.root /etc/run.sh && chmod a+x /etc/run.sh diff --git a/docker-cinder-storage/bootstrap.sh b/docker-cinder-storage/bootstrap.sh index 831abd0..edb935c 100755 --- a/docker-cinder-storage/bootstrap.sh +++ b/docker-cinder-storage/bootstrap.sh @@ -22,6 +22,6 @@ source /root/admin-openrc.sh # create a LVM physical volume and volume group. # This device should be available tpo the container -pvcreate /dev/cinder_storage_volume -vgcreate cinder-volumes /dev/cinder_storage_volume +#pvcreate /dev/cinder_storage_volume +#vgcreate cinder-volumes /dev/cinder_storage_volume diff --git a/docker-cinder-storage/run.sh b/docker-cinder-storage/run.sh index 58eaeee..05cf41b 100755 --- a/docker-cinder-storage/run.sh +++ b/docker-cinder-storage/run.sh @@ -3,7 +3,9 @@ # Write the config files /etc/write_conf.sh # start cinder processes. -tgtd +cinder-volume -d & + +sleep 5 cinder-volume -d & diff --git a/docker-cinder-storage/write_conf.sh b/docker-cinder-storage/write_conf.sh index cad5927..593f318 100755 --- a/docker-cinder-storage/write_conf.sh +++ b/docker-cinder-storage/write_conf.sh @@ -10,9 +10,9 @@ connection = mysql+pymysql://$CINDER_USER:$CINDER_PASSWORD@$MYSQL_HOST/cinder [DEFAULT] auth_strategy = keystone -transport_url = rabbit://$RABBIT_USER:$RABBIT_PASSWORD@$RABBIT_HOST +transport_url = rabbit://$RABBIT_USER:$RABBIT_PASSWORD@$MY_IP my_ip = $MY_IP -enabled_backends = lvm +enabled_backends = RBD-backend glance_api_servers = http://$GLANCE_HOST:9292 [keystone_authtoken] @@ -29,11 +29,12 @@ password = $CINDER_PASSWORD [oslo_concurrency] lock_path = /var/lib/cinder/tmp -[lvm] -volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver -volume_group = cinder-volumes -iscsi_protocol = iscsi -iscsi_helper = tgtadm -volumes_dir = /var/lib/cinder/volumes +[RBD-backend] +volume_backend_name=RBD-backend +rbd_pool=volumes +rbd_user=volumes +rbd_secret_uuid=d0db6ba7-a0c9-4da6-b0bc-aa7846325333 +volume_driver=cinder.volume.drivers.rbd.RBDDriver +rbd_ceph_conf=/etc/ceph/ceph.conf EOF diff --git a/docker-glance/Dockerfile b/docker-glance/Dockerfile index 008624a..1eea733 100644 --- a/docker-glance/Dockerfile +++ b/docker-glance/Dockerfile @@ -14,6 +14,8 @@ RUN set -x \ python-mysqldb \ python-openstackclient \ python-oslo.cache \ + python-rbd \ + python-ceph \ && apt-get -y clean \ && rm -f /var/lib/glance/glance.sqlite diff --git a/docker-glance/write_conf.sh b/docker-glance/write_conf.sh index 65f6bad..61f13bf 100755 --- a/docker-glance/write_conf.sh +++ b/docker-glance/write_conf.sh @@ -32,13 +32,14 @@ flavor = keystone [glance_store] -stores = file,http -default_store = file -filesystem_store_datadir = /var/lib/glance/images/ +stores = glance.store.rbd.Store +default_store = rbd +rbd_store_pool = images +rbd_store_user = images +rbd_store_ceph_conf = /etc/ceph/ceph.conf EOF - cat << EOF > /etc/glance/glance-registry.conf [DEFAULT] @@ -49,9 +50,11 @@ rpc_backend = rabbit connection = mysql+pymysql://$GLANCE_USER:$GLANCE_PASSWORD@$MYSQL_HOST/glance [glance_store] -stores = file,http -default_store = file -filesystem_store_datadir = /var/lib/glance/images/ +stores = glance.store.rbd.Store +default_store = rbd +rbd_store_pool = images +rbd_store_user = images +rbd_store_ceph_conf = /etc/ceph/ceph.conf [keystone_authtoken] auth_uri = http://$KEYSTONE_HOST:5000 diff --git a/docker-neutron-controller/run.sh b/docker-neutron-controller/run.sh index be77ca3..4f1fbae 100755 --- a/docker-neutron-controller/run.sh +++ b/docker-neutron-controller/run.sh @@ -30,7 +30,7 @@ neutron-metadata-agent \ -v -d & # If any process fails, kill the rest. -# This insures the container stops and systemd will restart it. +# This ensures the container stops and systemd will restart it. wait -n pkill -P $$ diff --git a/docker-neutron-controller/write_conf.sh b/docker-neutron-controller/write_conf.sh index 40500d3..4365260 100755 --- a/docker-neutron-controller/write_conf.sh +++ b/docker-neutron-controller/write_conf.sh @@ -4,15 +4,16 @@ # These are to be passed to the docker container using -e cat << EOF > /etc/neutron/neutron.conf + [DEFAULT] core_plugin = ml2 -service_plugins = +service_plugins = router +allow_overlapping_ips = True transport_url = rabbit://$RABBIT_USER:$RABBIT_PASSWORD@$MY_IP auth_strategy = keystone notify_nova_on_port_status_changes = true notify_nova_on_port_data_changes = true dhcp_agents_per_network = 2 -global_physnet_mtu = $GLOBAL_PHYSNET_MTU [agent] root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf @@ -46,11 +47,10 @@ EOF cat << EOF > /etc/neutron/plugins/ml2/ml2_conf.ini [ml2] -type_drivers = flat,vlan -tenant_network_types = -mechanism_drivers = linuxbridge +type_drivers = flat,vlan,vxlan +tenant_network_types = vxlan +mechanism_drivers = linuxbridge,l2population extension_drivers = port_security -path_mtu = $GLOBAL_PHYSNET_MTU [ml2_type_vlan] network_vlan_ranges = provider @@ -58,25 +58,14 @@ network_vlan_ranges = provider [ml2_type_flat] flat_networks = provider +[ml2_type_vxlan] +vni_ranges = 1:1000 + [securitygroup] enable_ipset = true EOF -cat << EOF > /etc/neutron/plugins/ml2/linuxbridge_agent.ini - -[linux_bridge] -physical_interface_mappings = $PHYSICAL_INTERFACE_MAPPINGS - -[vxlan] -enable_vxlan = false - -[securitygroup] -enable_security_group = true -firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver - -EOF - cat << EOF > /etc/neutron/metadata_agent.ini [DEFAULT] @@ -84,3 +73,35 @@ nova_metadata_ip = $MY_IP metadata_proxy_shared_secret = $METADATA_SECRET EOF + +cat << EOF > /etc/neutron/l3_agent.ini + +[DEFAULT] +interface_driver = linuxbridge +external_network_bridge = + +EOF + +cat << EOF > /etc/neutron/plugins/ml2/linuxbridge_agent.ini + +[linux_bridge] +physical_interface_mappings = $PHYSICAL_INTERFACE_MAPPINGS + +[vxlan] +enable_vxlan = True +l2_population = True +local_ip = $OVERLAY_IP + +[securitygroup] +enable_security_group = true +firewall_driver = iptables + +EOF + +cat << EOF > /etc/neutron/l3_agent.ini + +[DEFAULT] +interface_driver = linuxbridge +external_network_bridge = + +EOF diff --git a/docker-nova-compute/Dockerfile b/docker-nova-compute/Dockerfile index b70eb3f..aa8f8c1 100644 --- a/docker-nova-compute/Dockerfile +++ b/docker-nova-compute/Dockerfile @@ -12,12 +12,15 @@ RUN set -x \ python-openstackclient \ nova-compute \ neutron-linuxbridge-agent \ + neutron-l3-agent \ neutron-dhcp-agent \ neutron-metadata-agent \ + python-ceph \ + python-rbd \ && apt-get -y clean COPY write_conf.sh /etc/write_conf.sh COPY run.sh /etc/run.sh -RUN echo hoi + CMD ["/etc/run.sh"] diff --git a/docker-nova-compute/run.sh b/docker-nova-compute/run.sh index 5804b29..abbb96a 100755 --- a/docker-nova-compute/run.sh +++ b/docker-nova-compute/run.sh @@ -27,6 +27,14 @@ neutron-metadata-agent \ --config-dir /etc/neutron/ \ -v -d & +sleep 3 +neutron-l3-agent \ +--config-file /etc/neutron/l3_agent.ini \ +--config-file /etc/neutron/neutron.conf \ +--config-file /etc/neutron/metadata_agent.ini \ +--config-dir /etc/neutron/ \ +-v -d & + # If any process fails, kill the rest. # This ensures the container stops and systemd will restart it. diff --git a/docker-nova-compute/write_conf.sh b/docker-nova-compute/write_conf.sh index ea57993..c24eb63 100755 --- a/docker-nova-compute/write_conf.sh +++ b/docker-nova-compute/write_conf.sh @@ -121,7 +121,12 @@ allow_migrate_to_same_host = True allow_resize_to_same_host = True [libvirt] -virt_type=kvm +virt_type = kvm +images_type = rbd +images_rbd_pool = vms +images_rbd_ceph_conf = /etc/ceph/ceph.conf +rbd_user = nova +rbd_secret_uuid = b5044271-1918-4070-822c-f19ed14d7494 [vnc] enabled = True @@ -189,10 +194,11 @@ EOF cat << EOF > /etc/neutron/neutron.conf [DEFAULT] +service_plugins = router +allow_overlapping_ips = True transport_url = rabbit://$RABBIT_USER:$RABBIT_PASSWORD@$RABBIT_HOST auth_strategy = keystone core_plugin = ml2 -global_physnet_mtu = $GLOBAL_PHYSNET_MTU [keystone_authtoken] auth_uri = http://$KEYSTONE_HOST:5000 @@ -217,17 +223,12 @@ password = $NOVA_PASSWORD EOF -cat << EOF > /etc/neutron/plugins/ml2/linuxbridge_agent.ini -[linux_bridge] -physical_interface_mappings = $PHYSICAL_INTERFACE_MAPPINGS +cat << EOF > /etc/neutron/l3_agent.ini -[vxlan] -enable_vxlan = false - -[securitygroup] -enable_security_group = true -firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver +[DEFAULT] +interface_driver = linuxbridge +external_network_bridge = EOF @@ -251,11 +252,10 @@ EOF cat << EOF > /etc/neutron/plugins/ml2/ml2_conf.ini [ml2] -type_drivers = flat,vlan -tenant_network_types = -mechanism_drivers = linuxbridge +type_drivers = flat,vlan,vxlan +tenant_network_types = vxlan +mechanism_drivers = linuxbridge,l2population extension_drivers = port_security -path_mtu = $GLOBAL_PHYSNET_MTU [ml2_type_vlan] network_vlan_ranges = provider @@ -263,7 +263,19 @@ network_vlan_ranges = provider [ml2_type_flat] flat_networks = provider +[ml2_type_vxlan] +vni_ranges = 1:100 + [securitygroup] enable_ipset = true EOF + +cat << EOF > /etc/neutron/plugins/ml2/linuxbridge_agent.ini + +[vxlan] +enable_vxlan = True +l2_population = True +local_ip = $OVERLAY_IP + +EOF