diff --git a/.gitignore b/.gitignore index 1d2dcdf..e4fdd22 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ image.tar.gz checkout *.iml +kubespray/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..32b0cc9 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "kubespray"] + path = kubespray + url = https://github.com/kubernetes-sigs/kubespray.git diff --git a/group_vars/k8s-cluster/plain.yml b/group_vars/k8s-cluster/plain.yml new file mode 100644 index 0000000..99009a6 --- /dev/null +++ b/group_vars/k8s-cluster/plain.yml @@ -0,0 +1,6 @@ +--- + +cloud_provider: external +kube_network_plugin: calico +kubelet_preferred_address_types: InternalIP,ExternalIP,Hostname +docker_log_opts: "--log-opt max-size=100m --log-opt max-file=5 --log-opt compress=true" diff --git a/group_vars/kube-master/plain.yml b/group_vars/kube-master/plain.yml index b764e7d..20e209c 100644 --- a/group_vars/kube-master/plain.yml +++ b/group_vars/kube-master/plain.yml @@ -3,6 +3,9 @@ hetzner_server_type: cpx21 hetzner_server_labels: "stage={{ stage }} service=kube-master" +ansible_ssh_host: "{{ stage_server_ip | default('-') }}" +ip: "{{ stage_private_server_ip | default('-') }}" + docker_enabled: false traefik_enabled: false filebeat_enabled: false diff --git a/group_vars/kube-node/plain.yml b/group_vars/kube-node/plain.yml index 9fe568e..9d63f49 100644 --- a/group_vars/kube-node/plain.yml +++ b/group_vars/kube-node/plain.yml @@ -3,6 +3,9 @@ hetzner_server_type: cpx41 hetzner_server_labels: "stage={{ stage }} service=kube-node" +ansible_ssh_host: "{{ stage_server_ip | default('-') }}" +ip: "{{ stage_private_server_ip | default('-') }}" + docker_enabled: false traefik_enabled: false filebeat_enabled: false diff --git a/group_vars/stage_dev/plain.yml b/group_vars/stage_dev/plain.yml index 6c9fca4..055f0c9 100644 --- a/group_vars/stage_dev/plain.yml +++ b/group_vars/stage_dev/plain.yml @@ -69,6 +69,36 @@ shared_service_gitea_ip: "{{ stage_server_infos | map(attribute='private_ip') | list | first }}" +shared_service_k8s_master_01: "{{ stage_server_infos + | selectattr('name', 'match', stage + '-k8s-master-11' ) + | map(attribute='private_ip') + | list + | first }}" +shared_service_k8s_master_02: "{{ stage_server_infos + | selectattr('name', 'match', stage + '-k8s-master-12' ) + | map(attribute='private_ip') + | list + | first }}" +shared_service_k8s_master_03: "{{ stage_server_infos + | selectattr('name', 'match', stage + '-k8s-master-13' ) + | map(attribute='private_ip') + | list + | first }}" +shared_service_k8s_worker_01: "{{ stage_server_infos + | selectattr('name', 'match', stage + '-k8s-worker-11' ) + | map(attribute='private_ip') + | list + | first }}" +shared_service_k8s_worker_02: "{{ stage_server_infos + | selectattr('name', 'match', stage + '-k8s-worker-12' ) + | map(attribute='private_ip') + | list + | first }}" +shared_service_k8s_worker_03: "{{ stage_server_infos + | selectattr('name', 'match', stage + '-k8s-worker-13' ) + | map(attribute='private_ip') + | list + | first }}" shared_service_maria_hostname: "{{ stage }}-maria-01" shared_service_postgres_01_hostname: "{{ stage }}-postgres-01" @@ -77,6 +107,14 @@ shared_service_elastic_stack_02_hostname: "{{ stage }}-elastic-stack-elastic-02" shared_service_elastic_stack_03_hostname: "{{ stage }}-elastic-stack-elastic-03" shared_service_elastic_stack_logstash_01_hostname: "{{ stage }}-elastic-stack-logstash-01" + +k8smaster_01_hostname: "{{ stage }}-k8s-master-11.{{ domain }}" +k8smaster_02_hostname: "{{ stage }}-k8s-master-12.{{ domain }}" +k8smaster_03_hostname: "{{ stage }}-k8s-master-13.{{ domain }}" +k8sworker_01_hostname: "{{ stage }}-k8s-worker-11.{{ domain }}" +k8sworker_02_hostname: "{{ stage }}-k8s-worker-12.{{ domain }}" +k8sworker_03_hostname: "{{ stage }}-k8s-worker-13.{{ domain }}" + shared_service_iam_hostname: "{{ stage }}-iam-01.{{ domain }}" shared_service_mail_hostname: "{{ stage }}-mail-01.{{ domain }}" shared_service_gitea_hostname: "{{ stage }}-gitea-01.{{ domain }}" @@ -140,6 +178,30 @@ shared_service_hosts: [ { ip: "{{ shared_service_gitea_ip }}", name: "{{ shared_service_gitea_hostname }}" + }, + { + ip: "{{ shared_service_k8s_master_01 }}", + name: "{{ k8smaster_01_hostname }}" + }, + { + ip: "{{ shared_service_k8s_master_02 }}", + name: "{{ k8smaster_02_hostname }}" + }, + { + ip: "{{ shared_service_k8s_master_03 }}", + name: "{{ k8smaster_03_hostname }}" + }, + { + ip: "{{ shared_service_k8s_worker_01 }}", + name: "{{ k8sworker_01_hostname }}" + }, + { + ip: "{{ shared_service_k8s_worker_02 }}", + name: "{{ k8sworker_02_hostname }}" + }, + { + ip: "{{ shared_service_k8s_worker_03 }}", + name: "{{ k8sworker_03_hostname }}" } ] diff --git a/stage-dev b/stage-dev index 9de4eb0..3b893f6 100644 --- a/stage-dev +++ b/stage-dev @@ -49,6 +49,25 @@ dev-prometheus-01 [webdav] dev-webdav-01 +[kube-master] +dev-k8s-master-11 ansible_ssh_host=168.119.121.8 ip=10.0.0.14 +dev-k8s-master-12 ansible_ssh_host=49.12.227.243 ip=10.0.0.10 +dev-k8s-master-13 ansible_ssh_host=49.12.239.190 ip=10.0.0.15 + +[etcd] +dev-k8s-master-11 ansible_ssh_host=168.119.121.8 ip=10.0.0.14 +dev-k8s-master-12 ansible_ssh_host=49.12.227.243 ip=10.0.0.10 +dev-k8s-master-13 ansible_ssh_host=49.12.239.190 ip=10.0.0.15 + +[kube-node] +dev-k8s-worker-11 ansible_ssh_host=49.12.239.187 ip=10.0.0.9 +dev-k8s-worker-12 ansible_ssh_host=168.119.120.31 ip=10.0.0.21 +dev-k8s-worker-13 ansible_ssh_host=168.119.120.44 ip=10.0.0.27 + +[k8s-cluster:children] +kube-node +kube-master + [stage_dev:children] awx connect @@ -66,6 +85,7 @@ postfix postgres prometheus webdav +k8s-cluster [all:children] stage_dev diff --git a/stage-qa b/stage-qa index ab56763..77c267b 100644 --- a/stage-qa +++ b/stage-qa @@ -46,6 +46,19 @@ qa-prometheus-01 [webdav] qa-webdav-01 +[kube-master] +qa-k8s-master-11 ansible_ssh_host=159.69.33.228 ip=10.1.0.24 + +[etcd] +qa-k8s-master-11 ansible_ssh_host=159.69.33.228 ip=10.1.0.24 + +[kube-node] +qa-k8s-worker-11 ansible_ssh_host=159.69.214.131 ip=10.1.0.25 + +[k8s-cluster:children] +kube-node +kube-master + [stage_qa:children] awx connect @@ -62,6 +75,7 @@ postfix postgres prometheus webdav +k8s-cluster [all:children] stage_qa