- name: Apply Kubernetes YAMLs
  hosts: kubernetes
  tasks:
    - name: Ensure SSL related directories exist
      file:
        path: "{{ item }}"
        state: directory
      loop:
        - "/etc/ssl/crt"
        - "/etc/ssl/csr"
        - "/etc/ssl/private"

    - name: Generate an OpenSSL private key.
      openssl_privatekey:
        path: /etc/ssl/private/privkey.pem

    - name: generate openssl certficate signing requests
      openssl_csr:
        path: /etc/ssl/csr/hello-world.app.csr
        privatekey_path: /etc/ssl/private/privkey.pem
        common_name: hello-world.app

    - name: Generate a Self Signed OpenSSL certificate
      openssl_certificate:
        path: /etc/ssl/crt/hello-world.app.crt
        privatekey_path: /etc/ssl/private/privkey.pem
        csr_path: /etc/ssl/csr/hello-world.app.csr
        provider: selfsigned

    - name: Create k8s secret
      command: "kubectl create secret tls tls-secret --cert=/etc/ssl/crt/hello-world.app.crt --key=/etc/ssl/private/privkey.pem"
      register: result
      failed_when:
        - result.rc == 2
          
    - name: Deploy web app
      k8s:
        state: present
        definition: "{{ lookup('file', './helloworld.yml') }}"
        kubeconfig: '/home/abregman/.kube/config'
        namespace: 'default'
        wait: true
