Skip to content

Commit d9d01ed

Browse files
feat: (1) add terminating replicas for collaset, (2) update kube-xset main (#355)
* refactor: export lifecycle adapter in updateconfig * add NewInPlaceOnlyPossibleUpdaterFunc * refactor refactor-NewInPlaceOnlyUpdaterFunc * feat: add-terminatingreplicas-in-cls * update xset controller replicas * fix reclaim resource context * fix e2e * fix e2e * fix e2e * fix e2e
1 parent 8378b27 commit d9d01ed

File tree

12 files changed

+799
-1396
lines changed

12 files changed

+799
-1396
lines changed

charts/templates/crd/apps.kusionstack.io_collasets.yaml

Lines changed: 38 additions & 101 deletions
Large diffs are not rendered by default.

charts/templates/crd/apps.kusionstack.io_poddecorations.yaml

Lines changed: 325 additions & 593 deletions
Large diffs are not rendered by default.

config/crd/bases/apps.kusionstack.io_collasets.yaml

Lines changed: 38 additions & 101 deletions
Large diffs are not rendered by default.

config/crd/bases/apps.kusionstack.io_poddecorations.yaml

Lines changed: 325 additions & 593 deletions
Large diffs are not rendered by default.

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ require (
2222
k8s.io/klog/v2 v2.130.1
2323
k8s.io/kubernetes v0.0.0-00010101000000-000000000000
2424
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
25-
kusionstack.io/kube-api v0.7.4-0.20250909095208-496f60eea9b5
25+
kusionstack.io/kube-api v0.7.5-0.20260127130112-9424ce325e09
2626
kusionstack.io/kube-utils v0.2.1-0.20251120063041-6043805ee00d
27-
kusionstack.io/kube-xset v0.0.2-0.20251127122852-ae98b507b2cc
27+
kusionstack.io/kube-xset v0.0.2-0.20260127130229-a7a010eba7e0
2828
kusionstack.io/resourceconsist v0.0.1
2929
sigs.k8s.io/controller-runtime v0.17.3
3030
)

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,12 +1077,12 @@ k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
10771077
k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
10781078
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
10791079
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
1080-
kusionstack.io/kube-api v0.7.4-0.20250909095208-496f60eea9b5 h1:/jbKYMeXiYnuxyJQs72MoL6vxVoY15FX/7tCKWljscY=
1081-
kusionstack.io/kube-api v0.7.4-0.20250909095208-496f60eea9b5/go.mod h1:e1jtrQH2LK5fD2nTyfIXG6nYrYbU8VXShRxTRwVPaLk=
1080+
kusionstack.io/kube-api v0.7.5-0.20260127130112-9424ce325e09 h1:Kgc1N61F9KoBi1sHCrwoN8ax0j+0f1n6dQDQe2Luy9M=
1081+
kusionstack.io/kube-api v0.7.5-0.20260127130112-9424ce325e09/go.mod h1:e1jtrQH2LK5fD2nTyfIXG6nYrYbU8VXShRxTRwVPaLk=
10821082
kusionstack.io/kube-utils v0.2.1-0.20251120063041-6043805ee00d h1:iQtnK03ia/MN4K/6O75EMI91ep7jpcIG0pWyeREBqtg=
10831083
kusionstack.io/kube-utils v0.2.1-0.20251120063041-6043805ee00d/go.mod h1:KEHTfo1Y8SWMODnckF6daO2cSIW0FJ8fkk8PBA5O2GU=
1084-
kusionstack.io/kube-xset v0.0.2-0.20251127122852-ae98b507b2cc h1:wOqqe15yj1EeXKzAtVMRNRa4Iw2N59hLOgnu3u0p5SI=
1085-
kusionstack.io/kube-xset v0.0.2-0.20251127122852-ae98b507b2cc/go.mod h1:FceKgqapMHhwiyIqCziTQRW27fsSXpPS611AApnyiYI=
1084+
kusionstack.io/kube-xset v0.0.2-0.20260127130229-a7a010eba7e0 h1:mU1Jjdfgihju0xiYMmW/jSTGhovca/WEID7QzJrwkmw=
1085+
kusionstack.io/kube-xset v0.0.2-0.20260127130229-a7a010eba7e0/go.mod h1:FceKgqapMHhwiyIqCziTQRW27fsSXpPS611AApnyiYI=
10861086
kusionstack.io/resourceconsist v0.0.1 h1:+k/jriq5Ld7fQUYfWSMGynz/FesHtl3Rk2fmQPjBe0g=
10871087
kusionstack.io/resourceconsist v0.0.1/go.mod h1:816xS/fY6EOUbPFjXIWW/TGs8/YE46qP4ElKeIiwFdU=
10881088
modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=

pkg/controllers/collaset/collaset_controller.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ func (s *XSetOperation) GetXSetStatus(object xsetapi.XSetObject) *xsetapi.XSetSt
179179
xSetStatus.ReadyReplicas = set.Status.ReadyReplicas
180180
xSetStatus.UpdatedReplicas = set.Status.UpdatedReplicas
181181
xSetStatus.OperatingReplicas = set.Status.OperatingReplicas
182+
xSetStatus.TerminatingReplicas = set.Status.TerminatingReplicas
182183
xSetStatus.UpdatedReadyReplicas = set.Status.UpdatedReadyReplicas
183184
xSetStatus.AvailableReplicas = set.Status.AvailableReplicas
184185
xSetStatus.UpdatedAvailableReplicas = set.Status.UpdatedAvailableReplicas
@@ -211,6 +212,7 @@ func (s *XSetOperation) SetXSetStatus(object xsetapi.XSetObject, xSetStatus *xse
211212
set.Status.ReadyReplicas = xSetStatus.ReadyReplicas
212213
set.Status.UpdatedReplicas = xSetStatus.UpdatedReplicas
213214
set.Status.OperatingReplicas = xSetStatus.OperatingReplicas
215+
set.Status.TerminatingReplicas = xSetStatus.TerminatingReplicas
214216
set.Status.UpdatedReadyReplicas = xSetStatus.UpdatedReadyReplicas
215217
set.Status.AvailableReplicas = xSetStatus.AvailableReplicas
216218
set.Status.UpdatedAvailableReplicas = xSetStatus.UpdatedAvailableReplicas

pkg/controllers/collaset/collaset_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4276,7 +4276,7 @@ var _ = Describe("collaset controller", func() {
42764276
// wait for replace completed
42774277
Eventually(func() error {
42784278
return expectedStatusReplicas(c, cs, 0, 0, 0, 1, 1, 0, 0, 0)
4279-
}, 10*time.Second, 1*time.Second).Should(BeNil())
4279+
}, 30*time.Second, 1*time.Second).Should(BeNil())
42804280

42814281
// origin pod is deleted
42824282
Expect(c.List(context.TODO(), podList, client.InNamespace(cs.Namespace))).Should(BeNil())

test/e2e/apps/collaset.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ var _ = SIGDescribe("CollaSet", func() {
8282
Expect(*privileged).Should(BeTrue())
8383
}
8484
})
85+
86+
AfterEach(func() {
87+
afterEach(tester, ns)
88+
})
8589
})
8690

8791
framework.KusionstackDescribe("CollaSet Scaling", func() {
@@ -1045,6 +1049,10 @@ var _ = SIGDescribe("CollaSet", func() {
10451049
return true
10461050
}, 30*time.Second, 3*time.Second).Should(Equal(true))
10471051
})
1052+
1053+
AfterEach(func() {
1054+
afterEach(tester, ns)
1055+
})
10481056
})
10491057

10501058
framework.KusionstackDescribe("CollaSet Updating", func() {
@@ -1633,6 +1641,10 @@ var _ = SIGDescribe("CollaSet", func() {
16331641
Expect(currResourceContexts[0].Spec.Contexts[i].Data[legacy.OwnerContextKey]).Should(BeEquivalentTo(cls.Name))
16341642
}
16351643
})
1644+
1645+
AfterEach(func() {
1646+
afterEach(tester, ns)
1647+
})
16361648
})
16371649

16381650
framework.KusionstackDescribe("CollaSet Replacing", func() {
@@ -2146,6 +2158,10 @@ var _ = SIGDescribe("CollaSet", func() {
21462158
return len(currResourceContexts) == 0
21472159
}, 30*time.Second, 3*time.Second).Should(BeTrue())
21482160
})
2161+
2162+
AfterEach(func() {
2163+
afterEach(tester, ns)
2164+
})
21492165
})
21502166
})
21512167

test/e2e/apps/framework.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,27 @@ limitations under the License.
1616

1717
package apps
1818

19-
import "github.com/onsi/ginkgo"
19+
import (
20+
"time"
21+
22+
"github.com/onsi/ginkgo"
23+
"github.com/onsi/gomega"
24+
25+
"kusionstack.io/kuperator/test/e2e/framework"
26+
)
2027

2128
// SIGDescribe annotates the test with the SIG label.
2229
func SIGDescribe(text string, body func()) bool {
2330
return ginkgo.Describe("[apps] "+text, body)
2431
}
32+
33+
func afterEach(tester *framework.CollaSetTester, ns string) {
34+
gomega.Expect(tester.DeleteAllCollaSet(ns)).NotTo(gomega.HaveOccurred())
35+
gomega.Eventually(func() bool {
36+
clsList, err := tester.GetAllCollaSet(ns)
37+
if err != nil {
38+
return false
39+
}
40+
return len(clsList.Items) == 0
41+
}, 300*time.Second, 3*time.Second).Should(gomega.Equal(true))
42+
}

0 commit comments

Comments
 (0)