.project
.vscode
-
+# Rubocop
+.rubocop_todo.yml
Style/SpaceBeforeFirstArg:
Enabled: false
Style/TrailingCommaInLiteral:
- EnforcedStyleForMultiline: comma
+ EnforcedStyleForMultiline: consistent_comma
Style/WordArray:
Enabled: false
# limitations under the License.
#
-# for ver. 3.x
-#source 'https://gpm00.grid.example.com:6280'
source 'https://supermarket.chef.io'
metadata
# docker-grid CHANGELOG
+0.3.9
+-----
+- adds the Debian 9 (stretch) support.
+- adds the `docker_images_cleanup` script.
+- adds the Concourse pipeline configuration.
+
0.3.8
-----
- supports the latest Docker engine (17.03.1.ce-1, 17.03.1~ce-0).
### platforms
- CentOS, Red Hat Enterprise Linux >= 7.2 (in baremetal or LXD (Ubuntu >= 14.04))
+- Debian >= 9.0
- Ubuntu >= 14.04 (in baremetal or LXD (Ubuntu >= 14.04))
### packages
|Key|Type|Description, example|Default|
|:--|:--|:--|:--|
|`['docker-grid']['install_flavor']`|String|`'dockerproject'` or `'os-repository'`|`'dockerproject'`|
+|`['docker-grid']['dockerproject']['package_name']`|String||`'docker-engine'`|
|`['docker-grid']['apt_repo']['url']`|String||`'https://apt.dockerproject.org/repo'`|
|`['docker-grid']['apt_repo']['keyserver']`|String||`'hkp://p80.pool.sks-keyservers.net:80'`|
|`['docker-grid']['apt_repo']['recv-keys']`|String||`'58118E89F3A912897C070ADBF76221572C52609D'`|
|`['docker-grid']['compose']['app_dir']`|String||`"#{node['docker-grid']['compose']['home_dir']}/app`|
|`['docker-grid']['engine']['skip_setup']`|Boolean||`false`|
|`['docker-grid']['engine']['version_on_centos']`|String|Docker version for CentOS.|`'1.11.2-1'`|
+|`['docker-grid']['engine']['version_on_debian']`|String|Docker version for Debian.|`'17.03.1~ce-0'`|
|`['docker-grid']['engine']['version_on_ubuntu']`|String|Docker version for Ubuntu.|`'1.11.2-0'`|
|`['docker-grid']['engine']['version']`|String|Docker 1.9.x - 1.11.x is recommended for stability reasons. Note: this **default** value is overwritten by the `version_on_{centos or ubuntu}`.|See default.rb|
|`['docker-grid']['engine']['storage-driver_on_centos']`|String|Docker storage driver (overlay, devicemapper, ...) for CentOS.|`'overlay'`|
+|`['docker-grid']['engine']['storage-driver_on_debian']`|String|Docker storage driver (aufs, overlay, ...) for Debian.|`'overlay2'`|
|`['docker-grid']['engine']['storage-driver_on_ubuntu']`|String|Docker storage driver (aufs, overlay, ...) for Ubuntu.|`'aufs'`|
|`['docker-grid']['engine']['storage-driver']`|String||See default.rb|
|`['docker-grid']['engine']['userns-remap']`|String|e.g. `'default'` (`dockremap` user/group) or your specified user/group name. Note: it is available in Docker 1.10/later and (Ubuntu or RHEL family 7.2/later).|`nil` (inactive)|
'docker-grid' => {
'install_flavor' => 'dockerproject',
'engine' => {
- 'version_on_centos' => '1.11.2-1',
- 'version_on_ubuntu' => '1.11.2-0',
+ 'version_on_centos' => '17.03.1.ce-1',
+ 'version_on_debian' => '17.03.1~ce-0',
+ 'version_on_ubuntu' => '17.03.1~ce-0',
'storage-driver_on_centos' => 'overlay',
- 'storage-driver_on_ubuntu' => 'overlay', # default: 'aufs'
+ 'storage-driver_on_debian' => 'overlay2',
+ 'storage-driver_on_ubuntu' => 'overlay2', # default: 'aufs'
#'userns-remap' => 'default', # default: nil (inactive)
'daemon_extra_options' => '-H fd:// --bip=192.168.128.1/24 --fixed-cidr=192.168.128.0/24',
},
override_attributes(
'docker-grid' => {
'engine' => {
- 'version_on_centos' => '1.11.2-1',
- 'version_on_ubuntu' => '1.11.2-0',
+ 'version_on_centos' => '17.03.1.ce-1',
+ 'version_on_debian' => '17.03.1~ce-0',
+ 'version_on_ubuntu' => '17.03.1~ce-0',
'storage-driver_on_centos' => 'overlay',
- 'storage-driver_on_ubuntu' => 'overlay', # default: 'aufs'
+ 'storage-driver_on_debian' => 'overlay2',
+ 'storage-driver_on_ubuntu' => 'overlay2', # default: 'aufs'
'userns-remap' => '',
'daemon_extra_options' => \
'-H fd:// --bip=192.168.128.1/24 --fixed-cidr=192.168.128.0/24', \
override_attributes(
'docker-grid' => {
'engine' => {
- 'version_on_centos' => '1.11.2-1',
- 'version_on_ubuntu' => '1.11.2-0',
+ 'version_on_centos' => '17.03.1.ce-1',
+ 'version_on_debian' => '17.03.1~ce-0',
+ 'version_on_ubuntu' => '17.03.1~ce-0',
'storage-driver_on_centos' => 'overlay',
- 'storage-driver_on_ubuntu' => 'overlay', # default: 'aufs'
+ 'storage-driver_on_debian' => 'overlay2',
+ 'storage-driver_on_ubuntu' => 'overlay2', # default: 'aufs'
'userns-remap' => '',
'daemon_extra_options' => \
'-H fd:// --bip=192.168.128.1/24 --fixed-cidr=192.168.128.0/24',
'REGISTRY_AUTH' => 'htpasswd',
'REGISTRY_AUTH_HTPASSWD_PATH' => '/auth/htpasswd',
'REGISTRY_AUTH_HTPASSWD_REALM' => 'Registry Realm',
+ # proxy cache
+ #'REGISTRY_PROXY_REMOTEURL' => 'https://registry-1.docker.io',
},
'volumes' => [
# Volumes for the server certificate and key files will be set automatically.
override_attributes(
'docker-grid' => {
'engine' => {
- 'version_on_centos' => '1.11.2-1',
- 'version_on_ubuntu' => '1.11.2-0',
+ 'version_on_centos' => '17.03.1.ce-1',
+ 'version_on_debian' => '17.03.1~ce-0',
+ 'version_on_ubuntu' => '17.03.1~ce-0',
'storage-driver_on_centos' => 'overlay',
- 'storage-driver_on_ubuntu' => 'overlay', # default: 'aufs'
+ 'storage-driver_on_debian' => 'overlay2',
+ 'storage-driver_on_ubuntu' => 'overlay2', # default: 'aufs'
'userns-remap' => '',
'daemon_extra_options' => \
'-H fd:// --bip=192.168.128.1/24 --fixed-cidr=192.168.128.0/24', \
namespace :style do
desc 'Run Ruby style checks'
- RuboCop::RakeTask.new(:ruby)
+ RuboCop::RakeTask.new(:ruby) do |t|
+ t.options = [
+ '--auto-gen-config', # creates .rubocop_todo.yml
+ ]
+ end
desc 'Run Chef style checks'
FoodCritic::Rake::LintTask.new(:chef) do |t|
Stove::RakeTask.new(:publish) do |t|
t.stove_opts = [
'--no-git',
+ '--log-level', 'info',
]
end
#
default['docker-grid']['install_flavor'] = 'dockerproject' # or 'os-repository'
+default['docker-grid']['dockerproject']['package_name'] = 'docker-engine'
default['docker-grid']['apt_repo'] = {
'url' => 'https://apt.dockerproject.org/repo',
'keyserver' => 'hkp://p80.pool.sks-keyservers.net:80',
# http://mirror.centos.org/centos/7.3.1611/extras/x86_64/Packages/
default['docker-grid']['engine']['version_on_centos'] = '1.11.2-1'
# dockerproject: 17.03.1~ce-0, 1.13.1-0, 1.12.6-0, 1.11.2-0
+default['docker-grid']['engine']['version_on_debian'] = '17.03.1~ce-0'
# os-repository: http://packages.ubuntu.com/search?keywords=docker.io&searchon=names
default['docker-grid']['engine']['version_on_ubuntu'] = '1.11.2-0'
case node['platform']
when 'centos', 'redhat'
version_on_centos = "#{node['docker-grid']['engine']['version_on_centos']}.el#{node['platform_version'].to_i}.#{node['platform']}"
+when 'debian'
+ version_on_debian = \
+ if node['docker-grid']['install_flavor'] == 'dockerproject'
+ if Gem::Version.create(node['docker-grid']['engine']['version_on_debian'].tr('~', '-')) >= Gem::Version.create('1.12.4-0')
+ "#{node['docker-grid']['engine']['version_on_debian']}~debian-#{node['lsb']['codename']}"
+ else
+ "#{node['docker-grid']['engine']['version_on_debian']}~#{node['lsb']['codename']}"
+ end
+ else
+ node['docker-grid']['engine']['version_on_debian']
+ end
when 'ubuntu'
version_on_ubuntu = \
if node['docker-grid']['install_flavor'] == 'dockerproject'
['centos', 'redhat'] => {
'default' => version_on_centos,
},
+ 'debian' => {
+ 'default' => version_on_debian,
+ },
'ubuntu' => {
'default' => version_on_ubuntu,
}
)
# overlay2: Docker >= 1.12, Kernel >= 4.0
default['docker-grid']['engine']['storage-driver_on_centos'] = 'overlay'
+default['docker-grid']['engine']['storage-driver_on_debian'] = 'overlay2'
default['docker-grid']['engine']['storage-driver_on_ubuntu'] = 'aufs'
default['docker-grid']['engine']['storage-driver'] = node.value_for_platform(
['centos', 'redhat'] => {
'default' => node['docker-grid']['engine']['storage-driver_on_centos'],
},
+ 'debian' => {
+ 'default' => node['docker-grid']['engine']['storage-driver_on_debian'],
+ },
'ubuntu' => {
'default' => node['docker-grid']['engine']['storage-driver_on_ubuntu'],
}
source:
uri: git://git.osdn.net/gitroot/metasearch/grid-chef-repo.git
branch: master
+ paths:
+ - cookbooks/((cookbook-name))
- name: chefdk-cache
type: docker-image
source:
- name: build-cookbook
plan:
- get: src-git
- trigger: false
+ trigger: true
- get: chefdk-cache
- task: ci-build
image: chefdk-cache
license 'Apache 2.0'
description 'Installs/Configures Docker Engine.'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
-version '0.3.8'
+version '0.3.9'
source_url 'http://scm.osdn.jp/gitroot/metasearch/grid-chef-repo.git'
issues_url 'https://osdn.jp/projects/metasearch/ticket'
supports os, '>= 7.2'
end
+supports 'debian', '>= 9.0'
supports 'ubuntu', '>= 14.04'
depends 'platform_utils', '>= 0.4.4'
# https://dcos.io/docs/1.8/administration/installing/custom/system-requirements/
+platform = node['platform']
+platform_version = node['platform_version']
+
if node['docker-grid']['engine']['skip_setup']
log 'Skip the Docker Engine setup.'
return
end
end
when 'debian'
+ # https://docs.docker.com/engine/installation/linux/debian/
# https://docs.docker.com/engine/installation/linux/ubuntulinux/
pkgs = [
'apt-transport-https',
'ca-certificates',
+ 'curl',
+ 'gnupg2',
+ 'software-properties-common',
]
if storage_driver == 'aufs' \
&& !container_guest_node?
- pkgs += [
- "linux-image-extra-#{node['os_version']}",
- 'linux-image-extra-virtual',
- ]
+ if platform == 'debian'
+ pkgs += [
+ 'aufs-dkms',
+ ]
+ elsif platform == 'ubuntu'
+ pkgs += [
+ "linux-image-extra-#{node['os_version']}",
+ 'linux-image-extra-virtual',
+ ]
+ end
end
pkgs.each {|pkg|
if node['docker-grid']['install_flavor'] == 'dockerproject'
pkg_name_removed = 'docker.io'
- pkg_name = 'docker-engine'
+ pkg_name = node['docker-grid']['dockerproject']['package_name']
apt_repo_config = node['docker-grid']['apt_repo']
bash 'apt-key_adv_docker_tools_key' do
end
else
# OS distribution
- pkg_name_removed = 'docker-engine'
+ pkg_name_removed = node['docker-grid']['dockerproject']['package_name']
pkg_name = 'docker.io'
end
resources(package: pkg_name) rescue package pkg_name do
action :install
- options '--allow-downgrades' if node['platform_version'] >= '16.04' # LTS (xenial)
- options '--force-yes' if node['platform_version'] == '14.04' # LTS (trusty)
+ options '--allow-downgrades' if platform == 'debian' || platform_version >= '16.04' # LTS (xenial)
+ options '--force-yes' if platform_version == '14.04' # LTS (trusty)
version docker_ver unless docker_ver.empty?
notifies :run, 'bash[clean_up_docker0_bridge]', :before
end
extra_options = node['docker-grid']['engine']['daemon_extra_options']
# for docker-engine package on RHEL: remove '-H fd://'
# https://github.com/docker/docker/issues/22847
-if (node['platform_family'] == 'rhel' || node['platform_version'] == '14.04') \
+if (node['platform_family'] == 'rhel' || platform == 'debian' || platform_version == '14.04') \
&& !docker_ver.empty? && Gem::Version.create(docker_ver.tr('~', '-')) >= Gem::Version.create('1.12')
extra_options.gsub!(%r{-H\sfd://}, '')
end
end
service 'docker' do
- provider Chef::Provider::Service::Upstart if node['platform'] == 'ubuntu' && node['platform_version'] < '15.04'
+ provider Chef::Provider::Service::Upstart if platform == 'ubuntu' && platform_version < '15.04'
action [:start, :enable]
subscribes :restart, 'execute[update-ca-certificates]', :delayed
end
action :create
append true
end
+
+template '/usr/local/bin/docker_images_cleanup' do
+ source 'usr/local/bin/docker_images_cleanup'
+ owner 'root'
+ group 'root'
+ mode '0755'
+ action :create
+end
<%
+platform = node['platform']
override_apt_line = node['docker-grid']['apt_repo']['override_apt_line']
if !override_apt_line.nil? && !override_apt_line.empty?
-%>
<%= override_apt_line %>
<%
else
--%>
+ if platform == 'debian'
+-%>
+#deb [arch=amd64] https://download.docker.com/linux/debian <%= node['lsb']['codename'] %> stable
+deb <%= node['docker-grid']['apt_repo']['url'] %> debian-<%= node['lsb']['codename'] %> main
+<%
+ elsif platform == 'ubuntu'
+-%>
deb <%= node['docker-grid']['apt_repo']['url'] %> ubuntu-<%= node['lsb']['codename'] %> main
<%
+ end
end
-%>
--- /dev/null
+#!/bin/sh\r
+\r
+docker images | awk '$2=="<none>" {print $3}' | xargs --no-run-if-empty docker rmi\r