Skip to content

Commit 56a1d17

Browse files
authored
feat: add worker version in the connection URL (#64)
1 parent 1a5f204 commit 56a1d17

File tree

6 files changed

+20
-8
lines changed

6 files changed

+20
-8
lines changed

api/v1/tensorfusionworkload_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ type WorkerStatus struct {
4949
WorkerIp string `json:"workerIp,omitempty"`
5050
// +optional
5151
WorkerPort int `json:"workerPort,omitempty"`
52+
// +optional
53+
ResourceVersion string `json:"resourceVersion,omitempty"`
5254
}
5355

5456
// TensorFusionWorkloadStatus defines the observed state of TensorFusionWorkload.

charts/tensor-fusion/crds/tensor-fusion.ai_tensorfusionworkloads.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ spec:
120120
additionalProperties:
121121
type: string
122122
type: object
123+
resourceVersion:
124+
type: string
123125
workerIp:
124126
type: string
125127
workerName:

config/crd/bases/tensor-fusion.ai_tensorfusionworkloads.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ spec:
120120
additionalProperties:
121121
type: string
122122
type: object
123+
resourceVersion:
124+
type: string
123125
workerIp:
124126
type: string
125127
workerName:

internal/controller/tensorfusionconnection_controller.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,12 @@ func (r *TensorFusionConnectionReconciler) Reconcile(ctx context.Context, req ct
9292

9393
connection.Status.Phase = workerStatus.WorkerPhase
9494
connection.Status.WorkerName = workerStatus.WorkerName
95-
connection.Status.ConnectionURL = fmt.Sprintf("native+%s+%d", workerStatus.WorkerIp, workerStatus.WorkerPort)
95+
resourceVersion := workerStatus.ResourceVersion
96+
if resourceVersion == "" {
97+
resourceVersion = "0"
98+
}
99+
100+
connection.Status.ConnectionURL = fmt.Sprintf("native+%s+%d+%s-%s", workerStatus.WorkerIp, workerStatus.WorkerPort, workerStatus.WorkerName, resourceVersion)
96101
if err := r.Status().Update(ctx, connection); err != nil {
97102
return ctrl.Result{}, fmt.Errorf("update connection status: %w", err)
98103
}

internal/controller/tensorfusionconnection_controller_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ var _ = Describe("TensorFusionConnection Controller", func() {
172172
// Verify specific values
173173
Expect(connection.Status.WorkerName).To(Equal("test-worker-1"))
174174
Expect(connection.Status.Phase).To(Equal(tfv1.WorkerRunning))
175-
Expect(connection.Status.ConnectionURL).To(Equal("native+192.168.1.1+8080"))
175+
Expect(connection.Status.ConnectionURL).To(Equal("native+192.168.1.1+8080+test-worker-1-0"))
176176
})
177177

178178
It("should handle missing workload label", func() {
@@ -268,7 +268,7 @@ var _ = Describe("TensorFusionConnection Controller", func() {
268268
return false
269269
}
270270
return connection.Status.WorkerName == "test-worker-2" &&
271-
connection.Status.ConnectionURL == "native+192.168.1.2+8081"
271+
connection.Status.ConnectionURL == "native+192.168.1.2+8081+test-worker-2-0"
272272
}, time.Second*5, time.Millisecond*100).Should(BeTrue())
273273
})
274274
})

internal/controller/tensorfusionworkload_controller.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -349,11 +349,12 @@ func (r *TensorFusionWorkloadReconciler) updateStatus(
349349

350350
// Create and append worker status
351351
workerStatus := tfv1.WorkerStatus{
352-
WorkerPhase: workerPhase,
353-
WorkerName: pod.Name,
354-
WorkerIp: ip,
355-
WorkerPort: port,
356-
NodeSelector: pod.Spec.NodeSelector,
352+
WorkerPhase: workerPhase,
353+
WorkerName: pod.Name,
354+
WorkerIp: ip,
355+
WorkerPort: port,
356+
NodeSelector: pod.Spec.NodeSelector,
357+
ResourceVersion: pod.ResourceVersion,
357358
}
358359

359360
workerStatuses = append(workerStatuses, workerStatus)

0 commit comments

Comments
 (0)