Avoid reading the namespace file every time the NamespacedName value is decoded. (#243)

This commit is contained in:
Oleksii Kliukin 2018-02-20 17:41:11 +01:00 committed by GitHub
parent b0549c3c9c
commit 1f71c8d72f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 6 deletions

View File

@ -154,6 +154,9 @@ type ControllerConfig struct {
Namespace string
}
// cached value for the GetOperatorNamespace
var operatorNamespace string
func (n NamespacedName) String() string {
return types.NamespacedName(n).String()
}
@ -192,11 +195,12 @@ func (n *NamespacedName) DecodeWorker(value, operatorNamespace string) error {
// GetOperatorNamespace assumes serviceaccount secret is mounted by kubernetes
// Placing this func here instead of pgk/util avoids circular import
func GetOperatorNamespace() string {
operatorNamespaceBytes, err := ioutil.ReadFile(fileWithNamespace)
if err != nil {
log.Fatalf("Unable to detect operator namespace from within its pod due to: %v", err)
if operatorNamespace == "" {
operatorNamespaceBytes, err := ioutil.ReadFile(fileWithNamespace)
if err != nil {
log.Fatalf("Unable to detect operator namespace from within its pod due to: %v", err)
}
operatorNamespace = string(operatorNamespaceBytes)
}
return string(operatorNamespaceBytes)
return operatorNamespace
}