WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Conversation

@dmitsh
Copy link
Collaborator

@dmitsh dmitsh commented Dec 9, 2025

No description provided.

@codecov
Copy link

codecov bot commented Dec 9, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 64.84%. Comparing base (9d3e3e3) to head (64f71f6).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #190   +/-   ##
=======================================
  Coverage   64.84%   64.84%           
=======================================
  Files          78       78           
  Lines        4275     4275           
=======================================
  Hits         2772     2772           
  Misses       1395     1395           
  Partials      108      108           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@greptile-apps
Copy link

greptile-apps bot commented Dec 9, 2025

Greptile Overview

Greptile Summary

Adds infrastructure for building and deploying InfiniBand diagnostic tools as a separate Docker image. The new workflow builds a lightweight Ubuntu-based container with infiniband-diags and ibutils packages, publishes it to ghcr.io/nvidia/topograph/ib, and includes example Helm values for deploying it as a privileged pod with host /sys/class access for InfiniBand topology discovery.

Key changes:

  • New docker-ib.yml workflow for manual image builds with multi-arch support (amd64/arm64)
  • Minimal Dockerfile.ib with only IB diagnostic tools
  • Example values file configuring privileged pod deployment with node selectors
  • Minor formatting improvements in main values.yaml (reordering fields for consistency)

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • The changes add new optional infrastructure without modifying existing functionality. The workflow is properly isolated, the Dockerfile follows best practices, and the example configuration is clearly documented as an example file.
  • No files require special attention

Important Files Changed

File Analysis

Filename Score Overview
.github/workflows/docker-ib.yml 5/5 New workflow to build and publish IB tools Docker image to ghcr.io, triggered manually
Dockerfile.ib 5/5 Simple Ubuntu-based image with InfiniBand diagnostic tools installed
charts/topograph/values.k8s-ib-example.yaml 5/5 Example Helm values for InfiniBand provider with privileged pod configuration

Sequence Diagram

sequenceDiagram
    participant Dev as Developer
    participant GHA as GitHub Actions
    participant GHCR as ghcr.io Registry
    participant K8s as Kubernetes Cluster
    participant Pod as IB Tools Pod
    participant IB as InfiniBand Network
    
    Dev->>GHA: Trigger workflow_dispatch
    GHA->>GHA: Checkout repository
    GHA->>GHA: Build Dockerfile.ib (multi-arch)
    GHA->>GHCR: Push image to ghcr.io/nvidia/topograph/ib
    
    Note over K8s: Deploy with values.k8s-ib-example.yaml
    K8s->>GHCR: Pull ghcr.io/nvidia/topograph/ib:main
    K8s->>Pod: Create privileged pod with /sys/class mount
    Pod->>IB: Access InfiniBand devices via mounted /sys/class
    Pod->>Pod: Run ibnetdiscover and IB diagnostic tools
    Pod->>K8s: Report topology data to node-observer
Loading

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines 42 to 55
#- name: Build and push app Docker image
# id: build-and-push
# uses: docker/build-push-action@v6
# with:
# context: .
# file: ./Dockerfile
# push: ${{ github.event_name != 'pull_request' }}
#build-args: |
# TARGETOS=linux
# TARGETARCH=amd64
# platforms: linux/amd64,linux/arm64
# tags: |
# ${{ env.REGISTRY }}/${{ github.repository }}/app:latest
# ${{ env.REGISTRY }}/${{ github.repository }}/app:${{ github.sha }}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: this commented-out section appears to be leftover code from refactoring - remove if not needed

Suggested change
#- name: Build and push app Docker image
# id: build-and-push
# uses: docker/build-push-action@v6
# with:
# context: .
# file: ./Dockerfile
# push: ${{ github.event_name != 'pull_request' }}
#build-args: |
# TARGETOS=linux
# TARGETARCH=amd64
# platforms: linux/amd64,linux/arm64
# tags: |
# ${{ env.REGISTRY }}/${{ github.repository }}/app:latest
# ${{ env.REGISTRY }}/${{ github.repository }}/app:${{ github.sha }}

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

REGISTRY: ghcr.io
# github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }}
REPO_NAME: ${{ github.repository.toLower() }}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

syntax: .toLower() is not valid GitHub Actions expression syntax - the workflow will fail at runtime

Suggested change
REPO_NAME: ${{ github.repository.toLower() }}
REPO_NAME: ${{ lower(github.repository) }}

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@dmitsh dmitsh force-pushed the ds-docker-ib branch 2 times, most recently from 756db47 to eca373c Compare December 9, 2025 00:49
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

REGISTRY: ghcr.io
# github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }}
REPO_NAME: ${{ github.repository }}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: REPO_NAME env variable is defined but never used - the tags on lines 71-72 are hardcoded to nvidia/topograph

Suggested change
REPO_NAME: ${{ github.repository }}
# IMAGE_NAME is used in hardcoded tags below

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

REGISTRY: ghcr.io
# github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }}
IMAGE_NAME: ${{ github.repository }}/ib
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: modifying this workflow replaces the main application image build - the original Dockerfile that builds the topograph application will no longer be built

create a separate workflow file (e.g., docker-ib.yml) for the IB tools image, or use a matrix strategy to build both images

@dmitsh dmitsh force-pushed the ds-docker-ib branch 2 times, most recently from 2f1c9e2 to 38488bf Compare December 9, 2025 03:22
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

verbosity: 4

config:
request_aggregation_delay: 15s
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: key name uses incorrect snake_case format - should be camelCase requestAggregationDelay to match the template at charts/topograph/templates/configmap.yml:12 and config struct at pkg/config/config.go:34

Suggested change
request_aggregation_delay: 15s
requestAggregationDelay: 15s

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

Signed-off-by: Dmitry Shmulevich <[email protected]>
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@dmitsh dmitsh merged commit e4abe32 into main Dec 9, 2025
6 checks passed
@dmitsh dmitsh deleted the ds-docker-ib branch December 9, 2025 03:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants