LoadSchema returns spec.Schema object loaded from yaml in Schemas map.
(name string)
| 161 | |
| 162 | // LoadSchema returns spec.Schema object loaded from yaml in Schemas map. |
| 163 | func 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 |
| 188 | func ValidateOperationSpec(obj any, s *spec.Schema, rootName string) error { |
no outgoing calls