manual-k8s-ansible-deploy/k8s-deploy/07-k8s-worker-deploy.yaml
Jonny Ervine 694af68fb1 new file: files/X-csr.json
new file:   files/admin-csr.json
	new file:   files/ca-config.json
	new file:   files/ca-csr.json
	new file:   inventory
	new file:   inventory.orig
	new file:   k8s-deploy.yaml
	new file:   k8s-deploy/00-k8s-requirements.yaml
	new file:   k8s-deploy/01-k8s-certs-create.yaml
	new file:   k8s-deploy/02-k8s-certs-copy.yaml
	new file:   k8s-deploy/03-k8s-deploy-etcd.yaml
	new file:   k8s-deploy/04-k8s-controller-deploy.yaml
	new file:   k8s-deploy/05-k8s-nginx-deploy.yaml
	new file:   k8s-deploy/06-k8s-workers-certs-deploy.yaml
	new file:   k8s-deploy/07-k8s-worker-deploy.yaml
	new file:   k8s-deploy/08-rbac-clusterrole-create.yaml
	new file:   k8s-deploy/09-k8s-create-remote-admin.yaml
	new file:   k8s-deploy/README.md
	new file:   k8s-deploy/core-dns.yaml
	new file:   k8s-deploy/defaults/main.yml
	new file:   k8s-deploy/files/99_loopback.conf
	new file:   k8s-deploy/files/X-csr.json
	new file:   k8s-deploy/files/admin-csr.json
	new file:   k8s-deploy/files/arm/etcd
	new file:   k8s-deploy/files/arm/etcdctl
	new file:   k8s-deploy/files/ca-config.json
	new file:   k8s-deploy/files/ca-csr.json
	new file:   k8s-deploy/files/clusterrole-api-to-kubelet.yaml
	new file:   k8s-deploy/files/clusterrolebinding-api-to-kubelet.yaml
	new file:   k8s-deploy/files/config.toml
	new file:   k8s-deploy/files/containerd.service
	new file:   k8s-deploy/files/kube-controller-manager-csr.json
	new file:   k8s-deploy/files/kube-proxy-csr.json
	new file:   k8s-deploy/files/kube-proxy.service
	new file:   k8s-deploy/files/kube-scheduler-csr.json
	new file:   k8s-deploy/files/kubelet.service
	new file:   k8s-deploy/files/kubernetes-csr.json
	new file:   k8s-deploy/files/service-account-csr.json
	new file:   k8s-deploy/files/x86_64/etcd
	new file:   k8s-deploy/files/x86_64/etcdctl
	new file:   k8s-deploy/handlers/main.yml
	new file:   k8s-deploy/k8s-deploy.yaml
	new file:   k8s-deploy/k8s-uninstall.yaml
	new file:   k8s-deploy/meta/main.yml
	new file:   k8s-deploy/tasks/k8s-certs-create.yaml
	new file:   k8s-deploy/tasks/main.yml
	new file:   k8s-deploy/templates/10_bridge.conf.j2
	new file:   k8s-deploy/templates/encryption-config.j2
	new file:   k8s-deploy/templates/etcd.service-amd64.j2
	new file:   k8s-deploy/templates/etcd.service-arm.j2
	new file:   k8s-deploy/templates/kube-apiserver.service.j2
	new file:   k8s-deploy/templates/kube-controller-manager.service.j2
	new file:   k8s-deploy/templates/kube-proxy-config.yaml.j2
	new file:   k8s-deploy/templates/kube-scheduler.service.j2
	new file:   k8s-deploy/templates/kube-scheduler.yaml.j2
	new file:   k8s-deploy/templates/kubelet-config.yaml.j2
	new file:   k8s-deploy/templates/kubernetes.default.svc.cluster.local.j2
	new file:   k8s-deploy/templates/worker-csr_json.j2
	new file:   k8s-deploy/test.yaml
	new file:   k8s-deploy/tests/inventory
	new file:   k8s-deploy/tests/test.yml
	new file:   k8s-deploy/vars/main.yml
	new file:   rollback_k8s-deploy.yaml
Initial commit
2020-02-19 08:13:09 +00:00

184 lines
5.3 KiB
YAML

---
- name: Copy necessary files to worker nodes
hosts: workers
vars:
kubernetes_files:
- ca.pem
kubelet_files:
- kube-worker.kubeconfig
kube_proxy_files:
- kube-proxy.kubeconfig
workers:
- debian-k8s-node1
- debian-k8s-node2
become: true
tasks:
- name: Create the var lib kubernetes directory
file:
path: /var/lib/kubernetes
state: directory
- name: Create the var lib kubelet directory
file:
path: /var/lib/kubelet
state: directory
- name: Create the var lib kube-proxy directory
file:
path: /var/lib/kube-proxy
state: directory
- name: Copy the files to kubernetes directory
copy:
src: /var/tmp/kubernetes/{{ item }}
dest: /var/lib/kubernetes/{{ item }}
mode: preserve
with_items:
- "{{ kubernetes_files }}"
- name: Copy kubeconfig file to the kubelet directory
copy:
src: /var/tmp/kubernetes/{{ item }}.kubeconfig
dest: /var/lib/kubelet/kubeconfig
mode: preserve
with_items:
- "{{ workers }}"
- name: Copy worker node pem file to kubelet directory
copy:
src: /var/tmp/kubernetes/{{ item }}.pem
dest: /var/lib/kubelet/{{ item }}.pem
mode: preserve
with_items:
- "{{ workers }}"
- name: Copy worker node key pem file to kubelet directory
copy:
src: /var/tmp/kubernetes/{{ item }}-key.pem
dest: /var/lib/kubelet/{{ item }}-key.pem
mode: preserve
with_items:
- "{{ workers }}"
- name: Copy kube-proxy kubeconfig file to kube-proxy directory
copy:
src: /var/tmp/kubernetes/kube-proxy.kubeconfig
dest: /var/lib/kube-proxy/kubeconfig
mode: preserve
- name: Download and install the Kubernetes binaries
hosts: workers
become: true
vars:
tasks:
- name: Install dependencies
apt:
name: "{{ item }}"
state: present
with_items:
- "socat"
- "conntrack"
- "ipset"
- name: Download and install worker binaries
get_url:
url: "{{ item }}"
dest: /usr/local/bin
mode: 0755
with_items:
- "https://storage.googleapis.com/kubernetes-release/release/v1.11.2/bin/linux/amd64/kubectl"
- "https://storage.googleapis.com/kubernetes-release/release/v1.11.2/bin/linux/amd64/kube-proxy"
- "https://storage.googleapis.com/kubernetes-release/release/v1.11.2/bin/linux/amd64/kubelet"
- "https://storage.googleapis.com/kubernetes-the-hard-way/runsc"
- name: Download utilities
get_url:
url: "{{ item }}"
dest: /var/tmp/
with_items:
- "https://github.com/kubernetes-incubator/cri-tools/releases/download/v1.11.1/crictl-v1.11.1-linux-amd64.tar.gz"
- "https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz"
- "https://github.com/containerd/containerd/releases/download/v1.2.0-beta.2/containerd-1.2.0-beta.2.linux-amd64.tar.gz"
- name: Download runc
get_url:
url: https://github.com/opencontainers/runc/releases/download/v1.0.0-rc5/runc.amd64
dest: /usr/local/bin/runc
mode: 0755
- name: Create installation directories
file:
path: "{{ item }}"
state: directory
with_items:
- "/etc/cni/net.d"
- "/opt/cni/bin"
- "/var/lib/kubelet"
- "/var/lib/kube-proxy"
- "/var/lib/kubernetes"
- "/var/run/kubernetes"
- "/etc/containerd"
- name: Extract crictl binary
unarchive:
remote_src: yes
src: /var/tmp/crictl-v1.11.1-linux-amd64.tar.gz
dest: /usr/local/bin
mode: 0755
- name: Extract cniplugins binaries
unarchive:
remote_src: yes
src: /var/tmp/cni-plugins-amd64-v0.7.1.tgz
dest: /opt/cni/bin
mode: 0755
- name: Extract containerd binaries
unarchive:
remote_src: yes
src: /var/tmp/containerd-1.2.0-beta.2.linux-amd64.tar.gz
dest: /
mode: 0755
- name: Create the CNI configuration
hosts: workers
become: true
vars:
pod_cidr: 10.200.0.0/24
cluster_cidr: 10.200.0.0/16
tasks:
- name: Create bridge.conf file
template:
src: templates/10_bridge.conf.j2
dest: /etc/cni/net.d/10_bridge.conf
- name: Create loopback file
copy:
src: files/99_loopback.conf
dest: /etc/cni/net.d/99_loopback.conf
- name: Create containerd configuration
copy:
src: files/config.toml
dest: /etc/containerd/config.toml
- name: Create containerd service file
copy:
src: files/containerd.service
dest: /etc/systemd/system/containerd.service
- name: Create kubelet-config.yaml file
template:
src: templates/kubelet-config.yaml.j2
dest: /var/lib/kubelet/kubelet-config.yaml
- name: Create the kubelet service file
copy:
src: files/kubelet.service
dest: /etc/systemd/system/kubelet.service
- name: Create the kube-proxy-config.yaml file
template:
src: templates/kube-proxy-config.yaml.j2
dest: /var/lib/kube-proxy/kube-proxy-config.yaml
- name: Create the kube-proxy.service file
copy:
src: files/kube-proxy.service
dest: /etc/systemd/system/kube-proxy.service
- name: Reload systemd configuration
command: systemctl daemon-reload
- name: Start and enable the worker daemons
service:
name: "{{ item }}"
state: started
enabled: true
with_items:
- "containerd"
- "kubelet"
- "kube-proxy"