Skip to main content

torrust_tracker_deployer_lib/application/steps/
mod.rs

1/*!
2 * Steps Module - Level 2 of Three-Level Architecture
3 *
4 * This module organizes deployment steps by operation type for maximum reusability
5 * and clear separation of concerns. Steps are reusable building blocks that can be
6 * composed into commands (Level 1) and may use remote actions (Level 3).
7 *
8 * Organization by Operation Type:
9 * - rendering/     - Template and configuration generation
10 * - infrastructure/ - Infrastructure lifecycle (`OpenTofu` operations)
11 * - system/        - System-level configuration and management
12 * - software/      - Software installation and management  
13 * - application/   - Application deployment and lifecycle
14 * - connectivity/  - Network and connection operations
15 * - validation/    - Testing and validation operations
16 *
17 * This organization supports the full planned command ecosystem while enabling
18 * step reuse across multiple commands.
19 */
20
21pub mod application;
22pub mod connectivity;
23pub mod infrastructure;
24pub mod rendering;
25pub mod software;
26pub mod system;
27pub mod validation;
28
29// Re-export all steps for easy access
30pub use application::{DeployComposeFilesStep, DeployComposeFilesStepError, RunStep, RunStepError};
31pub use connectivity::WaitForSSHConnectivityStep;
32pub use infrastructure::{
33    ApplyInfrastructureStep, DestroyInfrastructureStep, GetInstanceInfoStep,
34    InitializeInfrastructureStep, PlanInfrastructureStep, ValidateInfrastructureStep,
35};
36pub use rendering::{
37    ansible_templates::RenderAnsibleTemplatesError, RenderAnsibleTemplatesStep,
38    RenderDockerComposeTemplatesStep, RenderOpenTofuTemplatesStep,
39};
40pub use software::{InstallDockerComposeStep, InstallDockerStep};
41pub use system::{
42    ConfigureFirewallStep, ConfigureSecurityUpdatesStep, InstallBackupCrontabStep,
43    WaitForCloudInitStep,
44};
45pub use validation::{
46    ValidateCloudInitCompletionStep, ValidateDockerComposeInstallationStep,
47    ValidateDockerInstallationStep,
48};