How to use Ansible Kubernetes packages with the Helm package manager modules

1,420 views
Skip to first unread message

siva bagavathy

unread,
Mar 30, 2021, 8:14:26 AM3/30/21
to Ansible Project
Hi All,

I am trying to do helm install using Ansible Kubernetes packages with the Helm package manager modules.

If I use the below command in Ansible shell, the helm deployment is a success.

- name: install_nr_kubernetes_integration
      shell: /usr/local/bin/helm upgrade --install newrelic newrelic/nri-bundle --set global.licenseKey={{ new_relic_key }} --set global.cluster={{ gcp_cluster }} --set infrastructure.enabled=true --set prometheus.enabled=true --set webhook.enabled=true --set ksm.enabled=true --set kubeEvents.enabled=true --set logging.enabled=true

If I try to use the  Ansible Kubernetes packages with the Helm package manager modules, the helm deployment is not deployed as expected.

---

- name: install-new-relic-bundle
  hosts: all
  become: yes
  gather_facts: false
  vars_files:
    - test-vars.yml

  tasks:
    - name: integrate-new-relic-and-prometheus-with-cluster
      community.kubernetes.helm:
        binary_path: "/usr/local/bin/helm"
        release_namespace: default
        name: newrelic
        chart_ref: newrelic/nri-bundle
        values:
          global.cluster: "{{ gcp_cluster }}"
          global.licenseKey: "{{ new_relic_key }}"
          infrastructure.enabled: true
          prometheus.enabled: true

As am not sure what is the issue and how to map / convert the plan helm install command to ansible kubernets/helm module, please help fix this issue.

Thanks,
Siva

siva bagavathy

unread,
Mar 31, 2021, 5:54:08 AM3/31/21
to Ansible Project
Hi Team,

Could you help me with the above-said issue please?

Thanks,
Siva

Abhijeet Kasurde

unread,
Mar 31, 2021, 6:33:27 AM3/31/21
to ansible...@googlegroups.com
Hi Siva,

Let me try to reproduce this and get back to you.

--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/3cf344ed-b6f9-4e07-85e3-21fadcaf1e76n%40googlegroups.com.


--
Thanks,
Abhijeet Kasurde

Abhijeet Kasurde

unread,
Mar 31, 2021, 7:52:35 AM3/31/21
to ansible...@googlegroups.com
Hi Siva,

I am not able to reproduce any error, here is my output -

changed: [localhost] => {
    "changed": true,
    "command": "/usr/local/bin/helm upgrade -i --reset-values -f=/tmp/tmp9iz7ys8s.yml newrelic newrelic/nri-bundle",
    "invocation": {
        "module_args": {
            "api_key": null,
            "atomic": false,
            "binary_path": "/usr/local/bin/helm",
            "ca_cert": null,
            "chart_ref": "newrelic/nri-bundle",
            "chart_repo_url": null,
            "chart_version": null,
            "context": null,
            "create_namespace": false,
            "disable_hook": false,
            "force": false,
            "host": null,
            "kubeconfig": null,
            "name": "newrelic",
            "purge": true,
            "release_name": "newrelic",
            "release_namespace": "default",
            "release_state": "present",
            "release_values": {
                "global.cluster": "a",
                "global.licenseKey": "a",
                "infrastructure.enabled": true,
                "prometheus.enabled": true
            },
            "replace": false,
            "skip_crds": false,
            "update_repo_cache": false,
            "validate_certs": true,
            "values": {
                "global.cluster": "a",
                "global.licenseKey": "a",
                "infrastructure.enabled": true,
                "prometheus.enabled": true
            },
            "values_files": [],
            "wait": false,
            "wait_timeout": null
        }
    },
    "status": {
        "app_version": "1.0",
        "chart": "nri-bundle-2.6.0",
        "name": "newrelic",
        "namespace": "default",
        "revision": "1",
        "status": "deployed",
        "updated": "2021-03-31 17:20:56.228572 +0530 IST",
        "values": {
            "global.cluster": "a",
            "global.licenseKey": "a",
            "infrastructure.enabled": true,
            "prometheus.enabled": true
        }
    },
    "stderr": "",
    "stderr_lines": [],
    "stdout": "Release \"newrelic\" does not exist. Installing it now.\nNAME: newrelic\nLAST DEPLOYED: Wed Mar 31 17:20:56 2021\nNAMESPACE: default\nSTATUS: deployed\nREVISION: 1\nTEST SUITE: None\n",
    "stdout_lines": [
        "Release \"newrelic\" does not exist. Installing it now.",
        "NAME: newrelic",
        "LAST DEPLOYED: Wed Mar 31 17:20:56 2021",
        "NAMESPACE: default",
        "STATUS: deployed",
        "REVISION: 1",
        "TEST SUITE: None"
    ]
}


Can you please paste your error message or console log?

--
Thanks,
Abhijeet Kasurde

siva bagavathy

unread,
Apr 1, 2021, 5:26:02 AM4/1/21
to Ansible Project
Hi Abhijeet,

Thanks for your help.

Please find the log below. Btrw, there is no error message upon running the playbook. But its not deployed the helm chart.

<34.69.209.68> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="ansadmin"' -o ConnectTimeout=10 -o ControlPath=/home/ansadmin/.ansible/cp/e12395894d 34.69.209.68 '/bin/sh -c '"'"'rm -f -r /home/ansadmin/.ansible/tmp/ansible-tmp-1617268607.9522765-6383-1146126971822/ > /dev/null 2>&1 && sleep 0'"'"''
<34.69.209.68> (0, b'', b'')
changed: [34.69.209.68] => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "command": "/usr/local/bin/helm upgrade -i --reset-values -f=/tmp/tmprp_GBW.yml newrelic newrelic/nri-bundle",
    "invocation": {
        "module_args": {
            "api_key": null,
            "atomic": false,
            "binary_path": "/usr/local/bin/helm",
            "ca_cert": null,
            "chart_ref": "newrelic/nri-bundle",
            "chart_repo_url": null,
            "chart_version": null,
            "context": null,
            "create_namespace": false,
            "disable_hook": false,
            "force": false,
            "host": null,
            "kubeconfig": null,
            "name": "newrelic",
            "purge": true,
            "release_name": "newrelic",
            "release_namespace": "default",
            "release_state": "present",
            "release_values": {
                "global.cluster": " sample-cluster-instance-1 ",
                "global.licenseKey": "tempkey45878",
                "infrastructure.enabled": true,
                "prometheus.enabled": true
            },
            "replace": false,
            "skip_crds": false,
            "update_repo_cache": false,
            "validate_certs": true,
            "values": {
                "global.cluster": "sample-cluster-instance-1",
                "global.licenseKey": "tempkey45878",
                "infrastructure.enabled": true,
                "prometheus.enabled": true
            },
            "values_files": [],
            "wait": false,
            "wait_timeout": null
        }
    },
    "status": {
        "app_version": "1.0",
        "chart": "nri-bundle-2.6.0",
        "name": "newrelic",
        "namespace": "default",
        "revision": "1",
        "status": "deployed",
        "updated": "2021-04-01 09:16:49.648228551 +0000 UTC",
        "values": {
            "global.cluster": "sample-cluster-instance-1",
            "global.licenseKey": "tempkey45878",
            "infrastructure.enabled": true,
            "prometheus.enabled": true
        }
    },
    "stderr": "",
    "stderr_lines": [],
    "stdout": "Release \"newrelic\" does not exist. Installing it now.\nNAME: newrelic\nLAST DEPLOYED: Thu Apr  1 09:16:49 2021\nNAMESPACE: default\nSTATUS: deployed\nREVISION: 1\nTEST SUITE: None\n",
    "stdout_lines": [
        "Release \"newrelic\" does not exist. Installing it now.",
        "NAME: newrelic",
        "LAST DEPLOYED: Thu Apr  1 09:16:49 2021",
        "NAMESPACE: default",
        "STATUS: deployed",
        "REVISION: 1",
        "TEST SUITE: None"
    ]
}


PLAY RECAP **********************************************************************************************************************************************************************************
34.69.209.68               : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Thanks,
Siva

Sivaraman S b

unread,
Apr 8, 2021, 7:10:34 AM4/8/21
to Ansible Project
Hi Abhijeet, Team,

Could you help me with my request?

Thanks in advance.

Thanks,
Siva

Abhijeet Kasurde

unread,
Apr 8, 2021, 7:32:29 AM4/8/21
to ansible...@googlegroups.com
Can you please paste kubectl -n default get pods?



--
Thanks,
Abhijeet Kasurde

Sivaraman S b

unread,
Apr 8, 2021, 8:07:36 AM4/8/21
to Ansible Project
Please find the output.

]# kubectl -n default get pods
NAME                                        READY   STATUS      RESTARTS   AGE
newrelic-nri-metadata-injection-job-4gsxp   0/1     Completed   0          5h30m


In actual helm deployment, it should show below PODS and daemon sets. All are missing when deploy using ansible helm modules.

# kubectl -n default get pods
NAME                                              READY   STATUS              RESTARTS   AGE
newrelic-kube-state-metrics-774bcf5cf5-zhtjb      0/1     Running             0          7s
newrelic-newrelic-infrastructure-246kt            1/1     Running             0          7s
newrelic-newrelic-infrastructure-cjrbs            1/1     Running             0          7s
newrelic-newrelic-infrastructure-klkv6            1/1     Running             0          7s
newrelic-newrelic-infrastructure-p8r5t            1/1     Running             0          7s
newrelic-newrelic-infrastructure-tlgm4            1/1     Running             0          7s
newrelic-newrelic-infrastructure-zbd2d            1/1     Running             0          7s
newrelic-newrelic-logging-cm8gv                   1/1     Running             0          7s
newrelic-newrelic-logging-dpcjw                   1/1     Running             0          7s
newrelic-newrelic-logging-lgf6b                   1/1     Running             0          7s
newrelic-newrelic-logging-pxgnq                   1/1     Running             0          7s
newrelic-newrelic-logging-wh9qc                   1/1     Running             0          7s
newrelic-newrelic-logging-ztmrs                   1/1     Running             0          7s
newrelic-nri-kube-events-86d68fd965-9xbrf         2/2     Running             0          7s
newrelic-nri-metadata-injection-d7d676576-6d2vj   0/1     ContainerCreating   0          7s
newrelic-nri-metadata-injection-job-pr6lx         1/1     Running             0          7s
newrelic-nri-prometheus-586654b7ff-d229g          1/1     Running             0          7s

# kubectl get pods --all-namespaces | grep kube-state-metrics
default        newrelic-kube-state-metrics-774bcf5cf5-zhtjb                     1/1     Running     0          47s

# kubectl get daemonsets
NAME                               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
newrelic-newrelic-infrastructure   6         6         6       6            6           <none>          72s
newrelic-newrelic-logging          6         6         6       6            6           <none>          72s

Abhijeet Kasurde

unread,
Apr 8, 2021, 9:21:05 AM4/8/21
to ansible...@googlegroups.com
Hi Siva,

Can you please try with values like -

    - name: integrate-new-relic-and-prometheus-with-cluster
      community.kubernetes.helm:
        binary_path: "/usr/local/bin/helm"
        release_namespace: default
        name: newrelic
        chart_ref: newrelic/nri-bundle
        values:
          global:
            cluster: "a"
            licenseKey: "a"
          infrastructure:
            enabled: true
          prometheus:
            enabled: true




--
Thanks,
Abhijeet Kasurde

siva bagavathy

unread,
Apr 8, 2021, 9:51:28 AM4/8/21
to ansible...@googlegroups.com
Hi Abhijeet,

It is showing the same output still.

Not sure where is the issue ?

Thanks,
Siva

Reply all
Reply to author
Forward
0 new messages