716 lines
23 KiB
JSON
716 lines
23 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema",
|
|
"$id": "http://example.com/example.json",
|
|
"type": "object",
|
|
"title": "The root schema",
|
|
"description": "The root schema comprises the entire JSON document.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"namespaces": [
|
|
{
|
|
"name": "staging",
|
|
"namespace": {
|
|
"budget": {
|
|
"cpu": 32,
|
|
"memory": "64Gi",
|
|
"storage": "500Gi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 2,
|
|
"memory": 1
|
|
}
|
|
},
|
|
"pod": {
|
|
"limits": {
|
|
"cpu": 4,
|
|
"memory": "8Gi"
|
|
},
|
|
"defaults": {
|
|
"cpu": "200m",
|
|
"memory": "200Mi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 10,
|
|
"memory": 2
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"namespace": {
|
|
"budget": {
|
|
"cpu": 32,
|
|
"memory": "64Gi",
|
|
"storage": "500Gi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 2,
|
|
"memory": 1
|
|
}
|
|
},
|
|
"pod": {
|
|
"limits": {
|
|
"cpu": 4,
|
|
"memory": "8Gi"
|
|
},
|
|
"defaults": {
|
|
"cpu": "200m",
|
|
"memory": "200Mi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 10,
|
|
"memory": 2
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"namespaces",
|
|
"namespace",
|
|
"pod"
|
|
],
|
|
"properties": {
|
|
"namespaces": {
|
|
"$id": "#/properties/namespaces",
|
|
"type": "array",
|
|
"title": "The namespaces schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": [],
|
|
"examples": [
|
|
[
|
|
{
|
|
"name": "staging",
|
|
"namespace": {
|
|
"budget": {
|
|
"cpu": 32,
|
|
"memory": "64Gi",
|
|
"storage": "500Gi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 2,
|
|
"memory": 1
|
|
}
|
|
},
|
|
"pod": {
|
|
"limits": {
|
|
"cpu": 4,
|
|
"memory": "8Gi"
|
|
},
|
|
"defaults": {
|
|
"cpu": "200m",
|
|
"memory": "200Mi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 10,
|
|
"memory": 2
|
|
}
|
|
}
|
|
}
|
|
]
|
|
],
|
|
"additionalItems": true,
|
|
"items": {
|
|
"$id": "#/properties/namespaces/items",
|
|
"anyOf": [
|
|
{
|
|
"$id": "#/properties/namespaces/items/anyOf/0",
|
|
"type": "object",
|
|
"title": "The first anyOf schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"name": "staging",
|
|
"namespace": {
|
|
"budget": {
|
|
"cpu": 32,
|
|
"memory": "64Gi",
|
|
"storage": "500Gi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 2,
|
|
"memory": 1
|
|
}
|
|
},
|
|
"pod": {
|
|
"limits": {
|
|
"cpu": 4,
|
|
"memory": "8Gi"
|
|
},
|
|
"defaults": {
|
|
"cpu": "200m",
|
|
"memory": "200Mi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 10,
|
|
"memory": 2
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"name",
|
|
"namespace",
|
|
"pod"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/name",
|
|
"type": "string",
|
|
"title": "The name schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"staging"
|
|
]
|
|
},
|
|
"namespace": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace",
|
|
"type": "object",
|
|
"title": "The namespace schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"budget": {
|
|
"cpu": 32,
|
|
"memory": "64Gi",
|
|
"storage": "500Gi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 2,
|
|
"memory": 1
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"budget",
|
|
"overcommit"
|
|
],
|
|
"properties": {
|
|
"budget": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/budget",
|
|
"type": "object",
|
|
"title": "The budget schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"cpu": 32,
|
|
"memory": "64Gi",
|
|
"storage": "500Gi"
|
|
}
|
|
],
|
|
"required": [
|
|
"cpu",
|
|
"memory",
|
|
"storage"
|
|
],
|
|
"properties": {
|
|
"cpu": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/budget/properties/cpu",
|
|
"type": "integer",
|
|
"title": "The cpu schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
32
|
|
]
|
|
},
|
|
"memory": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/budget/properties/memory",
|
|
"type": "string",
|
|
"title": "The memory schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"64Gi"
|
|
]
|
|
},
|
|
"storage": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/budget/properties/storage",
|
|
"type": "string",
|
|
"title": "The storage schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"500Gi"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"overcommit": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/overcommit",
|
|
"type": "object",
|
|
"title": "The overcommit schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"cpu": 2,
|
|
"memory": 1
|
|
}
|
|
],
|
|
"required": [
|
|
"cpu",
|
|
"memory"
|
|
],
|
|
"properties": {
|
|
"cpu": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/overcommit/properties/cpu",
|
|
"type": "integer",
|
|
"title": "The cpu schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
2
|
|
]
|
|
},
|
|
"memory": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/namespace/properties/overcommit/properties/memory",
|
|
"type": "integer",
|
|
"title": "The memory schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
1
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"pod": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod",
|
|
"type": "object",
|
|
"title": "The pod schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"limits": {
|
|
"cpu": 4,
|
|
"memory": "8Gi"
|
|
},
|
|
"defaults": {
|
|
"cpu": "200m",
|
|
"memory": "200Mi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 10,
|
|
"memory": 2
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"limits",
|
|
"defaults",
|
|
"overcommit"
|
|
],
|
|
"properties": {
|
|
"limits": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/limits",
|
|
"type": "object",
|
|
"title": "The limits schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"cpu": 4,
|
|
"memory": "8Gi"
|
|
}
|
|
],
|
|
"required": [
|
|
"cpu",
|
|
"memory"
|
|
],
|
|
"properties": {
|
|
"cpu": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/limits/properties/cpu",
|
|
"type": "integer",
|
|
"title": "The cpu schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
4
|
|
]
|
|
},
|
|
"memory": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/limits/properties/memory",
|
|
"type": "string",
|
|
"title": "The memory schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"8Gi"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"defaults": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/defaults",
|
|
"type": "object",
|
|
"title": "The defaults schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"cpu": "200m",
|
|
"memory": "200Mi"
|
|
}
|
|
],
|
|
"required": [
|
|
"cpu",
|
|
"memory"
|
|
],
|
|
"properties": {
|
|
"cpu": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/defaults/properties/cpu",
|
|
"type": "string",
|
|
"title": "The cpu schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"200m"
|
|
]
|
|
},
|
|
"memory": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/defaults/properties/memory",
|
|
"type": "string",
|
|
"title": "The memory schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"200Mi"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"overcommit": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/overcommit",
|
|
"type": "object",
|
|
"title": "The overcommit schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"cpu": 10,
|
|
"memory": 2
|
|
}
|
|
],
|
|
"required": [
|
|
"cpu",
|
|
"memory"
|
|
],
|
|
"properties": {
|
|
"cpu": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/overcommit/properties/cpu",
|
|
"type": "integer",
|
|
"title": "The cpu schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
10
|
|
]
|
|
},
|
|
"memory": {
|
|
"$id": "#/properties/namespaces/items/anyOf/0/properties/pod/properties/overcommit/properties/memory",
|
|
"type": "integer",
|
|
"title": "The memory schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
2
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"namespace": {
|
|
"$id": "#/properties/namespace",
|
|
"type": "object",
|
|
"title": "The namespace schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"budget": {
|
|
"cpu": 32,
|
|
"memory": "64Gi",
|
|
"storage": "500Gi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 2,
|
|
"memory": 1
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"budget",
|
|
"overcommit"
|
|
],
|
|
"properties": {
|
|
"budget": {
|
|
"$id": "#/properties/namespace/properties/budget",
|
|
"type": "object",
|
|
"title": "The budget schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"cpu": 32,
|
|
"memory": "64Gi",
|
|
"storage": "500Gi"
|
|
}
|
|
],
|
|
"required": [
|
|
"cpu",
|
|
"memory",
|
|
"storage"
|
|
],
|
|
"properties": {
|
|
"cpu": {
|
|
"$id": "#/properties/namespace/properties/budget/properties/cpu",
|
|
"type": "integer",
|
|
"title": "The cpu schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
32
|
|
]
|
|
},
|
|
"memory": {
|
|
"$id": "#/properties/namespace/properties/budget/properties/memory",
|
|
"type": "string",
|
|
"title": "The memory schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"64Gi"
|
|
]
|
|
},
|
|
"storage": {
|
|
"$id": "#/properties/namespace/properties/budget/properties/storage",
|
|
"type": "string",
|
|
"title": "The storage schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"500Gi"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"overcommit": {
|
|
"$id": "#/properties/namespace/properties/overcommit",
|
|
"type": "object",
|
|
"title": "The overcommit schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"cpu": 2,
|
|
"memory": 1
|
|
}
|
|
],
|
|
"required": [
|
|
"cpu",
|
|
"memory"
|
|
],
|
|
"properties": {
|
|
"cpu": {
|
|
"$id": "#/properties/namespace/properties/overcommit/properties/cpu",
|
|
"type": "integer",
|
|
"title": "The cpu schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
2
|
|
]
|
|
},
|
|
"memory": {
|
|
"$id": "#/properties/namespace/properties/overcommit/properties/memory",
|
|
"type": "integer",
|
|
"title": "The memory schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
1
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"pod": {
|
|
"$id": "#/properties/pod",
|
|
"type": "object",
|
|
"title": "The pod schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"limits": {
|
|
"cpu": 4,
|
|
"memory": "8Gi"
|
|
},
|
|
"defaults": {
|
|
"cpu": "200m",
|
|
"memory": "200Mi"
|
|
},
|
|
"overcommit": {
|
|
"cpu": 10,
|
|
"memory": 2
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"limits",
|
|
"defaults",
|
|
"overcommit"
|
|
],
|
|
"properties": {
|
|
"limits": {
|
|
"$id": "#/properties/pod/properties/limits",
|
|
"type": "object",
|
|
"title": "The limits schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"cpu": 4,
|
|
"memory": "8Gi"
|
|
}
|
|
],
|
|
"required": [
|
|
"cpu",
|
|
"memory"
|
|
],
|
|
"properties": {
|
|
"cpu": {
|
|
"$id": "#/properties/pod/properties/limits/properties/cpu",
|
|
"type": "integer",
|
|
"title": "The cpu schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
4
|
|
]
|
|
},
|
|
"memory": {
|
|
"$id": "#/properties/pod/properties/limits/properties/memory",
|
|
"type": "string",
|
|
"title": "The memory schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"8Gi"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"defaults": {
|
|
"$id": "#/properties/pod/properties/defaults",
|
|
"type": "object",
|
|
"title": "The defaults schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"cpu": "200m",
|
|
"memory": "200Mi"
|
|
}
|
|
],
|
|
"required": [
|
|
"cpu",
|
|
"memory"
|
|
],
|
|
"properties": {
|
|
"cpu": {
|
|
"$id": "#/properties/pod/properties/defaults/properties/cpu",
|
|
"type": "string",
|
|
"title": "The cpu schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"200m"
|
|
]
|
|
},
|
|
"memory": {
|
|
"$id": "#/properties/pod/properties/defaults/properties/memory",
|
|
"type": "string",
|
|
"title": "The memory schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": "",
|
|
"examples": [
|
|
"200Mi"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"overcommit": {
|
|
"$id": "#/properties/pod/properties/overcommit",
|
|
"type": "object",
|
|
"title": "The overcommit schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": {},
|
|
"examples": [
|
|
{
|
|
"cpu": 10,
|
|
"memory": 2
|
|
}
|
|
],
|
|
"required": [
|
|
"cpu",
|
|
"memory"
|
|
],
|
|
"properties": {
|
|
"cpu": {
|
|
"$id": "#/properties/pod/properties/overcommit/properties/cpu",
|
|
"type": "integer",
|
|
"title": "The cpu schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
10
|
|
]
|
|
},
|
|
"memory": {
|
|
"$id": "#/properties/pod/properties/overcommit/properties/memory",
|
|
"type": "integer",
|
|
"title": "The memory schema",
|
|
"description": "An explanation about the purpose of this instance.",
|
|
"default": 0,
|
|
"examples": [
|
|
2
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|