aaf29c785f
* Provide Kubernetes resource validation to k8s module Use kubernetes-validate to validate Kubernetes resource definitions against the published schema * Additional tests for kubernetes-validate * Improve k8s error messages on exceptions Parse the response body for the message rather than returning a JSON blob If we've validated and there are warnings, return those too - they can be more helpful ``` "msg": "Failed to patch object: {\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{}, \"status\":\"Failure\",\"message\":\"[pos 334]: json: decNum: got first char 'h'\",\"code\":500}\n", ``` vs ``` "msg": "Failed to patch object: [pos 334]: json: decNum: got first char 'h'\nresource validation error at spec.replicas: 'hello' is not of type u'integer'", ``` * Update versions used In particular openshift/origin:3.9.0 * Add changelog for k8s validate change
37 lines
1.6 KiB
Bash
Executable file
37 lines
1.6 KiB
Bash
Executable file
#!/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/merge_type_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 "$@"
|