cookbook 'drone', '= 3.1.2'
drone
(37) Versions
3.1.2
-
Follow7
Installs/Configures Drone
cookbook 'drone', '= 3.1.2', :supermarket
knife supermarket install drone
knife supermarket download drone
Drone cookbook
Installs Drone, a CI server built on Docker.
More information also @ http://readme.drone.io.
Requirements
Chef
- Chef 12+
Platforms
This cookbook is tested against:
- Ubuntu 15.10
- Ubuntu 16.04
- CentOS 7.x
...but it might work on other platforms.
If installing and managing docker with this cookbook only version 1.11+ is supported.
Usage
Recipes
drone::default
Installs the drone server.
Include recipe[drone::default]
in your run list.
drone::reverse_proxy
Fronts drone server with a reverse_proxy using nginx for HTTPS.
Include recipe[drone::reverse_proxy]
in your run list.
drone::worker
Installs and sets up the drone worker. For use with Drone <= 0.4
Basically installs docker and exposes the socket over TCP for the Drone server to send builds to.
Include recipe[drone::worker]
in your run list.
drone::agent
Installs and sets up the drone agent. For use with Drone >= 0.5
Include recipe[drone::agent]
in your run list.
Attributes
For Drone ENV config settings see:
* http://readme.drone.io/setup/overview/#configure - Drone 0.4
* http://readme.drone.io/0.5/manage/server/ - Drone 0.5
Attribute | Description | Type | Default |
---|---|---|---|
node['drone']['version'] |
Version of Drone | String | Default is '0.4' . Tested some also with '0.5'
|
node['drone']['vault']['bag'] |
Name of vault with secrets | String | Default is 'vault_drone' . See Vault section below. |
node['drone']['config'] |
Hash of Drone ENV configuration options | Hash | See Configuration section below. |
node['drone']['agent']['config'] |
Hash of configuration options for Drone Agent | Hash | See Configuration section below. |
Configuration
The configuration in Drone 0.4.0 changed from TOML to BASH RC file.
The minimum required attribute is to set following tokens for your "remote" driver (gitlab, github, etc..)
node['drone']['config']['oauth_client']
node['drone']['config']['oauth_secret']
See the drone documentations and attributes/default.rb
for more options.
Vault
For drone::reverse_proxy
you need:
* [certs](test/integration/data_bags/vault_drone/certs.json)
Other optional items include:
* drone_secret
* drone_github_client
* drone_github_secret
* database_config
Docker
See attributes/docker.rb
for more options.
Note: There is no ability to control docker version on RHEL based platforms.
Testing
- Linting - Rubocop and Foodcritic
- Spec - ChefSpec
- Integration - Test Kitchen
Testing requires ChefDK be installed using it's native gems.
gem install docker-api
foodcritic -f any -X spec .
rubocop
rspec --color --format progress
If you run into issues testing please first remove any additional gems you may
have installed into your ChefDK environment. Extra gems can be found and removed
at ~/.chefdk/gem
.
Dependent cookbooks
chef-vault ~> 1.3 |
docker ~> 2.9 |
chef_nginx ~> 2.9 |
ssl_certificate ~> 1.12 |
Contingent cookbooks
Drone Cookbook Changelog
v3.1.2
- For newer version of Docker need to use new resource in docker cookbook for installing while specifying a version
v3.1.1
- Fix reverse proxy for Drone 0.5
v3.1.0
- Add ability to set docker daemon logging level
v3.0.2
- Allow bypassing loading secrets on chef-vault failure (permissions)
v3.0.1
- Fix allowing user to specify docker version
v3.0.0
- BREAKING CHANGE (maybe): No longer pin version of docker to install by default. You still can do it if you want manually though.
v2.5.0
- Support for CentOS 7.x
v2.4.0
- Remove DEPRECATED drone token secrets management items
- Added drone_secret support
v2.3.0
- Allow drone_github_client to be in a Vault
v2.2.0
- Attributize logging for Drone containers
v2.1.0
- Allow specifying version of drone to use
- Added
drone::agent
recipe for installing Drone 0.5 agent - Added ability to apply secrets
drone_agent_secret
,drone_token
,drone_github_secret
anddatabase_config
from vault
v2.0.0
- BREAKING CHANGE: Move Drone app config items to
node['drone']['config']
- BREAKING CHANGE: Removed package install method as it's not supported
- Added
drone::reverse_proxy
recipe to be able to front Drone with HTTPS via a reverse proxy - Added
drone::worker
recipe to be able to create additional systems to run drone builds on - Version bump on docker community cookbook
- Make
docker_container
resource sensitive to prevent displaying secrets passed through ENV to drone
v1.0.0
- BREAKING CHANGE: Use drone containers rather then installing drone package by default
- Add ability to deploy drone using drone docker container
v0.7.7
- Uses docker version from attributes (default 1.8.3)
- Specify docker tls certs or use self-generated
v0.7.0
- Deploy Drone v0.4.0 (a dev branch)
- Add dronerc template
- Add docker recipe to install docker from cookbook
- Add update recipe to update docker images
- For integrations generates docker self-signed certs
v0.6.0
- Docker can now be disabled (Graham Weldon)
- Fix
registration
option - moving to each VCS config (Graham Weldon) - Extend / improve README documentation
v0.5.0
- Configure Drone with TOML (Graham Weldon)
- Use new Drone package URL (Ke Zhu)
v0.4.0
- Add Apache 2.0 license
- Fix options being passed to droned (Ross Timson)
- Numerous development/test improvements (Ross Timson)
v0.3.1
- Settable drone_tmp (Eric Buth)
v0.2.0
- Add ability to specify custom drone options (Brint O'Hearn)
v0.1.0
- Initial Drone cookbook (Justin Campbell)
Collaborator Number Metric
3.1.2 passed this metric
Foodcritic Metric
3.1.2 passed this metric
3.1.2 passed this metric
3.1.2 passed this metric