diff --git a/changelogs/fragments/169-reenable-turbo-mode.yaml b/changelogs/fragments/169-reenable-turbo-mode.yaml new file mode 100644 index 0000000000..0df8f04792 --- /dev/null +++ b/changelogs/fragments/169-reenable-turbo-mode.yaml @@ -0,0 +1,3 @@ +--- +minor_changes: + - re-enable turbo mode for collection. The default is initially set to off (https://github.com/ansible-collections/kubernetes.core/pull/169). diff --git a/molecule/default/tasks/full.yml b/molecule/default/tasks/full.yml index 65dfba013f..554b3efb58 100644 --- a/molecule/default/tasks/full.yml +++ b/molecule/default/tasks/full.yml @@ -36,12 +36,30 @@ path: ~/.kube/config state: absent + - name: Try to create namespace without default kube config + kubernetes.core.k8s: + name: testing + kind: Namespace + ignore_errors: true + register: result + + - name: No default kube config should fail + assert: + that: result is not successful + - name: Using custom config location should succeed kubernetes.core.k8s: name: testing kind: Namespace kubeconfig: ~/.kube/customconfig + - name: Using an env var to set config location should succeed + kubernetes.core.k8s: + name: testing + kind: Namespace + environment: + K8S_AUTH_KUBECONFIG: ~/.kube/customconfig + always: - name: Return kubeconfig copy: @@ -365,6 +383,38 @@ register: k8s_info_testing6 failed_when: not k8s_info_testing6.resources or k8s_info_testing6.resources[0].status.phase != "Active" + - name: Create large configmap data + command: dd if=/dev/urandom bs=500K count=1 + register: cmap_data + + - name: Create configmap with large value + k8s: + definition: + apiVersion: v1 + kind: ConfigMap + metadata: + name: testmap + namespace: testing + data: + testkey: "{{ cmap_data.stdout | b64encode }}" + wait: true + register: result + + - assert: + that: + - result is changed + + - name: Retrieve configmap + k8s_info: + kind: ConfigMap + namespace: testing + name: testmap + register: result + + - assert: + that: + - result.resources[0].data.testkey == "{{ cmap_data.stdout | b64encode }}" + always: - name: Delete all namespaces k8s: diff --git a/plugins/module_utils/ansiblemodule.py b/plugins/module_utils/ansiblemodule.py index a647b163f8..a983cad9f2 100644 --- a/plugins/module_utils/ansiblemodule.py +++ b/plugins/module_utils/ansiblemodule.py @@ -3,4 +3,22 @@ __metaclass__ = type -from ansible.module_utils.basic import AnsibleModule # noqa: F401 +import os + +from ansible.module_utils.common.validation import check_type_bool + +try: + enable_turbo_mode = check_type_bool(os.environ.get("ENABLE_TURBO_MODE")) +except TypeError: + enable_turbo_mode = False + +if enable_turbo_mode: + try: + from ansible_collections.cloud.common.plugins.module_utils.turbo.module import ( + AnsibleTurboModule as AnsibleModule, + ) # noqa: F401 + AnsibleModule.collection_name = "kubernetes.core" + except ImportError: + from ansible.module_utils.basic import AnsibleModule # noqa: F401 +else: + from ansible.module_utils.basic import AnsibleModule # noqa: F401 diff --git a/requirements.yml b/requirements.yml new file mode 100644 index 0000000000..1c4b370de5 --- /dev/null +++ b/requirements.yml @@ -0,0 +1,3 @@ +collections: + - name: cloud.common + version: ">=2.0.4"