Documentation ¶
Overview ¶
Package validation has functions for validating the correctness of api objects and explaining what is wrong with them when they aren't valid.
Index ¶
- Constants
- Variables
- func AccumulateUniqueHostPorts(containers []api.Container, accumulator *sets.String) errs.ValidationErrorList
- func IsSecretKey(value string) bool
- func NameIsDNS952Label(name string, prefix bool) (bool, string)
- func NameIsDNSLabel(name string, prefix bool) (bool, string)
- func NameIsDNSSubdomain(name string, prefix bool) (bool, string)
- func NewInvalidTypeError(expected reflect.Kind, observed reflect.Kind, fieldName string) error
- func ValidateAnnotations(annotations map[string]string, field string) errs.ValidationErrorList
- func ValidateEndpoints(endpoints *api.Endpoints) errs.ValidationErrorList
- func ValidateEndpointsName(name string, prefix bool) (bool, string)
- func ValidateEndpointsUpdate(oldEndpoints, newEndpoints *api.Endpoints) errs.ValidationErrorList
- func ValidateEvent(event *api.Event) errs.ValidationErrorList
- func ValidateLabelName(labelName, fieldName string) errs.ValidationErrorList
- func ValidateLabels(labels map[string]string, field string) errs.ValidationErrorList
- func ValidateLimitRange(limitRange *api.LimitRange) errs.ValidationErrorList
- func ValidateLimitRangeName(name string, prefix bool) (bool, string)
- func ValidateLoadBalancerStatus(status *api.LoadBalancerStatus) errs.ValidationErrorList
- func ValidateNamespace(namespace *api.Namespace) errs.ValidationErrorList
- func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *api.Namespace) errs.ValidationErrorList
- func ValidateNamespaceName(name string, prefix bool) (bool, string)
- func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *api.Namespace) errs.ValidationErrorList
- func ValidateNamespaceUpdate(newNamespace *api.Namespace, oldNamespace *api.Namespace) errs.ValidationErrorList
- func ValidateNode(node *api.Node) errs.ValidationErrorList
- func ValidateNodeName(name string, prefix bool) (bool, string)
- func ValidateNodeUpdate(oldNode *api.Node, node *api.Node) errs.ValidationErrorList
- func ValidateNonEmptySelector(selectorMap map[string]string, fieldName string) errs.ValidationErrorList
- func ValidateObjectMeta(meta *api.ObjectMeta, requiresNamespace bool, nameFn ValidateNameFunc) errs.ValidationErrorList
- func ValidateObjectMetaUpdate(new, old *api.ObjectMeta) errs.ValidationErrorList
- func ValidatePersistentVolume(pv *api.PersistentVolume) errs.ValidationErrorList
- func ValidatePersistentVolumeClaim(pvc *api.PersistentVolumeClaim) errs.ValidationErrorList
- func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) errs.ValidationErrorList
- func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) errs.ValidationErrorList
- func ValidatePersistentVolumeName(name string, prefix bool) (bool, string)
- func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *api.PersistentVolume) errs.ValidationErrorList
- func ValidatePersistentVolumeUpdate(newPv, oldPv *api.PersistentVolume) errs.ValidationErrorList
- func ValidatePod(pod *api.Pod) errs.ValidationErrorList
- func ValidatePodLogOptions(opts *api.PodLogOptions) errs.ValidationErrorList
- func ValidatePodName(name string, prefix bool) (bool, string)
- func ValidatePodSecurityContext(securityContext *api.PodSecurityContext, spec *api.PodSpec) errs.ValidationErrorList
- func ValidatePodSpec(spec *api.PodSpec) errs.ValidationErrorList
- func ValidatePodStatusUpdate(newPod, oldPod *api.Pod) errs.ValidationErrorList
- func ValidatePodTemplate(pod *api.PodTemplate) errs.ValidationErrorList
- func ValidatePodTemplateSpec(spec *api.PodTemplateSpec) errs.ValidationErrorList
- func ValidatePodTemplateSpecForRC(template *api.PodTemplateSpec, selectorMap map[string]string, replicas int, ...) errs.ValidationErrorList
- func ValidatePodTemplateUpdate(newPod, oldPod *api.PodTemplate) errs.ValidationErrorList
- func ValidatePodUpdate(newPod, oldPod *api.Pod) errs.ValidationErrorList
- func ValidatePositiveField(value int64, fieldName string) errs.ValidationErrorList
- func ValidatePositiveQuantity(value resource.Quantity, fieldName string) errs.ValidationErrorList
- func ValidateReadOnlyPersistentDisks(volumes []api.Volume) errs.ValidationErrorList
- func ValidateReplicationController(controller *api.ReplicationController) errs.ValidationErrorList
- func ValidateReplicationControllerName(name string, prefix bool) (bool, string)
- func ValidateReplicationControllerSpec(spec *api.ReplicationControllerSpec) errs.ValidationErrorList
- func ValidateReplicationControllerStatusUpdate(oldController, controller *api.ReplicationController) errs.ValidationErrorList
- func ValidateReplicationControllerUpdate(oldController, controller *api.ReplicationController) errs.ValidationErrorList
- func ValidateResourceQuota(resourceQuota *api.ResourceQuota) errs.ValidationErrorList
- func ValidateResourceQuotaName(name string, prefix bool) (bool, string)
- func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) errs.ValidationErrorList
- func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) errs.ValidationErrorList
- func ValidateResourceRequirements(requirements *api.ResourceRequirements) errs.ValidationErrorList
- func ValidateSecret(secret *api.Secret) errs.ValidationErrorList
- func ValidateSecretName(name string, prefix bool) (bool, string)
- func ValidateSecretUpdate(oldSecret, newSecret *api.Secret) errs.ValidationErrorList
- func ValidateSecurityContext(sc *api.SecurityContext) errs.ValidationErrorList
- func ValidateService(service *api.Service) errs.ValidationErrorList
- func ValidateServiceAccount(serviceAccount *api.ServiceAccount) errs.ValidationErrorList
- func ValidateServiceAccountName(name string, prefix bool) (bool, string)
- func ValidateServiceAccountUpdate(oldServiceAccount, newServiceAccount *api.ServiceAccount) errs.ValidationErrorList
- func ValidateServiceName(name string, prefix bool) (bool, string)
- func ValidateServiceUpdate(oldService, service *api.Service) errs.ValidationErrorList
- type InvalidTypeError
- type NullSchema
- type Schema
- type SwaggerSchema
- type ValidateNameFunc
Constants ¶
const SecretKeyFmt string = "\\.?" + validation.DNS1123LabelFmt + "(\\." + validation.DNS1123LabelFmt + ")*"
Variables ¶
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 RepairMalformedUpdates bool = true
TODO: delete this global variable when we enable the validation of common fields by default.
Functions ¶
func AccumulateUniqueHostPorts ¶ added in v0.18.0
func AccumulateUniqueHostPorts(containers []api.Container, accumulator *sets.String) errs.ValidationErrorList
AccumulateUniqueHostPorts extracts each HostPort of each Container, accumulating the results and returning an error if any ports conflict.
func IsSecretKey ¶ added in v0.18.0
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 NameIsDNS952Label ¶ added in v1.1.0
NameIsDNS952Label is a ValidateNameFunc for names that must be a DNS 952 label.
func NameIsDNSLabel ¶ added in v1.1.0
NameIsDNSLabel is a ValidateNameFunc for names that must be a DNS 1123 label.
func NameIsDNSSubdomain ¶ added in v1.1.0
NameIsDNSSubdomain is a ValidateNameFunc for names that must be a DNS subdomain.
func NewInvalidTypeError ¶ added in v0.6.0
func ValidateAnnotations ¶ added in v0.10.0
func ValidateAnnotations(annotations map[string]string, field string) errs.ValidationErrorList
ValidateAnnotations validates that a set of annotations are correctly defined.
func ValidateEndpoints ¶ added in v0.14.0
func ValidateEndpoints(endpoints *api.Endpoints) errs.ValidationErrorList
ValidateEndpoints tests if required fields are set.
func ValidateEndpointsName ¶ added in v0.14.0
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 ValidateEndpointsUpdate ¶ added in v0.14.0
func ValidateEndpointsUpdate(oldEndpoints, newEndpoints *api.Endpoints) errs.ValidationErrorList
ValidateEndpointsUpdate tests to make sure an endpoints update can be applied.
func ValidateEvent ¶ added in v0.5.1
func ValidateEvent(event *api.Event) errs.ValidationErrorList
ValidateEvent makes sure that the event makes sense.
func ValidateLabelName ¶ added in v1.1.0
func ValidateLabelName(labelName, fieldName string) errs.ValidationErrorList
func ValidateLabels ¶ added in v0.9.0
func ValidateLabels(labels map[string]string, field string) errs.ValidationErrorList
ValidateLabels validates that a set of labels are correctly defined.
func ValidateLimitRange ¶ added in v0.10.0
func ValidateLimitRange(limitRange *api.LimitRange) errs.ValidationErrorList
ValidateLimitRange tests if required fields in the LimitRange are set.
func ValidateLimitRangeName ¶ added in v0.12.0
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 ¶ added in v1.1.1
func ValidateLoadBalancerStatus(status *api.LoadBalancerStatus) errs.ValidationErrorList
ValidateLoadBalancerStatus validates required fields on a LoadBalancerStatus
func ValidateNamespace ¶ added in v0.11.0
func ValidateNamespace(namespace *api.Namespace) errs.ValidationErrorList
ValidateNamespace tests if required fields are set.
func ValidateNamespaceFinalizeUpdate ¶ added in v0.14.0
func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *api.Namespace) errs.ValidationErrorList
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 ¶ added in v0.11.0
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 ¶ added in v0.13.1
func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *api.Namespace) errs.ValidationErrorList
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 ¶ added in v0.11.0
func ValidateNamespaceUpdate(newNamespace *api.Namespace, oldNamespace *api.Namespace) errs.ValidationErrorList
ValidateNamespaceUpdate tests to make sure a namespace update can be applied. newNamespace is updated with fields that cannot be changed
func ValidateNode ¶ added in v0.16.0
func ValidateNode(node *api.Node) errs.ValidationErrorList
ValidateNode tests if required fields in the node are set.
func ValidateNodeName ¶ added in v0.10.0
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 ValidateNodeUpdate ¶ added in v0.16.0
ValidateNodeUpdate tests to make sure a node update can be applied. Modifies oldNode.
func ValidateNonEmptySelector ¶ added in v1.1.0
func ValidateNonEmptySelector(selectorMap map[string]string, fieldName string) errs.ValidationErrorList
Validates that the given selector is non-empty.
func ValidateObjectMeta ¶ added in v0.10.0
func ValidateObjectMeta(meta *api.ObjectMeta, requiresNamespace bool, nameFn ValidateNameFunc) errs.ValidationErrorList
ValidateObjectMeta validates an object's metadata on creation. It expects that name generation has already been performed. TODO: Remove calls to this method scattered in validations of specific resources, e.g., ValidatePodUpdate.
func ValidateObjectMetaUpdate ¶ added in v0.10.0
func ValidateObjectMetaUpdate(new, old *api.ObjectMeta) errs.ValidationErrorList
ValidateObjectMetaUpdate validates an object's metadata when updated
func ValidatePersistentVolume ¶ added in v0.14.0
func ValidatePersistentVolume(pv *api.PersistentVolume) errs.ValidationErrorList
func ValidatePersistentVolumeClaim ¶ added in v0.14.0
func ValidatePersistentVolumeClaim(pvc *api.PersistentVolumeClaim) errs.ValidationErrorList
func ValidatePersistentVolumeClaimStatusUpdate ¶ added in v0.15.0
func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) errs.ValidationErrorList
func ValidatePersistentVolumeClaimUpdate ¶ added in v0.15.0
func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) errs.ValidationErrorList
func ValidatePersistentVolumeName ¶ added in v0.14.0
func ValidatePersistentVolumeStatusUpdate ¶ added in v0.15.0
func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *api.PersistentVolume) errs.ValidationErrorList
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 ¶ added in v0.15.0
func ValidatePersistentVolumeUpdate(newPv, oldPv *api.PersistentVolume) errs.ValidationErrorList
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 ¶
func ValidatePod(pod *api.Pod) errs.ValidationErrorList
ValidatePod tests if required fields in the pod are set.
func ValidatePodLogOptions ¶ added in v1.1.0
func ValidatePodLogOptions(opts *api.PodLogOptions) errs.ValidationErrorList
func ValidatePodName ¶ added in v0.10.0
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 ¶
func ValidatePodSecurityContext(securityContext *api.PodSecurityContext, spec *api.PodSpec) errs.ValidationErrorList
ValidatePodSecurityContext test that the specified PodSecurityContext has valid data.
func ValidatePodSpec ¶ added in v0.5.1
func ValidatePodSpec(spec *api.PodSpec) errs.ValidationErrorList
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 ValidatePodStatusUpdate ¶ added in v0.13.0
func ValidatePodStatusUpdate(newPod, oldPod *api.Pod) errs.ValidationErrorList
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 ¶ added in v0.16.0
func ValidatePodTemplate(pod *api.PodTemplate) errs.ValidationErrorList
ValidatePodTemplate tests if required fields in the pod template are set.
func ValidatePodTemplateSpec ¶ added in v0.5.1
func ValidatePodTemplateSpec(spec *api.PodTemplateSpec) errs.ValidationErrorList
ValidatePodTemplateSpec validates the spec of a pod template
func ValidatePodTemplateSpecForRC ¶ added in v1.1.0
func ValidatePodTemplateSpecForRC(template *api.PodTemplateSpec, selectorMap map[string]string, replicas int, fieldName string) errs.ValidationErrorList
Validates the given template and ensures that it is in accordance with the desrired selector and replicas.
func ValidatePodTemplateUpdate ¶ added in v0.16.0
func ValidatePodTemplateUpdate(newPod, oldPod *api.PodTemplate) errs.ValidationErrorList
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 ¶
func ValidatePodUpdate(newPod, oldPod *api.Pod) errs.ValidationErrorList
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 ValidatePositiveField ¶ added in v1.1.0
func ValidatePositiveField(value int64, fieldName string) errs.ValidationErrorList
Validates that given value is not negative.
func ValidatePositiveQuantity ¶ added in v1.1.0
func ValidatePositiveQuantity(value resource.Quantity, fieldName string) errs.ValidationErrorList
Validates that a Quantity is not negative
func ValidateReadOnlyPersistentDisks ¶
func ValidateReadOnlyPersistentDisks(volumes []api.Volume) errs.ValidationErrorList
func ValidateReplicationController ¶
func ValidateReplicationController(controller *api.ReplicationController) errs.ValidationErrorList
ValidateReplicationController tests if required fields in the replication controller are set.
func ValidateReplicationControllerName ¶ added in v0.10.0
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 ¶ added in v0.5.1
func ValidateReplicationControllerSpec(spec *api.ReplicationControllerSpec) errs.ValidationErrorList
ValidateReplicationControllerSpec tests if required fields in the replication controller spec are set.
func ValidateReplicationControllerStatusUpdate ¶ added in v1.1.1
func ValidateReplicationControllerStatusUpdate(oldController, controller *api.ReplicationController) errs.ValidationErrorList
ValidateReplicationControllerStatusUpdate tests if required fields in the replication controller are set.
func ValidateReplicationControllerUpdate ¶ added in v0.10.0
func ValidateReplicationControllerUpdate(oldController, controller *api.ReplicationController) errs.ValidationErrorList
ValidateReplicationControllerUpdate tests if required fields in the replication controller are set.
func ValidateResourceQuota ¶ added in v0.10.0
func ValidateResourceQuota(resourceQuota *api.ResourceQuota) errs.ValidationErrorList
ValidateResourceQuota tests if required fields in the ResourceQuota are set.
func ValidateResourceQuotaName ¶ added in v0.12.0
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 ¶ added in v0.13.1
func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) errs.ValidationErrorList
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 ¶ added in v0.13.1
func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) errs.ValidationErrorList
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 ¶ added in v0.16.0
func ValidateResourceRequirements(requirements *api.ResourceRequirements) errs.ValidationErrorList
Validates resource requirement spec.
func ValidateSecret ¶ added in v0.12.0
func ValidateSecret(secret *api.Secret) errs.ValidationErrorList
ValidateSecret tests if required fields in the Secret are set.
func ValidateSecretName ¶ added in v0.12.0
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 ¶ added in v0.17.0
func ValidateSecretUpdate(oldSecret, newSecret *api.Secret) errs.ValidationErrorList
ValidateSecretUpdate tests if required fields in the Secret are set.
func ValidateSecurityContext ¶ added in v0.17.0
func ValidateSecurityContext(sc *api.SecurityContext) errs.ValidationErrorList
ValidateSecurityContext ensure the security context contains valid settings
func ValidateService ¶
func ValidateService(service *api.Service) errs.ValidationErrorList
ValidateService tests if required fields in the service are set.
func ValidateServiceAccount ¶ added in v0.18.0
func ValidateServiceAccount(serviceAccount *api.ServiceAccount) errs.ValidationErrorList
ValidateServiceAccount tests if required fields in the ServiceAccount are set.
func ValidateServiceAccountName ¶ added in v0.18.0
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 ¶ added in v0.18.0
func ValidateServiceAccountUpdate(oldServiceAccount, newServiceAccount *api.ServiceAccount) errs.ValidationErrorList
ValidateServiceAccountUpdate tests if required fields in the ServiceAccount are set.
func ValidateServiceName ¶ added in v0.10.0
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 ValidateServiceUpdate ¶ added in v0.10.0
func ValidateServiceUpdate(oldService, service *api.Service) errs.ValidationErrorList
ValidateServiceUpdate tests if required fields in the service are set during an update
Types ¶
type InvalidTypeError ¶ added in v0.6.0
type InvalidTypeError struct { ExpectedKind reflect.Kind ObservedKind reflect.Kind FieldName string }
func (*InvalidTypeError) Error ¶ added in v0.6.0
func (i *InvalidTypeError) Error() string
type NullSchema ¶ added in v0.7.0
type NullSchema struct{}
func (NullSchema) ValidateBytes ¶ added in v0.7.0
func (NullSchema) ValidateBytes(data []byte) error
type Schema ¶ added in v0.6.0
Schema is an interface that knows how to validate an API object serialized to a byte array.
func NewSwaggerSchemaFromBytes ¶ added in v0.7.0
type SwaggerSchema ¶ added in v0.7.0
type SwaggerSchema struct {
// contains filtered or unexported fields
}
func (*SwaggerSchema) ValidateBytes ¶ added in v0.7.0
func (s *SwaggerSchema) ValidateBytes(data []byte) error
func (*SwaggerSchema) ValidateObject ¶ added in v0.7.0
func (s *SwaggerSchema) ValidateObject(obj interface{}, fieldName, typeName string) errs.ValidationErrorList
type ValidateNameFunc ¶ added in v0.10.0
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.