Documentation
¶
Index ¶
- Constants
- Variables
- func FormatInvalidError(input, path, errorMsg string) []error
- func ValidateAnnotations(annotations *map[string]string) []error
- func ValidateBase64Field(s string, path string, maxLen int) []error
- func ValidateBearerToken(token *string, path string) []error
- func ValidateCSR(csr []byte) []error
- func ValidateCSRUsages(u *[]string) []error
- func ValidateCSRWithTCGSupport(csr []byte) []error
- func ValidateComposePaths(paths []string) error
- func ValidateComposeSpec(spec *common.ComposeSpec) []error
- func ValidateExpirationSeconds(e *int32) []error
- func ValidateFileOrDirectoryPath(s *string, path string) []error
- func ValidateFilePath(s *string, path string) []error
- func ValidateGenericName(name *string, path string) []error
- func ValidateGitRevision(name *string, path string) []error
- func ValidateLabels(labels *map[string]string) []error
- func ValidateLabelsWithPath(labels *map[string]string, path string) []error
- func ValidateLinuxFileMode(m *int, path string) []error
- func ValidateLinuxUserGroup(s *string, path string) []error
- func ValidateOciImageReference(s *string, path string) []error
- func ValidateOciImageReferenceStrict(s *string, path string) []error
- func ValidateOciImageReferenceWithTemplates(s *string, path string) []error
- func ValidateQuadletPaths(paths []string) error
- func ValidateQuadletSpec(spec *common.QuadletReferences, path string) []error
- func ValidateRelativePath(s *string, path string, maxLength int) []error
- func ValidateResourceName(name *string) []error
- func ValidateResourceNameReference(name *string, path string) []error
- func ValidateResourceOwner(owner *string, kind *string) []error
- func ValidateSignerName(s string) []error
- func ValidateString(s *string, path string, minLen int, maxLen int, patternRegexp *regexp.Regexp, ...) []error
- func ValidateStringMap(m *map[string]string, path string, minLen int, maxLen int, ...) []error
- func ValidateSystemdName(name *string, path string) []error
- type ComposePathType
Constants ¶
const ( Dns1123LabelFmt string = `[a-z0-9]([-a-z0-9]*[a-z0-9])?` DNS1123MaxLength int = 253 )
const ( OciImageDomainFmt string = ociDomainCompFmt + `(?:[.]` + ociDomainCompFmt + `)*` + `(?::[0-9]+)?` OciImageNameFmt string = `(?:` + OciImageDomainFmt + `\/)?` + ociNameCompFmt + `(?:\/` + ociNameCompFmt + `)*` OciImageTagFmt string = `[\w][\w.-]{0,127}` OciImageDigestFmt string = `[A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]{32,}` OciImageReferenceFmt string = `(` + OciImageNameFmt + `)(?:\:(` + OciImageTagFmt + `))?(?:\@(` + OciImageDigestFmt + `))?` OciImageReferenceMaxLength int = 2048 // short names (nginx:latest) are forbidden with strict mode StrictOciImageNameFmt string = OciImageDomainFmt + `\/` + ociNameCompFmt + `(?:\/` + ociNameCompFmt + `)*` StrictOciImageReferenceFmt string = `(` + StrictOciImageNameFmt + `)(?:\:(` + OciImageTagFmt + `))?(?:\@(` + OciImageDigestFmt + `))?` // OCI image reference with a templated tag and optional digest: // <name> ":" <templatedTag> [ "@" <digest> ] OciImageReferenceWithTemplatesFmt = `(` + OciImageNameFmt + `)(?:\:` + templatedTagFmt + `)(?:\@(` + OciImageDigestFmt + `))?` )
const ( // as per https://docs.github.com/en/get-started/using-git/dealing-with-special-characters-in-branch-and-tag-names#naming-branches-and-tags GitRevisionFmt string = `[a-zA-Z0-9]([a-zA-Z0-9\.\-\_\/])*` // GitHub limits to 255 minus "refs/heads/" GitRevisionMaxLength int = 244 )
const ( // SystemD unit pattern supports all allowed formats for unit files and glob searches // This includes templated services (e.g., foo@.service, foo@bar.service) // and glob patterns (e.g., foo*.service, foo[0-9].service) SystemdNameFmt string = `[0-9a-zA-Z:\-_.\\\[\]!\-\*\?]+(@[0-9a-zA-Z:\-_.\\\[\]!\-\*\?]+)?(\.[a-zA-Z\[\]!\-\*\?]+)?` SystemDNameMaxLength int = 256 // SystemD unit names are limited to 256 characters )
Variables ¶
var ( GenericNameRegexp = regexp.MustCompile("^" + Dns1123LabelFmt + "$") EnvVarNameRegexp = regexp.MustCompile("^" + envVarNameFmt + "$") )
var ( OciImageReferenceRegexp = regexp.MustCompile("^" + OciImageReferenceFmt + "$") StrictOciImageReferenceRegexp = regexp.MustCompile("^" + StrictOciImageReferenceFmt + "$") OciImageReferenceWithTemplatesRegexp = regexp.MustCompile("^" + OciImageReferenceWithTemplatesFmt + "$") )
var ErrHardCodedContainerName = errors.New("hardcoded container_name")
var GitRevisionRegexp = regexp.MustCompile("^" + GitRevisionFmt + "$")
var SystemdNameRegexp = regexp.MustCompile("^" + SystemdNameFmt + "$")
Functions ¶
func FormatInvalidError ¶ added in v0.4.0
func ValidateAnnotations ¶
ValidateAnnotations validates that a set of annotations are valid K8s annotations.
func ValidateBearerToken ¶
func ValidateCSR ¶
func ValidateCSRUsages ¶
func ValidateCSRWithTCGSupport ¶ added in v0.9.0
func ValidateComposePaths ¶ added in v0.6.0
func ValidateComposeSpec ¶ added in v0.6.0
func ValidateComposeSpec(spec *common.ComposeSpec) []error
ValidateComposeSpec verifies the ComposeSpec for common issues
func ValidateExpirationSeconds ¶
TODO: this should log a warning if less than minExpirationSeconds using the configured logger
func ValidateFileOrDirectoryPath ¶ added in v0.4.0
func ValidateFilePath ¶ added in v0.3.0
func ValidateGenericName ¶
func ValidateGitRevision ¶
func ValidateLabels ¶
ValidateLabels validates that a set of labels are valid K8s labels.
func ValidateLabelsWithPath ¶
ValidateLabelsWithPath validates that a set of labels are valid K8s labels, with fieldPath being the path to the label field.
func ValidateLinuxFileMode ¶ added in v0.3.0
func ValidateLinuxUserGroup ¶ added in v0.3.0
func ValidateOciImageReference ¶
Validates an OCI image reference.
func ValidateOciImageReferenceStrict ¶ added in v0.6.0
Validates an OCI image reference in strict mode. This mode forbids short names (nginx:latest) and requires a domain name.
func ValidateOciImageReferenceWithTemplates ¶ added in v1.0.0
Validates an OCI image reference that can contain template parameters.
func ValidateQuadletPaths ¶ added in v1.0.0
ValidateQuadletPaths validates a list of paths for inline quadlet applications
func ValidateQuadletSpec ¶ added in v1.0.0
func ValidateQuadletSpec(spec *common.QuadletReferences, path string) []error
ValidateQuadletSpec verifies the QuadletSpec for common issues
func ValidateRelativePath ¶ added in v0.6.0
func ValidateResourceName ¶
ValidateResourceName validates that metadata.name is not empty and is a valid name in K8s.
func ValidateResourceNameReference ¶ added in v0.2.0
ValidateResourceRef validates that metadata.name is not empty and is a valid name in K8s.
func ValidateResourceOwner ¶ added in v0.6.0
ValidateResourceOwner validates that metadata.owner is not empty and is a valid reference.
func ValidateSignerName ¶
Currently every request is sent to the only signer, named "ca" and defined in cmd/flightctl-api/main.go
func ValidateString ¶
func ValidateString(s *string, path string, minLen int, maxLen int, patternRegexp *regexp.Regexp, patternFmt string, patternExample ...string) []error
ValidateString validates that a string has a length between minLen and maxLen, and matches the provided pattern.
func ValidateStringMap ¶ added in v0.3.0
func ValidateStringMap(m *map[string]string, path string, minLen int, maxLen int, keyPatternRegexp, valuePatternRegexp *regexp.Regexp, patternFmt string, patternExample ...string) []error
ValidateStringMap validates that the k,v elements in a map are correctly defined as a string.
func ValidateSystemdName ¶ added in v0.9.0
Types ¶
type ComposePathType ¶ added in v0.6.0
type ComposePathType int
const ( InvalidCompose ComposePathType = iota BaseCompose OverrideCompose )