Skip to content

Commit b2d1929

Browse files
authored
Stop storing stateless kubernetes keystores (#21880)
1 parent 803ddca commit b2d1929

2 files changed

Lines changed: 6 additions & 15 deletions

File tree

CHANGELOG.next.asciidoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d
375375
- Fix retrieving resources by ID for the azure module. {pull}21711[21711] {issue}21707[21707]
376376
- Use timestamp from CloudWatch API when creating events. {pull}21498[21498]
377377
- Report the correct windows events for system/filesystem {pull}21758[21758]
378+
- Fix panic in kubernetes autodiscover related to keystores {issue}21843[21843] {pull}21880[21880]
378379

379380
*Packetbeat*
380381

libbeat/common/kubernetes/k8skeystore/kubernetes_keystore.go

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,10 @@ import (
3030
"github.com/elastic/beats/v7/libbeat/logp"
3131
)
3232

33-
type KubernetesKeystores map[string]keystore.Keystore
34-
35-
// KubernetesKeystoresRegistry holds KubernetesKeystores for known namespaces. Once a Keystore for one k8s namespace
36-
// is initialized it will be reused every time it is needed.
33+
// KubernetesKeystoresRegistry implements a Provider for Keystore.
3734
type KubernetesKeystoresRegistry struct {
38-
kubernetesKeystores KubernetesKeystores
39-
logger *logp.Logger
40-
client k8s.Interface
35+
logger *logp.Logger
36+
client k8s.Interface
4137
}
4238

4339
// KubernetesSecretsKeystore allows to retrieve passwords from Kubernetes secrets for a given namespace
@@ -56,9 +52,8 @@ func Factoryk8s(keystoreNamespace string, ks8client k8s.Interface, logger *logp.
5652
// NewKubernetesKeystoresRegistry initializes a KubernetesKeystoresRegistry
5753
func NewKubernetesKeystoresRegistry(logger *logp.Logger, client k8s.Interface) keystore.Provider {
5854
return &KubernetesKeystoresRegistry{
59-
kubernetesKeystores: KubernetesKeystores{},
60-
logger: logger,
61-
client: client,
55+
logger: logger,
56+
client: client,
6257
}
6358
}
6459

@@ -75,12 +70,7 @@ func (kr *KubernetesKeystoresRegistry) GetKeystore(event bus.Event) keystore.Key
7570
namespace = ns.(string)
7671
}
7772
if namespace != "" {
78-
// either retrieve already stored keystore or create a new one for the namespace
79-
if storedKeystore, ok := kr.kubernetesKeystores[namespace]; ok {
80-
return storedKeystore
81-
}
8273
k8sKeystore, _ := Factoryk8s(namespace, kr.client, kr.logger)
83-
kr.kubernetesKeystores["namespace"] = k8sKeystore
8474
return k8sKeystore
8575
}
8676
kr.logger.Debugf("Cannot retrieve kubernetes namespace from event: %s", event)

0 commit comments

Comments
 (0)