[stable/2023.1] Add Goldpinger + node-exporter-full (#1640) (#1683)

Co-authored-by: Mohammed Naser <mnaser@vexxhost.com>
diff --git a/roles/goldpinger/README.md b/roles/goldpinger/README.md
new file mode 100644
index 0000000..38dbb35
--- /dev/null
+++ b/roles/goldpinger/README.md
@@ -0,0 +1 @@
+# `goldpinger`
diff --git a/roles/goldpinger/defaults/main.yml b/roles/goldpinger/defaults/main.yml
new file mode 100644
index 0000000..aae6f4b
--- /dev/null
+++ b/roles/goldpinger/defaults/main.yml
@@ -0,0 +1,9 @@
+# Copyright (c) 2024 VEXXHOST, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+goldpinger_helm_release_name: goldpinger
+goldpinger_helm_chart_path: "../../charts/goldpinger/"
+goldpinger_helm_chart_ref: /usr/local/src/goldpinger
+
+goldpinger_helm_release_namespace: monitoring
+goldpinger_helm_values: {}
diff --git a/roles/goldpinger/meta/main.yml b/roles/goldpinger/meta/main.yml
new file mode 100644
index 0000000..b978b60
--- /dev/null
+++ b/roles/goldpinger/meta/main.yml
@@ -0,0 +1,25 @@
+# Copyright (c) 2024 VEXXHOST, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+galaxy_info:
+  author: VEXXHOST, Inc.
+  description: Ansible role for Goldpinger
+  license: Apache-2.0
+  min_ansible_version: 5.5.0
+  standalone: false
+  platforms:
+    - name: EL
+      versions:
+        - "8"
+        - "9"
+    - name: Ubuntu
+      versions:
+        - focal
+        - jammy
+
+dependencies:
+  - role: defaults
+  - role: vexxhost.kubernetes.upload_helm_chart
+    vars:
+      upload_helm_chart_src: "{{ goldpinger_helm_chart_path }}"
+      upload_helm_chart_dest: "{{ goldpinger_helm_chart_ref }}"
diff --git a/roles/goldpinger/tasks/main.yml b/roles/goldpinger/tasks/main.yml
new file mode 100644
index 0000000..42c71a3
--- /dev/null
+++ b/roles/goldpinger/tasks/main.yml
@@ -0,0 +1,12 @@
+# Copyright (c) 2024 VEXXHOST, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+- name: Deploy Helm chart
+  run_once: true
+  kubernetes.core.helm:
+    name: "{{ goldpinger_helm_release_name }}"
+    chart_ref: "{{ goldpinger_helm_chart_ref }}"
+    release_namespace: "{{ goldpinger_helm_release_namespace }}"
+    create_namespace: true
+    kubeconfig: /etc/kubernetes/admin.conf
+    values: "{{ _goldpinger_helm_values | combine(goldpinger_helm_values, recursive=True) }}"
diff --git a/roles/goldpinger/vars/main.yml b/roles/goldpinger/vars/main.yml
new file mode 100644
index 0000000..8610dcc
--- /dev/null
+++ b/roles/goldpinger/vars/main.yml
@@ -0,0 +1,22 @@
+# Copyright (c) 2022 VEXXHOST, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+_goldpinger_helm_values:
+  image:
+    repository: "{{ atmosphere_images['goldpinger'] | vexxhost.kubernetes.docker_image('name') }}"
+  goldpinger:
+    port: 30080
+  extraEnv:
+    - name: USE_HOST_IP
+      value: "true"