Add k8s-compact model
This model is for small-factor single-server deployemnts.
Change-Id: I0748eb88065af26e9f87b7e0d944d5fa4af33d02
diff --git a/classes/cluster/k8s-compact/kubernetes/compute.yml b/classes/cluster/k8s-compact/kubernetes/compute.yml
new file mode 100644
index 0000000..f520941
--- /dev/null
+++ b/classes/cluster/k8s-compact/kubernetes/compute.yml
@@ -0,0 +1,62 @@
+classes:
+#- system.linux.system.repo.docker
+- system.linux.system.repo.docker_legacy
+- service.docker.host
+- system.salt.minion.cert.etcd_client
+- system.salt.minion.cert.k8s_client_single
+- system.kubernetes.pool.single
+- cluster.k8s-compact.kubernetes
+parameters:
+ kubernetes:
+ pool:
+ cluster_dns: ${_param:kubernetes_internal_dns_address}
+ kubelet:
+ address: ${_param:single_address}
+ network:
+ etcd:
+ ssl:
+ enabled: true
+ image: ${_param:kubernetes_calico_image}
+ calicoctl:
+ image: ${_param:kubernetes_calicoctl_image}
+ cni:
+ image: ${_param:kubernetes_calico_cni_image}
+ common:
+ addons:
+ virtlet:
+ enabled: ${_param:kubernetes_virtlet_enabled}
+ namespace: ${_param:kubernetes_addon_namespace}
+ image: ${_param:kubernetes_virtlet_image}
+ hosts:
+ - kube01
+ hyperkube:
+ image: ${_param:kubernetes_hyperkube_image}
+ docker:
+ host:
+ pkgs:
+ - ${_param:kubernetes_docker_package}
+ - python-docker
+ options:
+ bip: 172.31.255.1/24
+ storage-driver: overlay2
+ linux:
+ network:
+ resolv:
+ dns:
+ - ${_param:kubernetes_internal_dns_address}
+ - 172.18.176.4
+ - 172.18.176.7
+ interface:
+ ens3:
+ enabled: true
+ type: eth
+ proto: static
+ name: ${_param:primary_interface}
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ gateway: 192.168.122.1
+ route:
+ kubernetes_services:
+ address: 10.201.0.0
+ netmask: 255.255.0.0
+ gateway: ${_param:single_address}
diff --git a/classes/cluster/k8s-compact/kubernetes/control.yml b/classes/cluster/k8s-compact/kubernetes/control.yml
new file mode 100644
index 0000000..d64e5c3
--- /dev/null
+++ b/classes/cluster/k8s-compact/kubernetes/control.yml
@@ -0,0 +1,63 @@
+classes:
+- system.salt.minion.cert.etcd_server_single
+- system.salt.minion.cert.k8s_server_single
+- service.etcd.server.single
+- system.kubernetes.master.single
+- cluster.k8s-compact.kubernetes.compute
+parameters:
+ helm:
+ client:
+ repos:
+ mirantisworkloads: https://mirantisworkloads.storage.googleapis.com/
+ etcd:
+ server:
+ bind:
+ host: ${_param:single_address}
+ source:
+ engine: docker_hybrid
+ ssl:
+ enabled: true
+ setup:
+ calico:
+ key: /calico/v1/ipam/v4/pool/${_param:calico_private_network}-${_param:calico_private_netmask}
+ value: '{"masquerade":true,"cidr":"${_param:calico_private_network}/${_param:calico_private_netmask}"}'
+ kubernetes:
+ common:
+ addons:
+ dns:
+ server: ${_param:kubernetes_internal_dns_address}
+ dashboard:
+ enabled: ${_param:kubernetes_dashboard}
+ helm:
+ enabled: ${_param:kubernetes_helm_enabled}
+ calico_policy:
+ enabled: ${_param:kubernetes_calico_policy_enabled}
+ image: ${_param:kubernetes_calico_policy_image}
+ netchecker:
+ enabled: ${_param:kubernetes_netchecker_enabled}
+ agent_image: ${_param:kubernetes_netchecker_agent_image}
+ server_image: ${_param:kubernetes_netchecker_server_image}
+ agent_probeurls: ${_param:kubernetes_netchecker_agent_probeurls}
+ coredns:
+ enabled: ${_param:kubernetes_coredns_enabled}
+ externaldns:
+ enabled: ${_param:kubernetes_externaldns_enabled}
+ image: ${_param:kubernetes_externaldns_image}
+ provider: ${_param:kubernetes_externaldns_provider}
+ master:
+ service_addresses: 10.201.0.0/16
+ addons:
+ dns:
+ server: ${_param:kubernetes_internal_dns_address}
+ kubelet:
+ address: ${_param:single_address}
+ etcd:
+ ssl:
+ enabled: true
+ network:
+ etcd:
+ ssl:
+ enabled: true
+ namespace:
+ netchecker:
+ enabled: true
diff --git a/classes/cluster/k8s-compact/kubernetes/init.yml b/classes/cluster/k8s-compact/kubernetes/init.yml
new file mode 100644
index 0000000..8aab8bf
--- /dev/null
+++ b/classes/cluster/k8s-compact/kubernetes/init.yml
@@ -0,0 +1,48 @@
+classes:
+- cluster.k8s-compact
+parameters:
+ _param:
+ control_address: ${_param:single_address}
+ kubernetes_internal_api_address: 10.201.0.1
+ kubernetes_internal_dns_address: 10.201.0.10
+ cluster_name: ${_param:infra_config_hostname}.${_param:cluster_domain}
+ kubernetes_control_node01_address: ${_param:single_address}
+ cluster_local_address: ${_param:single_address}
+ master_address: ${_param:single_address}
+
+ etcd_initial_token: IN7KaRMSo3xkGxkjAAPtkRkAgqN4ZNRq
+ node_address: ${_param:single_address}
+ node_hostname: ${_param:infra_config_hostname}
+ node_port: 4001
+
+ calico_private_network: 10.10.0.0
+ calico_private_netmask: 16
+
+ kubernetes_admin_user: admin
+ kubernetes_admin_password: sbPfel23ZigJF3Bm
+ kubernetes_admin_token: PpP6Mm3pAoPVqcKOKUu0x1dh7b1959Fi
+ kubernetes_kubelet_token: JJ2PKHxjiU6EYvIt18BqwdSK1HvWh8pt
+ kubernetes_kube-proxy_token: jT0hJk9L6cIw5UpYDNhsRwcj3Z2n62B6
+ kubernetes_scheduler_token: VgkUHfrW07zNxrb0ucFyX7NBnSJN9Xp6
+ kubernetes_controller-manager_token: uXrdZ1YKF6qlYm3sHje2iEXMGAGDWOIU
+ kubernetes_dns_token: 0S1I4iJeFjq5fopPwwCwTp3xFpEZfeUl
+ kubernetes_docker_package: docker-engine=1.12.6-0~ubuntu-xenial
+ kubernetes_calicoctl_image: docker-dev-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
+ kubernetes_calico_image: docker-dev-virtual.docker.mirantis.net/mirantis/projectcalico/calico/node:latest
+ kubernetes_calico_cni_image: docker-dev-virtual.docker.mirantis.net/mirantis/projectcalico/calico/cni:latest
+ kubernetes_calico_policy_image: calico/kube-policy-controller:v0.5.4
+ kubernetes_hyperkube_image: docker-dev-local.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.8.4-3
+ kubernetes_virtlet_image: mirantis/virtlet:latest
+ kubernetes_netchecker_agent_image: mirantis/k8s-netchecker-agent:stable
+ kubernetes_netchecker_server_image: mirantis/k8s-netchecker-server:stable
+ kubernetes_netchecker_agent_probeurls: "http://ipinfo.io"
+ kubernetes_externaldns_image: mirantis/external-dns:latest
+ kubernetes_externaldns_provider: coredns
+ kubernetes_addon_namespace: kube-system
+ kubernetes_dashboard: false
+ kubernetes_helm_enabled: false
+ kubernetes_netchecker_enabled: false
+ kubernetes_calico_policy_enabled: false
+ kubernetes_virtlet_enabled: true
+ kubernetes_coredns_enabled: false
+ kubernetes_externaldns_enabled: false