Documentation
¶
Overview ¶
Package framework is a package helping setting up end-to-end testing across a Kubernetes cluster.
Index ¶
- Constants
- Variables
- func FleetReadyCount(amount int32) func(*logrus.Entry, *agonesv1.Fleet) bool
- func GetAllocation(f *agonesv1.Fleet) *allocationv1.GameServerAllocation
- func ParseTestFlags() error
- func SendGameServerTCP(gs *agonesv1.GameServer, msg string) (string, error)
- func SendGameServerTCPToPort(gs *agonesv1.GameServer, portName string, msg string) (string, error)
- func SendTCP(address, msg string) (string, error)
- func TestLogger(t *testing.T) *logrus.Entry
- type Framework
- func (f *Framework) AssertFleetCondition(t *testing.T, flt *agonesv1.Fleet, ...)
- func (f *Framework) CleanUp(ns string) error
- func (f *Framework) CreateAndApplyAllocation(t *testing.T, flt *agonesv1.Fleet) *allocationv1.GameServerAllocation
- func (f *Framework) CreateGameServerAndWaitUntilReady(t *testing.T, ns string, gs *agonesv1.GameServer) (*agonesv1.GameServer, error)
- func (f *Framework) CreateNamespace(namespace string) error
- func (f *Framework) CycleAllocations(ctx context.Context, t *testing.T, flt *agonesv1.Fleet, period time.Duration, ...)
- func (f *Framework) DefaultGameServer(namespace string) *agonesv1.GameServer
- func (f *Framework) DeleteNamespace(namespace string) error
- func (f *Framework) ListGameServersFromFleet(flt *agonesv1.Fleet) ([]agonesv1.GameServer, error)
- func (f *Framework) LogEvents(t *testing.T, log *logrus.Entry, namespace string, objOrRef k8sruntime.Object)
- func (f *Framework) LogPodContainers(t *testing.T, pod *corev1.Pod)
- func (f *Framework) NewStatsCollector(name, version string) *StatsCollector
- func (f *Framework) ScaleFleet(t *testing.T, log *logrus.Entry, flt *agonesv1.Fleet, replicas int32)
- func (f *Framework) SendGameServerUDP(t *testing.T, gs *agonesv1.GameServer, msg string) (string, error)
- func (f *Framework) SendGameServerUDPToPort(t *testing.T, gs *agonesv1.GameServer, portName string, msg string) (string, error)
- func (f *Framework) SendUDP(t *testing.T, address, msg string) (string, error)
- func (f *Framework) SkipOnCloudProduct(t *testing.T, product, reason string)
- func (f *Framework) WaitForFleetAutoScalerCondition(t *testing.T, fas *autoscaling.FleetAutoscaler, ...)
- func (f *Framework) WaitForFleetCondition(t *testing.T, flt *agonesv1.Fleet, ...) error
- func (f *Framework) WaitForFleetGameServerListCondition(flt *agonesv1.Fleet, cond func(servers []agonesv1.GameServer) bool) error
- func (f *Framework) WaitForFleetGameServersCondition(flt *agonesv1.Fleet, cond func(server *agonesv1.GameServer) bool) error
- func (f *Framework) WaitForGameServerState(t *testing.T, gs *agonesv1.GameServer, state agonesv1.GameServerState, ...) (*agonesv1.GameServer, error)
- type StatsCollector
Constants ¶
const ( AutoCleanupLabelKey = "agones.dev/e2e-test-auto-cleanup" AutoCleanupLabelValue = "true" )
special labels that can be put on pods to trigger automatic cleanup.
Variables ¶
var NamespaceLabel = map[string]string{"owner": "e2e-test"}
NamespaceLabel is the label that is put on all namespaces that are created for e2e tests.
Functions ¶
func FleetReadyCount ¶ added in v0.5.0
FleetReadyCount returns the ready count in a fleet
func GetAllocation ¶ added in v0.12.0
func GetAllocation(f *agonesv1.Fleet) *allocationv1.GameServerAllocation
GetAllocation returns a GameServerAllocation that is looking for a Ready GameServer from this fleet.
func ParseTestFlags ¶ added in v1.6.0
func ParseTestFlags() error
ParseTestFlags Parses go test flags separately because pflag package ignores flags with '-test.' prefix Related issues: https://github.com/spf13/pflag/issues/63 https://github.com/spf13/pflag/issues/238
func SendGameServerTCP ¶ added in v1.9.0
func SendGameServerTCP(gs *agonesv1.GameServer, msg string) (string, error)
SendGameServerTCP sends a message to a gameserver and returns its reply finds the first tcp port from the spec to send the message to, returns error if no Ports were allocated
func SendGameServerTCPToPort ¶ added in v1.9.0
SendGameServerTCPToPort sends a message to a gameserver at the named port and returns its reply returns error if no Ports were allocated or a port of the specified name doesn't exist
Types ¶
type Framework ¶
type Framework struct {
KubeClient kubernetes.Interface
AgonesClient versioned.Interface
GameServerImage string
PullSecret string
StressTestLevel int
PerfOutputDir string
Version string
Namespace string
CloudProduct string
WaitForState time.Duration // default time to wait for state changes, may change based on cloud product.
}
Framework is a testing framework
func NewFromFlags ¶ added in v1.4.0
NewFromFlags sets up the testing framework with the standard command line flags.
func (*Framework) AssertFleetCondition ¶ added in v1.1.0
func (f *Framework) AssertFleetCondition(t *testing.T, flt *agonesv1.Fleet, condition func(*logrus.Entry, *agonesv1.Fleet) bool)
AssertFleetCondition waits for the Fleet to be in a specific condition or fails the test if the condition can't be met in 5 minutes.
func (*Framework) CreateAndApplyAllocation ¶ added in v0.12.0
func (f *Framework) CreateAndApplyAllocation(t *testing.T, flt *agonesv1.Fleet) *allocationv1.GameServerAllocation
CreateAndApplyAllocation creates and applies an Allocation to a Fleet
func (*Framework) CreateGameServerAndWaitUntilReady ¶
func (f *Framework) CreateGameServerAndWaitUntilReady(t *testing.T, ns string, gs *agonesv1.GameServer) (*agonesv1.GameServer, error)
CreateGameServerAndWaitUntilReady Creates a GameServer and wait for its state to become ready.
func (*Framework) CreateNamespace ¶ added in v1.1.0
CreateNamespace creates a namespace and a service account in the test cluster
func (*Framework) CycleAllocations ¶ added in v1.22.0
func (f *Framework) CycleAllocations(ctx context.Context, t *testing.T, flt *agonesv1.Fleet, period time.Duration, allocDuration time.Duration)
CycleAllocations repeatedly Allocates a GameServer in the Fleet (if one is available), once every specified period. Each Allocated GameServer gets deleted allocDuration after it was Allocated. GameServers will continue to be Allocated until a message is passed to the done channel.
func (*Framework) DefaultGameServer ¶ added in v1.4.0
func (f *Framework) DefaultGameServer(namespace string) *agonesv1.GameServer
DefaultGameServer provides a default GameServer fixture, based on parameters passed to the Test Framework.
func (*Framework) DeleteNamespace ¶ added in v1.1.0
DeleteNamespace deletes a namespace from the test cluster
func (*Framework) ListGameServersFromFleet ¶ added in v0.5.0
ListGameServersFromFleet lists GameServers from a particular fleet
func (*Framework) LogEvents ¶ added in v1.19.0
func (f *Framework) LogEvents(t *testing.T, log *logrus.Entry, namespace string, objOrRef k8sruntime.Object)
LogEvents logs all the events for a given Kubernetes objects. Useful for debugging why something went wrong.
func (*Framework) LogPodContainers ¶ added in v1.53.0
LogPodContainers takes a Pod as an argument and attempts to output the current and previous logs from each container in that Pod It uses the framework's KubeClient to retrieve the logs and outputs them using the provided logger.
func (*Framework) NewStatsCollector ¶ added in v0.9.0
func (f *Framework) NewStatsCollector(name, version string) *StatsCollector
NewStatsCollector returns new instance of statistics collector, which can be used to emit performance statistics for load tests and stress tests.
func (*Framework) ScaleFleet ¶ added in v1.32.0
func (f *