The following simplifications are made in the diagram:
- The diagram shows containers in different pods interacting directly with each other. In reality, they communicate via the corresponding Kubernetes Services (internal load balancers). Service names are omitted if they are obvious from the diagram context. Otherwise, the Service name is shown above the arrow.
- Pods may run multiple replicas. However, each pod is shown as a single replica in the diagram.
The Level 2 C4 architecture of the components implementing jobs in Deckhouse Code is shown in the following diagram:
Components
Db-reindex (CronJob): Scheduled job that reindexes the PostgreSQL database according to a predefined schedule.
It consists of the following containers:
- db-reindex: Main container.
Full-backup (CronJob): Scheduled job that backups PostgreSQL databases and Git repositories according to a predefined schedule.
It consists of the following containers:
- backup: Main container.
Backup-before-update-<CURRENT_TIME> (Job): Job that backups PostgreSQL databases and Git repositories before updating the Deckhouse Code version.
It consists of the following containers:
- backup: Main container.
Migration-<APP_ID> (Job): Job that migrates the PostgreSQL database when updating the Deckhouse Code version.
It consists of the following containers:
- configure: Init container that performs preparatory tasks before the main container starts: it loads secrets, creates required directories and configuration files.
- migrations: Main container.
Registry-migration-<VERSION> (Job): Job that migrates the PostgreSQL database for the Registry component.
It consists of the following containers:
- dependencies: Init container that performs preparatory tasks before the main container starts, for example, configuring components required for its operation.
- registry: Main container.
Pages-register-<APP_ID> (Job): Job that registers the Pages component.
It consists of the following containers:
- configure: Init container that performs preparatory tasks before the main container starts: it loads secrets, creates required directories and configuration files.
- pages-register: Main container.
Appconfig-check-<UNIQUE_SUFFIX> (Job): Job that validates the Deckhouse Code configuration when application settings are changed.
It consists of the following containers:
- configure: Init container that performs preparatory tasks before the main container starts: it loads secrets, creates required directories and configuration files.
- appconfig-rake-validate: Main container.
Interactions
The components implementing jobs interact with the following external components:
PostgreSQL:
- Perform database maintenance tasks.
- Execute database queries.
Praefect: Read data from Git repositories.
Object storage: Stores database and Git repository backups.