Add a novnc container running the novnc-proxy.
All VNC-specific configuration bits are moved from nova-api-base to nova-compute and the new nova-novncproxy and nova-consoleauth containers. The compose specification has been updated to reflect this. A future patch will make the desired backend configurable (spice/vnc). Change-Id: I8b64abf125fd1ecd7d3463515e3717dd9bd60420 Blueprint: novnc-container
This commit is contained in:
parent
d19adb6a6b
commit
5ffc66cd69
@ -24,3 +24,19 @@ novascheduler:
|
||||
restart: always
|
||||
env_file:
|
||||
- openstack.env
|
||||
|
||||
novaconsoleauth:
|
||||
image: kollaglue/centos-rdo-nova-consoleauth:juno
|
||||
name: nova-consoleauth
|
||||
net: "host"
|
||||
restart: always
|
||||
env_file:
|
||||
- openstack.env
|
||||
|
||||
novanovncproxy:
|
||||
image: kollaglue/centos-rdo-nova-novncproxy:juno
|
||||
name: nova-novncproxy
|
||||
net: "host"
|
||||
restart: always
|
||||
env_file:
|
||||
- openstack.env
|
@ -45,8 +45,6 @@ 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 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 cpu_allocation_ratio 16.0
|
||||
crudini --set $cfg DEFAULT ram_allocation_ratio 1.5
|
||||
@ -54,10 +52,6 @@ crudini --set $cfg DEFAULT scheduler_default_filters RetryFilter,AvailabilityZon
|
||||
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 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 ${PUBLIC_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
|
||||
|
@ -5,6 +5,16 @@
|
||||
|
||||
cfg=/etc/nova/nova.conf
|
||||
|
||||
check_required_vars NOVA_NOVNC_PROXYCLIENT_IP
|
||||
|
||||
# Configures novnc to listen on all interfaces and instructs nova-compute to
|
||||
# announce PROXYCLIENT_IP to the nova-vncproxy. Clients like Horizon will
|
||||
# connect with this address.
|
||||
# As such, PROXYCLIENT_IP is unique per compute node.
|
||||
crudini --set $cfg DEFAULT vnc_enabled "True"
|
||||
crudini --set $cfg DEFAULT vncserver_listen "0.0.0.0"
|
||||
crudini --set $cfg DEFAULT vncserver_proxyclient_address "${NOVA_NOVNC_PROXYCLIENT_IP}"
|
||||
|
||||
# configure logging
|
||||
crudini --set $cfg DEFAULT log_file "${NOVA_COMPUTE_LOG_FILE}"
|
||||
|
||||
|
8
docker/nova-controller/nova-consoleauth/Dockerfile
Normal file
8
docker/nova-controller/nova-consoleauth/Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%nova-base:%%KOLLA_TAG%%
|
||||
MAINTAINER Kolla Project (https://launchpad.net/kolla)
|
||||
|
||||
RUN yum -y install openstack-nova-console && yum clean all
|
||||
|
||||
ADD start.sh /start.sh
|
||||
|
||||
CMD ["/start.sh"]
|
1
docker/nova-controller/nova-consoleauth/build
Symbolic link
1
docker/nova-controller/nova-consoleauth/build
Symbolic link
@ -0,0 +1 @@
|
||||
../../../tools/build-docker-image
|
13
docker/nova-controller/nova-consoleauth/start.sh
Executable file
13
docker/nova-controller/nova-consoleauth/start.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
. /opt/kolla/config-nova.sh
|
||||
|
||||
cfg=/etc/nova/nova.conf
|
||||
|
||||
check_required_vars NOVA_CONSOLEAUTH_LOG_FILE
|
||||
|
||||
crudini --set $cfg DEFAULT log_file "${NOVA_CONSOLEAUTH_LOG_FILE}"
|
||||
|
||||
echo Starting nova-consoleauth
|
||||
exec /usr/bin/nova-consoleauth
|
10
docker/nova-controller/nova-novncproxy/Dockerfile
Normal file
10
docker/nova-controller/nova-novncproxy/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%nova-base:%%KOLLA_TAG%%
|
||||
MAINTAINER Kolla Project (https://launchpad.net/kolla)
|
||||
|
||||
RUN yum -y install \
|
||||
novnc openstack-nova-novncproxy && \
|
||||
yum clean all
|
||||
|
||||
ADD start.sh /start.sh
|
||||
|
||||
CMD ["/start.sh"]
|
1
docker/nova-controller/nova-novncproxy/build
Symbolic link
1
docker/nova-controller/nova-novncproxy/build
Symbolic link
@ -0,0 +1 @@
|
||||
../../../tools/build-docker-image
|
23
docker/nova-controller/nova-novncproxy/start.sh
Executable file
23
docker/nova-controller/nova-novncproxy/start.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
. /opt/kolla/kolla-common.sh
|
||||
|
||||
cfg=/etc/nova/nova.conf
|
||||
|
||||
check_required_vars PUBLIC_IP NOVA_NOVNC_PROXY_SERVICE_HOST NOVA_NOVNC_PROXY_PORT \
|
||||
NOVA_NOVNC_BASE_ADDRESS NOVA_NOVNCPROXY_LOG_FILE
|
||||
|
||||
crudini --set $cfg DEFAULT log_file "${NOVA_NOVNCPROXY_LOG_FILE}"
|
||||
|
||||
# Listen on all interfaces on port $NOVA_NOVNC_PROXY_PORT for incoming novnc
|
||||
# requests.
|
||||
# The base_url is given to clients to connect to, like Horizon, so this could
|
||||
# very well be fancy DNS name.
|
||||
echo Configuring VNC...
|
||||
crudini --set $cfg DEFAULT vnc_enabled "True"
|
||||
crudini --set $cfg DEFAULT novncproxy_host "${NOVA_NOVNC_PROXY_SERVICE_HOST}"
|
||||
crudini --set $cfg DEFAULT novncproxy_port "${NOVA_NOVNC_PROXY_PORT}"
|
||||
crudini --set $cfg DEFAULT novncproxy_base_url "http://${NOVA_NOVNC_BASE_ADDRESS}:${NOVA_NOVNC_PROXY_PORT}/vnc_auto.html"
|
||||
|
||||
echo Starting nova-novncproxy
|
||||
exec /usr/bin/nova-novncproxy
|
12
tools/genenv
12
tools/genenv
@ -40,6 +40,8 @@ NOVA_API_LOG_FILE=
|
||||
NOVA_CONDUCTOR_LOG_FILE=
|
||||
NOVA_SCHEDULER_LOG_FILE=
|
||||
NOVA_COMPUTE_LOG_FILE=
|
||||
NOVA_CONSOLEAUTH_LOG_FILE=
|
||||
NOVA_NOVNCPROXY_LOG_FILE=
|
||||
NEUTRON_SERVER_LOG_FILE=
|
||||
NEUTRON_L3_AGENT_LOG_FILE=
|
||||
NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=
|
||||
@ -83,6 +85,10 @@ NOVA_PUBLIC_INTERFACE=$MY_DEV
|
||||
NOVA_FLAT_INTERFACE=eth1
|
||||
ENABLED_APIS=ec2,osapi_compute,metadata
|
||||
METADATA_HOST=$HOST_IP
|
||||
NOVA_NOVNC_PROXY_PORT=6080
|
||||
NOVA_NOVNC_PROXY_SERVICE_HOST=0.0.0.0
|
||||
NOVA_NOVNC_BASE_ADDRESS=${PUBLIC_IP}
|
||||
NOVA_NOVNC_PROXYCLIENT_IP=${PUBLIC_IP}
|
||||
|
||||
# Neutron
|
||||
NEUTRON_DB_NAME=neutron
|
||||
@ -127,6 +133,8 @@ NOVA_API_LOG_FILE=$NOVA_API_LOG_FILE
|
||||
NOVA_CONDUCTOR_LOG_FILE=$NOVA_CONDUCTOR_LOG_FILE
|
||||
NOVA_SCHEDULER_LOG_FILE=$NOVA_SCHEDULER_LOG_FILE
|
||||
NOVA_COMPUTE_LOG_FILE=$NOVA_COMPUTE_LOG_FILE
|
||||
NOVA_CONSOLEAUTH_LOG_FILE=$NOVA_CONSOLEAUTH_LOG_FILE
|
||||
NOVA_NOVNCPROXY_LOG_FILE=$NOVA_NOVNCPROXY_LOG_FILE
|
||||
NEUTRON_SERVER_LOG_FILE=$NEUTRON_SERVER_LOG_FILE
|
||||
NEUTRON_L3_AGENT_LOG_FILE=$NEUTRON_L3_AGENT_LOG_FILE
|
||||
NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=$NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE
|
||||
@ -166,6 +174,10 @@ NOVA_EC2_API_SERVICE_HOST=$NOVA_EC2_SERVICE_HOST
|
||||
NOVA_EC2_SERVICE_HOST=$NOVA_EC2_SERVICE_HOST
|
||||
NOVA_KEYSTONE_PASSWORD=$NOVA_KEYSTONE_PASSWORD
|
||||
NOVA_KEYSTONE_USER=$NOVA_KEYSTONE_USER
|
||||
NOVA_NOVNC_PROXY_SERVICE_HOST=$NOVA_NOVNC_PROXY_SERVICE_HOST
|
||||
NOVA_NOVNC_PROXY_PORT=$NOVA_NOVNC_PROXY_PORT
|
||||
NOVA_NOVNC_BASE_ADDRESS=${NOVA_NOVNC_BASE_ADDRESS}
|
||||
NOVA_NOVNC_PROXYCLIENT_IP=${NOVA_NOVNC_PROXYCLIENT_IP}
|
||||
NEUTRON_SHARED_SECRET=$NEUTRON_SHARED_SECRET
|
||||
NEUTRON_DB_NAME=$NEUTRON_DB_NAME
|
||||
NEUTRON_DB_USER=$NEUTRON_DB_USER
|
||||
|
@ -28,7 +28,7 @@ function process_all {
|
||||
process mariadb
|
||||
process keystone
|
||||
process glance-api-registry
|
||||
process nova-api-conductor-scheduler
|
||||
process nova-api-conductor-scheduler-consoleauth-novncproxy
|
||||
if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then
|
||||
process nova-compute-network
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user