New ansible-lint not compatible with ansible 2.9
Opis problemu
Podczas próby aktualizacji do najnowszej wersji ansible-lint podczas wykonywania testów wystąpił nastepujący błąd → https://projects.task.gda.pl/containers/linters/ansible/-/jobs/924226
w skrócie sprowadza się to do stwierdzenia że ansible-lint (wersja 6.8.6 najnowsza na tą chwilę) nie jest w stanie wywoływać niektórych funkcji w połączeniu z ansible (wersja 2.9.27). Przykład:
>>> import ansiblelint.runner
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/tester/.local/lib/python3.10/site-packages/ansiblelint/runner.py", line 13, in <module>
import ansiblelint.utils
File "/home/tester/.local/lib/python3.10/site-packages/ansiblelint/utils.py", line 40, in <module>
from ansible.parsing.mod_args import ModuleArgsParser
File "/home/tester/.local/lib/python3.10/site-packages/ansible/parsing/mod_args.py", line 26, in <module>
from ansible.plugins.loader import module_loader, action_loader
File "/home/tester/.local/lib/python3.10/site-packages/ansible/plugins/loader.py", line 26, in <module>
from ansible.utils.collection_loader import AnsibleCollectionLoader, AnsibleFlatMapLoader, AnsibleCollectionRef
ImportError: cannot import name 'AnsibleCollectionLoader' from 'ansible.utils.collection_loader' (/home/tester/.local/lib/python3.10/site-packages/ansible/utils/collection_loader/__init__.py)
Skutki
Dopóki stoimy przy ansible 2.9 nie jesteśmy w stanie zaaktualizować wersji lintera (który ma dużo usprawnień i udogodnień, np lintowanie czy używamy fqcn w nazwach modułów).
Możliwe rozwiązania
- Rezygnacja ze wsparcia ansible 2.9 w kontenerze do lintowania (budowanie jednego taga, a do starego ansible używnie poprzedniej wersji).
- olać i nic nie wydawać
- więcej opcji nie widze ale przyjmę :P
Edited by Krzysztof Szymański