Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Clients ¶
type Clients struct {
Clientset *kubernetes.Clientset
CtrlClient ctrlclient.Client
WebClient *http.Client
}
Clients holds the various clients used to talk to things
type Config ¶
type Config struct {
OperatorPromURL string `envconfig:"OPERATOR_PROM_URL" default:""`
K8sPromURL string `envconfig:"K8S_PROM_URL" default:""`
Kubeconfig string `envconfig:"KUBECONFIG" default:""`
K8sAPIHost string `envconfig:"KUBERNETES_SERVICE_HOST" default:""`
K8sAPIPort string `envconfig:"KUBERNETES_SERVICE_PORT" default:""`
ESUrl string `envconfig:"ELASTICSEARCH_URL" default:""`
ESUser string `envconfig:"ELASTICSEARCH_USER" default:"elastic"`
ESPassword string `envconfig:"ELASTICSEARCH_TOKEN" default:""`
ESAPIKey string `envconfig:"ELASTICSEARCH_KEY" default:""`
TestTimeout int `default:"600"`
ResultsFile string `envconfig:"RESULTS_FILE" default:"/results/results.json"`
CalicoVersion string `default:""`
ProxyAddress string `envconfig:"HTTP_PROXY" default:""`
TestConfigFile string `envconfig:"TESTCONFIGFILE" required:"true"`
LogLevel string `envconfig:"LOG_LEVEL" default:"info"`
WebServerImage string `envconfig:"WEBSERVER_IMAGE" default:"quay.io/tigeradev/tiger-bench-nginx:v0.6.0"`
PerfImage string `envconfig:"PERF_IMAGE" default:"quay.io/tigeradev/tiger-bench-perf:v0.6.0"`
TTFRImage string `envconfig:"TTFR_IMAGE" default:"quay.io/tigeradev/tiger-bench-ttfr:v0.6.0"`
TestConfigs testConfigs
}
Config represents the global configuration for the benchmark.
type DNSConfig ¶ added in v0.2.0
type DNSConfig struct {
NumDomains int `validate:"gte=0"`
Mode DNSPerfMode `validate:"omitempty,oneof=Inline NoDelay DelayDeniedPacket DelayDNSResponse"`
RunStress bool `default:"true" validate:"omitempty"`
TestDNSPolicy bool `default:"true" validate:"omitempty"`
NumTargetPods int `default:"100" validate:"gte=1"`
TargetType string `default:"pod" validate:"omitempty,oneof=pod service"`
}
DNSConfig contains the configuration specific to DNSPerf tests.
type DNSPerfMode ¶
type DNSPerfMode string
DNSPerfMode represents the mode to use for DNSPerf.
const ( DNSPerfModeInline DNSPerfMode = "Inline" DNSPerfModeNoDelay DNSPerfMode = "NoDelay" DNSPerfModeDelayDeniedPacket DNSPerfMode = "DelayDeniedPacket" DNSPerfModeDelayDNSResponse DNSPerfMode = "DelayDNSResponse" DNSPerfModeUnset DNSPerfMode = "" )
DNSPerfMode possible values.
type PerfConfig ¶ added in v0.2.0
type PerfConfig struct {
Direct bool // Whether to do a direct pod-pod test
Service bool // Whether to do a pod-service-pod test
External bool // Whether to test from this container to the external IP for an external-service-pod test
ControlPort int // The port to use for the control connection in tests. Used by qperf tests.
TestPort int // The port to use for the test connection in tests. Used by qperf and iperf tests
ExternalIPOrFQDN string // The external IP or DNS name to connect to for an external-service-pod test
}
PerfConfig details which tests to run in thruput-latency and iperf tests.
type TTFRConfig ¶ added in v0.3.0
TTFRConfig contains the configuration specific to TTFR tests.
type TestConfig ¶
type TestConfig struct {
TestKind TestKind `validate:"required,oneof=none dnsperf iperf thruput-latency ttfr"`
Encap Encap `validate:"omitempty,oneof=none vxlan ipip"`
Dataplane DataPlane `validate:"omitempty,oneof=iptables bpf nftables"`
NumPolicies int `validate:"gte=0"`
NumIdlePolicies int `default:"0" validate:"gte=0"`
NumServices int `validate:"gte=0"`
NumPods int `validate:"gte=0"`
HostNetwork bool
TestNamespace string `default:"testns"`
Iterations int `default:"1" validate:"gte=0"`
Duration int `default:"60"`
DNSPerf *DNSConfig `validate:"required_if=TestKind dnsperf"`
Perf *PerfConfig `validate:"required_if=TestType thruput-latency,required_if=TestType iperf"`
TTFRConfig *TTFRConfig `validate:"required_if=TestType ttfr"`
CalicoNodeCPULimit string
LeaveStandingConfig bool
}
TestConfig represents a test to run on a cluster, and the configuration for the test.
Click to show internal directories.
Click to hide internal directories.