~openstack-charmers/charms/trusty/nova-compute/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
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
        * 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 }'
  manage-neutron-plugin-legacy-mode:
    type: boolean
    default: True
    description: |
      If True nova-compute will install neutron packages for the plugin
      stipulated by nova-cloud-controller. The option is only available for
      backward compatibility for deployments which do not use the neutron-api
      charm. Please do not enable this on new deployments.
  # 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.
  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.