mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-06-10 10:36:16 +00:00
k8s - allow resource definition using generateName SUMMARY #35 ISSUE TYPE Feature Pull Request COMPONENT NAME k8s ADDITIONAL INFORMATION - name: create pod using generateName k8s: namespace: test generate_name: pod- definition: kind: Pod spec: containers: - name: py image: python:3.7-alpine - name: create pod using generateName k8s: namespace: test definition: kind: Pod metadata: generateName: pod- spec: containers: - name: py image: python:3.7-alpine Reviewed-by: Mike Graves <mgraves@redhat.com> Reviewed-by: None <None> Reviewed-by: None <None>
188 lines
4.5 KiB
YAML
188 lines
4.5 KiB
YAML
- block:
|
|
- set_fact:
|
|
pod_00:
|
|
apiVersion: v1
|
|
kind: Pod
|
|
spec:
|
|
containers:
|
|
- name: py-container
|
|
image: python:3.7-alpine
|
|
imagePullPolicy: IfNotPresent
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- while true;do date;sleep 5; done
|
|
pod_01:
|
|
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
generateName: pod-
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- /bin/sh
|
|
- -c
|
|
- while true; do echo $(date); sleep 10; done
|
|
image: python:3.7-alpine
|
|
imagePullPolicy: IfNotPresent
|
|
name: py-container
|
|
|
|
- name: Create namespace using generateName
|
|
k8s:
|
|
definition:
|
|
kind: Namespace
|
|
metadata:
|
|
generateName: "test-"
|
|
labels:
|
|
ansible: test
|
|
register: result
|
|
|
|
- set_fact:
|
|
namespace: "{{ result.result.metadata.name }}"
|
|
|
|
- name: Create Pod without name
|
|
k8s:
|
|
namespace: "{{ namespace }}"
|
|
definition: "{{ pod_00 }}"
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- name: assert pod creation failed
|
|
assert:
|
|
that:
|
|
- result is failed
|
|
- "'name or generateName is required' in result.msg"
|
|
|
|
- name: create pod using name parameter should succeed
|
|
k8s:
|
|
namespace: "{{ namespace }}"
|
|
definition: "{{ pod_00 }}"
|
|
name: pod-01
|
|
|
|
- name: list Pod for namespace
|
|
k8s_info:
|
|
kind: Pod
|
|
namespace: "{{ namespace }}"
|
|
register: pods
|
|
|
|
- name: assert pod has been created
|
|
assert:
|
|
that:
|
|
- "{{ pods.resources | length == 1 }}"
|
|
|
|
- name: create pod using generate_name parameter should succeed
|
|
k8s:
|
|
namespace: "{{ namespace }}"
|
|
definition: "{{ pod_00 }}"
|
|
generate_name: pod-
|
|
|
|
- name: list Pod for namespace
|
|
k8s_info:
|
|
kind: Pod
|
|
namespace: "{{ namespace }}"
|
|
register: pods
|
|
|
|
- name: assert pod has been created
|
|
assert:
|
|
that:
|
|
- "{{ pods.resources | length == 2 }}"
|
|
|
|
- name: create pod using metadata.generateName parameter should succeed
|
|
k8s:
|
|
namespace: "{{ namespace }}"
|
|
definition: "{{ pod_01 }}"
|
|
|
|
- name: list Pod for namespace
|
|
k8s_info:
|
|
kind: Pod
|
|
namespace: "{{ namespace }}"
|
|
register: pods
|
|
|
|
- name: assert pod has been created
|
|
assert:
|
|
that:
|
|
- "{{ pods.resources | length == 3 }}"
|
|
|
|
- name: create object using metadata.generateName should support wait option
|
|
k8s:
|
|
namespace: "{{ namespace }}"
|
|
definition:
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
generateName: test-
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: nginx
|
|
serviceName: "nginx"
|
|
replicas: 3
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
spec:
|
|
terminationGracePeriodSeconds: 10
|
|
containers:
|
|
- name: nginx
|
|
image: k8s.gcr.io/nginx-slim:0.8
|
|
ports:
|
|
- containerPort: 80
|
|
name: web
|
|
wait: yes
|
|
wait_sleep: 3
|
|
wait_timeout: 180
|
|
|
|
- name: Create ConfigMap using generateName
|
|
kubernetes.core.k8s:
|
|
kind: ConfigMap
|
|
namespace: "{{ namespace }}"
|
|
generate_name: cmap-
|
|
append_hash: yes
|
|
register: config
|
|
|
|
- name: assert that configmap has been created using generateName
|
|
assert:
|
|
that:
|
|
- "config.result.metadata.name.startswith('cmap-')"
|
|
|
|
- name: Create Pod with failing container
|
|
kubernetes.core.k8s:
|
|
namespace: "{{ namespace }}"
|
|
definition:
|
|
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
name: pod1
|
|
spec:
|
|
containers:
|
|
- image: adslfkjadslfkjadslkfjsadf
|
|
name: non-existent-container-image
|
|
|
|
- name: Create second Pod using wait (it should not wait for the first container)
|
|
kubernetes.core.k8s:
|
|
namespace: "{{ namespace }}"
|
|
generate_name: "pod2-"
|
|
definition:
|
|
apiVersion: v1
|
|
kind: Pod
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- /bin/sh
|
|
- -c
|
|
- while true; do echo $(date); sleep 10; done
|
|
image: python:3.7-alpine
|
|
imagePullPolicy: Always
|
|
name: c0
|
|
wait: yes
|
|
wait_timeout: 10
|
|
|
|
always:
|
|
- name: Delete namespace
|
|
k8s:
|
|
kind: Namespace
|
|
name: "{{ namespace }}"
|
|
state: absent
|
|
ignore_errors: true
|