# TODO: This is the only way I could get the kubeconfig, I don't know why. Running the lookup outside of debug seems to return an empty string #- debug: msg={{ lookup('env', 'K8S_AUTH_KUBECONFIG') }} # register: kubeconfig # Kubernetes resources - block: - name: Create a namespace k8s: name: crd kind: namespace - name: install custom resource definitions k8s: definition: "{{ lookup('file', role_path + '/files/setup-crd.yml') }}" - name: create custom resource definition k8s: definition: "{{ lookup('file', role_path + '/files/crd-resource.yml') }}" namespace: crd register: create_crd - name: patch custom resource definition k8s: definition: "{{ lookup('file', role_path + '/files/crd-resource.yml') }}" namespace: crd register: recreate_crd ignore_errors: yes - name: assert that recreating crd is as expected assert: that: - recreate_crd_default_merge_expectation - block: - name: recreate custom resource definition with merge_type k8s: definition: "{{ lookup('file', role_path + '/files/crd-resource.yml') }}" merge_type: merge namespace: crd register: recreate_crd_with_merge - name: recreate custom resource definition with merge_type list k8s: definition: "{{ lookup('file', role_path + '/files/crd-resource.yml') }}" merge_type: - strategic-merge - merge namespace: crd register: recreate_crd_with_merge_list when: recreate_crd is successful - name: remove crd k8s: definition: "{{ lookup('file', role_path + '/files/crd-resource.yml') }}" namespace: crd state: absent always: - name: remove crd namespace k8s: kind: Namespace name: crd state: absent ignore_errors: yes