1
0
Fork 0
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:
Matt Clay 2019-03-15 12:37:46 -07:00 committed by GitHub
parent ea780b7e18
commit b25a37bb38
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 96 additions and 77 deletions

View file

@ -0,0 +1,2 @@
dependencies:
- setup_remote_tmp_dir

View file

@ -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

View file

@ -1,9 +0,0 @@
- hosts: localhost
connection: local
vars:
playbook_namespace: ansible-test-k8s-validate
tasks:
- include_role:
name: k8s
tasks_from: validate_installed

View file

@ -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 "$@"

View 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

View file

@ -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

View file

@ -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

View file

@ -1,7 +1,3 @@
- hosts: localhost
connection: local
tasks:
- k8s: - k8s:
definition: definition:
apiVersion: v1 apiVersion: v1