Skip to content

Commit 8d242f7

Browse files
committed
ondemand grafana proxying now conditional on ondemand having groups defined
1 parent 3e1f019 commit 8d242f7

File tree

6 files changed

+39
-35
lines changed

6 files changed

+39
-35
lines changed

ansible/roles/kube_prometheus_stack/defaults/main/helm.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,9 @@ kube_prometheus_stack_release_defaults:
104104
searchNamespace: ALL
105105
grafana.ini:
106106
server:
107-
domain: "{{ openondemand_servername }}"
108-
root_url: "{{ grafana_url_openondemand_proxy }}"
109-
serve_from_sub_path: true
107+
domain: "{{ grafana_domain }}"
108+
root_url: "{{ grafana_url }}"
109+
serve_from_sub_path: "{{ grafana_serve_from_sub_path }}"
110110
auth: "{{ grafana_auth }}"
111111
auth.anonymous:
112112
enabled: "{{ grafana_auth_anonymous }}"

ansible/roles/kube_prometheus_stack/defaults/main/main.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ kube_prometheus_stack_release_name: kube-prometheus-stack
1212
# The timeout to wait for the release to become ready
1313
kube_prometheus_stack_wait_timeout: 5m
1414

15-
login_ip: "{{ hostvars[groups['openondemand'][0]]['ansible_host'] }}" # probably needs to be more robust
1615
control_ip: "{{ ansible_default_ipv4.address| default(ansible_all_ipv4_addresses[0]) }}"
17-
control_sslip: "{{ control_ip | regex_replace('\\.', '-') }}.sslip.io"
1816

1917
grafana_auth_anonymous: false
2018

ansible/roles/kube_prometheus_stack/tasks/main.yml

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
annotations:
3434
storageclass.kubernetes.io/is-default-class: "false"
3535

36-
# variables would need refactoring to let us loop through the data directories nicely
3736
- name: Create Prometheus hostPath volume in /var/lib/state
3837
kubernetes.core.k8s:
3938
namespace: "{{ kube_prometheus_stack_release_namespace }}"
@@ -53,36 +52,38 @@
5352
path: "{{ prometheus_db_dir }}"
5453
type: DirectoryOrCreate
5554

56-
# not looping through these because templating doesn't set ports as integer
57-
- name: Creating headless service for OOD exporter
58-
kubernetes.core.k8s:
59-
namespace: "{{ kube_prometheus_stack_release_namespace }}"
60-
definition:
61-
kind: Service
62-
metadata:
63-
name: ood-exporter
64-
spec:
65-
clusterIP: None
66-
ports:
67-
- name: ood-exporter
68-
port: 9301
69-
protocol: TCP
70-
71-
- name: Binding OOD exporter service to host
72-
kubernetes.core.k8s:
73-
namespace: "{{ kube_prometheus_stack_release_namespace }}"
74-
definition:
75-
kind: Endpoints
76-
metadata:
77-
name: ood-exporter
78-
subsets:
79-
- addresses:
80-
- ip: "{{ login_ip }}"
81-
ports:
82-
- port: 9301
83-
name: ood-exporter
55+
- name: Setting up k3s services for OnDemand Exporter
56+
when: groups['openondemand'] | count > 0
57+
block:
58+
- name: Creating headless service for OOD exporter
59+
kubernetes.core.k8s:
60+
namespace: "{{ kube_prometheus_stack_release_namespace }}"
61+
definition:
62+
kind: Service
63+
metadata:
64+
name: ood-exporter
65+
spec:
66+
clusterIP: None
67+
ports:
68+
- name: ood-exporter
69+
port: 9301
8470
protocol: TCP
8571

72+
- name: Binding OOD exporter service to host
73+
kubernetes.core.k8s:
74+
namespace: "{{ kube_prometheus_stack_release_namespace }}"
75+
definition:
76+
kind: Endpoints
77+
metadata:
78+
name: ood-exporter
79+
subsets:
80+
- addresses:
81+
- ip: "{{ openondemand_ip }}"
82+
ports:
83+
- port: 9301
84+
name: ood-exporter
85+
protocol: TCP
86+
8687
- name: Creating headless service for slurm exporter
8788
kubernetes.core.k8s:
8889
namespace: "{{ kube_prometheus_stack_release_namespace }}"

environments/common/inventory/group_vars/all/defaults.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ prometheus_address: "{{ hostvars[groups['prometheus'].0].api_address }}:{{ prome
2020
openondemand_address: "{{ hostvars[groups['openondemand'].0].api_address if groups['openondemand'] | count > 0 else '' }}"
2121
grafana_address: "{{ hostvars[groups['prometheus'].0].api_address }}"
2222

23+
# Service IP addresses
24+
openondemand_ip: "{{ hostvars[groups['openondemand'].0].ansible_host if groups['openondemand'] else '' }}"
25+
2326
############################# bootstrap: local user configuration #########################
2427

2528
# Note RockyLinux 8.5 defines system user/groups in range 201-999

environments/common/inventory/group_vars/all/grafana.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ grafana_api_url: "http://{{ grafana_api_address }}:{{ grafana_port }}"
66
grafana_url_direct: "http://{{ grafana_address }}:{{ grafana_port }}"
77
grafana_url_openondemand_proxy: "https://{{ openondemand_servername | default('') }}/node/{{ groups['prometheus'].0 }}/{{ grafana_port }}"
88
grafana_url: "{{ grafana_url_openondemand_proxy if groups['openondemand'] | count > 0 else grafana_url_direct }}"
9+
grafana_serve_from_sub_path: "{{ groups['openondemand'] | count > 0 }}"
10+
grafana_domain: "{{ ( openondemand_servername | default('') ) if groups['openondemand'] | count > 0 else grafana_api_address }}"
911

1012
grafana_dashboards_default:
1113
# node exporter slurm:

environments/common/inventory/group_vars/all/openondemand.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ openondemand_scrape_configs:
178178
scrape_interval: 2m
179179
static_configs:
180180
- targets:
181-
- "{{ login_ip }}:9301"
181+
- "{{ openondemand_address }}:9301"
182182
labels:
183183
environment: "{{ appliances_environment_name }}"
184184
service: "openondemand"

0 commit comments

Comments
 (0)