mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2025-12-13 21:34:40 +03:00
Some packages requirements depends on inventory variables (`kube_proxy_mode` in that case but it could apply to others). As the case seems pretty rare, instead of adding complexity to pkgs, we add an escape hatch to use jinja conditions. That should be revisited if we find ourselves shoehorning lots of logic in this later on.
81 lines
3.7 KiB
JSON
81 lines
3.7 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://kubespray.io/internal/os_packages.schema.json",
|
|
"title": "Os packages",
|
|
"description": "Criteria for selecting packages to install on Kubernetes nodes during installation by Kubespray",
|
|
"type": "object",
|
|
"patternProperties": {
|
|
".*": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Escape hatch to filter packages. The value is expected to be pre-resolved to a boolean by Jinja",
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"groups": {
|
|
"description": "Match if the host is in one of these groups. If not specified match any host.",
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items":{
|
|
"type": "string",
|
|
"pattern": "^[0-9A-Za-z_]*$"
|
|
}
|
|
},
|
|
"os": {
|
|
"type": "object",
|
|
"description": "If not specified match any OS. Otherwise, must match by 'families' or 'distributions' to be included.",
|
|
"additionalProperties": false,
|
|
"minProperties": 1,
|
|
"properties": {
|
|
"families": {
|
|
"description": "Match if ansible_os_family is part of the list.",
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"distributions": {
|
|
"type": "object",
|
|
"description": "Match if ansible_distribution match one of defined keys.",
|
|
"minProperties": 1,
|
|
"patternProperties": {
|
|
".*": {
|
|
"description": "Match if either the value is the empty hash, or one major_versions/versions/releases contains the corresponding variable ('ansible_distrbution_*')",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"major_versions": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"versions": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"releases": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|