--- /dev/null
+Copyright 2017 Open Platform for NFV Project, Inc. and its contributors
+
+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.
 
--- /dev/null
+#!/usr/bin/env bash
+set -eux
+
+api_advertise_address=$1
+service_cidr=$2
+pod_network=$3
+pod_network_cidr=$4
+token='8c5adc.1cec8dbf339093f0'
+
+curl -s http://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
+cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
+deb http://apt.kubernetes.io/ kubernetes-xenial main
+EOF
+
+sudo apt-get update
+sudo apt-get install -y docker.io
+sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni
+rm -rf /var/lib/kubelet
+sudo kubeadm init --api-advertise-addresses $api_advertise_address --service-cidr=$service_cidr --pod-network-cidr=$pod_network_cidr --token $token
+
+if [ $pod_network_cidr = 'flannel' ]; then
+    sudo kubectl apply -f http://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
+else
+    sudo kubectl apply -f http://git.io/weave-kube
+fi
 
--- /dev/null
+#!/usr/bin/env bash
+set -eux
+
+api_advertise_address=$1
+token='8c5adc.1cec8dbf339093f0'
+
+curl -s http://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
+cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
+deb http://apt.kubernetes.io/ kubernetes-xenial main
+EOF
+sudo apt-get update
+sudo apt-get install -y docker.io
+sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni
+rm -rf /var/lib/kubelet
+sudo kubeadm join --token $token $api_advertise_address || true
 
--- /dev/null
+notice('MODULAR: k8s-master-install')
+# get options
+
+$network_metadata = hiera_hash('network_metadata')
+$k8s_nodes_hash = get_nodes_hash_by_roles($network_metadata, ['k8s-master'])
+$k8s_mgmt_ips_hash = get_node_to_ipaddr_map_by_network_role($k8s_nodes_hash, 'management')
+$k8s_mgmt_ips = values($k8s_mgmt_ips_hash)
+
+$network_scheme = hiera_hash('network_scheme')
+$service_cidr = $network_scheme['endpoints']['br-mgmt']['IP']
+
+$k8s_settings  = hiera_hash('fuel-plugin-k8s')
+$pod_network  = $k8s_settings['pod_network']
+$pod_network_cidr  = $k8s_settings['pod_network_cidr']
+
+if $operatingsystem == 'Ubuntu' {
+      exec { 'install k8s master':
+          command => "/etc/fuel/plugins/fuel-plugin-k8s-1.0/k8s-master-install.sh $k8s_mgmt_ips $service_cidr $pod_network $pod_network_cidr",
+          path    => '/usr/bin:/usr/sbin:/bin:/sbin',
+      }
+} elsif $operatingsystem == 'CentOS' {
+}
 
--- /dev/null
+notice('MODULAR: k8s-slave-install')
+# get options
+
+$network_metadata = hiera_hash('network_metadata')
+$k8s_nodes_hash = get_nodes_hash_by_roles($network_metadata, ['k8s-master'])
+$k8s_mgmt_ips_hash = get_node_to_ipaddr_map_by_network_role($k8s_nodes_hash, 'management')
+$k8s_mgmt_ips = values($k8s_mgmt_ips_hash)
+
+if $operatingsystem == 'Ubuntu' {
+    exec { 'install k8s slave':
+        command => "/etc/fuel/plugins/fuel-plugin-k8s-1.0/k8s-slave-install.sh $k8s_mgmt_ips",
+        path    => '/usr/bin:/usr/sbin:/bin:/sbin',
+    }
+} elsif $operatingsystem == 'CentOS' {
+}
 
--- /dev/null
+# Copyright (c) 2017 Intel Corporation
+#
+# 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.
+- id: k8s
+  type: group
+  role: [k8s-master, k8s-slave]
+  requires: [deploy_start]
+  required_for: [deploy_end]
+  tasks: [hiera, setup_repositories, fuel_pkgs, globals, tools, logging, netconfig]
+  parameters:
+    strategy:
+      type: parallel
+
+- id: k8s-master-install
+  type: puppet
+  version: 2.0.0
+  groups: [k8s-master]
+  required_for: [deploy_end]
+  requires: [netconfig]
+  parameters:
+    puppet_manifest: puppet/manifests/k8s-master-install.pp
+    puppet_modules: puppet/modules:/etc/puppet/modules
+    timeout: 720
+
+- id: k8s-slave-install
+  type: puppet
+  version: 2.0.0
+  groups: [k8s-slave]
+  required_for: [post_deployment_end]
+  requires: [post_deployment_start]
+  parameters:
+    puppet_manifest: puppet/manifests/k8s-slave-install.pp
+    puppet_modules: puppet/modules:/etc/puppet/modules
+    timeout: 720
 
--- /dev/null
+attributes:
+  pod_network:
+    weight: 21
+    type: "select"
+    value: "weave"
+    label: "K8s POD network"
+    values:
+      - data: "flannel"
+        label: "Flannel"
+      - data: "weave"
+        label: "Weave"
+    description: "K8s POD network."
+
+  pod_network_cidr:
+    value: '10.244.0.0/16'
+    label: 'k8s POD CIDR'
+    weight: 70
+    type: "text"
+    description: 'K8s POD network CIDR.'
 
--- /dev/null
+# Plugin name
+name: fuel-plugin-k8s
+# Human-readable name for your plugin
+title: Install k8s on bare metal
+# Plugin version
+version: '1.0.0'
+# Description
+description: 'This plugin provides to deploy k8s on bare metal'
+# Required fuel version
+fuel_version: ['10.0']
+# Specify license of your plugin
+licenses: ['Apache License Version 2.0']
+# Specify author or company name
+authors: ['ruijing.guo@intel.com']
+# A link to the plugin's page
+homepage: 'https://gerrit.opnfv.org/gerrit/openretriever'
+# Specify a group which your plugin implements, possible options:
+# network, storage, storage::cinder, storage::glance, hypervisor
+groups: ['network']
+is_hotpluggable: false
+# The plugin is compatible with releases in the list
+releases:
+  - os: ubuntu
+    version: newton-10.0
+    mode: ['ha']
+    deployment_scripts_path: deployment_scripts/
+    repository_path: deployment_scripts/
+
+# Version of plugin package
+package_version: '4.0.0'
 
--- /dev/null
+# Copyright (c) 2017 Intel Corporation
+#
+# 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.
+k8s-master:
+  name: "k8s-master"
+  description: "Install K8s master on nodes with this role"
+  has_primary: false                # whether has primary role or not
+  public_ip_required: false         # whether requires public net or not
+  weight: 50                        # weight that will be used for ordering on fuel ui
+  limits:
+    min: 0
+
+k8s-slave:
+  name: "k8s-slave"
+  description: "Install K8s slave on nodes with this role"
+  has_primary: false                # whether has primary role or not
+  public_ip_required: false         # whether requires public net or not
+  weight: 50                        # weight that will be used for ordering on fuel ui
+  limits:
+    min: 0
 
--- /dev/null
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+
+  config.vm.box = "ubuntu/trusty64"
+
+  config.vm.define "fuel" do | h |
+    h.vm.host_name = "fuel"
+    h.vm.provision :shell, :inline => "/vagrant/build_fuel_plugin.sh", privileged: false
+    h.vm.synced_folder "..", "/fuel-plugin"
+    h.vm.provider :virtualbox do |v|
+      v.customize ["modifyvm", :id, "--memory", 4096]
+      v.customize ["modifyvm", :id, "--cpus", 4]
+      v.customize "post-boot",["controlvm", :id, "setlinkstate1", "on"]
+    end
+  end
+end
 
--- /dev/null
+#!/bin/bash
+sudo apt-get update -y
+sudo apt-get install -y ruby-dev rubygems-integration python-pip rpm createrepo dpkg-dev
+sudo gem install fpm
+sudo pip install fuel-plugin-builder
+cp -r /fuel-plugin /home/vagrant
+cd /home/vagrant/fuel-plugin; fpb --debug --build .
+cp /home/vagrant/fuel-plugin/*.rpm /vagrant