Skip to content

Commit 5150bff

Browse files
kizuna-lekapecloud-bot
authored andcommitted
fix: skip config-manager image rollback (#10034)
(cherry picked from commit a54d6f6)
1 parent 0677d7c commit 5150bff

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

controllers/apps/component/transformer_component_reload_sidecar.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,5 +77,5 @@ func (t *componentReloadSidecarTransformer) Transform(ctx graph.TransformContext
7777
ClusterName: builtinComp.ClusterName,
7878
ComponentName: builtinComp.Name,
7979
}
80-
return configctrl.BuildReloadActionContainer(reconcileCtx, cluster, builtinComp, transCtx.CompDef)
80+
return configctrl.BuildReloadActionContainer(reconcileCtx, cluster, builtinComp, transCtx.CompDef, transCtx.RunningWorkload)
8181
}

pkg/parameters/config_util.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import (
3636

3737
appsv1 "github.com/apecloud/kubeblocks/apis/apps/v1"
3838
parametersv1alpha1 "github.com/apecloud/kubeblocks/apis/parameters/v1alpha1"
39+
workloadsv1 "github.com/apecloud/kubeblocks/apis/workloads/v1"
3940
"github.com/apecloud/kubeblocks/pkg/constant"
4041
"github.com/apecloud/kubeblocks/pkg/controller/component"
4142
"github.com/apecloud/kubeblocks/pkg/controller/factory"
@@ -333,7 +334,8 @@ func ReloadStaticParameters(pd *parametersv1alpha1.ParametersDefinitionSpec) boo
333334

334335
// BuildReloadActionContainer build the configmgr sidecar container and update it
335336
// into PodSpec if configuration reload option is on
336-
func BuildReloadActionContainer(resourceCtx *render.ResourceCtx, cluster *appsv1.Cluster, synthesizedComp *component.SynthesizedComponent, cmpd *appsv1.ComponentDefinition) error {
337+
func BuildReloadActionContainer(resourceCtx *render.ResourceCtx, cluster *appsv1.Cluster,
338+
synthesizedComp *component.SynthesizedComponent, cmpd *appsv1.ComponentDefinition, itsObj client.Object) error {
337339
var (
338340
err error
339341
buildParams *cfgcm.CfgManagerBuildParams
@@ -384,6 +386,32 @@ func BuildReloadActionContainer(resourceCtx *render.ResourceCtx, cluster *appsv1
384386
if len(buildParams.ToolsContainers) > 0 {
385387
podSpec.InitContainers = append(podSpec.InitContainers, buildParams.ToolsContainers...)
386388
}
389+
390+
getRunningIts := func() *workloadsv1.InstanceSet {
391+
if itsObj == nil {
392+
return nil
393+
}
394+
return itsObj.(*workloadsv1.InstanceSet)
395+
}
396+
397+
// Update the runningITS container in advance to prevent it from being rollback.
398+
if runningITS := getRunningIts(); runningITS != nil {
399+
for i, c := range runningITS.Spec.Template.Spec.Containers {
400+
if c.Name == container.Name {
401+
runningITS.Spec.Template.Spec.Containers[i].Image = container.Image
402+
break
403+
}
404+
}
405+
for _, tc := range buildParams.ToolsContainers {
406+
for j, ic := range runningITS.Spec.Template.Spec.InitContainers {
407+
if ic.Name == tc.Name {
408+
runningITS.Spec.Template.Spec.InitContainers[j].Image = tc.Image
409+
break
410+
}
411+
}
412+
}
413+
}
414+
387415
filter := func(c *corev1.Container) bool {
388416
names := []string{container.Name}
389417
for _, cc := range buildParams.ToolsContainers {

0 commit comments

Comments
 (0)