From a422aa696c2ee8ea8b4b108a3e89bded8f1335d4 Mon Sep 17 00:00:00 2001 From: cuisongliu Date: Mon, 1 Sep 2025 13:05:33 +0800 Subject: [PATCH] feat(apply): conditionally append components based on distribution type (#5909) * feat(apply): conditionally append components based on distribution type Signed-off-by: cuisongliu * fix(cluster): return nil for rootfs image if image spec is empty Signed-off-by: cuisongliu --------- Signed-off-by: cuisongliu --- lifecycle/pkg/apply/applydrivers/apply_drivers_default.go | 7 ++++++- lifecycle/pkg/types/v1beta1/utils.go | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lifecycle/pkg/apply/applydrivers/apply_drivers_default.go b/lifecycle/pkg/apply/applydrivers/apply_drivers_default.go index 641aeec93..9eaa5a401 100644 --- a/lifecycle/pkg/apply/applydrivers/apply_drivers_default.go +++ b/lifecycle/pkg/apply/applydrivers/apply_drivers_default.go @@ -21,6 +21,8 @@ import ( "os" "strconv" + "github.com/labring/sealos/pkg/runtime/k3s" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "golang.org/x/sync/errgroup" @@ -123,9 +125,12 @@ func (c *Applier) Apply() error { func (c *Applier) getWriteBackObjects() []interface{} { obj := []interface{}{c.ClusterDesired} + distribution := c.ClusterFile.GetCluster().GetDistribution() if runtimeConfig := c.ClusterFile.GetRuntimeConfig(); runtimeConfig != nil { if components := runtimeConfig.GetComponents(); len(components) > 0 { - obj = append(obj, components...) + if distribution == k3s.Distribution { + obj = append(obj, components...) + } } } if configs := c.ClusterFile.GetConfigs(); len(configs) > 0 { diff --git a/lifecycle/pkg/types/v1beta1/utils.go b/lifecycle/pkg/types/v1beta1/utils.go index 07ddb2608..d1a767cfb 100644 --- a/lifecycle/pkg/types/v1beta1/utils.go +++ b/lifecycle/pkg/types/v1beta1/utils.go @@ -109,6 +109,9 @@ func (c *Cluster) GetAllIPS() []string { } func (c *Cluster) GetRootfsImage() *MountImage { + if c == nil || len(c.Status.Mounts) == 0 { + return nil + } for _, img := range c.Status.Mounts { if img.IsRootFs() { return &img