validation

package
v1.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2023 License: Apache-2.0 Imports: 14 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyDefaults

func ApplyDefaults(obj interface{}, s *spec.Schema) bool

ApplyDefaults traverses an object and apply default values from OpenAPI schema. It returns true if obj is changed.

See https://github.com/kubernetes/kubernetes/blob/cea1d4e20b4a7886d8ff65f34c6d4f95efcb4742/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/schema/defaulting/algorithm.go

Note: check only Properties for object type and List validation for array type.

func LoadSchemaFromBytes

func LoadSchemaFromBytes(openApiContent []byte) (*spec.Schema, error)

LoadSchemaFromBytes returns spec.Schema object loaded from YAML bytes.

func PrepareSchemas

func PrepareSchemas(configBytes, valuesBytes []byte) (schemas map[SchemaType]*spec.Schema, err error)

PrepareSchemas loads schemas for config values, values and helm values.

func ValidateObject

func ValidateObject(dataObj interface{}, s *spec.Schema, rootName string) (multiErr error)

ValidateObject uses schema to validate data structure in the dataObj. See https://github.com/kubernetes/apiextensions-apiserver/blob/1bb376f70aa2c6f2dec9a8c7f05384adbfac7fbb/pkg/apiserver/validation/validation.go#L47

func YAMLBytesToJSONDoc added in v1.1.0

func YAMLBytesToJSONDoc(data []byte) (json.RawMessage, error)

YAMLBytesToJSONDoc is a replacement of swag.YAMLData and YAMLDoc to Unmarshal into interface{}. swag.BytesToYAML uses yaml.MapSlice to unmarshal YAML. This type doesn't support map merge of YAML anchors.

func YAMLDocLoader added in v1.1.0

func YAMLDocLoader(path string) (json.RawMessage, error)

YAMLDocLoader loads a yaml document from either http or a file and converts it to json.

Types

type SchemaStorage

type SchemaStorage struct {
	GlobalSchemas map[SchemaType]*spec.Schema
	ModuleSchemas map[string]map[SchemaType]*spec.Schema
}

func NewSchemaStorage

func NewSchemaStorage() *SchemaStorage

func (*SchemaStorage) AddGlobalValuesSchemas

func (st *SchemaStorage) AddGlobalValuesSchemas(configBytes, valuesBytes []byte) error

AddGlobalValuesSchemas prepares and stores three schemas: config, config+values, config+values+required.

func (*SchemaStorage) AddModuleValuesSchemas

func (st *SchemaStorage) AddModuleValuesSchemas(moduleName string, configBytes, valuesBytes []byte) error

AddModuleValuesSchemas creates schema for module values.

func (*SchemaStorage) GlobalSchemasDescription added in v1.0.6

func (st *SchemaStorage) GlobalSchemasDescription() string

GlobalSchemasDescription describes which global schemas are present in storage.

func (*SchemaStorage) GlobalValuesSchema

func (st *SchemaStorage) GlobalValuesSchema(schemaType SchemaType) *spec.Schema

GlobalValuesSchema returns ready-to-use schema for global values. schemaType is "config", "values" or "helm"

func (*SchemaStorage) ModuleSchemasDescription added in v1.0.6

func (st *SchemaStorage) ModuleSchemasDescription(moduleName string) string

ModuleSchemasDescription describes which schemas are present in storage for the module.

func (*SchemaStorage) ModuleValuesSchema

func (st *SchemaStorage) ModuleValuesSchema(moduleName string, schemaType SchemaType) *spec.Schema

ModuleValuesSchema returns ready-to-use schema for module values. schemaType is "config" of "values"

type SchemaType

type SchemaType string
const (
	GlobalSchema       SchemaType = "global"
	ModuleSchema       SchemaType = "module"
	ConfigValuesSchema SchemaType = "config"
	ValuesSchema       SchemaType = "values"
	HelmValuesSchema   SchemaType = "helm"
)

type ValuesValidator

type ValuesValidator struct {
	SchemaStorage *SchemaStorage
}

func NewValuesValidator

func NewValuesValidator() *ValuesValidator

func (*ValuesValidator) GetSchema added in v1.1.0

func (v *ValuesValidator) GetSchema(schemaType SchemaType, valuesType SchemaType, modName string) *spec.Schema

GetSchema returns a schema from the schema storage.

func (*ValuesValidator) ValidateGlobalConfigValues

func (v *ValuesValidator) ValidateGlobalConfigValues(values utils.Values) error

func (*ValuesValidator) ValidateGlobalValues

func (v *ValuesValidator) ValidateGlobalValues(values utils.Values) error

func (*ValuesValidator) ValidateModuleConfigValues

func (v *ValuesValidator) ValidateModuleConfigValues(moduleName string, values utils.Values) error

func (*ValuesValidator) ValidateModuleHelmValues

func (v *ValuesValidator) ValidateModuleHelmValues(moduleName string, values utils.Values) (multiErr error)

func (*ValuesValidator) ValidateModuleValues

func (v *ValuesValidator) ValidateModuleValues(moduleName string, values utils.Values) (multiErr error)

func (*ValuesValidator) ValidateValues

func (v *ValuesValidator) ValidateValues(schemaType SchemaType, valuesType SchemaType, moduleName string, values utils.Values) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL