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
5 changes: 1 addition & 4 deletions controllers/parameters/policy_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -338,10 +338,7 @@ func buildReloadActionTask(reloadPolicy parametersv1alpha1.ReloadPolicy, templat
ClusterComponent: rctx.ClusterComObj,
SynthesizedComponent: rctx.BuiltinComponent,
ReconfigureClientFactory: GetClientFactory(),
}

if reloadPolicy == parametersv1alpha1.SyncDynamicReloadPolicy {
reCtx.UpdatedParameters = generateOnlineUpdateParams(patch, &pd.Spec, *configDescription)
Patch: patch,
}

return reconfigureTask{ReloadPolicy: reloadPolicy, taskCtx: reCtx}
Expand Down
11 changes: 9 additions & 2 deletions controllers/parameters/policy_util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import (
appsv1 "github.com/apecloud/kubeblocks/apis/apps/v1"
parametersv1alpha1 "github.com/apecloud/kubeblocks/apis/parameters/v1alpha1"
workloads "github.com/apecloud/kubeblocks/apis/workloads/v1"
"github.com/apecloud/kubeblocks/pkg/configuration/core"
"github.com/apecloud/kubeblocks/pkg/controller/component"
intctrlutil "github.com/apecloud/kubeblocks/pkg/controllerutil"
)
Expand Down Expand Up @@ -137,9 +138,15 @@ func withConfigDescription(formatter *parametersv1alpha1.FileFormatConfig) Param
}
}

func withUpdatedParameters(patch map[string]string) ParamsOps {
func withUpdatedParameters(patch *core.ConfigPatchInfo) ParamsOps {
return func(params *reconfigureContext) {
params.UpdatedParameters = patch
params.Patch = patch
}
}

func withParamDef(pd *parametersv1alpha1.ParametersDefinitionSpec) ParamsOps {
return func(params *reconfigureContext) {
params.ParametersDef = pd
}
}

Expand Down
2 changes: 1 addition & 1 deletion controllers/parameters/reconfigure_policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ type reconfigureContext struct {

ConfigDescription *parametersv1alpha1.ComponentConfigDescription
ParametersDef *parametersv1alpha1.ParametersDefinitionSpec
UpdatedParameters map[string]string
Patch *core.ConfigPatchInfo
}

var (
Expand Down
2 changes: 1 addition & 1 deletion controllers/parameters/sync_upgrade_policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func (o *syncPolicy) GetPolicyName() string {
}

func (o *syncPolicy) Upgrade(rctx reconfigureContext) (ReturnedStatus, error) {
updatedParameters := rctx.UpdatedParameters
updatedParameters := generateOnlineUpdateParams(rctx.Patch, rctx.ParametersDef, *rctx.ConfigDescription)
if len(updatedParameters) == 0 {
return makeReturnedStatus(ESNone), nil
}
Expand Down
40 changes: 26 additions & 14 deletions controllers/parameters/sync_upgrade_policy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/utils/pointer"

parametersv1alpha1 "github.com/apecloud/kubeblocks/apis/parameters/v1alpha1"
"github.com/apecloud/kubeblocks/pkg/configuration/core"
cfgproto "github.com/apecloud/kubeblocks/pkg/configuration/proto"
mockproto "github.com/apecloud/kubeblocks/pkg/configuration/proto/mocks"
testutil "github.com/apecloud/kubeblocks/pkg/testutil/k8s"
Expand Down Expand Up @@ -65,8 +67,15 @@ var _ = Describe("Reconfigure OperatorSyncPolicy", func() {
withMockInstanceSet(3, nil),
withConfigSpec("for_test", map[string]string{"a": "c b e f"}),
withConfigDescription(&parametersv1alpha1.FileFormatConfig{Format: parametersv1alpha1.RedisCfg}),
withUpdatedParameters(map[string]string{
"a": "c b e f",
withUpdatedParameters(&core.ConfigPatchInfo{
IsModify: true,
UpdateConfig: map[string][]byte{
"for-test": []byte(`{"a":"c b e f"}`),
},
}),
withParamDef(&parametersv1alpha1.ParametersDefinitionSpec{
MergeReloadAndRestart: pointer.Bool(false),
ReloadStaticParamsBeforeRestart: pointer.Bool(true),
}),
withClusterComponent(3))

Expand Down Expand Up @@ -116,21 +125,24 @@ var _ = Describe("Reconfigure OperatorSyncPolicy", func() {
withMockInstanceSet(3, nil),
withConfigSpec("for_test", map[string]string{"a": "c b e f"}),
withConfigDescription(&parametersv1alpha1.FileFormatConfig{Format: parametersv1alpha1.RedisCfg}),
withUpdatedParameters(map[string]string{
"a": "c b e f",
withUpdatedParameters(&core.ConfigPatchInfo{
IsModify: true,
UpdateConfig: map[string][]byte{
"for-test": []byte(`{"a":"c b e f"}`),
},
}),
withClusterComponent(3))

// add selector
mockParam.ParametersDef = &parametersv1alpha1.ParametersDefinitionSpec{
ReloadAction: &parametersv1alpha1.ReloadAction{
TargetPodSelector: &metav1.LabelSelector{
MatchLabels: map[string]string{
"primary": "true",
withParamDef(&parametersv1alpha1.ParametersDefinitionSpec{
MergeReloadAndRestart: pointer.Bool(false),
ReloadStaticParamsBeforeRestart: pointer.Bool(true),
ReloadAction: &parametersv1alpha1.ReloadAction{
TargetPodSelector: &metav1.LabelSelector{
MatchLabels: map[string]string{
"primary": "true",
},
},
},
},
}
}),
withClusterComponent(3))

By("mock client get pod caller")
k8sMockClient.MockListMethod(testutil.WithListReturned(
Expand Down