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

kubeovn / kube-ovn / 30190583142
30%

Build:
DEFAULT BRANCH: master
Ran 26 Jul 2026 06:12AM UTC
Jobs 1
Files 220
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

26 Jul 2026 06:09AM UTC coverage: 28.029% (+0.02%) from 28.013%
30190583142

push

github

web-flow
fix(util): handle zero-compressed IPv6 addresses in IPv6ToLabelValue (#7077)

Motivation:
Issue #6643 reports that the controller crash-loops when a VPC sets
spec.enableExternal: true with an IPv6/dual-stack external subnet,
because createOrUpdateOvnEipCR() stored the raw IPv6 address (which
contains ':') as a Kubernetes label value. Label values only allow
[a-zA-Z0-9._-] and must start/end with an alphanumeric character.

The main crash from the issue's reported repro address is already
fixed on master (util.IPv6ToLabelValue, added in c16eb3219, replaces
':' with '-' and is used consistently at every eip_v6_ip label
read/write site). This commit does not re-fix that crash; it closes
a residual edge case in the already-merged helper: when the address
itself starts or ends with '::' (zero-compression), e.g. "::1" or
"fd00:100::", the '-' substitution alone still produces a label
value starting or ending with '-', which fails the same Kubernetes
label validation and reproduces the same crash-loop for that
narrower set of addresses.

Approach:
Pad IPv6ToLabelValue's output with a leading/trailing "0" whenever
the ':'->'-' substitution would otherwise leave a leading or
trailing '-'. The function is used as a one-way, write-and-compare
label encoding only (no decode-back-to-IP path exists anywhere in
the codebase), so this remains deterministic and valid without
needing to be reversible.

Validation:
- go test (via a GOOS=linux/amd64 build, since pkg/util does not
  build on darwin due to an unrelated, pre-existing Linux-only NDP
  dependency) confirms the new TestIPv6ToLabelValue passes, covering
  "", a normal middle-"::" address, "::1", "fd00:100::", and "::",
  and asserting each output satisfies
  k8s.io/apimachinery/pkg/util/validation.IsValidLabelValue.
- golangci-lint run (GOOS=linux/amd64) on pkg/util: 0 issues.
- No CRD/kubebuilder annotations touched, so make gen-crd is not
  required.

Fixes #6643

Signed-off-by: Pujitha Paladugu <10557236+puj... (continued)

11 of 11 new or added lines in 1 file covered. (100.0%)

17082 of 60945 relevant lines covered (28.03%)

0.33 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30190583142.1 26 Jul 2026 06:12AM UTC 220
28.03
GitHub Action Run
Source Files on build 30190583142
  • Tree
  • List 220
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 6bd7e485 on github
  • Prev Build on master (#30181278144)
  • Next Build on master (#30198864379)
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