Update platform support info and add a schema. (#15531)
Austin S. Hemmelgarn committed
Jul 25, 2023 at 18:18 UTC
62ae1ec03c5fac3afaec5ae763237fc72f629aa6
3 files changed
+240
-7
.github/data/distros.yml
+81
-1
@@ -20,6 +20,8 @@ include:
20
- &alpine
21
distro: alpine
22
version: edge
23
+ support_type: Community
24
+ notes: ''
25
eol_check: false
26
env_prep: |
27
apk add -U bash
@@ -27,18 +29,31 @@ include:
29
apk del json-c-dev
30
test:
31
ebpf-core: true
32
+ - <<: *alpine
33
+ version: "3.18"
34
+ support_type: Core
35
+ notes: ''
36
+ eol_check: true
37
- <<: *alpine
38
version: "3.17"
39
+ support_type: Intermediate
40
+ notes: ''
41
eol_check: true
42
- <<: *alpine
43
version: "3.16"
44
+ support_type: Intermediate
45
+ notes: ''
46
eol_check: true
47
- <<: *alpine
48
version: "3.15"
49
+ support_type: Intermediate
50
+ notes: ''
51
eol_check: true
52
53
- distro: archlinux
54
version: latest
55
+ support_type: Intermediate
56
+ notes: ''
57
eol_check: false
58
env_prep: |
59
pacman --noconfirm -Syu && pacman --noconfirm -Sy grep libffi
@@ -48,6 +63,8 @@ include:
63
- &alma
64
distro: almalinux
65
version: "9"
66
+ support_type: Core
67
+ notes: ''
68
jsonc_removal: |
69
dnf remove -y json-c-devel
70
eol_check: true
@@ -74,6 +91,8 @@ include:
91
- &amzn
92
distro: amazonlinux
93
version: "2"
94
+ support_type: Core
95
+ notes: ''
96
eol_check: 'amazon-linux'
97
packages: &amzn_packages
98
type: rpm
@@ -92,6 +111,8 @@ include:
111
112
- distro: centos
113
version: "7"
114
+ support_type: Core
115
+ notes: ''
116
eol_check: false
117
packages:
118
type: rpm
@@ -107,6 +128,8 @@ include:
128
- &debian
129
distro: debian
130
version: "12"
131
+ support_type: Core
132
+ notes: ''
133
base_image: debian:bookworm
134
eol_check: true
135
env_prep: |
@@ -143,6 +166,8 @@ include:
166
- &fedora
167
distro: fedora
168
version: "38"
169
+ support_type: Core
170
+ notes: ''
171
eol_check: true
172
jsonc_removal: |
173
dnf remove -y json-c-devel
@@ -165,6 +190,8 @@ include:
190
- &opensuse
191
distro: opensuse
192
version: "tumbleweed"
193
+ support_type: Intermediate
194
+ notes: ''
195
eol_check: true
196
base_image: opensuse/tumbleweed
197
jsonc_removal: |
@@ -179,12 +206,16 @@ include:
206
ebpf-core: true
207
- <<: *opensuse
208
version: "15.5"
209
+ support_type: Core
210
+ notes: ''
211
base_image: opensuse/leap:15.5
212
packages:
213
<<: *opensuse_packages
214
repo_distro: opensuse/15.5
215
- <<: *opensuse
216
version: "15.4"
217
+ support_type: Core
218
+ notes: ''
219
base_image: opensuse/leap:15.4
220
packages:
221
<<: *opensuse_packages
@@ -193,6 +224,8 @@ include:
224
- &oracle
225
distro: oraclelinux
226
version: "8"
227
+ support_type: Core
228
+ notes: ''
229
eol_check: true
230
jsonc_removal: |
231
dnf remove -y json-c-devel
@@ -213,6 +246,8 @@ include:
246
- &ubuntu
247
distro: ubuntu
248
version: "22.04"
249
+ support_type: Core
250
+ notes: ''
251
eol_check: true
252
env_prep: |
253
rm -f /etc/apt/apt.conf.d/docker && apt-get update
@@ -239,7 +274,9 @@ include:
274
repo_distro: ubuntu/focal
275
no_include: # Info for platforms not covered in CI
276
- distro: docker
242
- version: latest
277
+ version: "19.03 or newer"
278
+ support_type: Core
279
+ notes: ''
280
packages:
281
arches:
282
- linux/i386
@@ -247,3 +284,46 @@ no_include: # Info for platforms not covered in CI
284
- linux/arm/v7
285
- linux/arm64
286
- linux/ppc64le
287
+
288
+ - distro: clearlinux
289
+ version: latest
290
+ support_type: Community
291
+ notes: ''
292
+
293
+ - &rhel
294
+ distro: rhel
295
+ version: "9.x"
296
+ support_type: Core
297
+ notes: ''
298
+ packages:
299
+ arches:
300
+ - x86_64
301
+ - aarch64
302
+ - <<: *rhel
303
+ version: "8.x"
304
+ - <<: *rhel
305
+ version: "7.x"
306
+ packages:
307
+ arches:
308
+ - x86_64
309
+
310
+ - &freebsd
311
+ distro: freebsd
312
+ version: 13-STABLE
313
+ support_type: Community
314
+ notes: ''
315
+
316
+ - &macos
317
+ distro: macos
318
+ version: '13'
319
+ support_type: Community
320
+ notes: ''
321
+ - <<: *macos
322
+ version: '12'
323
+ - <<: *macos
324
+ version: '11'
325
+
326
+ - distro: gentoo
327
+ version: latest
328
+ support_type: Community
329
+ notes: ''
integrations/schemas/distros.json
new
+153
@@ -0,0 +1,153 @@
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
+}
packaging/PLATFORM_SUPPORT.md
+6
-6
@@ -58,9 +58,11 @@ to work on these platforms with minimal user effort.
58
59
| Platform | Version | Official Native Packages | Notes |
60
|--------------------------|----------------|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
61
-| Alpine Linux | 3.17 | No | The latest release of Alpine Linux is guaranteed to remain at **Core** tier due to usage for our Docker images |
61
+| Alpine Linux | 3.18 | No | The latest release of Alpine Linux is guaranteed to remain at **Core** tier due to usage for our Docker images |
62
| Alma Linux | 9.x | x86\_64, AArch64 | Also includes support for Rocky Linux and other ABI compatible RHEL derivatives |
63
| Alma Linux | 8.x | x86\_64, AArch64 | Also includes support for Rocky Linux and other ABI compatible RHEL derivatives |
64
+| Amazon Linux | 2023 | x86\_64, AArch64 | |
65
+| Amazon Linux | 2 | x86\_64, AArch64 | |
66
| CentOS | 7.x | x86\_64 | |
67
| Docker | 19.03 or newer | x86\_64, i386, ARMv7, AArch64, POWER8+ | See our [Docker documentation](https://github.com/netdata/netdata/blob/master/packaging/docker/README.md) for more info on using Netdata on Docker |
68
| Debian | 12.x | x86\_64, i386, ARMv7, AArch64 | |
@@ -91,10 +93,10 @@ with minimal user effort.
93
94
| Platform | Version | Official Native Packages | Notes |
95
|---------------|------------|--------------------------|------------------------------------------------------------------------------------------------------|
96
+| Alpine Linux | Edge | No | |
97
+| Alpine Linux | 3.17 | No | |
98
| Alpine Linux | 3.16 | No | |
99
| Alpine Linux | 3.15 | No | |
96
-| Amazon Linux | 2023 | x86\_64, AArch64 | Scheduled for promotion to Core tier at some point after the release of v1.39.0 of the Netdata Agent |
97
-| Amazon Linux | 2 | x86\_64, AArch64 | Scheduled for promotion to Core tier at some point after the release of v1.39.0 of the Netdata Agent |
100
| Arch Linux | Latest | No | We officially recommend the community packages available for Arch Linux |
101
| Manjaro Linux | Latest | No | We officially recommend the community packages available for Arch Linux |
102
| openSUSE | Tumbleweed | x86\_64, AArch64 | Scheduled for promotion to Core tier at some point after the release of v1.41.0 of the Netdata Agent |
@@ -109,16 +111,14 @@ platforms, but may require some extra effort from users.
111
112
| Platform | Version | Official Native Packages | Notes |
113
|--------------|------------|--------------------------|-----------------------------------------------------------------------------------------------------------|
112
-| Alpine Linux | Edge | No | |
114
| Clear Linux | Latest | No | |
115
| Debian | Sid | No | |
116
| Fedora | Rawhide | No | |
117
| FreeBSD | 13-STABLE | No | Netdata is included in the FreeBSD Ports Tree, and this is the recommended installation method on FreeBSD |
117
-| FreeBSD | 12-STABLE | No | Netdata is included in the FreeBSD Ports Tree, and this is the recommended installation method on FreeBSD |
118
| Gentoo | Latest | No | |
119
+| macOS | 13 | No | Currently only works for Intel-based hardware. Requires Homebrew for dependencies |
120
| macOS | 12 | No | Currently only works for Intel-based hardware. Requires Homebrew for dependencies |
121
| macOS | 11 | No | Currently only works for Intel-based hardware. Requires Homebrew for dependencies. |
121
-| macOS | 10.15 | No | Requires Homebrew for dependencies. |
122
| openSUSE | Tumbleweed | No | |
123
124
## Third-party supported platforms