2
0

schema_validate.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package preview
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/santhosh-tekuri/jsonschema/v5"
  6. )
  7. func validateWebChartValues(values map[string]interface{}) error {
  8. webValuesSchema, err := schemas.ReadFile("embed/web.values.schema.json")
  9. if err != nil {
  10. return fmt.Errorf("error reading web chart values schema: %w", err)
  11. }
  12. scm, err := jsonschema.CompileString("web.values.schema.json", string(webValuesSchema))
  13. if err != nil {
  14. return fmt.Errorf("error compiling web chart values schema: %w", err)
  15. }
  16. jsonBytes, err := json.Marshal(values)
  17. if err != nil {
  18. return fmt.Errorf("error marshalling values to JSON: %w", err)
  19. }
  20. var v interface{}
  21. if err := json.Unmarshal(jsonBytes, &v); err != nil {
  22. return fmt.Errorf("error unmarshalling values JSON to interface: %w", err)
  23. }
  24. return scm.Validate(v)
  25. }
  26. func validateWorkerChartValues(values map[string]interface{}) error {
  27. workerValuesSchema, err := schemas.ReadFile("embed/worker.values.schema.json")
  28. if err != nil {
  29. return fmt.Errorf("error reading worker chart values schema: %w", err)
  30. }
  31. scm, err := jsonschema.CompileString("worker.values.schema.json", string(workerValuesSchema))
  32. if err != nil {
  33. return fmt.Errorf("error compiling worker chart values schema: %w", err)
  34. }
  35. jsonBytes, err := json.Marshal(values)
  36. if err != nil {
  37. return fmt.Errorf("error marshalling values to JSON: %w", err)
  38. }
  39. var v interface{}
  40. if err := json.Unmarshal(jsonBytes, &v); err != nil {
  41. return fmt.Errorf("error unmarshalling values JSON to interface: %w", err)
  42. }
  43. return scm.Validate(v)
  44. }
  45. func validateJobChartValues(values map[string]interface{}) error {
  46. jobValuesSchema, err := schemas.ReadFile("embed/job.values.schema.json")
  47. if err != nil {
  48. return fmt.Errorf("error reading job chart values schema: %w", err)
  49. }
  50. scm, err := jsonschema.CompileString("job.values.schema.json", string(jobValuesSchema))
  51. if err != nil {
  52. return fmt.Errorf("error compiling job chart values schema: %w", err)
  53. }
  54. jsonBytes, err := json.Marshal(values)
  55. if err != nil {
  56. return fmt.Errorf("error marshalling values to JSON: %w", err)
  57. }
  58. var v interface{}
  59. if err := json.Unmarshal(jsonBytes, &v); err != nil {
  60. return fmt.Errorf("error unmarshalling values JSON to interface: %w", err)
  61. }
  62. return scm.Validate(v)
  63. }