kubernetes: github.com/CyrusBiotechnology/kubernetes/pkg/api/validation Index | Files

package validation

import "github.com/CyrusBiotechnology/kubernetes/pkg/api/validation"

Package validation has functions for validating the correctness of api objects and explaining what is wrong with them when they aren't valid.

Index

Package Files

doc.go events.go name.go schema.go validation.go

Constants

const SecretKeyFmt string = "\\.?" + validation.DNS1123LabelFmt + "(\\." + validation.DNS1123LabelFmt + ")*"

Variables

var BannedOwners = map[unversioned.GroupVersionKind]struct{}{
    v1.SchemeGroupVersion.WithKind("Event"): {},
}

BannedOwners is a black list of object that are not allowed to be owners.

var DNS1123LabelErrorMsg string = fmt.Sprintf(`must be a DNS label (at most %d characters, matching regex %s): e.g. "my-name"`, validation.DNS1123LabelMaxLength, validation.DNS1123LabelFmt)
var DNS952LabelErrorMsg string = fmt.Sprintf(`must be a DNS 952 label (at most %d characters, matching regex %s): e.g. "my-name"`, validation.DNS952LabelMaxLength, validation.DNS952LabelFmt)
var DNSSubdomainErrorMsg string = fmt.Sprintf(`must be a DNS subdomain (at most %d characters, matching regex %s): e.g. "example.com"`, validation.DNS1123SubdomainMaxLength, validation.DNS1123SubdomainFmt)
var IdRangeErrorMsg string = InclusiveRangeErrorMsg(0, math.MaxInt32)
var NameMayNotBe = []string{".", ".."}

NameMayNotBe specifies strings that cannot be used as names specified as path segments (like the REST API or etcd store)

var NameMayNotContain = []string{"/", "%"}

NameMayNotContain specifies substrings that cannot be used in names specified as path segments (like the REST API or etcd store)

var PortNameErrorMsg string = fmt.Sprintf("" /* 174 byte string literal not displayed */, validation.IdentifierNoHyphensBeginEndFmt)
var PortRangeErrorMsg string = InclusiveRangeErrorMsg(1, 65535)
var RepairMalformedUpdates bool = true

TODO: delete this global variable when we enable the validation of common fields by default.

func AccumulateUniqueHostPorts Uses

func AccumulateUniqueHostPorts(containers []api.Container, accumulator *sets.String, fldPath *field.Path) field.ErrorList

AccumulateUniqueHostPorts extracts each HostPort of each Container, accumulating the results and returning an error if any ports conflict.

func InclusiveRangeErrorMsg Uses

func InclusiveRangeErrorMsg(lo, hi int) string

func IsSecretKey Uses

func IsSecretKey(value string) bool

IsSecretKey tests for a string that conforms to the definition of a subdomain in DNS (RFC 1123), except that a leading dot is allowed

func IsValidPathSegmentName Uses

func IsValidPathSegmentName(name string) (bool, string)

IsValidPathSegmentName validates the name can be safely encoded as a path segment

func IsValidPathSegmentPrefix Uses

func IsValidPathSegmentPrefix(name string) (bool, string)

IsValidPathSegmentPrefix validates the name can be used as a prefix for a name which will be encoded as a path segment It does not check for exact matches with disallowed names, since an arbitrary suffix might make the name valid

func NameIsDNS952Label Uses

func NameIsDNS952Label(name string, prefix bool) (bool, string)

NameIsDNS952Label is a ValidateNameFunc for names that must be a DNS 952 label.

func NameIsDNSLabel Uses

func NameIsDNSLabel(name string, prefix bool) (bool, string)

NameIsDNSLabel is a ValidateNameFunc for names that must be a DNS 1123 label.

func NameIsDNSSubdomain Uses

func NameIsDNSSubdomain(name string, prefix bool) (bool, string)

NameIsDNSSubdomain is a ValidateNameFunc for names that must be a DNS subdomain.

func NewInvalidTypeError Uses

func NewInvalidTypeError(expected reflect.Kind, observed reflect.Kind, fieldName string) error

func ValidateAffinityInPodAnnotations Uses

func ValidateAffinityInPodAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList

ValidateAffinityInPodAnnotations tests that the serialized Affinity in Pod.Annotations has valid data

func ValidateAnnotations Uses

func ValidateAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList

ValidateAnnotations validates that a set of annotations are correctly defined.

func ValidateConfigMap Uses

func ValidateConfigMap(cfg *api.ConfigMap) field.ErrorList

ValidateConfigMap tests whether required fields in the ConfigMap are set.

func ValidateConfigMapName Uses

func ValidateConfigMapName(name string, prefix bool) (bool, string)

ValidateConfigMapName can be used to check whether the given ConfigMap name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateConfigMapUpdate Uses

func ValidateConfigMapUpdate(newCfg, oldCfg *api.ConfigMap) field.ErrorList

ValidateConfigMapUpdate tests if required fields in the ConfigMap are set.

func ValidateEndpoints Uses

func ValidateEndpoints(endpoints *api.Endpoints) field.ErrorList

ValidateEndpoints tests if required fields are set.

func ValidateEndpointsName Uses

func ValidateEndpointsName(name string, prefix bool) (bool, string)

ValidateEndpointsName can be used to check whether the given endpoints name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateEndpointsSpecificAnnotations Uses

func ValidateEndpointsSpecificAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList

func ValidateEndpointsUpdate Uses

func ValidateEndpointsUpdate(newEndpoints, oldEndpoints *api.Endpoints) field.ErrorList

ValidateEndpointsUpdate tests to make sure an endpoints update can be applied.

func ValidateEvent Uses

func ValidateEvent(event *api.Event) field.ErrorList

ValidateEvent makes sure that the event makes sense.

func ValidateHasLabel Uses

func ValidateHasLabel(meta api.ObjectMeta, fldPath *field.Path, key, expectedValue string) field.ErrorList

ValidateHasLabel requires that api.ObjectMeta has a Label with key and expectedValue

func ValidateImmutableField Uses

func ValidateImmutableField(newVal, oldVal interface{}, fldPath *field.Path) field.ErrorList

func ValidateLimitRange Uses

func ValidateLimitRange(limitRange *api.LimitRange) field.ErrorList

ValidateLimitRange tests if required fields in the LimitRange are set.

func ValidateLimitRangeName Uses

func ValidateLimitRangeName(name string, prefix bool) (bool, string)

ValidateLimitRangeName can be used to check whether the given limit range name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateLoadBalancerStatus Uses

func ValidateLoadBalancerStatus(status *api.LoadBalancerStatus, fldPath *field.Path) field.ErrorList

ValidateLoadBalancerStatus validates required fields on a LoadBalancerStatus

func ValidateNamespace Uses

func ValidateNamespace(namespace *api.Namespace) field.ErrorList

ValidateNamespace tests if required fields are set.

func ValidateNamespaceFinalizeUpdate Uses

func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *api.Namespace) field.ErrorList

ValidateNamespaceFinalizeUpdate tests to see if the update is legal for an end user to make. newNamespace is updated with fields that cannot be changed.

func ValidateNamespaceName Uses

func ValidateNamespaceName(name string, prefix bool) (bool, string)

ValidateNamespaceName can be used to check whether the given namespace name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateNamespaceStatusUpdate Uses

func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *api.Namespace) field.ErrorList

ValidateNamespaceStatusUpdate tests to see if the update is legal for an end user to make. newNamespace is updated with fields that cannot be changed.

func ValidateNamespaceUpdate Uses

func ValidateNamespaceUpdate(newNamespace *api.Namespace, oldNamespace *api.Namespace) field.ErrorList

ValidateNamespaceUpdate tests to make sure a namespace update can be applied. newNamespace is updated with fields that cannot be changed

func ValidateNode Uses

func ValidateNode(node *api.Node) field.ErrorList

ValidateNode tests if required fields in the node are set.

func ValidateNodeName Uses

func ValidateNodeName(name string, prefix bool) (bool, string)

ValidateNodeName can be used to check whether the given node name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateNodeSelector Uses

func ValidateNodeSelector(nodeSelector *api.NodeSelector, fldPath *field.Path) field.ErrorList

ValidateNodeSelector tests that the specified nodeSelector fields has valid data

func ValidateNodeSelectorRequirement Uses

func ValidateNodeSelectorRequirement(rq api.NodeSelectorRequirement, fldPath *field.Path) field.ErrorList

ValidateNodeSelectorRequirement tests that the specified NodeSelectorRequirement fields has valid data

func ValidateNodeSelectorTerm Uses

func ValidateNodeSelectorTerm(term api.NodeSelectorTerm, fldPath *field.Path) field.ErrorList

ValidateNodeSelectorTerm tests that the specified node selector term has valid data

func ValidateNodeSpecificAnnotations Uses

func ValidateNodeSpecificAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList

func ValidateNodeUpdate Uses

func ValidateNodeUpdate(node, oldNode *api.Node) field.ErrorList

ValidateNodeUpdate tests to make sure a node update can be applied. Modifies oldNode.

func ValidateNonEmptySelector Uses

func ValidateNonEmptySelector(selectorMap map[string]string, fldPath *field.Path) field.ErrorList

Validates that the given selector is non-empty.

func ValidateNonnegativeField Uses

func ValidateNonnegativeField(value int64, fldPath *field.Path) field.ErrorList

Validates that given value is not negative.

func ValidateNonnegativeQuantity Uses

func ValidateNonnegativeQuantity(value resource.Quantity, fldPath *field.Path) field.ErrorList

Validates that a Quantity is not negative

func ValidateObjectMeta Uses

func ValidateObjectMeta(meta *api.ObjectMeta, requiresNamespace bool, nameFn ValidateNameFunc, fldPath *field.Path) field.ErrorList

ValidateObjectMeta validates an object's metadata on creation. It expects that name generation has already been performed. It doesn't return an error for rootscoped resources with namespace, because namespace should already be cleared before. TODO: Remove calls to this method scattered in validations of specific resources, e.g., ValidatePodUpdate.

func ValidateObjectMetaUpdate Uses

func ValidateObjectMetaUpdate(newMeta, oldMeta *api.ObjectMeta, fldPath *field.Path) field.ErrorList

ValidateObjectMetaUpdate validates an object's metadata when updated

func ValidateOwnerReferences Uses

func ValidateOwnerReferences(ownerReferences []api.OwnerReference, fldPath *field.Path) field.ErrorList

func ValidatePathSegmentName Uses

func ValidatePathSegmentName(name string, prefix bool) (bool, string)

ValidatePathSegmentName validates the name can be safely encoded as a path segment

func ValidatePersistentVolume Uses

func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList

func ValidatePersistentVolumeClaim Uses

func ValidatePersistentVolumeClaim(pvc *api.PersistentVolumeClaim) field.ErrorList

func ValidatePersistentVolumeClaimStatusUpdate Uses

func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) field.ErrorList

func ValidatePersistentVolumeClaimUpdate Uses

func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) field.ErrorList

func ValidatePersistentVolumeName Uses

func ValidatePersistentVolumeName(name string, prefix bool) (bool, string)

func ValidatePersistentVolumeStatusUpdate Uses

func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *api.PersistentVolume) field.ErrorList

ValidatePersistentVolumeStatusUpdate tests to see if the status update is legal for an end user to make. newPv is updated with fields that cannot be changed.

func ValidatePersistentVolumeUpdate Uses

func ValidatePersistentVolumeUpdate(newPv, oldPv *api.PersistentVolume) field.ErrorList

ValidatePersistentVolumeUpdate tests to see if the update is legal for an end user to make. newPv is updated with fields that cannot be changed.

func ValidatePod Uses

func ValidatePod(pod *api.Pod) field.ErrorList

ValidatePod tests if required fields in the pod are set.

func ValidatePodBinding Uses

func ValidatePodBinding(binding *api.Binding) field.ErrorList

ValidatePodBinding tests if required fields in the pod binding are legal.

func ValidatePodLogOptions Uses

func ValidatePodLogOptions(opts *api.PodLogOptions) field.ErrorList

func ValidatePodName Uses

func ValidatePodName(name string, prefix bool) (bool, string)

ValidatePodName can be used to check whether the given pod name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidatePodSecurityContext Uses

func ValidatePodSecurityContext(securityContext *api.PodSecurityContext, spec *api.PodSpec, specPath, fldPath *field.Path) field.ErrorList

ValidatePodSecurityContext test that the specified PodSecurityContext has valid data.

func ValidatePodSpec Uses

func ValidatePodSpec(spec *api.PodSpec, fldPath *field.Path) field.ErrorList

ValidatePodSpec tests that the specified PodSpec has valid data. This includes checking formatting and uniqueness. It also canonicalizes the structure by setting default values and implementing any backwards-compatibility tricks.

func ValidatePodSpecificAnnotations Uses

func ValidatePodSpecificAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList

func ValidatePodStatusUpdate Uses

func ValidatePodStatusUpdate(newPod, oldPod *api.Pod) field.ErrorList

ValidatePodStatusUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields that cannot be changed.

func ValidatePodTemplate Uses

func ValidatePodTemplate(pod *api.PodTemplate) field.ErrorList

ValidatePodTemplate tests if required fields in the pod template are set.

func ValidatePodTemplateSpec Uses

func ValidatePodTemplateSpec(spec *api.PodTemplateSpec, fldPath *field.Path) field.ErrorList

ValidatePodTemplateSpec validates the spec of a pod template

func ValidatePodTemplateSpecForRC Uses

func ValidatePodTemplateSpecForRC(template *api.PodTemplateSpec, selectorMap map[string]string, replicas int32, fldPath *field.Path) field.ErrorList

Validates the given template and ensures that it is in accordance with the desrired selector and replicas.

func ValidatePodTemplateUpdate Uses

func ValidatePodTemplateUpdate(newPod, oldPod *api.PodTemplate) field.ErrorList

ValidatePodTemplateUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields that cannot be changed.

func ValidatePodUpdate Uses

func ValidatePodUpdate(newPod, oldPod *api.Pod) field.ErrorList

ValidatePodUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields that cannot be changed.

func ValidatePreferredSchedulingTerms Uses

func ValidatePreferredSchedulingTerms(terms []api.PreferredSchedulingTerm, fldPath *field.Path) field.ErrorList

ValidatePreferredSchedulingTerms tests that the specified SoftNodeAffinity fields has valid data

func ValidateReadOnlyPersistentDisks Uses

func ValidateReadOnlyPersistentDisks(volumes []api.Volume, fldPath *field.Path) field.ErrorList

func ValidateReplicationController Uses

func ValidateReplicationController(controller *api.ReplicationController) field.ErrorList

ValidateReplicationController tests if required fields in the replication controller are set.

func ValidateReplicationControllerName Uses

func ValidateReplicationControllerName(name string, prefix bool) (bool, string)

ValidateReplicationControllerName can be used to check whether the given replication controller name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateReplicationControllerSpec Uses

func ValidateReplicationControllerSpec(spec *api.ReplicationControllerSpec, fldPath *field.Path) field.ErrorList

ValidateReplicationControllerSpec tests if required fields in the replication controller spec are set.

func ValidateReplicationControllerStatusUpdate Uses

func ValidateReplicationControllerStatusUpdate(controller, oldController *api.ReplicationController) field.ErrorList

ValidateReplicationControllerStatusUpdate tests if required fields in the replication controller are set.

func ValidateReplicationControllerUpdate Uses

func ValidateReplicationControllerUpdate(controller, oldController *api.ReplicationController) field.ErrorList

ValidateReplicationControllerUpdate tests if required fields in the replication controller are set.

func ValidateResourceQuota Uses

func ValidateResourceQuota(resourceQuota *api.ResourceQuota) field.ErrorList

ValidateResourceQuota tests if required fields in the ResourceQuota are set.

func ValidateResourceQuotaName Uses

func ValidateResourceQuotaName(name string, prefix bool) (bool, string)

ValidateResourceQuotaName can be used to check whether the given resource quota name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateResourceQuotaStatusUpdate Uses

func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) field.ErrorList

ValidateResourceQuotaStatusUpdate tests to see if the status update is legal for an end user to make. newResourceQuota is updated with fields that cannot be changed.

func ValidateResourceQuotaUpdate Uses

func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) field.ErrorList

ValidateResourceQuotaUpdate tests to see if the update is legal for an end user to make. newResourceQuota is updated with fields that cannot be changed.

func ValidateResourceRequirements Uses

func ValidateResourceRequirements(requirements *api.ResourceRequirements, fldPath *field.Path) field.ErrorList

Validates resource requirement spec.

func ValidateSecret Uses

func ValidateSecret(secret *api.Secret) field.ErrorList

ValidateSecret tests if required fields in the Secret are set.

func ValidateSecretName Uses

func ValidateSecretName(name string, prefix bool) (bool, string)

ValidateSecretName can be used to check whether the given secret name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateSecretUpdate Uses

func ValidateSecretUpdate(newSecret, oldSecret *api.Secret) field.ErrorList

ValidateSecretUpdate tests if required fields in the Secret are set.

func ValidateSecurityContext Uses

func ValidateSecurityContext(sc *api.SecurityContext, fldPath *field.Path) field.ErrorList

ValidateSecurityContext ensure the security context contains valid settings

func ValidateService Uses

func ValidateService(service *api.Service) field.ErrorList

ValidateService tests if required fields in the service are set.

func ValidateServiceAccount Uses

func ValidateServiceAccount(serviceAccount *api.ServiceAccount) field.ErrorList

ValidateServiceAccount tests if required fields in the ServiceAccount are set.

func ValidateServiceAccountName Uses

func ValidateServiceAccountName(name string, prefix bool) (bool, string)

ValidateServiceAccountName can be used to check whether the given service account name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateServiceAccountUpdate Uses

func ValidateServiceAccountUpdate(newServiceAccount, oldServiceAccount *api.ServiceAccount) field.ErrorList

ValidateServiceAccountUpdate tests if required fields in the ServiceAccount are set.

func ValidateServiceName Uses

func ValidateServiceName(name string, prefix bool) (bool, string)

ValidateServiceName can be used to check whether the given service name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.

func ValidateServiceStatusUpdate Uses

func ValidateServiceStatusUpdate(service, oldService *api.Service) field.ErrorList

ValidateServiceStatusUpdate tests if required fields in the Service are set when updating status.

func ValidateServiceUpdate Uses

func ValidateServiceUpdate(service, oldService *api.Service) field.ErrorList

ValidateServiceUpdate tests if required fields in the service are set during an update

func ValidateTaintsInNodeAnnotations Uses

func ValidateTaintsInNodeAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList

ValidateTaintsInNodeAnnotations tests that the serialized taints in Node.Annotations has valid data

func ValidateTolerationsInPodAnnotations Uses

func ValidateTolerationsInPodAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList

ValidateTolerationsInPodAnnotations tests that the serialized tolerations in Pod.Annotations has valid data

type InvalidTypeError Uses

type InvalidTypeError struct {
    ExpectedKind reflect.Kind
    ObservedKind reflect.Kind
    FieldName    string
}

func (*InvalidTypeError) Error Uses

func (i *InvalidTypeError) Error() string

type NullSchema Uses

type NullSchema struct{}

func (NullSchema) ValidateBytes Uses

func (NullSchema) ValidateBytes(data []byte) error

type Schema Uses

type Schema interface {
    ValidateBytes(data []byte) error
}

Schema is an interface that knows how to validate an API object serialized to a byte array.

func NewSwaggerSchemaFromBytes Uses

func NewSwaggerSchemaFromBytes(data []byte, factory Schema) (Schema, error)

type SwaggerSchema Uses

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

func (*SwaggerSchema) ValidateBytes Uses

func (s *SwaggerSchema) ValidateBytes(data []byte) error

func (*SwaggerSchema) ValidateObject Uses

func (s *SwaggerSchema) ValidateObject(obj interface{}, fieldName, typeName string) []error

type TypeNotFoundError Uses

type TypeNotFoundError string

TypeNotFoundError is returned when specified type can not found in schema

func (TypeNotFoundError) Error Uses

func (tnfe TypeNotFoundError) Error() string

type ValidateNameFunc Uses

type ValidateNameFunc func(name string, prefix bool) (bool, string)

ValidateNameFunc validates that the provided name is valid for a given resource type. Not all resources have the same validation rules for names. Prefix is true if the name will have a value appended to it.

Package validation imports 29 packages (graph). Updated 2017-04-15. Refresh now. Tools for package owners. This is a quick bug-fix fork (has fewer than three commits, and only during the week it was created).