76 Commits

Author SHA1 Message Date
Monty Taylor
6fe49b6536 Document clouds.yaml as the preferred configuration
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
2016-02-10 13:35:45 -06:00
Jenkins
059d29176b Merge "Remove the unused 'reset' setting from the doc" 2016-02-03 22:21:03 +00:00
xiexs
c26d70cd23 Add ipv6-preferred into config-validation
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
2016-02-03 11:15:50 +11:00
Jenkins
761e56061c Merge "Add 'public' attribute to 'networks' entry" 2016-01-05 21:41:38 +00:00
James E. Blair
0ceb3d53b2 Add 'public' attribute to 'networks' entry
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
2016-01-05 10:40:53 -08:00
Jenkins
2198eb2d59 Merge "Write the cloud name into the provider info" 2015-12-04 22:35:00 +00:00
Monty Taylor
17674a3146 Write the cloud name into the provider info
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
2015-12-04 13:41:40 -08:00
Clark Boylan
20e9c42b69 Add documentation on removing a provider
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
2015-11-19 16:40:48 -08:00
Jenkins
df8795de5d Merge "Document SIGINT / SIGUSR2" 2015-11-18 00:03:21 +00:00
xiexs
e04ace4b9a Remove the unused 'reset' setting from the doc
The 'reset' setting has already been removed from the image, 
so it should also be removed from the doc correspondingly.

Change-Id: I5f5a25a5a09095666d79407c938f8fb9c0da9814
2015-10-09 10:12:53 +00:00
Yolanda Robla
db7c48c301 Update nodepool to use secure.conf file
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
2015-10-06 01:04:27 +00:00
Antoine Musso
2143e8af04 doc: FLUSH PRIVILEGES; is unneeded
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
2015-09-01 18:00:52 +02:00
Monty Taylor
2dce00299e Add support for project-name parameter
Some clouds give you an ID. Some give a name. We need to pass names to
names and IDs to IDs.

Change-Id: If493c0103281a50b863a2b1babb3521307480e61
2015-08-18 18:05:09 -07:00
Jenkins
0a7778743a Merge "Clarify meaning of Jenkins master configuration settings in target" 2015-08-14 23:05:37 +00:00
Clark Boylan
7a86e46d31 Shorten template hostname
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
2015-08-06 14:18:05 -07:00
James E. Blair
d10efec6b9 Expand documentation on timeouts
Change-Id: I132563db8365e50ccf2043daf861865c088b7fe8
2015-08-05 09:25:01 -07:00
Antoine Musso
0b5f839cea Document SIGINT / SIGUSR2
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
2015-07-28 16:44:05 +02:00
Jenkins
656a9e3ed6 Merge "Add MySQL DB creation example" 2015-07-16 03:55:10 +00:00
Thanh Ha
5954a31053 Add prerequisites for nodepool on RHEL7
Change-Id: I3ef9df72c0965be39e13142cf44e3e6297b0c8b7
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
2015-07-16 00:59:03 +00:00
Thanh Ha
a71cba105a Add MySQL DB creation example
Change-Id: Ie4733a23786d9797be2edd9ca3bad9ab032b5413
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
2015-07-16 00:58:53 +00:00
Thanh Ha
72b462d9f7
Clarify meaning of Jenkins master configuration settings in target
Change-Id: Id46e3e1f3b94ca12eb8c73ad37fa80c5bb0aca57
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
2015-07-15 20:46:24 -04:00
James E. Blair
beeb3105c1 Remove slave.openstack.org from default hostname values
We want to stop using this suffix in OpenStack and it's useless
for anyone else anyway.

Change-Id: I3e37b9b32e02518a73d1ca740cca162f4248697a
2015-07-13 14:40:36 -07:00
Jenkins
f489324123 Merge "Make diskimage example config work" 2015-06-30 15:37:42 +00:00
Jenkins
de4bcefdd5 Merge "add option to use ipv6 for image update and node launching" 2015-06-26 14:44:03 +00:00
Jenkins
85c46e28f4 Merge "Remove unused 'reset' setting from images" 2015-06-23 18:03:16 +00:00
Jenkins
c462906905 Merge "Convert to use latest statsd version" 2015-06-23 17:57:33 +00:00
Jerry Zhao
5fe5ef8311 add option to use ipv6 for image update and node launching
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
2015-06-18 17:51:36 -07:00
Jens Rosenboom
e54a38560a Make diskimage example config work
The element 'node-devstack' will currently only work if 'nodepool-base'
is executed before, so add it to the example configuration.

Change-Id: Ie799cc8233b26cc18cb991eba56336eeca6c4a25
2015-06-11 10:17:33 +02:00
Monty Taylor
00e39427c2 Record interesting info into nova metadata
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
2015-06-10 14:54:37 -07:00
Thanh Ha
3a761d8028 Update Copyright year
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>
2015-06-02 19:08:07 +00:00
Ian Wienand
5662105de4 Convert to use latest statsd version
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
2015-05-26 15:53:08 +10:00
Thanh Ha
3c635ec9c2
Clarify project-id meaning for Rackspace deployment
Change-Id: I5f05ad74697b82d1611a34ce5a1afbe7d649d778
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
2015-05-09 10:44:05 -04:00
Antoine Musso
f31b4c0af2 Improve configuration documentation
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
2015-04-22 00:20:46 +02:00
Clark Boylan
caf01c43c2 Just set qcow2 version
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
2015-04-16 14:12:13 -04:00
Clark Boylan
86610b50b5 Support per provider image build settings
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
2015-04-16 14:10:09 -04:00
Jenkins
ddd600368a Merge "Add support for requsting that config drive be used." 2015-04-07 19:55:10 +00:00
Jeremy Stanley
63e5297f7e Switch from MySQL-python to PyMySQL
PyMySQL, unlike MySQL-python, is a pure-python implementation with
support for Py3K.

Change-Id: I110c85fa7d57a6ab121437f93238cf931a8f2d74
2015-04-02 21:18:21 +00:00
Paul Belanger
fb04b714ff Correct diskimage-builder name usage
Change-Id: I9ea37c38bca66eca94d5feec718e3b2473d5427e
Signed-off-by: Paul Belanger <paul.belanger@polybeacon.com>
2015-03-25 15:47:37 -04:00
Bob Ball
4107e4a7e1 Add support for requsting that config drive be used.
If you want to use config drive in RAX this is required as the default
is to use an agent.

Change-Id: Ic1a60fc76f34b831eb86c87453d3aa97cf55f1f1
2015-03-25 16:17:52 +00:00
Ian Wienand
e47e400a4c Ignore stderr for documentation program output
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
2015-03-20 11:30:10 +11:00
Paul Belanger
b68b8b320f Remove unused 'reset' setting from images
Change-Id: I62880878618685b83cd7ee45b94e65d770a27f9a
Signed-off-by: Paul Belanger <paul.belanger@polybeacon.com>
2015-03-17 12:33:04 -04:00
Jenkins
a0edab1d36 Merge "Check env-vars is a dictionary" 2015-02-14 00:33:43 +00:00
Ian Wienand
7199920d84 Check env-vars is a dictionary
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
2015-02-05 10:23:04 +11:00
Brian Hunter
99d348d6d8 Add doc for 'pool' parameter for nodepool provider config
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
2015-01-29 10:52:13 -05:00
Jenkins
d89a9f0798 Merge "Make the external links actual hyperlinks" 2014-12-08 17:04:07 +00:00
Jenkins
3186c19cb8 Merge "Clean up 'images' documentation" 2014-11-25 03:25:10 +00:00
Attila Fazekas
9cac605d8f Add private ip to /etc/nodepool
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
2014-10-29 21:11:47 +01:00
James E. Blair
ca2ac5c741 Add current node IP to /etc/nodepool
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
2014-10-28 15:38:37 -07:00
Jenkins
c8f7c4f84d Merge "Send environment vars to diskimage-builder per image" 2014-10-24 19:51:37 +00:00
Łukasz Jernaś
494cac5806 Make the external links actual hyperlinks
Change-Id: If70154c803f1d0f2dc07019bcadb651f0c1e995c
2014-10-17 18:02:10 +02:00