distros.json 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "type": "object",
  4. "title": "Platform support information for the Netdata agent.",
  5. "properties": {
  6. "platform_map": {
  7. "type": "object",
  8. "description": "Maps CPU architectures to Docker platform strings. Used by CI when generating build matrices.",
  9. "patternProperties": {
  10. "^.+$": {
  11. "type": "string",
  12. "minLength": 1
  13. }
  14. },
  15. "additionalProperties": false
  16. },
  17. "arch_order": {
  18. "type": "array",
  19. "description": "Defines the CPU architecture sort order used when generating build matrices in CI.",
  20. "items": {
  21. "type": "string",
  22. "minLength": 1
  23. }
  24. },
  25. "include": {
  26. "type": "array",
  27. "description": "Defines data for platforms that are included in CI.",
  28. "items": {
  29. "$ref": "#/$defs/platform"
  30. }
  31. }
  32. },
  33. "required": [
  34. "platform_map",
  35. "arch_order",
  36. "include"
  37. ],
  38. "$defs": {
  39. "platform": {
  40. "type": "object",
  41. "description": "Describes a platform.",
  42. "properties": {
  43. "distro": {
  44. "type": "string",
  45. "description": "The name of the platform.",
  46. "pattern": "^[a-z][a-z0-9]*$"
  47. },
  48. "version": {
  49. "type": "string",
  50. "description": "Version identifier for the platform.",
  51. "pattern": "^[a-z0-9][a-z.0-9]*$"
  52. },
  53. "support_type": {
  54. "type": "string",
  55. "description": "Defines the support tier that the platform is in.",
  56. "enum": [
  57. "Core",
  58. "Intermediate",
  59. "Community",
  60. "Third-Party",
  61. "Unsupported"
  62. ]
  63. },
  64. "notes": {
  65. "type": "string",
  66. "description": "Any additional notes about the platform."
  67. },
  68. "eol_check": {
  69. "description": "Indicates if EOL checks should be done for this platform. Only relevant if the platform is included in CI. If the value is a string, that value is used for the EOL check lookup, otherwise the value of the distro key is used.",
  70. "oneOf": [
  71. {
  72. "type": "boolean"
  73. },
  74. {
  75. "type": "string",
  76. "pattern": "^[a-z][a-z0-9._-]*$"
  77. }
  78. ]
  79. },
  80. "base_image": {
  81. "type": "string",
  82. "description": "A string specifying the Docker image to be used for testing this platform.",
  83. "pattern": "^[a-z][a-z0-9._/:-]*$"
  84. },
  85. "env_prep": {
  86. "type": "string",
  87. "description": "A string containing any shell commands that need to be run to prep the platform for testing in CI."
  88. },
  89. "jsonc_removal": {
  90. "type": "string",
  91. "description": "A string containing a shell command to uninstall JSON-C development files during CI checks."
  92. },
  93. "test": {
  94. "type": "object",
  95. "description": "Contains additional data for usage by CI.",
  96. "properties": {
  97. "ebpf-core": {
  98. "type": "boolean",
  99. "description": "If true, then eBPF CO-RE CI jobs should be run for this platform."
  100. }
  101. }
  102. },
  103. "packages": {
  104. "type": "object",
  105. "description": "Additional information about native packages for this platform.",
  106. "properties": {
  107. "type": {
  108. "type": "string",
  109. "description": "Indicates the type of native packages to build for the platform.",
  110. "enum": [
  111. "deb",
  112. "rpm",
  113. ""
  114. ]
  115. },
  116. "arches": {
  117. "type": "array",
  118. "description": "A list of CPU architectures (specified in the usual manner for the platform) that native packages are built for for this platform.",
  119. "items": {
  120. "type": "string",
  121. "minLength": 1
  122. }
  123. },
  124. "repo_distro": {
  125. "type": "string",
  126. "description": "Identifies the repository name to be used when publishing packages for this platform.",
  127. "minLength": 1
  128. },
  129. "alt_links": {
  130. "type": "array",
  131. "description": "A list of alternative repository names to be used when publishing packages for this platform.",
  132. "items": {
  133. "type": "string",
  134. "minLength": 1
  135. }
  136. }
  137. },
  138. "required": [
  139. "type",
  140. "arches"
  141. ]
  142. }
  143. },
  144. "additionalProperties": false,
  145. "required": [
  146. "distro",
  147. "version",
  148. "support_type",
  149. "notes"
  150. ]
  151. }
  152. }
  153. }