Configuring clouds is complicated - possibly more so than is sane, but
hey, that's life. Rather than trying to express all of that directly in
nodepool, the preferred way to deal with it is to define a named cloud
in clouds.yaml and then refer to that in nodepool.
Update the documentation to reflect that.
Change-Id: I1e97dc88227c57cd5f718f8c1fabdcfeafd031c1
The "nodepool config-validate" will raise following error,
while the ipv6-preferred option specified into the nodepool config file.
[Error Msg]:
voluptuous.MultipleInvalid: extra keys not allowed @ data['providers'][0]['ipv6-preferred']
Add an ipv6-preferred validator into the config-validation to fix this
issue.
Change-Id: Ic6b8d8a7283e13a2365c6211bcf4e9ad70a2f656
Update the 'networks' entry to expect a different format. Instead
of a list of dictionaries containing either 'net-id' or 'net-label,
it now expects a list of dictionaries containing at least 'name' and
optionally 'public' -- a boolean defaulting to false that indicates
that the specified network should be considered by nodepool to be the
public network.
Both 'net-id' and 'net-label' are deprecated. This is a straightforward
transition from usage of 'net-label' to this form. There is no
equivalent of 'net-id' in this form.
This is in service of adding Internap to the OpenStack configuration.
Change-Id: I3eb8d5183bd4c082f56853cf71842f1353977248
So that we can do per-region mirrors with the name of the cloud
accounted for, write out a NODEPOOL_CLOUD variable.
Change-Id: Ic6b72b5ecc52dad243d8be91469ab2b6073a4dc5
There are a series of steps that make deleting a provider easy.
Basically set max-servers to -1, wait for nodes to go away, delete
images, remove config. Document this.
Change-Id: I7b872ef3416c02c1d75e30611c9439805bb8428b
The 'reset' setting has already been removed from the image,
so it should also be removed from the doc correspondingly.
Change-Id: I5f5a25a5a09095666d79407c938f8fb9c0da9814
Depends on a new secure.conf file to grab mysql
connection and jenkins credentials. By this way,
nodepool.yaml is just a flat file without credentials,
that can be passed externally.
Co-Authored-By: Ramy Asselin <ramy.asselin@hpe.com>
Depends-On: Ie9381740e3644feaee1f1b201499e3a253677f39
Change-Id: Ifa4d500c52974b9fd3a0b7fd9c28cf8f52899ca9
In Nodepool MySQL database creation process, Wikimedia DBA Jaime Crespo
pointed that the FLUSH PRIVILEGES; command is unneeded.
MySQL is smart enough to flush cache when GRANT is used.
Remove unnecessary command from the MySQL installation example.
Reference:
http://dbahire.com/stop-using-flush-privileges/
Signed-off-by: Jaime Crespo <jcrespo@wikimedia.org>
Change-Id: I8bcaadc45e26963c15a6cb067d452fa11e9aefc0
Previously we were setting template hostnames to a very long name that
included the domain making it an fqdn that does not resolve. This causes
problems when that hostname is truncated by the system but other places
try to use the full long name.
Work around this by dropping the template.openstack.org default domain
attached to the hostname and change the default template hostname to
'template-{image.name}-{timestamp}'. This should keep names to a
reasonable length allowing hostname related operations to function
properly.
Change-Id: Ic55f018d31646975af88d38d2df3eecd72b13f8b
Similar to Zuul, Nodepool handles two signals that were left
undocumented:
SIGINT (replaced SIGUSR1) is to gracefully stop
SIGUSR2 for stack dump / profiling
Borrow documentation from Zuul:
SIGINT https://review.openstack.org/21543 (f231fa2a7) by Clark Boylan
SIGUSR2 https://review.openstack.org/42959 (fba9b247b) by Clark Boylan
SIGUSR2 https://review.openstack.org/97708 (d0f06265e) by Antoine Musso
for the yappi profiling
Change-Id: I2005d8ebdc6444c40dfb29f2b0f7c4655e57caa0
add option to use ipv6 as ssh connect ip for building snapshot
image and launching jenkins slaves.
Conflicts:
doc/source/configuration.rst
nodepool/nodepool.py
Change-Id: I7e023e7581fc0b5ec1ee34d1e5a1eeaacd7d3bfd
The element 'node-devstack' will currently only work if 'nodepool-base'
is executed before, so add it to the example configuration.
Change-Id: Ie799cc8233b26cc18cb991eba56336eeca6c4a25
Sometimes one wants to run a quick command across classes of nodes. This
is made really easy if there are some defining characteristics recorded
in the nova metadata that things like the ansible inventory can pick up
on. Add information to the meta parameter to record that information
in nova.
Change-Id: I3e24f5aa004c5bb8de7ffb757035d64804547f1d
Updating conf.py to always pull the current year to avoid needing to update
this in the future, per review feedback.
Change-Id: I1b58210dacf7df92a078ae4a67885b2ed8a1dea1
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
statsd >= 3.0 changed the way it initializes itself; to start-up from
environment variables you need to import from 'statsd.defaults.env'.
It is also slightly different in that it provides default values; so
we check if the environment variable is set and avoid importing it if
statsd isn't configured.
This moves the statsd object creation into a common module so it can
be shared rather than create multiple clients.
Documentation is also updated to describe how to configure this
Change-Id: I4791c9d26f2309f78a556de42af5b9945005aa46
In each section, split required and optional parameters in their own
sub sections. Make it easier to craft a new configuration file from
scratch.
Have the setting explanation on its own indented paragraph to make it
easier to the eye (approved by my wife).
Add almost all missing settings based on the source code and document
some.
Document the Jenkins 'test-job' introduced in 861a5dbc by copy pasted
James E. Blair commit summary.
Change-Id: Iadaa0f70434cc254738b31359200c9fac02042bb
Simplify the diskimage-builder config options in the nodepool config by
removing qemu-img-options from nodepool's configuration. Instead we
hardcode a qcow2 version compat setting of 0.10. This is necessary for
HPCloud and possibly other clouds, and keeps things simple in nodepool.
Change-Id: Icbbb92e22e5cab1332c17291392162d3d86de6b5
With mutliple cloud providers supporting different image formats and
versions nodepool needs to express the requirements providers have on
images. Add a provider.image-type setting to providers that determine
which image formats diskimage-builder should output.
Change-Id: I808571e2c9cc10fb7dfcd6e30262769872cd75cc
novaclient is helpfully giving a deprecation warning at the moment
which totally messes up the command output in the documentation. Just
ignore this extraneous output by only capturing stdout.
Change-Id: Ie126deb555fff52385bfb11d82f510cc9431b0a4
In change Ic6c21f715441a16a1d832163dc71921f25d654df I made the mistake
of specifying env-var's as a list, rather than a dict, in the yaml.
In this change we check that env-vars is a dictionary and soft-fail if
it is not.
Additionally a script 'fake-image-create' is added to be using during
testing. This is spawned in-place of disk-image-create and can check
arbitrary things, returning non-zero if it finds them. We check for
some added environment variables as a first step.
The documentation is also clarified slightly with an expanded example.
Change-Id: I7fe1972fdcc7e8b0231e9d232485da9c5dfdb31b
This attempts to capture a small stumbling block one can run into with
the configuration of nodepool.
In some clouds (ie, Bluebox), the 'public' floating IP pool may not be
available.
Change-Id: I220db957eb4c4a15d65a7e0affa8083cf504f660
The private IPs are more useful for having nodes to
communicate with each other in multi-node jobs.
This change extends the /etc/nodepool with two new files.
* primary_node_private The private ip of the primary node
* sub_nodes_private The private ip of the sub nodes,
in the same order as the floating ones.
This change helps in simplify the devstack-gate multi-node change.
This change causes DB schema change, both node and subnode table
extended with an ip_private field.
Change-Id: Ib7b29afbfae877e6edeea6568732c54c3d9e12f1
Record the IP of the current node in /etc/nodepool. Also remove
the try/except that should no longer be necessary (consider lack
of /etc/nodepool an error now). Add some comments about what the
files are. Update docs to include this change and a prior change
that added the provider file.
Change-Id: I730e1ea7c67a9cd9c6bcd9989c4c24d7778cded9