Kubernetes salt formula first version.
diff --git a/metadata/service/common.yml b/metadata/service/common.yml
new file mode 100644
index 0000000..47364d9
--- /dev/null
+++ b/metadata/service/common.yml
@@ -0,0 +1,6 @@
+parameters:
+  kubernetes:
+    common:
+      binaries_version: v1.1.1
+      network:
+        engine: none
\ No newline at end of file
diff --git a/metadata/service/control/cluster.yml b/metadata/service/control/cluster.yml
new file mode 100644
index 0000000..e411788
--- /dev/null
+++ b/metadata/service/control/cluster.yml
@@ -0,0 +1,6 @@
+applications:
+- kubernetes
+parameters:
+  kubernetes:
+    control:
+      enabled: true
\ No newline at end of file
diff --git a/metadata/service/master/cluster.yml b/metadata/service/master/cluster.yml
new file mode 100644
index 0000000..c528ed3
--- /dev/null
+++ b/metadata/service/master/cluster.yml
@@ -0,0 +1,65 @@
+applications:
+- kubernetes
+classes:
+- service.kubernetes.support
+- system.nginx.server.single
+- service.kubernetes.common
+parameters:
+  nginx:
+    server:
+      site:
+        kubernetes_master:
+          enabled: true
+          type: kubernetes
+          name: master
+          host:
+            name: ${_param:nginx_kubernetes_master_host}
+  kubernetes:
+    master:
+      enabled: true
+      version: v1.2.0
+      registry: tcpcloud
+      service_addresses: 10.254.0.0/16
+      admin:
+        username: admin
+        password: password
+      kubelet:
+        allow_privileged: True
+      apiserver:
+        address: ${_param:apiserver_address}
+        port: 8080
+      etcd:
+        host: 10.10.6.187
+        token: ca939ec9c2a17b0786f6d411fe019e9b
+        name: ${linux:system:name}
+        members:
+          - host: ${_param:cluster_node01_address}
+            name: ${_param:cluster_node01_hostname}
+          - host: ${_param:cluster_node02_address}
+            name: ${_param:cluster_node02_hostname}
+          - host: ${_param:cluster_node03_address}
+            name: ${_param:cluster_node03_hostname}
+      addons:
+        dns:
+          enabled: true
+          replicas: 1
+          domain: cluster.local
+          server: 10.254.0.10
+        ui:
+          enabled: true
+          public_ip: 185.22.97.131
+        heapster_influxdb:
+          enabled: true
+          public_ip: 185.22.97.132
+      token:
+        admin: DFvQ8GJ9JD4fKNfuyEddw3rjnFTkUKsv
+        kubelet: 7bN5hJ9JD4fKjnFTkUKsvVNfuyEddw3r
+        kube_proxy: DFvQ8GelB7afH3wClC9romaMPhquyyEe
+        scheduler: HY1UUxEPpmjW4a1dDLGIANYQp1nZkLDk
+        controller_manager: EreGh6AnWf8DxH8cYavB2zS029PUi7vx
+        logging: MJkXKdbgqRmTHSa2ykTaOaMykgO6KcEf
+        monitoring: hnsj0XqABgrSww7Nqo7UVTSZLJUt2XRd
+        dns: RAFeVSE4UvsCz4gk3KYReuOI5jsZ1Xt3
+      ca: kubernetes
+      storage:
+        engine: none
\ No newline at end of file
diff --git a/metadata/service/master/single.yml b/metadata/service/master/single.yml
new file mode 100644
index 0000000..779359f
--- /dev/null
+++ b/metadata/service/master/single.yml
@@ -0,0 +1,61 @@
+applications:
+- kubernetes
+classes:
+- service.kubernetes.support
+- system.nginx.server.single
+- service.kubernetes.common
+parameters:
+  nginx:
+    server:
+      site:
+        kubernetes_master:
+          enabled: true
+          type: kubernetes
+          name: master
+          host:
+            name: ${_param:nginx_kubernetes_master_host}
+  kubernetes:
+    master:
+      enabled: true
+      version: v1.2.0
+      registry: tcpcloud
+      service_addresses: 10.254.0.0/16
+      admin:
+        username: admin
+        password: password
+      kubelet:
+        allow_privileged: True
+      apiserver:
+        address: ${_param:apiserver_address}
+        port: 8080
+      etcd:
+        host: 127.0.0.1
+        token: ca939ec9c2a17b0786f6d411fe019e9b
+        name: ${linux:system:name}
+        members:
+          - host: ${_param:apiserver_address}
+            name: ${linux:system:name}
+      addons:
+        dns:
+          enabled: true
+          replicas: 1
+          domain: cluster.local
+          server: 10.254.0.10
+        ui:
+          enabled: true
+          public_ip: 185.22.97.131
+        heapster_influxdb:
+          enabled: true
+          public_ip: 185.22.97.132
+      token:
+        admin: DFvQ8GJ9JD4fKNfuyEddw3rjnFTkUKsv
+        kubelet: 7bN5hJ9JD4fKjnFTkUKsvVNfuyEddw3r
+        kube_proxy: DFvQ8GelB7afH3wClC9romaMPhquyyEe
+        scheduler: HY1UUxEPpmjW4a1dDLGIANYQp1nZkLDk
+        controller_manager: EreGh6AnWf8DxH8cYavB2zS029PUi7vx
+        logging: MJkXKdbgqRmTHSa2ykTaOaMykgO6KcEf
+        monitoring: hnsj0XqABgrSww7Nqo7UVTSZLJUt2XRd
+        dns: RAFeVSE4UvsCz4gk3KYReuOI5jsZ1Xt3
+      ca: kubernetes
+      storage:
+        engine: none
\ No newline at end of file
diff --git a/metadata/service/pool/cluster.yml b/metadata/service/pool/cluster.yml
new file mode 100644
index 0000000..cebe9fc
--- /dev/null
+++ b/metadata/service/pool/cluster.yml
@@ -0,0 +1,33 @@
+applications:
+- kubernetes
+classes:
+- service.kubernetes.support
+- service.kubernetes.common
+parameters:
+  kubernetes:
+    pool:
+      enabled: true
+      version: v1.2.0
+      master:
+        host: ${_param:cluster_vip_address}
+        apiserver:
+          members:
+            - host: ${_param:cluster_node01_address}
+            - host: ${_param:cluster_node02_address}
+            - host: ${_param:cluster_node03_address}
+        etcd:
+          members:
+            - host: ${_param:cluster_node01_address}
+            - host: ${_param:cluster_node02_address}
+            - host: ${_param:cluster_node03_address}
+      address: 0.0.0.0
+      cluster_dns: 10.254.0.10
+      cluster_domain: cluster.local
+      kubelet:
+        config: /etc/kubernetes/manifests
+        allow_privileged: True
+        frequency: 5s
+      token:
+        kubelet: 7bN5hJ9JD4fKjnFTkUKsvVNfuyEddw3r
+        kube_proxy: DFvQ8GelB7afH3wClC9romaMPhquyyEe
+      ca: kubernetes
\ No newline at end of file
diff --git a/metadata/service/pool/single.yml b/metadata/service/pool/single.yml
new file mode 100644
index 0000000..b219527
--- /dev/null
+++ b/metadata/service/pool/single.yml
@@ -0,0 +1,30 @@
+applications:
+- kubernetes
+classes:
+- service.kubernetes.support
+- service.kubernetes.common
+parameters:
+  kubernetes:
+    pool:
+      enabled: true
+      version: v1.2.0
+      master:
+        host: ${_param:master_address}
+        apiserver:
+          members:
+            - host: ${_param:master_address}
+        etcd:
+          members:
+            - host: ${_param:master_address}
+      address: 0.0.0.0
+      cluster_dns: 10.254.0.10
+      allow_privileged: True
+      cluster_domain: cluster.local
+      kubelet:
+        config: /etc/kubernetes/manifests
+        allow_privileged: True
+        frequency: 5s
+      token:
+        kubelet: 7bN5hJ9JD4fKjnFTkUKsvVNfuyEddw3r
+        kube_proxy: DFvQ8GelB7afH3wClC9romaMPhquyyEe
+      ca: kubernetes
\ No newline at end of file
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
new file mode 100644
index 0000000..661b1cf
--- /dev/null
+++ b/metadata/service/support.yml
@@ -0,0 +1,11 @@
+parameters:
+  kubernetes:
+    _support:
+      collectd:
+        enabled: false
+      heka:
+        enabled: false
+      sensu:
+        enabled: false
+      sphinx:
+        enabled: true