Compare commits

15 Commits
5.4.2 ... 2.2.3

Author SHA1 Message Date
abikouo
0d9c4d3459 Release 2.2.3 (#340) 2022-01-19 12:15:40 +01:00
Mike Graves
3645c1c16c Add integration test to check handling of module_defaults (#296) (#333)
Add integration test to check handling of module_defaults

SUMMARY

Add integration test to make sure that module_defaults are handled correctly in tasks.
Related to #126.

ISSUE TYPE

Bugfix Pull Request

Reviewed-by: Mike Graves <mgraves@redhat.com>
Reviewed-by: None <None>
(cherry picked from commit 79699ba429)

Co-authored-by: Mandar Kulkarni <mandar242@gmail.com>
2022-01-18 08:38:38 -05:00
Mike Graves
5fdd70cbc3 [backport/2.2] Fix k8s_drain failing when pod has local storage (#332) 2022-01-17 10:53:57 +05:30
Mike Graves
1c02fe3443 [backport/2.2] Don't wait on *List resources for info module (#331) 2022-01-17 10:43:40 +05:30
Mike Graves
eaffde63bb [backport/2.2] Fix for common non-ASCII characters in CRDs (#334)
Co-authored-by: Alessandro Rossi <4215912+kubealex@users.noreply.github.com>
2022-01-14 07:49:37 +05:30
Mike Graves
d8538ffed3 Release 2.2.2 (#305)
Release 2.2.2

Reviewed-by: Abhijeet Kasurde <None>
Reviewed-by: Alina Buzachis <None>
Reviewed-by: None <None>
2021-12-07 20:08:22 +00:00
Mike Graves
bc168a5727 Remove binary file from molecule test suite (#298) (#302)
[backport/2.2] Remove binary file from molecule test suite

SUMMARY

The binary file used to test k8s_cp is causing larger problems
downstream. There's no reason why the binary file needs to function as
all we care about is that the content of the file has not changed during
the copy process. This can be accomplished by comparing file hashes.

ISSUE TYPE


Bugfix Pull Request

COMPONENT NAME

ADDITIONAL INFORMATION


Reviewed-by: Abhijeet Kasurde 
Reviewed-by: None 
(cherry picked from commit fa65698)

Reviewed-by: None <None>
2021-12-07 08:39:20 +00:00
Mike Graves
dc5a1e6dd1 turn network-ee-sanity-tests non-voting (#284) (#303)
[backport/2.2] turn network-ee-sanity-tests non-voting

SUMMARY

turn network-ee-sanity-tests non-voting
Reviewed-by: Mike Graves mgraves@redhat.com
Reviewed-by: None 
(cherry picked from commit b0f1501)

ISSUE TYPE


Bugfix Pull Request

COMPONENT NAME

ADDITIONAL INFORMATION

Reviewed-by: None <None>
2021-12-06 18:49:59 +00:00
Mike Graves
72536fe286 Fix sanity tests (#283) (#304)
[backport/2.2] Fix sanity tests

SUMMARY

Fix sanity tests
Reviewed-by: None 
Reviewed-by: None 
(cherry picked from commit 1116056)

ISSUE TYPE


Bugfix Pull Request

COMPONENT NAME

ADDITIONAL INFORMATION

Reviewed-by: None <None>
2021-12-06 17:13:18 +00:00
Mike Graves
f2d899b939 Release 2.2.1 (#267)
Release 2.2.1

Release 2.2.1

Reviewed-by: Gonéri Le Bouder <goneri@lebouder.net>
Reviewed-by: None <None>
2021-10-19 14:10:21 +00:00
Mike Graves
bc391218a4 common/_wait_for: ensure label_selectors is optional (#239) (#256)
[backport/2.2] common/_wait_for: ensure label_selectors is optional (#239)

Depends-On: ansible/ansible-zuul-jobs#1170
Depends-On: ansible/ansible-zuul-jobs#1169
Depends-On: ansible/ansible-zuul-jobs#1171
common/_wait_for: ensure label_selectors is optional
The label_selectors is a new parameter for _wait_for that was
introduced in #158.
The value is new and it can be set to None to make it optional. It should
not be mandatory a non optional parameter.
Reviewed-by: None 
Reviewed-by: Alina Buzachis 
Reviewed-by: None 
(cherry picked from commit 938f7e1)

Reviewed-by: None <None>
Reviewed-by: Gonéri Le Bouder <goneri@lebouder.net>
Reviewed-by: None <None>
2021-10-15 18:29:21 +00:00
Mike Graves
83b3a1aa39 Use yaml.safe_load in unit tests (#265) (#266)
[backport/2.2] Use yaml.safe_load in unit tests (#265)

Use yaml.safe_load in unit tests
SUMMARY
The function signature in pyyaml 6 for yaml.load changed. Using
safe_load fixes this.
ISSUE TYPE
Bugfix Pull Request
COMPONENT NAME
ADDITIONAL INFORMATION
Reviewed-by: Jill R 
Reviewed-by: None 
Reviewed-by: Gonéri Le Bouder goneri@lebouder.net
(cherry picked from commit 281ff56)

Reviewed-by: None <None>
Reviewed-by: None <None>
2021-10-15 13:02:29 +00:00
Mike Graves
aa41055503 Fix sanity test - devel drops support for python 2.6 (#251) (#258)
Fix sanity test - devel drops support for python 2.6

SUMMARY

ISSUE TYPE

Bugfix Pull Request

COMPONENT NAME

ADDITIONAL INFORMATION

Reviewed-by: None <None>
(cherry picked from commit 8436ad1341)

Co-authored-by: abikouo <79859644+abikouo@users.noreply.github.com>
2021-10-14 10:11:05 -04:00
Mike Graves
256fa58ca8 Remove molecule dependencies (#261) (#263)
Remove molecule dependencies

SUMMARY

Depends-on: ansible-collections/cloud.common#92
Molecule is overwriting the cloud.common dependency installed by zuul,
which is causing issues with the CI job for turbo mode. We still need to
find a way to test against the latest released version of cloud.common.

ISSUE TYPE

Bugfix Pull Request

COMPONENT NAME

ADDITIONAL INFORMATION

Reviewed-by: Gonéri Le Bouder <goneri@lebouder.net>
Reviewed-by: None <None>
(cherry picked from commit ff43353de6)
2021-10-14 08:39:16 -04:00
Mike Graves
70db517265 Copy ignore-2.12.txt to ignore-2.13.txt (#247) (#257)
Copy ignore-2.12.txt to ignore-2.13.txt

SUMMARY
Relates to ansible-collections/overview#45 (comment)

Reviewed-by: Alina Buzachis <None>
Reviewed-by: None <None>
(cherry picked from commit 45ba8b1a0d)

Co-authored-by: Andrew Klychkov <aklychko@redhat.com>
2021-10-08 14:09:11 -04:00
20 changed files with 429 additions and 55 deletions

View File

@@ -0,0 +1,10 @@
- project:
name: github.com/ansible-collections/kubernetes.core
check:
jobs:
- network-ee-sanity-tests:
voting: false
gate:
jobs:
- network-ee-sanity-tests:
voting: false

View File

@@ -5,6 +5,37 @@ Kubernetes Collection Release Notes
.. contents:: Topics
v2.2.3
======
Bugfixes
--------
- k8s_drain - fix error caused by accessing an undefined variable when pods have local storage (https://github.com/ansible-collections/kubernetes.core/issues/292).
- k8s_info - don't wait on empty List resources (https://github.com/ansible-collections/kubernetes.core/pull/253).
- module_utils.common - change default opening mode to read-bytes to avoid bad interpretation of non ascii characters and strings, often present in 3rd party manifests.
Minor Changes
-------------
- Add integration test to check handling of module_defaults (https://github.com/ansible-collections/kubernetes.core/pull/296).
v2.2.2
======
Bugfixes
--------
- remove binary file from k8s_cp test suite (https://github.com/ansible-collections/kubernetes.core/pull/298).
v2.2.1
======
Bugfixes
--------
- common - Ensure the label_selectors parameter of _wait_for method is optional.
v2.2.0
======

View File

@@ -1,5 +1,5 @@
# Also needs to be updated in galaxy.yml
VERSION = 2.2.0
VERSION = 2.2.3
TEST_ARGS ?= ""
PYTHON_VERSION ?= `python -c 'import platform; print(".".join(platform.python_version_tuple()[0:2]))'`

View File

@@ -85,7 +85,7 @@ You can also include it in a `requirements.yml` file and install it via `ansible
---
collections:
- name: kubernetes.core
version: 2.2.0
version: 2.2.3
```
### Installing the Kubernetes Python Library

View File

@@ -486,3 +486,35 @@ releases:
name: kustomize
namespace: null
release_date: '2021-09-15'
2.2.1:
changes:
bugfixes:
- common - Ensure the label_selectors parameter of _wait_for method is optional.
fragments:
- 0-copy_ignore_txt.yml
- _wait_for_label_selector_optional.yaml
release_date: '2021-10-18'
2.2.2:
changes:
bugfixes:
- remove binary file from k8s_cp test suite (https://github.com/ansible-collections/kubernetes.core/pull/298).
fragments:
- 298-remove-binary-file.yaml
release_date: '2021-12-07'
2.2.3:
changes:
bugfixes:
- k8s_drain - fix error caused by accessing an undefined variable when pods
have local storage (https://github.com/ansible-collections/kubernetes.core/issues/292).
- k8s_info - don't wait on empty List resources (https://github.com/ansible-collections/kubernetes.core/pull/253).
- module_utils.common - change default opening mode to read-bytes to avoid bad
interpretation of non ascii characters and strings, often present in 3rd party
manifests.
minor_changes:
- Add integration test to check handling of module_defaults
(https://github.com/ansible-collections/kubernetes.core/pull/296).
fragments:
- 253-dont-wait-on-list-resources.yaml
- 295-fix-k8s-drain-variable-declaration.yaml
- 308-fix-for-common-non-ascii-characters-in-resources.yaml
release_date: '2022-01-18'

View File

@@ -25,7 +25,7 @@ tags:
- openshift
- okd
- cluster
version: 2.2.0
version: 2.2.3
build_ignore:
- .DS_Store
- '*.tar.gz'

View File

@@ -9,7 +9,6 @@ action_groups:
k8s:
- k8s
- k8s_exec
- k8s_facts
- k8s_info
- k8s_log
- k8s_scale

View File

@@ -33,7 +33,3 @@ scenario:
- prepare
- converge
- verify
dependency:
name: galaxy
options:
requirements-file: requirements.yml

View File

@@ -34,50 +34,65 @@
kubectl_path: "{{ kubectl_path }}"
# Binary file
- name: Generate random content
set_fact:
hello_arg: "{{ lookup('password', '/dev/null chars=ascii_lowercase,digits length=16') }}"
- name: Create temp binary file
tempfile:
state: file
register: binfile
- name: Generate random binary content
command: dd if=/dev/urandom of={{ binfile.path }} bs=1M count=1
- name: Copy executable into Pod
k8s_cp:
namespace: '{{ copy_namespace }}'
pod: '{{ pod_with_one_container.name }}'
remote_path: /tmp/hello.exe
local_path: files/hello
local_path: "{{ binfile.path }}"
state: to_pod
- name: Compare executable
kubectl_file_compare:
namespace: '{{ copy_namespace }}'
pod: '{{ pod_with_one_container.name }}'
remote_path: /tmp/hello.exe
local_path: "{{ role_path }}/files/hello"
kubectl_path: "{{ kubectl_path }}"
args:
- "{{ hello_arg }}"
- name: Get remote hash
kubernetes.core.k8s_exec:
namespace: "{{ copy_namespace }}"
pod: "{{ pod_with_one_container.name }}"
command: sha256sum -b /tmp/hello.exe
register: remote_hash
- name: Get local hash
command: sha256sum -b {{ binfile.path }}
register: local_hash
- assert:
that:
- remote_hash.stdout.split()[0] == local_hash.stdout.split()[0]
- name: Generate tempfile
tempfile:
state: file
register: binfile
- name: Copy executable from Pod
k8s_cp:
namespace: '{{ copy_namespace }}'
pod: '{{ pod_with_one_container.name }}'
remote_path: /tmp/hello.exe
local_path: /tmp/hello
local_path: "{{ binfile.path }}"
state: from_pod
- name: update executable permission
file:
path: /tmp/hello
mode: '0755'
- name: Get remote hash
kubernetes.core.k8s_exec:
namespace: "{{ copy_namespace }}"
pod: "{{ pod_with_one_container.name }}"
command: sha256sum -b /tmp/hello.exe
register: remote_hash
- name: Compare executable
kubectl_file_compare:
namespace: '{{ copy_namespace }}'
pod: '{{ pod_with_one_container.name }}'
remote_path: /tmp/hello.exe
local_path: /tmp/hello
kubectl_path: "{{ kubectl_path }}"
args:
- "{{ hello_arg }}"
- name: Get local hash
command: sha256sum -b {{ binfile.path }}
register: local_hash
- assert:
that:
- remote_hash.stdout.split()[0] == local_hash.stdout.split()[0]
# zip files
- name: copy zip file into remote pod

View File

@@ -11,6 +11,17 @@
kind: Namespace
name: '{{ drain_namespace }}'
# It seems that the default ServiceAccount can take a bit to be created
# right after a cluster is brought up. This can lead to the ServiceAccount
# admission controller rejecting a Pod creation request because the
# ServiceAccount does not yet exist.
- name: Wait for default serviceaccount to be created
k8s_info:
kind: ServiceAccount
name: default
namespace: "{{ drain_namespace }}"
wait: yes
- name: list cluster nodes
k8s_info:
kind: node

View File

@@ -421,6 +421,49 @@
that:
- result.resources[0].data.testkey == "{{ cmap_data.stdout | b64encode }}"
# test setting module defaults for kubernetes.core.k8s_info
- block:
- name: Create a namespace
kubernetes.core.k8s:
name: test-namespace-module-defaults
kind: Namespace
register: output
- name: Create a ConfigMap
kubernetes.core.k8s:
kind: ConfigMap
name: test-configmap-1
definition:
data:
key1: value1
- name: Create another ConfigMap
kubernetes.core.k8s:
kind: ConfigMap
name: test-configmap-2
definition:
data:
key2: value2
- name: Get list of all ConfigMaps in namespace specified in module_defaults
kubernetes.core.k8s_info:
kind: ConfigMap
register: configmap_info
- name: assert that the ConfigMaps are created in and info is retrieved for namespace specified in module_defaults
assert:
that:
- configmap_info.resources[1].metadata.name == "test-configmap-1"
- configmap_info.resources[1].metadata.namespace == "test-namespace-module-defaults"
- configmap_info.resources[2].metadata.name == "test-configmap-2"
- configmap_info.resources[2].metadata.namespace == "test-namespace-module-defaults"
module_defaults:
group/kubernetes.core.k8s:
namespace: test-namespace-module-defaults
when: ansible_version.full is version("2.12", ">=")
always:
- name: Delete all namespaces
k8s:
@@ -454,4 +497,8 @@
apiVersion: v1
metadata:
name: testing6
- kind: Namespace
apiVersion: v1
metadata:
name: test-namespace-module-defaults
ignore_errors: yes

View File

@@ -199,6 +199,38 @@
that:
- "{{ lookup('pipe', 'date +%s') }} - {{ start }} > 30"
- name: Create simple pod
k8s:
definition:
apiVersion: v1
kind: Pod
metadata:
name: wait-pod-1
namespace: "{{ wait_namespace }}"
spec:
containers:
- image: busybox
name: busybox
command:
- /bin/sh
- -c
- while true; do sleep 5; done
- name: Wait for multiple non-existent pods to be created
k8s_info:
kind: Pod
namespace: "{{ wait_namespace }}"
label_selectors:
- thislabel=doesnotexist
wait: yes
wait_timeout: 10
register: result
- name: Assert no pods were found
assert:
that:
- not result.resources
vars:
k8s_pod_name: pod-info-1

View File

@@ -28,6 +28,6 @@ options:
- Reads from the local file system. To read from the Ansible controller's file system, including vaulted files, use the file lookup
plugin or template lookup plugin, combined with the from_yaml filter, and pass the result to
I(resource_definition). See Examples below.
- Mutually exclusive with I(template) in case of M(k8s) module.
- Mutually exclusive with I(template) in case of M(kubernetes.core.k8s) module.
type: path
'''

View File

@@ -279,18 +279,28 @@ class K8sAnsibleMixin(object):
def _elapsed():
return (datetime.now() - start).seconds
if result is None:
while _elapsed() < wait_timeout:
try:
result = resource.get(name=name, namespace=namespace,
label_selector=','.join(label_selectors),
field_selector=','.join(field_selectors))
break
except NotFoundError:
pass
time.sleep(wait_sleep)
if result is None:
return dict(resources=[], api_found=True)
def result_empty(result):
return (
result is None
or result.kind.endswith("List")
and not result.get("items")
)
while result_empty(result) and _elapsed() < wait_timeout:
try:
result = resource.get(
name=name,
namespace=namespace,
label_selector=",".join(label_selectors),
field_selector=",".join(field_selectors),
)
except NotFoundError:
pass
if not result_empty(result):
break
time.sleep(wait_sleep)
if result_empty(result):
return dict(resources=[], api_found=True)
if isinstance(result, ResourceInstance):
satisfied_by = []
@@ -331,7 +341,7 @@ class K8sAnsibleMixin(object):
if not os.path.exists(path):
self.fail(msg="Error accessing {0}. Does the file exist?".format(path))
try:
with open(path, 'r') as f:
with open(path, "rb") as f:
result = list(yaml.safe_load_all(f))
except (IOError, yaml.YAMLError) as exc:
self.fail(msg="Error loading resource_definition: {0}".format(exc))
@@ -365,7 +375,7 @@ class K8sAnsibleMixin(object):
def fail(self, msg=None):
self.fail_json(msg=msg)
def _wait_for(self, resource, name, namespace, predicate, sleep, timeout, state, label_selectors):
def _wait_for(self, resource, name, namespace, predicate, sleep, timeout, state, label_selectors=None):
start = datetime.now()
def _wait_for_elapsed():

View File

@@ -183,6 +183,7 @@ def filter_pods(pods, force, ignore_daemonset):
# local storage
if localStorage:
pod_names = ",".join([pod[0] + "/" + pod[1] for pod in localStorage])
errors.append("cannot delete Pods with local storage: {0}.".format(pod_names))
# DaemonSet managed Pods

View File

@@ -191,6 +191,10 @@ def main():
k8s_ansible_mixin = K8sAnsibleMixin(module)
k8s_ansible_mixin.client = get_api_client(module=module)
k8s_ansible_mixin.fail_json = module.fail_json
k8s_ansible_mixin.fail = module.fail_json
k8s_ansible_mixin.exit_json = module.exit_json
k8s_ansible_mixin.warn = module.warn
execute_module(module, k8s_ansible_mixin)

View File

@@ -1,3 +0,0 @@
collections:
- name: cloud.common
version: ">=2.0.4"

View File

@@ -0,0 +1,189 @@
molecule/default/files/deployment.yaml yamllint!skip
molecule/default/roles/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip
molecule/default/roles/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip
molecule/default/roles/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip
molecule/default/roles/helm/files/test-chart/templates/configmap.yaml yamllint!skip
plugins/module_utils/__init__.py compile-2.7!skip
plugins/module_utils/__init__.py compile-3.5!skip
plugins/module_utils/__init__.py future-import-boilerplate!skip
plugins/module_utils/__init__.py import-2.7!skip
plugins/module_utils/__init__.py import-3.5!skip
plugins/module_utils/__init__.py metaclass-boilerplate!skip
plugins/module_utils/ansiblemodule.py compile-2.7!skip
plugins/module_utils/ansiblemodule.py compile-3.5!skip
plugins/module_utils/ansiblemodule.py future-import-boilerplate!skip
plugins/module_utils/ansiblemodule.py import-2.7!skip
plugins/module_utils/ansiblemodule.py import-3.5!skip
plugins/module_utils/ansiblemodule.py metaclass-boilerplate!skip
plugins/module_utils/apply.py compile-2.7!skip
plugins/module_utils/apply.py compile-3.5!skip
plugins/module_utils/apply.py future-import-boilerplate!skip
plugins/module_utils/apply.py import-2.7!skip
plugins/module_utils/apply.py import-3.5!skip
plugins/module_utils/apply.py metaclass-boilerplate!skip
plugins/module_utils/args_common.py compile-2.7!skip
plugins/module_utils/args_common.py compile-3.5!skip
plugins/module_utils/args_common.py future-import-boilerplate!skip
plugins/module_utils/args_common.py import-2.7!skip
plugins/module_utils/args_common.py import-3.5!skip
plugins/module_utils/args_common.py metaclass-boilerplate!skip
plugins/module_utils/client/discovery.py future-import-boilerplate!skip
plugins/module_utils/client/discovery.py import-2.7!skip
plugins/module_utils/client/discovery.py import-3.5!skip
plugins/module_utils/client/discovery.py import-3.6!skip
plugins/module_utils/client/discovery.py import-3.7!skip
plugins/module_utils/client/discovery.py import-3.8!skip
plugins/module_utils/client/discovery.py import-3.9!skip
plugins/module_utils/client/discovery.py import-3.10!skip
plugins/module_utils/client/discovery.py metaclass-boilerplate!skip
molecule/default/roles/k8scopy/library/kubectl_file_compare.py shebang
molecule/default/roles/k8scopy/library/k8s_create_file.py shebang
plugins/module_utils/client/resource.py import-2.7!skip
plugins/module_utils/client/resource.py import-3.5!skip
plugins/module_utils/client/resource.py import-3.6!skip
plugins/module_utils/client/resource.py import-3.7!skip
plugins/module_utils/client/resource.py import-3.8!skip
plugins/module_utils/client/resource.py import-3.9!skip
plugins/module_utils/client/resource.py import-3.10!skip
plugins/module_utils/common.py compile-2.7!skip
plugins/module_utils/common.py compile-3.5!skip
plugins/module_utils/common.py future-import-boilerplate!skip
plugins/module_utils/common.py import-2.7!skip
plugins/module_utils/common.py import-3.5!skip
plugins/module_utils/common.py metaclass-boilerplate!skip
plugins/module_utils/exceptions.py compile-2.7!skip
plugins/module_utils/exceptions.py compile-3.5!skip
plugins/module_utils/exceptions.py future-import-boilerplate!skip
plugins/module_utils/exceptions.py import-2.7!skip
plugins/module_utils/exceptions.py import-3.5!skip
plugins/module_utils/exceptions.py metaclass-boilerplate!skip
plugins/module_utils/hashes.py compile-2.7!skip
plugins/module_utils/hashes.py compile-3.5!skip
plugins/module_utils/hashes.py future-import-boilerplate!skip
plugins/module_utils/hashes.py import-2.7!skip
plugins/module_utils/hashes.py import-3.5!skip
plugins/module_utils/hashes.py metaclass-boilerplate!skip
plugins/module_utils/helm.py compile-2.7!skip
plugins/module_utils/helm.py compile-3.5!skip
plugins/module_utils/helm.py future-import-boilerplate!skip
plugins/module_utils/helm.py import-2.7!skip
plugins/module_utils/helm.py import-3.5!skip
plugins/module_utils/helm.py metaclass-boilerplate!skip
plugins/module_utils/k8sdynamicclient.py compile-2.7!skip
plugins/module_utils/k8sdynamicclient.py compile-3.5!skip
plugins/module_utils/k8sdynamicclient.py future-import-boilerplate!skip
plugins/module_utils/k8sdynamicclient.py import-2.7!skip
plugins/module_utils/k8sdynamicclient.py import-3.5!skip
plugins/module_utils/k8sdynamicclient.py import-3.6!skip
plugins/module_utils/k8sdynamicclient.py import-3.7!skip
plugins/module_utils/k8sdynamicclient.py import-3.8!skip
plugins/module_utils/k8sdynamicclient.py import-3.9!skip
plugins/module_utils/k8sdynamicclient.py import-3.10!skip
plugins/module_utils/k8sdynamicclient.py metaclass-boilerplate!skip
plugins/modules/__init__.py compile-2.7!skip
plugins/modules/__init__.py compile-3.5!skip
plugins/modules/__init__.py future-import-boilerplate!skip
plugins/modules/__init__.py import-2.7!skip
plugins/modules/__init__.py import-3.5!skip
plugins/modules/__init__.py metaclass-boilerplate!skip
plugins/modules/helm.py compile-2.7!skip
plugins/modules/helm.py compile-3.5!skip
plugins/modules/helm.py future-import-boilerplate!skip
plugins/modules/helm.py import-2.7!skip
plugins/modules/helm.py import-3.5!skip
plugins/modules/helm.py metaclass-boilerplate!skip
plugins/modules/helm_info.py compile-2.7!skip
plugins/modules/helm_info.py compile-3.5!skip
plugins/modules/helm_info.py future-import-boilerplate!skip
plugins/modules/helm_info.py import-2.7!skip
plugins/modules/helm_info.py import-3.5!skip
plugins/modules/helm_info.py metaclass-boilerplate!skip
plugins/modules/helm_plugin.py compile-2.7!skip
plugins/modules/helm_plugin.py compile-3.5!skip
plugins/modules/helm_plugin.py future-import-boilerplate!skip
plugins/modules/helm_plugin.py import-2.7!skip
plugins/modules/helm_plugin.py import-3.5!skip
plugins/modules/helm_plugin.py metaclass-boilerplate!skip
plugins/modules/helm_plugin_info.py compile-2.7!skip
plugins/modules/helm_plugin_info.py compile-3.5!skip
plugins/modules/helm_plugin_info.py future-import-boilerplate!skip
plugins/modules/helm_plugin_info.py import-2.7!skip
plugins/modules/helm_plugin_info.py import-3.5!skip
plugins/modules/helm_plugin_info.py metaclass-boilerplate!skip
plugins/modules/helm_repository.py compile-2.7!skip
plugins/modules/helm_repository.py compile-3.5!skip
plugins/modules/helm_repository.py future-import-boilerplate!skip
plugins/modules/helm_repository.py import-2.7!skip
plugins/modules/helm_repository.py import-3.5!skip
plugins/modules/helm_repository.py metaclass-boilerplate!skip
plugins/modules/helm_template.py compile-2.7!skip
plugins/modules/helm_template.py compile-3.5!skip
plugins/modules/helm_template.py future-import-boilerplate!skip
plugins/modules/helm_template.py import-2.7!skip
plugins/modules/helm_template.py import-3.5!skip
plugins/modules/helm_template.py metaclass-boilerplate!skip
plugins/modules/k8s.py compile-2.7!skip
plugins/modules/k8s.py compile-3.5!skip
plugins/modules/k8s.py future-import-boilerplate!skip
plugins/modules/k8s.py import-2.7!skip
plugins/modules/k8s.py import-3.5!skip
plugins/modules/k8s.py metaclass-boilerplate!skip
plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc
plugins/modules/k8s.py validate-modules:return-syntax-error
plugins/modules/k8s_cluster_info.py compile-2.7!skip
plugins/modules/k8s_cluster_info.py compile-3.5!skip
plugins/modules/k8s_cluster_info.py future-import-boilerplate!skip
plugins/modules/k8s_cluster_info.py import-2.7!skip
plugins/modules/k8s_cluster_info.py import-3.5!skip
plugins/modules/k8s_cluster_info.py metaclass-boilerplate!skip
plugins/modules/k8s_exec.py compile-2.7!skip
plugins/modules/k8s_exec.py compile-3.5!skip
plugins/modules/k8s_exec.py future-import-boilerplate!skip
plugins/modules/k8s_exec.py import-2.7!skip
plugins/modules/k8s_exec.py import-3.5!skip
plugins/modules/k8s_exec.py metaclass-boilerplate!skip
plugins/modules/k8s_info.py compile-2.7!skip
plugins/modules/k8s_info.py compile-3.5!skip
plugins/modules/k8s_info.py future-import-boilerplate!skip
plugins/modules/k8s_info.py import-2.7!skip
plugins/modules/k8s_info.py import-3.5!skip
plugins/modules/k8s_info.py metaclass-boilerplate!skip
plugins/modules/k8s_json_patch.py compile-2.7!skip
plugins/modules/k8s_json_patch.py compile-3.5!skip
plugins/modules/k8s_json_patch.py future-import-boilerplate!skip
plugins/modules/k8s_json_patch.py import-2.7!skip
plugins/modules/k8s_json_patch.py import-3.5!skip
plugins/modules/k8s_json_patch.py metaclass-boilerplate!skip
plugins/modules/k8s_log.py compile-2.7!skip
plugins/modules/k8s_log.py compile-3.5!skip
plugins/modules/k8s_log.py future-import-boilerplate!skip
plugins/modules/k8s_log.py import-2.7!skip
plugins/modules/k8s_log.py import-3.5!skip
plugins/modules/k8s_log.py metaclass-boilerplate!skip
plugins/modules/k8s_rollback.py compile-2.7!skip
plugins/modules/k8s_rollback.py compile-3.5!skip
plugins/modules/k8s_rollback.py future-import-boilerplate!skip
plugins/modules/k8s_rollback.py import-2.7!skip
plugins/modules/k8s_rollback.py import-3.5!skip
plugins/modules/k8s_rollback.py metaclass-boilerplate!skip
plugins/modules/k8s_scale.py compile-2.7!skip
plugins/modules/k8s_scale.py compile-3.5!skip
plugins/modules/k8s_scale.py future-import-boilerplate!skip
plugins/modules/k8s_scale.py import-2.7!skip
plugins/modules/k8s_scale.py import-3.5!skip
plugins/modules/k8s_scale.py metaclass-boilerplate!skip
plugins/modules/k8s_scale.py validate-modules:parameter-type-not-in-doc
plugins/modules/k8s_scale.py validate-modules:return-syntax-error
plugins/modules/k8s_service.py compile-2.7!skip
plugins/modules/k8s_service.py compile-3.5!skip
plugins/modules/k8s_service.py future-import-boilerplate!skip
plugins/modules/k8s_service.py import-2.7!skip
plugins/modules/k8s_service.py import-3.5!skip
plugins/modules/k8s_service.py metaclass-boilerplate!skip
plugins/modules/k8s_service.py validate-modules:parameter-type-not-in-doc
plugins/modules/k8s_service.py validate-modules:return-syntax-error
tests/sanity/refresh_ignore_files shebang!skip
plugins/modules/k8s_cp.py compile-2.7!skip
plugins/modules/k8s_cp.py import-2.7!skip
plugins/module_utils/selector.py future-import-boilerplate!skip
plugins/module_utils/selector.py metaclass-boilerplate!skip

View File

@@ -41,7 +41,7 @@ def test_write_temp_kubeconfig_server_only():
file_name = write_temp_kubeconfig("ff")
try:
with open(file_name, "r") as fd:
content = yaml.load(fd)
content = yaml.safe_load(fd)
finally:
os.remove(file_name)
@@ -60,7 +60,7 @@ def test_write_temp_kubeconfig_server_inscure_certs():
file_name = write_temp_kubeconfig("ff", False, "my-certificate")
try:
with open(file_name, "r") as fd:
content = yaml.load(fd)
content = yaml.safe_load(fd)
finally:
os.remove(file_name)