Validate DLE config
Goal
Validate DLE config to prevent significant error without running retrieval
TODO / How to implement
Validate config before running retrieval jobs. It will be great if the validator is available for use without depending on the Retrieval service
YAML Syntax
The content of yaml file matches the Config structure without error
DLE config logic
-
server:
-
portis a number from 0 to 65535
-
-
embeddedUI:
-
dockerImageexists or available to download -
portis a number from 0 to 65535, no conflict with DLE port
-
-
global:
-
engineequals "postgres" - if
telemetryis enabled,urlis valid
-
-
poolManager:
-
mountDirexists
-
-
databaseContainer:
-
dockerImageexists or available to download
-
-
provision:
-
portPool:fromandtoare numbers. Thefromvalue must be less thanto.
-
-
retrieval:
- if
refreshis defined,timetablecontains a valid crontab string -
jobs- the jobs section must not contain physical and logical restore jobs simultaneously -
spec.logicalDumpandspec.logicalRestore:dumpLocationexists and empty -
spec.logicalDump: check ifsource.typeis one of "local", "remote", or "rdsIam" -
spec.logicalDump:-
connectioncontainsdbnameandusernamefields in all cases -
connectioncontainshostandportif the source type isremote -
connectioncontainsrdsIam(with non-emptyawsRegion,dbInstanceIdentifier,sslRootCert)
-
-
spec.logicalDump:parallelJobscannot be more than 1 ifimmediateRestoreis enabled - if
spec.logicalDump.immediateRestoreis enabled,logicalRestoremust be not presented in thejobslist -
spec.logicalSnapshotandspec.physicalSnapshot:preprocessingScriptexists -
spec.logicalSnapshotandspec.physicalSnapshot:queryPathis empty or exists ifqueryPreprocessingis defined -
spec.physicalRestore:toolis one of "customTool", "walg", "pgbackrest" and there is a corresponding field in theoptionssection -
spec.physicalSnapshot:timetablefields contain valid crontab strings forscheduler.snapshotandscheduler.retention
- if
Acceptance criteria
Any DLE configuration can be checked for compliance before starting the application
Edited by Artyom Kartasov