Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1843933
telemetry repo with idrac and ldms telemetry support
priti-parate Jul 22, 2026
e90d051
copy telemetry input files using omnia.sh
priti-parate Jul 22, 2026
be75b03
deploy kafka and victoria templates
priti-parate Jul 23, 2026
82a38ec
update kafka and victoria variables
priti-parate Jul 23, 2026
a453e94
Merge branch 'dell:issue-4849-omnia-modernization' into issue-4849-om…
priti-parate Jul 23, 2026
1a8dab2
telemetry credential generation
priti-parate Jul 23, 2026
e9de4d7
update condition for telemetry metrics
priti-parate Jul 23, 2026
acf7a74
seprate secrets tempate for kafka and idrac
priti-parate Jul 23, 2026
74e0afa
remove ldms.json
priti-parate Jul 23, 2026
982e090
enable telemtery for each component
priti-parate Jul 24, 2026
cd84a9c
Resolve merge conflicts - keep remote version for standalone telemetr…
priti-parate Jul 24, 2026
da29c50
update playbooks/<component> structure
priti-parate Jul 27, 2026
b0ab37a
Resolve merge conflicts - accept incoming PR implementations for tele…
priti-parate Jul 27, 2026
f4615f5
Fix telemetry validation - remove provision_config.yml dependency
priti-parate Jul 27, 2026
190dbcd
Victoria certificate generation
priti-parate Jul 28, 2026
8176f69
update victoria required images
priti-parate Jul 28, 2026
b6ef477
Merge branch 'dell:issue-4849-omnia-modernization' into issue-4849-om…
priti-parate Jul 29, 2026
7060f34
Updated folder structure
priti-parate Jul 29, 2026
b10bb29
Merge branch 'dell:issue-4849-omnia-modernization' into issue-4849-om…
priti-parate Jul 29, 2026
756e4d1
revert merge conflict changes
priti-parate Jul 29, 2026
229bd7f
update revert chagnes
priti-parate Jul 29, 2026
b989812
update manifest on everyrun
priti-parate Jul 29, 2026
85b0a4d
generate telemetry report
priti-parate Jul 29, 2026
e1c1661
update idrac telemetry and ldms UT issues
priti-parate Jul 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion src/orchestrator/orchestrator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -243,5 +243,4 @@
- k8s_config
- slurm_config
- openldap
- telemetry
- configure_ochami
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,44 @@
dest: "{{ orchestrator_inventory_file }}"
flat: true

- name: Ensure orchestrator output directory exists
ansible.builtin.file:
path: "{{ playbook_dir }}/output"
state: directory
mode: "{{ hostvars['localhost']['dir_permissions_755'] }}"
delegate_to: localhost

- name: Generate Kubernetes inventory file
ansible.builtin.template:
src: "{{ kube_inventory_template }}"
dest: "{{ kube_inventory_file }}"
mode: "{{ hostvars['localhost']['file_permissions_644'] }}"
vars:
nodes: "{{ hostvars['localhost']['read_mapping_file']['dict'] | dict2items }}"
kube_vip: "{{ hostvars['oim']['kube_vip'] | default('') }}"
k8s_functional_groups: "{{ hostvars['localhost']['k8s_functional_groups'] | default(['service_kube_control_plane_first_x86_64', 'service_kube_control_plane_x86_64', 'service_kube_node_x86_64']) }}"

- name: Copy Kubernetes inventory file to localhost
ansible.builtin.fetch:
src: "{{ kube_inventory_file }}"
dest: "{{ kube_inventory_file }}"
flat: true

- name: Generate Slurm inventory file
ansible.builtin.template:
src: "{{ slurm_inventory_template }}"
dest: "{{ slurm_inventory_file }}"
mode: "{{ hostvars['localhost']['file_permissions_644'] }}"
vars:
nodes: "{{ hostvars['localhost']['read_mapping_file']['dict'] | dict2items }}"
slurm_functional_groups: "{{ hostvars['localhost']['slurm_functional_groups'] | default(['slurm_control_node_x86_64', 'slurm_node_x86_64', 'login_node_x86_64', 'login_compiler_node_x86_64', 'slurm_node_aarch64', 'login_node_aarch64', 'login_compiler_node_aarch64']) }}"

- name: Copy Slurm inventory file to localhost
ansible.builtin.fetch:
src: "{{ slurm_inventory_file }}"
dest: "{{ slurm_inventory_file }}"
flat: true

- name: Delete smd configuration
ansible.builtin.include_tasks: delete_smd_config.yml

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Kubernetes Inventory
# Generated by orchestrator.yml
# Contains K8s cluster groups for telemetry and service deployment
---
all:
children:
kube_vip_group:
hosts:
{{ kube_vip }}:
ansible_user: root
{% for group_name in k8s_functional_groups %}
{% set group_nodes = nodes | selectattr('value.FUNCTIONAL_GROUP_NAME', 'equalto', group_name) | list %}
{% if group_nodes | length > 0 %}
{{ group_name }}:
hosts:
{% for item in group_nodes | sort(attribute='value.XNAME') %}
{{ item.value.HOSTNAME }}:
ansible_host: {{ item.value.ADMIN_IP }}
bmc_ip: {{ item.value.BMC_IP }}
group_name: {{ item.value.GROUP_NAME }}
{% endfor %}
{% endif %}
{% endfor %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Slurm Inventory
# Generated by orchestrator.yml
# Contains Slurm cluster groups for telemetry and service deployment
---
all:
children:
{% for group_name in slurm_functional_groups %}
{% set group_nodes = nodes | selectattr('value.FUNCTIONAL_GROUP_NAME', 'equalto', group_name) | list %}
{% if group_nodes | length > 0 %}
{{ group_name }}:
hosts:
{% for item in group_nodes | sort(attribute='value.XNAME') %}
{{ item.value.HOSTNAME }}:
ansible_host: {{ item.value.ADMIN_IP }}
bmc_ip: {{ item.value.BMC_IP }}
group_name: {{ item.value.GROUP_NAME }}
{% endfor %}
{% endif %}
{% endfor %}
4 changes: 4 additions & 0 deletions src/orchestrator/roles/configure_ochami/vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ telemetry_share_path: "{{ hostvars['localhost']['oim_shared_path'] }}/omnia/tele
bmc_group_data_file: "{{ hostvars['localhost']['orchestrator_output_dir'] }}/bmc_group_data.csv"
orchestrator_inventory_template: "{{ role_path }}/templates/nodes/orchestrator_inventory.yaml.j2"
orchestrator_inventory_file: "{{ hostvars['localhost']['orchestrator_output_dir'] }}/orchestrator_inventory.yaml"
kube_inventory_template: "{{ role_path }}/templates/nodes/kube_inventory.yml.j2"
kube_inventory_file: "{{ playbook_dir }}/output/kube_inventory.yml"
slurm_inventory_template: "{{ role_path }}/templates/nodes/slurm_inventory.yml.j2"
slurm_inventory_file: "{{ playbook_dir }}/output/slurm_inventory.yml"
openchami_work_dir: "{{ hostvars['localhost']['oim_shared_path'] }}/omnia/openchami/workdir"
nodes_dir: "{{ openchami_work_dir }}/nodes"
openchami_config_vars_path: "{{ openchami_share_path }}/configs_vars.yaml"
Expand Down
96 changes: 0 additions & 96 deletions src/orchestrator/roles/telemetry/tasks/deploy_vector_ome.yml

This file was deleted.

2 changes: 1 addition & 1 deletion src/telemetry/ansible.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[defaults]
roles_path = roles
roles_path = roles:../../roles
stdout_callback = omnia_default
callback_plugins = callback_plugins
library = library/modules
Expand Down
10 changes: 0 additions & 10 deletions src/telemetry/input/telemetry_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,16 +70,6 @@
# Default (8Gi each): victoria_metrics (24Gi) + victoria_logs (29Gi) + Kafka (48Gi) = 101Gi total
# ============================================================================

# ============================================================================
# TELEMETRY CLUSTER CONFIGURATION
# ============================================================================
# K8s cluster configuration for telemetry deployment

# Kubernetes control plane virtual IP address
# Required for all telemetry deployments
# All K8s tasks (kubectl, helm) execute on this host via SSH
kube_vip: ""

# ============================================================================
# TELEMETRY SOURCES (Data Collectors)
# ============================================================================
Expand Down
36 changes: 36 additions & 0 deletions src/telemetry/input/telemetry_packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,42 @@ telemetry_registry:
cert_path: ""
key_path: ""
username: ""
images:
victoria:
vmstorage: "victoriametrics/vmstorage:v1.128.0-cluster"
vmselect: "victoriametrics/vmselect:v1.128.0-cluster"
vminsert: "victoriametrics/vminsert:v1.128.0-cluster"
vmagent: "victoriametrics/vmagent:v1.128.0"
victoria_logs: "victoriametrics/victoria-logs:v1.50.0"
vlagent: "victoriametrics/vlagent:v1.50.0"
operator: "victoriametrics/operator:v0.68.3"
kafka:
kafka: "strimzi/kafka:1.1.0-kafka-4.3.0"
kafka_bridge: "strimzi/kafka-bridge:1.0.0"
operator: "strimzi/operator:1.1.0"
idrac:
idrac_telemetry_receiver: "dellhpcomniaaisolution/idrac_telemetry_receiver:1.3"
kafkapump: "dellhpcomniaaisolution/kafkapump:1.3"
victoriapump: "dellhpcomniaaisolution/victoriapump:1.3"
mysql: "library/mysql:9.3.0"
activemq: "apache/activemq:5.19.7"
powerscale:
csm_metrics_powerscale: "dell/container-storage-modules/csm-metrics-powerscale:v1.12.0"
opentelemetry_collector: "open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:0.150.1"
ldms:
ubuntu_ldms: "dellhpcomniaaisolution/ubuntu-ldms:1.1"
vector: "timberio/vector:0.54.0-debian"
infrastructure:
nginx: "nginxinc/nginx-unprivileged"
busybox: "library/busybox"
curl: "curlimages/curl"
kubectl: "alpine/kubectl"
pause: "pause"
cert_manager:
acmesolver: "jetstack/cert-manager-acmesolver"
cainjector: "jetstack/cert-manager-cainjector"
controller: "jetstack/cert-manager-controller"
webhook: "jetstack/cert-manager-webhook"

# ============================================================================
# TELEMETRY PACKAGES (Full Pulp / HTTP URLs)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@
from ansible.module_utils.input_validation.common_utils.validation_utils import create_error_msg




def validate_telemetry_config(
input_file_path, data, logger, module, omnia_base_dir, module_utils_base, project_name
):
Expand Down
27 changes: 27 additions & 0 deletions src/telemetry/playbooks/cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Copyright 2026 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# 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.

---
# Cleanup telemetry
# Usage: ansible-playbook telemetry.yml --tags cleanup

- name: Cleanup Telemetry Components
hosts: localhost
gather_facts: true
any_errors_fatal: true

tasks:
- name: Placeholder task for cleanup
ansible.builtin.debug:
msg: "Cleanup telemetry - to be implemented"
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
# Copyright 2026 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -11,9 +12,14 @@
# 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.

---
- name: Cleanup DCGM Telemetry
hosts: kube_vip_group
gather_facts: true
any_errors_fatal: true

telemetry_namespace: "telemetry"
idrac_telemetry_k8s_name: "idrac-telemetry-receiver"
idrac_telemetry_statefulset_scale_down_msg: "Scaling down iDRAC telemetry StatefulSet to 0 replicas"
idrac_telemetry_statefulset_not_found_msg: "iDRAC telemetry StatefulSet not found, nothing to scale down"
tasks:
- name: Placeholder task for DCGM telemetry cleanup
ansible.builtin.debug:
msg: "DCGM telemetry cleanup - to be implemented"
Loading