config

package
v1.7.14 Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2024 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Overview

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Copyright (C) 2019-2024 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Copyright (C) 2019-2024 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (C) 2019-2024 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (C) 2019-2024 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Copyright (C) 2019-2024 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Copyright (C) 2019-2024 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetActualValue

func GetActualValue(val string) (res string)

GetActualValue returns the environment variable value if the val has prefix and suffix "_", if actual value start with file://{path} the return value will read from file otherwise the val will directly return.

func GetActualValues

func GetActualValues(vals []string) []string

GetActualValues returns the environment variable values if the vals has string slice that has prefix and suffix "_", if actual value start with file://{path} the return value will read from file otherwise the val will directly return.

func Merge added in v1.7.11

func Merge[T any](objs ...T) (dst T, err error)

Merge merges multiple objects to one object. the value of each field is prioritized the value of last index of `objs`. if the length of `objs` is zero, it returns initial value of type T.

func Read

func Read(path string, cfg any) (err error)

Read returns config struct or error when decoding the configuration file to actually *Config struct.

func ToRawYaml

func ToRawYaml(data any) string

ToRawYaml writes the YAML encoding of v to the stream and returns the string written to stream.

Types

type AgentSidecar added in v0.0.38

type AgentSidecar struct {
	// Mode represents sidecar mode
	Mode string `json:"mode" yaml:"mode"`

	// WatchDir represents watch target directory for backup
	WatchDir string `json:"watch_dir" yaml:"watch_dir"`

	// WatchEnabled represent auto backup triggered by file changes is enabled or not
	WatchEnabled bool `json:"watch_enabled" yaml:"watch_enabled"`

	// AutoBackupEnabled represent auto backup triggered by timer is enabled or not
	AutoBackupEnabled bool `json:"auto_backup_enabled" yaml:"auto_backup_enabled"`

	// AutoBackupDuration represent checking loop duration for auto backup execution
	AutoBackupDuration string `json:"auto_backup_duration" yaml:"auto_backup_duration"`

	// PostStopTimeout represent timeout duration for file changing during post stop
	PostStopTimeout string `json:"post_stop_timeout" yaml:"post_stop_timeout"`

	// Filename represent backup filename
	Filename string `json:"filename" yaml:"filename"`

	// FilenameSuffix represent suffix of backup filename
	FilenameSuffix string `json:"filename_suffix" yaml:"filename_suffix"`

	// BlobStorage represent blob storage configurations
	BlobStorage *Blob `json:"blob_storage" yaml:"blob_storage"`

	// Compress represent compression configurations
	Compress *CompressCore `json:"compress" yaml:"compress"`

	// RestoreBackoffEnabled represent backoff enabled or not
	RestoreBackoffEnabled bool `json:"restore_backoff_enabled" yaml:"restore_backoff_enabled"`

	// RestoreBackoff represent backoff configurations for restoring process
	RestoreBackoff *Backoff `json:"restore_backoff" yaml:"restore_backoff"`

	// Client represent HTTP client configurations
	Client *Client `json:"client" yaml:"client"`
}

AgentSidecar represents the configuration for the agent sidecar.

func (*AgentSidecar) Bind added in v0.0.38

func (s *AgentSidecar) Bind() *AgentSidecar

Bind binds the actual data from the AgentSidecar receiver fields.

type Backoff

type Backoff struct {
	InitialDuration  string  `json:"initial_duration"   yaml:"initial_duration"`
	BackoffTimeLimit string  `json:"backoff_time_limit" yaml:"backoff_time_limit"`
	MaximumDuration  string  `json:"maximum_duration"   yaml:"maximum_duration"`
	JitterLimit      string  `json:"jitter_limit"       yaml:"jitter_limit"`
	BackoffFactor    float64 `json:"backoff_factor"     yaml:"backoff_factor"`
	RetryCount       int     `json:"retry_count"        yaml:"retry_count"`
	EnableErrorLog   bool    `json:"enable_error_log"   yaml:"enable_error_log"`
}

Backoff represents the configuration for the internal backoff package.

func (*Backoff) Bind

func (b *Backoff) Bind() *Backoff

Bind binds the actual data from the Backoff receiver fields.

func (*Backoff) Opts

func (b *Backoff) Opts() []backoff.Option

Opts creates and returns the slice with the functional options for the internal backoff package.

type BackupManager

type BackupManager struct {
	Client *GRPCClient `json:"client" yaml:"client"`
}

BackupManager represents the configuration for backup manager.

func (*BackupManager) Bind

func (b *BackupManager) Bind() *BackupManager

Bind binds the actual data from the BackupManager receiver fields.

type BenchmarkDataset added in v1.7.11

type BenchmarkDataset struct {
	Name    string                 `json:"name,omitempty"`
	Group   string                 `json:"group,omitempty"`
	Indexes int                    `json:"indexes,omitempty"`
	Range   *BenchmarkDatasetRange `json:"range,omitempty"`
	URL     string                 `json:"url,omitempty"`
}

BenchmarkDataset defines the desired state of BenchmarkDateset.

func (*BenchmarkDataset) Bind added in v1.7.11

type BenchmarkDatasetRange added in v1.7.11

type BenchmarkDatasetRange struct {
	Start int `json:"start,omitempty"`
	End   int `json:"end,omitempty"`
}

BenchmarkDatasetRange defines the desired state of BenchmarkDatesetRange.

type BenchmarkJob added in v1.7.11

type BenchmarkJob struct {
	Target             *BenchmarkTarget    `json:"target,omitempty"               yaml:"target"`
	Dataset            *BenchmarkDataset   `json:"dataset,omitempty"              yaml:"dataset"`
	Replica            int                 `json:"replica,omitempty"              yaml:"replica"`
	Repetition         int                 `json:"repetition,omitempty"           yaml:"repetition"`
	JobType            string              `json:"job_type,omitempty"             yaml:"job_type"`
	InsertConfig       *InsertConfig       `json:"insert_config,omitempty"        yaml:"insert_config"`
	UpdateConfig       *UpdateConfig       `json:"update_config,omitempty"        yaml:"update_config"`
	UpsertConfig       *UpsertConfig       `json:"upsert_config,omitempty"        yaml:"upsert_config"`
	SearchConfig       *SearchConfig       `json:"search_config,omitempty"        yaml:"search_config"`
	RemoveConfig       *RemoveConfig       `json:"remove_config,omitempty"        yaml:"remove_config"`
	ObjectConfig       *ObjectConfig       `json:"object_config,omitempty"        yaml:"object_config"`
	ClientConfig       *GRPCClient         `json:"client_config,omitempty"        yaml:"client_config"`
	Rules              []*BenchmarkJobRule `json:"rules,omitempty"                yaml:"rules"`
	BeforeJobName      string              `json:"before_job_name,omitempty"      yaml:"before_job_name"`
	BeforeJobNamespace string              `json:"before_job_namespace,omitempty" yaml:"before_job_namespace"`
	RPS                int                 `json:"rps,omitempty"                  yaml:"rps"`
	ConcurrencyLimit   int                 `json:"concurrency_limit,omitempty"    yaml:"concurrency_limit"`
}

BenchmarkJob represents the configuration for the internal benchmark search job.

func (*BenchmarkJob) Bind added in v1.7.11

func (b *BenchmarkJob) Bind() *BenchmarkJob

Bind binds the actual data from the Job receiver fields.

type BenchmarkJobImageInfo added in v1.7.11

type BenchmarkJobImageInfo struct {
	Repository string `info:"repository"  json:"repository,omitempty"  yaml:"repository"`
	Tag        string `info:"tag"         json:"tag,omitempty"         yaml:"tag"`
	PullPolicy string `info:"pull_policy" json:"pull_policy,omitempty" yaml:"pull_policy"`
}

BenchmarkJobImageInfo represents the docker image information for benchmark job.

func (*BenchmarkJobImageInfo) Bind added in v1.7.11

Bind binds the actual data from the BenchmarkJobImageInfo receiver fields.

type BenchmarkJobRule added in v1.7.11

type BenchmarkJobRule struct {
	Name string `json:"name,omitempty"`
	Type string `json:"type,omitempty"`
}

BenchmarkJobRule defines the desired state of BenchmarkJobRule.

func (*BenchmarkJobRule) Bind added in v1.7.11

type BenchmarkScenario added in v1.7.11

type BenchmarkScenario struct {
	Target  *BenchmarkTarget  `json:"target,omitempty"  yaml:"target"`
	Dataset *BenchmarkDataset `json:"dataset,omitempty" yaml:"dataset"`
	Jobs    []*BenchmarkJob   `json:"jobs,omitempty"    yaml:"jobs"`
}

BenchmarkScenario represents the configuration for the internal benchmark scenario.

func (*BenchmarkScenario) Bind added in v1.7.11

Bind binds the actual data from the BenchmarkScenario receiver fields.

type BenchmarkTarget added in v1.7.11

type BenchmarkTarget struct {
	Host string `json:"host,omitempty"`
	Port int    `json:"port,omitempty"`
}

BenchmarkTarget defines the desired state of BenchmarkTarget.

func (*BenchmarkTarget) Bind added in v1.7.11

func (t *BenchmarkTarget) Bind() *BenchmarkTarget

type Blob added in v0.0.38

type Blob struct {
	// StorageType represents blob storaget type
	StorageType string `json:"storage_type" yaml:"storage_type"`

	// Bucket represents bucket name
	Bucket string `json:"bucket" yaml:"bucket"`

	// S3 represents S3 config
	S3 *S3Config `json:"s3" yaml:"s3"`

	// CloudStorage represents CloudStorage config
	CloudStorage *CloudStorageConfig `json:"cloud_storage" yaml:"cloud_storage"`
}

Blob represents Blob configuration.

func (*Blob) Bind added in v0.0.38

func (b *Blob) Bind() *Blob

Bind binds the actual data from the Blob receiver field.

type BlobStorageType added in v0.0.38

type BlobStorageType uint8

BlobStorageType represents blob storage type.

const (
	// S3 represents s3 storage type.
	S3 BlobStorageType = 1 + iota
	CloudStorage
)

func AtoBST added in v0.0.38

func AtoBST(bst string) BlobStorageType

AtoBST returns BlobStorageType converted from string.

func (BlobStorageType) String added in v0.0.38

func (bst BlobStorageType) String() string

String returns blob storage type.

type CallOption

type CallOption struct {
	WaitForReady          bool   `json:"wait_for_ready"            yaml:"wait_for_ready"`
	MaxRetryRPCBufferSize int    `json:"max_retry_rpc_buffer_size" yaml:"max_retry_rpc_buffer_size"`
	MaxRecvMsgSize        int    `json:"max_recv_msg_size"         yaml:"max_recv_msg_size"`
	MaxSendMsgSize        int    `json:"max_send_msg_size"         yaml:"max_send_msg_size"`
	ContentSubtype        string `json:"content_subtype"           yaml:"content_subtype"`
}

CallOption represents the configurations for call option.

func (*CallOption) Bind

func (c *CallOption) Bind() *CallOption

Bind binds the actual data from the CallOption receiver fields.

type Cassandra

type Cassandra struct {
	Hosts             []string `json:"hosts"              yaml:"hosts"`
	CQLVersion        string   `json:"cql_version"        yaml:"cql_version"`
	ProtoVersion      int      `json:"proto_version"      yaml:"proto_version"`
	Timeout           string   `json:"timeout"            yaml:"timeout"`
	ConnectTimeout    string   `json:"connect_timeout"    yaml:"connect_timeout"`
	Port              int      `json:"port"               yaml:"port"`
	Keyspace          string   `json:"keyspace"           yaml:"keyspace"`
	NumConns          int      `json:"num_conns"          yaml:"num_conns"`
	Consistency       string   `json:"consistency"        yaml:"consistency"`
	SerialConsistency string   `json:"serial_consistency" yaml:"serial_consistency"`

	Username string `json:"username" yaml:"username"`
	Password string `json:"password" yaml:"password"`

	PoolConfig         *PoolConfig         `json:"pool_config"         yaml:"pool_config"`
	RetryPolicy        *RetryPolicy        `json:"retry_policy"        yaml:"retry_policy"`
	ReconnectionPolicy *ReconnectionPolicy `json:"reconnection_policy" yaml:"reconnection_policy"`
	HostFilter         *HostFilter         `json:"host_filter"         yaml:"host_filter"`

	SocketKeepalive          string `json:"socket_keepalive"            yaml:"socket_keepalive"`
	MaxPreparedStmts         int    `json:"max_prepared_stmts"          yaml:"max_prepared_stmts"`
	MaxRoutingKeyInfo        int    `json:"max_routing_key_info"        yaml:"max_routing_key_info"`
	PageSize                 int    `json:"page_size"                   yaml:"page_size"`
	TLS                      *TLS   `json:"tls"                         yaml:"tls"`
	Net                      *Net   `json:"net"                         yaml:"net"`
	EnableHostVerification   bool   `json:"enable_host_verification"    yaml:"enable_host_verification"`
	DefaultTimestamp         bool   `json:"default_timestamp"           yaml:"default_timestamp"`
	ReconnectInterval        string `json:"reconnect_interval"          yaml:"reconnect_interval"`
	MaxWaitSchemaAgreement   string `json:"max_wait_schema_agreement"   yaml:"max_wait_schema_agreement"`
	IgnorePeerAddr           bool   `json:"ignore_peer_addr"            yaml:"ignore_peer_addr"`
	DisableInitialHostLookup bool   `json:"disable_initial_host_lookup" yaml:"disable_initial_host_lookup"`
	DisableNodeStatusEvents  bool   `json:"disable_node_status_events"  yaml:"disable_node_status_events"`
	DisableTopologyEvents    bool   `json:"disable_topology_events"     yaml:"disable_topology_events"`
	DisableSchemaEvents      bool   `json:"disable_schema_events"       yaml:"disable_schema_events"`
	DisableSkipMetadata      bool   `json:"disable_skip_metadata"       yaml:"disable_skip_metadata"`
	DefaultIdempotence       bool   `json:"default_idempotence"         yaml:"default_idempotence"`
	WriteCoalesceWaitTime    string `json:"write_coalesce_wait_time"    yaml:"write_coalesce_wait_time"`

	// meta
	KVTable string `json:"kv_table" yaml:"kv_table"`
	VKTable string `json:"vk_table" yaml:"vk_table"`

	// backup manager
	VectorBackupTable string `json:"vector_backup_table" yaml:"vector_backup_table"`
}

Cassandra represents the configuration for the internal cassandra package.

func (*Cassandra) Bind

func (c *Cassandra) Bind() *Cassandra

Bind binds the actual data from the Cassandra receiver fields.

func (*Cassandra) Opts

func (cfg *Cassandra) Opts() (opts []cassandra.Option, err error)

Opts creates and returns the slice with the functional options for the internal cassandra package. In addition, Opts sometimes returns the error when the any errors are occurred.

type CircuitBreaker added in v1.6.0

type CircuitBreaker struct {
	ClosedErrorRate      float32 `json:"closed_error_rate,omitempty"      yaml:"closed_error_rate"`
	HalfOpenErrorRate    float32 `json:"half_open_error_rate,omitempty"   yaml:"half_open_error_rate"`
	MinSamples           int64   `json:"min_samples,omitempty"            yaml:"min_samples"`
	OpenTimeout          string  `json:"open_timeout,omitempty"           yaml:"open_timeout"`
	ClosedRefreshTimeout string  `json:"closed_refresh_timeout,omitempty" yaml:"closed_refresh_timeout"`
}

CircuitBreaker represents the configuration for the internal circuitbreaker package.

func (*CircuitBreaker) Bind added in v1.6.0

func (cb *CircuitBreaker) Bind() *CircuitBreaker

type Client

type Client struct {
	Net       *Net       `json:"net"       yaml:"net"`
	Transport *Transport `json:"transport" yaml:"transport"`
}

Client represents the Client configurations.

func (*Client) Bind

func (c *Client) Bind() *Client

Bind binds the actual data from the Client receiver field.

type CloudStorageClient added in v1.1.0

type CloudStorageClient struct {
	CredentialsFilePath string `json:"credentials_file_path" yaml:"credentials_file_path"`
	CredentialsJSON     string `json:"credentials_json"      yaml:"credentials_json"`
}

CloudStorageClient represents CloudStorage client configuration.

type CloudStorageConfig added in v1.1.0

type CloudStorageConfig struct {
	URL    string              `json:"url"    yaml:"url"`
	Client *CloudStorageClient `json:"client" yaml:"client"`

	WriteBufferSize         int    `json:"write_buffer_size"         yaml:"write_buffer_size"`
	WriteCacheControl       string `json:"write_cache_control"       yaml:"write_cache_control"`
	WriteContentDisposition string `json:"write_content_disposition" yaml:"write_content_disposition"`
	WriteContentEncoding    string `json:"write_content_encoding"    yaml:"write_content_encoding"`
	WriteContentLanguage    string `json:"write_content_language"    yaml:"write_content_language"`
	WriteContentType        string `json:"write_content_type"        yaml:"write_content_type"`
}

CloudStorageConfig represents CloudStorage configuration.

func (*CloudStorageConfig) Bind added in v1.1.0

type CompressAlgorithm

type CompressAlgorithm uint8

CompressAlgorithm is an enum for compress algorithm.

const (
	// GOB represents gob algorithm.
	GOB CompressAlgorithm = 1 + iota
	// GZIP represents gzip algorithm.
	GZIP
	// LZ4 represents lz4 algorithm.
	LZ4
	// ZSTD represents zstd algorithm.
	ZSTD
)

func AToCompressAlgorithm added in v1.7.0

func AToCompressAlgorithm(ca string) CompressAlgorithm

AToCompressAlgorithm returns CompressAlgorithm converted from string.

func (CompressAlgorithm) String added in v1.7.0

func (ca CompressAlgorithm) String() string

String returns compress algorithm.

type CompressCore added in v0.0.38

type CompressCore struct {
	// CompressorAlgorithm represents compression algorithm type
	CompressAlgorithm string `json:"compress_algorithm" yaml:"compress_algorithm"`

	// CompressionLevel represents compression level
	CompressionLevel int `json:"compression_level" yaml:"compression_level"`
}

CompressCore represents CompressCore configuration.

func (*CompressCore) Bind added in v0.0.38

func (c *CompressCore) Bind() *CompressCore

Bind binds the actual data from the receiver field.

type Compressor

type Compressor struct {
	CompressCore `json:",inline" yaml:",inline"`

	// ConcurrentLimit represents limitation of compression worker concurrency
	ConcurrentLimit int `json:"concurrent_limit" yaml:"concurrent_limit"`

	// QueueCheckDuration represents duration of queue daemon block
	QueueCheckDuration string `json:"queue_check_duration" yaml:"queue_check_duration"`
}

Compressor represents Compressor configuration.

func (*Compressor) Bind

func (c *Compressor) Bind() *Compressor

Bind binds the actual data from the Compressor receiver field.

type CompressorRegisterer added in v0.0.28

type CompressorRegisterer struct {
	// ConcurrentLimit represents limitation of worker
	ConcurrentLimit int `json:"concurrent_limit" yaml:"concurrent_limit"`

	// QueueCheckDuration represents duration of queue daemon block
	QueueCheckDuration string `json:"queue_check_duration" yaml:"queue_check_duration"`

	// Compressor represents gRPC client config of compressor client (for forwarding use)
	Compressor *BackupManager `json:"compressor" yaml:"compressor"`
}

CompressorRegisterer represents CompressorRegisterer configuration.

func (*CompressorRegisterer) Bind added in v0.0.28

Bind binds the actual data from the CompressorRegisterer receiver field.

type ConnectionPool added in v0.0.27

type ConnectionPool struct {
	ResolveDNS           bool   `json:"enable_dns_resolver"     yaml:"enable_dns_resolver"`
	EnableRebalance      bool   `json:"enable_rebalance"        yaml:"enable_rebalance"`
	RebalanceDuration    string `json:"rebalance_duration"      yaml:"rebalance_duration"`
	Size                 int    `json:"size"                    yaml:"size"`
	OldConnCloseDuration string `json:"old_conn_close_duration" yaml:"old_conn_close_duration"`
}

ConnectionPool represents the configurations for connection pool.

type Corrector added in v1.7.9

type Corrector struct {
	// AgentPort represent agent port number
	AgentPort int `json:"agent_port" yaml:"agent_port"`

	// AgentName represent agents meta_name for service discovery
	AgentName string `json:"agent_name" yaml:"agent_name"`

	// AgentNamespace represent agent namespace location
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`

	// AgentDNS represent agents dns A record for service discovery
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`

	// NodeName represents node name
	NodeName string `json:"node_name" yaml:"node_name"`

	// StreamConcurrency represent stream concurrency for StreamListObject rpc client
	// this directly affects the memory usage of this job
	StreamListConcurrency int `json:"stream_list_concurrency" yaml:"stream_list_concurrency"`

	// KVSBackgroundSyncInterval represents interval for checked id list kvs sync duration
	KVSBackgroundSyncInterval string `json:"kvs_background_sync_interval" yaml:"kvs_background_sync_interval"`

	// KVSBackgroundCompactionInterval represents interval for checked id list kvs compaction duration
	KVSBackgroundCompactionInterval string `json:"kvs_background_compaction_interval" yaml:"kvs_background_compaction_interval"`

	// IndexReplica represent index replica count. This should be equal to the lb setting
	IndexReplica int `json:"index_replica" yaml:"index_replica"`

	// Discoverer represent agent discoverer service configuration
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`

	// Gateway represent gateway service configuration
	Gateway *GRPCClient `json:"gateway" yaml:"gateway"`
}

Corrector represents the index correction configurations.

func (*Corrector) Bind added in v1.7.9

func (c *Corrector) Bind() *Corrector

Bind binds the actual data from the Indexer receiver field.

type DNS

type DNS struct {
	CacheEnabled    bool   `json:"cache_enabled,omitempty"    yaml:"cache_enabled"`
	RefreshDuration string `json:"refresh_duration,omitempty" yaml:"refresh_duration"`
	CacheExpiration string `json:"cache_expiration,omitempty" yaml:"cache_expiration"`
}

DNS represents the configuration for resolving DNS.

func (*DNS) Bind

func (d *DNS) Bind() *DNS

Bind binds the actual data from the DNS fields.

type DialOption

type DialOption struct {
	DisableRetry                bool                 `json:"disable_retry,omitempty"                  yaml:"disable_retry"`
	EnableBackoff               bool                 `json:"enable_backoff,omitempty"                 yaml:"enable_backoff"`
	Insecure                    bool                 `json:"insecure,omitempty"                       yaml:"insecure"`
	SharedWriteBuffer           bool                 `json:"shared_write_buffer,omitempty"            yaml:"shared_write_buffer"`
	InitialConnectionWindowSize int32                `json:"initial_connection_window_size,omitempty" yaml:"initial_connection_window_size"`
	InitialWindowSize           int32                `json:"initial_window_size,omitempty"            yaml:"initial_window_size"`
	MaxHeaderListSize           uint32               `json:"max_header_list_size,omitempty"           yaml:"max_header_list_size"`
	MaxCallAttempts             int                  `json:"max_call_attempts,omitempty"              yaml:"max_call_attempts"`
	MaxMsgSize                  int                  `json:"max_msg_size,omitempty"                   yaml:"max_msg_size"`
	ReadBufferSize              int                  `json:"read_buffer_size,omitempty"               yaml:"read_buffer_size"`
	WriteBufferSize             int                  `json:"write_buffer_size,omitempty"              yaml:"write_buffer_size"`
	BackoffJitter               float64              `json:"backoff_jitter,omitempty"                 yaml:"backoff_jitter"`
	BackoffMultiplier           float64              `json:"backoff_multiplier,omitempty"             yaml:"backoff_multiplier"`
	Authority                   string               `json:"authority,omitempty"                      yaml:"authority"`
	BackoffBaseDelay            string               `json:"backoff_base_delay,omitempty"             yaml:"backoff_base_delay"`
	BackoffMaxDelay             string               `json:"backoff_max_delay,omitempty"              yaml:"backoff_max_delay"`
	IdleTimeout                 string               `json:"idle_timeout,omitempty"                   yaml:"idle_timeout"`
	MinimumConnectionTimeout    string               `json:"min_connection_timeout,omitempty"         yaml:"min_connection_timeout"`
	Timeout                     string               `json:"timeout,omitempty"                        yaml:"timeout"`
	UserAgent                   string               `json:"user_agent,omitempty"                     yaml:"user_agent"`
	Interceptors                []string             `json:"interceptors,omitempty"                   yaml:"interceptors"`
	Net                         *Net                 `json:"net,omitempty"                            yaml:"net"`
	Keepalive                   *GRPCClientKeepalive `json:"keepalive,omitempty"                      yaml:"keepalive"`
}

DialOption represents the configurations for dial option.

func (*DialOption) Bind

func (d *DialOption) Bind() *DialOption

Bind binds the actual data from the DialOption receiver fields.

type Dialer

type Dialer struct {
	Timeout          string `json:"timeout,omitempty"            yaml:"timeout"`
	Keepalive        string `json:"keepalive,omitempty"          yaml:"keepalive"`
	FallbackDelay    string `json:"fallback_delay,omitempty"     yaml:"fallback_delay"`
	DualStackEnabled bool   `json:"dual_stack_enabled,omitempty" yaml:"dual_stack_enabled"`
}

Dialer represents the configuration for dial.

func (*Dialer) Bind

func (d *Dialer) Bind() *Dialer

Bind binds the actual data from the Dialer fields.

type Discoverer

type Discoverer struct {
	Name              string     `json:"name,omitempty"               yaml:"name"`
	Namespace         string     `json:"namespace,omitempty"          yaml:"namespace"`
	DiscoveryDuration string     `json:"discovery_duration,omitempty" yaml:"discovery_duration"`
	Net               *Net       `json:"net,omitempty"                yaml:"net"`
	Selectors         *Selectors `json:"selectors,omitempty"          yaml:"selectors"`
}

Discoverer represents the Discoverer configurations.

func (*Discoverer) Bind

func (d *Discoverer) Bind() *Discoverer

Bind binds the actual data from the Discoverer receiver field.

type DiscovererClient added in v0.0.5

type DiscovererClient struct {
	Duration           string      `json:"duration"             yaml:"duration"`
	Client             *GRPCClient `json:"client"               yaml:"client"`
	AgentClientOptions *GRPCClient `json:"agent_client_options" yaml:"agent_client_options"`
}

DiscovererClient represents the DiscovererClient configurations.

func (*DiscovererClient) Bind added in v0.0.5

Bind binds the actual data from the DiscovererClient receiver field.

type EgressFilter

type EgressFilter struct {
	Client          *GRPCClient `json:"client,omitempty"           yaml:"client"`
	DistanceFilters []string    `json:"distance_filters,omitempty" yaml:"distance_filters"`
	ObjectFilters   []string    `json:"object_filters,omitempty"   yaml:"object_filters"`
}

EgressFilter represents the EgressFilter configuration.

func (*EgressFilter) Bind

func (e *EgressFilter) Bind() *EgressFilter

Bind binds the actual data from the EgressFilter receiver field.

type Faiss added in v1.7.11

type Faiss struct {
	// IndexPath represents the faiss index file path
	IndexPath string `json:"index_path,omitempty" yaml:"index_path"`

	// Dimension represents the faiss index dimension
	Dimension int `info:"dimension" json:"dimension,omitempty" yaml:"dimension"`

	// Nlist represents the number of Voronoi cells
	// ref: https://github.com/facebookresearch/faiss/wiki/Faster-search
	Nlist int `info:"nlist" json:"nlist,omitempty" yaml:"nlist"`

	// M represents the number of subquantizers
	// ref: https://github.com/facebookresearch/faiss/wiki/Faiss-indexes-(composite)#cell-probe-method-with-a-pq-index-as-coarse-quantizer
	M int `info:"m" json:"m,omitempty" yaml:"m"`

	// NbitsPerIdx represents the number of bit per subvector index
	// ref: https://github.com/facebookresearch/faiss/wiki/FAQ#can-i-ignore-warning-clustering-xxx-points-to-yyy-centroids
	NbitsPerIdx int `info:"nbits_per_idx" json:"nbits_per_idx,omitempty" yaml:"nbits_per_idx"`

	// MethodType represents the method type
	MethodType string `info:"method_type" json:"method_type,omitempty" yaml:"method_type"`

	// MetricType represents the metric type
	MetricType string `info:"metric_type" json:"metric_type,omitempty" yaml:"metric_type"`

	// EnableInMemoryMode enables on memory faiss indexing mode
	EnableInMemoryMode bool `json:"enable_in_memory_mode,omitempty" yaml:"enable_in_memory_mode"`

	// AutoIndexCheckDuration represents checking loop duration about auto indexing execution
	AutoIndexCheckDuration string `json:"auto_index_check_duration,omitempty" yaml:"auto_index_check_duration"`

	// AutoSaveIndexDuration represents checking loop duration about auto save index execution
	AutoSaveIndexDuration string `json:"auto_save_index_duration,omitempty" yaml:"auto_save_index_duration"`

	// AutoIndexDurationLimit represents auto indexing duration limit
	AutoIndexDurationLimit string `json:"auto_index_duration_limit,omitempty" yaml:"auto_index_duration_limit"`

	// AutoIndexLength represents auto index length limit
	AutoIndexLength int `json:"auto_index_length,omitempty" yaml:"auto_index_length"`

	// InitialDelayMaxDuration represents maximum duration for initial delay
	InitialDelayMaxDuration string `json:"initial_delay_max_duration,omitempty" yaml:"initial_delay_max_duration"`

	// MinLoadIndexTimeout represents minimum duration of load index timeout
	MinLoadIndexTimeout string `json:"min_load_index_timeout,omitempty" yaml:"min_load_index_timeout"`

	// MaxLoadIndexTimeout represents maximum duration of load index timeout
	MaxLoadIndexTimeout string `json:"max_load_index_timeout,omitempty" yaml:"max_load_index_timeout"`

	// LoadIndexTimeoutFactor represents a factor of load index timeout
	LoadIndexTimeoutFactor string `json:"load_index_timeout_factor,omitempty" yaml:"load_index_timeout_factor"`

	// EnableProactiveGC enables more proactive GC call for reducing heap memory allocation
	EnableProactiveGC bool `json:"enable_proactive_gc,omitempty" yaml:"enable_proactive_gc"`

	// EnableCopyOnWrite enables copy on write saving
	EnableCopyOnWrite bool `json:"enable_copy_on_write,omitempty" yaml:"enable_copy_on_write"`

	// VQueue represents the faiss vector queue buffer size
	VQueue *VQueue `json:"vqueue,omitempty" yaml:"vqueue"`

	// KVSDB represents the faiss bidirectional kv store configuration
	KVSDB *KVSDB `json:"kvsdb,omitempty" yaml:"kvsdb"`
}

Faiss represent the faiss core configuration for server.

func (*Faiss) Bind added in v1.7.11

func (f *Faiss) Bind() *Faiss

Bind returns Faiss object whose some string value is filed value or environment value.

type FilterConfig added in v1.7.11

type FilterConfig struct {
	Targets []*FilterTarget `json:"target,omitempty" yaml:"target"`
}

FilterConfig defines the desired state of filter config.

func (*FilterConfig) Bind added in v1.7.11

func (cfg *FilterConfig) Bind() *FilterConfig

type FilterTarget added in v1.7.11

type FilterTarget struct {
	Host string `json:"host,omitempty" yaml:"host"`
	Port int32  `json:"port,omitempty" yaml:"port"`
}

FilterTarget defines the desired state of filter target.

func (*FilterTarget) Bind added in v1.7.11

func (cfg *FilterTarget) Bind() *FilterTarget

type GRPC

type GRPC struct {
	EnableAdmin                    bool           `json:"enable_admin,omitempty"                     yaml:"enable_admin"`
	EnableChannelz                 bool           `json:"enable_channelz,omitempty"                  yaml:"enable_channelz"`
	EnableReflection               bool           `json:"enable_reflection,omitempty"                yaml:"enable_reflection"`
	SharedWriteBuffer              bool           `json:"shared_write_buffer,omitempty"              yaml:"shared_write_buffer"`
	WaitForHandlers                bool           `json:"wait_for_handlers,omitempty"                yaml:"wait_for_handlers"`
	HeaderTableSize                uint32         `json:"header_table_size,omitempty"                yaml:"header_table_size"`
	MaxConcurrentStreams           uint32         `json:"max_concurrent_streams,omitempty"           yaml:"max_concurrent_streams"`
	MaxHeaderListSize              uint32         `json:"max_header_list_size,omitempty"             yaml:"max_header_list_size"`
	NumStreamWorkers               uint32         `json:"num_stream_workers,omitempty"               yaml:"num_stream_workers"`
	BidirectionalStreamConcurrency int            `json:"bidirectional_stream_concurrency,omitempty" yaml:"bidirectional_stream_concurrency"`
	InitialConnWindowSize          int            `json:"initial_conn_window_size,omitempty"         yaml:"initial_conn_window_size"`
	InitialWindowSize              int            `json:"initial_window_size,omitempty"              yaml:"initial_window_size"`
	MaxReceiveMessageSize          int            `json:"max_receive_message_size,omitempty"         yaml:"max_receive_message_size"`
	MaxSendMessageSize             int            `json:"max_send_message_size,omitempty"            yaml:"max_send_message_size"`
	ReadBufferSize                 int            `json:"read_buffer_size,omitempty"                 yaml:"read_buffer_size"`
	WriteBufferSize                int            `json:"write_buffer_size,omitempty"                yaml:"write_buffer_size"`
	ConnectionTimeout              string         `json:"connection_timeout,omitempty"               yaml:"connection_timeout"`
	Interceptors                   []string       `json:"interceptors,omitempty"                     yaml:"interceptors"`
	Keepalive                      *GRPCKeepalive `json:"keepalive,omitempty"                        yaml:"keepalive"`
}

GRPC represents the configuration for gPRC.

func (*GRPC) Bind

func (g *GRPC) Bind() *GRPC

Bind binds the actual value from the GRPC struct field.

type GRPCClient

type GRPCClient struct {
	Addrs               []string        `json:"addrs"                 yaml:"addrs"`
	HealthCheckDuration string          `json:"health_check_duration" yaml:"health_check_duration"`
	ConnectionPool      *ConnectionPool `json:"connection_pool"       yaml:"connection_pool"`
	Backoff             *Backoff        `json:"backoff"               yaml:"backoff"`
	CircuitBreaker      *CircuitBreaker `json:"circuit_breaker"       yaml:"circuit_breaker"`
	CallOption          *CallOption     `json:"call_option"           yaml:"call_option"`
	DialOption          *DialOption     `json:"dial_option"           yaml:"dial_option"`
	TLS                 *TLS            `json:"tls"                   yaml:"tls"`
}

GRPCClient represents the configurations for gRPC client.

func (*GRPCClient) Bind

func (g *GRPCClient) Bind() *GRPCClient

Bind binds the actual data from the GRPCClient receiver fields.

func (*GRPCClient) Opts

func (g *GRPCClient) Opts() ([]grpc.Option, error)

Opts creates the slice with the functional options for the gRPC options.

type GRPCClientKeepalive

type GRPCClientKeepalive struct {
	Time                string `json:"time"                  yaml:"time"`
	Timeout             string `json:"timeout"               yaml:"timeout"`
	PermitWithoutStream bool   `json:"permit_without_stream" yaml:"permit_without_stream"`
}

GRPCClientKeepalive represents the configurations for gRPC keep-alive.

func (*GRPCClientKeepalive) Bind

Bind binds the actual data from the GRPCClientKeepalive receiver fields.

type GRPCKeepalive

type GRPCKeepalive struct {
	MaxConnIdle         string `json:"max_conn_idle"         yaml:"max_conn_idle"`
	MaxConnAge          string `json:"max_conn_age"          yaml:"max_conn_age"`
	MaxConnAgeGrace     string `json:"max_conn_age_grace"    yaml:"max_conn_age_grace"`
	Time                string `json:"time"                  yaml:"time"`
	Timeout             string `json:"timeout"               yaml:"timeout"`
	MinTime             string `json:"min_time"              yaml:"min_time"`
	PermitWithoutStream bool   `json:"permit_without_stream" yaml:"permit_without_stream"`
}

GRPCKeepalive represents the configuration for gRPC keep-alive.

func (*GRPCKeepalive) Bind

func (k *GRPCKeepalive) Bind() *GRPCKeepalive

Bind binds the actual value from the GRPCKeepalive struct field.

type Gateway

type Gateway struct {
	// AgentPort represent agent port number
	AgentPort int `json:"agent_port" yaml:"agent_port"`

	// AgentName represent agents meta_name for service discovery
	AgentName string `json:"agent_name" yaml:"agent_name"`

	// AgentNamespace represent agent namespace location
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`

	// AgentDNS represent agents dns A record for service discovery
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`

	// NodeName represents node name
	NodeName string `json:"node_name" yaml:"node_name"`

	// IndexReplica represents index replication count
	IndexReplica int `json:"index_replica" yaml:"index_replica"`

	// Discoverer represent agent discoverer service configuration
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`

	// Meta represent meta data service configuration
	Meta *Meta `json:"meta" yaml:"meta"`

	// BackupManager represent backup manager configuration
	BackupManager *BackupManager `json:"backup" yaml:"backup"`

	// EgressFilter represents egress filter configuration
	EgressFilter *EgressFilter `json:"egress_filter" yaml:"egress_filter"`
}

Gateway represents the list of configurations for gateway.

func (*Gateway) Bind

func (g *Gateway) Bind() *Gateway

Bind binds the actual data from the Gateway receiver field on the Gateway.

type GlobalConfig added in v0.0.2

type GlobalConfig struct {
	// Version represent configuration file version.
	Version string `json:"version" yaml:"version"`

	// TZ represent system time location .
	TZ string `json:"time_zone" yaml:"time_zone"`

	// Log represent log configuration.
	Logging *Logging `json:"logging,omitempty" yaml:"logging,omitempty"`
}

GlobalConfig represent a application setting data content (config.yaml).

func (*GlobalConfig) Bind added in v0.0.2

func (c *GlobalConfig) Bind() *GlobalConfig

Bind binds the actual data from the receiver field.

type HTTP

type HTTP struct {
	HTTP2             *HTTP2 `json:"http2"               yaml:"http2"`
	ShutdownDuration  string `json:"shutdown_duration"   yaml:"shutdown_duration"`
	HandlerTimeout    string `json:"handler_timeout"     yaml:"handler_timeout"`
	IdleTimeout       string `json:"idle_timeout"        yaml:"idle_timeout"`
	ReadHeaderTimeout string `json:"read_header_timeout" yaml:"read_header_timeout"`
	ReadTimeout       string `json:"read_timeout"        yaml:"read_timeout"`
	WriteTimeout      string `json:"write_timeout"       yaml:"write_timeout"`
}

HTTP represents the configuration for HTTP.

func (*HTTP) Bind

func (h *HTTP) Bind() *HTTP

Bind binds the actual value from the HTTP struct field.

type HTTP2 added in v1.7.14

type HTTP2 struct {
	HandlerLimit                 int    `json:"handler_limit,omitempty"                    yaml:"handler_limit"`
	Enabled                      bool   `json:"enabled,omitempty"                          yaml:"enabled"`
	PermitProhibitedCipherSuites bool   `json:"permit_prohibited_cipher_suites,omitempty"  yaml:"permit_prohibited_cipher_suites"`
	MaxUploadBufferPerConnection int32  `json:"max_upload_buffer_per_connection,omitempty" yaml:"max_upload_buffer_per_connection"`
	MaxUploadBufferPerStream     int32  `json:"max_upload_buffer_per_stream,omitempty"     yaml:"max_upload_buffer_per_stream"`
	MaxConcurrentStreams         uint32 `json:"max_concurrent_streams,omitempty"           yaml:"max_concurrent_streams"`
	MaxDecoderHeaderTableSize    uint32 `json:"max_decoder_header_table_size,omitempty"    yaml:"max_decoder_header_table_size"`
	MaxEncoderHeaderTableSize    uint32 `json:"max_encoder_header_table_size,omitempty"    yaml:"max_encoder_header_table_size"`
	MaxReadFrameSize             uint32 `json:"max_read_frame_size,omitempty"              yaml:"max_read_frame_size"`
}

HTTP2 represents the configuration for HTTP2.

type HostFilter added in v0.0.34

type HostFilter struct {
	Enabled    bool     `json:"enabled"`
	DataCenter string   `json:"data_center" yaml:"data_center"`
	WhiteList  []string `json:"white_list"  yaml:"white_list"`
}

HostFilter represents the configuration for the host filter.

type IndexCreation added in v1.7.9

type IndexCreation struct {
	// AgentPort represent agent port number
	AgentPort int `json:"agent_port" yaml:"agent_port"`

	// AgentName represent agents meta_name for service discovery
	AgentName string `json:"agent_name" yaml:"agent_name"`

	// AgentNamespace represent agent namespace location
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`

	// AgentDNS represent agents dns A record for service discovery
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`

	// NodeName represents node name
	NodeName string `json:"node_name" yaml:"node_name"`

	// Concurrency represents indexing concurrency.
	Concurrency int `json:"concurrency" yaml:"concurrency"`

	// CreationPoolSize represents batch pool size for indexing.
	CreationPoolSize uint32 `json:"creation_pool_size" yaml:"creation_pool_size"`

	// TargetAddrs represents indexing target addresses.
	TargetAddrs []string `json:"target_addrs" yaml:"target_addrs"`

	// Discoverer represents agent discoverer service configuration.
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`
}

IndexCreation represents the configurations for index creation.

func (*IndexCreation) Bind added in v1.7.9

func (ic *IndexCreation) Bind() *IndexCreation

type IndexJobTemplates added in v1.7.13

type IndexJobTemplates struct {
	Rotate     *k8s.Job `json:"rotate"     yaml:"rotate"`
	Creation   *k8s.Job `json:"creation"   yaml:"creation"`
	Save       *k8s.Job `json:"save"       yaml:"save"`
	Correction *k8s.Job `json:"correction" yaml:"correction"`
}

type IndexOperator added in v1.7.13

type IndexOperator struct {
	// Namespace represent the namespace of this pod
	Namespace string `json:"namespace" yaml:"namespace"`

	// AgentName represent agents meta_name for service discovery
	AgentName string `json:"agent_name" yaml:"agent_name"`

	// AgentNamespace represent agent namespace location
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`

	// RotatorName represent rotator name for service discovery
	RotatorName string `json:"rotator_name" yaml:"rotator_name"`

	// TargetReadReplicaIDAnnotationsKey represents the environment variable name for target read replica id.
	TargetReadReplicaIDAnnotationsKey string `json:"target_read_replica_id_annotations_key" yaml:"target_read_replica_id_annotations_key"`

	// RotationJobConcurrency represents indexing concurrency.
	RotationJobConcurrency uint `json:"rotation_job_concurrency" yaml:"rotation_job_concurrency"`

	// ReadReplicaEnabled represents whether read replica is enabled or not.
	ReadReplicaEnabled bool `json:"read_replica_enabled" yaml:"read_replica_enabled"`

	// ReadReplicaLabelKey represents the label key for read replica.
	ReadReplicaLabelKey string `json:"read_replica_label_key" yaml:"read_replica_label_key"`

	// JobTemplates represents the job templates for indexing.
	JobTemplates IndexJobTemplates `json:"job_templates" yaml:"job_templates"`
}

IndexOperator represents the configurations for index k8s operator.

func (*IndexOperator) Bind added in v1.7.13

func (ic *IndexOperator) Bind() *IndexOperator

type IndexSave added in v1.7.9

type IndexSave struct {
	// AgentPort represent agent port number.
	AgentPort int `json:"agent_port" yaml:"agent_port"`

	// AgentName represent agents meta_name for service discovery.
	AgentName string `json:"agent_name" yaml:"agent_name"`

	// AgentNamespace represent agent namespace location.
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`

	// AgentDNS represent agents dns A record for service discovery.
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`

	// NodeName represents node name.
	NodeName string `json:"node_name" yaml:"node_name"`

	// Concurrency represents indexing concurrency.
	Concurrency int `json:"concurrency" yaml:"concurrency"`

	// TargetAddrs represents indexing target addresses.
	TargetAddrs []string `json:"target_addrs" yaml:"target_addrs"`

	// Discoverer represents agent discoverer service configuration.
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`
}

IndexSave represents the configurations for index save.

func (*IndexSave) Bind added in v1.7.9

func (is *IndexSave) Bind() *IndexSave

type Indexer added in v0.0.5

type Indexer struct {
	// AgentPort represent agent port number
	AgentPort int `json:"agent_port" yaml:"agent_port"`

	// AgentName represent agents meta_name for service discovery
	AgentName string `json:"agent_name" yaml:"agent_name"`

	// AgentNamespace represent agent namespace location
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`

	// AgentDNS represent agents dns A record for service discovery
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`

	// Concurrency represents indexing concurrency
	Concurrency int `json:"concurrency" yaml:"concurrency"`

	// AutoIndexDurationLimit represents auto indexing duration limit
	AutoIndexDurationLimit string `json:"auto_index_duration_limit" yaml:"auto_index_duration_limit"`

	// AutoSaveIndexDurationLimit represents auto save index duration limit
	AutoSaveIndexDurationLimit string `json:"auto_save_index_duration_limit" yaml:"auto_save_index_duration_limit"`

	// AutoSaveIndexWaitDuration represents auto save index wait for next duration
	AutoSaveIndexWaitDuration string `json:"auto_save_index_wait_duration" yaml:"auto_save_index_wait_duration"`

	// AutoIndexCheckDuration represent checking loop duration about auto indexing execution
	AutoIndexCheckDuration string `json:"auto_index_check_duration" yaml:"auto_index_check_duration"`

	// AutoIndexLength represent minimum auto index length
	AutoIndexLength uint32 `json:"auto_index_length" yaml:"auto_index_length"`

	// CreationPoolSize represent create index batch pool size
	CreationPoolSize uint32 `json:"creation_pool_size" yaml:"creation_pool_size"`

	// NodeName represents node name
	NodeName string `json:"node_name" yaml:"node_name"`

	// Discoverer represent agent discoverer service configuration
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`
}

Indexer represents the Indexer configurations.

func (*Indexer) Bind added in v0.0.5

func (im *Indexer) Bind() *Indexer

Bind binds the actual data from the Indexer receiver field.

type IngressFilter added in v1.0.0

type IngressFilter struct {
	Client        *GRPCClient `json:"client,omitempty"         yaml:"client"`
	Vectorizer    string      `json:"vectorizer,omitempty"     yaml:"vectorizer"`
	SearchFilters []string    `json:"search_filters,omitempty" yaml:"search_filters"`
	InsertFilters []string    `json:"insert_filters,omitempty" yaml:"insert_filters"`
	UpdateFilters []string    `json:"update_filters,omitempty" yaml:"update_filters"`
	UpsertFilters []string    `json:"upsert_filters,omitempty" yaml:"upsert_filters"`
}

IngressFilter represents the IngressFilter configuration.

func (*IngressFilter) Bind added in v1.0.0

func (i *IngressFilter) Bind() *IngressFilter

Bind binds the actual data from the IngressFilter receiver field.

type InsertConfig added in v1.7.11

type InsertConfig struct {
	SkipStrictExistCheck bool   `json:"skip_strict_exist_check,omitempty"`
	Timestamp            string `json:"timestamp,omitempty"`
}

InsertConfig defines the desired state of insert config.

func (*InsertConfig) Bind added in v1.7.11

func (cfg *InsertConfig) Bind() *InsertConfig

type KVSDB added in v1.2.1

type KVSDB struct {
	// Concurrency represents kvsdb range loop processing concurrency
	Concurrency int `json:"concurrency,omitempty" yaml:"concurrency,omitempty"`
}

KVSDB represent the ngt vector bidirectional kv store configuration.

type LB added in v1.0.0

type LB struct {
	// AgentPort represent agent port number
	AgentPort int `json:"agent_port" yaml:"agent_port"`

	// AgentName represent agents meta_name for service discovery
	AgentName string `json:"agent_name" yaml:"agent_name"`

	// AgentNamespace represent agent namespace location
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`

	// AgentDNS represent agents dns A record for service discovery
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`

	// NodeName represents node name
	NodeName string `json:"node_name" yaml:"node_name"`

	// IndexReplica represents index replication count
	IndexReplica int `json:"index_replica" yaml:"index_replica"`

	// ReadReplicaReplicas represents replica count of read replica Deployment
	ReadReplicaReplicas uint64 `json:"read_replica_replicas" yaml:"read_replica_replicas"`

	// ReadReplicaClient represents read replica client configuration
	ReadReplicaClient ReadReplicaClient `json:"read_replica_client" yaml:"read_replica_client"`

	// Discoverer represent agent discoverer service configuration
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`

	// MultiOperationConcurrency
	MultiOperationConcurrency int `json:"multi_operation_concurrency" yaml:"multi_operation_concurrency"`
}

LB represents the configuration for load balancer.

func (*LB) Bind added in v1.0.0

func (g *LB) Bind() *LB

Bind binds the actual data from the LB receiver fields.

type Logging added in v0.0.2

type Logging struct {
	Logger string `json:"logger" yaml:"logger"`
	Level  string `json:"level"  yaml:"level"`
	Format string `json:"format" yaml:"format"`
}

Logging represents Logging configuration.

func (*Logging) Bind added in v0.0.2

func (l *Logging) Bind() *Logging

Bind returns Logging object whose every value is field value or environment value.

type Meta

type Meta struct {
	Host                      string      `json:"host"                         yaml:"host"`
	Port                      uint16      `json:"port"                         yaml:"port"`
	Client                    *GRPCClient `json:"client"                       yaml:"client"`
	EnableCache               bool        `json:"enable_cache"                 yaml:"enable_cache"`
	CacheExpiration           string      `json:"cache_expiration"             yaml:"cache_expiration"`
	ExpiredCacheCheckDuration string      `json:"expired_cache_check_duration" yaml:"expired_cache_check_duration"`
}

Meta represents the configurations for vald meta.

func (*Meta) Bind

func (m *Meta) Bind() *Meta

Bind binds the actual data from Meta receiver fields.

type Metrics added in v0.0.19

type Metrics struct {
	EnableVersionInfo bool     `json:"enable_version_info" yaml:"enable_version_info"`
	VersionInfoLabels []string `json:"version_info_labels" yaml:"version_info_labels"`
	EnableMemory      bool     `json:"enable_memory"       yaml:"enable_memory"`
	EnableGoroutine   bool     `json:"enable_goroutine"    yaml:"enable_goroutine"`
	EnableCGO         bool     `json:"enable_cgo"          yaml:"enable_cgo"`
}

Metrics represents the configuration for the metrics.

type Mirror added in v1.7.11

type Mirror struct {
	// Net represents the network configuration tcp, udp, unix domain socket.
	Net *Net `json:"net,omitempty" yaml:"net"`

	// GRPCClient represents the configurations for gRPC client.
	Client *GRPCClient `json:"client" yaml:"client"`

	// SelfMirrorAddr represents the address for the self Mirror Gateway.
	SelfMirrorAddr string `json:"self_mirror_addr" yaml:"self_mirror_addr"`

	// GatewayAddr represents the address for the Vald Gateway (e.g lb-gateway).
	GatewayAddr string `json:"gateway_addr" yaml:"gateway_addr"`

	// PodName represents the mirror gateway pod name.
	PodName string `json:"pod_name" yaml:"pod_name"`

	// RegisterDuration represents the duration to register Mirror Gateway.
	RegisterDuration string `json:"register_duration" yaml:"register_duration"`

	// Namespace represents the target namespace to discover ValdMirrorTarget resource.
	Namespace string `json:"namespace" yaml:"namespace"`

	// DiscoveryDuration represents the duration to discover.
	DiscoveryDuration string `json:"discovery_duration" yaml:"discovery_duration"`

	// Colocation represents the colocation name.
	Colocation string `json:"colocation" yaml:"colocation"`

	// Group represents the group name of the Mirror Gateways.
	// It is used to discover ValdMirrorTarget resources with the same group name.
	Group string `json:"group" yaml:"group"`
}

Mirror represents the Mirror Gateway configuration.

func (*Mirror) Bind added in v1.7.11

func (m *Mirror) Bind() *Mirror

Bind binds the actual data from the Mirror receiver fields.

type MySQL

type MySQL struct {
	DB                   string `json:"db"                      yaml:"db"`
	Network              string `json:"network"                 yaml:"network"`
	SocketPath           string `json:"socket_path"             yaml:"socket_path"`
	Host                 string `json:"host"                    yaml:"host"`
	Port                 uint16 `json:"port"                    yaml:"port"`
	User                 string `json:"user"                    yaml:"user"`
	Pass                 string `json:"pass"                    yaml:"pass"`
	Name                 string `json:"name"                    yaml:"name"`
	Charset              string `json:"charset"                 yaml:"charset"`
	Timezone             string `json:"timezone"                yaml:"timezone"`
	InitialPingTimeLimit string `json:"initial_ping_time_limit" yaml:"initial_ping_time_limit"`
	InitialPingDuration  string `json:"initial_ping_duration"   yaml:"initial_ping_duration"`
	ConnMaxLifeTime      string `json:"conn_max_life_time"      yaml:"conn_max_life_time"`
	MaxOpenConns         int    `json:"max_open_conns"          yaml:"max_open_conns"`
	MaxIdleConns         int    `json:"max_idle_conns"          yaml:"max_idle_conns"`
	TLS                  *TLS   `json:"tls"                     yaml:"tls"`
	Net                  *Net   `json:"net"                     yaml:"net"`
}

MySQL represent the mysql configuration.

func (*MySQL) Bind

func (m *MySQL) Bind() *MySQL

Bind returns MySQL object whose some string value is filed value or environment value.

func (*MySQL) Opts added in v0.0.51

func (m *MySQL) Opts() ([]mysql.Option, error)

Opts creates and returns the slice with the functional options for the internal mysql package. When any errors occur, Opts returns the no functional options and the errors.

type NGT

type NGT struct {
	// PodName represent the ngt pod name
	PodName string `json:"pod_name,omitempty" yaml:"pod_name"`

	// PodNamespace represent the ngt pod namespace
	PodNamespace string `json:"namespace,omitempty" yaml:"namespace"`

	// IndexPath represent the ngt index file path
	IndexPath string `json:"index_path,omitempty" yaml:"index_path"`

	// Dimension represent the ngt index dimension
	Dimension int `info:"dimension" json:"dimension,omitempty" yaml:"dimension"`

	// BulkInsertChunkSize represent the bulk insert chunk size
	BulkInsertChunkSize int `json:"bulk_insert_chunk_size,omitempty" yaml:"bulk_insert_chunk_size"`

	// DistanceType represent the ngt index distance type
	// it should be `l1`, `l2`, `angle`, `hamming`, `cosine`,`poincare`, `lorentz`, `jaccard`, `sparsejaccard`, `normalizedangle` or `normalizedcosine`. for further details about NGT libraries supported distance is https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference and vald agent's supported NGT distance type is https://pkg.go.dev/github.com/vdaas/vald/internal/core/algorithm/ngt#pkg-constants
	DistanceType string `info:"distance_type" json:"distance_type,omitempty" yaml:"distance_type"`

	// ObjectType represent the ngt index object type float or int
	ObjectType string `info:"object_type" json:"object_type,omitempty" yaml:"object_type"`

	// CreationEdgeSize represent the index edge count
	CreationEdgeSize int `json:"creation_edge_size,omitempty" yaml:"creation_edge_size"`

	// SearchEdgeSize represent the search edge size
	SearchEdgeSize int `json:"search_edge_size,omitempty" yaml:"search_edge_size"`

	// AutoIndexDurationLimit represents auto indexing duration limit
	AutoIndexDurationLimit string `json:"auto_index_duration_limit,omitempty" yaml:"auto_index_duration_limit"`

	// AutoIndexCheckDuration represent checking loop duration about auto indexing execution
	AutoIndexCheckDuration string `json:"auto_index_check_duration,omitempty" yaml:"auto_index_check_duration"`

	// AutoSaveIndexDuration represent checking loop duration about auto save index execution
	AutoSaveIndexDuration string `json:"auto_save_index_duration,omitempty" yaml:"auto_save_index_duration"`

	// AutoIndexLength represent auto index length limit
	AutoIndexLength int `json:"auto_index_length,omitempty" yaml:"auto_index_length"`

	// InitialDelayMaxDuration represent maximum duration for initial delay
	InitialDelayMaxDuration string `json:"initial_delay_max_duration,omitempty" yaml:"initial_delay_max_duration"`

	// EnableInMemoryMode enables on memory ngt indexing mode
	EnableInMemoryMode bool `json:"enable_in_memory_mode,omitempty" yaml:"enable_in_memory_mode"`

	// DefaultPoolSize represent default create index batch pool size
	DefaultPoolSize uint32 `json:"default_pool_size,omitempty" yaml:"default_pool_size"`

	// DefaultRadius represent default radius used for search
	DefaultRadius float32 `json:"default_radius,omitempty" yaml:"default_radius"`

	// DefaultEpsilon represent default epsilon used for search
	DefaultEpsilon float32 `json:"default_epsilon,omitempty" yaml:"default_epsilon"`

	// MinLoadIndexTimeout represents minimum duration of load index timeout
	MinLoadIndexTimeout string `json:"min_load_index_timeout,omitempty" yaml:"min_load_index_timeout"`

	// MaxLoadIndexTimeout represents maximum duration of load index timeout
	MaxLoadIndexTimeout string `json:"max_load_index_timeout,omitempty" yaml:"max_load_index_timeout"`

	// LoadIndexTimeoutFactor represents a factor of load index timeout
	LoadIndexTimeoutFactor string `json:"load_index_timeout_factor,omitempty" yaml:"load_index_timeout_factor"`

	// EnableProactiveGC enables more proactive GC call for reducing heap memory allocation
	EnableProactiveGC bool `json:"enable_proactive_gc,omitempty" yaml:"enable_proactive_gc"`

	// EnableCopyOnWrite enables copy on write saving
	EnableCopyOnWrite bool `json:"enable_copy_on_write,omitempty" yaml:"enable_copy_on_write"`

	// VQueue represent the ngt vector queue buffer size
	VQueue *VQueue `json:"vqueue,omitempty" yaml:"vqueue"`

	// KVSDB represent the ngt bidirectional kv store configuration
	KVSDB *KVSDB `json:"kvsdb,omitempty" yaml:"kvsdb"`

	// BrokenIndexHistoryLimit represents the maximum number of broken index generations that will be backed up
	BrokenIndexHistoryLimit int `json:"broken_index_history_limit,omitempty" yaml:"broken_index_history_limit"`

	// ErrorBufferLimit represents the maximum number of core ngt error buffer pool size limit
	ErrorBufferLimit uint64 `json:"error_buffer_limit,omitempty" yaml:"error_buffer_limit"`

	// IsReadReplica represents whether the ngt is read replica or not
	IsReadReplica bool `json:"is_readreplica" yaml:"is_readreplica"`

	// EnableExportIndexInfoToK8s represents whether the ngt index info is exported to k8s or not
	EnableExportIndexInfoToK8s bool `json:"enable_export_index_info_to_k8s" yaml:"enable_export_index_info_to_k8s"`

	// ExportIndexInfoDuration represents the duration of exporting index info to k8s
	ExportIndexInfoDuration string `json:"export_index_info_duration,omitempty" yaml:"export_index_info_duration"`

	// EnableStatistics represents whether the ngt index statistics load or not
	EnableStatistics bool `json:"enable_statistics" yaml:"enable_statistics"`
}

NGT represent the ngt core configuration for server.

func (*NGT) Bind

func (n *NGT) Bind() *NGT

Bind returns NGT object whose some string value is filed value or environment value.

type Net added in v1.0.3

type Net struct {
	DNS          *DNS          `json:"dns,omitempty"           yaml:"dns"`
	Dialer       *Dialer       `json:"dialer,omitempty"        yaml:"dialer"`
	SocketOption *SocketOption `json:"socket_option,omitempty" yaml:"socket_option"`
	TLS          *TLS          `json:"tls,omitempty"           yaml:"tls"`
}

Net represents the network configuration tcp, udp, unix domain socket.

func (*Net) Bind added in v1.0.3

func (t *Net) Bind() *Net

Bind binds the actual data from the Net fields.

func (*Net) Opts added in v1.0.3

func (t *Net) Opts() ([]net.DialerOption, error)

Opts creates the slice with the functional options for the net.Dialer options.

type OTLP added in v1.7.0

type OTLP struct {
	CollectorEndpoint       string         `json:"collector_endpoint"          yaml:"collector_endpoint"`
	Attribute               *OTLPAttribute `json:"attribute"                   yaml:"attribute"`
	TraceBatchTimeout       string         `json:"trace_batch_timeout"         yaml:"trace_batch_timeout"`
	TraceExportTimeout      string         `json:"trace_export_timeout"        yaml:"trace_export_timeout"`
	TraceMaxExportBatchSize int            `json:"trace_max_export_batch_size" yaml:"trace_max_export_batch_size"`
	TraceMaxQueueSize       int            `json:"trace_max_queue_size"        yaml:"trace_max_queue_size"`
	MetricsExportInterval   string         `json:"metrics_export_interval"     yaml:"metrics_export_interval"`
	MetricsExportTimeout    string         `json:"metrics_export_timeout"      yaml:"metrics_export_timeout"`
}

type OTLPAttribute added in v1.7.0

type OTLPAttribute struct {
	Namespace   string `json:"namespace"    yaml:"namespace"`
	PodName     string `json:"pod_name"     yaml:"pod_name"`
	NodeName    string `json:"node_name"    yaml:"node_name"`
	ServiceName string `json:"service_name" yaml:"service_name"`
}

func (*OTLPAttribute) Bind added in v1.7.0

func (o *OTLPAttribute) Bind() *OTLPAttribute

Bind binds the actual data from the OTLPAttribute receiver fields.

type ObjectConfig added in v1.7.11

type ObjectConfig struct {
	FilterConfig FilterConfig `json:"filter_config,omitempty" yaml:"filter_config"`
}

ObjectConfig defines the desired state of object config.

func (*ObjectConfig) Bind added in v1.7.11

func (cfg *ObjectConfig) Bind() *ObjectConfig

type Observability added in v0.0.19

type Observability struct {
	Enabled bool     `json:"enabled" yaml:"enabled"`
	OTLP    *OTLP    `json:"otlp"    yaml:"otlp"`
	Metrics *Metrics `json:"metrics" yaml:"metrics"`
	Trace   *Trace   `json:"trace"   yaml:"trace"`
}

Observability represents the configuration for the observability.

func (*Observability) Bind added in v0.0.19

func (o *Observability) Bind() *Observability

Bind binds the actual data from the Observability receiver fields.

type OperatorJobConfig added in v1.7.13

type OperatorJobConfig struct {
	Image *BenchmarkJobImageInfo `info:"image" json:"image,omitempty" yaml:"image"`
	*BenchmarkJob
}

OperatorJobConfig represents the general job configuration for operator.

type PoolConfig

type PoolConfig struct {
	DataCenter               string `json:"data_center"                 yaml:"data_center"`
	DCAwareRouting           bool   `json:"dc_aware_routing"            yaml:"dc_aware_routing"`
	NonLocalReplicasFallback bool   `json:"non_local_replicas_fallback" yaml:"non_local_replicas_fallback"`
	ShuffleReplicas          bool   `json:"shuffle_replicas"            yaml:"shuffle_replicas"`
	TokenAwareHostPolicy     bool   `json:"token_aware_host_policy"     yaml:"token_aware_host_policy"`
}

PoolConfig represents the configuration for the pool config.

type ReadReplica added in v1.7.10

type ReadReplica struct {
	Enabled bool   `json:"enabled,omitempty" yaml:"enabled"`
	IDKey   string `json:"id_key,omitempty"  yaml:"id_key"`
}

func (*ReadReplica) Bind added in v1.7.10

func (r *ReadReplica) Bind() *ReadReplica

func (*ReadReplica) GetEnabled added in v1.7.10

func (r *ReadReplica) GetEnabled() bool

func (*ReadReplica) GetIDKey added in v1.7.10

func (r *ReadReplica) GetIDKey() string

type ReadReplicaClient added in v1.7.11

type ReadReplicaClient struct {
	Duration           string      `json:"duration"             yaml:"duration"`
	Client             *GRPCClient `json:"client"               yaml:"client"`
	AgentClientOptions *GRPCClient `json:"agent_client_options" yaml:"agent_client_options"`
}

ReadReplicaClient represents a configuration of grpc client for read replica.

func (*ReadReplicaClient) Bind added in v1.7.11

Bind binds the actual data from the ReadReplicaClient receiver field.

type ReadReplicaRotate added in v1.7.9

type ReadReplicaRotate struct {
	AgentNamespace      string `json:"agent_namespace"        yaml:"agent_namespace"`
	ReadReplicaLabelKey string `json:"read_replica_label_key" yaml:"read_replica_label_key"`
	TargetReadReplicaID string `json:"target_read_replica_id" yaml:"target_read_replica_id"`
	VolumeName          string `json:"volume_name"            yaml:"volume_name"`
}

func (*ReadReplicaRotate) Bind added in v1.7.9

type ReconnectionPolicy

type ReconnectionPolicy struct {
	MaxRetries      int    `json:"max_retries"      yaml:"max_retries"`
	InitialInterval string `json:"initial_interval" yaml:"initial_interval"`
}

ReconnectionPolicy represents the configuration for the reconnection policy.

type Redis

type Redis struct {
	Addrs                []string `json:"addrs,omitempty"                   yaml:"addrs"`
	DB                   int      `json:"db,omitempty"                      yaml:"db"`
	DialTimeout          string   `json:"dial_timeout,omitempty"            yaml:"dial_timeout"`
	IdleCheckFrequency   string   `json:"idle_check_frequency,omitempty"    yaml:"idle_check_frequency"`
	IdleTimeout          string   `json:"idle_timeout,omitempty"            yaml:"idle_timeout"`
	InitialPingDuration  string   `json:"initial_ping_duration,omitempty"   yaml:"initial_ping_duration"`
	InitialPingTimeLimit string   `json:"initial_ping_time_limit,omitempty" yaml:"initial_ping_time_limit"`
	KVPrefix             string   `json:"kv_prefix,omitempty"               yaml:"kv_prefix"`
	KeyPref              string   `json:"key_pref,omitempty"                yaml:"key_pref"`
	MaxConnAge           string   `json:"max_conn_age,omitempty"            yaml:"max_conn_age"`
	MaxRedirects         int      `json:"max_redirects,omitempty"           yaml:"max_redirects"`
	MaxRetries           int      `json:"max_retries,omitempty"             yaml:"max_retries"`
	MaxRetryBackoff      string   `json:"max_retry_backoff,omitempty"       yaml:"max_retry_backoff"`
	MinIdleConns         int      `json:"min_idle_conns,omitempty"          yaml:"min_idle_conns"`
	MinRetryBackoff      string   `json:"min_retry_backoff,omitempty"       yaml:"min_retry_backoff"`
	Network              string   `json:"network,omitempty"                 yaml:"network"`
	Password             string   `json:"password,omitempty"                yaml:"password"`
	PoolSize             int      `json:"pool_size,omitempty"               yaml:"pool_size"`
	PoolTimeout          string   `json:"pool_timeout,omitempty"            yaml:"pool_timeout"`
	PrefixDelimiter      string   `json:"prefix_delimiter,omitempty"        yaml:"prefix_delimiter"`
	ReadOnly             bool     `json:"read_only,omitempty"               yaml:"read_only"`
	ReadTimeout          string   `json:"read_timeout,omitempty"            yaml:"read_timeout"`
	RouteByLatency       bool     `json:"route_by_latency,omitempty"        yaml:"route_by_latency"`
	RouteRandomly        bool     `json:"route_randomly,omitempty"          yaml:"route_randomly"`
	SentinelPassword     string   `json:"sentinel_password,omitempty"       yaml:"sentinel_password"`
	SentinelMasterName   string   `json:"sentinel_main_name,omitempty"      yaml:"sentinel_main_name"`
	Net                  *Net     `json:"tcp,omitempty"                     yaml:"net"`
	TLS                  *TLS     `json:"tls,omitempty"                     yaml:"tls"`
	Username             string   `json:"username,omitempty"                yaml:"username"`
	VKPrefix             string   `json:"vk_prefix,omitempty"               yaml:"vk_prefix"`
	WriteTimeout         string   `json:"write_timeout,omitempty"           yaml:"write_timeout"`
}

Redis represents the configuration for redis cluster.

func (*Redis) Bind

func (r *Redis) Bind() *Redis

Bind binds the actual data from the Redis receiver fields.

func (*Redis) Opts added in v0.0.51

func (r *Redis) Opts() (opts []redis.Option, err error)

Opts creates the functional option list from the Redis. If the error occurs, it will return no functional options and the error.

type RemoveConfig added in v1.7.11

type RemoveConfig struct {
	SkipStrictExistCheck bool   `json:"skip_strict_exist_check,omitempty"`
	Timestamp            string `json:"timestamp,omitempty"`
}

RemoveConfig defines the desired state of remove config.

func (*RemoveConfig) Bind added in v1.7.11

func (cfg *RemoveConfig) Bind() *RemoveConfig

type RetryPolicy

type RetryPolicy struct {
	NumRetries  int    `json:"num_retries"  yaml:"num_retries"`
	MinDuration string `json:"min_duration" yaml:"min_duration"`
	MaxDuration string `json:"max_duration" yaml:"max_duration"`
}

RetryPolicy represents the configuration for the retry policy.

type RoundTripper

type RoundTripper struct {
	TLSHandshakeTimeout   string `json:"tls_handshake_timeout"    yaml:"tls_handshake_timeout"`
	MaxIdleConns          int    `json:"max_idle_conns"           yaml:"max_idle_conns"`
	MaxIdleConnsPerHost   int    `json:"max_idle_conns_per_host"  yaml:"max_idle_conns_per_host"`
	MaxConnsPerHost       int    `json:"max_conns_per_host"       yaml:"max_conns_per_host"`
	IdleConnTimeout       string `json:"idle_conn_timeout"        yaml:"idle_conn_timeout"`
	ResponseHeaderTimeout string `json:"response_header_timeout"  yaml:"response_header_timeout"`
	ExpectContinueTimeout string `json:"expect_continue_timeout"  yaml:"expect_continue_timeout"`
	MaxResponseHeaderSize int64  `json:"max_response_header_size" yaml:"max_response_header_size"`
	WriteBufferSize       int64  `json:"write_buffer_size"        yaml:"write_buffer_size"`
	ReadBufferSize        int64  `json:"read_buffer_size"         yaml:"read_buffer_size"`
	ForceAttemptHTTP2     bool   `json:"force_attempt_http_2"     yaml:"force_attempt_http_2"`
}

RoundTripper represents the round trip configuration for transport.

func (*RoundTripper) Bind

func (r *RoundTripper) Bind() *RoundTripper

Bind binds the actual data from the RoundTripper receiver fields.

type S3Config added in v0.0.38

type S3Config struct {
	Endpoint        string `json:"endpoint"          yaml:"endpoint"`
	Region          string `json:"region"            yaml:"region"`
	AccessKey       string `json:"access_key"        yaml:"access_key"`
	SecretAccessKey string `json:"secret_access_key" yaml:"secret_access_key"`
	Token           string `json:"token"             yaml:"token"`

	MaxRetries                 int  `json:"max_retries"                   yaml:"max_retries"`
	ForcePathStyle             bool `json:"force_path_style"              yaml:"force_path_style"`
	UseAccelerate              bool `json:"use_accelerate"                yaml:"use_accelerate"`
	UseARNRegion               bool `json:"use_arn_region"                yaml:"use_arn_region"`
	UseDualStack               bool `json:"use_dual_stack"                yaml:"use_dual_stack"`
	EnableSSL                  bool `json:"enable_ssl"                    yaml:"enable_ssl"`
	EnableParamValidation      bool `json:"enable_param_validation"       yaml:"enable_param_validation"`
	Enable100Continue          bool `json:"enable_100_continue"           yaml:"enable_100_continue"`
	EnableContentMD5Validation bool `json:"enable_content_md5_validation" yaml:"enable_content_md5_validation"`
	EnableEndpointDiscovery    bool `json:"enable_endpoint_discovery"     yaml:"enable_endpoint_discovery"`
	EnableEndpointHostPrefix   bool `json:"enable_endpoint_host_prefix"   yaml:"enable_endpoint_host_prefix"`

	MaxPartSize  string `json:"max_part_size"  yaml:"max_part_size"`
	MaxChunkSize string `json:"max_chunk_size" yaml:"max_chunk_size"`
}

S3Config represents S3Config configuration.

func (*S3Config) Bind added in v0.0.38

func (s *S3Config) Bind() *S3Config

Bind binds the actual data from the S3Config receiver field.

type SearchConfig added in v1.7.11

type SearchConfig struct {
	Epsilon              float32 `json:"epsilon,omitempty"`
	Radius               float32 `json:"radius,omitempty"`
	Num                  int32   `json:"num,omitempty"`
	MinNum               int32   `json:"min_num,omitempty"`
	Timeout              string  `json:"timeout,omitempty"`
	EnableLinearSearch   bool    `json:"enable_linear_search,omitempty"`
	AggregationAlgorithm string  `json:"aggregation_algorithm,omitempty"`
}

SearchConfig defines the desired state of search config.

func (*SearchConfig) Bind added in v1.7.11

func (cfg *SearchConfig) Bind() *SearchConfig

type Selector added in v1.3.0

type Selector struct {
	Labels map[string]string `json:"labels,omitempty" yaml:"labels"`
	Fields map[string]string `json:"fields,omitempty" yaml:"fields"`
}

func (*Selector) Bind added in v1.3.0

func (s *Selector) Bind() *Selector

Bind binds the actual data from the Selector receiver field.

func (*Selector) GetFields added in v1.6.0

func (s *Selector) GetFields() map[string]string

func (*Selector) GetLabels added in v1.6.0

func (s *Selector) GetLabels() map[string]string

type Selectors added in v1.3.0

type Selectors struct {
	Pod         *Selector `json:"pod,omitempty"          yaml:"pod"`
	Node        *Selector `json:"node,omitempty"         yaml:"node"`
	NodeMetrics *Selector `json:"node_metrics,omitempty" yaml:"node_metrics"`
	PodMetrics  *Selector `json:"pod_metrics,omitempty"  yaml:"pod_metrics"`
	Service     *Selector `json:"service,omitempty"      yaml:"service"`
}

func (*Selectors) Bind added in v1.3.0

func (s *Selectors) Bind() *Selectors

Bind binds the actual data from the Selectors receiver field.

func (*Selectors) GetNodeFields added in v1.6.0

func (s *Selectors) GetNodeFields() map[string]string

func (*Selectors) GetNodeLabels added in v1.6.0

func (s *Selectors) GetNodeLabels() map[string]string

func (*Selectors) GetNodeMetricsFields added in v1.6.0

func (s *Selectors) GetNodeMetricsFields() map[string]string

func (*Selectors) GetNodeMetricsLabels added in v1.6.0

func (s *Selectors) GetNodeMetricsLabels() map[string]string

func (*Selectors) GetPodFields added in v1.6.0

func (s *Selectors) GetPodFields() map[string]string

func (*Selectors) GetPodLabels added in v1.6.0

func (s *Selectors) GetPodLabels() map[string]string

func (*Selectors) GetPodMetricsFields added in v1.6.0

func (s *Selectors) GetPodMetricsFields() map[string]string

func (*Selectors) GetPodMetricsLabels added in v1.6.0

func (s *Selectors) GetPodMetricsLabels() map[string]string

func (*Selectors) GetServiceFields added in v1.7.10

func (s *Selectors) GetServiceFields() map[string]string

func (*Selectors) GetServiceLabels added in v1.7.10

func (s *Selectors) GetServiceLabels() map[string]string

type Server

type Server struct {
	GRPC          *GRPC         `json:"grpc,omitempty"            yaml:"grpc"`
	SocketOption  *SocketOption `json:"socket_option,omitempty"   yaml:"socket_option"`
	HTTP          *HTTP         `json:"http,omitempty"            yaml:"http"`
	Name          string        `json:"name,omitempty"            yaml:"name"`
	Network       string        `json:"network,omitempty"         yaml:"network"`
	Host          string        `json:"host,omitempty"            yaml:"host"`
	SocketPath    string        `json:"socket_path,omitempty"     yaml:"socket_path"`
	Mode          string        `json:"mode,omitempty"            yaml:"mode"` // gRPC, REST, GraphQL
	ProbeWaitTime string        `json:"probe_wait_time,omitempty" yaml:"probe_wait_time"`
	Restart       bool          `json:"restart,omitempty"         yaml:"restart"`
	Port          uint16        `json:"port,omitempty"            yaml:"port"`
}

Server represents the server configuration.

func (*Server) Bind

func (s *Server) Bind() *Server

Bind binds the actual value from the Server struct field.

func (*Server) Opts

func (s *Server) Opts() []server.Option

Opts sets the functional options into the []server.Option slice using the Server struct fields' value.

type Servers

type Servers struct {
	// TLS represent server tls configuration.
	TLS *TLS `json:"tls" yaml:"tls"`

	// FullShutdownDuration represent summary duration of shutdown time
	FullShutdownDuration string `json:"full_shutdown_duration" yaml:"full_shutdown_duration"`

	// Server represent server configuration.
	Servers []*Server `json:"servers" yaml:"servers"`

	// HealthCheckServers represent health check server configuration
	HealthCheckServers []*Server `json:"health_check_servers" yaml:"health_check_servers"`

	// MetricsServers represent metrics exporter server such as golang's pprof server
	MetricsServers []*Server `json:"metrics_servers" yaml:"metrics_servers"`

	// StartUpStrategy represent starting order of server name
	StartUpStrategy []string `json:"startup_strategy" yaml:"startup_strategy"`

	// ShutdownStrategy represent shutdown order of server name
	ShutdownStrategy []string `json:"shutdown_strategy" yaml:"shutdown_strategy"`
}

Servers represents the configuration of server list.

func (*Servers) Bind

func (s *Servers) Bind() *Servers

Bind binds the actual value from the Servers struct field.

func (*Servers) GetGRPCStreamConcurrency added in v0.0.5

func (s *Servers) GetGRPCStreamConcurrency() (c int)

GetGRPCStreamConcurrency returns the gRPC stream concurrency.

type SocketOption added in v1.0.3

type SocketOption struct {
	ReusePort                bool `json:"reuse_port,omitempty"                  yaml:"reuse_port"`
	ReuseAddr                bool `json:"reuse_addr,omitempty"                  yaml:"reuse_addr"`
	TCPFastOpen              bool `json:"tcp_fast_open,omitempty"               yaml:"tcp_fast_open"`
	TCPNoDelay               bool `json:"tcp_no_delay,omitempty"                yaml:"tcp_no_delay"`
	TCPCork                  bool `json:"tcp_cork,omitempty"                    yaml:"tcp_cork"`
	TCPQuickAck              bool `json:"tcp_quick_ack,omitempty"               yaml:"tcp_quick_ack"`
	TCPDeferAccept           bool `json:"tcp_defer_accept,omitempty"            yaml:"tcp_defer_accept"`
	IPTransparent            bool `json:"ip_transparent,omitempty"              yaml:"ip_transparent"`
	IPRecoverDestinationAddr bool `json:"ip_recover_destination_addr,omitempty" yaml:"ip_recover_destination_addr"`
}

SocketOption represents the socket configurations.

func (*SocketOption) Bind added in v1.0.3

func (s *SocketOption) Bind() *SocketOption

Bind binds the actual data from the SocketOption fields.

func (*SocketOption) ToSocketFlag added in v1.0.3

func (s *SocketOption) ToSocketFlag() control.SocketFlag

ToSocketFlag returns the control.SocketFlag defined as uint along with the SocketOption's fields.

type TLS

type TLS struct {
	// Enable represent the server enable TLS or not.
	Enabled bool `json:"enabled" yaml:"enabled"`

	// Cert represent the certificate environment variable key used to start server.
	Cert string `json:"cert" yaml:"cert"`

	// Key represent the private key environment variable key used to start server.
	Key string `json:"key" yaml:"key"`

	// CA represent the CA certificate environment variable key used to start server.
	CA string `json:"ca" yaml:"ca"`

	// InsecureSkipVerify represent enable/disable skip SSL certificate verification
	InsecureSkipVerify bool `json:"insecure_skip_verify" yaml:"insecure_skip_verify"`
}

TLS represent the TLS configuration for server.

func (*TLS) Bind

func (t *TLS) Bind() *TLS

Bind returns TLS object whose every value except Enabled is field value of environment value.

func (*TLS) Opts

func (t *TLS) Opts() []tls.Option

Opts returns []tls.Option object whose every value is field value.

type Trace added in v0.0.19

type Trace struct {
	Enabled bool `json:"enabled" yaml:"enabled"`
}

Trace represents the configuration for the trace.

type Transport

type Transport struct {
	RoundTripper *RoundTripper `json:"round_tripper" yaml:"round_tripper"`
	Backoff      *Backoff      `json:"backoff"       yaml:"backoff"`
}

TCP represents the TCP configuration for server.

func (*Transport) Bind

func (t *Transport) Bind() *Transport

Bind binds the actual data from the Transport receiver fields.

type UpdateConfig added in v1.7.11

type UpdateConfig struct {
	SkipStrictExistCheck  bool   `json:"skip_strict_exist_check,omitempty"`
	Timestamp             string `json:"timestamp,omitempty"`
	DisableBalancedUpdate bool   `json:"disable_balanced_update,omitempty"`
}

UpdateConfig defines the desired state of update config.

func (*UpdateConfig) Bind added in v1.7.11

func (cfg *UpdateConfig) Bind() *UpdateConfig

type UpsertConfig added in v1.7.11

type UpsertConfig struct {
	SkipStrictExistCheck  bool   `json:"skip_strict_exist_check,omitempty"`
	Timestamp             string `json:"timestamp,omitempty"`
	DisableBalancedUpdate bool   `json:"disable_balanced_update,omitempty"`
}

UpsertConfig defines the desired state of upsert config.

func (*UpsertConfig) Bind added in v1.7.11

func (cfg *UpsertConfig) Bind() *UpsertConfig

type VQueue added in v1.0.4

type VQueue struct {
	// InsertBufferPoolSize represents insert time ordered slice buffer size
	InsertBufferPoolSize int `json:"insert_buffer_pool_size,omitempty" yaml:"insert_buffer_pool_size"`

	// DeleteBufferPoolSize represents delete time ordered slice buffer size
	DeleteBufferPoolSize int `json:"delete_buffer_pool_size,omitempty" yaml:"delete_buffer_pool_size"`
}

VQueue represent the ngt vector queue buffer size.

Jump to

Keyboard shortcuts

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