]> git.openstreetmap.org Git - chef.git/commitdiff
Add basic docker cookbook
authorGrant Slater <git@firefishy.com>
Sun, 22 Mar 2020 23:15:41 +0000 (23:15 +0000)
committerGrant Slater <git@firefishy.com>
Sun, 22 Mar 2020 23:15:41 +0000 (23:15 +0000)
cookbooks/apt/recipes/default.rb
cookbooks/docker/attributes/default.rb [new file with mode: 0644]
cookbooks/docker/metadata.rb [new file with mode: 0644]
cookbooks/docker/recipes/default.rb [new file with mode: 0644]
cookbooks/docker/templates/default/daemon.json.erb [new file with mode: 0644]

index 0bbe8ea9432bdb97cd8af24d2d1ad91087fc7dd5..fe79213c098dd166cd284a8ab6a71fad06794357 100644 (file)
@@ -161,6 +161,14 @@ apt_repository "mediawiki" do
   key "AF380A3036A03444"
 end
 
+apt_repository "docker" do
+  action repository_actions["docker"]
+  uri "https://download.docker.com/linux/ubuntu"
+  arch "amd64"
+  components ["stable"]
+  key "https://download.docker.com/linux/ubuntu/gpg"
+end
+
 package "unattended-upgrades"
 
 if Dir.exist?("/usr/share/unattended-upgrades")
diff --git a/cookbooks/docker/attributes/default.rb b/cookbooks/docker/attributes/default.rb
new file mode 100644 (file)
index 0000000..f71e326
--- /dev/null
@@ -0,0 +1,2 @@
+# Add the docker APT source
+default[:apt][:sources] = node[:apt][:sources] | ["docker"]
diff --git a/cookbooks/docker/metadata.rb b/cookbooks/docker/metadata.rb
new file mode 100644 (file)
index 0000000..0c9cc86
--- /dev/null
@@ -0,0 +1,8 @@
+name              "docker"
+maintainer        "OpenStreetMap Administrators"
+maintainer_email  "admins@openstreetmap.org"
+license           "Apache-2.0"
+description       "Installs and configures the docker daemon"
+
+version           "1.0.0"
+supports          "ubuntu"
diff --git a/cookbooks/docker/recipes/default.rb b/cookbooks/docker/recipes/default.rb
new file mode 100644 (file)
index 0000000..fd37736
--- /dev/null
@@ -0,0 +1,44 @@
+#
+# Cookbook:: docker
+# Recipe:: default
+#
+# Copyright:: 2020, OpenStreetMap Foundation
+#
+# 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
+#
+#     https://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.
+#
+
+package %w[
+  apt-transport-https
+  ca-certificates
+  curl
+  software-properties-common
+  gnupg2
+]
+
+template "/etc/docker/daemon.json" do
+  source "daemon.json.erb"
+  owner "root"
+  group "root"
+  mode 0o644
+end
+
+package %w[
+  docker-ce
+  docker-ce-cli
+  containerd.io
+]
+
+service "docker" do
+  action [:enable, :start]
+  subscribes :restart, "template[/etc/docker/daemon.json]"
+end
diff --git a/cookbooks/docker/templates/default/daemon.json.erb b/cookbooks/docker/templates/default/daemon.json.erb
new file mode 100644 (file)
index 0000000..5d18abc
--- /dev/null
@@ -0,0 +1,8 @@
+{
+  "exec-opts": ["native.cgroupdriver=systemd"],
+  "log-driver": "json-file",
+  "log-opts": {
+    "max-size": "100m"
+  },
+  "storage-driver": "overlay2"
+}