Repository navigation
Conversation
Build the diagnostic CLI from a private copy of the pinned Lemming source, carry the temporary connection-policy patch, and register the package in the Alpine image and existing CI artifacts. Include linked-source notices and focused package/cache tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: db2e0f10-3729-4d5d-b4da-3654eb856d74 Signed-off-by: Baiju Parameswaran <baijup@microsoft.com>
|
/azp run |
|
No pipelines are associated with this pull request. |
|
Hi @baijupn , can you pls tell me where are you using lemctl and why do we need this change (as well as the openconfig/lemming change)? cc: @hardikharti |
Hi @sonikajindal,
The change ensures remote diagnostic connections verify the server’s identity and protect traffic in transit. The upstream change consistently requires verified TLS for remote endpoints, supports private CA certificates, and limits plaintext connections to literal loopback addresses. This Alpine PR explicitly packages the diagnostic tool with those connection defaults. The temporary backport allows Alpine delivery while upstream review and approval are pending. Once upstream merges and Alpine’s Lemming pin includes the change, the carried patch can be removed. |
Address Alpine review feedback with a Go-only release build, matching notices, static-binary checks and a documented packaging exception. Keep only Go and documentation changes in the carried patch. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: db2e0f10-3729-4d5d-b4da-3654eb856d74 Signed-off-by: Baiju Parameswaran <baijup@microsoft.com>
|
/azp run |
|
No pipelines are associated with this pull request. |
|
"The change ensures remote diagnostic connections verify the server’s identity and protect traffic in transit." - I am trying to understand who is the user for lemctl? Just to add, we own the Lucius part of Lemming and we can work with you to merge the lemming PR, rather than creating this temporary backport. |
This tool is used for debugging by developers and troubleshooting in deployments. Validation Results
After the fix
It would be great if you could help with merging the lemming PR, and this backport may not be needed anymore .. |
|
I mean, are you using this tool? Because we don't use this (so far), hence curious why you ended up using it and found the gap. |
Checked again within the team and it looks like this tool is not used even though the source code in present. Closing these PRs!! |
Why I did it
Make the Lucius diagnostic CLI available through Alpine's normal package, container, and CI artifact paths with consistent connection behavior. This is a temporary backport of openconfig/lemming#754 while upstream review and merge are pending, rather than waiting for a future Lemming pin update.
How I did it
lemctlDebian package built from Alpine's existing Lemming pin (1975dcc4cb7f1766445c791ba12e7445b2d74548). Apply the carried patch to a private source archive, leaving the shared submodule unchanged.CGO_ENABLED=0, avoiding a target libc dependency. Document the Go resolver/NSS trade-off and scope the intentional static-linking Lintian exception to/usr/bin/lemctl. Lintian remains a local check; CI adds only extracted/installed static-binary checks.Remove the patch when the pinned Lemming revision contains the upstream change. Forward-only, zero-fuzz application intentionally rejects incompatible or already-patched sources.
Verification
All results below are local validation, not claims of hosted CI approval.
docker-sonic-alpinevs.gzbuildKey commands:
In initialized/configured sonic-buildimage with the candidate Alpine tree:
Retained evidence excerpts
Retained artifact SHA256:
ff6656e626622ce0e0e6909ab2292a2cf46c3006b71b799965a3851572d71fbeabf60e328a2981a7581dfa6ada848924ae5835801d02fecf7a2d385549d379fdLimits and integration follow-up
initial-upload-closes-no-bugsandno-manual-pagewarnings.October 26 review follow-up validation
Validated revision:
2a871c40f5060766e102f2a3f9611ac664ea93d9(same file contents as the tested candidate). Rebuilt the complete amd64 Alpine container and verified its installed binary/notices against the rebuilt package, including actual hostname/TLS and transport RPC checks. In a full-system ARM64 guest, all three affected race binaries, native package build/install, nine Python regressions, Go tests, module verification, static ELF checks, 48 linked-module notices, and installed loopback/nonloopback CLI regressions passed.Failed/partial attempts were retained: an unchanged ARM64 RPC race test timed out during a concurrent image build, then passed on an isolated rerun without changing assertions or deadlines. Image checks account only for the standard removal of documentation/Lintian metadata; fixture-permission and guest package-lock interruptions were corrected before final passing checks. Hostname checks use localhost; arbitrary DNS/custom NSS environments are not covered. Physical ARM64 and a full ARM64 SONiC image remain outside this validation.