---
- hosts: all
  gather_facts: false
  name: Install k3s server
  tags: k3s-server
  tasks:
    - name: Download k3s install script
      ansible.builtin.get_url:
        url: https://get.k3s.io
        dest: /usr/local/bin/k3s_install.sh
        mode: "755"
    - name: Install k3s server
      ansible.builtin.command: "k3s_install.sh"
      environment:
        INSTALL_K3S_CHANNEL: v1.27.3+k3s1
        INSTALL_K3S_EXEC: "--disable traefik"
      changed_when: false
    - name: Start and enable k3s server
      ansible.builtin.service:
        name: k3s
        state: started
        enabled: true
    - name: Add kubeconfig variable to bashrc
      ansible.builtin.lineinfile:
        path: ~/.bashrc
        line: "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml"
        insertafter: EOF
    - name: Get kubeconfig
      ansible.builtin.fetch:
        src: /etc/rancher/k3s/k3s.yaml
        dest: kubeconfig_{{ ansible_host }}.yml
        flat: true

- hosts: all
  gather_facts: false
  name: Deploy baseline
  tags: baseline
  tasks:
    - name: Copy manifest
      ansible.builtin.copy:
        src: argocd-init.yml
        dest: /var/lib/rancher/k3s/server/manifests/argocd-init.yml
        mode: "644"