From a14b8048c273f12aa4b941c0ff923997ad7524d6 Mon Sep 17 00:00:00 2001 From: Steven Dake Date: Thu, 16 Oct 2014 22:59:45 -0700 Subject: [PATCH] Make nova-compute work properly with libvirt The nova-compute POD now starts and produces nearly correct output. It may be that the libvirt container needs additional attention as it is spitting out errors related to the firewall toolchain on the container. Change-Id: I5bcd21c59f341494206a09e882631185ce66f336 --- docker/nova-compute/nova-compute/Dockerfile | 2 + .../nova-compute/config-nova-compute.sh | 89 +++++++++++++++++++ docker/nova-compute/nova-compute/start.sh | 42 +-------- k8s/replication/nova-compute-replication.yaml | 2 +- k8s/service/nova-libvirt-service.yaml | 2 +- 5 files changed, 95 insertions(+), 42 deletions(-) create mode 100755 docker/nova-compute/nova-compute/config-nova-compute.sh diff --git a/docker/nova-compute/nova-compute/Dockerfile b/docker/nova-compute/nova-compute/Dockerfile index 1a95a60b38..68ac9a3e02 100644 --- a/docker/nova-compute/nova-compute/Dockerfile +++ b/docker/nova-compute/nova-compute/Dockerfile @@ -19,5 +19,7 @@ RUN yum -y install curl \ openstack-nova-compute \ ; yum clean all +ADD config-nova-compute.sh /opt/kolla/config-nova-compute.sh ADD ./start.sh /start.sh + CMD ["/start.sh"] diff --git a/docker/nova-compute/nova-compute/config-nova-compute.sh b/docker/nova-compute/nova-compute/config-nova-compute.sh new file mode 100755 index 0000000000..8dc05e7ba7 --- /dev/null +++ b/docker/nova-compute/nova-compute/config-nova-compute.sh @@ -0,0 +1,89 @@ +#!/bin/sh + +. /opt/kolla/kolla-common.sh + +: ${NOVA_DB_USER:=nova} +: ${NOVA_DB_NAME:=nova} +: ${NOVA_KEYSTONE_USER:=admin} +: ${NOVA_KEYSTONE_PASSWORD:=kolla} +: ${ADMIN_TENANT_NAME:=admin} +: ${RABBIT_USERID:=guest} +: ${RABBIT_PASSWORD:=guest} + +check_required_vars KEYSTONE_ADMIN_TOKEN \ + NOVA_DB_PASSWORD \ + NOVA_LIBVIRT_SERVICE_HOST + +cfg=/etc/nova/nova.conf + +crudini --set $cfg DEFAULT amqp_durable_queues False +crudini --set $cfg DEFAULT rabbit_host ${RABBITMQ_SERVICE_HOST} +crudini --set $cfg DEFAULT rabbit_port 5672 +crudini --set $cfg DEFAULT rabbit_hosts ${RABBITMQ_SERVICE_HOST}:5672 +crudini --set $cfg DEFAULT rabbit_use_ssl False +crudini --set $cfg DEFAULT rabbit_userid ${RABBIT_USERID} +crudini --set $cfg DEFAULT rabbit_password "${RABBIT_PASSWORD}" +crudini --set $cfg DEFAULT rabbit_virtual_host / +crudini --set $cfg DEFAULT rabbit_ha_queues False +crudini --set $cfg DEFAULT rpc_backend nova.openstack.common.rpc.impl_kombu + +crudini --set $cfg DEFAULT enabled_apis ec2,osapi_compute,metadata +crudini --set $cfg DEFAULT ec2_listen 0.0.0.0 +crudini --set $cfg DEFAULT osapi_compute_listen 0.0.0.0 +crudini --set $cfg DEFAULT osapi_compute_workers 8 +crudini --set $cfg DEFAULT metadata_listen 0.0.0.0 +crudini --set $cfg DEFAULT metadata_workers 8 +crudini --set $cfg DEFAULT service_down_time 60 +crudini --set $cfg DEFAULT rootwrap_config /etc/nova/rootwrap.conf +crudini --set $cfg DEFAULT auth_strategy keystone +crudini --set $cfg DEFAULT use_forwarded_for False +crudini --set $cfg DEFAULT service_neutron_metadata_proxy True +crudini --set $cfg DEFAULT neutron_default_tenant_id default +crudini --set $cfg DEFAULT novncproxy_host 0.0.0.0 +crudini --set $cfg DEFAULT novncproxy_port 6080 +crudini --set $cfg DEFAULT glance_api_servers ${GLANCE_API_SERVICE_HOST}:9292 +crudini --set $cfg DEFAULT network_api_class nova.network.neutronv2.api.API +crudini --set $cfg DEFAULT metadata_host ${MY_IP} +crudini --set $cfg DEFAULT cpu_allocation_ratio 16.0 +crudini --set $cfg DEFAULT ram_allocation_ratio 1.5 +crudini --set $cfg DEFAULT scheduler_default_filters RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,CoreFilter +crudini --set $cfg DEFAULT compute_driver nova.virt.libvirt.LibvirtDriver +crudini --set $cfg DEFAULT vif_plugging_is_fatal True +crudini --set $cfg DEFAULT vif_plugging_timeout 300 +crudini --set $cfg DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver +crudini --set $cfg DEFAULT novncproxy_base_url http://${PUBLIC_IP}:6080/vnc_auto.html +crudini --set $cfg DEFAULT vncserver_listen 0.0.0.0 +crudini --set $cfg DEFAULT vncserver_proxyclient_address ${MY_IP} +crudini --set $cfg DEFAULT vnc_enabled True +crudini --set $cfg DEFAULT volume_api_class nova.volume.cinder.API +crudini --set $cfg DEFAULT image_service nova.image.glance.GlanceImageService +crudini --set $cfg DEFAULT osapi_volume_listen 0.0.0.0 +crudini --set $cfg libvirt virt_type kvm +crudini --set $cfg libvirt connection_uri qemu+tcp://${NOVA_LIBVIRT_SERVICE_HOS}/system + +# configure logging to stderr +crudini --del $cfg DEFAULT log_dir +crudini --set $cfg DEFAULT log_file "" +crudini --set $cfg DEFAULT use_stderr True +crudini --set $cfg DEFAULT admin_token "${KEYSTONE_ADMIN_TOKEN}" + +crudini --set $cfg conductor workers 8 + +for option in auth_protocol auth_host auth_port; do + crudini --del $cfg \ + keystone_authtoken \ + $option +done + +crudini --set $cfg keystone_authtoken auth_uri "http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/" +crudini --set $cfg keystone_authtoken admin_user ${NOVA_KEYSTONE_USER} +crudini --set $cfg keystone_authtoken admin_password "${NOVA_KEYSTONE_PASSWORD}" +crudini --set $cfg keystone_authtoken admin_tenant_name ${ADMIN_TENANT_NAME} + +cat > /openrc <