1
0
mirror of https://github.com/jcwimer/kubernetes-ansible synced 2026-03-24 16:44:44 +00:00
Files
kubernetes-ansible/roles/initialize-kubernetes/tasks/main.yml

72 lines
2.2 KiB
YAML

---
- name: Initialize kubernetes
command: kubeadm init --apiserver-advertise-address={{ join_addr }} --pod-network-cidr=10.244.0.0/16
register: out
failed_when: "out.rc != 0 and '/etc/kubernetes/manifests/kube-apiserver.yaml already exists' not in out.stderr"
changed_when: "out.rc == 0 and '/etc/kubernetes/manifests/kube-apiserver.yaml already exists' not in out.stderr"
become: true
- name: Get join token
command: >
bash -c 'kubeadm token list | grep -v TOKEN | cut -d " " -f 1'
become: true
register: join_token_reg
changed_when: join_token_reg.rc == 0
- name: Set join facts
set_fact:
join_token: "{{ join_token_reg }}"
init_ip: "{{ join_addr }}"
- name: Copy admin file
shell: >
cp /etc/kubernetes/admin.conf {{ ansible_env.HOME }}/admin.conf && \
chown {{ ansible_user_id }}:{{ ansible_user_id }} {{ ansible_env.HOME }}/admin.conf
become: true
- name: Set KUBECONFIG
lineinfile:
path: "{{ ansible_env.HOME }}/.bashrc"
regexp: '^export\ KUBECONFIG='
line: 'export KUBECONFIG={{ ansible_env.HOME }}/admin.conf'
- name: Copy pod network install script
template:
src: ../templates/install-pod-network.sh.j2
dest: "{{ ansible_env.HOME }}/install-pod-network.sh"
- name: Install Pod Network
shell: >
bash {{ ansible_env.HOME }}/install-pod-network.sh
environment:
KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf"
- name: Install Kubernetes Dashboard
shell: kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
environment:
KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf"
ignore_errors: true
- name: Copy Traefik ds yml
template:
src: ../templates/traefik-ds.yml.j2
dest: "{{ ansible_env.HOME }}/traefik-ds.yml"
- name: Install Traefik Ingress Controller
shell: >
kubectl apply -f {{ ansible_env.HOME }}/traefik-ds.yml
environment:
KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf"
- name: Copy Traefik rbac yaml
template:
src: ../templates/traefik-rbac.yaml.j2
dest: "{{ ansible_env.HOME }}/traefik-rbac.yaml"
- name: Install Traefik RBAC
shell: >
kubectl apply -f {{ ansible_env.HOME }}/traefik-rbac.yaml
environment:
KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf"