This repository contains the source for the the OpenStack Hypervisor snap.
This snap is designed to be used with a deployed OpenStack Control plane such as delivered by Sunbeam.
To get started with the OpenStack Hypervisor, install the snap using snapd:
$ sudo snap install openstack-hypervisorThe snap needs to be configured with credentials and URL's for the Identity service of the OpenStack cloud that it will form part of - for example:
$ sudo snap set openstack-hypervisor \
identity.auth_url=http://10.64.140.43:80/sunbeam-keystone \
identity.username=nova-hypervisor-01 \
identity.password=supersecure21it's also possible to configure domain and project configuration.
The snap also needs to be configured with access to RabbitMQ:
$ sudo snap set openstack-hypervisor \
rabbitmq.url=rabbit://nova:supersecure22@10.152.183.212:5672/openstackand with URL's for access to Network services:
$ sudo snap set openstack-hypervisor \
network.ovn-sb-connection=tcp:10.152.183.220:6642The snap has numerous other configuration options - see "Configuration Reference" for full details.
Configuration of options related to compute (Nova):
compute.virt-typelibvirt Virtualization type
This option is runtime detected by the snap and will be set
to kvm if the host is capable of full virtualization or qemu if not.
compute.cpu-mode(host-model) CPU mode for instances
Valid values: host-model, host-passthrough, custom, none.
compute.cpu-modelsCPU models for hypervisor
An ordered list of CPU models the host supports.
Only used with compute.cpu-mode is set to custom.
For more details please refer to the Nova configuration reference for cpu models.
compute.spice-proxy-address(localhost) IP address for SPICE consoles
IP address to use for configuration of SPICE consoles in instances.
Configuration of options related to identity (Keystone):
identity.auth-urlFull URL for Keystone APIidentity.usernameUsername for services to useidentity.passwordPassword for services to useidentity.user-domain-name(service_domain) Domain for useridentity.project-name(services) Service projectidentity.project-domain-name(service_domain) Domain for service projectidentity.region-name(RegionOne) OpenStack region to use
Configuration of logging options across all services:
logging.debug(false) Enable debug log level
Configuration of options related to the hypervisor node in general:
node.fqdn(hostname -f) Fully qualified hostname for nodenode.ip-addressIP address to use for service configuration
These options are use to configure the identity of the agents that run as part of the snap.
Configuration of options related to networking, including Neutron and OVN:
-
network.dns-domainDNS domain name to use for networking -
network.dns-serversExternal DNS servers to use for forwarding DNS requests -
network.external-bridge(br-ex) Name of OVS external network bridge -
network.physnet-name(physnet1) Neutron label for physical network -
network.ip-address(node.ip-address) IP address to use for overlay network endpoints -
network.ovn-sb-connection(tcp:127.0.0.1:6642) OVN Southbound DB connection URL -
network.enable-gateway(False) Enable OVS/OVS as north/south gateway
TLS configuration for OVN can also be supplied via snap configuration:
network.ovn-keyPrivate TLS keynetwork.ovn-certTLS certificate forovn-keynetwork.ovn-cacertCA certificate (and chain) for certificate validation
All of the above options must be provided as base64 encoded strings.
Configuration of options related to RabbitMQ messaging:
rabbitmq.url(rabbit://localhost:5672) Full connection URL to RabbitMQ
The build and test with this snap see CONTRIBUTING.md.