---
- name: Create audit-policy directory
  file:
    path: "{{ audit_policy_file | dirname }}"
    state: directory
  tags:
    - kube-apiserver
  when: kubernetes_audit|default(false)

- name: Write api audit policy yaml
  template:
    src: apiserver-audit-policy.yaml.j2
    dest: "{{ audit_policy_file }}"
  notify: Master | Restart apiserver
  tags:
    - kube-apiserver
  when: kubernetes_audit|default(false)

- name: Write kube-apiserver manifest
  template:
    src: manifests/kube-apiserver.manifest.j2
    dest: "{{ kube_manifest_dir }}/kube-apiserver.manifest"
  notify: Master | Restart apiserver
  tags:
    - kube-apiserver

- meta: flush_handlers

- name: Write kube-scheduler kubeconfig
  template:
    src: kube-scheduler-kubeconfig.yaml.j2
    dest: "{{ kube_config_dir }}/kube-scheduler-kubeconfig.yaml"
  tags:
    - kube-scheduler

- name: Write kube-scheduler manifest
  template:
    src: manifests/kube-scheduler.manifest.j2
    dest: "{{ kube_manifest_dir }}/kube-scheduler.manifest"
  notify: Master | Restart kube-scheduler
  tags:
    - kube-scheduler

- name: Write kube-controller-manager kubeconfig
  template:
    src: kube-controller-manager-kubeconfig.yaml.j2
    dest: "{{ kube_config_dir }}/kube-controller-manager-kubeconfig.yaml"
  tags:
    - kube-controller-manager

- name: Write kube-controller-manager manifest
  template:
    src: manifests/kube-controller-manager.manifest.j2
    dest: "{{ kube_manifest_dir }}/kube-controller-manager.manifest"
  notify: Master | Restart kube-controller-manager
  tags:
    - kube-controller-manager

- meta: flush_handlers
