distros.json 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  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. "bundle_sentry": {
  81. "description": "Set to true to build an Agent with Sentry telemetry from the CI.",
  82. "oneOf": [
  83. {
  84. "type": "boolean",
  85. "default": false
  86. },
  87. {
  88. "type": "string",
  89. "pattern": "^[a-z][a-z0-9._-]*$"
  90. }
  91. ]
  92. },
  93. "base_image": {
  94. "type": "string",
  95. "description": "A string specifying the Docker image to be used for testing this platform.",
  96. "pattern": "^[a-z][a-z0-9._/:-]*$"
  97. },
  98. "env_prep": {
  99. "type": "string",
  100. "description": "A string containing any shell commands that need to be run to prep the platform for testing in CI."
  101. },
  102. "jsonc_removal": {
  103. "type": "string",
  104. "description": "A string containing a shell command to uninstall JSON-C development files during CI checks."
  105. },
  106. "test": {
  107. "type": "object",
  108. "description": "Contains additional data for usage by CI.",
  109. "properties": {
  110. "ebpf-core": {
  111. "type": "boolean",
  112. "description": "If true, then eBPF CO-RE CI jobs should be run for this platform."
  113. }
  114. }
  115. },
  116. "packages": {
  117. "type": "object",
  118. "description": "Additional information about native packages for this platform.",
  119. "properties": {
  120. "type": {
  121. "type": "string",
  122. "description": "Indicates the type of native packages to build for the platform.",
  123. "enum": [
  124. "deb",
  125. "rpm",
  126. ""
  127. ]
  128. },
  129. "arches": {
  130. "type": "array",
  131. "description": "A list of CPU architectures (specified in the usual manner for the platform) that native packages are built for for this platform.",
  132. "items": {
  133. "type": "string",
  134. "minLength": 1
  135. }
  136. },
  137. "repo_distro": {
  138. "type": "string",
  139. "description": "Identifies the repository name to be used when publishing packages for this platform.",
  140. "minLength": 1
  141. },
  142. "alt_links": {
  143. "type": "array",
  144. "description": "A list of alternative repository names to be used when publishing packages for this platform.",
  145. "items": {
  146. "type": "string",
  147. "minLength": 1
  148. }
  149. }
  150. },
  151. "required": [
  152. "type",
  153. "arches"
  154. ]
  155. }
  156. },
  157. "additionalProperties": false,
  158. "required": [
  159. "distro",
  160. "version",
  161. "support_type",
  162. "notes",
  163. "bundle_sentry"
  164. ]
  165. }
  166. }
  167. }