Skip to content

foundation-runtime/jenkins-openstack-deployment-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jenkins OpenStack Deployment Plugin

The OpenStack Deployment Plugin enables packaging multi-rpm products, and deploying these products on an Openstack environment

The plugin assumes the following:

  • Product components are packaged as RPMs
  • Product artifacts are uploaded to Nexus
  • Artifacts which are not in Nexus can be retrieved via http
  • Heat templates exist in a git repository
  • Deployment scripts exist in either a git repository or are attached as a tar.gz file to each artifact in Nexus

The Heat repository is expected to have this structure:

`-- <product name>
    |-- <product name>.env.yaml
    |-- <product name>.yaml
    `-- <product name>.yaml.dependencies
        |-- embedded yaml.yaml
        |-- some bash.sh
        |-- some other bash.sh
        `-- some other bash.sh

For example - this is the structure of the demo heat template:

`-- demo
    |-- demo.env.yaml
    |-- demo.yaml
    `-- demo.yaml.dependencies
        |-- __stand_alone_external_instance.yaml
        |-- check_installation.sh
        |-- component_installation.sh
        |-- general_user_data.sh
        `-- vci-utility-scripts

The heat stack can be found in Sample HEAT template

Prior to adding create/deploy product/profile, you should set your Nexus server credentials in the Manage Jenkins / configure System page: Jenkins general settings

To package your product:

  1. Create a 'Freestyle' job

enter image description here

  1. Add a 'Create Product' step:

enter image description here

  1. Select group ID, artifact ID, and set git repository paths for your heat templates and deployment scripts Heat git repo is mandatory. Scripts and puppets repos are optional.

enter image description here

  1. Add dependent products, artifacts and external dependencies. External dependencies are resources which do not exist in Nexus. They should be accessible via http.

enter image description here

Once you build your product, 3 artifacts are uploaded to Nexus:

  1. POM file, describing your dependencies
  2. TAR file containing your heat templates, deployment scripts and external dependencies
  3. RPM containing your Puppet scripts (built from the Puppet git repo and from the puppet scripts tar uploaded with each component.

Now you can define a 'deploy' job to deploy the product you packaged in an OpenStack environment

  1. Create a free-style job

enter image description here

  1. Mark job as 'parameterized' and define a string parameter named 'version'

  2. Add a 'Deploy Product' built step

enter image description here

  1. Set product parameters and OpenStack credentials

enter image description here

  1. You may define product-specific parameters, and assign a value to common parameters

enter image description here

  1. A yum repository is required. The machine have a link pointing /var/www/html to /ci-repo. Jenkins will copy the artifacts to this yum repo. In order to accomplish this you will need to provide the proper SSH private key.

enter image description here

About

A jenkins plugin for openstack deployment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •