Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 38 additions & 101 deletions charts/templates/crd/apps.kusionstack.io_collasets.yaml

Large diffs are not rendered by default.

918 changes: 325 additions & 593 deletions charts/templates/crd/apps.kusionstack.io_poddecorations.yaml

Large diffs are not rendered by default.

139 changes: 38 additions & 101 deletions config/crd/bases/apps.kusionstack.io_collasets.yaml

Large diffs are not rendered by default.

918 changes: 325 additions & 593 deletions config/crd/bases/apps.kusionstack.io_poddecorations.yaml

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ require (
k8s.io/klog/v2 v2.130.1
k8s.io/kubernetes v0.0.0-00010101000000-000000000000
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
kusionstack.io/kube-api v0.7.4-0.20250909095208-496f60eea9b5
kusionstack.io/kube-api v0.7.5-0.20260127130112-9424ce325e09
kusionstack.io/kube-utils v0.2.1-0.20251120063041-6043805ee00d
kusionstack.io/kube-xset v0.0.2-0.20251127122852-ae98b507b2cc
kusionstack.io/kube-xset v0.0.2-0.20260127130229-a7a010eba7e0
kusionstack.io/resourceconsist v0.0.1
sigs.k8s.io/controller-runtime v0.17.3
)
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1077,12 +1077,12 @@ k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
kusionstack.io/kube-api v0.7.4-0.20250909095208-496f60eea9b5 h1:/jbKYMeXiYnuxyJQs72MoL6vxVoY15FX/7tCKWljscY=
kusionstack.io/kube-api v0.7.4-0.20250909095208-496f60eea9b5/go.mod h1:e1jtrQH2LK5fD2nTyfIXG6nYrYbU8VXShRxTRwVPaLk=
kusionstack.io/kube-api v0.7.5-0.20260127130112-9424ce325e09 h1:Kgc1N61F9KoBi1sHCrwoN8ax0j+0f1n6dQDQe2Luy9M=
kusionstack.io/kube-api v0.7.5-0.20260127130112-9424ce325e09/go.mod h1:e1jtrQH2LK5fD2nTyfIXG6nYrYbU8VXShRxTRwVPaLk=
kusionstack.io/kube-utils v0.2.1-0.20251120063041-6043805ee00d h1:iQtnK03ia/MN4K/6O75EMI91ep7jpcIG0pWyeREBqtg=
kusionstack.io/kube-utils v0.2.1-0.20251120063041-6043805ee00d/go.mod h1:KEHTfo1Y8SWMODnckF6daO2cSIW0FJ8fkk8PBA5O2GU=
kusionstack.io/kube-xset v0.0.2-0.20251127122852-ae98b507b2cc h1:wOqqe15yj1EeXKzAtVMRNRa4Iw2N59hLOgnu3u0p5SI=
kusionstack.io/kube-xset v0.0.2-0.20251127122852-ae98b507b2cc/go.mod h1:FceKgqapMHhwiyIqCziTQRW27fsSXpPS611AApnyiYI=
kusionstack.io/kube-xset v0.0.2-0.20260127130229-a7a010eba7e0 h1:mU1Jjdfgihju0xiYMmW/jSTGhovca/WEID7QzJrwkmw=
kusionstack.io/kube-xset v0.0.2-0.20260127130229-a7a010eba7e0/go.mod h1:FceKgqapMHhwiyIqCziTQRW27fsSXpPS611AApnyiYI=
kusionstack.io/resourceconsist v0.0.1 h1:+k/jriq5Ld7fQUYfWSMGynz/FesHtl3Rk2fmQPjBe0g=
kusionstack.io/resourceconsist v0.0.1/go.mod h1:816xS/fY6EOUbPFjXIWW/TGs8/YE46qP4ElKeIiwFdU=
modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
Expand Down
2 changes: 2 additions & 0 deletions pkg/controllers/collaset/collaset_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ func (s *XSetOperation) GetXSetStatus(object xsetapi.XSetObject) *xsetapi.XSetSt
xSetStatus.ReadyReplicas = set.Status.ReadyReplicas
xSetStatus.UpdatedReplicas = set.Status.UpdatedReplicas
xSetStatus.OperatingReplicas = set.Status.OperatingReplicas
xSetStatus.TerminatingReplicas = set.Status.TerminatingReplicas
xSetStatus.UpdatedReadyReplicas = set.Status.UpdatedReadyReplicas
xSetStatus.AvailableReplicas = set.Status.AvailableReplicas
xSetStatus.UpdatedAvailableReplicas = set.Status.UpdatedAvailableReplicas
Expand Down Expand Up @@ -211,6 +212,7 @@ func (s *XSetOperation) SetXSetStatus(object xsetapi.XSetObject, xSetStatus *xse
set.Status.ReadyReplicas = xSetStatus.ReadyReplicas
set.Status.UpdatedReplicas = xSetStatus.UpdatedReplicas
set.Status.OperatingReplicas = xSetStatus.OperatingReplicas
set.Status.TerminatingReplicas = xSetStatus.TerminatingReplicas
set.Status.UpdatedReadyReplicas = xSetStatus.UpdatedReadyReplicas
set.Status.AvailableReplicas = xSetStatus.AvailableReplicas
set.Status.UpdatedAvailableReplicas = xSetStatus.UpdatedAvailableReplicas
Expand Down
2 changes: 1 addition & 1 deletion pkg/controllers/collaset/collaset_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4276,7 +4276,7 @@ var _ = Describe("collaset controller", func() {
// wait for replace completed
Eventually(func() error {
return expectedStatusReplicas(c, cs, 0, 0, 0, 1, 1, 0, 0, 0)
}, 10*time.Second, 1*time.Second).Should(BeNil())
}, 30*time.Second, 1*time.Second).Should(BeNil())

// origin pod is deleted
Expect(c.List(context.TODO(), podList, client.InNamespace(cs.Namespace))).Should(BeNil())
Expand Down
16 changes: 16 additions & 0 deletions test/e2e/apps/collaset.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ var _ = SIGDescribe("CollaSet", func() {
Expect(*privileged).Should(BeTrue())
}
})

AfterEach(func() {
afterEach(tester, ns)
})
})

framework.KusionstackDescribe("CollaSet Scaling", func() {
Expand Down Expand Up @@ -1045,6 +1049,10 @@ var _ = SIGDescribe("CollaSet", func() {
return true
}, 30*time.Second, 3*time.Second).Should(Equal(true))
})

AfterEach(func() {
afterEach(tester, ns)
})
})

framework.KusionstackDescribe("CollaSet Updating", func() {
Expand Down Expand Up @@ -1633,6 +1641,10 @@ var _ = SIGDescribe("CollaSet", func() {
Expect(currResourceContexts[0].Spec.Contexts[i].Data[legacy.OwnerContextKey]).Should(BeEquivalentTo(cls.Name))
}
})

AfterEach(func() {
afterEach(tester, ns)
})
})

framework.KusionstackDescribe("CollaSet Replacing", func() {
Expand Down Expand Up @@ -2146,6 +2158,10 @@ var _ = SIGDescribe("CollaSet", func() {
return len(currResourceContexts) == 0
}, 30*time.Second, 3*time.Second).Should(BeTrue())
})

AfterEach(func() {
afterEach(tester, ns)
})
})
})

Expand Down
20 changes: 19 additions & 1 deletion test/e2e/apps/framework.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,27 @@ limitations under the License.

package apps

import "github.com/onsi/ginkgo"
import (
"time"

"github.com/onsi/ginkgo"
"github.com/onsi/gomega"

"kusionstack.io/kuperator/test/e2e/framework"
)

// SIGDescribe annotates the test with the SIG label.
func SIGDescribe(text string, body func()) bool {
return ginkgo.Describe("[apps] "+text, body)
}

func afterEach(tester *framework.CollaSetTester, ns string) {
gomega.Expect(tester.DeleteAllCollaSet(ns)).NotTo(gomega.HaveOccurred())
gomega.Eventually(func() bool {
clsList, err := tester.GetAllCollaSet(ns)
if err != nil {
return false
}
return len(clsList.Items) == 0
}, 300*time.Second, 3*time.Second).Should(gomega.Equal(true))
}
4 changes: 4 additions & 0 deletions test/e2e/apps/operationjob.go
Original file line number Diff line number Diff line change
Expand Up @@ -256,5 +256,9 @@ var _ = SIGDescribe("OperationJob", func() {
return pods[0].Name == podToReplace.Name
}, 30*time.Second, 3*time.Second).Should(BeTrue())
})

AfterEach(func() {
afterEach(clsTester, ns)
})
})
})
25 changes: 25 additions & 0 deletions test/e2e/framework/collaset_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,31 @@ func (t *CollaSetTester) GetCollaSet(cls *appsv1alpha1.CollaSet) error {
return t.client.Get(context.TODO(), types.NamespacedName{Namespace: cls.Namespace, Name: cls.Name}, cls)
}

func (t *CollaSetTester) GetAllCollaSet(namespace string) (clsList *appsv1alpha1.CollaSetList, err error) {
clsList = &appsv1alpha1.CollaSetList{}
if err := t.client.List(context.TODO(), clsList, client.InNamespace(namespace)); err != nil {
return nil, err
}
return clsList, nil
}

func (t *CollaSetTester) DeleteAllCollaSet(namespace string) error {
clsList, err := t.GetAllCollaSet(namespace)
if err != nil {
return err
}
for i := range clsList.Items {
cls := &clsList.Items[i]
if cls.Namespace != namespace {
continue
}
if err := t.DeleteCollaSet(cls); err != nil {
return err
}
}
return nil
}

func (t *CollaSetTester) UpdateCollaSet(cls *appsv1alpha1.CollaSet, fn func(cls *appsv1alpha1.CollaSet)) error {
return retry.RetryOnConflict(retry.DefaultBackoff, func() error {
err := t.GetCollaSet(cls)
Expand Down
Loading