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