This is an example Data Repository to use with OpenStack External Testing Platform Installer.
DO NOT fork this repository.
It is intended to be copied to some private location (possibly a private GitHub repository, possibly somewhere else private in your organization). This repository will contain private SSH keys and other sensitive information.
9/4/2015 It has been updated to follow the project-config file layout
Follow these manual instructions to get your data repository set up:
-
Copy the repository somewhere private.
-
Copy the private SSH key that you submitted when you registered with the upstream OpenStack Infrastructure team into somewhere in this repo.
-
Create an SSH key pair that you will use for Jenkins. This SSH key pair will live in the
/var/lib/jenkins/.ssh/directory on the master Jenkins host, and it will be added to the/home/jenkins/.ssh/authorized_keysfile of all slave hosts::ssh-keygen -t rsa -b 1024 -N '' -f jenkins_key
Once you do the above, copy the
jenkins_keyandjenkins_key.pubfiles into your data repository. -
Copy
vars.sh.sampletovars.shand open upvars.shin an editor. -
Change the value of the
$UPSTREAM_GERRIT_USERshell variable to the Gerrit username you registered with the upstream OpenStack Infrastructure team as detailed in these instructions -
Change the value of the
$UPSTREAM_GERRIT_SSH_KEY_PATHshell variable to the relative path of the private SSH key file you copied into the repository in step #2.For example, let's say you put your private SSH key file named
mygerritkeyinto a directory calledsshwithin the repository, you would set the$UPSTREAM_GERRIT_SSH_KEY_PATHvalue tossh/mygerritkey -
If for some reason, in step #3 above, you either used a different output filename than
jenkins_keyor put the key pair into some subdirectory of your data repository, then change the value of the$JENKINS_SSH_KEY_PATHvariable invars.shto an appropriate value. -
Change the value of the
$PUBLISH_HOSTto the host (without https:// prefix) you will publish job artifacts to. This is also known as the Log server. You can set one up using [this script] (https://github.com/rasselin/os-ext-testing/blob/master/puppet/install_log_server.sh). -
Change the mysql passwords in
$MYSQL_ROOT_PASSWORDwith the (current) root mysql password and$MYSQL_PASSWORDwith the desired nodepool mysql password. -
Optionally change the
$GIT_EMAILand$GIT_NAMEto a different name. These are used by zuul to manage internal git trees. -
Optionall add your SMTP server in
$SMTP_HOSTif you would like to use zuul's e-mail notification features. -
Copy the
nodepool/nodepool.yaml.sampletonodepool/nodepool.yamland modify as needed. Some common properties are delimited by <%= %> are also set in the vars.sh file and need to be manually. These include username and password. You can find the full configuration details in the Nodepool manual. In particular, update the mysql_password to$MYSQL_PASSWORD. Choose a new time for the image-update cron job. Setup the OpenStack provider username, password, and auth-url. Finally, synchronize the jenkins environment to what you configured in vars.sh. -
Copy the
zuul/layout.yaml.samplefile tozuul/layout.yamland update it to your needs. You can find the full configuration details in the Zuul manual. In particular, update the portions that have 'myvendor' and configure the e-mail addresses for merge-failures. -
Adjust the jenkins jobs in
jenkins/jobs/to your needs. You can find the full configuration details in the Jenkins Job Builder manual -
Setup an intial set of nodepool scripts and elements. Start by cloning OpenStack's project-config and copy the contents of that repo's
nodepool/elementsto your repo'snodepool/elements. Optionally do the same for thenodepool/scriptsfolder. You may have to change these elements to work in your environment. If so, see this README for help.
If you have not yet migrated to the 'project-config' layout, you are strongly encouraged to do so. Fortunately, it is a simple task:
-
Copy the files in
etc/jenkins_jobs/configto jenkins/jobs -
Copy
etc/zuul/layout.yamltozuul/layout.yaml -
Copy the files and directories in
etc/nodepoolnodepool/