multizone

package
v1.8.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GlobalConfig

type GlobalConfig struct {
	// KDS Configuration
	KDS *KdsServerConfig `yaml:"kds,omitempty"`
}

Global configuration

func DefaultGlobalConfig

func DefaultGlobalConfig() *GlobalConfig

func (*GlobalConfig) Sanitize

func (g *GlobalConfig) Sanitize()

func (*GlobalConfig) Validate

func (g *GlobalConfig) Validate() error

type KdsClientConfig

type KdsClientConfig struct {
	// Interval for refreshing state of the world
	RefreshInterval time.Duration `yaml:"refreshInterval" envconfig:"kuma_multizone_zone_kds_refresh_interval"`
	// RootCAFile defines a path to a file with PEM-encoded Root CA. Client will verify the server by using it.
	RootCAFile string `yaml:"rootCaFile" envconfig:"kuma_multizone_zone_kds_root_ca_file"`
	// MaxMsgSize defines a maximum size of the message that is exchanged using KDS.
	// In practice this means a limit on full list of one resource type.
	MaxMsgSize uint32 `yaml:"maxMsgSize" envconfig:"kuma_multizone_zone_kds_max_msg_size"`
}

func (KdsClientConfig) Sanitize

func (k KdsClientConfig) Sanitize()

func (KdsClientConfig) Validate

func (k KdsClientConfig) Validate() error

type KdsServerConfig

type KdsServerConfig struct {
	// Port of a gRPC server that serves Kuma Discovery Service (KDS).
	GrpcPort uint32 `yaml:"grpcPort" envconfig:"kuma_multizone_global_kds_grpc_port"`
	// Interval for refreshing state of the world
	RefreshInterval time.Duration `yaml:"refreshInterval" envconfig:"kuma_multizone_global_kds_refresh_interval"`
	// Interval for flushing Zone Insights (stats of multi-zone communication)
	ZoneInsightFlushInterval time.Duration `yaml:"zoneInsightFlushInterval" envconfig:"kuma_multizone_global_kds_zone_insight_flush_interval"`
	// TlsCertFile defines a path to a file with PEM-encoded TLS cert.
	TlsCertFile string `yaml:"tlsCertFile" envconfig:"kuma_multizone_global_kds_tls_cert_file"`
	// TlsKeyFile defines a path to a file with PEM-encoded TLS key.
	TlsKeyFile string `yaml:"tlsKeyFile" envconfig:"kuma_multizone_global_kds_tls_key_file"`
	// MaxMsgSize defines a maximum size of the message that is exchanged using KDS.
	// In practice this means a limit on full list of one resource type.
	MaxMsgSize uint32 `yaml:"maxMsgSize" envconfig:"kuma_multizone_global_kds_max_msg_size"`
}

func (*KdsServerConfig) Sanitize

func (c *KdsServerConfig) Sanitize()

func (*KdsServerConfig) Validate

func (c *KdsServerConfig) Validate() (errs error)

type MultizoneConfig

type MultizoneConfig struct {
	Global *GlobalConfig `yaml:"global,omitempty"`
	Zone   *ZoneConfig   `yaml:"zone,omitempty"`
}

Multizone configuration

func DefaultMultizoneConfig

func DefaultMultizoneConfig() *MultizoneConfig

func (*MultizoneConfig) Sanitize

func (m *MultizoneConfig) Sanitize()

func (*MultizoneConfig) Validate

func (m *MultizoneConfig) Validate() error

type ZoneConfig

type ZoneConfig struct {
	// Kuma Zone name used to mark the zone dataplane resources
	Name string `yaml:"name,omitempty" envconfig:"kuma_multizone_zone_name"`
	// GlobalAddress URL of Global Kuma CP
	GlobalAddress string `yaml:"globalAddress,omitempty" envconfig:"kuma_multizone_zone_global_address"`
	// KDS Configuration
	KDS *KdsClientConfig `yaml:"kds,omitempty"`
}

Zone configuration

func DefaultZoneConfig

func DefaultZoneConfig() *ZoneConfig

func (*ZoneConfig) Sanitize

func (r *ZoneConfig) Sanitize()

func (*ZoneConfig) Validate

func (r *ZoneConfig) Validate() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL