kuma

Форк
0
49 строк · 1.2 Кб
1
package runtime
2

3
import (
4
	"github.com/pkg/errors"
5
	"go.uber.org/multierr"
6

7
	"github.com/kumahq/kuma/pkg/config/core"
8
	"github.com/kumahq/kuma/pkg/config/plugins/runtime/k8s"
9
	"github.com/kumahq/kuma/pkg/config/plugins/runtime/universal"
10
)
11

12
func DefaultRuntimeConfig() *RuntimeConfig {
13
	return &RuntimeConfig{
14
		Kubernetes: k8s.DefaultKubernetesRuntimeConfig(),
15
		Universal:  universal.DefaultUniversalRuntimeConfig(),
16
	}
17
}
18

19
// RuntimeConfig defines Environment-specific configuration
20
type RuntimeConfig struct {
21
	// Kubernetes-specific configuration
22
	Kubernetes *k8s.KubernetesRuntimeConfig `json:"kubernetes"`
23
	// Universal-specific configuration
24
	Universal *universal.UniversalRuntimeConfig `json:"universal"`
25
}
26

27
func (c *RuntimeConfig) Sanitize() {
28
	c.Kubernetes.Sanitize()
29
}
30

31
func (c *RuntimeConfig) PostProcess() error {
32
	return multierr.Combine(
33
		c.Kubernetes.PostProcess(),
34
		c.Universal.PostProcess(),
35
	)
36
}
37

38
func (c *RuntimeConfig) Validate(env core.EnvironmentType) error {
39
	switch env {
40
	case core.KubernetesEnvironment:
41
		if err := c.Kubernetes.Validate(); err != nil {
42
			return errors.Wrap(err, "Kubernetes validation failed")
43
		}
44
	case core.UniversalEnvironment:
45
	default:
46
		return errors.Errorf("unknown environment type %q", env)
47
	}
48
	return nil
49
}
50

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

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

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

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