Skip to content

feat: device-profiles — CRD field, gRPC wiring, and reference onboarding YAMLs - #484

Open
steiler wants to merge 8 commits into
mainfrom
sonic-device-profile
Open

steiler wants to merge 8 commits into
mainfrom
sonic-device-profile

Conversation

@steiler

@steiler steiler commented Aug 28, 2026 •

Copy link
Copy Markdown
Contributor

Depends on / related

See docs/design/device-profile-paired-testing.md for CI Pairs-with: guidance.

Summary

Config-server side of the device-profile effort (KRM layer): typed deviceProfile on
TargetConnectionProfileSpec ("", sonic, cisco-ios-xr), gRPC wiring through
CreateDataStore, and reference onboarding manifests for SONiC and Cisco IOS-XR.

Branch name sonic-device-profile is historical; this PR is the single combined config-server
line for all profile values.

  • CRD/API (apis/inv/v1alpha1): DeviceProfileNone / DeviceProfileSonic /
    DeviceProfileCiscoIOSXR on TargetConnectionProfileSpec, with DeviceProfile() defaulting
    absent values to none.
  • gRPC wiring (pkg/reconcilers/targetdatastore): toProtoDeviceProfile maps the CR field
    onto sdcpb.DeviceProfile_* in getCreateDataStoreRequest.
  • Reference YAMLs
    • example/sonic/ — SONiC schema, connection/sync profiles, discovery rule.
    • example/cisco-iosxr/ — IOS-XR sync profile, sample configs, README (json_ietf).
    • example/connection-profiles/ — unit-tested connection-profile fixtures for both NOS values.
    • IOS-XR discovery vendor profile + schema under example/schemas/ (lab-validated gNMI paths).

Ticket tracking: .scratch/sonic-device-profile/issues/ (06–08 done).

Test plan

  • go test ./apis/inv/v1alpha1/...
  • go test ./pkg/reconcilers/targetdatastore/...
  • go test ./pkg/discovery/discoveryrule/...
  • go build ./...

Lets operators set deviceProfile: sonic (or cisco-ios-xr) on a
TargetConnectionProfile CR, with the K8s API enforcing the closed set at
apply time, mirroring pkg/config.DeviceProfile in data-server so the value
maps 1-to-1 through the gRPC DeviceProfile enum. Wiring the value through
to CreateDataStore gRPC is tracked separately (ticket 07).
…tore gRPC

Bumps sdc-protos to v0.0.55-0.20260828064538-40ed0bc26a71 (deviceprofile
branch, DEVICE_PROFILE_SONIC = 2) and maps
TargetConnectionProfileSpec.DeviceProfile onto sdcpb.Target.DeviceProfile
in getCreateDataStoreRequest, so data-server can activate the sonic
encoder for targets reconciled through the Kubernetes control plane.

Ticket: .scratch/sonic-device-profile/issues/07-wire-deviceprofile-through-grpc.md
Ticket 06 was also re-landed here (cherry-picked cleanly onto this branch,
cut from origin/main) instead of staying on config-server-cache-backend,
so both tickets note why in their Comments sections.
Ticket 07 was almost implemented on config-server-cache-backend by mistake,
since that's what the primary checkout happens to be on. Write down the
worktree/branch this effort actually uses so that doesn't happen again.
Add example/sonic/{schema,connection-profile,sync-profile,discovery-rule}.yaml
plus a README covering apply order and prerequisites, so operators can
onboard a SONiC device end-to-end through the K8s control plane. Closes
ticket 08 (frontier of the sonic-device-profile effort); no code changes.
@steiler
steiler requested a review from a team as a code owner August 28, 2026 12:39
@steiler steiler changed the title feat: SONiC device-profile — CRD field, gRPC wiring, and reference onboarding YAMLs feat: device-profiles — CRD field, gRPC wiring, and reference onboarding YAMLs Sep 28, 2026
…AMLs

Align IOS-XR discovery vendor profile and unit tests with install-oper
gNMI paths from live 7.10.1 lab hardware; add schema, sync profile, and
sample Config manifests under example/cisco-iosxr for end-to-end onboarding
alongside device-profile-base (Pairs-with data-server #508 stack).

Signed-off-by: Markus Vahlenkamp <markus.vahlenkamp@nokia.com>
Document data-server pairing and NOS PR preconditions for integration;
add connection-profile example for cisco-ios-xr alongside sonic.
Clarify that the PR branch covers generic deviceProfile wiring plus SONiC
and Cisco IOS-XR reference YAMLs; document data-server #507/#508 pairing.

Signed-off-by: Markus Vahlenkamp <markus.vahlenkamp@nokia.com>
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.

1 participant