---

- include: credentials-check.yml
  tags: oci

- name: "OCI Cloud Controller | Generate Cloud Provider Configuration"
  template:
    src: controller-manager-config.yml.j2
    dest: "{{ kube_config_dir }}/controller-manager-config.yml"
  when: inventory_hostname == groups['kube_control_plane'][0]
  tags: oci

- name: "OCI Cloud Controller | Slurp Configuration"
  slurp:
    src: "{{ kube_config_dir }}/controller-manager-config.yml"
  register: controller_manager_config

- name: "OCI Cloud Controller | Encode Configuration"
  set_fact:
    controller_manager_config_base64: "{{ controller_manager_config.content }}"
  when: inventory_hostname == groups['kube_control_plane'][0]
  tags: oci

- name: "OCI Cloud Controller | Generate Manifests"
  template:
    src: oci-cloud-provider.yml.j2
    dest: "{{ kube_config_dir }}/oci-cloud-provider.yml"
  when: inventory_hostname == groups['kube_control_plane'][0]
  tags: oci

- name: "OCI Cloud Controller | Apply Manifests"
  kube:
    kubectl: "{{ bin_dir }}/kubectl"
    filename: "{{ kube_config_dir }}/oci-cloud-provider.yml"
    state: latest
  when: inventory_hostname == groups['kube_control_plane'][0]
  tags: oci