Skip to content

Commit b5eaad2

Browse files
refactor: config policy merging and use namespaced secret sources for secure settings related secrets
1 parent dd18a2d commit b5eaad2

File tree

11 files changed

+463
-504
lines changed

11 files changed

+463
-504
lines changed

pkg/apis/stackconfigpolicy/v1alpha1/stackconfigpolicy_types.go

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,54 @@ type ElasticsearchConfigPolicySpec struct {
9898
SecureSettings []commonv1.SecretSource `json:"secureSettings,omitempty"`
9999
}
100100

101+
// GetElasticsearchNamespacedSecureSettings returns the Elasticsearch secure settings from this policy
102+
// as NamespacedSecretSources, with each secret source namespaced to the policy's namespace.
103+
// Returns nil if the policy is nil or has no Elasticsearch secure settings defined.
104+
func (p *StackConfigPolicy) GetElasticsearchNamespacedSecureSettings() []commonv1.NamespacedSecretSource {
105+
if p == nil {
106+
return nil
107+
}
108+
109+
ssLen := len(p.Spec.Elasticsearch.SecureSettings)
110+
if ssLen == 0 {
111+
return nil
112+
}
113+
pNs := p.GetNamespace()
114+
ssNsn := make([]commonv1.NamespacedSecretSource, ssLen)
115+
for idx, ss := range p.Spec.Elasticsearch.SecureSettings {
116+
ssNsn[idx] = commonv1.NamespacedSecretSource{
117+
Namespace: pNs,
118+
SecretName: ss.SecretName,
119+
Entries: ss.Entries,
120+
}
121+
}
122+
return ssNsn
123+
}
124+
125+
// GetKibanaNamespacedSecureSettings returns the Kibana secure settings from this policy
126+
// as NamespacedSecretSources, with each secret source namespaced to the policy's namespace.
127+
// Returns nil if the policy is nil or has no Kibana secure settings defined.
128+
func (p *StackConfigPolicy) GetKibanaNamespacedSecureSettings() []commonv1.NamespacedSecretSource {
129+
if p == nil {
130+
return nil
131+
}
132+
133+
ssLen := len(p.Spec.Kibana.SecureSettings)
134+
if ssLen == 0 {
135+
return nil
136+
}
137+
pNs := p.GetNamespace()
138+
ssNsn := make([]commonv1.NamespacedSecretSource, ssLen)
139+
for idx, ss := range p.Spec.Kibana.SecureSettings {
140+
ssNsn[idx] = commonv1.NamespacedSecretSource{
141+
Namespace: pNs,
142+
SecretName: ss.SecretName,
143+
Entries: ss.Entries,
144+
}
145+
}
146+
return ssNsn
147+
}
148+
101149
type KibanaConfigPolicySpec struct {
102150
// Config holds the settings that go into kibana.yml.
103151
// +kubebuilder:pruning:PreserveUnknownFields

pkg/controller/elasticsearch/filesettings/file_settings.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ func newEmptySettingsState() SettingsState {
8181
}
8282

8383
// updateState updates the Settings state from a StackConfigPolicy for a given Elasticsearch.
84-
func (s *Settings) updateState(es types.NamespacedName, policy policyv1alpha1.StackConfigPolicy) error {
85-
p := policy.DeepCopy() // be sure to not mutate the original policy
84+
func (s *Settings) updateState(es types.NamespacedName, esConfigPolicy policyv1alpha1.ElasticsearchConfigPolicySpec) error {
85+
esConfigPolicy = *esConfigPolicy.DeepCopy() // be sure to not mutate the original es config policy
8686
state := newEmptySettingsState()
8787
// mutate Snapshot Repositories
88-
if p.Spec.Elasticsearch.SnapshotRepositories != nil {
89-
for name, untypedDefinition := range p.Spec.Elasticsearch.SnapshotRepositories.Data {
88+
if esConfigPolicy.SnapshotRepositories != nil {
89+
for name, untypedDefinition := range esConfigPolicy.SnapshotRepositories.Data {
9090
definition, ok := untypedDefinition.(map[string]interface{})
9191
if !ok {
9292
return fmt.Errorf(`invalid type (%T) for definition of snapshot repository %q of Elasticsearch "%s/%s"`, untypedDefinition, name, es.Namespace, es.Name)
@@ -95,31 +95,31 @@ func (s *Settings) updateState(es types.NamespacedName, policy policyv1alpha1.St
9595
if err != nil {
9696
return err
9797
}
98-
p.Spec.Elasticsearch.SnapshotRepositories.Data[name] = repoSettings
98+
esConfigPolicy.SnapshotRepositories.Data[name] = repoSettings
9999
}
100-
state.SnapshotRepositories = p.Spec.Elasticsearch.SnapshotRepositories
100+
state.SnapshotRepositories = esConfigPolicy.SnapshotRepositories
101101
}
102102
// just copy other settings
103-
if p.Spec.Elasticsearch.ClusterSettings != nil {
104-
state.ClusterSettings = p.Spec.Elasticsearch.ClusterSettings
103+
if esConfigPolicy.ClusterSettings != nil {
104+
state.ClusterSettings = esConfigPolicy.ClusterSettings
105105
}
106-
if p.Spec.Elasticsearch.SnapshotLifecyclePolicies != nil {
107-
state.SLM = p.Spec.Elasticsearch.SnapshotLifecyclePolicies
106+
if esConfigPolicy.SnapshotLifecyclePolicies != nil {
107+
state.SLM = esConfigPolicy.SnapshotLifecyclePolicies
108108
}
109-
if p.Spec.Elasticsearch.SecurityRoleMappings != nil {
110-
state.RoleMappings = p.Spec.Elasticsearch.SecurityRoleMappings
109+
if esConfigPolicy.SecurityRoleMappings != nil {
110+
state.RoleMappings = esConfigPolicy.SecurityRoleMappings
111111
}
112-
if p.Spec.Elasticsearch.IndexLifecyclePolicies != nil {
113-
state.IndexLifecyclePolicies = p.Spec.Elasticsearch.IndexLifecyclePolicies
112+
if esConfigPolicy.IndexLifecyclePolicies != nil {
113+
state.IndexLifecyclePolicies = esConfigPolicy.IndexLifecyclePolicies
114114
}
115-
if p.Spec.Elasticsearch.IngestPipelines != nil {
116-
state.IngestPipelines = p.Spec.Elasticsearch.IngestPipelines
115+
if esConfigPolicy.IngestPipelines != nil {
116+
state.IngestPipelines = esConfigPolicy.IngestPipelines
117117
}
118-
if p.Spec.Elasticsearch.IndexTemplates.ComposableIndexTemplates != nil {
119-
state.IndexTemplates.ComposableIndexTemplates = p.Spec.Elasticsearch.IndexTemplates.ComposableIndexTemplates
118+
if esConfigPolicy.IndexTemplates.ComposableIndexTemplates != nil {
119+
state.IndexTemplates.ComposableIndexTemplates = esConfigPolicy.IndexTemplates.ComposableIndexTemplates
120120
}
121-
if p.Spec.Elasticsearch.IndexTemplates.ComponentTemplates != nil {
122-
state.IndexTemplates.ComponentTemplates = p.Spec.Elasticsearch.IndexTemplates.ComponentTemplates
121+
if esConfigPolicy.IndexTemplates.ComponentTemplates != nil {
122+
state.IndexTemplates.ComponentTemplates = esConfigPolicy.IndexTemplates.ComponentTemplates
123123
}
124124
s.State = state
125125
return nil

pkg/controller/elasticsearch/filesettings/file_settings_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ func Test_updateState(t *testing.T) {
436436
for _, tt := range tests {
437437
t.Run(tt.name, func(t *testing.T) {
438438
settings := Settings{}
439-
err := settings.updateState(esSample, tt.args.policy)
439+
err := settings.updateState(esSample, tt.args.policy.Spec.Elasticsearch)
440440
if tt.wantErr != nil {
441441
assert.Equal(t, tt.wantErr, err)
442442
return

pkg/controller/elasticsearch/filesettings/reconciler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func ReconcileEmptyFileSettingsSecret(
5353
// extract the metadata that should be propagated to children
5454
meta := metadata.Propagate(&es, metadata.Metadata{Labels: label.NewLabels(k8s.ExtractNamespacedName(&es))})
5555
// no secret, reconcile a new empty file settings
56-
expectedSecret, _, err := NewSettingsSecretWithVersion(k8s.ExtractNamespacedName(&es), nil, nil, meta)
56+
expectedSecret, _, err := NewSettingsSecretWithVersion(k8s.ExtractNamespacedName(&es), nil, nil, nil, meta)
5757
if err != nil {
5858
return err
5959
}

pkg/controller/elasticsearch/filesettings/secret.go

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,18 @@ const (
3434
// The Settings version is updated using the current timestamp only when the Settings have changed.
3535
// If the new settings from the policy changed compared to the actual from the secret, the settings version is
3636
// updated
37-
func NewSettingsSecretWithVersion(es types.NamespacedName, currentSecret *corev1.Secret, policy *policyv1alpha1.StackConfigPolicy, meta metadata.Metadata) (corev1.Secret, int64, error) {
37+
func NewSettingsSecretWithVersion(es types.NamespacedName, currentSecret *corev1.Secret, esConfigPolicy *policyv1alpha1.ElasticsearchConfigPolicySpec, namespacedSecretSources []commonv1.NamespacedSecretSource, meta metadata.Metadata) (corev1.Secret, int64, error) {
3838
newVersion := time.Now().UnixNano()
39-
return newSettingsSecret(newVersion, es, currentSecret, policy, meta)
39+
return newSettingsSecret(newVersion, es, currentSecret, esConfigPolicy, namespacedSecretSources, meta)
4040
}
4141

4242
// NewSettingsSecret returns a new SettingsSecret for a given Elasticsearch and StackConfigPolicy.
43-
func newSettingsSecret(version int64, es types.NamespacedName, currentSecret *corev1.Secret, policy *policyv1alpha1.StackConfigPolicy, meta metadata.Metadata) (corev1.Secret, int64, error) {
43+
func newSettingsSecret(version int64, es types.NamespacedName, currentSecret *corev1.Secret, esConfigPolicy *policyv1alpha1.ElasticsearchConfigPolicySpec, namespacedSecretSources []commonv1.NamespacedSecretSource, meta metadata.Metadata) (corev1.Secret, int64, error) {
4444
settings := NewEmptySettings(version)
4545

4646
// update the settings according to the config policy
47-
if policy != nil {
48-
err := settings.updateState(es, *policy)
47+
if esConfigPolicy != nil {
48+
err := settings.updateState(es, *esConfigPolicy)
4949
if err != nil {
5050
return corev1.Secret{}, 0, err
5151
}
@@ -84,11 +84,9 @@ func newSettingsSecret(version int64, es types.NamespacedName, currentSecret *co
8484
},
8585
}
8686

87-
if policy != nil {
88-
// add the Secure Settings Secret sources to the Settings Secret
89-
if err := setSecureSettings(settingsSecret, *policy); err != nil {
90-
return corev1.Secret{}, 0, err
91-
}
87+
// add the Secure Settings Secret sources to the Settings Secret
88+
if err := setSecureSettings(settingsSecret, namespacedSecretSources); err != nil {
89+
return corev1.Secret{}, 0, err
9290
}
9391

9492
// Add a label to reset secret on deletion of the stack config policy
@@ -131,24 +129,11 @@ func SetSoftOwner(settingsSecret *corev1.Secret, policy policyv1alpha1.StackConf
131129
}
132130

133131
// setSecureSettings stores the SecureSettings Secret sources referenced in the given StackConfigPolicy in the annotation of the Settings Secret.
134-
func setSecureSettings(settingsSecret *corev1.Secret, policy policyv1alpha1.StackConfigPolicy) error {
135-
//nolint:staticcheck
136-
if len(policy.Spec.SecureSettings) == 0 && len(policy.Spec.Elasticsearch.SecureSettings) == 0 {
132+
func setSecureSettings(settingsSecret *corev1.Secret, secretSources []commonv1.NamespacedSecretSource) error {
133+
if len(secretSources) == 0 {
137134
return nil
138135
}
139136

140-
var secretSources []commonv1.NamespacedSecretSource //nolint:prealloc
141-
// Common secureSettings field, this is mainly there to maintain backwards compatibility
142-
//nolint:staticcheck
143-
for _, src := range policy.Spec.SecureSettings {
144-
secretSources = append(secretSources, commonv1.NamespacedSecretSource{Namespace: policy.GetNamespace(), SecretName: src.SecretName, Entries: src.Entries})
145-
}
146-
147-
// SecureSettings field under Elasticsearch in the StackConfigPolicy
148-
for _, src := range policy.Spec.Elasticsearch.SecureSettings {
149-
secretSources = append(secretSources, commonv1.NamespacedSecretSource{Namespace: policy.GetNamespace(), SecretName: src.SecretName, Entries: src.Entries})
150-
}
151-
152137
bytes, err := json.Marshal(secretSources)
153138
if err != nil {
154139
return err

pkg/controller/elasticsearch/filesettings/secret_test.go

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func Test_NewSettingsSecret(t *testing.T) {
3838

3939
// no policy
4040
expectedVersion := int64(1)
41-
secret, reconciledVersion, err := newSettingsSecret(expectedVersion, es, nil, nil, metadata.Metadata{})
41+
secret, reconciledVersion, err := newSettingsSecret(expectedVersion, es, nil, nil, nil, metadata.Metadata{})
4242
assert.NoError(t, err)
4343
assert.Equal(t, "esNs", secret.Namespace)
4444
assert.Equal(t, "esName-es-file-settings", secret.Name)
@@ -47,7 +47,7 @@ func Test_NewSettingsSecret(t *testing.T) {
4747

4848
// policy
4949
expectedVersion = int64(2)
50-
secret, reconciledVersion, err = newSettingsSecret(expectedVersion, es, &secret, &policy, metadata.Metadata{})
50+
secret, reconciledVersion, err = newSettingsSecret(expectedVersion, es, &secret, &policy.Spec.Elasticsearch, policy.GetElasticsearchNamespacedSecureSettings(), metadata.Metadata{})
5151
assert.NoError(t, err)
5252
assert.Equal(t, "esNs", secret.Namespace)
5353
assert.Equal(t, "esName-es-file-settings", secret.Name)
@@ -79,14 +79,14 @@ func Test_SettingsSecret_hasChanged(t *testing.T) {
7979
expectedEmptySettings := NewEmptySettings(expectedVersion)
8080

8181
// no policy -> emptySettings
82-
secret, reconciledVersion, err := newSettingsSecret(expectedVersion, es, nil, nil, metadata.Metadata{})
82+
secret, reconciledVersion, err := newSettingsSecret(expectedVersion, es, nil, nil, nil, metadata.Metadata{})
8383
assert.NoError(t, err)
8484
assert.Equal(t, false, hasChanged(secret, expectedEmptySettings))
8585
assert.Equal(t, expectedVersion, reconciledVersion)
8686

8787
// policy without settings -> emptySettings
8888
sameSettings := NewEmptySettings(expectedVersion)
89-
err = sameSettings.updateState(es, policy)
89+
err = sameSettings.updateState(es, policy.Spec.Elasticsearch)
9090
assert.NoError(t, err)
9191
assert.Equal(t, false, hasChanged(secret, sameSettings))
9292
assert.Equal(t, strconv.FormatInt(expectedVersion, 10), sameSettings.Metadata.Version)
@@ -95,7 +95,7 @@ func Test_SettingsSecret_hasChanged(t *testing.T) {
9595
newVersion := int64(2)
9696
newSettings := NewEmptySettings(newVersion)
9797

98-
err = newSettings.updateState(es, otherPolicy)
98+
err = newSettings.updateState(es, otherPolicy.Spec.Elasticsearch)
9999
assert.NoError(t, err)
100100
assert.Equal(t, true, hasChanged(secret, newSettings))
101101
assert.Equal(t, strconv.FormatInt(newVersion, 10), newSettings.Metadata.Version)
@@ -112,31 +112,35 @@ func Test_SettingsSecret_setSecureSettings_getSecureSettings(t *testing.T) {
112112
Name: "policyName",
113113
},
114114
Spec: policyv1alpha1.StackConfigPolicySpec{
115-
SecureSettings: nil,
115+
Elasticsearch: policyv1alpha1.ElasticsearchConfigPolicySpec{
116+
SecureSettings: nil,
117+
},
116118
}}
117119
otherPolicy := policyv1alpha1.StackConfigPolicy{
118120
ObjectMeta: metav1.ObjectMeta{
119121
Namespace: "otherPolicyNs",
120122
Name: "otherPolicyName",
121123
},
122124
Spec: policyv1alpha1.StackConfigPolicySpec{
123-
SecureSettings: []commonv1.SecretSource{{SecretName: "secure-settings-secret"}},
125+
Elasticsearch: policyv1alpha1.ElasticsearchConfigPolicySpec{
126+
SecureSettings: []commonv1.SecretSource{{SecretName: "secure-settings-secret"}},
127+
},
124128
}}
125129

126-
secret, _, err := NewSettingsSecretWithVersion(es, nil, nil, metadata.Metadata{})
130+
secret, _, err := NewSettingsSecretWithVersion(es, nil, nil, nil, metadata.Metadata{})
127131
assert.NoError(t, err)
128132

129133
secureSettings, err := getSecureSettings(secret)
130134
assert.NoError(t, err)
131135
assert.Equal(t, []commonv1.NamespacedSecretSource{}, secureSettings)
132136

133-
err = setSecureSettings(&secret, policy)
137+
err = setSecureSettings(&secret, policy.GetElasticsearchNamespacedSecureSettings())
134138
assert.NoError(t, err)
135139
secureSettings, err = getSecureSettings(secret)
136140
assert.NoError(t, err)
137141
assert.Equal(t, []commonv1.NamespacedSecretSource{}, secureSettings)
138142

139-
err = setSecureSettings(&secret, otherPolicy)
143+
err = setSecureSettings(&secret, otherPolicy.GetElasticsearchNamespacedSecureSettings())
140144
assert.NoError(t, err)
141145
secureSettings, err = getSecureSettings(secret)
142146
assert.NoError(t, err)

pkg/controller/stackconfigpolicy/controller.go

Lines changed: 12 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -333,20 +333,11 @@ func (r *ReconcileStackConfigPolicy) reconcileElasticsearchResources(ctx context
333333
}
334334

335335
// build the final config by merging all policies that target the given Elasticsearch cluster
336-
esPolicyConfigFinal, err := getPolicyConfigForElasticsearch(&es, allPolicies, r.params)
336+
esConfigPolicyFinal, err := getConfigPolicyForElasticsearch(&es, allPolicies, r.params)
337337
switch {
338338
case errors.Is(err, errMergeConflict):
339-
log.V(1).Info("StackConfigPolicy merge conflict for Elasticsearch", "es_namespace", es.Namespace, "es_name", es.Name, "error", err)
340-
results.WithRequeue(defaultRequeue)
341-
if esPolicyConfigFinal == nil {
342-
continue
343-
}
344-
conflictErr, exists := esPolicyConfigFinal.PoliciesWithConflictErrors[reconcilingPolicyNsn]
345-
if !exists || conflictErr == nil {
346-
continue
347-
}
348-
err = status.AddPolicyErrorFor(esNsn, policyv1alpha1.ConflictPhase, conflictErr.Error(), policyv1alpha1.ElasticsearchResourceType)
349-
if err != nil {
339+
log.Info("StackConfigPolicy merge conflict for Elasticsearch", "es_namespace", es.Namespace, "es_name", es.Name, "error", err)
340+
if err = status.AddPolicyErrorFor(esNsn, policyv1alpha1.ConflictPhase, err.Error(), policyv1alpha1.ElasticsearchResourceType); err != nil {
350341
return results.WithError(err), status
351342
}
352343
continue
@@ -357,16 +348,11 @@ func (r *ReconcileStackConfigPolicy) reconcileElasticsearchResources(ctx context
357348
// extract the metadata that should be propagated to children
358349
meta := metadata.Propagate(&es, metadata.Metadata{Labels: eslabel.NewLabels(k8s.ExtractNamespacedName(&es))})
359350
// create the expected Settings Secret
360-
expectedSecret, expectedVersion, err := filesettings.NewSettingsSecretWithVersion(esNsn, &actualSettingsSecret, &policyv1alpha1.StackConfigPolicy{
361-
ObjectMeta: reconcilingPolicy.ObjectMeta,
362-
Spec: policyv1alpha1.StackConfigPolicySpec{
363-
Elasticsearch: esPolicyConfigFinal.Spec,
364-
},
365-
}, meta)
351+
expectedSecret, expectedVersion, err := filesettings.NewSettingsSecretWithVersion(esNsn, &actualSettingsSecret, &esConfigPolicyFinal.Spec, esConfigPolicyFinal.SecretSources, meta)
366352
if err != nil {
367353
return results.WithError(err), status
368354
}
369-
err = setMultipleSoftOwners(&expectedSecret, esPolicyConfigFinal.PoliciesRefs)
355+
err = setMultipleSoftOwners(&expectedSecret, esConfigPolicyFinal.PolicyRefs)
370356
if err != nil {
371357
return results.WithError(err), status
372358
}
@@ -390,11 +376,11 @@ func (r *ReconcileStackConfigPolicy) reconcileElasticsearchResources(ctx context
390376
}
391377

392378
// create expected elasticsearch config secret
393-
expectedConfigSecret, err := newElasticsearchConfigSecret(esPolicyConfigFinal.Spec, es)
379+
expectedConfigSecret, err := newElasticsearchConfigSecret(esConfigPolicyFinal.Spec, es)
394380
if err != nil {
395381
return results.WithError(err), status
396382
}
397-
err = setMultipleSoftOwners(&expectedConfigSecret, esPolicyConfigFinal.PoliciesRefs)
383+
err = setMultipleSoftOwners(&expectedConfigSecret, esConfigPolicyFinal.PolicyRefs)
398384
if err != nil {
399385
return results.WithError(err), status
400386
}
@@ -404,7 +390,7 @@ func (r *ReconcileStackConfigPolicy) reconcileElasticsearchResources(ctx context
404390
}
405391

406392
// Check if required Elasticsearch config and secret mounts are applied.
407-
configAndSecretMountsApplied, err := elasticsearchConfigAndSecretMountsApplied(ctx, r.Client, esPolicyConfigFinal.Spec, es)
393+
configAndSecretMountsApplied, err := elasticsearchConfigAndSecretMountsApplied(ctx, r.Client, esConfigPolicyFinal.Spec, es)
408394
if err != nil {
409395
return results.WithError(err), status
410396
}
@@ -467,7 +453,6 @@ func (r *ReconcileStackConfigPolicy) reconcileKibanaResources(ctx context.Contex
467453
return results.WithError(err), status
468454
}
469455

470-
reconcilingPolicyNsn := k8s.ExtractNamespacedName(&reconcilingPolicy)
471456
configuredResources := kbMap{}
472457
for _, kibana := range kibanaList.Items {
473458
log.V(1).Info("Reconcile StackConfigPolicy", "kibana_namespace", kibana.Namespace, "kibana_name", kibana.Name)
@@ -477,20 +462,11 @@ func (r *ReconcileStackConfigPolicy) reconcileKibanaResources(ctx context.Contex
477462
kibanaNsn := k8s.ExtractNamespacedName(&kibana)
478463

479464
// build the final config by merging all policies that target the given Kibana instance
480-
kbnPolicyConfigFinal, err := getPolicyConfigForKibana(&kibana, allPolicies, r.params)
465+
kbnPolicyConfigFinal, err := getConfigPolicyForKibana(&kibana, allPolicies, r.params)
481466
switch {
482467
case errors.Is(err, errMergeConflict):
483-
log.V(1).Info("StackConfigPolicy merge conflict for Kibana", "kibana_namespace", kibana.Namespace, "kibana_name", kibana.Name, "error", err)
484-
results.WithRequeue(defaultRequeue)
485-
if kbnPolicyConfigFinal == nil {
486-
continue
487-
}
488-
conflictErr, exists := kbnPolicyConfigFinal.PoliciesWithConflictErrors[reconcilingPolicyNsn]
489-
if !exists || conflictErr == nil {
490-
continue
491-
}
492-
err = status.AddPolicyErrorFor(kibanaNsn, policyv1alpha1.ConflictPhase, conflictErr.Error(), policyv1alpha1.KibanaResourceType)
493-
if err != nil {
468+
log.Info("StackConfigPolicy merge conflict for Kibana", "kibana_namespace", kibana.Namespace, "kibana_name", kibana.Name, "error", err)
469+
if err = status.AddPolicyErrorFor(kibanaNsn, policyv1alpha1.ConflictPhase, err.Error(), policyv1alpha1.KibanaResourceType); err != nil {
494470
return results.WithError(err), status
495471
}
496472
continue
@@ -503,7 +479,7 @@ func (r *ReconcileStackConfigPolicy) reconcileKibanaResources(ctx context.Contex
503479
// Only add to configured resources if Kibana config is set.
504480
// This will help clean up the config secret if config gets removed from the stack config reconcilingPolicy.
505481
configuredResources[kibanaNsn] = kibana
506-
expectedConfigSecret, err := newKibanaConfigSecret(kbnPolicyConfigFinal.Spec, reconcilingPolicy.GetNamespace(), kibana, kbnPolicyConfigFinal.PoliciesRefs)
482+
expectedConfigSecret, err := newKibanaConfigSecret(kbnPolicyConfigFinal.Spec, kbnPolicyConfigFinal.SecretSources, kibana, kbnPolicyConfigFinal.PolicyRefs)
507483
if err != nil {
508484
return results.WithError(err), status
509485
}

0 commit comments

Comments
 (0)