v1alpha1

package
v0.0.14 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2024 License: Apache-2.0 Imports: 20 Imported by: 7

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the k6 v1alpha1 API group +kubebuilder:object:generate=true +groupName=k6.io

Index

Constants

View Source
const (
	// TestRunRunning indicates if the test run is currently running.
	// - if empty / Unknown, it's any stage before k6 resume (starter)
	// - if False, it's after all runners have finished successfully or with error
	// - if True, it's after successful starter but before all runners have finished
	TestRunRunning = "TestRunRunning"

	// TeardownExecuted indicates whether the `teardown()` has been executed on one of the runners.
	// This condition can be used only in PLZ test runs.
	TeardownExecuted = "TeardownExecuted"

	// CloudTestRun indicates if this test run is supposed to be a cloud test run
	// (i.e. with `--out cloud` option).
	// - if empty / Unknown, the type of test is unknown yet
	// - if False, it is not a cloud test run
	// - if True, it is a cloud test run
	CloudTestRun = "CloudTestRun"

	// CloudTestRunCreated indicates if k6 Cloud test run ID has been created for this test.
	// - if empty / Unknown, it's either a non-cloud test run or it is a cloud test run
	// that wasn't created yet
	// - if False, it is a cloud test run and it is yet to be created
	// - if True, it is a cloud test run and it has been created already
	CloudTestRunCreated = "CloudTestRunCreated"

	// CloudTestRunFinalized indicates if k6 Cloud test run has been finalized.
	// - if empty / Unknown, it's either a non-cloud test run or it is a cloud test run
	// that wasn't finalized yet
	// - if False, it's a cloud test run and it is yet to be finalized
	// - if True, it's a cloud test run that has been finalized already
	CloudTestRunFinalized = "CloudTestRunFinalized"

	// CloudPLZTestRun indicates if this k6 Cloud test run is a PLZ test run.
	// This condition is valid only if CloudTestRun is True as well.
	// - if empty / Unknown, it's either a non-PLZ test run or it's unknown yet.
	// - if False, it's not a PLZ test run.
	// - if True, it is a PLZ test run.
	CloudPLZTestRun = "CloudPLZTestRun"

	// CloudTestRunAborted indicates if this k6 Cloud test run was aborted externally,
	// for any reason.
	// This condition is valid only if CloudPLZTestRun is True as well.
	// - if empty / Unknown, it's either a non-PLZ test run or it's unknown yet.
	// - if False, it's a PLZ test run and it wasn't aborted.
	// - if True, it is a PLZ test run and it was aborted.
	CloudTestRunAborted = "CloudTestRunAborted"
)
View Source
const (
	// PLZRegistered indicates if the PLZ has been registered.
	// - if empty / Unknown / False, call registration
	// - if True, do nothing
	PLZRegistered = "PLZRegistered"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "k6.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Initialize added in v0.0.11

func Initialize(k6 TestRunI)

Initialize defines only conditions common to all test runs.

func IsFalse added in v0.0.11

func IsFalse(k6 TestRunI, conditionType string) bool

func IsTrue added in v0.0.11

func IsTrue(k6 TestRunI, conditionType string) bool

func IsUnknown added in v0.0.11

func IsUnknown(k6 TestRunI, conditionType string) bool

func LastUpdate added in v0.0.11

func LastUpdate(k6 TestRunI, conditionType string) (time.Time, bool)

func ListOptions added in v0.0.13

func ListOptions(k6 TestRunI) *client.ListOptions

func TestRunID added in v0.0.12

func TestRunID(k6 TestRunI) string

TestRunID is a tiny helper to get k6 Cloud test run ID. PLZ test run will have test run ID as part of spec while cloud output test run as part of status.

func UpdateCondition added in v0.0.11

func UpdateCondition(k6 TestRunI, conditionType string, conditionStatus metav1.ConditionStatus)

Types

type Cleanup

type Cleanup string

Cleanup allows for automatic cleanup of resources post execution +kubebuilder:validation:Enum=post

type InitContainer added in v0.0.10

type InitContainer struct {
	Name         string                 `json:"name,omitempty"`
	Image        string                 `json:"image,omitempty"`
	Env          []corev1.EnvVar        `json:"env,omitempty"`
	EnvFrom      []corev1.EnvFromSource `json:"envFrom,omitempty"`
	Command      []string               `json:"command,omitempty"`
	Args         []string               `json:"args,omitempty"`
	WorkingDir   string                 `json:"workingDir,omitempty"`
	VolumeMounts []corev1.VolumeMount   `json:"volumeMounts,omitempty"`
}

func (*InitContainer) DeepCopy added in v0.0.10

func (in *InitContainer) DeepCopy() *InitContainer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitContainer.

func (*InitContainer) DeepCopyInto added in v0.0.10

func (in *InitContainer) DeepCopyInto(out *InitContainer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type K6

type K6 struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TestRunSpec   `json:"spec,omitempty"`
	Status TestRunStatus `json:"status,omitempty"`
}

func (*K6) DeepCopy

func (in *K6) DeepCopy() *K6

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new K6.

func (*K6) DeepCopyInto

func (in *K6) DeepCopyInto(out *K6)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*K6) DeepCopyObject

func (in *K6) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*K6) GetSpec added in v0.0.11

func (k6 *K6) GetSpec() *TestRunSpec

func (*K6) GetStatus added in v0.0.11

func (k6 *K6) GetStatus() *TestRunStatus

TestRunI implementation for K6

func (*K6) NamespacedName added in v0.0.11

func (k6 *K6) NamespacedName() k8stypes.NamespacedName

type K6Configmap

type K6Configmap struct {
	Name string `json:"name"`
	File string `json:"file,omitempty"`
}

K6Configmap describes the config map script location

func (*K6Configmap) DeepCopy

func (in *K6Configmap) DeepCopy() *K6Configmap

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new K6Configmap.

func (*K6Configmap) DeepCopyInto

func (in *K6Configmap) DeepCopyInto(out *K6Configmap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type K6List

type K6List struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []K6 `json:"items"`
}

K6List contains a list of K6 +kubebuilder:object:root=true

func (*K6List) DeepCopy

func (in *K6List) DeepCopy() *K6List

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new K6List.

func (*K6List) DeepCopyInto

func (in *K6List) DeepCopyInto(out *K6List)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*K6List) DeepCopyObject

func (in *K6List) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type K6Script

type K6Script struct {
	VolumeClaim K6VolumeClaim `json:"volumeClaim,omitempty"`
	ConfigMap   K6Configmap   `json:"configMap,omitempty"`
	LocalFile   string        `json:"localFile,omitempty"`
}

K6Script describes where the script to execute the tests is found

func (*K6Script) DeepCopy

func (in *K6Script) DeepCopy() *K6Script

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new K6Script.

func (*K6Script) DeepCopyInto

func (in *K6Script) DeepCopyInto(out *K6Script)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type K6Scuttle

type K6Scuttle struct {
	Enabled                 string `json:"enabled,omitempty"`
	EnvoyAdminApi           string `json:"envoyAdminApi,omitempty"`
	NeverKillIstio          bool   `json:"neverKillIstio,omitempty"`
	NeverKillIstioOnFailure bool   `json:"neverKillIstioOnFailure,omitempty"`
	DisableLogging          bool   `json:"disableLogging,omitempty"`
	StartWithoutEnvoy       bool   `json:"startWithoutEnvoy,omitempty"`
	WaitForEnvoyTimeout     string `json:"waitForEnvoyTimeout,omitempty"`
	IstioQuitApi            string `json:"istioQuitApi,omitempty"`
	GenericQuitEndpoint     string `json:"genericQuitEndpoint,omitempty"`
	QuitWithoutEnvoyTimeout string `json:"quitWithoutEnvoyTimeout,omitempty"`
}

func (*K6Scuttle) DeepCopy

func (in *K6Scuttle) DeepCopy() *K6Scuttle

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new K6Scuttle.

func (*K6Scuttle) DeepCopyInto

func (in *K6Scuttle) DeepCopyInto(out *K6Scuttle)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type K6VolumeClaim

type K6VolumeClaim struct {
	Name string `json:"name"`
	File string `json:"file,omitempty"`
}

K6VolumeClaim describes the volume claim script location

func (*K6VolumeClaim) DeepCopy

func (in *K6VolumeClaim) DeepCopy() *K6VolumeClaim

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new K6VolumeClaim.

func (*K6VolumeClaim) DeepCopyInto

func (in *K6VolumeClaim) DeepCopyInto(out *K6VolumeClaim)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Pod

type Pod struct {
	Affinity                     *corev1.Affinity                  `json:"affinity,omitempty"`
	AutomountServiceAccountToken string                            `json:"automountServiceAccountToken,omitempty"`
	Env                          []corev1.EnvVar                   `json:"env,omitempty"`
	Image                        string                            `json:"image,omitempty"`
	ImagePullSecrets             []corev1.LocalObjectReference     `json:"imagePullSecrets,omitempty"`
	ImagePullPolicy              corev1.PullPolicy                 `json:"imagePullPolicy,omitempty"`
	Metadata                     PodMetadata                       `json:"metadata,omitempty"`
	NodeSelector                 map[string]string                 `json:"nodeSelector,omitempty"`
	Tolerations                  []corev1.Toleration               `json:"tolerations,omitempty"`
	TopologySpreadConstraints    []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
	Resources                    corev1.ResourceRequirements       `json:"resources,omitempty"`
	ServiceAccountName           string                            `json:"serviceAccountName,omitempty"`
	SecurityContext              corev1.PodSecurityContext         `json:"securityContext,omitempty"`
	ContainerSecurityContext     corev1.SecurityContext            `json:"containerSecurityContext,omitempty"`
	EnvFrom                      []corev1.EnvFromSource            `json:"envFrom,omitempty"`
	ReadinessProbe               *corev1.Probe                     `json:"readinessProbe,omitempty"`
	LivenessProbe                *corev1.Probe                     `json:"livenessProbe,omitempty"`
	InitContainers               []InitContainer                   `json:"initContainers,omitempty"`
	Volumes                      []corev1.Volume                   `json:"volumes,omitempty"`
	VolumeMounts                 []corev1.VolumeMount              `json:"volumeMounts,omitempty"`
}

func (*Pod) DeepCopy

func (in *Pod) DeepCopy() *Pod

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pod.

func (*Pod) DeepCopyInto

func (in *Pod) DeepCopyInto(out *Pod)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodMetadata

type PodMetadata struct {
	Annotations map[string]string `json:"annotations,omitempty"`
	Labels      map[string]string `json:"labels,omitempty"`
}

func (*PodMetadata) DeepCopy

func (in *PodMetadata) DeepCopy() *PodMetadata

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMetadata.

func (*PodMetadata) DeepCopyInto

func (in *PodMetadata) DeepCopyInto(out *PodMetadata)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PrivateLoadZone added in v0.0.10

type PrivateLoadZone struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PrivateLoadZoneSpec   `json:"spec,omitempty"`
	Status PrivateLoadZoneStatus `json:"status,omitempty"`
}

PrivateLoadZone is the Schema for the privateloadzones API

func (*PrivateLoadZone) DeepCopy added in v0.0.10

func (in *PrivateLoadZone) DeepCopy() *PrivateLoadZone

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLoadZone.

func (*PrivateLoadZone) DeepCopyInto added in v0.0.10

func (in *PrivateLoadZone) DeepCopyInto(out *PrivateLoadZone)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PrivateLoadZone) DeepCopyObject added in v0.0.10

func (in *PrivateLoadZone) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*PrivateLoadZone) Deregister added in v0.0.10

func (plz *PrivateLoadZone) Deregister(ctx context.Context, logger logr.Logger, client *cloudapi.Client) error

Deregister attempts to deregister PLZ with the k6 Cloud. It is meant to be used as a finalizer.

func (*PrivateLoadZone) Initialize added in v0.0.10

func (plz *PrivateLoadZone) Initialize()

func (PrivateLoadZone) IsFalse added in v0.0.10

func (plz PrivateLoadZone) IsFalse(conditionType string) bool

func (PrivateLoadZone) IsTrue added in v0.0.10

func (plz PrivateLoadZone) IsTrue(conditionType string) bool

func (PrivateLoadZone) IsUnknown added in v0.0.10

func (plz PrivateLoadZone) IsUnknown(conditionType string) bool

func (*PrivateLoadZone) Register added in v0.0.10

func (plz *PrivateLoadZone) Register(ctx context.Context, logger logr.Logger, client *cloudapi.Client) (string, error)

Register attempts to register PLZ with the k6 Cloud. Regardless of the result, condition PLZRegistered will be set to False. Callee is expected to check the returned error and set condition when it's appropriate.

func (PrivateLoadZone) UpdateCondition added in v0.0.10

func (plz PrivateLoadZone) UpdateCondition(conditionType string, conditionStatus metav1.ConditionStatus)

type PrivateLoadZoneList added in v0.0.10

type PrivateLoadZoneList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PrivateLoadZone `json:"items"`
}

PrivateLoadZoneList contains a list of PrivateLoadZone

func (*PrivateLoadZoneList) DeepCopy added in v0.0.10

func (in *PrivateLoadZoneList) DeepCopy() *PrivateLoadZoneList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLoadZoneList.

func (*PrivateLoadZoneList) DeepCopyInto added in v0.0.10

func (in *PrivateLoadZoneList) DeepCopyInto(out *PrivateLoadZoneList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PrivateLoadZoneList) DeepCopyObject added in v0.0.10

func (in *PrivateLoadZoneList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PrivateLoadZoneSpec added in v0.0.10

type PrivateLoadZoneSpec struct {
	Token              string                      `json:"token"`
	Resources          corev1.ResourceRequirements `json:"resources"`
	ServiceAccountName string                      `json:"serviceAccountName,omitempty"`
	NodeSelector       map[string]string           `json:"nodeSelector,omitempty"`
}

PrivateLoadZoneSpec defines the desired state of PrivateLoadZone

func (*PrivateLoadZoneSpec) DeepCopy added in v0.0.10

func (in *PrivateLoadZoneSpec) DeepCopy() *PrivateLoadZoneSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLoadZoneSpec.

func (*PrivateLoadZoneSpec) DeepCopyInto added in v0.0.10

func (in *PrivateLoadZoneSpec) DeepCopyInto(out *PrivateLoadZoneSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PrivateLoadZoneStatus added in v0.0.10

type PrivateLoadZoneStatus struct {
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

PrivateLoadZoneStatus defines the observed state of PrivateLoadZone

func (*PrivateLoadZoneStatus) DeepCopy added in v0.0.10

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLoadZoneStatus.

func (*PrivateLoadZoneStatus) DeepCopyInto added in v0.0.10

func (in *PrivateLoadZoneStatus) DeepCopyInto(out *PrivateLoadZoneStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PrivateLoadZoneStatus) SetIfNewer added in v0.0.10

func (plzStatus *PrivateLoadZoneStatus) SetIfNewer(proposedStatus PrivateLoadZoneStatus) (isNewer bool)

SetIfNewer changes plzstatus only if changes in proposedStatus are newer. If there were any acceptable changes proposed, it returns true.

type Stage

type Stage string

Stage describes which stage of the test execution lifecycle our runners are in +kubebuilder:validation:Enum=initialization;initialized;created;started;stopped;finished;error

type TestRun added in v0.0.11

type TestRun struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TestRunSpec   `json:"spec,omitempty"`
	Status TestRunStatus `json:"status,omitempty"`
}

TestRun is the Schema for the testruns API

func (*TestRun) DeepCopy added in v0.0.11

func (in *TestRun) DeepCopy() *TestRun

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestRun.

func (*TestRun) DeepCopyInto added in v0.0.11

func (in *TestRun) DeepCopyInto(out *TestRun)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TestRun) DeepCopyObject added in v0.0.11

func (in *TestRun) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*TestRun) GetSpec added in v0.0.11

func (k6 *TestRun) GetSpec() *TestRunSpec

func (*TestRun) GetStatus added in v0.0.11

func (k6 *TestRun) GetStatus() *TestRunStatus

TestRunI implementation for TestRun

func (*TestRun) NamespacedName added in v0.0.11

func (k6 *TestRun) NamespacedName() k8stypes.NamespacedName

type TestRunI added in v0.0.11

type TestRunI interface {
	runtime.Object
	metav1.Object
	client.Object

	GetStatus() *TestRunStatus
	GetSpec() *TestRunSpec
	NamespacedName() types.NamespacedName
}

type TestRunList added in v0.0.11

type TestRunList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TestRun `json:"items"`
}

TestRunList contains a list of TestRun

func (*TestRunList) DeepCopy added in v0.0.11

func (in *TestRunList) DeepCopy() *TestRunList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestRunList.

func (*TestRunList) DeepCopyInto added in v0.0.11

func (in *TestRunList) DeepCopyInto(out *TestRunList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TestRunList) DeepCopyObject added in v0.0.11

func (in *TestRunList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TestRunSpec added in v0.0.11

type TestRunSpec struct {
	Script      K6Script               `json:"script"`
	Parallelism int32                  `json:"parallelism"`
	Separate    bool                   `json:"separate,omitempty"`
	Arguments   string                 `json:"arguments,omitempty"`
	Ports       []corev1.ContainerPort `json:"ports,omitempty"`
	Initializer *Pod                   `json:"initializer,omitempty"`
	Starter     Pod                    `json:"starter,omitempty"`
	Runner      Pod                    `json:"runner,omitempty"`
	Quiet       string                 `json:"quiet,omitempty"`
	Paused      string                 `json:"paused,omitempty"`
	Scuttle     K6Scuttle              `json:"scuttle,omitempty"`
	Cleanup     Cleanup                `json:"cleanup,omitempty"`

	TestRunID string `json:"testRunId,omitempty"` // PLZ reserved field
	Token     string `json:"token,omitempty"`     // PLZ reserved field (for now)
}

TestRunSpec defines the desired state of TestRun

func (*TestRunSpec) DeepCopy added in v0.0.11

func (in *TestRunSpec) DeepCopy() *TestRunSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestRunSpec.

func (*TestRunSpec) DeepCopyInto added in v0.0.11

func (in *TestRunSpec) DeepCopyInto(out *TestRunSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (TestRunSpec) ParseScript added in v0.0.11

func (k6 TestRunSpec) ParseScript() (*types.Script, error)

Parse extracts Script data bits from K6 spec and performs basic validation

type TestRunStatus added in v0.0.11

type TestRunStatus struct {
	Stage           Stage  `json:"stage,omitempty"`
	TestRunID       string `json:"testRunId,omitempty"`
	AggregationVars string `json:"aggregationVars,omitempty"`

	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

TestRunStatus defines the observed state of TestRun

func (*TestRunStatus) DeepCopy added in v0.0.11

func (in *TestRunStatus) DeepCopy() *TestRunStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestRunStatus.

func (*TestRunStatus) DeepCopyInto added in v0.0.11

func (in *TestRunStatus) DeepCopyInto(out *TestRunStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TestRunStatus) SetIfNewer added in v0.0.11

func (k6status *TestRunStatus) SetIfNewer(proposedStatus TestRunStatus) (isNewer bool)

SetIfNewer changes k6status only if changes in proposedStatus are consistent with the expected progression of a test run. If there were any acceptable changes proposed, it returns true.

Jump to

Keyboard shortcuts

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