kuma

Форк
0
/
config_test.go 
95 строк · 2.2 Кб
1
package xds_test
2

3
import (
4
	"os"
5
	"path/filepath"
6
	"strings"
7
	"time"
8

9
	. "github.com/onsi/ginkgo/v2"
10
	. "github.com/onsi/gomega"
11

12
	"github.com/kumahq/kuma/pkg/config"
13
	kuma_xds "github.com/kumahq/kuma/pkg/config/xds"
14
	. "github.com/kumahq/kuma/pkg/test/matchers"
15
)
16

17
var _ = Describe("XdsServerConfig", func() {
18
	It("should be loadable from configuration file", func() {
19
		// given
20
		cfg := kuma_xds.XdsServerConfig{}
21

22
		// when
23
		err := config.Load(filepath.Join("testdata", "valid-config.input.yaml"), &cfg)
24

25
		// then
26
		Expect(err).ToNot(HaveOccurred())
27

28
		// and
29
		Expect(cfg.DataplaneConfigurationRefreshInterval.Duration).To(Equal(3 * time.Second))
30
		Expect(cfg.DataplaneStatusFlushInterval.Duration).To(Equal(5 * time.Second))
31
	})
32

33
	Context("with modified environment variables", func() {
34
		var backupEnvVars []string
35

36
		BeforeEach(func() {
37
			backupEnvVars = os.Environ()
38
		})
39

40
		AfterEach(func() {
41
			os.Clearenv()
42
			for _, envVar := range backupEnvVars {
43
				parts := strings.SplitN(envVar, "=", 2)
44
				os.Setenv(parts[0], parts[1])
45
			}
46
		})
47

48
		It("should be loadable from environment variables", func() {
49
			// setup
50
			env := map[string]string{
51
				"KUMA_XDS_SERVER_DATAPLANE_CONFIGURATION_REFRESH_INTERVAL": "3s",
52
				"KUMA_XDS_SERVER_DATAPLANE_STATUS_FLUSH_INTERVAL":          "5s",
53
			}
54
			for key, value := range env {
55
				os.Setenv(key, value)
56
			}
57

58
			// given
59
			cfg := kuma_xds.XdsServerConfig{}
60

61
			// when
62
			err := config.Load("", &cfg)
63

64
			// then
65
			Expect(err).ToNot(HaveOccurred())
66

67
			// and
68
			Expect(cfg.DataplaneConfigurationRefreshInterval.Duration).To(Equal(3 * time.Second))
69
			Expect(cfg.DataplaneStatusFlushInterval.Duration).To(Equal(5 * time.Second))
70
		})
71
	})
72

73
	It("should have consistent defaults", func() {
74
		// given
75
		cfg := kuma_xds.DefaultXdsServerConfig()
76

77
		// when
78
		actual, err := config.ToYAML(cfg)
79

80
		// then
81
		Expect(err).ToNot(HaveOccurred())
82
		Expect(actual).To(MatchGoldenYAML(filepath.Join("testdata", "default-config.golden.yaml")))
83
	})
84

85
	It("should have validators", func() {
86
		// given
87
		cfg := kuma_xds.XdsServerConfig{}
88

89
		// when
90
		err := config.Load(filepath.Join("testdata", "invalid-config.input.yaml"), &cfg)
91

92
		// then
93
		Expect(err).To(MatchError(`Invalid configuration: DataplaneConfigurationRefreshInterval must be positive`))
94
	})
95
})
96

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.