MCPcopy Create free account
hub / github.com/flant/shell-operator / LoadSchema

Function LoadSchema

pkg/kube/object_patch/validation.go:163–185  ·  view source on GitHub ↗

LoadSchema returns spec.Schema object loaded from yaml in Schemas map.

(name string)

Source from the content-addressed store, hash-verified

161
162// LoadSchema returns spec.Schema object loaded from yaml in Schemas map.
163func LoadSchema(name string) (*spec.Schema, error) {
164 yml, err := yamlutils.BytesToYAMLDoc([]byte(Schemas[name]))
165 if err != nil {
166 return nil, fmt.Errorf("yaml unmarshal: %v", err)
167 }
168 d, err := yamlutils.YAMLToJSON(yml)
169 if err != nil {
170 return nil, fmt.Errorf("yaml to json: %v", err)
171 }
172
173 s := new(spec.Schema)
174
175 if err := json.Unmarshal(d, s); err != nil {
176 return nil, fmt.Errorf("json unmarshal: %v", err)
177 }
178
179 err = spec.ExpandSchema(s, s, nil /*new(noopResCache)*/)
180 if err != nil {
181 return nil, fmt.Errorf("expand schema: %v", err)
182 }
183
184 return s, nil
185}
186
187// See https://github.com/kubernetes/apiextensions-apiserver/blob/1bb376f70aa2c6f2dec9a8c7f05384adbfac7fbb/pkg/apiserver/validation/validation.go#L47
188func ValidateOperationSpec(obj any, s *spec.Schema, rootName string) error {

Callers 2

GetSchemaFunction · 0.70

Calls

no outgoing calls

Tested by 1