test

package
v0.36.8 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2024 License: Apache-2.0 Imports: 36 Imported by: 7

Documentation

Index

Constants

View Source
const DiscoveryLabel = "testing/cluster"

Variables

View Source
var (
	DefaultImage = "public.ecr.aws/eks-distro/kubernetes/pause:3.2"
)

Functions

func DaemonSet

func DaemonSet(overrides ...DaemonSetOptions) *appsv1.DaemonSet

DaemonSet creates a test pod with defaults that can be overridden by DaemonSetOptions. Overrides are applied in order, with a last write wins semantic.

func Deployment

func Deployment(overrides ...DeploymentOptions) *appsv1.Deployment

func MustMerge

func MustMerge[T interface{}](dest T, srcs ...T) T

func Namespace

func Namespace(overrides ...NamespaceOptions) *corev1.Namespace

Namespace creates a Namespace.

func NamespacedObjectMeta

func NamespacedObjectMeta(overrides ...metav1.ObjectMeta) metav1.ObjectMeta

func Node

func Node(overrides ...NodeOptions) *v1.Node

func NodeClaim

func NodeClaim(overrides ...v1beta1.NodeClaim) *v1beta1.NodeClaim

NodeClaim creates a test NodeClaim with defaults that can be overridden by overrides. Overrides are applied in order, with a last write wins semantic.

func NodeClaimAndNode

func NodeClaimAndNode(overrides ...v1beta1.NodeClaim) (*v1beta1.NodeClaim, *v1.Node)

func NodeClaimFieldIndexer

func NodeClaimFieldIndexer(ctx context.Context) func(cache.Cache) error

func NodeClaimLinkedNode

func NodeClaimLinkedNode(nodeClaim *v1beta1.NodeClaim) *v1.Node

func NodeClaimsAndNodes

func NodeClaimsAndNodes(total int, options ...v1beta1.NodeClaim) ([]*v1beta1.NodeClaim, []*v1.Node)

NodeClaimsAndNodes creates homogeneous groups of NodeClaims and Nodes based on the passed in options, evenly divided by the total nodeclaims requested

func NodePool

func NodePool(overrides ...v1beta1.NodePool) *v1beta1.NodePool

NodePool creates a test NodePool with defaults that can be overridden by overrides. Overrides are applied in order, with a last write wins semantic.

func NodePools added in v0.34.0

func NodePools(total int, options ...v1beta1.NodePool) []*v1beta1.NodePool

NodePools creates homogeneous groups of NodePools based on the passed in options, evenly divided by the total NodePools requested

func ObjectMeta

func ObjectMeta(overrides ...metav1.ObjectMeta) metav1.ObjectMeta

func Options

func Options(overrides ...OptionsFields) *options.Options

func PersistentVolume

func PersistentVolume(overrides ...PersistentVolumeOptions) *v1.PersistentVolume

func PersistentVolumeClaim

func PersistentVolumeClaim(overrides ...PersistentVolumeClaimOptions) *v1.PersistentVolumeClaim

func Pod

func Pod(overrides ...PodOptions) *v1.Pod

Pod creates a test pod with defaults that can be overridden by PodOptions. Overrides are applied in order, with a last write wins semantic. nolint:gocyclo

func PodDisruptionBudget

func PodDisruptionBudget(overrides ...PDBOptions) *policyv1.PodDisruptionBudget

PodDisruptionBudget creates a PodDisruptionBudget. To function properly, it should have its status applied

func Pods

func Pods(total int, options ...PodOptions) []*v1.Pod

Pods creates homogeneous groups of pods based on the passed in options, evenly divided by the total pods requested

func ProviderID

func ProviderID(base string) string

func RandomName

func RandomName() string

func RandomProviderID

func RandomProviderID() string

func ReplaceRequirements

func ReplaceRequirements(nodePool *v1beta1.NodePool, reqs ...v1beta1.NodeSelectorRequirementWithMinValues) *v1beta1.NodePool

ReplaceRequirements any current requirements on the passed through NodePool with the passed in requirements If any of the keys match between the existing requirements and the new requirements, the new requirement with the same key will replace the old requirement with that key

func ReplicaSet

func ReplicaSet(overrides ...ReplicaSetOptions) *appsv1.ReplicaSet

ReplicaSet creates a test ReplicaSet with defaults that can be overridden by ReplicaSetOptions. Overrides are applied in order, with a last write wins semantic.

func StatefulSet added in v0.33.3

func StatefulSet(overrides ...StatefulSetOptions) *appsv1.StatefulSet

func StorageClass

func StorageClass(overrides ...StorageClassOptions) *storagev1.StorageClass

func TemplateObjectMeta

func TemplateObjectMeta(overrides ...v1beta1.ObjectMeta) v1beta1.ObjectMeta

func UnschedulablePod

func UnschedulablePod(options ...PodOptions) *v1.Pod

UnschedulablePod creates a test pod with a pending scheduling status condition

func UnschedulablePods

func UnschedulablePods(options PodOptions, num int) []*v1.Pod

UnschedulablePods returns slice of configurable length of identical test pods with a pending scheduling status condition

func WithCRDs

WithCRDs registers the specified CRDs to the apiserver for use in testing

func WithFieldIndexers

func WithFieldIndexers(fieldIndexers ...func(cache.Cache) error) functional.Option[EnvironmentOptions]

WithFieldIndexers expects a function that indexes fields against the cache such as cache.IndexField(...)

Types

type CacheSyncingClient

type CacheSyncingClient struct {
	client.Client
}

CacheSyncingClient exists for tests that need to use custom fieldSelectors (thus, they need a client cache) and also need consistency in their testing by waiting for caches to sync after performing WRITE operations NOTE: This cache sync doesn't sync with third-party operations on the api-server

func (*CacheSyncingClient) Create

func (c *CacheSyncingClient) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error

func (*CacheSyncingClient) Delete

func (c *CacheSyncingClient) Delete(ctx context.Context, obj client.Object, opts ...client.DeleteOption) error

func (*CacheSyncingClient) DeleteAllOf

func (c *CacheSyncingClient) DeleteAllOf(ctx context.Context, obj client.Object, opts ...client.DeleteAllOfOption) error

func (*CacheSyncingClient) Patch

func (c *CacheSyncingClient) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.PatchOption) error

func (*CacheSyncingClient) Status

func (*CacheSyncingClient) Update

func (c *CacheSyncingClient) Update(ctx context.Context, obj client.Object, opts ...client.UpdateOption) error

type DaemonSetOptions

type DaemonSetOptions struct {
	metav1.ObjectMeta
	Selector   map[string]string
	PodOptions PodOptions
}

DaemonSetOptions customizes a DaemonSet.

type DeploymentOptions

type DeploymentOptions struct {
	metav1.ObjectMeta
	Labels     map[string]string
	Replicas   int32
	PodOptions PodOptions
}

type Environment

type Environment struct {
	envtest.Environment

	Client              client.Client
	KubernetesInterface kubernetes.Interface
	Version             *version.Version
	Done                chan struct{}
	Cancel              context.CancelFunc
}

func NewEnvironment

func NewEnvironment(scheme *runtime.Scheme, options ...functional.Option[EnvironmentOptions]) *Environment

func (*Environment) Stop

func (e *Environment) Stop() error

type EnvironmentOptions

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

type EphemeralVolumeTemplateOptions

type EphemeralVolumeTemplateOptions struct {
	StorageClassName *string
}

type EventRecorder

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

EventRecorder is a mock event recorder that is used to facilitate testing.

func NewEventRecorder

func NewEventRecorder() *EventRecorder

func (*EventRecorder) Calls

func (e *EventRecorder) Calls(reason string) int

func (*EventRecorder) DetectedEvent

func (e *EventRecorder) DetectedEvent(msg string) bool

func (*EventRecorder) Events

func (e *EventRecorder) Events() (res []events.Event)

func (*EventRecorder) ForEachEvent

func (e *EventRecorder) ForEachEvent(f func(evt events.Event))

func (*EventRecorder) Publish

func (e *EventRecorder) Publish(evts ...events.Event)

func (*EventRecorder) Reset

func (e *EventRecorder) Reset()

type FeatureGates

type FeatureGates struct {
	Drift                   *bool
	SpotToSpotConsolidation *bool
}

type NamespaceOptions

type NamespaceOptions struct {
	metav1.ObjectMeta
}

PodOptions customizes a Pod.

type NodeOptions

type NodeOptions struct {
	metav1.ObjectMeta
	ReadyStatus   v1.ConditionStatus
	ReadyReason   string
	Conditions    []v1.NodeCondition
	Unschedulable bool
	ProviderID    string
	Taints        []v1.Taint
	Allocatable   v1.ResourceList
	Capacity      v1.ResourceList
}

type OptionsFields

type OptionsFields struct {
	// Vendor Neutral
	ServiceName          *string
	DisableWebhook       *bool
	WebhookPort          *int
	MetricsPort          *int
	WebhookMetricsPort   *int
	HealthProbePort      *int
	KubeClientQPS        *int
	KubeClientBurst      *int
	EnableProfiling      *bool
	EnableLeaderElection *bool
	MemoryLimit          *int64
	LogLevel             *string
	BatchMaxDuration     *time.Duration
	BatchIdleDuration    *time.Duration
	FeatureGates         FeatureGates
}

type PDBOptions

type PDBOptions struct {
	metav1.ObjectMeta
	Labels         map[string]string
	MinAvailable   *intstr.IntOrString
	MaxUnavailable *intstr.IntOrString
	Status         *policyv1.PodDisruptionBudgetStatus
}

type PersistentVolumeClaimOptions

type PersistentVolumeClaimOptions struct {
	metav1.ObjectMeta
	StorageClassName *string
	VolumeName       string
	Resources        v1.VolumeResourceRequirements
}

type PersistentVolumeOptions

type PersistentVolumeOptions struct {
	metav1.ObjectMeta
	Zones              []string
	StorageClassName   string
	Driver             string
	UseAWSInTreeDriver bool
	UseLocal           bool
	UseHostPath        bool
}

type PodOptions

type PodOptions struct {
	metav1.ObjectMeta
	Image                         string
	NodeName                      string
	Overhead                      v1.ResourceList
	PriorityClassName             string
	InitContainers                []v1.Container
	ResourceRequirements          v1.ResourceRequirements
	NodeSelector                  map[string]string
	NodeRequirements              []v1.NodeSelectorRequirement
	NodePreferences               []v1.NodeSelectorRequirement
	PodRequirements               []v1.PodAffinityTerm
	PodPreferences                []v1.WeightedPodAffinityTerm
	PodAntiRequirements           []v1.PodAffinityTerm
	PodAntiPreferences            []v1.WeightedPodAffinityTerm
	TopologySpreadConstraints     []v1.TopologySpreadConstraint
	Tolerations                   []v1.Toleration
	PersistentVolumeClaims        []string
	EphemeralVolumeTemplates      []EphemeralVolumeTemplateOptions
	HostPorts                     []int32
	Conditions                    []v1.PodCondition
	Phase                         v1.PodPhase
	RestartPolicy                 v1.RestartPolicy
	TerminationGracePeriodSeconds *int64
	ReadinessProbe                *v1.Probe
	LivenessProbe                 *v1.Probe
	PreStopSleep                  *int64
	Command                       []string
}

PodOptions customizes a Pod.

func UnscheduleablePodOptions

func UnscheduleablePodOptions(overrides ...PodOptions) PodOptions

type ReplicaSetOptions

type ReplicaSetOptions struct {
	metav1.ObjectMeta
	Selector   map[string]string
	PodOptions PodOptions
}

ReplicaSetOptions customizes a ReplicaSet.

type StatefulSetOptions added in v0.33.3

type StatefulSetOptions struct {
	metav1.ObjectMeta
	Labels     map[string]string
	Replicas   int32
	PodOptions PodOptions
}

type StorageClassOptions

type StorageClassOptions struct {
	metav1.ObjectMeta
	Zones             []string
	Provisioner       *string
	VolumeBindingMode *storagev1.VolumeBindingMode
}

Directories

Path Synopsis
+k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=karpenter.test.sh
+k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=karpenter.test.sh

Jump to

Keyboard shortcuts

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