• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

openconfig / kne / 37549155772
48%

Build:
DEFAULT BRANCH: main
Ran 06 Oct 2026 11:58PM UTC
Jobs 1
Files 65
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

06 Oct 2026 11:54PM UTC coverage: 47.227% (+0.3%) from 46.958%
37549155772

push

github

web-flow
Wait for service ready before considering topology created (#780)

* Wait for service ready before considering topology created

Immediately after all pods are ready, KNE calls service.show() and expects all services to be ready; no retry on error.

For large topologies, it can take a while for metallb to assign IPs across all services. KNE should explicitly wait for service ready condition before treating bring up as finished.

1. **topo.go**:
    * Added checkServiceStatus(ctx, timeout):
        * Iterates over all topology nodes that have services defined.
        * Concurrently polls nod.Services(ctx) until all services for the node are ready.
        * Evaluates LoadBalancer services to ensure len(Status.LoadBalancer.Ingress) > 0 and that an external IP or hostname is populated.
        * Retries with a 500ms backoff until all services are ready or the timeout/context expires.
    * Updated Manager.Create():
        * Calls m.checkServiceStatus(ctx, serviceTimeout) immediately after m.checkNodeStatus(ctx, timeout) completes, preventing Create()
        from returning before LoadBalancer services have their external IPs assigned.

2. **topo_test.go**:
    * Added a fake reactor on create services in TestCreate to simulate load balancer ingress assignment.
    * Added a test case success with hanging service + timeout to verify timeout behavior when services fail to get an IP.

All unit tests in ~/src/kne/topo/... are passing.

* Address review comments for service ready check

- Add floor and default timeout for checkServiceStatus when timeout == 0 or elapsed >= timeout
- Log nodes pending service ready status on timeout
- Add nil check in isServiceReady to avoid panic on unpopulated services
- Add services reactor to TestCreateSonicNode
- Add unit tests for isServiceReady and calculateServiceTimeout

90 of 107 new or added lines in 1 file covered. (84.11%)

6983 of 14786 relevant lines covered (47.23%)

0.54 hits per line

Uncovered Changes

Lines Coverage ∆ File
17
83.04
0.15% topo/topo.go
Subprojects
ID Flag name Job ID Ran Files Coverage
1 /jobs/189119231 37549155772.1 06 Oct 2026 11:58PM UTC 65
47.23
GitHub Action Run
Source Files on build 37549155772
  • Tree
  • List 65
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 2d00d1a3 on github
  • Prev Build on main (#37541007489)
  • Next Build on main (#37685723467)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc