mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Convert k8s test to role and fix virtulenv usage. (#53883)
This commit is contained in:
parent
ea780b7e18
commit
b25a37bb38
19 changed files with 96 additions and 77 deletions
2
test/integration/targets/k8s/meta/main.yml
Normal file
2
test/integration/targets/k8s/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- setup_remote_tmp_dir
|
|
@ -1,9 +0,0 @@
|
||||||
- hosts: localhost
|
|
||||||
connection: local
|
|
||||||
gather_facts: no
|
|
||||||
vars:
|
|
||||||
ansible_python_interpreter: "{{ ansible_playbook_python }}"
|
|
||||||
playbook_namespace: ansible-test-k8s-full
|
|
||||||
|
|
||||||
roles:
|
|
||||||
- k8s
|
|
|
@ -1,9 +0,0 @@
|
||||||
- hosts: localhost
|
|
||||||
connection: local
|
|
||||||
vars:
|
|
||||||
playbook_namespace: ansible-test-k8s-validate
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- include_role:
|
|
||||||
name: k8s
|
|
||||||
tasks_from: validate_installed
|
|
|
@ -1,37 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# We don't set -u here, due to pypa/virtualenv#150
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
MYTMPDIR=$(mktemp -d 2>/dev/null || mktemp -d -t 'mytmpdir')
|
|
||||||
|
|
||||||
#trap 'rm -rf "${MYTMPDIR}"' EXIT
|
|
||||||
|
|
||||||
# This is needed for the ubuntu1604py3 tests
|
|
||||||
# Ubuntu patches virtualenv to make the default python2
|
|
||||||
# but for the python3 tests we need virtualenv to use python3
|
|
||||||
PYTHON=${ANSIBLE_TEST_PYTHON_INTERPRETER:-python}
|
|
||||||
|
|
||||||
# Test graceful failure for missing kubernetes-validate
|
|
||||||
virtualenv --system-site-packages --python "${PYTHON}" "${MYTMPDIR}/openshift-validate-not-installed"
|
|
||||||
source "${MYTMPDIR}/openshift-validate-not-installed/bin/activate"
|
|
||||||
$PYTHON -m pip install openshift==0.8.1
|
|
||||||
ansible-playbook -v playbooks/validate_not_installed.yml "$@"
|
|
||||||
|
|
||||||
# Test validate with kubernetes-validate
|
|
||||||
virtualenv --system-site-packages --python "${PYTHON}" "${MYTMPDIR}/openshift-validate-installed"
|
|
||||||
source "${MYTMPDIR}/openshift-validate-installed/bin/activate"
|
|
||||||
$PYTHON -m pip install openshift==0.8.1 kubernetes-validate==1.12.0
|
|
||||||
ansible-playbook -v playbooks/validate_installed.yml "$@"
|
|
||||||
|
|
||||||
# Test graceful failure for older versions of openshift
|
|
||||||
virtualenv --system-site-packages --python "${PYTHON}" "${MYTMPDIR}/openshift-0.6.0"
|
|
||||||
source "${MYTMPDIR}/openshift-0.6.0/bin/activate"
|
|
||||||
$PYTHON -m pip install openshift==0.6.0 kubernetes==6.0.0
|
|
||||||
ansible-playbook -v playbooks/older_openshift_fail.yml "$@"
|
|
||||||
|
|
||||||
# Run full test suite
|
|
||||||
virtualenv --system-site-packages --python "${PYTHON}" "${MYTMPDIR}/openshift-recent"
|
|
||||||
source "${MYTMPDIR}/openshift-recent/bin/activate"
|
|
||||||
$PYTHON -m pip install openshift==0.8.1
|
|
||||||
ansible-playbook -v playbooks/full_test.yml "$@"
|
|
83
test/integration/targets/k8s/tasks/main.yml
Normal file
83
test/integration/targets/k8s/tasks/main.yml
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
- set_fact:
|
||||||
|
virtualenv: "{{ remote_tmp_dir }}/virtualenv"
|
||||||
|
virtualenv_command: "{{ ansible_python_interpreter }} -m virtualenv"
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
virtualenv_interpreter: "{{ virtualenv }}/bin/python"
|
||||||
|
|
||||||
|
- pip:
|
||||||
|
name: virtualenv
|
||||||
|
|
||||||
|
# Test graceful failure for missing kubernetes-validate
|
||||||
|
|
||||||
|
- pip:
|
||||||
|
name:
|
||||||
|
- openshift==0.8.1
|
||||||
|
virtualenv: "{{ virtualenv }}"
|
||||||
|
virtualenv_command: "{{ virtualenv_command }}"
|
||||||
|
virtualenv_site_packages: yes
|
||||||
|
|
||||||
|
- include_tasks: validate_not_installed.yml
|
||||||
|
vars:
|
||||||
|
ansible_python_interpreter: "{{ virtualenv_interpreter }}"
|
||||||
|
|
||||||
|
- file:
|
||||||
|
path: "{{ virtualenv }}"
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
# Test validate with kubernetes-validate
|
||||||
|
|
||||||
|
- pip:
|
||||||
|
name:
|
||||||
|
- openshift==0.8.1
|
||||||
|
- kubernetes-validate==1.12.0
|
||||||
|
virtualenv: "{{ virtualenv }}"
|
||||||
|
virtualenv_command: "{{ virtualenv_command }}"
|
||||||
|
virtualenv_site_packages: yes
|
||||||
|
|
||||||
|
- include_tasks: validate_installed.yml
|
||||||
|
vars:
|
||||||
|
ansible_python_interpreter: "{{ virtualenv_interpreter }}"
|
||||||
|
playbook_namespace: ansible-test-k8s-validate
|
||||||
|
|
||||||
|
- file:
|
||||||
|
path: "{{ virtualenv }}"
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
# Test graceful failure for older versions of openshift
|
||||||
|
|
||||||
|
- pip:
|
||||||
|
name:
|
||||||
|
- openshift==0.6.0
|
||||||
|
- kubernetes==6.0.0
|
||||||
|
virtualenv: "{{ virtualenv }}"
|
||||||
|
virtualenv_command: "{{ virtualenv_command }}"
|
||||||
|
virtualenv_site_packages: yes
|
||||||
|
|
||||||
|
- include_tasks: older_openshift_fail.yml
|
||||||
|
vars:
|
||||||
|
ansible_python_interpreter: "{{ virtualenv_interpreter }}"
|
||||||
|
recreate_crd_default_merge_expectation: recreate_crd is failed
|
||||||
|
playbook_namespace: ansible-test-k8s-older-openshift
|
||||||
|
|
||||||
|
- file:
|
||||||
|
path: "{{ virtualenv }}"
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
# Run full test suite
|
||||||
|
|
||||||
|
- pip:
|
||||||
|
name:
|
||||||
|
- openshift==0.8.1
|
||||||
|
virtualenv: "{{ virtualenv }}"
|
||||||
|
virtualenv_command: "{{ virtualenv_command }}"
|
||||||
|
virtualenv_site_packages: yes
|
||||||
|
|
||||||
|
- include_tasks: full_test.yml
|
||||||
|
vars:
|
||||||
|
ansible_python_interpreter: "{{ virtualenv_interpreter }}"
|
||||||
|
playbook_namespace: ansible-test-k8s-full
|
||||||
|
|
||||||
|
- file:
|
||||||
|
path: "{{ virtualenv }}"
|
||||||
|
state: absent
|
|
@ -1,12 +1,3 @@
|
||||||
- hosts: localhost
|
|
||||||
connection: local
|
|
||||||
gather_facts: no
|
|
||||||
vars:
|
|
||||||
ansible_python_interpreter: "{{ ansible_playbook_python }}"
|
|
||||||
recreate_crd_default_merge_expectation: recreate_crd is failed
|
|
||||||
playbook_namespace: ansible-test-k8s-older-openshift
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- python_requirements_facts:
|
- python_requirements_facts:
|
||||||
dependencies:
|
dependencies:
|
||||||
- openshift==0.6.0
|
- openshift==0.6.0
|
||||||
|
@ -35,9 +26,7 @@
|
||||||
- "'. This is required for append_hash.' in k8s_append_hash.msg"
|
- "'. This is required for append_hash.' in k8s_append_hash.msg"
|
||||||
|
|
||||||
# merge_type
|
# merge_type
|
||||||
- include_role:
|
- include_tasks: crd.yml
|
||||||
name: k8s
|
|
||||||
tasks_from: crd
|
|
||||||
|
|
||||||
# validate
|
# validate
|
||||||
- name: attempt to use validate with older openshift
|
- name: attempt to use validate with older openshift
|
|
@ -4,6 +4,10 @@
|
||||||
name: "{{ playbook_namespace }}"
|
name: "{{ playbook_namespace }}"
|
||||||
kind: namespace
|
kind: namespace
|
||||||
|
|
||||||
|
- copy:
|
||||||
|
src: files
|
||||||
|
dest: "{{ remote_tmp_dir }}"
|
||||||
|
|
||||||
- name: incredibly simple ConfigMap
|
- name: incredibly simple ConfigMap
|
||||||
k8s:
|
k8s:
|
||||||
definition:
|
definition:
|
||||||
|
@ -23,7 +27,7 @@
|
||||||
|
|
||||||
- name: extra property does not fail without strict
|
- name: extra property does not fail without strict
|
||||||
k8s:
|
k8s:
|
||||||
src: "{{ role_path }}/files/kuard-extra-property.yml"
|
src: "{{ remote_tmp_dir }}/files/kuard-extra-property.yml"
|
||||||
namespace: "{{ playbook_namespace }}"
|
namespace: "{{ playbook_namespace }}"
|
||||||
validate:
|
validate:
|
||||||
fail_on_error: yes
|
fail_on_error: yes
|
||||||
|
@ -31,7 +35,7 @@
|
||||||
|
|
||||||
- name: extra property fails with strict
|
- name: extra property fails with strict
|
||||||
k8s:
|
k8s:
|
||||||
src: "{{ role_path }}/files/kuard-extra-property.yml"
|
src: "{{ remote_tmp_dir }}/files/kuard-extra-property.yml"
|
||||||
namespace: "{{ playbook_namespace }}"
|
namespace: "{{ playbook_namespace }}"
|
||||||
validate:
|
validate:
|
||||||
fail_on_error: yes
|
fail_on_error: yes
|
||||||
|
@ -46,7 +50,7 @@
|
||||||
|
|
||||||
- name: invalid type fails at validation stage
|
- name: invalid type fails at validation stage
|
||||||
k8s:
|
k8s:
|
||||||
src: "{{ role_path }}/files/kuard-invalid-type.yml"
|
src: "{{ remote_tmp_dir }}/files/kuard-invalid-type.yml"
|
||||||
namespace: "{{ playbook_namespace }}"
|
namespace: "{{ playbook_namespace }}"
|
||||||
validate:
|
validate:
|
||||||
fail_on_error: yes
|
fail_on_error: yes
|
||||||
|
@ -61,7 +65,7 @@
|
||||||
|
|
||||||
- name: invalid type fails with warnings when fail_on_error is False
|
- name: invalid type fails with warnings when fail_on_error is False
|
||||||
k8s:
|
k8s:
|
||||||
src: "{{ role_path }}/files/kuard-invalid-type.yml"
|
src: "{{ remote_tmp_dir }}/files/kuard-invalid-type.yml"
|
||||||
namespace: "{{ playbook_namespace }}"
|
namespace: "{{ playbook_namespace }}"
|
||||||
validate:
|
validate:
|
||||||
fail_on_error: no
|
fail_on_error: no
|
||||||
|
@ -76,11 +80,11 @@
|
||||||
|
|
||||||
- name: setup custom resource definition
|
- name: setup custom resource definition
|
||||||
k8s:
|
k8s:
|
||||||
src: "{{ role_path }}/files/setup-crd.yml"
|
src: "{{ remote_tmp_dir }}/files/setup-crd.yml"
|
||||||
|
|
||||||
- name: add custom resource definition
|
- name: add custom resource definition
|
||||||
k8s:
|
k8s:
|
||||||
src: "{{ role_path }}/files/crd-resource.yml"
|
src: "{{ remote_tmp_dir }}/files/crd-resource.yml"
|
||||||
namespace: "{{ playbook_namespace }}"
|
namespace: "{{ playbook_namespace }}"
|
||||||
validate:
|
validate:
|
||||||
fail_on_error: yes
|
fail_on_error: yes
|
|
@ -1,7 +1,3 @@
|
||||||
- hosts: localhost
|
|
||||||
connection: local
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- k8s:
|
- k8s:
|
||||||
definition:
|
definition:
|
||||||
apiVersion: v1
|
apiVersion: v1
|
Loading…
Reference in a new issue