mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-05-07 13:32:37 +00:00
[backport/2.1] molecule to ansible-test CI migration (#398)
integration testing migration from molecule to ansible-test
This commit is contained in:
3
tests/integration/targets/k8s_json_patch/aliases
Normal file
3
tests/integration/targets/k8s_json_patch/aliases
Normal file
@@ -0,0 +1,3 @@
|
||||
k8s_json_patch
|
||||
k8s
|
||||
time=33
|
||||
174
tests/integration/targets/k8s_json_patch/tasks/main.yml
Normal file
174
tests/integration/targets/k8s_json_patch/tasks/main.yml
Normal file
@@ -0,0 +1,174 @@
|
||||
- vars:
|
||||
namespace: json-patch
|
||||
pod: json-patch
|
||||
deployment: json-patch
|
||||
k8s_wait_timeout: 240
|
||||
|
||||
block:
|
||||
- name: Ensure namespace exists
|
||||
kubernetes.core.k8s:
|
||||
kind: namespace
|
||||
name: "{{ namespace }}"
|
||||
|
||||
- name: Create a simple pod
|
||||
kubernetes.core.k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
namespace: "{{ namespace }}"
|
||||
name: "{{ pod }}"
|
||||
labels:
|
||||
label1: foo
|
||||
spec:
|
||||
containers:
|
||||
- image: busybox:musl
|
||||
name: busybox
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- while true; do echo $(date); sleep 10; done
|
||||
wait: yes
|
||||
wait_timeout: "{{ k8s_wait_timeout | default(omit) }}"
|
||||
|
||||
- name: Add a label and replace the image in checkmode
|
||||
kubernetes.core.k8s_json_patch:
|
||||
kind: Pod
|
||||
namespace: "{{ namespace }}"
|
||||
name: "{{ pod }}"
|
||||
patch:
|
||||
- op: add
|
||||
path: /metadata/labels/label2
|
||||
value: bar
|
||||
- op: replace
|
||||
path: /spec/containers/0/image
|
||||
value: busybox:glibc
|
||||
check_mode: yes
|
||||
register: result
|
||||
|
||||
- name: Assert patch was made
|
||||
assert:
|
||||
that:
|
||||
- result.changed
|
||||
- result.result.metadata.labels.label2 == "bar"
|
||||
- result.result.spec.containers[0].image == "busybox:glibc"
|
||||
|
||||
- name: Describe pod
|
||||
kubernetes.core.k8s_info:
|
||||
kind: Pod
|
||||
name: "{{ pod }}"
|
||||
namespace: "{{ namespace }}"
|
||||
register: result
|
||||
|
||||
- name: Assert pod has not changed
|
||||
assert:
|
||||
that:
|
||||
- result.resources[0].metadata.labels.label2 is not defined
|
||||
- result.resources[0].spec.containers[0].image == "busybox:musl"
|
||||
|
||||
- name: Add a label and replace the image
|
||||
kubernetes.core.k8s_json_patch:
|
||||
kind: Pod
|
||||
namespace: "{{ namespace }}"
|
||||
name: "{{ pod }}"
|
||||
patch:
|
||||
- op: add
|
||||
path: /metadata/labels/label2
|
||||
value: bar
|
||||
- op: replace
|
||||
path: /spec/containers/0/image
|
||||
value: busybox:glibc
|
||||
register: result
|
||||
|
||||
- name: Assert patch was made
|
||||
assert:
|
||||
that:
|
||||
- result.changed
|
||||
|
||||
- name: Describe pod
|
||||
kubernetes.core.k8s_info:
|
||||
kind: Pod
|
||||
name: "{{ pod }}"
|
||||
namespace: "{{ namespace }}"
|
||||
register: result
|
||||
|
||||
- name: Assert that both patch operations have been applied
|
||||
assert:
|
||||
that:
|
||||
- result.resources[0].metadata.labels.label2 == "bar"
|
||||
- result.resources[0].spec.containers[0].image == "busybox:glibc"
|
||||
|
||||
- name: Apply the same patch to the pod
|
||||
kubernetes.core.k8s_json_patch:
|
||||
kind: Pod
|
||||
namespace: "{{ namespace }}"
|
||||
name: "{{ pod }}"
|
||||
patch:
|
||||
- op: add
|
||||
path: /metadata/labels/label2
|
||||
value: bar
|
||||
- op: replace
|
||||
path: /spec/containers/0/image
|
||||
value: busybox:glibc
|
||||
register: result
|
||||
|
||||
- name: Assert that no changes were made
|
||||
assert:
|
||||
that:
|
||||
- not result.changed
|
||||
|
||||
- name: Create a simple deployment
|
||||
kubernetes.core.k8s:
|
||||
wait: yes
|
||||
wait_timeout: "{{ k8s_wait_timeout | default(omit) }}"
|
||||
definition:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
namespace: "{{ namespace }}"
|
||||
name: "{{ deployment }}"
|
||||
labels:
|
||||
name: "{{ deployment }}"
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: busybox
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: busybox
|
||||
spec:
|
||||
containers:
|
||||
- name: busybox
|
||||
image: busybox
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- while true; do echo $(date); sleep 10; done
|
||||
|
||||
- name: Apply patch and wait for deployment to be ready
|
||||
kubernetes.core.k8s_json_patch:
|
||||
kind: Deployment
|
||||
namespace: "{{ namespace }}"
|
||||
name: "{{ deployment }}"
|
||||
patch:
|
||||
- op: replace
|
||||
path: /spec/replicas
|
||||
value: 3
|
||||
wait: yes
|
||||
wait_timeout: "{{ k8s_wait_timeout | default(omit) }}"
|
||||
register: result
|
||||
|
||||
- name: Assert all replicas are available
|
||||
assert:
|
||||
that:
|
||||
- result.result.status.availableReplicas == 3
|
||||
|
||||
always:
|
||||
- name: Ensure namespace has been deleted
|
||||
kubernetes.core.k8s:
|
||||
kind: Namespace
|
||||
name: "{{ namespace }}"
|
||||
state: absent
|
||||
ignore_errors: yes
|
||||
Reference in New Issue
Block a user