2018-02-13 15:43:16 +01:00
===========
Ansible 2.4
===========
2017-07-18 23:11:15 +02:00
**Core Engine Freeze and Module Freeze: 15 August 2017**
2017-07-14 18:30:09 +02:00
2017-07-18 23:11:15 +02:00
**Core and Curated Module Freeze: 15 August 2017**
**Community Module Freeze: 29 August 2017**
2017-07-14 18:30:09 +02:00
2017-08-29 18:15:55 +02:00
**Release Candidate 1 will be 06 September, 2017**
2017-07-14 18:30:09 +02:00
**Target: Mid-September 2017**
2017-07-11 21:57:01 +02:00
.. contents :: Topics
Administrivia and Process
-------------------------
- Starting with 2.4, all items that are deprecated will be removed in 4 major releases unless otherwise stated.
- For example: A module that is deprecated in 2.4 will be removed in 2.8
Python 2.4 and 2.5 support discontinuation
------------------------------------------
- Ansible will not support Python 2.4 nor 2.5 on the target hosts anymore.
Going forward, Python 2.6+ will be required on targets, as already is the case on the controller.
Python 3
--------
2017-07-21 21:17:49 +02:00
- Ansible Core Engine and Core modules will be tested on Python 3
- All Core modules now have at least a smoketest integration test.
Additional coverage is welcomed to find more bugs and prevent regressions.
2017-07-11 21:57:01 +02:00
- Communicate with Linux distros to provide Ansible running on Python 3
2017-07-21 21:17:49 +02:00
- Python3 based Ansible packages are now available to run on Fedora Linux
2017-07-11 21:57:01 +02:00
Ansible-Config
--------------
2017-07-18 18:42:22 +02:00
- Proposal found in ansible/proposals issue `#35 <https://github.com/ansible/proposals/issues/35> `_ .
- Initial PR of code found in ansible/ansible PR `#12797 <https://github.com/ansible/ansible/pull/12797> `_ . **(done)**
- Per plugin configuration (depends on plugin docs below). **(WIP)**
- New yaml format for config **(possibly pushed to future roadmap)**
2017-07-11 21:57:01 +02:00
- Extend the ability of the current config system by adding an `` ansible-config `` command and add the following:
2017-07-18 18:42:22 +02:00
- Dump existing config settings **(working, fine tuning)**
- Update / write a config entry **(pushed to future roadmap)**
- Show available options (ini entry, yaml, env var, etc) **(working, fine tuning)**
2017-07-11 21:57:01 +02:00
Inventory
---------
2017-07-18 18:42:22 +02:00
**(done, needs docs)**
2017-07-11 21:57:01 +02:00
- Proposal found in ansible/proposals issue `#41 <https://github.com/ansible/proposals/issues/41> `_ .
2017-07-18 18:42:22 +02:00
- Current inventory is overly complex, non modular and mostly still a legacy from inception.
2017-07-11 21:57:01 +02:00
Facts
-----
2017-09-18 19:41:17 +02:00
- Configurable list of 'fact modules' for `` gather_facts `` **(done)**
2017-07-20 00:44:51 +02:00
- Fact gathering policy finer grained **(done)**
- Make `` setup.py `` /`` facts `` more pluggable **(done)**
- Improve testing of `` setup.py `` /`` facts.py `` **(done)**
- Namespacing fact variables (via a config option) implemented in ansible/ansible PR `#18445 <https://github.com/ansible/ansible/pull/18445> `_ . **(done)**
2017-07-18 18:58:51 +02:00
Proposal found in ansible/proposals issue `#17 <https://github.com/ansible/proposals/issues/17> `_ .
2017-07-11 21:57:01 +02:00
PluginLoader
------------
2017-07-18 18:42:22 +02:00
**(pushed out to future release)**
2017-07-18 20:42:56 +02:00
- Over the past couple releases we've had some thoughts about how PluginLoader might be better structured
2017-07-11 21:57:01 +02:00
- Load the loaders via an initialization function(), not when importing
the module. (stretch goal, doesn't impact the CLI)
- Separate duties of `` PluginLoader `` from `` PluginFinder `` . Most plugins need
both but Modules and Module_utils only need a PluginFinder
- Write different `` PluginFinder `` subclasses for module_utils and perhaps
Modules. Most Plugin types have a flattened namespace and are single
python files. Modules include code that is not written in python.
Module_utils are vastly different from the other Plugins as they
maintain a hierarchical namespace and are multi-file.
- Potentially split module_utils loader for python from module_utils
loader for powershell. Currently we only support generic module_utils
for python modules. The powershell modules always include a single,
hardcoded powershell module_utils file. If we add generic module_utils
for powershell, we'll need to decide how to organize the code.
2017-08-15 20:58:26 +02:00
Static Loop Keyword
2017-07-11 21:57:01 +02:00
-------------------
2017-08-15 20:58:26 +02:00
- **Pushed to 2.5**
2017-07-11 21:57:01 +02:00
- Deprecate (not on standard deprecation cycle) `` with_ `` in favor of `` loop: ``
- This `` loop: `` will take only a list
- Remove complexity from loops, lookups are still available to users
- Less confusing having a static directive vs a one that is dynamic depending on plugins loaded.
Vault
-----
2017-08-02 17:15:12 +02:00
- Support for multiple vault passwords. **(done)**
2017-07-11 21:57:01 +02:00
2017-08-02 17:15:12 +02:00
- Each decrypted item should know which secret to request **(done)**
2017-07-11 21:57:01 +02:00
- Support requesting credentials (password prompt) as callbacks
- Ability to open and edit file with encrypted vars deencrypted, and encrypt/format on save
Globalize Callbacks
-------------------
2017-07-18 18:42:22 +02:00
**(pushed out to future release)**
2017-07-11 21:57:01 +02:00
- Make send_callback available to other code that cannot use it.
2017-09-18 19:41:17 +02:00
- Would allow for 'full formatting' of output (see JSON callback)
- Fixes static 'include' display problem
2017-07-11 21:57:01 +02:00
Plugins
-------
2017-07-18 18:42:22 +02:00
- Allow plugins to have embedded docs (like modules) **(done)**
- Update ansible-doc and website to generate docs from these ansible/ansible PR `#22796 <https://github.com/ansible/ansible/pull/22796> `_ . **(ansible-doc working, todo:website)**
2017-07-11 21:57:01 +02:00
Group Priorities
----------------
2017-07-18 18:42:22 +02:00
**(done)**
2017-07-11 21:57:01 +02:00
- Start using existing group priority variable to sort/merge group vars
- Implementation for this in ansible/ansible PR `#22580 <https://github.com/ansible/ansible/pull/22580> `_ .
- Documentation of group priority variable
Runtime Check on Modules for Blacklisting
-----------------------------------------
2017-07-18 18:42:22 +02:00
**(pushed out to future release)**
2017-07-11 21:57:01 +02:00
- Filter on things like "supported_by" in module metadata
- Provide users with an option of "warning, error or allow/ignore"
- Configurable via ansible.cfg and environment variable
Disambiguate Includes
---------------------
2017-09-26 23:27:21 +02:00
- Create import_x for 'static includes' (import_task, import_playbook, import_role)
2017-07-11 21:57:01 +02:00
2017-09-18 19:41:17 +02:00
- Any directives are applied to the 'imported' tasks
2017-07-11 21:57:01 +02:00
2017-09-18 19:41:17 +02:00
- Create include_x for 'dynamic includes' (include_task, include_role)
2017-07-11 21:57:01 +02:00
2017-09-18 19:41:17 +02:00
- Any directives apply to the 'include' itself
2017-07-11 21:57:01 +02:00
Windows
-------
2017-07-24 17:32:54 +02:00
- New PS/.NET module API **(in progress)**
2017-07-11 21:57:01 +02:00
- Windows Nano Server support
2017-07-24 17:32:54 +02:00
- Windows module_utils pluginloader **(done)**
- Refactor duplicated module code into new module_utils files **(in progress)**
2017-07-11 21:57:01 +02:00
- Evaluate #Requires directives (existing and new: PS version, OS version, etc)
2017-07-24 17:32:54 +02:00
- Improve module debug support/persistence **(done)**
- Explore official DSC support **(done)**
2017-07-11 21:57:01 +02:00
- Explore module intermediate output
2017-07-24 17:32:54 +02:00
- Explore Powershell module unit testing **(in progress)**
2017-07-11 21:57:01 +02:00
- Explore JEA support (stretch)
- Extended become support with network/service/batch logon types
- Module updates
- Split "Windows" category into multiple subs
2017-08-29 01:19:17 +02:00
- Domain user/group management modules **(done)**
2017-08-11 00:55:51 +02:00
- win_mapped_drive module **(done)**
- win_hotfix **(done)**
2017-07-11 21:57:01 +02:00
- win_updates rewrite to require become
2017-08-29 01:19:17 +02:00
- win_package changes required to deprecate win_msi **(done)**
- win_copy re-write **(done)**
2017-07-11 21:57:01 +02:00
AWS
---
- Focus on pull requests for various modules
- Triage existing merges for modules
- Module work
2017-07-21 22:56:06 +02:00
- elb-target-groups `#19492 <https://github.com/ansible/ansible/pull/19492> `_ , `#24583 <https://github.com/ansible/ansible/pull/24583> `_ . **(done)**
- alb* `#19491 <https://github.com/ansible/ansible/pull/19491>`_, `#24584 <https://github.com/ansible/ansible/pull/24584>`_. * *(done)* *
- ecs `#20618 <https://github.com/ansible/ansible/pull/20618> `_ . **(in review process)**
- Data Pipelines `#22878 <https://github.com/ansible/ansible/pull/22878> `_ . **(in review process)**
- VPN `#24385 <https://github.com/ansible/ansible/pull/24385> `_ . **(in review process)**
- DirectConnect `#26152 <https://github.com/ansible/ansible/pull/26152> `_ . **(connection module in review process, several more to come)**
2017-07-11 21:57:01 +02:00
Azure
-----
2017-08-29 19:35:24 +02:00
- Expose endpoint overrides **(done)**
- Reformat/document module output to collapse internal API structures and surface important data (eg, public IPs, NICs, data disks) **(pushed to future)**
2017-07-24 17:32:54 +02:00
- Add load balancer module **(in progress)**
- Add Azure Functions module **(in progress)**
2017-07-11 21:57:01 +02:00
Google Cloud Platform
---------------------
- New Module: DataProc
- Support for Cross-Region HTTP Load Balancing
- New Module: GKE
Network Roadmap
---------------
2017-09-01 16:26:33 +02:00
- Removal of `` *_template `` modules **(done)**
- Distributed Continuous Integration Infrastructure **(done)**
- RPC Connection Plugin **(done)**
- Module Work
- Declarative intent modules **(done)**
- OpenVSwitch **(done)**
- Minimal Viable Platform Agnostic Modules **(done)**
2017-07-11 21:57:01 +02:00
Contributor Quality of Life
---------------------------
2017-07-21 06:42:26 +02:00
- All Core and Curated modules will work towards having unit testing. **(edit: integration and/or unit tests)**
2017-07-11 21:57:01 +02:00
- More bot improvements!
2017-07-21 06:42:26 +02:00
- Bot comments on PRs with details of test failures. **(done)**
2017-07-11 21:57:01 +02:00
- Test Infrastructure changes
- Shippable + Bot Integration
2017-07-21 06:42:26 +02:00
- Provide verified test results to the bot from Shippable so the bot can comment on PRs with CI failures. **(done, compile and sanity tests only)**
- Enable the bot to mark PRs with `` ci_verified `` if all CI failures are verified. **(done)**
2017-07-11 21:57:01 +02:00
- Windows Server 2016 Integration Tests
- Restore Windows Server 2016 integration tests on Shippable.
- Originally enabled during the 2.3 release cycle, but later disabled due to intermittent WinRM issues.
- Depends on resolution of WinRM connection issues.
2017-03-29 00:53:43 +02:00
2017-08-16 19:55:19 +02:00
- Windows Server Nano Integration Tests **(pushed to future roadmap)**
2017-03-29 00:53:43 +02:00
2017-07-11 21:57:01 +02:00
- Add support to ansible-core-ci for Windows Server 2016 Nano and enable on Shippable.
- This will use a subset of the existing Windows integration tests.
- Depends on resolution of WinRM connection issues.
2017-03-29 00:53:43 +02:00
2017-07-11 21:57:01 +02:00
- Windows + Python 3 Tests
2017-03-29 00:53:43 +02:00
2017-07-21 06:42:26 +02:00
- Run basic Windows tests using Python 3 as the controller. **(partially done, not all planned tests running yet)**
2017-07-11 21:57:01 +02:00
- Depends on resolution of WinRM Python 3 issues.
2017-03-29 00:53:43 +02:00
2017-07-11 21:57:01 +02:00
- Cloud Integration Tests
2017-03-29 00:53:43 +02:00
2017-07-21 06:42:26 +02:00
- Run existing cloud integration tests as part of CI for:
2017-08-16 19:55:19 +02:00
- AWS **(done)**
- Azure **(done)**
- GCP **(pushed to future roadmap)**
2017-07-21 06:42:26 +02:00
- Tests to be run only on cloud module (and module_utils) PRs and merges for the relevant cloud provider. **(done)**
2017-03-29 00:53:43 +02:00
2017-07-11 21:57:01 +02:00
- Test Reliability
2017-03-29 00:53:43 +02:00
2017-07-21 06:42:26 +02:00
- Further improve test reliability to reduce false positives on Shippable. **(ongoing)**
2017-07-11 21:57:01 +02:00
- This continues work from the 2.3 release cycle.
2017-03-29 00:53:43 +02:00
2017-07-11 21:57:01 +02:00
- Static Code Analysis
2017-03-29 00:53:43 +02:00
2017-07-21 06:42:26 +02:00
- Further expand the scope and coverage of static analysis. **(ongoing)**
2017-07-11 21:57:01 +02:00
- This continues work from the 2.3 release cycle.