func validateDockerStrategy(strategy *buildapi.DockerBuildStrategy, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if strategy.From != nil { allErrs = append(allErrs, validateFromImageReference(strategy.From, fldPath.Child("from"))...) } allErrs = append(allErrs, validateSecretRef(strategy.PullSecret, fldPath.Child("pullSecret"))...) if len(strategy.DockerfilePath) != 0 { cleaned := path.Clean(strategy.DockerfilePath) switch { case strings.HasPrefix(cleaned, "/"): allErrs = append(allErrs, field.Invalid(fldPath.Child("dockerfilePath"), strategy.DockerfilePath, "dockerfilePath must not be an absolute path")) case strings.HasPrefix(cleaned, ".."): allErrs = append(allErrs, field.Invalid(fldPath.Child("dockerfilePath"), strategy.DockerfilePath, "dockerfilePath must not start with ..")) default: if cleaned == "." { cleaned = "" } strategy.DockerfilePath = cleaned } } return allErrs }
func validateDockerStrategy(strategy *buildapi.DockerBuildStrategy, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if strategy.From != nil { allErrs = append(allErrs, validateFromImageReference(strategy.From, fldPath.Child("from"))...) } allErrs = append(allErrs, validateSecretRef(strategy.PullSecret, fldPath.Child("pullSecret"))...) if len(strategy.DockerfilePath) != 0 { cleaned, errs := validateRelativePath(strategy.DockerfilePath, "dockerfilePath", fldPath.Child("dockerfilePath")) allErrs = append(allErrs, errs...) if len(errs) == 0 { strategy.DockerfilePath = cleaned } } allErrs = append(allErrs, ValidateStrategyEnv(strategy.Env, fldPath.Child("env"))...) return allErrs }