Add k8s-compact model
This model is for small-factor single-server deployemnts.
Change-Id: I0748eb88065af26e9f87b7e0d944d5fa4af33d02
diff --git a/classes/cluster/k8s-compact/infra/init.yml b/classes/cluster/k8s-compact/infra/init.yml
new file mode 100755
index 0000000..6d5cb21
--- /dev/null
+++ b/classes/cluster/k8s-compact/infra/init.yml
@@ -0,0 +1,46 @@
+classes:
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.mcp.salt
+- system.salt.master.pkg
+- system.salt.minion.ca.salt_master
+- system.salt.master.api
+- system.reclass.storage.salt
+- cluster.k8s-compact
+parameters:
+ _param:
+ salt_master_base_environment: prd
+ salt_api_password_hash: "$6$WV0P1shnoDh2gI/Z$22/Bcd7ffMv0jDlFpT63cAU4PiXHz9pjXwngToKwqAsgoeK4HNR3PiKaushjxp3JsQ8hNoJmAC6TxzVqfV8WH/"
+ salt_master_host: ${_param:single_address}
+ salt_master_environment_revision: master
+ salt_master_environment_repository: 'https://github.com/salt-formulas'
+ salt_minion_ca_host: ${_param:infra_config_hostname}.${_param:cluster_domain}
+ salt_minion_ca_authority: salt_master_ca
+ reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
+ reclass_data_revision: master
+ reclass_config_master: ${_param:single_address}
+ linux:
+ network:
+ host:
+ kube01:
+ address: ${_param:single_address}
+ names:
+ - ${_param:infra_config_hostname}
+ - ${_param:infra_config_hostname}.${_param:cluster_domain}
+ system:
+ name: ${_param:infra_config_hostname}
+ domain: ${_param:cluster_domain}
+ salt:
+ master:
+ worker_threads: 3
+ reclass:
+ storage:
+ class_mapping:
+ common_node:
+ expression: all
+ node_param:
+ single_address:
+ value_template: <<node_control_ip>>
+ linux_system_codename:
+ value_template: <<node_os>>
+ salt_master_host:
+ value_template: <<node_master_ip>>
diff --git a/classes/cluster/k8s-compact/init.yml b/classes/cluster/k8s-compact/init.yml
new file mode 100755
index 0000000..7bafe50
--- /dev/null
+++ b/classes/cluster/k8s-compact/init.yml
@@ -0,0 +1,22 @@
+classes:
+- system.linux.system.single
+- system.linux.system.repo.ubuntu
+- system.linux.network.hosts
+parameters:
+ _param:
+ primary_interface: ens3
+ infra_config_hostname: kube01
+ cluster_domain: edge
+ linux_system_codename: xenial
+ apt_mk_version: nightly
+ openssh:
+ server:
+ password_auth: true
+ permit_root_login: true
+ linux:
+ system:
+ user:
+ root:
+ enabled: true
+ # r00tme
+ password: $6$9ojWyyN.$26Vj46JtCUL6C7XBQ8RmQTZLwo8/8SkqTRElXh0X2YBLrt7E/aVe2AYQ5gguYUwUknZNOSn5q7M9M3Jyf2gof/
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