cookbook 'drone', '= 3.5.0'
drone
(37) Versions
3.5.0
-
Follow7
Installs/Configures Drone
cookbook 'drone', '= 3.5.0', :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']['repo'] |
Docker repo to pull Drone from | String | 'drone/drone' |
node['drone']['version'] |
Version of Drone | String | '0.4' |
node['drone']['port'] |
Host port to bind drone to | Integer | 80 |
node['drone']['vault']['bag'] |
Name of vault with secrets | String |
'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. |
node['drone']['disable_repo_activation'] |
Block ability to activate new repos through reverse proxy. Useful for trying to stop people from using an old Drone env. | Boolean | false |
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.5.0
- Allow specifying host port to bind Drone to with
node['drone']['port']
v3.4.0
- Allow setting drone container to use with
node['drone']['repo']
. Default isdrone/drone
which is what was previously hardcoded.
v3.3.0
- Allow setting node attributes
node['drone']['repo_activation_org_whitelist']
to whitelist orgs for repo activation whennode['drone']['disable_repo_activation']
is set totrue
v3.2.0
- Allow setting node attribute
node['drone']['disable_repo_activation']
to disable ability to activate new repos
v3.1.3
- Update to work with Drone 0.5 new server <> agent commication protocol
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.5.0 passed this metric
Foodcritic Metric
3.5.0 passed this metric
License Metric
3.5.0 passed this metric
3.5.0 passed this metric
3.5.0 passed this metric
License Metric
3.5.0 passed this metric
3.5.0 passed this metric