network

package
v1.32.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2024 License: Apache-2.0 Imports: 82 Imported by: 18

Documentation

Overview

Package network are the end-to-end tests for Kubernetes networking.

Index

Constants

View Source
const (

	// AffinityTimeout is the maximum time that CheckAffinity is allowed to take; this
	// needs to be more than long enough for AffinityConfirmCount HTTP requests to
	// complete in a busy CI cluster, but shouldn't be too long since we will end up
	// waiting the entire time in the tests where affinity is not expected.
	AffinityTimeout = 2 * time.Minute

	// AffinityConfirmCount is the number of needed continuous requests to confirm that
	// affinity is enabled.
	AffinityConfirmCount = 15

	// SessionAffinityTimeout is the number of seconds to wait between requests for
	// session affinity to timeout before trying a load-balancer request again
	SessionAffinityTimeout = 125
)

Variables

This section is empty.

Functions

func CheckSCTPModuleLoadedOnNodes added in v1.19.0

func CheckSCTPModuleLoadedOnNodes(ctx context.Context, f *framework.Framework, nodes *v1.NodeList) bool

CheckSCTPModuleLoadedOnNodes checks whether any node on the list has the sctp.ko module loaded For security reasons, and also to allow clusters to use userspace SCTP implementations, we require that just creating an SCTP Pod/Service/NetworkPolicy must not do anything that would cause the sctp kernel module to be loaded.

func DescribeSvc added in v1.18.0

func DescribeSvc(ns string)

DescribeSvc logs the output of kubectl describe svc for the given namespace

func GetHTTPContent added in v1.18.0

func GetHTTPContent(host string, port int, timeout time.Duration, url string) (string, error)

GetHTTPContent returns the content of the given url by HTTP.

func GetHTTPContentFromTestContainer added in v1.19.0

func GetHTTPContentFromTestContainer(ctx context.Context, config *e2enetwork.NetworkingTestConfig, host string, port int, timeout time.Duration, dialCmd string) (string, error)

GetHTTPContentFromTestContainer returns the content of the given url by HTTP via a test container.

func StartServeHostnameService added in v1.18.0

func StartServeHostnameService(ctx context.Context, c clientset.Interface, svc *v1.Service, ns string, replicas int) ([]string, string, error)

StartServeHostnameService creates a replication controller that serves its hostname and a service on top of it.

func StopServeHostnameService added in v1.18.0

func StopServeHostnameService(ctx context.Context, clientset clientset.Interface, ns, name string) error

StopServeHostnameService stops the given service.

func TestHTTPHealthCheckNodePort added in v1.18.0

func TestHTTPHealthCheckNodePort(ctx context.Context, host string, port int, request string, timeout time.Duration, expectSucceed bool, threshold int) error

TestHTTPHealthCheckNodePort tests a HTTP connection by the given request to the given host and port.

Types

type IPerf2EnhancedCSVResults added in v1.21.0

type IPerf2EnhancedCSVResults struct {
	Intervals []*IPerfCSVResult
	Total     *IPerfCSVResult
}

IPerf2EnhancedCSVResults models the results produced by iperf2 when run with the -e (--enhancedreports) flag.

func ParseIPerf2EnhancedResultsFromCSV added in v1.21.0

func ParseIPerf2EnhancedResultsFromCSV(output string) (*IPerf2EnhancedCSVResults, error)

ParseIPerf2EnhancedResultsFromCSV parses results from iperf2 when given the -e (--enhancedreports) and `--reportstyle C` options. Example output for version < 2.19 (agnhost < 2.53): 20201210141800.884,10.244.2.24,47880,10.96.114.79,6789,3,0.0-1.0,1677852672,13422821376 20201210141801.881,10.244.2.24,47880,10.96.114.79,6789,3,1.0-2.0,1980760064,15846080512 20201210141802.883,10.244.2.24,47880,10.96.114.79,6789,3,2.0-3.0,1886650368,15093202944 Example output with version >= 2.19 (agnhost >= 2.53) +0000:20240908113035.128,192.168.9.3,58256,192.168.9.4,5001,1,0.0-1.0,5220466748,41763733984,-1,-1,-1,-1,0,0 +0000:20240908113036.128,192.168.9.3,58256,192.168.9.4,5001,1,1.0-2.0,5127667712,41021341696,-1,-1,-1,-1,0,0 +0000:20240908113037.128,192.168.9.3,58256,192.168.9.4,5001,1,2.0-3.0,5127405568,41019244544,-1,-1,-1,-1,0,0 +0000:20240908113038.128,192.168.9.3,58256,192.168.9.4,5001,1,3.0-4.0,5173018624,41384148992,-1,-1,-1,-1,0,0 +0000:20240908113039.128,192.168.9.3,58256,192.168.9.4,5001,1,4.0-5.0,5245894656,41967157248,-1,-1,-1,-1,0,0 +0000:20240908113040.128,192.168.9.3,58256,192.168.9.4,5001,1,5.0-6.0,5213257728,41706061824,-1,-1,-1,-1,0,0 +0000:20240908113041.128,192.168.9.3,58256,192.168.9.4,5001,1,6.0-7.0,5113118720,40904949760,-1,-1,-1,-1,0,0 +0000:20240908113042.128,192.168.9.3,58256,192.168.9.4,5001,1,7.0-8.0,5242748928,41941991424,-1,-1,-1,-1,0,0

type IPerf2NodeToNodeCSVResults added in v1.21.0

type IPerf2NodeToNodeCSVResults struct {
	ServerNode string
	Results    map[string]*IPerf2EnhancedCSVResults
}

IPerf2NodeToNodeCSVResults models the results of running iperf2 between a daemonset of clients and a single server. The node name of the server is captured, along with a map of client node name to iperf2 results.

type IPerfCSVResult added in v1.21.0

type IPerfCSVResult struct {
	// contains filtered or unexported fields
}

IPerfCSVResult struct modelling an iperf record.... 20160314154239,172.17.0.3,34152,172.17.0.2,5001,3,0.0-10.0,33843707904,27074774092

func NewIPerf

func NewIPerf(csvLine string) (*IPerfCSVResult, error)

NewIPerf parses an IPerf CSV output line into an IPerfCSVResult.

type IPerfResults

type IPerfResults struct {
	BandwidthMap map[string]int64
}

IPerfResults is a struct that stores some IPerfCSVResult

func (*IPerfResults) Add

func (i *IPerfResults) Add(ipr *IPerfCSVResult)

Add adds a new result to the Results struct.

func (*IPerfResults) ToTSV

func (i *IPerfResults) ToTSV() string

ToTSV exports an easily readable tab delimited format of all IPerfResults.

type StrSlice

type StrSlice []string

StrSlice represents a string slice

type TestFixture added in v1.18.0

type TestFixture struct {
	ServiceName string
	Namespace   string
	Client      clientset.Interface

	TestID string
	Labels map[string]string

	Name  string
	Image string
	// contains filtered or unexported fields
}

TestFixture is a simple helper class to avoid too much boilerplate in tests

func NewServerTest added in v1.18.0

func NewServerTest(client clientset.Interface, namespace string, serviceName string) *TestFixture

NewServerTest creates a new TestFixture for the tests.

func (*TestFixture) BuildServiceSpec added in v1.18.0

func (t *TestFixture) BuildServiceSpec() *v1.Service

BuildServiceSpec builds default config for a service (which can then be changed)

func (*TestFixture) Cleanup added in v1.18.0

func (t *TestFixture) Cleanup() []error

Cleanup cleans all ReplicationControllers and Services which this object holds.

func (*TestFixture) CreateRC added in v1.18.0

CreateRC creates a replication controller and records it for cleanup.

func (*TestFixture) CreateService added in v1.18.0

func (t *TestFixture) CreateService(service *v1.Service) (*v1.Service, error)

CreateService creates a service, and record it for cleanup

func (*TestFixture) DeleteService added in v1.18.0

func (t *TestFixture) DeleteService(serviceName string) error

DeleteService deletes a service, and remove it from the cleanup list

type UDPPokeParams added in v1.18.0

type UDPPokeParams struct {
	Timeout  time.Duration
	Response string
}

UDPPokeParams is a struct for UDP poke parameters.

type UDPPokeResult added in v1.18.0

type UDPPokeResult struct {
	Status   UDPPokeStatus
	Error    error  // if there was any error
	Response []byte // if code != 0
}

UDPPokeResult is a struct for UDP poke result.

func PokeUDP added in v1.31.0

func PokeUDP(host string, port int, request string, params *UDPPokeParams) UDPPokeResult

PokeUDP tries to connect to a host on a port and send the given request. Callers can specify additional success parameters, if desired.

The result status will be characterized as precisely as possible, given the known users of this.

The result error will be populated for any status other than Success.

The result response will be populated if the UDP transaction was completed, even if the other test params make this a failure).

type UDPPokeStatus added in v1.18.0

type UDPPokeStatus string

UDPPokeStatus is string for representing UDP poke status.

const (
	// UDPSuccess is UDP poke status which is success.
	UDPSuccess UDPPokeStatus = "Success"
	// UDPError is UDP poke status which is error.
	UDPError UDPPokeStatus = "UnknownError"
	// UDPTimeout is UDP poke status which is timeout.
	UDPTimeout UDPPokeStatus = "TimedOut"
	// UDPRefused is UDP poke status which is connection refused.
	UDPRefused UDPPokeStatus = "ConnectionRefused"
	// UDPBadResponse is UDP poke status which is bad response.
	UDPBadResponse UDPPokeStatus = "BadResponse"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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