diff --git a/.gitignore b/.gitignore index 0460287a..f97b7875 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,9 @@ __pycache__/ # Galaxy artifacts. *.tar.gz +# Changelog cache files. +changelogs/.plugin-cache.yaml + # Temporary test files. tests/output tests/integration/cloud-config-* diff --git a/.yamllint b/.yamllint index c5ae64be..39cf067b 100644 --- a/.yamllint +++ b/.yamllint @@ -10,3 +10,6 @@ rules: level: error line-length: disable truthy: disable + indentation: + spaces: 2 + indent-sequences: consistent diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index aeccbad0..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,54 +0,0 @@ -# Kubernetes Collection Changes - -## 0.11.0 - -### New Features - - - PR #61: Add `helm`, `helm_info`, and `helm_repository` modules. - - PR #81: Rename repository to `community.kubernetes`. - -### Bug Fixes - - - PR #78: Update GitHub Actions workflow for better CI stability. - - PR #69: k8s_log no longer attempts to parse log as JSON. - - PR #85: Make sure extra files are not included in built collection. - -## 0.10.0 - -### New Features - - - PR #14: Add `k8s_exec` module for executing commands on pods via Kubernetes API. - - PR #16: Add `k8s_log` module for retrieving pod logs. - - Issue #49, PR #55: Add `persist_config` option for persisting refreshed tokens. - -### Security Fixes - - - PR #51: Warn about disclosure when using options like `kubectl_password`, `kubectl_extra_args`, and `kubectl_token` to pass data through to the command line using the `kubectl` connection plugin. - -### Bug Fixes - - - Issue #13: Fix argspec for 'elements'. - - Issue #33, PR #34: Fix argspec in `k8s_service`. - - Issue #10, PR #22: Test collection in a Kind cluster in CI using Molecule. - - PR #52: Documentation fix in `kubectl.py`. - - PR #54: Add exception handling when retrieving k8s client. - - PR #56: Use from_yaml filter with lookup examples in `k8s` module documentation examples. - -## 0.9.0 - - - Initial migration of Kubernetes content from Ansible core (2.9 / devel), including content: - - **Connection Plugins**: - - `kubectl` - - **Filter Plugins**: - - `k8s_config_resource_name` - - **Inventory Source**: - - `k8s` - - `openshift` - - **Lookup Plugins**: - - `k8s` - - **Modules**: - - `k8s` - - `k8s_auth` - - `k8s_info` - - `k8s_scale` - - `k8s_service` diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 00000000..d44493ed --- /dev/null +++ b/CHANGELOG.rst @@ -0,0 +1,86 @@ +=================================== +Kubernetes Collection Release Notes +=================================== + +.. contents:: Topics + + +v0.11.0 +======= + +Major Changes +------------- + +- helm - New module for managing Helm charts (https://github.com/ansible-collections/community.kubernetes/pull/61). +- helm_info - New module for retrieving Helm chart information (https://github.com/ansible-collections/community.kubernetes/pull/61). +- helm_repository - New module for managing Helm repositories (https://github.com/ansible-collections/community.kubernetes/pull/61). + +Minor Changes +------------- + +- Rename repository to ``community.kubernetes`` (https://github.com/ansible-collections/community.kubernetes/pull/81). + +Bugfixes +-------- + +- Make sure extra files are not included in built collection (https://github.com/ansible-collections/community.kubernetes/pull/85). +- Update GitHub Actions workflow for better CI stability (https://github.com/ansible-collections/community.kubernetes/pull/78). +- k8s_log - Module no longer attempts to parse log as JSON (https://github.com/ansible-collections/community.kubernetes/pull/69). + +New Modules +----------- + +- helm - Manages Kubernetes packages with the Helm package manager +- helm_info - Get information from Helm package deployed inside the cluster +- helm_repository - Add and remove Helm repository + +v0.10.0 +======= + +Major Changes +------------- + +- k8s_exec - New module for executing commands on pods via Kubernetes API (https://github.com/ansible-collections/community.kubernetes/pull/14). +- k8s_log - New module for retrieving pod logs (https://github.com/ansible-collections/community.kubernetes/pull/16). + +Minor Changes +------------- + +- k8s - Added ``persist_config`` option for persisting refreshed tokens (https://github.com/ansible-collections/community.kubernetes/issues/49). + +Security Fixes +-------------- + +- kubectl - Warn about information disclosure when using options like ``kubectl_password``, ``kubectl_extra_args``, and ``kubectl_token`` to pass data through to the command line using the ``kubectl`` connection plugin (https://github.com/ansible-collections/community.kubernetes/pull/51). + +Bugfixes +-------- + +- k8s - Add exception handling when retrieving k8s client (https://github.com/ansible-collections/community.kubernetes/pull/54). +- k8s - Fix argspec for 'elements' (https://github.com/ansible-collections/community.kubernetes/issues/13). +- k8s - Use ``from_yaml`` filter with lookup examples in ``k8s`` module documentation examples (https://github.com/ansible-collections/community.kubernetes/pull/56). +- k8s_service - Fix argspec (https://github.com/ansible-collections/community.kubernetes/issues/33). +- kubectl - Fix documentation in kubectl connection plugin (https://github.com/ansible-collections/community.kubernetes/pull/52). + +New Modules +----------- + +- k8s_exec - Execute command in Pod +- k8s_log - Fetch logs from Kubernetes resources + +v0.9.0 +====== + +Major Changes +------------- + +- k8s - Inventory source migrated from Ansible 2.9 to Kubernetes collection. +- k8s - Lookup plugin migrated from Ansible 2.9 to Kubernetes collection. +- k8s - Module migrated from Ansible 2.9 to Kubernetes collection. +- k8s_auth - Module migrated from Ansible 2.9 to Kubernetes collection. +- k8s_config_resource_name - Filter plugin migrated from Ansible 2.9 to Kubernetes collection. +- k8s_info - Module migrated from Ansible 2.9 to Kubernetes collection. +- k8s_scale - Module migrated from Ansible 2.9 to Kubernetes collection. +- k8s_service - Module migrated from Ansible 2.9 to Kubernetes collection. +- kubectl - Connection plugin migrated from Ansible 2.9 to Kubernetes collection. +- openshift - Inventory source migrated from Ansible 2.9 to Kubernetes collection. diff --git a/README.md b/README.md index 2f4480f1..470c28c0 100644 --- a/README.md +++ b/README.md @@ -132,8 +132,11 @@ The current process for publishing new versions of the Kubernetes Collection is 1. Ensure you're running Ansible from devel, so the [`build_ignore` key](https://github.com/ansible/ansible/issues/67130) in `galaxy.yml` is used. 1. Run `git clean -x -d -f` in this repository's directory to clean out any extra files which should not be included. - 1. Ensure `CHANGELOG.md` contains all the latest changes. 1. Update `galaxy.yml` and this README's `requirements.yml` example with the new `version` for the collection. + 1. Update the CHANGELOG: + 1. Make sure you have [`antsibull-changelog`](https://pypi.org/project/antsibull-changelog/) installed. + 1. Make sure there are fragments for all known changes in `changelogs/fragments`. + 1. Run `antsibull-changelog release` 1. Tag the version in Git and push to GitHub. 1. Run the following commands to build and release the new version on Galaxy: diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml new file mode 100644 index 00000000..1f223768 --- /dev/null +++ b/changelogs/changelog.yaml @@ -0,0 +1,84 @@ +ancestor: null +releases: + 0.10.0: + changes: + bugfixes: + - k8s - Add exception handling when retrieving k8s client (https://github.com/ansible-collections/community.kubernetes/pull/54). + - k8s - Fix argspec for 'elements' (https://github.com/ansible-collections/community.kubernetes/issues/13). + - k8s - Use ``from_yaml`` filter with lookup examples in ``k8s`` module documentation + examples (https://github.com/ansible-collections/community.kubernetes/pull/56). + - k8s_service - Fix argspec (https://github.com/ansible-collections/community.kubernetes/issues/33). + - kubectl - Fix documentation in kubectl connection plugin (https://github.com/ansible-collections/community.kubernetes/pull/52). + major_changes: + - k8s_exec - New module for executing commands on pods via Kubernetes API (https://github.com/ansible-collections/community.kubernetes/pull/14). + - k8s_log - New module for retrieving pod logs (https://github.com/ansible-collections/community.kubernetes/pull/16). + minor_changes: + - k8s - Added ``persist_config`` option for persisting refreshed tokens (https://github.com/ansible-collections/community.kubernetes/issues/49). + security_fixes: + - kubectl - Warn about information disclosure when using options like ``kubectl_password``, + ``kubectl_extra_args``, and ``kubectl_token`` to pass data through to the + command line using the ``kubectl`` connection plugin (https://github.com/ansible-collections/community.kubernetes/pull/51). + fragments: + - 13-fix-elements-argspec.yaml + - 14-k8s_exec-new-module.yaml + - 16-k8s_log-new-module.yaml + - 33-k8s_service-fix-argspec.yaml + - 49-k8s-add-persist_config-option.yaml + - 51-kubectl-security-disclosure.yaml + - 52-kubectl-connection-docsfix.yaml + - 54-k8s-add-exception-handling.yaml + - 56-k8s-from_yaml-docs-examples.yaml + modules: + - description: Execute command in Pod + name: k8s_exec + namespace: '' + - description: Fetch logs from Kubernetes resources + name: k8s_log + namespace: '' + release_date: '2020-03-23' + 0.11.0: + changes: + bugfixes: + - Make sure extra files are not included in built collection (https://github.com/ansible-collections/community.kubernetes/pull/85). + - Update GitHub Actions workflow for better CI stability (https://github.com/ansible-collections/community.kubernetes/pull/78). + - k8s_log - Module no longer attempts to parse log as JSON (https://github.com/ansible-collections/community.kubernetes/pull/69). + major_changes: + - helm - New module for managing Helm charts (https://github.com/ansible-collections/community.kubernetes/pull/61). + - helm_info - New module for retrieving Helm chart information (https://github.com/ansible-collections/community.kubernetes/pull/61). + - helm_repository - New module for managing Helm repositories (https://github.com/ansible-collections/community.kubernetes/pull/61). + minor_changes: + - Rename repository to ``community.kubernetes`` (https://github.com/ansible-collections/community.kubernetes/pull/81). + fragments: + - 61-helm-new-modules.yaml + - 69-k8s_log-dont-parse-as-json.yaml + - 78-github-actions-workflow.yaml + - 81-rename-repository.yaml + - 85-exclude-unnecessary-files-when-building.yaml + modules: + - description: Manages Kubernetes packages with the Helm package manager + name: helm + namespace: '' + - description: Get information from Helm package deployed inside the cluster + name: helm_info + namespace: '' + - description: Add and remove Helm repository + name: helm_repository + namespace: '' + release_date: '2020-05-04' + 0.9.0: + changes: + major_changes: + - k8s - Inventory source migrated from Ansible 2.9 to Kubernetes collection. + - k8s - Lookup plugin migrated from Ansible 2.9 to Kubernetes collection. + - k8s - Module migrated from Ansible 2.9 to Kubernetes collection. + - k8s_auth - Module migrated from Ansible 2.9 to Kubernetes collection. + - k8s_config_resource_name - Filter plugin migrated from Ansible 2.9 to Kubernetes + collection. + - k8s_info - Module migrated from Ansible 2.9 to Kubernetes collection. + - k8s_scale - Module migrated from Ansible 2.9 to Kubernetes collection. + - k8s_service - Module migrated from Ansible 2.9 to Kubernetes collection. + - kubectl - Connection plugin migrated from Ansible 2.9 to Kubernetes collection. + - openshift - Inventory source migrated from Ansible 2.9 to Kubernetes collection. + fragments: + - 4-k8s-prepare-collection-for-release.yaml + release_date: '2020-02-05' diff --git a/changelogs/config.yaml b/changelogs/config.yaml new file mode 100644 index 00000000..519494a3 --- /dev/null +++ b/changelogs/config.yaml @@ -0,0 +1,30 @@ +--- +changelog_filename_template: ../CHANGELOG.rst +changelog_filename_version_depth: 0 +changes_file: changelog.yaml +changes_format: combined +keep_fragments: true +mention_ancestor: true +new_plugins_after_name: removed_features +notesdir: fragments +prelude_section_name: release_summary +prelude_section_title: Release Summary +sections: +- - major_changes + - Major Changes +- - minor_changes + - Minor Changes +- - breaking_changes + - Breaking Changes / Porting Guide +- - deprecated_features + - Deprecated Features +- - removed_features + - Removed Features (previously deprecated) +- - security_fixes + - Security Fixes +- - bugfixes + - Bugfixes +- - known_issues + - Known Issues +title: Kubernetes Collection +trivial_section_name: trivial diff --git a/changelogs/fragments/13-fix-elements-argspec.yaml b/changelogs/fragments/13-fix-elements-argspec.yaml new file mode 100644 index 00000000..a9e7ef89 --- /dev/null +++ b/changelogs/fragments/13-fix-elements-argspec.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: + - k8s - Fix argspec for 'elements' (https://github.com/ansible-collections/community.kubernetes/issues/13). diff --git a/changelogs/fragments/14-k8s_exec-new-module.yaml b/changelogs/fragments/14-k8s_exec-new-module.yaml new file mode 100644 index 00000000..40594b80 --- /dev/null +++ b/changelogs/fragments/14-k8s_exec-new-module.yaml @@ -0,0 +1,3 @@ +--- +major_changes: + - k8s_exec - New module for executing commands on pods via Kubernetes API (https://github.com/ansible-collections/community.kubernetes/pull/14). diff --git a/changelogs/fragments/16-k8s_log-new-module.yaml b/changelogs/fragments/16-k8s_log-new-module.yaml new file mode 100644 index 00000000..e6ae7335 --- /dev/null +++ b/changelogs/fragments/16-k8s_log-new-module.yaml @@ -0,0 +1,3 @@ +--- +major_changes: + - k8s_log - New module for retrieving pod logs (https://github.com/ansible-collections/community.kubernetes/pull/16). diff --git a/changelogs/fragments/33-k8s_service-fix-argspec.yaml b/changelogs/fragments/33-k8s_service-fix-argspec.yaml new file mode 100644 index 00000000..91daa0d6 --- /dev/null +++ b/changelogs/fragments/33-k8s_service-fix-argspec.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: + - k8s_service - Fix argspec (https://github.com/ansible-collections/community.kubernetes/issues/33). diff --git a/changelogs/fragments/4-k8s-prepare-collection-for-release.yaml b/changelogs/fragments/4-k8s-prepare-collection-for-release.yaml new file mode 100644 index 00000000..4f9a7bcd --- /dev/null +++ b/changelogs/fragments/4-k8s-prepare-collection-for-release.yaml @@ -0,0 +1,12 @@ +--- +major_changes: + - k8s - Inventory source migrated from Ansible 2.9 to Kubernetes collection. + - k8s - Module migrated from Ansible 2.9 to Kubernetes collection. + - k8s - Lookup plugin migrated from Ansible 2.9 to Kubernetes collection. + - k8s_auth - Module migrated from Ansible 2.9 to Kubernetes collection. + - k8s_info - Module migrated from Ansible 2.9 to Kubernetes collection. + - k8s_scale - Module migrated from Ansible 2.9 to Kubernetes collection. + - k8s_service - Module migrated from Ansible 2.9 to Kubernetes collection. + - k8s_config_resource_name - Filter plugin migrated from Ansible 2.9 to Kubernetes collection. + - kubectl - Connection plugin migrated from Ansible 2.9 to Kubernetes collection. + - openshift - Inventory source migrated from Ansible 2.9 to Kubernetes collection. diff --git a/changelogs/fragments/49-k8s-add-persist_config-option.yaml b/changelogs/fragments/49-k8s-add-persist_config-option.yaml new file mode 100644 index 00000000..ef4c3f4d --- /dev/null +++ b/changelogs/fragments/49-k8s-add-persist_config-option.yaml @@ -0,0 +1,3 @@ +--- +minor_changes: + - k8s - Added ``persist_config`` option for persisting refreshed tokens (https://github.com/ansible-collections/community.kubernetes/issues/49). diff --git a/changelogs/fragments/51-kubectl-security-disclosure.yaml b/changelogs/fragments/51-kubectl-security-disclosure.yaml new file mode 100644 index 00000000..0d2fd915 --- /dev/null +++ b/changelogs/fragments/51-kubectl-security-disclosure.yaml @@ -0,0 +1,3 @@ +--- +security_fixes: + - kubectl - Warn about information disclosure when using options like ``kubectl_password``, ``kubectl_extra_args``, and ``kubectl_token`` to pass data through to the command line using the ``kubectl`` connection plugin (https://github.com/ansible-collections/community.kubernetes/pull/51). diff --git a/changelogs/fragments/52-kubectl-connection-docsfix.yaml b/changelogs/fragments/52-kubectl-connection-docsfix.yaml new file mode 100644 index 00000000..ff71021c --- /dev/null +++ b/changelogs/fragments/52-kubectl-connection-docsfix.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: + - kubectl - Fix documentation in kubectl connection plugin (https://github.com/ansible-collections/community.kubernetes/pull/52). diff --git a/changelogs/fragments/54-k8s-add-exception-handling.yaml b/changelogs/fragments/54-k8s-add-exception-handling.yaml new file mode 100644 index 00000000..73fd6c54 --- /dev/null +++ b/changelogs/fragments/54-k8s-add-exception-handling.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: + - k8s - Add exception handling when retrieving k8s client (https://github.com/ansible-collections/community.kubernetes/pull/54). diff --git a/changelogs/fragments/56-k8s-from_yaml-docs-examples.yaml b/changelogs/fragments/56-k8s-from_yaml-docs-examples.yaml new file mode 100644 index 00000000..399b1ef8 --- /dev/null +++ b/changelogs/fragments/56-k8s-from_yaml-docs-examples.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: + - k8s - Use ``from_yaml`` filter with lookup examples in ``k8s`` module documentation examples (https://github.com/ansible-collections/community.kubernetes/pull/56). diff --git a/changelogs/fragments/61-helm-new-modules.yaml b/changelogs/fragments/61-helm-new-modules.yaml new file mode 100644 index 00000000..d741500d --- /dev/null +++ b/changelogs/fragments/61-helm-new-modules.yaml @@ -0,0 +1,5 @@ +--- +major_changes: + - helm - New module for managing Helm charts (https://github.com/ansible-collections/community.kubernetes/pull/61). + - helm_info - New module for retrieving Helm chart information (https://github.com/ansible-collections/community.kubernetes/pull/61). + - helm_repository - New module for managing Helm repositories (https://github.com/ansible-collections/community.kubernetes/pull/61). diff --git a/changelogs/fragments/69-k8s_log-dont-parse-as-json.yaml b/changelogs/fragments/69-k8s_log-dont-parse-as-json.yaml new file mode 100644 index 00000000..bf34a741 --- /dev/null +++ b/changelogs/fragments/69-k8s_log-dont-parse-as-json.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: + - k8s_log - Module no longer attempts to parse log as JSON (https://github.com/ansible-collections/community.kubernetes/pull/69). diff --git a/changelogs/fragments/78-github-actions-workflow.yaml b/changelogs/fragments/78-github-actions-workflow.yaml new file mode 100644 index 00000000..7985746e --- /dev/null +++ b/changelogs/fragments/78-github-actions-workflow.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: + - Update GitHub Actions workflow for better CI stability (https://github.com/ansible-collections/community.kubernetes/pull/78). diff --git a/changelogs/fragments/81-rename-repository.yaml b/changelogs/fragments/81-rename-repository.yaml new file mode 100644 index 00000000..dd77b24e --- /dev/null +++ b/changelogs/fragments/81-rename-repository.yaml @@ -0,0 +1,3 @@ +--- +minor_changes: + - Rename repository to ``community.kubernetes`` (https://github.com/ansible-collections/community.kubernetes/pull/81). diff --git a/changelogs/fragments/85-exclude-unnecessary-files-when-building.yaml b/changelogs/fragments/85-exclude-unnecessary-files-when-building.yaml new file mode 100644 index 00000000..f7f4be75 --- /dev/null +++ b/changelogs/fragments/85-exclude-unnecessary-files-when-building.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: + - Make sure extra files are not included in built collection (https://github.com/ansible-collections/community.kubernetes/pull/85).