templates.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package models
  2. // IndexYAML represents a chart repo's index.yaml
  3. type IndexYAML struct {
  4. APIVersion string `yaml:"apiVersion"`
  5. Generated string `yaml:"generated"`
  6. Entries map[interface{}]ChartYAML `yaml:"entries"`
  7. }
  8. // ChartYAML represents the data for chart in index.yaml
  9. type ChartYAML []struct {
  10. APIVersion string `yaml:"apiVersion"`
  11. AppVersion string `yaml:"appVersion"`
  12. Created string `yaml:"created"`
  13. Description string `yaml:"description"`
  14. Digest string `yaml:"digest"`
  15. Icon string `yaml:"icon"`
  16. Name string `yaml:"name"`
  17. Type string `yaml:"type"`
  18. Urls []string `yaml:"urls"`
  19. Version string `yaml:"version"`
  20. }
  21. // PorterChart represents a bundled Porter template
  22. type PorterChart struct {
  23. Name string
  24. Description string
  25. Icon string
  26. Form FormYAML
  27. Markdown string
  28. }
  29. // FormYAML represents a chart's values.yaml form abstraction
  30. type FormYAML struct {
  31. Name string `yaml:"name"`
  32. Icon string `yaml:"icon"`
  33. Description string `yaml:"description"`
  34. Tags []string `yaml:"tags"`
  35. Tabs []struct {
  36. Name string `yaml:"name"`
  37. Label string `yaml:"label"`
  38. Sections []struct {
  39. Name string `yaml:"name"`
  40. ShowIf string `yaml:"show_if"`
  41. Contents []struct {
  42. Type string `yaml:"type"`
  43. Label string `yaml:"label"`
  44. Name string `yaml:"name,omitempty"`
  45. Variable string `yaml:"variable,omitempty"`
  46. Settings struct {
  47. Default interface{}
  48. } `yaml:"settings,omitempty"`
  49. } `yaml:"contents"`
  50. } `yaml:"sections"`
  51. } `yaml:"tabs"`
  52. }