Skip to content

Migrate ADX operator federation Kusto data-plane usage to azkustodata #1188

Description

@mkeesey

Context

The ADX operator still uses the legacy github.com/Azure/azure-kusto-go/kusto data-plane client for federation, heartbeat, and hub artifact reconciliation.

This is separate from the ARM management client usage, which already uses armkusto and is not in scope.

Files

  • operator/adx.go
  • operator/adx_test.go

Current legacy usage

  • Creates data-plane clients with kusto.NewConnectionStringBuilder and kusto.New.
  • Uses default credential and user-assigned managed identity auth through the old connection string builder.
  • Executes management commands with legacy client.Mgmt.
  • Executes heartbeat table queries with legacy client.Query.
  • Builds statements with legacy kusto/kql.
  • Reads rows with NextRowOrError and ToStruct.

Major paths to migrate

  • ensureHeartbeatTable: .show tables | count, .create table.
  • HeartbeatFederatedClusters / heartbeatFederatedCluster: schema collection and heartbeat ingestion.
  • Schema discovery: .show databases, .show database schema, .show functions, .show function <name> schema as json.
  • Heartbeat ingest: .ingest inline into table.
  • FederateClusters: reads heartbeat rows and reconciles hub artifacts.
  • Hub artifact reconciliation: hub tables, entity groups, .execute database script, .create-or-alter function.

Acceptance criteria

  • Operator production code no longer imports github.com/Azure/azure-kusto-go/kusto... packages.
  • Federation heartbeat send/read behavior remains covered by tests.
  • Hub table, entity group, and generated function reconciliation continue to work.
  • ARM armkusto provisioning code remains unchanged except where needed to keep interfaces clean.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions