cookbook 'gerrit', '~> 0.3.0'
The gerrit cookbook has been deprecated
Author provided reason for deprecation:
The gerrit cookbook has been deprecated and is no longer being maintained by its authors. Use of the gerrit cookbook is no longer recommended.
gerrit (1) Versions 0.3.0 Follow5
Installs/Configures gerrit
cookbook 'gerrit', '~> 0.3.0', :supermarket
knife supermarket install gerrit
knife supermarket download gerrit
Note: This cookbook is still a work in progress!
Description
Installs the Gerrit review system. Optional support for MySQL database and Apache2 as proxy server is included.
Requirements
Platform:
- Debian 6.0 and 7.0
- other platforms untested
Cookbooks:
- build-essential
- mysql
- database
- java
- git
- maven
- apache2
- ssl_certificates
- Optional: git-daemon
Attributes
These attributes are set by the cookbook by default.
Deployment
-
node['gerrit']['flavor']
- Installation type, eitherwar
orsource
.war
downloads the.war
file fromdownload_url
.source
checks out the git repositoryrepository
and builds it using Maven. Please note that thesource
flavor is absolutely not recommended for production use. Building Gerrit will cause severe load on your server! -
node['gerrit']['version']
- Gerrit version to deploy. -
node['gerrit']['download_url']
- URL to download the.war
file from. Defaults tohttp://gerrit.googlecode.com/files/gerrit-#{node['gerrit']['version']}.war
-
node['gerrit']['repository']
- Git repository containing the Gerrit source code. Defaults tohttps://gerrit.googlesource.com/gerrit
. -
node['gerrit']['reference']
- Git revision or branch name to checkout.
User and path setup
-
node['gerrit']['user']
- User, under which Gerrit runs (container.user). Defaults togerrit
. -
node['gerrit']['group']
- Group name of thegerrit
user. Defaults togerrit
. -
node['gerrit']['home']
- Home directory of thegerrit
user. Defaults to/var/gerrit
. -
node['gerrit']['install_dir']
- Directory, where Gerrit is installed into. Defaults tonode['gerrit']['home']/review
.
HTTP and friends
-
node['gerrit']['hostname']
- The default hostname for Gerrit to be accessed through. Defaults tofqdn
. -
node['gerrit']['canonicalWebUrl']
- The default URL for Gerrit to be accessed through. Typically this would be set to "http://review.example.com/" or "http://example.com/gerrit/" so Gerrit can output links that point back to itself. (gerrit.canonicalWebUrl). Defaults tohttp://#{node['fqdn']}/
. connections on (sshd.listenAddress). -
node['gerrit']['canonicalGitUrl']
- The URL under which the repositories are available through the Git protocol (gerrit.canonicalGitUrl). Has to include the protocol (git://
). As Gerrit does not support the Git protocol, such a server has to be managed through another cookbook, e.g. git-daemon. -
node['gerrit']['proxy']
- Enable Apache2 reverse proxy in front of Gerrit. Defaults totrue
, which makes Gerrit available on port 80. -
node['gerrit']['ssl']
- Enable SSL for the reverse proxy. Defaults tofalse
. -
node['gerrit']['ssl_certificate']
- Makes use of the ssl_certificates, to use a certain SSL certificate. An entry in thessl_certificates
data bag matching the given name must exist. Defaults tonil
, which results in snakeoil certificates being used.
SSHD
-
node['gerrit']['port']
- Specifies the local addresses the internal SSHD should listen for
Database configuration
-
node['gerrit']['database']['type']
- Type of database server to connect to (database.type). Defaults toMYSQL
. -
node['gerrit']['database']['hostname']
- Hostname of the database server (database.hostname). Defaults tolocalhost
. node['gerrit']['database']['name']
- ForPOSTGRESQL
orMYSQL
, the name of the database on the server. ForH2
, this is the path to the database, and if not absolute is relative to$site_path
(database.database). Defaults togerrit
.node['gerrit']['database']['username']
- Username to connect to the database server as (database.username). Defaults togerrit
.node['gerrit']['database']['password']
- Password to authenticate to the database server with (database.password). Defaults togerrit
.
Theme
-
node['gerrit']['theme']['compile_files]
- Hash of files deployed toetc/
. Possible file names areGerritSite(Header|Footer).html
andGerritSite.css
. See Gerrit docs. Gerrit will automatically reload these files, as long as not deactivated explicitly. -
node['gerrit']['static_files']
- Hash of files deployed tostatic/
. Files, which can be used in a custom theme and are available through#{node['gerrit']['canonicalWebUrl']}/static/
. See Gerrit docs.
Recipes
default
Sets up Gerrit. Includes other recipes, if needed (no need to add them to your run list on your own).
mysql
Configures the MySQL server, if node['gerrit']['database']['type'] == "MYSQL"
.
proxy
Installs Apache2 as reverse proxy in front of Gerrit, if enabled through node['gerrit']['proxy']
. This also binds Gerrit's HTTPD to localhost
on port 8080.
HTTPS support is available, if node['gerrit']['proxy']
is set.
peer_keys
Deploys an SSH key-pair for the magic Gerrit Code Review user. See suexec and File etc/peer_keys.
Intended to be used in scripts.
source
Checks out the Git repository configured in node['gerrit']['repository']
and runs the tools/release.sh
script, which builds Gerrit. Note: This is not intended for production use, but might be useful while developing Gerrit!
Usage
Create a role for the Gerrit server. See above for attributes that can be entered here.
% cat roles/gerrit.rb
name 'gerrit'
description 'A Gerrit server'
run_list(
'recipe[gerrit]',
'recipe[git-daemon]'
)
override_attributes(
'gerrit' => {
'version' => 'full-2.5.0',
}
)
Using the git-daemon
cookbook is suggested, if you want to make your repositories available also through the Git protocol. Gerrit itself only supports SSH and HTTP(S).
Deployment Process
war
When flavor
war
is specified, the .war
file is downloaded into node['gerrit']['install_dir']/war
.. This triggers to run java -jar gerrit.war init -d /path/to/gerrit
, which initializes the Gerrit installation.
source
When the Git repository changes, a new build through Gerrit's tools/release.sh
is triggered and created through Maven. Afterwards, the resulting .war
file is processed as described above for war
deplyoment.
Upgrading Gerrit
A new Gerrit version is installed, as soon as a new .war
file is available through one of the methods described above.
The init
command is called automatically and if schema migrations have to be made, they are executed automatically.
License and Author
Author:: Steffen Gebert (steffen.gebert@typo3.org)
Copyright:: 2012, Steffen Gebert / TYPO3 Association
Licensed under the Apache License, Version 2.0 (the 'License');
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an 'AS IS' BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Dependent cookbooks
build-essential >= 0.0.0 |
database >= 0.0.0 |
mysql >= 0.0.0 |
java >= 0.0.0 |
git >= 0.0.0 |
maven >= 0.0.0 |
apache2 >= 0.0.0 |
ssl_certificates >= 0.0.0 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
Collaborator Number Metric
0.3.0 failed this metric
Failure: Cookbook has 1 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
0.3.0 failed this metric
FC064: Ensure issues_url is set in metadata: gerrit/metadata.rb:1
FC065: Ensure source_url is set in metadata: gerrit/metadata.rb:1
FC066: Ensure chef_version is set in metadata: gerrit/metadata.rb:1
FC069: Ensure standardized license defined in metadata: gerrit/metadata.rb:1
FC121: Cookbook depends on cookbook made obsolete by Chef 14: gerrit/metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: gerrit/recipes/mysql.rb:21
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
0.3.0 passed this metric
Testing File Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.3.0 failed this metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
0.3.0 failed this metric
FC064: Ensure issues_url is set in metadata: gerrit/metadata.rb:1
FC065: Ensure source_url is set in metadata: gerrit/metadata.rb:1
FC066: Ensure chef_version is set in metadata: gerrit/metadata.rb:1
FC069: Ensure standardized license defined in metadata: gerrit/metadata.rb:1
FC121: Cookbook depends on cookbook made obsolete by Chef 14: gerrit/metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: gerrit/recipes/mysql.rb:21
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
0.3.0 passed this metric
Testing File Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.3.0 failed this metric
FC065: Ensure source_url is set in metadata: gerrit/metadata.rb:1
FC066: Ensure chef_version is set in metadata: gerrit/metadata.rb:1
FC069: Ensure standardized license defined in metadata: gerrit/metadata.rb:1
FC121: Cookbook depends on cookbook made obsolete by Chef 14: gerrit/metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: gerrit/recipes/mysql.rb:21
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
0.3.0 passed this metric
Testing File Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.3.0 failed this metric
0.3.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number