automatic tests
diff --git a/README.rst b/README.rst
index c71b7f6..8480aae 100644
--- a/README.rst
+++ b/README.rst
@@ -3,6 +3,9 @@
Kubernetes Formula
==================
+Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
+
+This formula deploys production ready Kubernetes and generate Kubernetes manifests as well.
Based on official Kubernetes salt
https://github.com/kubernetes/kubernetes/tree/master/cluster/saltbase
@@ -16,14 +19,97 @@
.. code-block:: yaml
kubernetes:
- master:
+ master:
+ addons:
+ dns:
+ domain: cluster.local
+ enabled: true
+ replicas: 1
+ server: 10.254.0.10
+ heapster_influxdb:
+ enabled: true
+ public_ip: 185.22.97.132
+ ui:
+ enabled: true
+ public_ip: 185.22.97.131
+ admin:
+ password: password
+ username: admin
+ apiserver:
+ address: 10.0.175.100
+ port: 8080
+ ca: kubernetes
+ enabled: true
+ etcd:
+ host: 127.0.0.1
+ members:
+ - host: 10.0.175.100
+ name: node040
+ name: node040
+ token: ca939ec9c2a17b0786f6d411fe019e9b
+ kubelet:
+ allow_privileged: true
+ network:
+ engine: calico
+ hash: fb5e30ebe6154911a66ec3fb5f1195b2
+ private_ip_range: 10.150.0.0/16
+ version: v0.19.0
+ service_addresses: 10.254.0.0/16
+ storage:
+ engine: glusterfs
+ members:
+ - host: 10.0.175.101
+ port: 24007
+ - host: 10.0.175.102
+ port: 24007
+ - host: 10.0.175.103
+ port: 24007
+ port: 24007
+ token:
+ admin: DFvQ8GJ9JD4fKNfuyEddw3rjnFTkUKsv
+ controller_manager: EreGh6AnWf8DxH8cYavB2zS029PUi7vx
+ dns: RAFeVSE4UvsCz4gk3KYReuOI5jsZ1Xt3
+ kube_proxy: DFvQ8GelB7afH3wClC9romaMPhquyyEe
+ kubelet: 7bN5hJ9JD4fKjnFTkUKsvVNfuyEddw3r
+ logging: MJkXKdbgqRmTHSa2ykTaOaMykgO6KcEf
+ monitoring: hnsj0XqABgrSww7Nqo7UVTSZLJUt2XRd
+ scheduler: HY1UUxEPpmjW4a1dDLGIANYQp1nZkLDk
+ version: v1.2.4
+
kubernetes:
- pool:
+ pool:
+ address: 0.0.0.0
+ allow_privileged: true
+ ca: kubernetes
+ cluster_dns: 10.254.0.10
+ cluster_domain: cluster.local
+ enabled: true
+ kubelet:
+ allow_privileged: true
+ config: /etc/kubernetes/manifests
+ frequency: 5s
+ master:
+ apiserver:
+ members:
+ - host: 10.0.175.100
+ etcd:
+ members:
+ - host: 10.0.175.100
+ host: 10.0.175.100
+ network:
+ engine: calico
+ hash: fb5e30ebe6154911a66ec3fb5f1195b2
+ version: v0.19.0
+ token:
+ kube_proxy: DFvQ8GelB7afH3wClC9romaMPhquyyEe
+ kubelet: 7bN5hJ9JD4fKjnFTkUKsvVNfuyEddw3r
+ version: v1.2.4
-Kubernetes with OpenContrail
-----------------------------
+
+Kubernetes with OpenContrail network plugin
+------------------------------------------------
On Master:
@@ -105,8 +191,33 @@
network:
engine: calico
-Kubernetes Service Definitions
-------------------------------
+Kubernetes with GlusterFS for storage
+---------------------------------------------
+
+.. code-block:: yaml
+
+ kubernetes:
+ master
+ ...
+ storage:
+ engine: glusterfs
+ port: 24007
+ members:
+ - host: 10.0.175.101
+ port: 24007
+ - host: 10.0.175.102
+ port: 24007
+ - host: 10.0.175.103
+ port: 24007
+ ...
+
+Kubernetes Service Definitions in pillars
+==========================================
+
+Following samples show how to generate kubernetes manifest as well and provide single tool for complete infrastructure management.
+
+Deployment manifest
+---------------------
.. code-block:: yaml
@@ -157,7 +268,7 @@
-------
hostPath
-===========
+==========
.. code-block:: yaml
diff --git a/kubernetes/master/init.sls b/kubernetes/master/init.sls
index afbd5ea..3c28c89 100644
--- a/kubernetes/master/init.sls
+++ b/kubernetes/master/init.sls
@@ -1,4 +1,4 @@
-
+{%- from "kubernetes/map.jinja" import master with context %}
include:
- kubernetes.master.service
- kubernetes.master.etcd
diff --git a/kubernetes/pool/init.sls b/kubernetes/pool/init.sls
index 3ef881e..81a7366 100644
--- a/kubernetes/pool/init.sls
+++ b/kubernetes/pool/init.sls
@@ -1,4 +1,4 @@
-
+{%- from "kubernetes/map.jinja" import pool with context %}
include:
- kubernetes.pool.service
{%- if pool.network.engine == "calico" %}
diff --git a/metadata.yml b/metadata.yml
index 53b1371..dddea5b 100644
--- a/metadata.yml
+++ b/metadata.yml
@@ -1,3 +1,6 @@
name: "kubernetes"
version: "0.2"
source: "https://github.com/tcpcloud/salt-formula-kubernetes"
+dependencies:
+- name: linux
+ source: "https://github.com/tcpcloud/salt-formula-linux"
\ No newline at end of file
diff --git a/tests/pillar/master_cluster.sls b/tests/pillar/master_cluster.sls
new file mode 100644
index 0000000..3dead17
--- /dev/null
+++ b/tests/pillar/master_cluster.sls
@@ -0,0 +1,61 @@
+kubernetes:
+ common:
+ binaries_version: v1.1.1
+ network:
+ engine: none
+ master:
+ addons:
+ dns:
+ domain: cluster.local
+ enabled: true
+ replicas: 1
+ server: 10.254.0.10
+ heapster_influxdb:
+ enabled: true
+ public_ip: 185.22.97.132
+ ui:
+ enabled: true
+ public_ip: 185.22.97.131
+ admin:
+ password: password
+ username: admin
+ apiserver:
+ address: 10.0.175.100
+ port: 8080
+ ca: kubernetes
+ enabled: true
+ etcd:
+ host: 127.0.0.1
+ members:
+ - host: 10.0.175.100
+ name: node040
+ name: node040
+ token: ca939ec9c2a17b0786f6d411fe019e9b
+ kubelet:
+ allow_privileged: true
+ network:
+ engine: calico
+ hash: fb5e30ebe6154911a66ec3fb5f1195b2
+ private_ip_range: 10.150.0.0/16
+ version: v0.19.0
+ service_addresses: 10.254.0.0/16
+ storage:
+ engine: glusterfs
+ members:
+ - host: 10.0.175.101
+ port: 24007
+ - host: 10.0.175.102
+ port: 24007
+ - host: 10.0.175.103
+ port: 24007
+ port: 24007
+ token:
+ admin: DFvQ8GJ9JD4fKNfuyEddw3rjnFTkUKsv
+ controller_manager: EreGh6AnWf8DxH8cYavB2zS029PUi7vx
+ dns: RAFeVSE4UvsCz4gk3KYReuOI5jsZ1Xt3
+ kube_proxy: DFvQ8GelB7afH3wClC9romaMPhquyyEe
+ kubelet: 7bN5hJ9JD4fKjnFTkUKsvVNfuyEddw3r
+ logging: MJkXKdbgqRmTHSa2ykTaOaMykgO6KcEf
+ monitoring: hnsj0XqABgrSww7Nqo7UVTSZLJUt2XRd
+ scheduler: HY1UUxEPpmjW4a1dDLGIANYQp1nZkLDk
+ version: v1.2.4
diff --git a/tests/pillar/pool_cluster.sls b/tests/pillar/pool_cluster.sls
new file mode 100644
index 0000000..2bde4fd
--- /dev/null
+++ b/tests/pillar/pool_cluster.sls
@@ -0,0 +1,35 @@
+kubernetes:
+ common:
+ binaries_version: v1.1.1
+ network:
+ engine: none
+ pool:
+ enabled: true
+ version: v1.2.0
+ master:
+ host: 127.0.0.1
+ apiserver:
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ etcd:
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ 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
+ network:
+ engine: calico
+ version: v0.19.0
+ hash: fb5e30ebe6154911a66ec3fb5f1195b2
\ No newline at end of file