OSDN Git Service

adds the `kubernetes-grid::gp-node` recipe. kubernetes-grid-0.1.1
authorwhitestar <whitestar@gaea.test>
Fri, 27 Jan 2017 13:12:36 +0000 (22:12 +0900)
committerwhitestar <whitestar@gaea.test>
Fri, 27 Jan 2017 13:12:36 +0000 (22:12 +0900)
cookbooks/kubernetes-grid/CHANGELOG.md
cookbooks/kubernetes-grid/README.md
cookbooks/kubernetes-grid/metadata.rb
cookbooks/kubernetes-grid/recipes/gp-node.rb [new file with mode: 0644]
cookbooks/kubernetes-grid/recipes/node-commons.rb
nodes/local-kube-gp-node.json [new file with mode: 0644]
roles/kube-gp-node.rb [new file with mode: 0644]
roles/kube.rb [new file with mode: 0644]

index 6d24a6f..f3d3ded 100644 (file)
@@ -1,5 +1,9 @@
 # kubernetes-grid CHANGELOG
 
+0.1.1
+-----
+- adds the `kubernetes-grid::gp-node` recipe.
+
 0.1.0
 -----
 - Initial release of kubernetes-grid
index b986b11..86e0336 100644 (file)
@@ -50,6 +50,10 @@ This cookbook sets up Kubernetes cluster.
 
 This recipe does nothing.
 
+#### kubernetes-grid::gp-node
+
+This recipe sets up a general-purpose (GP) node (master or worker).
+
 #### kubernetes-grid::master
 
 This recipe sets up a master node.
index 002e2dd..d7817a2 100644 (file)
@@ -5,7 +5,7 @@ maintainer_email ''
 license          'Apache 2.0'
 description      'Installs/Configures Kubernetes'
 long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
-version          '0.1.0'
+version          '0.1.1'
 
 source_url       'http://scm.osdn.jp/gitroot/metasearch/grid-chef-repo.git'
 issues_url       'https://osdn.jp/projects/metasearch/ticket'
diff --git a/cookbooks/kubernetes-grid/recipes/gp-node.rb b/cookbooks/kubernetes-grid/recipes/gp-node.rb
new file mode 100644 (file)
index 0000000..7c1c51e
--- /dev/null
@@ -0,0 +1,23 @@
+#
+# Cookbook Name:: kubernetes-grid
+# Recipe:: gp-node
+#
+# Copyright 2017, whitestar
+#
+# 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.
+#
+
+# http://kubernetes.io/docs/getting-started-guides/kubeadm/
+
+include_recipe 'kubernetes-grid::master'
+include_recipe 'kubernetes-grid::node'
index 20cc364..51f57a1 100644 (file)
 
 # http://kubernetes.io/docs/getting-started-guides/kubeadm/
 
+::Chef::Recipe.send(:include, PlatformUtils::VirtUtils)
+
 if node['kubernetes-grid']['docker-engine']['setup']
   include_recipe 'docker-grid::engine'
 end
 
 case node['platform_family']
 when 'rhel'
+=begin
+  if container_guest_node?
+    # TODO:
+  end
+=end
   disable_selinux = 'disable_selinux'
   resources(execute: disable_selinux) rescue execute disable_selinux do
     user 'root'
@@ -53,6 +60,17 @@ when 'rhel'
     notifies :run, 'execute[yum_makecache_kubernetes]', :immediately
   end
 when 'debian'
+  if container_guest_node?
+    Chef::Log.warn(
+      'This node is running in the Linux container, Chef installs the linux-image. ' \
+      'See https://github.com/kubernetes/kubernetes/issues/39282'
+    )
+    kern_pkg = "linux-image-#{node['kernel']['release']}"
+    resources(package: kern_pkg) rescue package kern_pkg do
+      action :install
+    end
+  end
+
   [
     'curl',
   ].each {|pkg|
diff --git a/nodes/local-kube-gp-node.json b/nodes/local-kube-gp-node.json
new file mode 100644 (file)
index 0000000..5497836
--- /dev/null
@@ -0,0 +1,5 @@
+{
+  "run_list": [
+    "role[kube-gp-node]"
+  ]
+}
diff --git a/roles/kube-gp-node.rb b/roles/kube-gp-node.rb
new file mode 100644 (file)
index 0000000..3eaacea
--- /dev/null
@@ -0,0 +1,17 @@
+cluster_name = 'kube'
+
+name "#{cluster_name}-gp-node"
+description "#{cluster_name} cluster general-purpose node"
+
+run_list(
+  "role[#{cluster_name}]",
+  'recipe[kubernetes-grid::gp-node]',
+)
+
+#env_run_lists
+
+default_attributes(
+)
+
+override_attributes(
+)
diff --git a/roles/kube.rb b/roles/kube.rb
new file mode 100644 (file)
index 0000000..1507819
--- /dev/null
@@ -0,0 +1,25 @@
+cluster_name = 'kube'
+
+name "#{cluster_name}"
+description "#{cluster_name} cluster"
+
+run_list(
+)
+
+#env_run_lists
+
+default_attributes(
+)
+
+override_attributes(
+  'docker-grid' => {
+    'engine' => {
+      'version_on_centos' => '1.11.2-1',
+      'version_on_ubuntu' => '1.11.2-0',
+      'storage-driver_on_centos' => 'overlay',
+      'storage-driver_on_ubuntu' => 'overlay',  # default: aufs
+      #'userns-remap' => 'default',
+      'daemon_extra_options' => '-H fd:// --bip=192.168.128.1/24 --fixed-cidr=192.168.128.0/24',
+    },
+  },
+)