Skip to content

Commit 2e6ba28

Browse files
Merge pull request #535 from wizhaoredhat/fix_dpu_cr
dpuCR data structure should not contain metadata
2 parents 68982ff + ed1a1f2 commit 2e6ba28

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

api/go.mod

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.24.3
44

55
require (
66
github.com/onsi/ginkgo/v2 v2.25.2
7-
github.com/onsi/gomega v1.37.0
7+
github.com/onsi/gomega v1.38.2
88
github.com/openshift/dpu-operator v0.0.0-20250224150056-b825f9135488
99
k8s.io/api v0.32.2
1010
k8s.io/apimachinery v0.32.2
@@ -13,7 +13,7 @@ require (
1313
)
1414

1515
require (
16-
github.com/Masterminds/semver/v3 v3.3.1 // indirect
16+
github.com/Masterminds/semver/v3 v3.4.0 // indirect
1717
github.com/beorn7/perks v1.0.1 // indirect
1818
github.com/cespare/xxhash/v2 v2.3.0 // indirect
1919
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
@@ -52,6 +52,7 @@ require (
5252
go.uber.org/automaxprocs v1.6.0 // indirect
5353
go.uber.org/multierr v1.11.0 // indirect
5454
go.uber.org/zap v1.27.0 // indirect
55+
go.yaml.in/yaml/v3 v3.0.4 // indirect
5556
golang.org/x/net v0.43.0 // indirect
5657
golang.org/x/oauth2 v0.23.0 // indirect
5758
golang.org/x/sync v0.16.0 // indirect
@@ -61,7 +62,7 @@ require (
6162
golang.org/x/time v0.7.0 // indirect
6263
golang.org/x/tools v0.36.0 // indirect
6364
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
64-
google.golang.org/protobuf v1.36.5 // indirect
65+
google.golang.org/protobuf v1.36.7 // indirect
6566
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
6667
gopkg.in/inf.v0 v0.9.1 // indirect
6768
gopkg.in/yaml.v3 v3.0.1 // indirect

api/go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4=
2-
github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
1+
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
2+
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
33
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
44
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
55
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
@@ -71,12 +71,10 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
7171
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
7272
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
7373
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
74-
github.com/onsi/ginkgo/v2 v2.25.1 h1:Fwp6crTREKM+oA6Cz4MsO8RhKQzs2/gOIVOUscMAfZY=
75-
github.com/onsi/ginkgo/v2 v2.25.1/go.mod h1:ppTWQ1dh9KM/F1XgpeRqelR+zHVwV81DGRSDnFxK7Sk=
7674
github.com/onsi/ginkgo/v2 v2.25.2 h1:hepmgwx1D+llZleKQDMEvy8vIlCxMGt7W5ZxDjIEhsw=
7775
github.com/onsi/ginkgo/v2 v2.25.2/go.mod h1:43uiyQC4Ed2tkOzLsEYm7hnrb7UJTWHYNsuy3bG/snE=
78-
github.com/onsi/gomega v1.37.0 h1:CdEG8g0S133B4OswTDC/5XPSzE1OeP29QOioj2PID2Y=
79-
github.com/onsi/gomega v1.37.0/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0=
76+
github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A=
77+
github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k=
8078
github.com/openshift/dpu-operator v0.0.0-20250224150056-b825f9135488 h1:BB0/xr+QfXF3sX8/BxHTLxiHLPiRVNcvLegZHgBx3bw=
8179
github.com/openshift/dpu-operator v0.0.0-20250224150056-b825f9135488/go.mod h1:vUtVvYDTa0yom+jl98Fi1q3BKLHYbf5dHQAAbHns1jg=
8280
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -114,6 +112,8 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
114112
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
115113
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
116114
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
115+
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
116+
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
117117
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
118118
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
119119
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@@ -157,8 +157,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
157157
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
158158
gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
159159
gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
160-
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
161-
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
160+
google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A=
161+
google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
162162
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
163163
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
164164
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

internal/daemon/daemon.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"reflect"
88
"time"
99

10-
"github.com/openshift/dpu-operator/api/v1"
10+
v1 "github.com/openshift/dpu-operator/api/v1"
1111
"github.com/openshift/dpu-operator/internal/daemon/plugin"
1212
"github.com/openshift/dpu-operator/internal/images"
1313
"github.com/openshift/dpu-operator/internal/platform"
@@ -300,18 +300,21 @@ func (d *Daemon) syncSingleDpuCR(dpuCR *v1.DataProcessingUnit, existingCRMap map
300300
if err != nil {
301301
if client.IgnoreNotFound(err) == nil {
302302
// CR doesn't exist, create it
303-
err := d.client.Create(context.TODO(), dpuCR)
303+
// TODO FIXME: client Create/Update will update the dpuCR with metafields such as resourceVersion. Meaning that the dpuCR pointer cannot be
304+
// reused to create a new DPU CR. For now, we do a deep copy of the dpuCR and use that to update the status.
305+
dpuCRCopy := dpuCR.DeepCopy()
306+
err := d.client.Create(context.TODO(), dpuCRCopy)
304307
if err != nil {
305308
return fmt.Errorf("Failed to create DPU CR %s: %v", identifier, err)
306309
}
307310

308311
// Update status after creation
309-
err = d.client.Status().Update(context.TODO(), dpuCR)
312+
err = d.client.Status().Update(context.TODO(), dpuCRCopy)
310313
if err != nil {
311314
return fmt.Errorf("Failed to update DPU CR status %s: %v", identifier, err)
312315
}
313316

314-
d.log.Info("Created DPU CR", "name", identifier, "dpuProductName", dpuCR.Spec.DpuProductName, "isDpuSide", dpuCR.Spec.IsDpuSide)
317+
d.log.Info("Created DPU CR", "name", identifier, "dpuProductName", dpuCRCopy.Spec.DpuProductName, "isDpuSide", dpuCRCopy.Spec.IsDpuSide)
315318
return nil
316319
}
317320
return fmt.Errorf("Failed to get DPU CR %s: %v", identifier, err)

0 commit comments

Comments
 (0)