--- /dev/null
+[Default]
+ignore = .gitignore
+use_spaces = True
+
+[markdown]
+bears = MarkdownBear
+files = ./**/*.markdown, ./**/*.md
+default_actions = MarkdownBear: ApplyPatchAction
+
+[json]
+bears = JSONFormatBear
+files = ./**/*.json
+default_actions = JSONFormatBear: ApplyPatchAction
+
+[ruby]
+bears = RuboCopBear
+files = ./**/*.rb
+
+[puppet]
+bears = PuppetLintBear
+files = ./**/*.pp
+
+[xml]
+bears = XMLBear
+files = ./**/*.xml
+
+[yaml]
+bears = YAMLLintBear
+yamllint_config = .yamllint
+files = ./**/*.yaml, ./**/*.yml
+---
fixtures:
repositories:
stdlib: "https://github.com/puppetlabs/puppetlabs-stdlib.git"
- PUPPET_VERSION="~> 4.3.0"
matrix:
exclude:
- - rvm: 2.2.3
- env: PUPPET_VERSION="~> 3.4.0"
- - rvm: 2.2.3
- env: PUPPET_VERSION="~> 3.5.0"
- - rvm: 2.2.3
- env: PUPPET_VERSION="~> 3.6.0"
- - rvm: 2.2.3
- env: PUPPET_VERSION="~> 3.7.0"
+ - rvm: 2.2.3
+ env: PUPPET_VERSION="~> 3.4.0"
+ - rvm: 2.2.3
+ env: PUPPET_VERSION="~> 3.5.0"
+ - rvm: 2.2.3
+ env: PUPPET_VERSION="~> 3.6.0"
+ - rvm: 2.2.3
+ env: PUPPET_VERSION="~> 3.7.0"
notifications:
- email:
- recipients:
- - dfarrell@redhat.com
- on_success: change
- on_failure: change
+ email:
+ recipients:
+ - dfarrell@redhat.com
+ on_success: change
+ on_failure: change
--- /dev/null
+---
+rules:
+ braces:
+ min-spaces-inside: 0
+ max-spaces-inside: 0
+ brackets:
+ min-spaces-inside: 0
+ max-spaces-inside: 0
+ colons:
+ max-spaces-before: 0
+ max-spaces-after: 1
+ commas:
+ max-spaces-before: 0
+ min-spaces-after: 1
+ max-spaces-after: 1
+ comments:
+ level: warning
+ require-starting-space: true
+ min-spaces-from-content: 2
+ comments-indentation:
+ level: warning
+ document-end: disable
+ document-start:
+ level: warning
+ present: true
+ empty-lines:
+ max: 2
+ max-start: 0
+ max-end: 0
+ hyphens:
+ max-spaces-after: 1
+ indentation:
+ spaces: consistent
+ indent-sequences: true
+ check-multi-line-strings: false
+ key-duplicates: enable
+ line-length:
+ max: 80
+ allow-non-breakable-words: true
+ allow-non-breakable-inline-mappings: true
+ new-line-at-end-of-file: enable
+ new-lines:
+ type: unix
+ trailing-spaces: enable
+ truthy: disable
we can do better.
#### Table of Contents
+
1. [Overview](#overview)
-1. [Communication](#communication)
- * [Issues](#issues)
- * [IRC channel](#irc-channel)
-1. [Patches](#patches)
-1. [Testing](#testing)
- * [Test Dependencies](#test-dependencies)
- * [Syntax and Style Tests](#syntax-and-style-tests)
- * [Unit Tests](#unit-tests)
- * [System Tests](#system-tests)
- * [Tests in Continuous Integration](#tests-in-continuous-integration)
+2. [Communication](#communication)
+ - [Issues](#issues)
+ - [IRC channel](#irc-channel)
+3. [Patches](#patches)
+4. [Testing](#testing)
+ - [Test Dependencies](#test-dependencies)
+ - [Syntax and Style Tests](#syntax-and-style-tests)
+ - [Unit Tests](#unit-tests)
+ - [System Tests](#system-tests)
+ - [Tests in Continuous Integration](#tests-in-continuous-integration)
## Overview
Please use [Pull Requests][2] to submit patches.
Basics of a pull request:
-* Use the GitHub web UI to fork our repo.
-* Clone your fork to your local system.
-* Make your changes.
-* Commit your changes, using a [good commit message][7] and referencing any
-applicable issues.
-* Push your commit.
-* Submit a pull request against the project, again using GitHub's web UI.
-* We'll give feedback and get your changed merged ASAP.
-* You contributed! [Thank you][8]!
+
+- Use the GitHub web UI to fork our repo.
+- Clone your fork to your local system.
+- Make your changes.
+- Commit your changes, using a [good commit message][7] and referencing any
+ applicable issues.
+- Push your commit.
+- Submit a pull request against the project, again using GitHub's web UI.
+- We'll give feedback and get your changed merged ASAP.
+- You contributed! [Thank you][8]!
Other tips for submitting excellent pull requests:
-* If you'd like to make more than one logically distinct change, please submit
-them as different pull requests (if they don't depend on each other) or
-different commits in the same PR (if they do).
-* If your PR contains a number of commits that provide one logical change,
-please squash them using `git rebase`.
-* Please provide test coverage for your changes.
-* If applicable, please provide documentation updates to reflect your changes.
+
+- If you'd like to make more than one logically distinct change, please submit
+ them as different pull requests (if they don't depend on each other) or
+ different commits in the same PR (if they do).
+- If your PR contains a number of commits that provide one logical change,
+ please squash them using `git rebase`.
+- Please provide test coverage for your changes.
+- If applicable, please provide documentation updates to reflect your changes.
## Testing
matrix of supported Ruby and Puppet versions at every commit. This currently
results in >8500 automated tests per commit.
-
[1]: https://github.com/dfarrell07/puppet-opendaylight/issues
+
[2]: https://github.com/dfarrell07/puppet-opendaylight/pulls
+
[3]: https://github.com/dfarrell07/puppet-opendaylight/labels/good-for-beginners
+
[4]: https://github.com/dfarrell07/puppet-opendaylight/labels/prio%3Ahigh
+
[5]: https://github.com/dfarrell07/puppet-opendaylight/labels/prio%3Anormal
+
[6]: https://help.github.com/articles/closing-issues-via-commit-messages/
+
[7]: http://chris.beams.io/posts/git-commit/
+
[8]: http://cdn3.volusion.com/74gtv.tjme9/v/vspfiles/photos/Delicious%20Dozen-1.jpg
+
[9]: http://bundler.io/
+
[10]: http://puppet-lint.com/
+
[11]: https://github.com/gds-operations/puppet-syntax
+
[12]: https://github.com/puppet-community/metadata-json-lint
+
[13]: https://github.com/puppetlabs/beaker
+
[14]: http://serverspec.org/resource_types.html
+
[15]: https://github.com/puppetlabs/beaker/wiki/How-to-Write-a-Beaker-Test-for-a-Module#typical-workflow
+
[16]: https://travis-ci.org/dfarrell07/puppet-opendaylight
+
[17]: https://www.vagrantup.com/downloads.html
+
[18]: www.virtualbox.org/wiki/Linux_Downloads
+
[19]: http://webchat.freenode.net/?channels=opendaylight-integration
# OpenDaylight
-#### Table of Contents
+#### Table of Contents
+
1. [Overview](#overview)
-1. [Module Description](#module-description)
-1. [Setup](#setup)
- * [What `opendaylight` affects](#what-opendaylight-affects)
- * [Beginning with `opendaylight`](#beginning-with-opendaylight)
-1. [Usage](#usage)
- * [Karaf Features](#karaf-features)
- * [Install Method](#install-method)
- * [RPM Repo](#rpm-repo)
- * [Ports](#ports)
- * [Log Verbosity](#log-verbosity)
- * [Enabling ODL OVSDB L3](#enabling-odl-ovsdb-l3)
- * [Enabling ODL OVSDB HA](#enabling-odl-ovsdb-ha)
-1. [Reference ](#reference)
-1. [Limitations](#limitations)
-1. [Development](#development)
-1. [Release Notes/Contributors](#release-notescontributors)
+2. [Module Description](#module-description)
+3. [Setup](#setup)
+ - [What `opendaylight` affects](#what-opendaylight-affects)
+ - [Beginning with `opendaylight`](#beginning-with-opendaylight)
+4. [Usage](#usage)
+ - [Karaf Features](#karaf-features)
+ - [Install Method](#install-method)
+ - [RPM Repo](#rpm-repo)
+ - [Ports](#ports)
+ - [Log Verbosity](#log-verbosity)
+ - [Enabling ODL OVSDB L3](#enabling-odl-ovsdb-l3)
+ - [Enabling ODL OVSDB HA](#enabling-odl-ovsdb-ha)
+5. [Reference ](#reference)
+6. [Limitations](#limitations)
+7. [Development](#development)
+8. [Release Notes/Contributors](#release-notescontributors)
## Overview
### What `opendaylight` affects
-* Installs Java, which is required by ODL.
-* Creates `odl:odl` user:group if they don't already exist.
-* Installs [OpenDaylight][7].
-* Installs a [systemd unitfile][9] or [Upstart config file][10] for
-OpenDaylight.
-* Manipulates OpenDaylight's configuration files according to the params
-passed to the `::opendaylight` class.
-* Starts the `opendaylight` systemd or Upstart service.
+- Installs Java, which is required by ODL.
+- Creates `odl:odl` user:group if they don't already exist.
+- Installs [OpenDaylight][7].
+- Installs a [systemd unitfile][9] or [Upstart config file][10] for
+ OpenDaylight.
+- Manipulates OpenDaylight's configuration files according to the params
+ passed to the `::opendaylight` class.
+- Starts the `opendaylight` systemd or Upstart service.
### Beginning with `opendaylight`
To change the port on which OpenDaylight's northbound listens for REST API
calls, use the `odl_rest_port` param.
-
```puppet
class { 'opendaylight':
odl_rest_port => '8080',
#### Public classes
-* `::opendaylight`: Main entry point to the module. All ODL knobs should be
-managed through its params.
+- `::opendaylight`: Main entry point to the module. All ODL knobs should be
+ managed through its params.
#### Private classes
-* `::opendaylight::params`: Contains default `opendaylight` class param values.
-* `::opendaylight::install`: Installs ODL from an RPM or tarball.
-* `::opendaylight::config`: Manages ODL config, including Karaf features and
-REST port.
-* `::opendaylight::service`: Starts the OpenDaylight service.
+- `::opendaylight::params`: Contains default `opendaylight` class param values.
+- `::opendaylight::install`: Installs ODL from an RPM or tarball.
+- `::opendaylight::config`: Manages ODL config, including Karaf features and
+ REST port.
+- `::opendaylight::service`: Starts the OpenDaylight service.
### `::opendaylight`
Valid options: A list of Karaf feature names as strings.
-##### `install_method `
+##### `install_method`
Specifies the install method by which to install OpenDaylight.
Valid options: The strings `'tarball'` or `'rpm'`.
-##### `odl_rest_port `
+##### `odl_rest_port`
Specifies the port for the ODL northbound REST interface to listen on.
Specifies the IPs that are part of the HA cluster enabled by `enable_ha`.
-Default: []
+Default: \[]
Valid options: An array of IP addresses `['10.10.10.1', '10.10.10.1', '10.10.10.3']`.
Required by: `enable_ha`, `ha_node_ips`
-
##### `tarball_url`
Specifies the ODL tarball to use when installing via the tarball install
## Limitations
-* Tested on Fedora 22, 23, CentOS 7 and Ubuntu 14.04.
-* CentOS 7 is currently the most stable OS option.
-* The RPM install method is likely more reliable than the tarball install
-method.
+- Tested on Fedora 22, 23, CentOS 7 and Ubuntu 14.04.
+- CentOS 7 is currently the most stable OS option.
+- The RPM install method is likely more reliable than the tarball install
+ method.
## Development
See the [CHANGELOG][15] or our [git tags][16] for information about releases.
See our [git commit history][17] for contributor information.
-
[1]: https://travis-ci.org/dfarrell07/puppet-opendaylight
+
[2]: https://gemnasium.com/dfarrell07/puppet-opendaylight
+
[4]: https://travis-ci.org/dfarrell07/puppet-opendaylight.svg
+
[5]: https://gemnasium.com/dfarrell07/puppet-opendaylight.svg
+
[7]: http://www.opendaylight.org/
+
[8]: https://github.com/dfarrell07/puppet-opendaylight/blob/master/CONTRIBUTING.markdown#issues
+
[9]: https://github.com/dfarrell07/opendaylight-systemd/
+
[10]: https://github.com/dfarrell07/puppet-opendaylight/blob/master/files/upstart.odl.conf
+
[11]: https://github.com/dfarrell07/vagrant-opendaylight/
+
[12]: https://github.com/dfarrell07/vagrant-opendaylight/tree/master/manifests
+
[13]: https://github.com/dfarrell07/puppet-opendaylight/issues/63
+
[14]: https://github.com/dfarrell07/puppet-opendaylight/blob/master/CONTRIBUTING.markdown
+
[15]: https://github.com/dfarrell07/puppet-opendaylight/blob/master/CHANGELOG
+
[16]: https://github.com/dfarrell07/puppet-opendaylight/releases
+
[17]: https://github.com/dfarrell07/puppet-opendaylight/commits/master
-[18]: http://cbs.centos.org/repos/nfv7-opendaylight-40-release/x86_64/os/Packages/ OpenDaylight Beryllium CentOS CBS repo
-[19]: https://wiki.opendaylight.org/view/Deployment#RPM OpenDaylight RPMs and their repos
+
+[18]: <http://cbs.centos.org/repos/nfv7-opendaylight-40-release/x86_64/os/Packages/> OpenDaylight Beryllium CentOS CBS repo
+[19]: <https://wiki.opendaylight.org/view/Deployment#RPM> OpenDaylight RPMs and their repos
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
-
# Re-map sync'd dir so it has the same name as the module
# Not doing this causes `puppet apply` to fail at catalog compile
config.vm.synced_folder ".", "/home/vagrant/puppet-opendaylight", type: "rsync"
<?xml version="1.0" encoding="UTF-8"?>
-<features name="jolokia-1.1.5" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0">
- <feature name='feature-jolokia' version='1.1.5' install="auto">
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="jolokia-1.1.5">
+ <feature name="feature-jolokia" version="1.1.5" install="auto">
<bundle>mvn:org.jolokia/jolokia-osgi/1.1.5</bundle>
</feature>
</features>
}
$odl_datastore = [
- '/opt/opendaylight/etc/opendaylight', '/opt/opendaylight/etc/opendaylight/datastore',
+ '/opt/opendaylight/etc/opendaylight',
+ '/opt/opendaylight/etc/opendaylight/datastore',
'/opt/opendaylight/etc/opendaylight/datastore/initial',
'/opt/opendaylight/etc/opendaylight/datastore/initial/config',
]
#
# === Parameters
# [*default_features*]
-# Features that should normally be installed by default, but can be overridden.
+# Features that should normally be installed by default, but can be
+# overridden.
# [*extra_features*]
# List of features to install in addition to the default ones.
# [*odl_rest_port *]
# [*odl_bind_ip *]
# IP for ODL northbound REST interface to bind to.
# [*install_method *]
-# How to install OpenDaylight. Current options are "rpm" and "tarball", default is RPM.
+# How to install OpenDaylight. Current options are "rpm" and "tarball",
+# default is RPM.
# [*rpm_repo*]
-# OpenDaylight CentOS CBS repo to install RPM from (opendaylight-4-testing, opendaylight-40-release, ...).
+# OpenDaylight CentOS CBS repo to install RPM from (opendaylight-4-testing,
+# opendaylight-40-release, ...).
# [*tarball_url*]
# If installing from a tarball, use this one. Defaults to latest ODL.
# [*unitfile_url*]
-# OpenDaylight .service file to use for tarball installs. Defaults to one used by ODL RPM.
+# OpenDaylight .service file to use for tarball installs. Defaults to one
+# used by ODL RPM.
# [*enable_l3*]
-# Enable or disable ODL OVSDB ML2 L3 forwarding. Valid: true, false, 'yes' and 'no'.
+# Enable or disable ODL OVSDB ML2 L3 forwarding. Valid: true, false, 'yes'
+# and 'no'.
# [*log_levels*]
# Custom OpenDaylight logger verbosity configuration (TRACE, DEBUG, INFO, WARN, ERROR).
# [*enable_ha*]
-# Enable or disable ODL OVSDB HA Clustering. Valid: true or false. Default: false.
+# Enable or disable ODL OVSDB HA Clustering. Valid: true or false.
+# Default: false.
# [*ha_node_ips*]
# Array of IPs for each node in the HA cluster.
# [*ha_node_index*]
{
- "name": "dfarrell07-opendaylight",
- "version": "3.7.2",
- "author": "Daniel Farrell",
- "summary": "Puppet module that installs and configures the OpenDaylight SDN controller",
- "license": "BSD-2-Clause",
- "source": "https://github.com/dfarrell07/puppet-opendaylight",
- "project_page": "https://github.com/dfarrell07/puppet-opendaylight",
- "issues_url": "https://github.com/dfarrell07/puppet-opendaylight/issues",
- "tags": [
- "OpenDaylight",
- "ODL",
- "SDN",
- "networking",
- "controller"
- ],
- "dependencies": [
- {
- "name": "puppetlabs-stdlib",
- "version_requirement": "4.x"
- },
- {
- "name": "camptocamp-archive",
- "version_requirement": "0.x"
- },
- {
- "name": "puppetlabs-java",
- "version_requirement": "1.x"
- }
- ],
- "operatingsystem_support": [
- {
- "operatingsystem": "RedHat",
- "operatingsystemrelease": [
- "7"
- ]
- },
- {
- "operatingsystem": "CentOS",
- "operatingsystemrelease": [
- "7"
- ]
- },
- {
- "operatingsystem": "Fedora",
- "operatingsystemrelease": [
- "22",
- "23"
- ]
- },
- {
- "operatingsystem": "Ubuntu",
- "operatingsystemrelease": [
- "14.04"
- ]
- }
- ],
- "requirements": [
- {
- "name": "puppet",
- "version_requirement": ">=3.4.0 <4.4.0"
- }
- ]
+ "name": "dfarrell07-opendaylight",
+ "version": "3.7.2",
+ "author": "Daniel Farrell",
+ "summary": "Puppet module that installs and configures the OpenDaylight SDN controller",
+ "license": "BSD-2-Clause",
+ "source": "https://github.com/dfarrell07/puppet-opendaylight",
+ "project_page": "https://github.com/dfarrell07/puppet-opendaylight",
+ "issues_url": "https://github.com/dfarrell07/puppet-opendaylight/issues",
+ "tags": [
+ "OpenDaylight",
+ "ODL",
+ "SDN",
+ "networking",
+ "controller"
+ ],
+ "dependencies": [
+ {
+ "name": "puppetlabs-stdlib",
+ "version_requirement": "4.x"
+ },
+ {
+ "name": "camptocamp-archive",
+ "version_requirement": "0.x"
+ },
+ {
+ "name": "puppetlabs-java",
+ "version_requirement": "1.x"
+ }
+ ],
+ "operatingsystem_support": [
+ {
+ "operatingsystem": "RedHat",
+ "operatingsystemrelease": [
+ "7"
+ ]
+ },
+ {
+ "operatingsystem": "CentOS",
+ "operatingsystemrelease": [
+ "7"
+ ]
+ },
+ {
+ "operatingsystem": "Fedora",
+ "operatingsystemrelease": [
+ "22",
+ "23"
+ ]
+ },
+ {
+ "operatingsystem": "Ubuntu",
+ "operatingsystemrelease": [
+ "14.04"
+ ]
+ }
+ ],
+ "requirements": [
+ {
+ "name": "puppet",
+ "version_requirement": ">=3.4.0 <4.4.0"
+ }
+ ]
}
+---
HOSTS:
centos-7-docker:
roles:
+---
HOSTS:
centos-7:
roles:
+---
HOSTS:
centos-7:
roles:
+---
HOSTS:
fedora-22:
roles:
+---
HOSTS:
fedora-23-docker:
roles:
+---
HOSTS:
fedora-23:
roles:
+---
HOSTS:
ubuntu-1404-docker:
platform: ubuntu-14.04-x64
+---
HOSTS:
ubuntu-1404:
roles: