53 lines
1.5 KiB
YAML
53 lines
1.5 KiB
YAML
---
|
|
- name: Main playbook for Kubernetes cluster
|
|
hosts: kubernetes
|
|
become: true
|
|
|
|
roles:
|
|
- { role: ansible-role-linux-kubernetes, tags: [setup-cluster] }
|
|
- { role: geerlingguy.helm, tags: helm, when: "{{ inventory_hostname in groups['kubemaster'] }}" }
|
|
|
|
tasks:
|
|
|
|
- name: Add kubectl alias and completion only on master nodes
|
|
ansible.builtin.lineinfile:
|
|
path: "{{ item.path }}"
|
|
regexp: "{{ item.regexp }}"
|
|
state: "{{ item.state|default('present') }}"
|
|
line: "{{ item.line|default(omit) }}"
|
|
loop: "{{ kubernetes_alias_bashrc }}"
|
|
when:
|
|
- inventory_hostname in groups['kubemaster']
|
|
tags:
|
|
- kubernetes
|
|
|
|
# pip install kubernetes
|
|
- block:
|
|
- name: Download manifest on master
|
|
ansible.builtin.get_url:
|
|
url: "{{ item.url }}"
|
|
dest: "~/{{ item.url.split('/') | last }}"
|
|
mode: '0664'
|
|
run_once: true
|
|
loop: "{{ kubernetes_app }}"
|
|
|
|
- name: Create namespace
|
|
kubernetes.core.k8s:
|
|
name: "{{ item.namespace }}"
|
|
api_version: v1
|
|
kind: Namespace
|
|
state: present
|
|
loop: "{{ kubernetes_app }}"
|
|
|
|
- name: Apply manifest
|
|
kubernetes.core.k8s:
|
|
namespace: "{{ item.namespace }}"
|
|
state: present
|
|
src: "~/{{ item.url.split('/') | last }}"
|
|
loop: "{{ kubernetes_app }}"
|
|
when:
|
|
- inventory_hostname in groups['kubemaster']
|
|
- kubernetes_init_app
|
|
tags:
|
|
- kubernetes
|