446919de6f
* Add apply to k8s module Use apply method for updating k8s resources. * Improve apply documentation * k8s: Make apply and merge_type mutually exclusive
71 lines
2.1 KiB
YAML
71 lines
2.1 KiB
YAML
# 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: pause 5 seconds to avoid race condition
|
|
pause:
|
|
seconds: 5
|
|
|
|
- name: create custom resource definition
|
|
k8s:
|
|
definition: "{{ lookup('file', role_path + '/files/crd-resource.yml') }}"
|
|
namespace: crd
|
|
apply: "{{ create_crd_with_apply | default(omit) }}"
|
|
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
|