charm-nova-compute/config.yaml

334 lines
12 KiB
YAML

options:
debug:
type: boolean
default: False
description: Enable debug logging.
verbose:
type: boolean
default: False
description: Enable verbose logging.
use-syslog:
type: boolean
default: False
description: |
Setting this to True will allow supporting services to log to syslog.
openstack-origin:
type: string
default: distro
description: |
Repository from which to install. May be one of the following:
distro (default), ppa:somecustom/ppa, a deb url sources entry or a
supported Ubuntu Cloud Archive (UCA) release pocket.
.
Supported UCA sources include:
.
cloud:<series>-<openstack-release>
cloud:<series>-<openstack-release>/updates
cloud:<series>-<openstack-release>/staging
cloud:<series>-<openstack-release>/proposed
.
For series=Precise we support UCA for openstack-release=
* icehouse
.
For series=Trusty we support UCA for openstack-release=
* juno
* kilo
* ...
.
NOTE: updating this setting to a source that is known to provide
a later version of OpenStack will trigger a software upgrade.
.
openstack-origin-git:
type: string
default:
description: |
Specifies a default OpenStack release name, or a YAML dictionary
listing the git repositories to install from.
The default Openstack release name may be one of the following, where
the corresponding OpenStack github branch will be used:
* liberty
* mitaka
* newton
* master
The YAML must minimally include requirements, neutron, and nova
repositories, and may also include repositories for other dependencies:
repositories:
- {name: requirements,
repository: 'git://github.com/openstack/requirements',
branch: master}
- {name: neutron,
repository: 'git://github.com/openstack/neutron',
branch: master}
- {name: nova,
repository: 'git://github.com/openstack/nova',
branch: master
release: master
nova-config:
type: string
default: /etc/nova/nova.conf
description: Full path to Nova configuration file.
rabbit-user:
type: string
default: nova
description: Username used to access rabbitmq queue.
rabbit-vhost:
type: string
default: openstack
description: Rabbitmq vhost.
virt-type:
type: string
default: kvm
description: |
Virtualization flavor. Supported flavors are: kvm, xen, uml, lxc, qemu,
lxd.
disk-cachemodes:
type: string
default:
description: |
Specific cachemodes to use for different disk types e.g:
file=directsync,block=none
enable-resize:
type: boolean
default: False
description: Enable instance resizing, which requires that passwordless SSH
access be setup between compute hosts.
enable-live-migration:
type: boolean
default: False
description: |
Configure libvirt or lxd for live migration.
Live migration support for lxd is still considered experimental.
migration-auth-type:
type: string
default:
description: |
TCP authentication scheme for libvirt live migration. Available options
include ssh.
authorized-keys-path:
type: string
default: '{homedir}/.ssh/authorized_keys'
description: |
Only used when migration-auth-type is set to ssh.
.
Full path to authorized_keys file, can be useful for systems with
non-default AuthorizedKeysFile location. It will be formatted using the
following variables:
.
homedir - user's home directory
username - username
.
instances-path:
type: string
default:
description: |
Path used for storing Nova instances data - empty means default of
/var/lib/nova/instances.
config-flags:
type: string
default:
description: |
Comma-separated list of key=value config flags. These values will be
placed in the nova.conf [DEFAULT] section.
database-user:
type: string
default: nova
description: Username for database access.
database:
type: string
default: nova
description: Nova database name.
multi-host:
type: string
default: 'yes'
description: Whether to run nova-api and nova-network on the compute nodes.
pci-passthrough-whitelist:
type: string
default:
description: |
Sets the pci_passthrough_whitelist option in nova.conf with is used to allow
pci passthrough to the VM of specific devices, for example for SR-IOV.
reserved-host-memory:
type: int
default: 512
description: |
Amount of memory in MB to reserve for the host. Defaults to 512MB.
vcpu-pin-set:
type: string
default:
description: |
Sets vcpu_pin_set option in nova.conf which defines which pcpus that
instance vcpus can or cannot use. For example '^0,^2' to reserve two
cpus for the host.
# Required if using FlatManager (nova-network)
bridge-interface:
type: string
default: br100
description: Bridge interface to be configured
bridge-ip:
type: string
default: 11.0.0.1
description: IP to be assigned to bridge interface
bridge-netmask:
type: string
default: 255.255.255.0
description: Netmask to be assigned to bridge interface
# Required if using FlatDHCPManager (nova-network)
flat-interface:
type: string
default: eth1
description: Network interface on which to build bridge
# Nagios configuration options
nagios_context:
type: string
default: 'juju'
description: |
Used by the nrpe-external-master subordinate charm. A string that will be
prepended to instance name to set the host name in nagios. So for
instance the hostname would be something like:
.
juju-myservice-0
.
If you're running multiple environments with the same services in them
this allows you to differentiate between them.
nagios_servicegroups:
type: string
default:
description: |
A comma-separated list of nagios servicegroups. If left empty, the
nagios_context will be used as the servicegroup.
# Network configuration options
# NOTE: by default all access is over 'private-address'
use-internal-endpoints:
default: False
type: boolean
description: |
Openstack mostly defaults to using public endpoints for
internal communication between services. If set to True this option will
configure services to use internal endpoints where possible.
prefer-ipv6:
type: boolean
default: False
description: |
If True enables IPv6 support. The charm will expect network interfaces
to be configured with an IPv6 address. If set to False (default) IPv4
is expected.
NOTE: these charms do not currently support IPv6 privacy extension. In
order for this charm to function correctly, the privacy extension must be
disabled and a non-temporary address must be configured/available on
your network interface.
cpu-mode:
type: string
default:
description: |
Set to 'host-model' to clone the host CPU feature flags; to
'host-passthrough' to use the host CPU model exactly; to 'custom' to
use a named CPU model; to 'none' to not set any CPU model. If
virt_type='kvm|qemu', it will default to 'host-model', otherwise it will
default to 'none'. Defaults to 'host-passthrough' for ppc64el, ppc64le
if no value is set.
cpu-model:
type: string
default:
description: |
Set to a named libvirt CPU model (see names listed in
/usr/share/libvirt/cpu_map.xml). Only has effect if cpu_mode='custom' and
virt_type='kvm|qemu'.
# Storage configuration options
libvirt-image-backend:
type: string
default:
description: |
Tell Nova which libvirt image backend to use. Supported backends are rbd,
lvm and qcow2. If no backend is specified, the Nova default (qcow2) is
used. Note that rbd imagebackend is only supported with >= Juno.
rbd-pool:
type: string
default: 'nova'
description: |
RBD pool to use with Nova libvirt RBDImageBackend. Only required when you
have libvirt-image-backend set to 'rbd'.
rbd-client-cache:
type: string
default:
description: |
Enable/disable rbd client cache. Leaving this value unset will result in
default Ceph rbd client settings being used (rbd cache is enabled by
default for Ceph >= Giant). Supported values here are "enabled" or
"disabled".
ceph-osd-replication-count:
type: int
default: 3
description: |
This value dictates the number of replicas ceph must make of any
object it stores withing the nova rbd pool. Of course, this only
applies if using Ceph as a backend store. Note that once the nova
rbd pool has been created, changing this value will not have any
effect (although it can be changed in ceph by manually configuring
your ceph cluster).
ceph-pool-weight:
type: int
default: 30
description: |
Defines a relative weighting of the pool as a percentage of the total
amount of data in the Ceph cluster. This effectively weights the number
of placement groups for the pool created to be appropriately portioned
to the amount of data expected. For example, if the ephemeral volumes
for the OpenStack compute instances are expected to take up 20% of the
overall configuration then this value would be specified as 20. Note -
it is important to choose an appropriate value for the pool weight as
this directly affects the number of placement groups which will be
created for the pool. The number of placement groups for a pool can
only be increased, never decreased - so it is important to identify the
percent of data that will likely reside in the pool.
# Other configuration options
sysctl:
type: string
default:
description: |
YAML formatted associative array of sysctl values, e.g.:
'{ kernel.pid_max : 4194303 }'
# Huge page configuration - off by default
hugepages:
type: string
default:
description: |
The pecentage of system memory to use for hugepages eg '10%' or the total
number of 2M hugepages - eg "1024".
For a systemd system (wily and later) the prefered approach is to enable
hugepages via kernel parameters set in MAAS and systemd will mount them
automatically.
action-managed-upgrade:
type: boolean
default: False
description: |
If True enables openstack upgrades for this charm via juju actions.
You will still need to set openstack-origin to the new repository but
instead of an upgrade running automatically across all units, it will
wait for you to execute the openstack-upgrade action for this charm on
each unit. If False it will revert to existing behavior of upgrading
all units on config change.
os-internal-network:
type: string
default:
description: |
The IP address and netmask of the OpenStack Internal network (e.g.
192.168.0.0/24)
This network will be used to bind vncproxy client.
harden:
default:
type: string
description: |
Apply system hardening. Supports a space-delimited list of modules
to run. Supported modules currently include os, ssh, apache and mysql.
aa-profile-mode:
type: string
default: 'disable'
description: |
Experimental enable apparmor profile. Valid settings: 'complain', 'enforce' or 'disable'.
AA disabled by default.