kuma
44 строки · 1.1 Кб
1package dns_server
2
3import (
4"errors"
5"net"
6
7"github.com/kumahq/kuma/pkg/config"
8)
9
10// Config defines DNS Server configuration
11type Config struct {
12config.BaseConfig
13
14// The domain that the server will resolve the services for
15Domain string `json:"domain" envconfig:"kuma_dns_server_domain"`
16// CIDR used to allocate virtual IPs from
17CIDR string `json:"CIDR" envconfig:"kuma_dns_server_cidr"`
18// ServiceVipEnabled will create a service "<kuma.io/service>.mesh" dns entry for every service.
19ServiceVipEnabled bool `json:"serviceVipEnabled" envconfig:"kuma_dns_server_service_vip_enabled"`
20// ServiceVipPort the port to use for virtual IP
21ServiceVipPort uint32 `json:"serviceVipPort" envconfig:"kuma_dns_server_service_vip_port"`
22}
23
24func (g *Config) Validate() error {
25_, _, err := net.ParseCIDR(g.CIDR)
26if err != nil {
27return errors.New("CIDR must be valid")
28}
29if g.ServiceVipPort == 0 {
30return errors.New("port can't be 0")
31}
32return nil
33}
34
35var _ config.Config = &Config{}
36
37func DefaultDNSServerConfig() *Config {
38return &Config{
39ServiceVipEnabled: true,
40Domain: "mesh",
41CIDR: "240.0.0.0/4",
42ServiceVipPort: 80,
43}
44}
45