Skip to content
This repository has been archived by the owner on Jan 8, 2023. It is now read-only.

Deprecate support for ansible 2.9 from molecule-podman #70

Closed
ssbarnea opened this issue Aug 27, 2021 · 5 comments
Closed

Deprecate support for ansible 2.9 from molecule-podman #70

ssbarnea opened this issue Aug 27, 2021 · 5 comments
Assignees
Labels
major Marks an important and likely breaking change.

Comments

@ssbarnea
Copy link
Member

ssbarnea commented Aug 27, 2021

In addition to the issue #60 for which we added some code that detects presence of pipelining and fails, we have other problems with ansible 2.9, like the fact that is not possible to use synchronize module on podman-provisioned hosts.

As seen in https://github.com/ansible-community/molecule-podman/pull/58/files we can observe that synchronize module fails with 2.9 regardless if pipeline is enabled or not.

  TASK [Gathering Facts] *********************************************************
  Failed to mount container instance: b'Error: cannot run command "podman mount" in rootless mode, must execute `podman unshare` first'
  ok: [instance]
  
  TASK [Copy something to test use of synchronize module] ************************
  An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: 'podman_executable'
  fatal: [instance]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}

As it is not possible for us to identify if user tries to use synchronize or not, is would be better to completely drop support for Ansible 2.9 in this driver.

That drastic move is also motivated by the fact that I was the only active maintainer on this driver and I did not see much support from others for maintenance and test coverage improvement.

Molecule itself will still work with ansible 2.9, but if you will try to use this driver with ansible 2.9, you will see a direct error message telling you to upgrade ansible.

@ssbarnea ssbarnea added the major Marks an important and likely breaking change. label Aug 27, 2021
@ssbarnea ssbarnea changed the title Drop support for ansible 2.9 due to mostly broken support Drop support for ansible 2.9 from molecule-podman Aug 27, 2021
@ssbarnea ssbarnea self-assigned this Aug 27, 2021
ssbarnea added a commit that referenced this issue Aug 27, 2021
Instead of removing support for Ansible 2.9, do raise a runtime
warning when the unsupported configuration is detected. Molecule
will catch and display these warnings when tests are failing, telling
users to try newer versions.

Related: #70
@sshnaidm
Copy link
Collaborator

ansible-posix works like a charm with this driver and 2.9 in case of no pipeline, I don't know why you insist on that.
I don't support dropping ansible 2.9 support because there is no a real reason for that.
We still use and will continue using 2.9 with molecule-podman in ooo stable branches for next year or two. So if you drop it, I'll have to look for alternative solutions, probably fork it.

@ssbarnea ssbarnea changed the title Drop support for ansible 2.9 from molecule-podman Deprecate support for ansible 2.9 from molecule-podman Sep 2, 2021
@ssbarnea
Copy link
Member Author

ssbarnea commented Sep 2, 2021

I talked with others and we will not remove support for ansible 2.9 at this moment but we will add a new feature to molecule that display a warning message when an unsupported runtime configuration is detected.

Basically podman under ansible 2.9 will be unsupported. We will still have CI pipelines testing some of the code (the one we know it works) but we will skip running some tests on 2.9, as we know them to be broken.

We will not accept bug reports for 2.9, but we will welcome patches. It is a trade-off that should make it easier for people to pace their migration and avoid our project being overwhelmed with false bug reports. If molecule user is clearly informed that their test execution failed on an unsupported configuration, they will be more likely to try to upgrade the test configuration before raising a bug or discussion thread.

Not closing this issue yet because the warning feature is not yet implemented as it requires changes in both driver and molecule.

ssbarnea added a commit that referenced this issue Sep 5, 2021
Instead of removing support for Ansible 2.9, do raise a runtime
warning when the unsupported configuration is detected. Molecule
will catch and display these warnings when tests are failing, telling
users to try newer versions.

Related: #70
ssbarnea added a commit that referenced this issue Sep 5, 2021
Instead of removing support for Ansible 2.9, do raise a runtime
warning when the unsupported configuration is detected. Molecule
will catch and display these warnings when tests are failing, telling
users to try newer versions.

Related: #70
ssbarnea added a commit that referenced this issue Sep 5, 2021
Instead of removing support for Ansible 2.9, do raise a runtime
warning when the unsupported configuration is detected. Molecule
will catch and display these warnings when tests are failing, telling
users to try newer versions.

Related: #70
ssbarnea added a commit that referenced this issue Sep 5, 2021
Instead of removing support for Ansible 2.9, do raise a runtime
warning when the unsupported configuration is detected. Molecule
will catch and display these warnings when tests are failing, telling
users to try newer versions.

Related: #70
@bbaassssiiee
Copy link
Member

Ansible 2.9 is stable, and advised for Red Hat customers. I hope it can be supported for 10 years, or 8 years to come. Community Ansible has many fast moving parts.

@tadeboro
Copy link
Contributor

Ansible 2.9 is stable, and advised for Red Hat customers. I hope it can be supported for 10 years, or 8 years to come. Community Ansible has many fast moving parts.

Ansible 2.9 will stop being supported mid-2022 IIRC (the same time as the Ansible Tower 3.x.y) and you will not be able to buy support for it anymore. Red Hat will only support ansible-core + certified collections in the future.

@webknjaz
Copy link
Member

Ansible 2.9 is stable, and advised for Red Hat customers.

It is. But Molecule and its ecosystem are not yet officially supported by Red Hat. It'll be probably included for install from the repos soon but without full support, until we figure out the subset of things we'll commit to Supporting (I mean the capital "S" support). We are currently not planning to actively break the compatibility with Ansible 2.9 but the maintainers of this repository don't have resources to actively test against it either.
OTOH, this issue arose from a known misconfiguration that only affects Ansible 2.9. There is no way to fix it upstream because that version does not affect accept new features and it's only implemented in the collections. This is why we're trying to implement a mechanism for the drivers to be able to warn users if they're attempting to have a non-working setup.

TL;DR The CI will still be running tests against Ansible 2.9 except for when something is impossible to support. We just wanted to communicate this clearly. Closing per above.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
major Marks an important and likely breaking change.
Projects
None yet
Development

No branches or pull requests

5 participants