OSDN Git Service

kubernetes-grid-0.1.0 kubernetes-grid-0.1.0
authorwhitestar <whitestar@gaea.test>
Sat, 31 Dec 2016 12:34:04 +0000 (21:34 +0900)
committerwhitestar <whitestar@gaea.test>
Sat, 31 Dec 2016 12:34:04 +0000 (21:34 +0900)
20 files changed:
cookbooks/kubernetes-grid/.foodcritic [new file with mode: 0644]
cookbooks/kubernetes-grid/.rubocop.yml [new file with mode: 0644]
cookbooks/kubernetes-grid/CHANGELOG.md [new file with mode: 0644]
cookbooks/kubernetes-grid/Gemfile [new file with mode: 0644]
cookbooks/kubernetes-grid/README.md [new file with mode: 0644]
cookbooks/kubernetes-grid/Rakefile [new file with mode: 0644]
cookbooks/kubernetes-grid/attributes/default.rb [new file with mode: 0644]
cookbooks/kubernetes-grid/metadata.rb [new file with mode: 0644]
cookbooks/kubernetes-grid/recipes/default.rb [new file with mode: 0644]
cookbooks/kubernetes-grid/recipes/master.rb [new file with mode: 0644]
cookbooks/kubernetes-grid/recipes/node-commons.rb [new file with mode: 0644]
cookbooks/kubernetes-grid/recipes/node.rb [new file with mode: 0644]
cookbooks/kubernetes-grid/spec/recipes/default_spec.rb [new file with mode: 0644]
cookbooks/kubernetes-grid/spec/spec_helper.rb [new file with mode: 0644]
cookbooks/kubernetes-grid/templates/default/etc/apt/sources.list.d/kubernetes.list [new file with mode: 0644]
cookbooks/kubernetes-grid/templates/default/etc/selinux/config [new file with mode: 0644]
cookbooks/kubernetes-grid/templates/default/etc/yum.repos.d/kubernetes.repo [new file with mode: 0644]
roles/kube0-master.rb [new file with mode: 0644]
roles/kube0-node.rb [new file with mode: 0644]
roles/kube0.rb [new file with mode: 0644]

diff --git a/cookbooks/kubernetes-grid/.foodcritic b/cookbooks/kubernetes-grid/.foodcritic
new file mode 100644 (file)
index 0000000..3907cff
--- /dev/null
@@ -0,0 +1 @@
+~FC001
diff --git a/cookbooks/kubernetes-grid/.rubocop.yml b/cookbooks/kubernetes-grid/.rubocop.yml
new file mode 100644 (file)
index 0000000..06a1a01
--- /dev/null
@@ -0,0 +1,37 @@
+AllCops:
+  Exclude:
+    - vendor/**/*
+
+AlignParameters:
+  Enabled: false
+LineLength:
+  Enabled: false
+Lint/UnusedBlockArgument:
+  Enabled: false
+Metrics/AbcSize:
+  Enabled: false
+Style/BlockComments:
+  Enabled: false
+Style/BlockDelimiters:
+  Enabled: false
+Style/ExtraSpacing:
+  Enabled: false
+Style/FileName:
+  Enabled: false
+Style/LeadingCommentSpace:
+  Enabled: false
+Style/RescueModifier:
+  Enabled: false
+Style/SpaceBeforeFirstArg:
+  Enabled: false
+Style/TrailingCommaInLiteral:
+  EnforcedStyleForMultiline: comma
+Style/WordArray:
+  Enabled: false
+  
+#Style/AccessorMethodName:
+#  Enabled: false
+Metrics/MethodLength:
+  Max: 15
+#Style/ModuleLength:
+#  Max: 150
diff --git a/cookbooks/kubernetes-grid/CHANGELOG.md b/cookbooks/kubernetes-grid/CHANGELOG.md
new file mode 100644 (file)
index 0000000..6d24a6f
--- /dev/null
@@ -0,0 +1,5 @@
+# kubernetes-grid CHANGELOG
+
+0.1.0
+-----
+- Initial release of kubernetes-grid
diff --git a/cookbooks/kubernetes-grid/Gemfile b/cookbooks/kubernetes-grid/Gemfile
new file mode 100644 (file)
index 0000000..907b097
--- /dev/null
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+#gem 'foodcritic'
diff --git a/cookbooks/kubernetes-grid/README.md b/cookbooks/kubernetes-grid/README.md
new file mode 100644 (file)
index 0000000..b986b11
--- /dev/null
@@ -0,0 +1,144 @@
+kubernetes-grid Cookbook
+========================
+
+This cookbook sets up Kubernetes cluster.
+
+## Contents
+
+- [Requirements](#requirements)
+  - [platforms](#platforms)
+  - [packages](#packages)
+- [Attributes](#attributes)
+- [Usage](#usage)
+  - [Recipes](#recipes)
+    - [kubernetes-grid::default](#kubernetes-griddefault)
+    - [kubernetes-grid::master](#kubernetes-gridmaster)
+    - [kubernetes-grid::node](#kubernetes-gridnode)
+    - [kubernetes-grid::node-commons](#kubernetes-gridnode-commons)
+  - [Role Examples](#role-examples)
+- [License and Authors](#license-and-authors)
+
+## Requirements
+
+### platforms
+- CentOS, Red Hat Enterprise Linux >= 7.2
+- Ubuntu >= 16.04
+
+### packages
+- none.
+
+## Attributes
+
+|Key|Type|Description, example|Default|
+|:--|:--|:--|:--|
+|`['kubernetes-grid']['apt_repo']['url']`|String||`'http://apt.kubernetes.io/'`|
+|`['kubernetes-grid']['apt_repo']['keyurl']`|String|You must set whether this `keyurl` or the following `keyserver` & `recv-keys`.|`'https://packages.cloud.google.com/apt/doc/apt-key.gpg'`|
+|`['kubernetes-grid']['apt_repo']['keyserver']`|String||`nil`|
+|`['kubernetes-grid']['apt_repo']['recv-keys']`|String||`nil`|
+|`['kubernetes-grid']['apt_repo']['override_apt_line']`|String|e.g. `'deb http://apt.kubernetes.io/ kubernetes-xenial main'`|`''`|
+|`['kubernetes-grid']['yum_repo']['baseurl']`|String||`'http://yum.kubernetes.io/repos/kubernetes-el7-x86_64'`|
+|`['kubernetes-grid']['yum_repo']['gpgcheck']`|String||`'1'`|
+|`['kubernetes-grid']['yum_repo']['repo_gpgcheck']`|String||`'1'`|
+|`['kubernetes-grid']['yum_repo']['gpgkey']`|Array, String||See `attributes/default.rb`.|
+|`['kubernetes-grid']['docker-engine']['setup']`|Boolean|Docker setup by the `docker-grid` cookbook.|`true`|
+
+## Usage
+
+### Recipes
+
+#### kubernetes-grid::default
+
+This recipe does nothing.
+
+#### kubernetes-grid::master
+
+This recipe sets up a master node.
+
+#### kubernetes-grid::node
+
+This recipe sets up a worker node.
+
+#### kubernetes-grid::node-commons
+
+This recipe installs Kubernetes base packages.
+
+### Role Examples
+
+- `roles/kube0.rb`
+
+```ruby
+cluster_name = 'kube0'
+
+name "#{cluster_name}"
+description "#{cluster_name} cluster"
+
+run_list(
+)
+
+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',
+    },
+  },
+)
+```
+
+- `roles/kube0-master.rb`
+
+```ruby
+cluster_name = 'kube0'
+
+name "#{cluster_name}-master"
+description "#{cluster_name} cluster master node"
+
+run_list(
+  "role[#{cluster_name}]",
+  'recipe[kubernetes-grid::master]',
+)
+
+override_attributes(
+)
+```
+
+- `roles/kube0-node.rb`
+
+```ruby
+cluster_name = 'kube0'
+
+name "#{cluster_name}-node"
+description "#{cluster_name} cluster worker node"
+
+run_list(
+  "role[#{cluster_name}]",
+  'recipe[kubernetes-grid::node]',
+)
+
+override_attributes(
+)
+```
+
+## License and Authors
+
+- Author:: whitestar at osdn.jp
+
+```text
+Copyright 2016, 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.
+```
diff --git a/cookbooks/kubernetes-grid/Rakefile b/cookbooks/kubernetes-grid/Rakefile
new file mode 100644 (file)
index 0000000..513cecc
--- /dev/null
@@ -0,0 +1,23 @@
+require 'rspec/core/rake_task'
+require 'rubocop/rake_task'
+require 'foodcritic'
+
+namespace :style do
+  desc 'Run Ruby style checks'
+  RuboCop::RakeTask.new(:ruby)
+
+  desc 'Run Chef style checks'
+  FoodCritic::Rake::LintTask.new(:chef) do |t|
+    t.options = {
+      fail_tags: ['any'],
+    }
+  end
+end
+
+desc 'Run all style checks'
+task style: ['style:chef', 'style:ruby']
+
+desc 'Run ChefSpec examples'
+RSpec::Core::RakeTask.new(:spec)
+
+task default: ['style', 'spec']
diff --git a/cookbooks/kubernetes-grid/attributes/default.rb b/cookbooks/kubernetes-grid/attributes/default.rb
new file mode 100644 (file)
index 0000000..5c8009a
--- /dev/null
@@ -0,0 +1,37 @@
+#
+# Cookbook Name:: kubernetes-grid
+# Attributes:: default
+#
+# Copyright 2016, 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.
+#
+
+default['kubernetes-grid']['apt_repo'] = {
+  'url' => 'http://apt.kubernetes.io/',
+  'keyurl' => 'https://packages.cloud.google.com/apt/doc/apt-key.gpg',
+  # or
+  'keyserver' => nil,
+  'recv-keys' => nil,
+  'override_apt_line' => '',  # e.g. 'deb http://apt.kubernetes.io/ kubernetes-xenial main'
+}
+default['kubernetes-grid']['yum_repo'] = {
+  'baseurl' => 'http://yum.kubernetes.io/repos/kubernetes-el7-x86_64',
+  'gpgcheck' => '1',
+  'repo_gpgcheck' => '1',
+  'gpgkey' => [
+    'https://packages.cloud.google.com/yum/doc/yum-key.gpg',
+    'https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg',
+  ],
+}
+default['kubernetes-grid']['docker-engine']['setup'] = true
diff --git a/cookbooks/kubernetes-grid/metadata.rb b/cookbooks/kubernetes-grid/metadata.rb
new file mode 100644 (file)
index 0000000..002e2dd
--- /dev/null
@@ -0,0 +1,19 @@
+# $ knife supermarket share kubernetes-grid "Operating Systems & Virtualization"
+name             'kubernetes-grid'
+maintainer       'whitestar'
+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'
+
+source_url       'http://scm.osdn.jp/gitroot/metasearch/grid-chef-repo.git'
+issues_url       'https://osdn.jp/projects/metasearch/ticket'
+
+%w( centos redhat ).each do |os|
+  supports os, '>= 7.2'
+end
+supports 'ubuntu', '>= 16.04'
+
+# external cookbooks
+depends 'docker-grid', '>= 0.2.8'
diff --git a/cookbooks/kubernetes-grid/recipes/default.rb b/cookbooks/kubernetes-grid/recipes/default.rb
new file mode 100644 (file)
index 0000000..1d2bde6
--- /dev/null
@@ -0,0 +1,22 @@
+#
+# Cookbook Name:: kubernetes-grid
+# Recipe:: default
+#
+# Copyright 2016, 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::node'
diff --git a/cookbooks/kubernetes-grid/recipes/master.rb b/cookbooks/kubernetes-grid/recipes/master.rb
new file mode 100644 (file)
index 0000000..606f544
--- /dev/null
@@ -0,0 +1,31 @@
+#
+# Cookbook Name:: kubernetes-grid
+# Recipe:: master
+#
+# Copyright 2016, 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::node-commons'
+
+[
+  'kubeadm',  # for `kubeadm init`
+  'kubectl',  # already required by kubeadm ...
+].each {|pkg|
+  resources(package: pkg) rescue package pkg do
+    action :install
+  end
+}
diff --git a/cookbooks/kubernetes-grid/recipes/node-commons.rb b/cookbooks/kubernetes-grid/recipes/node-commons.rb
new file mode 100644 (file)
index 0000000..20cc364
--- /dev/null
@@ -0,0 +1,115 @@
+#
+# Cookbook Name:: kubernetes-grid
+# Recipe:: node-commons
+#
+# Copyright 2016, 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/
+
+if node['kubernetes-grid']['docker-engine']['setup']
+  include_recipe 'docker-grid::engine'
+end
+
+case node['platform_family']
+when 'rhel'
+  disable_selinux = 'disable_selinux'
+  resources(execute: disable_selinux) rescue execute disable_selinux do
+    user 'root'
+    command 'setenforce 0'
+    not_if 'getenforce | grep -i \'\(disabled\|permissive\)\''
+  end
+  template '/etc/selinux/config' do
+    source  'etc/selinux/config'
+    owner 'root'
+    group 'root'
+    mode '0644'
+  end
+
+  execute 'yum_makecache_kubernetes' do
+    user 'root'
+    # import GPG keys simultaneously.
+    command 'yum -q -y makecache --disablerepo=* --enablerepo=kubernetes'
+    action :nothing
+  end
+
+  template '/etc/yum.repos.d/kubernetes.repo' do
+    source  'etc/yum.repos.d/kubernetes.repo'
+    owner 'root'
+    group 'root'
+    mode '0644'
+    notifies :run, 'execute[yum_makecache_kubernetes]', :immediately
+  end
+when 'debian'
+  [
+    'curl',
+  ].each {|pkg|
+    resources(package: pkg) rescue package pkg do
+      action :install
+    end
+  }
+
+  apt_get_update = 'apt-get_update'
+  resources(execute: apt_get_update) rescue execute apt_get_update do
+    command 'apt-get update'
+    action :nothing
+  end
+
+  apt_repo_config = node['kubernetes-grid']['apt_repo']
+  add_key_command = ''
+  if !apt_repo_config['keyurl'].nil? && !apt_repo_config['keyurl'].empty?
+    add_key_command = "curl -s #{apt_repo_config['keyurl']} | apt-key add -"
+  elsif !apt_repo_config['keyserver'].nil? && !apt_repo_config['keyserver'].empty? \
+    && !apt_repo_config['recv-keys'].nil? && !apt_repo_config['recv-keys'].empty?
+    add_key_command = "apt-key adv --keyserver #{apt_repo_config['keyserver']} --recv-keys #{apt_repo_config['recv-keys']}"
+  end
+
+  execute 'apt-key_add_google_cloud_packages_key' do
+    command add_key_command
+    action :nothing
+    not_if 'apt-key list | grep "Google Cloud Packages"'
+  end
+
+  template '/etc/apt/sources.list.d/kubernetes.list' do
+    source  'etc/apt/sources.list.d/kubernetes.list'
+    owner 'root'
+    group 'root'
+    mode '0644'
+    notifies :run, 'execute[apt-key_add_google_cloud_packages_key]', :before
+    notifies :run, "execute[#{apt_get_update}]", :immediately
+  end
+=begin
+  # Pinning Kubernetes version
+  template '/etc/apt/preferences.d/kubernetes.pref' do
+    source  'etc/apt/preferences.d/kubernetes.pref'
+    owner 'root'
+    group 'root'
+    mode '0644'
+  end
+=end
+end
+
+[
+  'kubelet',
+  'kubernetes-cni',  # already required by kublet ...
+].each {|pkg|
+  resources(package: pkg) rescue package pkg do
+    action :install
+  end
+}
+
+service 'kubelet' do
+  action [:start, :enable]
+end
diff --git a/cookbooks/kubernetes-grid/recipes/node.rb b/cookbooks/kubernetes-grid/recipes/node.rb
new file mode 100644 (file)
index 0000000..0dc1e27
--- /dev/null
@@ -0,0 +1,31 @@
+#
+# Cookbook Name:: kubernetes-grid
+# Recipe:: node
+#
+# Copyright 2016, 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::node-commons'
+
+[
+  'kubeadm',  # for `kubeadm join`
+  #'kubectl',  # required by kubeadm
+].each {|pkg|
+  resources(package: pkg) rescue package pkg do
+    action :install
+  end
+}
diff --git a/cookbooks/kubernetes-grid/spec/recipes/default_spec.rb b/cookbooks/kubernetes-grid/spec/recipes/default_spec.rb
new file mode 100644 (file)
index 0000000..d49992d
--- /dev/null
@@ -0,0 +1,9 @@
+require_relative '../spec_helper'
+
+describe 'docker-grid::default' do
+  let(:chef_run) { ChefSpec::SoloRunner.new.converge(described_recipe) }
+
+  #it 'does something' do
+  #  expect(chef_run).to do_something('...')
+  #end
+end
diff --git a/cookbooks/kubernetes-grid/spec/spec_helper.rb b/cookbooks/kubernetes-grid/spec/spec_helper.rb
new file mode 100644 (file)
index 0000000..1995e2b
--- /dev/null
@@ -0,0 +1,25 @@
+# Added by ChefSpec
+require 'chefspec'
+
+# Uncomment to use ChefSpec's Berkshelf extension
+# require 'chefspec/berkshelf'
+
+RSpec.configure do |config|
+  # Specify the path for Chef Solo to find cookbooks
+  # config.cookbook_path = '/var/cookbooks'
+
+  # Specify the path for Chef Solo to find roles
+  # config.role_path = '/var/roles'
+
+  # Specify the Chef log_level (default: :warn)
+  # config.log_level = :debug
+
+  # Specify the path to a local JSON file with Ohai data
+  # config.path = 'ohai.json'
+
+  # Specify the operating platform to mock Ohai data from
+  # config.platform = 'ubuntu'
+
+  # Specify the operating version to mock Ohai data from
+  # config.version = '12.04'
+end
diff --git a/cookbooks/kubernetes-grid/templates/default/etc/apt/sources.list.d/kubernetes.list b/cookbooks/kubernetes-grid/templates/default/etc/apt/sources.list.d/kubernetes.list
new file mode 100644 (file)
index 0000000..115eda3
--- /dev/null
@@ -0,0 +1,12 @@
+<%
+override_apt_line = node['kubernetes-grid']['apt_repo']['override_apt_line']
+if !override_apt_line.nil? && !override_apt_line.empty?
+-%>
+<%= override_apt_line %>
+<%
+else
+-%> 
+deb <%= node['kubernetes-grid']['apt_repo']['url'] %> kubernetes-<%= node['lsb']['codename'] %> main
+<%
+end
+-%>
diff --git a/cookbooks/kubernetes-grid/templates/default/etc/selinux/config b/cookbooks/kubernetes-grid/templates/default/etc/selinux/config
new file mode 100644 (file)
index 0000000..e4bc310
--- /dev/null
@@ -0,0 +1,14 @@
+
+# This file controls the state of SELinux on the system.
+# SELINUX= can take one of these three values:
+#     enforcing - SELinux security policy is enforced.
+#     permissive - SELinux prints warnings instead of enforcing.
+#     disabled - No SELinux policy is loaded.
+SELINUX=disabled
+# SELINUXTYPE= can take one of three two values:
+#     targeted - Targeted processes are protected,
+#     minimum - Modification of targeted policy. Only selected processes are protected. 
+#     mls - Multi Level Security protection.
+SELINUXTYPE=targeted
+
+
diff --git a/cookbooks/kubernetes-grid/templates/default/etc/yum.repos.d/kubernetes.repo b/cookbooks/kubernetes-grid/templates/default/etc/yum.repos.d/kubernetes.repo
new file mode 100644 (file)
index 0000000..4d615af
--- /dev/null
@@ -0,0 +1,12 @@
+<%
+config = node['kubernetes-grid']['yum_repo']
+gpgkey = config['gpgkey'] 
+gpgkey = gpgkey.kind_of?(Array) ? gpgkey.join("\n  ") : gpgkey.to_s
+-%>
+[kubernetes]
+name=Kubernetes
+baseurl=<%= config['baseurl'] %>
+enabled=1
+gpgcheck=<%= config['gpgcheck'] %>
+repo_gpgcheck=<%= config['repo_gpgcheck'] %>
+gpgkey=<%= gpgkey %>
diff --git a/roles/kube0-master.rb b/roles/kube0-master.rb
new file mode 100644 (file)
index 0000000..f390401
--- /dev/null
@@ -0,0 +1,17 @@
+cluster_name = 'kube0'
+
+name "#{cluster_name}-master"
+description "#{cluster_name} cluster master node"
+
+run_list(
+  "role[#{cluster_name}]",
+  'recipe[kubernetes-grid::master]',
+)
+
+#env_run_lists
+
+default_attributes(
+)
+
+override_attributes(
+)
diff --git a/roles/kube0-node.rb b/roles/kube0-node.rb
new file mode 100644 (file)
index 0000000..b7f44d2
--- /dev/null
@@ -0,0 +1,17 @@
+cluster_name = 'kube0'
+
+name "#{cluster_name}-node"
+description "#{cluster_name} cluster worker node"
+
+run_list(
+  "role[#{cluster_name}]",
+  'recipe[kubernetes-grid::node]',
+)
+
+#env_run_lists
+
+default_attributes(
+)
+
+override_attributes(
+)
diff --git a/roles/kube0.rb b/roles/kube0.rb
new file mode 100644 (file)
index 0000000..01cb647
--- /dev/null
@@ -0,0 +1,25 @@
+cluster_name = 'kube0'
+
+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',
+    },
+  },
+)