mirror of
https://github.com/netdata/netdata.git
synced 2025-04-10 16:17:36 +00:00
Add schema for deployment integrations and centralize integrations schemas. (#15509)
* Relocate collector schemas to integrations dir. All the integrations schemas will be stored here. * Add schema for deployment integrations. Also splits a couple of shared parts to a separate schema file, and adds a basic deploy.yaml file with example deployments. * Expanded platform_info key description in schema. * Add docker info to distros.yml.
This commit is contained in:
parent
585d8f5cf7
commit
4774907feb
6 changed files with 212 additions and 35 deletions
.github/data
integrations
10
.github/data/distros.yml
vendored
10
.github/data/distros.yml
vendored
|
@ -237,3 +237,13 @@ include:
|
|||
packages:
|
||||
<<: *ubuntu_packages
|
||||
repo_distro: ubuntu/focal
|
||||
no_include: # Info for platforms not covered in CI
|
||||
- distro: docker
|
||||
version: latest
|
||||
packages:
|
||||
arches:
|
||||
- linux/i386
|
||||
- linux/amd64
|
||||
- linux/arm/v7
|
||||
- linux/arm64
|
||||
- linux/ppc64le
|
||||
|
|
48
integrations/deploy.yaml
Normal file
48
integrations/deploy.yaml
Normal file
|
@ -0,0 +1,48 @@
|
|||
- &linux
|
||||
id: deploy-linux-generic
|
||||
meta: &linux_meta
|
||||
name: Linux
|
||||
link: ''
|
||||
categories:
|
||||
- deploy.operating-systems
|
||||
icon_filename: ''
|
||||
keywords:
|
||||
- linux
|
||||
description: 'Run the following command on your node to install and claim Netdata:"r'
|
||||
methods:
|
||||
- method: wget
|
||||
commands:
|
||||
- channel: nightly
|
||||
command: >
|
||||
wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh
|
||||
--nightly-channel --claim-token {% claim_token %} --claim-url {% claim_url %}
|
||||
- channel: stable
|
||||
command: >
|
||||
wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh
|
||||
--stable-channel --claim-token {% claim_token %} --claim-url {% claim_url %}
|
||||
- method: curl
|
||||
commands:
|
||||
- channel: nightly
|
||||
command: >
|
||||
curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh
|
||||
--nightly-channel --claim-token {% claim_token %} --claim-url {% claim_url %}
|
||||
- channel: stable
|
||||
command: >
|
||||
curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh
|
||||
--stable-channel --claim-token {% claim_token %} --claim-url {% claim_url %}
|
||||
additional_info: &ref_containers >
|
||||
Did you know you can also deploy Netdata on your OS using Kubernetes or Docker?
|
||||
related_resources: {}
|
||||
platform_info:
|
||||
group: ''
|
||||
distro: ''
|
||||
- <<: *linux
|
||||
id: deploy-ubuntu
|
||||
meta:
|
||||
<<: *linux_meta
|
||||
name: Ubuntu
|
||||
link: https://ubuntu.com/
|
||||
icon: ''
|
||||
platform_info:
|
||||
group: 'include'
|
||||
distro: 'ubuntu'
|
|
@ -15,43 +15,10 @@
|
|||
"description": "Module name (e.g. apache, /proc/stat, httpcheck). It usually has the same name as the module configuration file (external plugin) or the section name in netdata.conf (internal plugin)."
|
||||
},
|
||||
"monitored_instance": {
|
||||
"type": "object",
|
||||
"description": "Information about the monitored instance (metrics source).",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Metrics source name (e.g. VerneMQ, Network interfaces, Files and directories). Use official spelling for applications.",
|
||||
"type": "string"
|
||||
},
|
||||
"link": {
|
||||
"description": "Link to the monitored instance official website if any.",
|
||||
"type": "string"
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"description": "Category IDs that this integration falls into. IDs can be found in integrations/categories.yaml",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"description": "String defining integration category"
|
||||
}
|
||||
},
|
||||
"icon_filename": {
|
||||
"type": "string",
|
||||
"description": "The filename of the integration's icon, as sourced from https://github.com/netdata/website/tree/master/themes/tailwind/static/img."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"link",
|
||||
"categories",
|
||||
"icon_filename"
|
||||
]
|
||||
"$ref": "./shared.json#/$defs/instance"
|
||||
},
|
||||
"keywords": {
|
||||
"type": "array",
|
||||
"description": "An array of terms related to the integration.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
"$ref": "./shared.json#/$defs/keywords"
|
||||
},
|
||||
"related_resources": {
|
||||
"type": "object",
|
107
integrations/schemas/deploy.json
Normal file
107
integrations/schemas/deploy.json
Normal file
|
@ -0,0 +1,107 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"type": "array",
|
||||
"title": "Netdata deployment information meta.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"description": "Individual entries for deployment information.",
|
||||
"properties" :{
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "A unique ID for this integration."
|
||||
},
|
||||
"meta": {
|
||||
"$ref": "./shared.json#/$defs/instance"
|
||||
},
|
||||
"keywords": {
|
||||
"$ref": "./shared.json#/$defs/keywords"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "Describes basic information about how to deploy on this platform."
|
||||
},
|
||||
"methods": {
|
||||
"type": "array",
|
||||
"description": "Describes the various ways to deploy on this platform.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"method": {
|
||||
"type": "string",
|
||||
"description": "The name of the installation method."
|
||||
},
|
||||
"commands": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel": {
|
||||
"type": "string",
|
||||
"description": "The release channel that this command is used for.",
|
||||
"enum": [
|
||||
"nightly",
|
||||
"stable"
|
||||
]
|
||||
},
|
||||
"command": {
|
||||
"type": "string",
|
||||
"description": "The command to run for installing using this method."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"channel",
|
||||
"command"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"method",
|
||||
"commands"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additional_info": {
|
||||
"type": "string",
|
||||
"description": "Any additional information about this platform."
|
||||
},
|
||||
"related_resources": {
|
||||
"type": "object",
|
||||
"description": "TBD"
|
||||
},
|
||||
"platform_info": {
|
||||
"type": "object",
|
||||
"description": "References what platform this deployment info is for. In the parsed output, this will be replaced with a markdown string covering basic support information for this platform.",
|
||||
"properties": {
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "Identifies the group that the platform is in. 'include' is used for platforms that are in auto-generated CI. 'no_include' is used for platforms that are not in auto-generated CI. An empty string indicates no associated platform information.",
|
||||
"enum": [
|
||||
"include",
|
||||
"no_include",
|
||||
""
|
||||
]
|
||||
},
|
||||
"distro": {
|
||||
"type": "string",
|
||||
"description": "Identifies the platform within the group, based on the value of the 'distro' key."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"group",
|
||||
"distro"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"meta",
|
||||
"keywords",
|
||||
"description",
|
||||
"methods",
|
||||
"additional_info",
|
||||
"related_resources",
|
||||
"platform_info"
|
||||
]
|
||||
}
|
||||
}
|
45
integrations/schemas/shared.json
Normal file
45
integrations/schemas/shared.json
Normal file
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Shared definitions used for all integrations schemas.",
|
||||
"$defs": {
|
||||
"instance": {
|
||||
"type": "object",
|
||||
"description": "Information about the integration instance.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Integration display name. Use official spelling for applications.",
|
||||
"type": "string"
|
||||
},
|
||||
"link": {
|
||||
"description": "Link to the instance official website if any.",
|
||||
"type": "string"
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"description": "Category IDs that this integration falls into. IDs can be found in integrations/categories.yaml",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"description": "String defining integration category"
|
||||
}
|
||||
},
|
||||
"icon_filename": {
|
||||
"type": "string",
|
||||
"description": "The filename of the integration's icon, as sourced from https://github.com/netdata/website/tree/master/themes/tailwind/static/img."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"link",
|
||||
"categories",
|
||||
"icon_filename"
|
||||
]
|
||||
},
|
||||
"keywords": {
|
||||
"type": "array",
|
||||
"description": "An array of terms related to the integration.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue