Maintenance¶
Typical maintenance and devops task around a hetida designer installation, possibly over multiple environments like dev / test / prod include
- Backup / Restore
- Transformation Management
- Cleanup operations, like
- resetting test wirings to release wirings (i.e. wiring during release)
- deleting drafts
- deprecating "old" revisions
- delete unused deprecated revisions
- purging a dev / test system
This page gives an overview over these tasks and provides recommendations and links to documentation and tooling that may help you manage your hetida designer installations.
How to invoke maintenance actions¶
via running docker images¶
The documentation typically shows how to invoke actions by running docker containers. See for example
- Import / Export documentation.
- Cleanup documentation.
via backend maintenance endpoints¶
The backend API provides maintenance endpoints under /api/maintenance if a HD_MAINTENANCE_SECRET environment variable is set to a non-zero-length string.
This secret has to be provided on each request to allow maintenance operations to be triggered this way.
via hdctl Bash Tool¶
hetida designer comes with a small bash tool called hdctl, that can invoke export / import and maintenance actions by making requests to backend endpoints.
See the script file for installation instructions and run ./hdctl usage for usage details.
Note that for maintenance actions the maintenance endpoints must be active.
Tasks¶
Backup / Restore¶
For backups of only the transformation revisions:
- you can also use Import / Export for backing up only transformation revisions.
- The hdctl Bash tool's
fetchandpushsubcommands can be used.
Deploy / Export / Import (transporting between instances) / Update¶
- Import / Export.
- The hdctl Bash tool's fetch and push subcommands can be used for this purpose as well.
- Note that this simply uses the backend's /api/transformations GET and PUT endpoints which can of cause be used directly.
Automatically¶
On startup of the backend * Automatic deployment of base trafos * Automatic import of sets of trafos
Notes:
- Both can also be triggered via the hdctl Bash tool
- This simply uses some of the /api/maintenance/* endpoints described above.
- Using the
allow_overwrite_releasedquery parameter (or in config files for autoimport) this allows to update (overwrite) existing transformation revisions.
Warning
Allowing to overwrite released transformations may introduce bugs in existing workflows and compromise reproducibility.
Cleanup operations¶
- See cleanup docs
- If maintenance endpoints are available, hdctl can trigger each cleanup action as well.
Maintenance Risks¶
Some maintenance operations naturally are affecting reproducibility and deserialization. See here for typical pitfalls and how to avoid them.