mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-05-11 20:12:18 +00:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d9c4d3459 | ||
|
|
3645c1c16c | ||
|
|
5fdd70cbc3 | ||
|
|
1c02fe3443 | ||
|
|
eaffde63bb | ||
|
|
d8538ffed3 | ||
|
|
bc168a5727 | ||
|
|
dc5a1e6dd1 | ||
|
|
72536fe286 | ||
|
|
f2d899b939 | ||
|
|
bc391218a4 | ||
|
|
83b3a1aa39 | ||
|
|
aa41055503 | ||
|
|
256fa58ca8 | ||
|
|
70db517265 |
10
.zuul.d/network-ee-sanity-tests_non-voting.yaml
Normal file
10
.zuul.d/network-ee-sanity-tests_non-voting.yaml
Normal 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
|
||||
@@ -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
|
||||
======
|
||||
|
||||
|
||||
2
Makefile
2
Makefile
@@ -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]))'`
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -25,7 +25,7 @@ tags:
|
||||
- openshift
|
||||
- okd
|
||||
- cluster
|
||||
version: 2.2.0
|
||||
version: 2.2.3
|
||||
build_ignore:
|
||||
- .DS_Store
|
||||
- '*.tar.gz'
|
||||
|
||||
@@ -9,7 +9,6 @@ action_groups:
|
||||
k8s:
|
||||
- k8s
|
||||
- k8s_exec
|
||||
- k8s_facts
|
||||
- k8s_info
|
||||
- k8s_log
|
||||
- k8s_scale
|
||||
|
||||
@@ -33,7 +33,3 @@ scenario:
|
||||
- prepare
|
||||
- converge
|
||||
- verify
|
||||
dependency:
|
||||
name: galaxy
|
||||
options:
|
||||
requirements-file: requirements.yml
|
||||
|
||||
Binary file not shown.
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
'''
|
||||
|
||||
@@ -279,17 +279,27 @@ class K8sAnsibleMixin(object):
|
||||
def _elapsed():
|
||||
return (datetime.now() - start).seconds
|
||||
|
||||
if result is None:
|
||||
while _elapsed() < wait_timeout:
|
||||
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))
|
||||
break
|
||||
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 is None:
|
||||
if result_empty(result):
|
||||
return dict(resources=[], api_found=True)
|
||||
|
||||
if isinstance(result, ResourceInstance):
|
||||
@@ -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():
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
collections:
|
||||
- name: cloud.common
|
||||
version: ">=2.0.4"
|
||||
189
tests/sanity/ignore-2.13.txt
Normal file
189
tests/sanity/ignore-2.13.txt
Normal 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
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user