0
0
Fork 0
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. ()

* 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:
Austin S. Hemmelgarn 2023-07-25 07:20:22 -04:00 committed by GitHub
parent 585d8f5cf7
commit 4774907feb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 212 additions and 35 deletions

View file

@ -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
View 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'

View file

@ -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",

View 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"
]
}
}

View 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"
}
}
}
}