kubernetesk8s.io/kubernetes/pkg/apis/storage/fuzzer Index | Files

package fuzzer

import "k8s.io/kubernetes/pkg/apis/storage/fuzzer"

Index

Variables

var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} {
	return []interface{}{
		func(obj *storage.StorageClass, c randfill.Continue) {
			c.FillNoCustom(obj)
			reclamationPolicies := []api.PersistentVolumeReclaimPolicy{api.PersistentVolumeReclaimDelete, api.PersistentVolumeReclaimRetain}
			obj.ReclaimPolicy = &reclamationPolicies[c.Rand.Intn(len(reclamationPolicies))]
			bindingModes := []storage.VolumeBindingMode{storage.VolumeBindingImmediate, storage.VolumeBindingWaitForFirstConsumer}
			obj.VolumeBindingMode = &bindingModes[c.Rand.Intn(len(bindingModes))]
		},
		func(obj *storage.CSIDriver, c randfill.Continue) {
			c.FillNoCustom(obj)

			switch c.Rand.Intn(7) {
			case 0:
				obj.Spec.VolumeLifecycleModes = nil
			case 1:
				obj.Spec.VolumeLifecycleModes = []storage.VolumeLifecycleMode{}
			case 2:

				obj.Spec.VolumeLifecycleModes = []storage.VolumeLifecycleMode{
					storage.VolumeLifecycleMode(fmt.Sprintf("%d", c.Rand.Int31())),
				}
			case 3:
				obj.Spec.VolumeLifecycleModes = []storage.VolumeLifecycleMode{
					storage.VolumeLifecyclePersistent,
				}
			case 4:
				obj.Spec.VolumeLifecycleModes = []storage.VolumeLifecycleMode{
					storage.VolumeLifecycleEphemeral,
				}
			case 5:
				obj.Spec.VolumeLifecycleModes = []storage.VolumeLifecycleMode{
					storage.VolumeLifecyclePersistent,
					storage.VolumeLifecycleEphemeral,
				}
			case 6:
				obj.Spec.VolumeLifecycleModes = []storage.VolumeLifecycleMode{
					storage.VolumeLifecycleEphemeral,
					storage.VolumeLifecyclePersistent,
				}
			}

			if obj.Spec.AttachRequired == nil {
				obj.Spec.AttachRequired = new(bool)
				*(obj.Spec.AttachRequired) = true
			}
			if obj.Spec.PodInfoOnMount == nil {
				obj.Spec.PodInfoOnMount = new(bool)
				*(obj.Spec.PodInfoOnMount) = false
			}
			if obj.Spec.StorageCapacity == nil {
				obj.Spec.StorageCapacity = new(bool)
				*(obj.Spec.StorageCapacity) = false
			}
			if obj.Spec.FSGroupPolicy == nil {
				obj.Spec.FSGroupPolicy = new(storage.FSGroupPolicy)
				*obj.Spec.FSGroupPolicy = storage.ReadWriteOnceWithFSTypeFSGroupPolicy
			}
			if obj.Spec.RequiresRepublish == nil {
				obj.Spec.RequiresRepublish = new(bool)
				*(obj.Spec.RequiresRepublish) = false
			}
			if len(obj.Spec.VolumeLifecycleModes) == 0 {
				obj.Spec.VolumeLifecycleModes = []storage.VolumeLifecycleMode{
					storage.VolumeLifecyclePersistent,
				}
			}
			if obj.Spec.SELinuxMount == nil {
				obj.Spec.SELinuxMount = new(bool)
				*(obj.Spec.SELinuxMount) = false
			}
		},
	}
}

Funcs returns the fuzzer functions for the storage api group.

Source Files

fuzzer.go

Version
v1.33.0 (latest)
Published
Apr 23, 2025
Platform
linux/amd64
Imports
5 packages
Last checked
3 hours ago

Tools for package owners.