deploy-rs/interface.json
Roman Melnikov aeeee3c1e3
[Chore] Make activation wait timeout configurable
Problem: Currently profile activation waiting timeout is hardcoded to
240 seconds, see https://github.com/serokell/deploy-rs/pull/48.
In some cases, this timeout can be exceeded (e.g.
activation performs a heavy DB migration and waits for it to finish
before considering the profile activation succesful).

Solution: Make this timeout configurable via 'activationTimeout' deploy
attribute or corresponding '--activation-timeout' CLI option. For the
sake of backward compatibility, the new 'wait' subcommand
'--activation-timeout' option is made optional and defaults to 240
seconds if it wasn't provided.
2023-11-02 11:29:52 +01:00

118 lines
3.4 KiB
JSON

{
"$schema": "http://json-schema.org/draft/2019-09/schema#",
"title": "Deploy",
"description": "Matches a correct deploy attribute of a flake",
"definitions": {
"generic_settings": {
"type": "object",
"properties": {
"sshUser": {
"type": "string"
},
"user": {
"type": "string"
},
"sshOpts": {
"type": "array",
"items": {
"type": "string"
}
},
"fastConnection": {
"type": "boolean"
},
"autoRollback": {
"type": "boolean"
},
"magicRollback": {
"type": "boolean"
},
"confirmTimeout": {
"type": "integer"
},
"activationTimeout": {
"type": "integer"
},
"tempPath": {
"type": "string"
}
}
},
"node_settings": {
"type": "object",
"properties": {
"hostname": {
"type": "string"
},
"profilesOrder": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"profiles": {
"type": "object",
"patternProperties": {
"[A-z][A-z0-9_-]*": {
"allOf": [
{
"$ref": "#/definitions/generic_settings"
},
{
"$ref": "#/definitions/profile_settings"
}
]
}
},
"additionalProperties": false
}
},
"required": [
"hostname"
]
},
"profile_settings": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"profilePath": {
"type": "string"
}
},
"required": [
"path"
]
}
},
"type": "object",
"allOf": [
{
"$ref": "#/definitions/generic_settings"
},
{
"type": "object",
"properties": {
"nodes": {
"type": "object",
"patternProperties": {
"[A-z][A-z0-9_-]*": {
"allOf": [
{
"$ref": "#/definitions/generic_settings"
},
{
"$ref": "#/definitions/node_settings"
}
]
}
},
"additionalProperties": false
}
}
}
]
}