-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
helm_template: change order of values_release and values_files #348
helm_template: change order of values_release and values_files #348
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please create a changelog fragment. See this fragment as an example. Also, could you please add a test for this change?
recheck |
Unable to freeze job graph: Job network-ee-sanity-tests depends on network-ee-build-container-image which was not run. |
Sorry it took a little while for the changelog fragment and test. For a newbie, changing the order of some lines is easy; the necessary test took a little bit more research. I have included a unit test checking the order of the parameters in the "helm template ..." command string generated by the helm_template module. In my view, the unit test should be enough in this case, as no module parameters were changed. Not sure I have put it in the "correct" place, as it seems to be the first unit test for modules. Also not sure, if it is ok to base the test on an "internal" function of the module; but this does allow to test the only relevant output of the module. An alternative would be to extract the generated command by defining a MockedModule including the run_command and extracting the command parameter. (similar to tests/unit/module_units/htest_helm.py) I am thinking about adding other parameters to the module (e.g. release_name) (see #313) , but first I will start looking into how to test module parameters and generated docs. |
/recheck |
recheck |
@cvstebut Thanks for the changelog and the tests. We would typically add a test for this in the integration test suite here: https://github.com/ansible-collections/kubernetes.core/tree/main/molecule/default/roles/helm/tasks, but the unit test works, as well. |
recheck |
1 similar comment
recheck |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [kubernetes.core](https://togithub.com/ansible-collections/kubernetes.core) | galaxy-collection | minor | `2.2.3` -> `2.4.0` | --- ### Release Notes <details> <summary>ansible-collections/kubernetes.core (kubernetes.core)</summary> ### [`v2.4.0`](https://togithub.com/ansible-collections/kubernetes.core/blob/HEAD/CHANGELOG.rst#v240) [Compare Source](https://togithub.com/ansible-collections/kubernetes.core/compare/2.3.2...2.4.0) \====== ## Major Changes - refactor K8sAnsibleMixin into module_utils/k8s/ ([https://github.com/ansible-collections/kubernetes.core/pull/481](https://togithub.com/ansible-collections/kubernetes.core/pull/481)). ## Minor Changes - Adjust k8s_user_impersonation tests to be compatible with Kubernetes 1.24 ([https://github.com/ansible-collections/kubernetes.core/pull/520](https://togithub.com/ansible-collections/kubernetes.core/pull/520)). - add support for dry run with kubernetes client version >=18.20 ([https://github.com/ansible-collections/kubernetes.core/pull/245](https://togithub.com/ansible-collections/kubernetes.core/pull/245)). - added ignore.txt for Ansible 2.14 devel branch. - fixed module_defaults by removing routing hacks from runtime.yml ([https://github.com/ansible-collections/kubernetes.core/pull/347](https://togithub.com/ansible-collections/kubernetes.core/pull/347)). - helm - add support for -set-file, -set-json, -set and -set-string options when running helm install ([https://github.com/ansible-collections/kubernetes.core/issues/533](https://togithub.com/ansible-collections/kubernetes.core/issues/533)). - helm - add support for helm dependency update ([https://github.com/ansible-collections/kubernetes.core/pull/208](https://togithub.com/ansible-collections/kubernetes.core/pull/208)). - helm - add support for post-renderer flag ([https://github.com/ansible-collections/kubernetes.core/issues/30](https://togithub.com/ansible-collections/kubernetes.core/issues/30)). - helm - add support for timeout cli parameter to allow setting Helm timeout independent of wait ([https://github.com/ansible-collections/kubernetes.core/issues/67](https://togithub.com/ansible-collections/kubernetes.core/issues/67)). - helm - add support for wait parameter for helm uninstall command. (https://github.com/ansible-collections/kubernetes/core/issues/33). - helm - support repo location for helm diff ([https://github.com/ansible-collections/kubernetes.core/issues/174](https://togithub.com/ansible-collections/kubernetes.core/issues/174)). - helm - when ansible is executed in check mode, return the diff between what's deployed and what will be deployed. - helm, helm_plugin, helm_info, helm_plugin_info, kubectl - add support for in-memory kubeconfig. ([https://github.com/ansible-collections/kubernetes.core/issues/492](https://togithub.com/ansible-collections/kubernetes.core/issues/492)). - helm_info - add hooks, notes and manifest as part of returned information ([https://github.com/ansible-collections/kubernetes.core/pull/546](https://togithub.com/ansible-collections/kubernetes.core/pull/546)). - helm_info - add release state as a module argument ([https://github.com/ansible-collections/kubernetes.core/issues/377](https://togithub.com/ansible-collections/kubernetes.core/issues/377)). - helm_info - added possibility to get all values by adding get_all_values parameter ([https://github.com/ansible-collections/kubernetes.core/pull/531](https://togithub.com/ansible-collections/kubernetes.core/pull/531)). - helm_plugin - Add plugin_version parameter to the helm_plugin module ([https://github.com/ansible-collections/kubernetes.core/issues/157](https://togithub.com/ansible-collections/kubernetes.core/issues/157)). - helm_plugin - Add support for helm plugin update using state=update. - helm_repository - Ability to replace (overwrite) the repo if it already exists by forcing ([https://github.com/ansible-collections/kubernetes.core/issues/491](https://togithub.com/ansible-collections/kubernetes.core/issues/491)). - helm_repository - add support for pass-credentials cli parameter ([https://github.com/ansible-collections/kubernetes.core/pull/282](https://togithub.com/ansible-collections/kubernetes.core/pull/282)). - helm_repository - added support for `host`, `api_key`, `validate_certs`, and `ca_cert`. - helm_repository - mark `pass_credentials` as no_log=True to silence false warning ([https://github.com/ansible-collections/kubernetes.core/issues/412](https://togithub.com/ansible-collections/kubernetes.core/issues/412)). - helm_template - add name (NAME of release) and disable_hook as optional module arguments ([https://github.com/ansible-collections/kubernetes.core/issues/313](https://togithub.com/ansible-collections/kubernetes.core/issues/313)). - helm_template - add show_only and release_namespace as module arguments ([https://github.com/ansible-collections/kubernetes.core/issues/313](https://togithub.com/ansible-collections/kubernetes.core/issues/313)). - helm_template - add support for -set-file, -set-json, -set and -set-string options when running helm template ([https://github.com/ansible-collections/kubernetes.core/pull/546](https://togithub.com/ansible-collections/kubernetes.core/pull/546)). - k8s - add no_proxy support to k8s\* [https://github.com/ansible-collections/kubernetes.core/pull/272](https://togithub.com/ansible-collections/kubernetes.core/pull/272)2). - k8s - add support for server_side_apply. ([https://github.com/ansible-collections/kubernetes.core/issues/87](https://togithub.com/ansible-collections/kubernetes.core/issues/87)). - k8s - add support for user impersonation. (https://github.com/ansible-collections/kubernetes/core/issues/40). - k8s - allow resource definition using metadata.generateName ([https://github.com/ansible-collections/kubernetes.core/issues/35](https://togithub.com/ansible-collections/kubernetes.core/issues/35)). - k8s lookup plugin - Enable turbo mode via environment variable ([https://github.com/ansible-collections/kubernetes.core/issues/291](https://togithub.com/ansible-collections/kubernetes.core/issues/291)). - k8s, k8s_scale, k8s_service - add support for resource definition as manifest via. ([https://github.com/ansible-collections/kubernetes.core/issues/451](https://togithub.com/ansible-collections/kubernetes.core/issues/451)). - k8s_cp - remove dependency with 'find' executable on remote pod when state=from_pod ([https://github.com/ansible-collections/kubernetes.core/issues/486](https://togithub.com/ansible-collections/kubernetes.core/issues/486)). - k8s_drain - Adds `delete_emptydir_data` option to `k8s_drain.delete_options` to evict pods with an `emptyDir` volume attached ([https://github.com/ansible-collections/kubernetes.core/pull/322](https://togithub.com/ansible-collections/kubernetes.core/pull/322)). - k8s_exec - select first container from the pod if none specified ([https://github.com/ansible-collections/kubernetes.core/issues/358](https://togithub.com/ansible-collections/kubernetes.core/issues/358)). - k8s_exec - update deprecation warning for `return_code` ([https://github.com/ansible-collections/kubernetes.core/issues/417](https://togithub.com/ansible-collections/kubernetes.core/issues/417)). - k8s_json_patch - minor typo fix in the example section ([https://github.com/ansible-collections/kubernetes.core/issues/411](https://togithub.com/ansible-collections/kubernetes.core/issues/411)). - k8s_log - add the `all_containers` for retrieving all containers' logs in the pod(s). - k8s_log - added the `previous` parameter for retrieving the previously terminated pod logs ([https://github.com/ansible-collections/kubernetes.core/issues/437](https://togithub.com/ansible-collections/kubernetes.core/issues/437)). - k8s_log - added the `tail_lines` parameter to limit the number of lines to be retrieved from the end of the logs ([https://github.com/ansible-collections/kubernetes.core/issues/488](https://togithub.com/ansible-collections/kubernetes.core/issues/488)). - k8s_rollback - add support for check_mode. (https://github.com/ansible-collections/kubernetes/core/issues/243). - k8s_scale - add support for check_mode. (https://github.com/ansible-collections/kubernetes/core/issues/244). - kubectl - wait for dd command to complete before proceeding ([https://github.com/ansible-collections/kubernetes.core/pull/321](https://togithub.com/ansible-collections/kubernetes.core/pull/321)). - kubectl.py - replace distutils.spawn.find_executable with shutil.which in the kubectl connection plugin ([https://github.com/ansible-collections/kubernetes.core/pull/456](https://togithub.com/ansible-collections/kubernetes.core/pull/456)). ## Bugfixes - Fix dry_run logic - Pass the value dry_run=All instead of dry_run=True to the client, add conditional check on kubernetes client version as this feature is supported only for kubernetes >= 18.20.0 ([https://github.com/ansible-collections/kubernetes.core/pull/561](https://togithub.com/ansible-collections/kubernetes.core/pull/561)). - Fix kubeconfig parameter when multiple config files are provided ([https://github.com/ansible-collections/kubernetes.core/issues/435](https://togithub.com/ansible-collections/kubernetes.core/issues/435)). - Helm - Fix issue with alternative kubeconfig provided with validate_certs=False ([https://github.com/ansible-collections/kubernetes.core/issues/538](https://togithub.com/ansible-collections/kubernetes.core/issues/538)). - Various modules and plugins - use vendored version of `distutils.version` instead of the deprecated Python standard library `distutils` ([https://github.com/ansible-collections/kubernetes.core/pull/314](https://togithub.com/ansible-collections/kubernetes.core/pull/314)). - add missing documentation for filter plugin kubernetes.core.k8s_config_resource_name ([https://github.com/ansible-collections/kubernetes.core/issues/558](https://togithub.com/ansible-collections/kubernetes.core/issues/558)). - common - Ensure the label_selectors parameter of \_wait_for method is optional. - common - handle `aliases` passed from inventory and lookup plugins. - helm_template - evaluate release_values after values_files, insuring highest precedence (now same behavior as in helm module). ([https://github.com/ansible-collections/kubernetes.core/pull/348](https://togithub.com/ansible-collections/kubernetes.core/pull/348)) - import exception from `kubernetes.client.rest`. - k8s - Fix issue with check_mode when using server side apply ([https://github.com/ansible-collections/kubernetes.core/issues/547](https://togithub.com/ansible-collections/kubernetes.core/issues/547)). - k8s - Fix issue with server side apply with kubernetes release '25.3.0' ([https://github.com/ansible-collections/kubernetes.core/issues/548](https://togithub.com/ansible-collections/kubernetes.core/issues/548)). - k8s_cp - add support for check_mode ([https://github.com/ansible-collections/kubernetes.core/issues/380](https://togithub.com/ansible-collections/kubernetes.core/issues/380)). - k8s_drain - fix error caused by accessing an undefined variable when pods have local storage ([https://github.com/ansible-collections/kubernetes.core/issues/292](https://togithub.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](https://togithub.com/ansible-collections/kubernetes.core/pull/253)). - k8s_info - fix issue when module returns successful true after the resource cache has been established during periods where communication to the api-server is not possible ([https://github.com/ansible-collections/kubernetes.core/issues/508](https://togithub.com/ansible-collections/kubernetes.core/issues/508)). - k8s_log - Fix module traceback when no resource found ([https://github.com/ansible-collections/kubernetes.core/issues/479](https://togithub.com/ansible-collections/kubernetes.core/issues/479)). - k8s_log - fix exception raised when the name is not provided for resources requiring. ([https://github.com/ansible-collections/kubernetes.core/issues/514](https://togithub.com/ansible-collections/kubernetes.core/issues/514)) - k8s_scale - fix waiting on statefulset when scaled down to 0 replicas ([https://github.com/ansible-collections/kubernetes.core/issues/203](https://togithub.com/ansible-collections/kubernetes.core/issues/203)). - 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. - module_utils/k8s/client.py - fix issue when trying to authenticate with host, client_cert and client_key parameters only. - remove binary file from k8s_cp test suite ([https://github.com/ansible-collections/kubernetes.core/pull/298](https://togithub.com/ansible-collections/kubernetes.core/pull/298)). - use resource prefix when finding resource and apiVersion is v1 ([https://github.com/ansible-collections/kubernetes.core/issues/351](https://togithub.com/ansible-collections/kubernetes.core/issues/351)). ## New Modules - helm_pull - download a chart from a repository and (optionally) unpack it in local directory. ### [`v2.3.2`](https://togithub.com/ansible-collections/kubernetes.core/compare/2.3.1...2.3.2) [Compare Source](https://togithub.com/ansible-collections/kubernetes.core/compare/2.3.1...2.3.2) ### [`v2.3.1`](https://togithub.com/ansible-collections/kubernetes.core/blob/HEAD/CHANGELOG.rst#v231) [Compare Source](https://togithub.com/ansible-collections/kubernetes.core/compare/2.3.0...2.3.1) \====== ## Bugfixes - Catch exception raised when the process is waiting for resources ([https://github.com/ansible-collections/kubernetes.core/issues/407](https://togithub.com/ansible-collections/kubernetes.core/issues/407)). - Remove `omit` placeholder when defining resource using template parameter ([https://github.com/ansible-collections/kubernetes.core/issues/431](https://togithub.com/ansible-collections/kubernetes.core/issues/431)). - k8s - fix the issue when trying to delete resources using label_selectors options ([https://github.com/ansible-collections/kubernetes.core/issues/433](https://togithub.com/ansible-collections/kubernetes.core/issues/433)). - k8s_cp - fix issue when using parameter local_path with file on managed node. ([https://github.com/ansible-collections/kubernetes.core/issues/421](https://togithub.com/ansible-collections/kubernetes.core/issues/421)). - k8s_drain - fix error occurring when trying to drain node with disable_eviction set to yes ([https://github.com/ansible-collections/kubernetes.core/issues/416](https://togithub.com/ansible-collections/kubernetes.core/issues/416)). ### [`v2.3.0`](https://togithub.com/ansible-collections/kubernetes.core/blob/HEAD/CHANGELOG.rst#v230) [Compare Source](https://togithub.com/ansible-collections/kubernetes.core/compare/2.2.3...2.3.0) \====== ## Minor Changes - add support for dry run with kubernetes client version >=18.20 ([https://github.com/ansible-collections/kubernetes.core/pull/245](https://togithub.com/ansible-collections/kubernetes.core/pull/245)). - fixed module_defaults by removing routing hacks from runtime.yml ([https://github.com/ansible-collections/kubernetes.core/pull/347](https://togithub.com/ansible-collections/kubernetes.core/pull/347)). - helm - add support for timeout cli parameter to allow setting Helm timeout independent of wait ([https://github.com/ansible-collections/kubernetes.core/issues/67](https://togithub.com/ansible-collections/kubernetes.core/issues/67)). - helm - add support for wait parameter for helm uninstall command. (https://github.com/ansible-collections/kubernetes/core/issues/33). - helm - support repo location for helm diff ([https://github.com/ansible-collections/kubernetes.core/issues/174](https://togithub.com/ansible-collections/kubernetes.core/issues/174)). - helm - when ansible is executed in check mode, return the diff between what's deployed and what will be deployed. - helm_info - add release state as a module argument ([https://github.com/ansible-collections/kubernetes.core/issues/377](https://togithub.com/ansible-collections/kubernetes.core/issues/377)). - helm_plugin - Add plugin_version parameter to the helm_plugin module ([https://github.com/ansible-collections/kubernetes.core/issues/157](https://togithub.com/ansible-collections/kubernetes.core/issues/157)). - helm_plugin - Add support for helm plugin update using state=update. - helm_repository - add support for pass-credentials cli parameter ([https://github.com/ansible-collections/kubernetes.core/pull/282](https://togithub.com/ansible-collections/kubernetes.core/pull/282)). - helm_repository - added support for `host`, `api_key`, `validate_certs`, and `ca_cert`. - helm_template - add show_only and release_namespace as module arguments ([https://github.com/ansible-collections/kubernetes.core/issues/313](https://togithub.com/ansible-collections/kubernetes.core/issues/313)). - k8s - add no_proxy support to k8s\* [https://github.com/ansible-collections/kubernetes.core/pull/272](https://togithub.com/ansible-collections/kubernetes.core/pull/272)2). - k8s - add support for server_side_apply. ([https://github.com/ansible-collections/kubernetes.core/issues/87](https://togithub.com/ansible-collections/kubernetes.core/issues/87)). - k8s - add support for user impersonation. (https://github.com/ansible-collections/kubernetes/core/issues/40). - k8s - allow resource definition using metadata.generateName ([https://github.com/ansible-collections/kubernetes.core/issues/35](https://togithub.com/ansible-collections/kubernetes.core/issues/35)). - k8s lookup plugin - Enable turbo mode via environment variable ([https://github.com/ansible-collections/kubernetes.core/issues/291](https://togithub.com/ansible-collections/kubernetes.core/issues/291)). - k8s_drain - Adds `delete_emptydir_data` option to `k8s_drain.delete_options` to evict pods with an `emptyDir` volume attached ([https://github.com/ansible-collections/kubernetes.core/pull/322](https://togithub.com/ansible-collections/kubernetes.core/pull/322)). - k8s_exec - select first container from the pod if none specified ([https://github.com/ansible-collections/kubernetes.core/issues/358](https://togithub.com/ansible-collections/kubernetes.core/issues/358)). - k8s_rollback - add support for check_mode. (https://github.com/ansible-collections/kubernetes/core/issues/243). - k8s_scale - add support for check_mode. (https://github.com/ansible-collections/kubernetes/core/issues/244). - kubectl - wait for dd command to complete before proceeding ([https://github.com/ansible-collections/kubernetes.core/pull/321](https://togithub.com/ansible-collections/kubernetes.core/pull/321)). ## Bugfixes - Various modules and plugins - use vendored version of `distutils.version` instead of the deprecated Python standard library `distutils` ([https://github.com/ansible-collections/kubernetes.core/pull/314](https://togithub.com/ansible-collections/kubernetes.core/pull/314)). - common - Ensure the label_selectors parameter of \_wait_for method is optional. - helm_template - evaluate release_values after values_files, insuring highest precedence (now same behavior as in helm module). ([https://github.com/ansible-collections/kubernetes.core/pull/348](https://togithub.com/ansible-collections/kubernetes.core/pull/348)) - import exception from `kubernetes.client.rest`. - k8s_drain - fix error caused by accessing an undefined variable when pods have local storage ([https://github.com/ansible-collections/kubernetes.core/issues/292](https://togithub.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](https://togithub.com/ansible-collections/kubernetes.core/pull/253)). - k8s_scale - fix waiting on statefulset when scaled down to 0 replicas ([https://github.com/ansible-collections/kubernetes.core/issues/203](https://togithub.com/ansible-collections/kubernetes.core/issues/203)). - 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. - remove binary file from k8s_cp test suite ([https://github.com/ansible-collections/kubernetes.core/pull/298](https://togithub.com/ansible-collections/kubernetes.core/pull/298)). - use resource prefix when finding resource and apiVersion is v1 ([https://github.com/ansible-collections/kubernetes.core/issues/351](https://togithub.com/ansible-collections/kubernetes.core/issues/351)). ## New Modules - k8s_taint - Taint a node in a Kubernetes/OpenShift cluster </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/StinkyBenji/ansible-tekton-demo). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
SUMMARY
This fix aligns precedence of release_values and values_files in kubernetes.core.helm_template with the one in kubernetes.core.helm.
The values in release_values are now processed last, thus with highest precedence.
This allows overwriting of values in values_files with the values presented in release_values.
ISSUE TYPE
COMPONENT NAME
ADDITIONAL INFORMATION