Skip to content

Commit d8f8f89

Browse files
committed
pkg/settings/cresettings: env var for scoped settings
1 parent 3b03f1f commit d8f8f89

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

pkg/loop/server.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"github.com/smartcontractkit/chainlink-common/pkg/services"
1919
"github.com/smartcontractkit/chainlink-common/pkg/services/otelhealth"
2020
"github.com/smartcontractkit/chainlink-common/pkg/services/promhealth"
21+
"github.com/smartcontractkit/chainlink-common/pkg/settings/cresettings"
2122
"github.com/smartcontractkit/chainlink-common/pkg/settings/limits"
2223
"github.com/smartcontractkit/chainlink-common/pkg/sqlutil"
2324
"github.com/smartcontractkit/chainlink-common/pkg/sqlutil/pg"
@@ -223,6 +224,7 @@ func (s *Server) start() error {
223224
s.LimitsFactory.Logger = s.Logger.Named("LimitsFactory")
224225
if bc := beholder.GetClient(); bc != nil {
225226
s.LimitsFactory.Meter = bc.Meter
227+
s.LimitsFactory.Settings = cresettings.DefaultGetter
226228
}
227229

228230
return nil

pkg/settings/cresettings/settings.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
// Package cresettings contains configurable settings definitions for nodes in the CRE.
2+
// Environment Variables:
3+
// - CL_CRE_SETTINGS_DEFAULT: defaults like in ./defaults.json - initializes Default
4+
// - CL_CRE_SETTINGS: scoped settings like in ../settings/testdata/config.json - initializes DefaultGetter
25
package cresettings
36

47
import (
@@ -14,7 +17,7 @@ import (
1417
)
1518

1619
func init() {
17-
if v, ok := os.LookupEnv("CL_CRE_SETTINGS"); ok {
20+
if v, ok := os.LookupEnv("CL_CRE_SETTINGS_DEFAULT"); ok {
1821
err := json.Unmarshal([]byte(v), &Default)
1922
if err != nil {
2023
log.Fatalf("failed to initialize defaults: %v", err)
@@ -25,8 +28,18 @@ func init() {
2528
log.Fatalf("failed to initialize keys: %v", err)
2629
}
2730
Config = Default
31+
32+
if v, ok := os.LookupEnv("CL_CRE_SETTINGS"); ok {
33+
DefaultGetter, err = NewJSONGetter([]byte(v))
34+
if err != nil {
35+
log.Fatalf("failed to initialize settings: %v", err)
36+
}
37+
}
2838
}
2939

40+
// DefaultGetter is a default settings getter populated from the env var CL_CRE_SETTINGS if set, otherwise it is nil.
41+
var DefaultGetter Getter
42+
3043
// Deprecated: use Default
3144
var Config Schema
3245

0 commit comments

Comments
 (0)