master
json 167 lines 5.09 KB
Raw
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 }