Skip to content
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

ERROR! Unexpected Exception, this is probably a bug: module 'ansible_collections.kubernetes.core.plugins.action.helm_repository' has no attribute 'ActionModule' #11314

Closed
franznemeth opened this issue Jun 20, 2024 · 2 comments
Labels
kind/bug Categorizes issue or PR as related to a bug. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.

Comments

@franznemeth
Copy link
Contributor

What happened?

I am running upgrade-cluster.yml to upgrade from 1.29.2 to 1.29.5 and I got the following exception:

TASK [helm-apps : Validating arguments against arg spec 'main' - Install a list of Helm charts.] *********************************************************************************************************************************************************************************************************************************************************************************************************************************************task path: /home/franz.nemeth/git/k8s-clusters/kubespray/playbooks/upgrade_cluster.yml:41
ok: [ceres.lan] => {
    "changed": false,
    "msg": "The arg spec validation passed",
    "validate_args_context": {
        "argument_spec_name": "main",
        "name": "helm-apps",
        "path": "/home/franz.nemeth/git/k8s-clusters/kubespray/roles/helm-apps",
        "type": "role"
    }
}
ERROR! Unexpected Exception, this is probably a bug: module 'ansible_collections.kubernetes.core.plugins.action.helm_repository' has no attribute 'ActionModule'
the full traceback was:

Traceback (most recent call last):
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/cli/__init__.py", line 659, in cli_executor
    exit_code = cli.run()
                ^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/cli/playbook.py", line 156, in run
    results = pbex.run()
              ^^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/executor/playbook_executor.py", line 190, in run
    result = self._tqm.run(play=play)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/executor/task_queue_manager.py", line 348, in run
    play_return = strategy.run(iterator, play_context)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/plugins/strategy/linear.py", line 193, in run
    action = action_loader.get(task_action, class_only=True, collection_list=task.collections)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/plugins/loader.py", line 862, in get
    return self.get_with_context(name, *args, **kwargs).object
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/plugins/loader.py", line 913, in get_with_context
    obj = getattr(self._module_cache[path], self.class_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'ansible_collections.kubernetes.core.plugins.action.helm_repository' has no attribute 'ActionModule'

What did you expect to happen?

The upgrade-cluster.yml to run through successfully

How can we reproduce it (as minimally and precisely as possible)?

Running the upgrade-cluster.yml playbook

OS

Linux 5.15.153.1-microsoft-standard-WSL2 x86_64
NAME="Fedora Remix for WSL"
VERSION="40"
ID=fedoraremixforwsl
ID_LIKE=fedora
VERSION_ID=40
PLATFORM_ID="platform:f40"
PRETTY_NAME="Fedora Remix for WSL"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:40"
HOME_URL="https://github.com/WhitewaterFoundry/Fedora-Remix-for-WSL"
SUPPORT_URL="https://github.com/WhitewaterFoundry/Fedora-Remix-for-WSL"
BUG_REPORT_URL="https://github.com/WhitewaterFoundry/Fedora-Remix-for-WSL/issues"
PRIVACY_POLICY_URL="https://github.com/WhitewaterFoundry/Fedora-Remix-for-WSL/blob/master/PRIVACY.md"
FEDORA_REMIX_VERSION=40.0.3

Version of Ansible

ansible [core 2.16.8]
  config file = None
  configured module search path = ['/home/franz.nemeth/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible
  ansible collection location = /home/franz.nemeth/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/franz.nemeth/git/k8s-clusters/venv/bin/ansible
  python version = 3.12.3 (main, Apr 17 2024, 00:00:00) [GCC 14.0.1 20240411 (Red Hat 14.0.1-0)] (/home/franz.nemeth/git/k8s-clusters/venv/bin/python)
  jinja version = 3.1.4
  libyaml = True

Version of Python

Python 3.12.3

Version of Kubespray (commit)

2e0008c

Network plugin used

custom_cni

Full inventory with variables

container_manager: containerd
etcd_deployment_type: kubeadm
# Cilium helm installation
kube_network_plugin: custom_cni
# This must be set to root otherwise cilium agent init fails with permission denied while copying to /opt/cni/bin
cni_bin_owner: root
custom_cni_chart_namespace: kube-system
custom_cni_chart_release_name: cilium
custom_cni_chart_repository_name: cilium
custom_cni_chart_repository_url: https://helm.cilium.io
custom_cni_chart_ref: cilium/cilium
custom_cni_chart_version: 1.15.2
custom_cni_chart_values:
  annotateK8sNode: true
  dnsPolicy: "ClusterFirstWithHostNet"
  kubeProxyReplacement: "true"
  k8sServiceHost: "10.11.12.13"
  k8sServicePort: "6443"
  nodeinit:
    enabled: true
  ipam:
    mode: "kubernetes"
    operator:
      clusterPoolIPv4PodCIDRList: ["{{ kube_pods_subnet }}"]

kube_version: v1.29.5

# Cluster Loglevel configuration
kube_log_level: 2

# Kubernetes internal network for services, unused block of space.
kube_service_addresses: 10.43.0.0/16
kube_pods_subnet: 10.42.0.0/16
---
# inventory.yaml
all:
  # Ansible connection settings.
  vars:
    # Explicitly set the connection type to the node servers.
    ansible_connection: ssh
  hosts:
    ceres.lan:
      ansible_host: 10.11.12.13
    deimos.lan:
      ansible_host: 10.11.12.14
  children:
    kube_control_plane:
      hosts:
        ceres.lan:
    kube_node:
      hosts:
        ceres.lan:
        deimos.lan:
    etcd:
      hosts:
        ceres.lan:
    k8s_cluster:
      children:
        kube_control_plane:
        kube_node:

Command used to invoke ansible

cd kubespray && ansible-playbook -i ../inventory ./upgrade-cluster.yml -b

Output of ansible run

TASK [helm-apps : Validating arguments against arg spec 'main' - Install a list of Helm charts.] *********************************************************************************************************************************************************************************************************************************************************************************************************************************************task path: /home/franz.nemeth/git/k8s-clusters/kubespray/playbooks/upgrade_cluster.yml:41
ok: [ceres.lan] => {
    "changed": false,
    "msg": "The arg spec validation passed",
    "validate_args_context": {
        "argument_spec_name": "main",
        "name": "helm-apps",
        "path": "/home/franz.nemeth/git/k8s-clusters/kubespray/roles/helm-apps",
        "type": "role"
    }
}
ERROR! Unexpected Exception, this is probably a bug: module 'ansible_collections.kubernetes.core.plugins.action.helm_repository' has no attribute 'ActionModule'
the full traceback was:

Traceback (most recent call last):
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/cli/__init__.py", line 659, in cli_executor
    exit_code = cli.run()
                ^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/cli/playbook.py", line 156, in run
    results = pbex.run()
              ^^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/executor/playbook_executor.py", line 190, in run
    result = self._tqm.run(play=play)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/executor/task_queue_manager.py", line 348, in run
    play_return = strategy.run(iterator, play_context)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/plugins/strategy/linear.py", line 193, in run
    action = action_loader.get(task_action, class_only=True, collection_list=task.collections)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/plugins/loader.py", line 862, in get
    return self.get_with_context(name, *args, **kwargs).object
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/franz.nemeth/git/k8s-clusters/venv/lib/python3.12/site-packages/ansible/plugins/loader.py", line 913, in get_with_context
    obj = getattr(self._module_cache[path], self.class_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'ansible_collections.kubernetes.core.plugins.action.helm_repository' has no attribute 'ActionModule'

Anything else we need to know

No response

@franznemeth franznemeth added the kind/bug Categorizes issue or PR as related to a bug. label Jun 20, 2024
@franznemeth
Copy link
Contributor Author

I found a fix.
Running ansible-galaxy collection install kubernetes.core --upgrade inside my venv solved the issue. Is this something I can contribute back to the project or is this a problem with my local environment?

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

No branches or pull requests

3 participants