mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-03-26 21:33:02 +00:00
User can combine multiple resources in the given template file, which can be consumed by k8s module to create multiple resources at once. Fixes: #243 Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
168 lines
4.4 KiB
YAML
168 lines
4.4 KiB
YAML
---
|
|
- block:
|
|
- set_fact:
|
|
template_namespace: template-test
|
|
|
|
- name: Ensure namespace exists
|
|
k8s:
|
|
definition:
|
|
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: "{{ template_namespace }}"
|
|
|
|
- name: Check if k8s_service does not inherit parameter
|
|
community.kubernetes.k8s_service:
|
|
template: "pod_template_one.j2"
|
|
state: present
|
|
ignore_errors: yes
|
|
register: r
|
|
|
|
- name: Check for expected failures in last tasks
|
|
assert:
|
|
that:
|
|
- r.failed
|
|
- "'is only supported parameter for' in r.msg"
|
|
|
|
- name: Specify both definition and template
|
|
community.kubernetes.k8s:
|
|
state: present
|
|
template: "pod_template_one.j2"
|
|
definition:
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: apply-deploy
|
|
namespace: "{{ template_namespace }}"
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: "{{ k8s_pod_name }}"
|
|
vars:
|
|
k8s_pod_name: pod
|
|
k8s_pod_namespace: "{{ template_namespace }}"
|
|
register: r
|
|
ignore_errors: yes
|
|
|
|
- name: Check if definition and template are mutually exclusive
|
|
assert:
|
|
that:
|
|
- r.failed
|
|
- "'parameters are mutually exclusive' in r.msg"
|
|
|
|
- name: Specify both src and template
|
|
community.kubernetes.k8s:
|
|
state: present
|
|
src: "../templates/pod_template_one.j2"
|
|
template: "pod_template_one.j2"
|
|
vars:
|
|
k8s_pod_name: pod
|
|
k8s_pod_namespace: "{{ template_namespace }}"
|
|
register: r
|
|
ignore_errors: yes
|
|
|
|
- name: Check if src and template are mutually exclusive
|
|
assert:
|
|
that:
|
|
- r.failed
|
|
- "'parameters are mutually exclusive' in r.msg"
|
|
|
|
- name: Create pod using template (direct specification)
|
|
community.kubernetes.k8s:
|
|
template: "pod_template_one.j2"
|
|
wait: yes
|
|
vars:
|
|
k8s_pod_name: pod-1
|
|
k8s_pod_namespace: "{{ template_namespace }}"
|
|
register: r
|
|
|
|
- name: Assert that pod creation succeeded using template
|
|
assert:
|
|
that:
|
|
- r is successful
|
|
|
|
- name: Create pod using template with wrong parameter
|
|
community.kubernetes.k8s:
|
|
template:
|
|
- default
|
|
wait: yes
|
|
vars:
|
|
k8s_pod_name: pod-2
|
|
k8s_pod_namespace: "{{ template_namespace }}"
|
|
register: r
|
|
ignore_errors: True
|
|
|
|
- name: Assert that pod creation failed using template due to wrong parameter
|
|
assert:
|
|
that:
|
|
- r is failed
|
|
- "'Error while reading template file' in r.msg"
|
|
|
|
- name: Create pod using template (path parameter)
|
|
community.kubernetes.k8s:
|
|
template:
|
|
path: "pod_template_one.j2"
|
|
wait: yes
|
|
vars:
|
|
k8s_pod_name: pod-3
|
|
k8s_pod_namespace: "{{ template_namespace }}"
|
|
register: r
|
|
|
|
- name: Assert that pod creation succeeded using template
|
|
assert:
|
|
that:
|
|
- r is successful
|
|
|
|
- name: Create pod using template (different variable string)
|
|
community.kubernetes.k8s:
|
|
template:
|
|
path: "pod_template_two.j2"
|
|
variable_start_string: '[['
|
|
variable_end_string: ']]'
|
|
wait: yes
|
|
vars:
|
|
k8s_pod_name: pod-4
|
|
k8s_pod_namespace: "[[ template_namespace ]]"
|
|
ansible_python_interpreter: "[[ ansible_playbook_python ]]"
|
|
register: r
|
|
|
|
- name: Assert that pod creation succeeded using template
|
|
assert:
|
|
that:
|
|
- r is successful
|
|
|
|
- name: Create pods using multi-resource template
|
|
community.kubernetes.k8s:
|
|
template:
|
|
path: "pod_template_three.j2"
|
|
wait: yes
|
|
vars:
|
|
k8s_pod_name_one: pod-5
|
|
k8s_pod_name_two: pod-6
|
|
k8s_pod_namespace: "{{ template_namespace }}"
|
|
register: r
|
|
|
|
- name: Assert that pod creation succeeded using template
|
|
assert:
|
|
that:
|
|
- r is successful
|
|
|
|
- name: Remove Pod (Cleanup)
|
|
k8s:
|
|
api_version: v1
|
|
kind: Pod
|
|
name: "pod-{{ item }}"
|
|
namespace: "{{ template_namespace }}"
|
|
state: absent
|
|
wait: yes
|
|
ignore_errors: yes
|
|
loop: "{{ range(1, 7) | list }}"
|
|
|
|
always:
|
|
- name: Remove namespace (Cleanup)
|
|
k8s:
|
|
kind: Namespace
|
|
name: "{{ template_namespace }}"
|
|
state: absent
|