---
- name: Set up various work related stuff
  hosts: localhost
  vars:
    uid: "{{ lookup('env','USER') }}"
    gitops: git+ssh://git@gitops.sunet.se 
    github: git+ssh://git@github.com/SUNET
    helm_version: 3.13.3
    platform: git+ssh://git@platform.sunet.se:22022/Drive
    commands:
      - get_drive_customers
      - get_drive_servers
    opsrepos:
      - sunet-drive-ops
      - mail-ops
      - platform-ops
    puppetrepos:
      - puppet-sunet
    platformrepos:
      - sunetdrive
    dockerrepos:
      - nextcloud-custom
      - dovecot-lda-docker
      - postfix-docker
  connection: local
  become: false
  tasks:
    - name: Create sunet config folder
      ansible.builtin.file:
        dest: /home/{{ uid }}/.config/sunet
        state: directory
    - name: Create sunet folders
      ansible.builtin.file:
        dest: /home/{{ uid }}/sunet/{{ item }}
        state: directory
      loop:
        - docker
        - ops
        - puppet
    - name: Get gitops ops-repos 
      ansible.builtin.command:
        chdir: /home/{{ uid }}/sunet/ops
        cmd: git clone {{ gitops }}/{{ item }}
        creates: /home/{{ uid }}/sunet/ops/{{ item }}
      loop: "{{ opsrepos }}"
    - name: Get github puppet-repos 
      ansible.builtin.command:
        chdir: /home/{{ uid }}/sunet/puppet
        cmd: git clone {{ github }}/{{ item }}
        creates: /home/{{ uid }}/sunet/puppet/{{ item }}
      loop: "{{ puppetrepos }}"
    - name: Get github docker-repos 
      ansible.builtin.command:
        chdir: /home/{{ uid }}/sunet/docker
        cmd: git clone {{ github }}/{{ item }}
        creates: /home/{{ uid }}/sunet/docker/{{ item }}
      loop: "{{ dockerrepos }}"
    - name: Get platform puppet-repos 
      ansible.builtin.command:
        chdir: /home/{{ uid }}/sunet/puppet
        cmd: git clone {{ platform }}/{{ item }}
        creates: /home/{{ uid }}/sunet/puppet/{{ item }}
      loop: "{{ platformrepos }}"
    - name: Install sunet programs 
      ansible.builtin.file:
        src: /home/{{ uid }}/sunet/ops/sunet-drive-ops/{{item}}
        dest: /home/{{ uid }}/.local/bin/{{ item }}
        state: link
      loop: "{{ commands }}"
    - name: Add tsocks.conf
      ansible.builtin.template:
        src: ../templates/tsocks.conf.j2
        dest: /etc/tsocks.conf
      become: true
    - name: Have helm allready installed
      stat:
        path: /usr/local/bin/helm
      register: have_helm
    - name: Get helm
      ansible.builtin.command:
        chdir: /tmp
        cmd: wget https://get.helm.sh/helm-v{{ helm_version }}-linux-amd64.tar.gz
        creates: /tmp/helm-v{{ helm_version }}-linux-amd64.tar.gz
      when: not have_helm.stat.exists
    - name: Unpack helm
      ansible.builtin.command:
        chdir: /tmp
        cmd: tar xfv helm-v{{ helm_version }}-linux-amd64.tar.gz
        creates: /tmp/linux-amd64/helm
      when: not have_helm.stat.exists
    - name: Install helm
      ansible.builtin.command:
        chdir: /tmp
        cmd: mv /tmp/linux-amd64/helm /usr/local/bin
        creates: /usr/local/bin/helm
      become: true
      when: not have_helm.stat.exists
    - name: cleanup helm
      ansible.builtin.command:
        chdir: /tmp
        cmd: rm -rf /tmp/helm-v{{ helm_version }}-linux-amd64.tar.gz /tmp/linux-amd64 
      when: not have_helm.stat.exists