Skip to content

Commit eed9c65

Browse files
committed
refactor: [#246] Remove Grafana firewall configuration
Remove Grafana firewall configuration due to Docker bypassing UFW. Discovery: Docker published ports bypass UFW firewall rules entirely. Changes: - Remove templates/ansible/configure-grafana-firewall.yml playbook - Remove src/application/steps/system/configure_grafana_firewall.rs - Remove ConfigureGrafanaFirewall from ConfigureStep enum - Remove references from project_generator.rs, handler.rs, mod.rs - Update issue spec to reflect removal and document security discovery Rationale: UFW configuration provides false sense of security - Docker modifies iptables directly. Proper solution requires reverse proxy with TLS (roadmap task 6). See docs/issues/DRAFT-docker-ufw-firewall-security-strategy.md
1 parent 7d56581 commit eed9c65

File tree

8 files changed

+55
-352
lines changed

8 files changed

+55
-352
lines changed

docs/issues/246-grafana-slice-release-run-commands.md

Lines changed: 51 additions & 131 deletions
Large diffs are not rendered by default.

src/application/command_handlers/configure/handler.rs

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ use super::errors::ConfigureCommandHandlerError;
88
use crate::adapters::ansible::AnsibleClient;
99
use crate::application::command_handlers::common::StepResult;
1010
use crate::application::steps::{
11-
ConfigureFirewallStep, ConfigureGrafanaFirewallStep, ConfigureSecurityUpdatesStep,
12-
ConfigureTrackerFirewallStep, InstallDockerComposeStep, InstallDockerStep,
11+
ConfigureFirewallStep, ConfigureSecurityUpdatesStep, ConfigureTrackerFirewallStep,
12+
InstallDockerComposeStep, InstallDockerStep,
1313
};
1414
use crate::domain::environment::repository::{EnvironmentRepository, TypedEnvironmentRepository};
1515
use crate::domain::environment::state::{ConfigureFailureContext, ConfigureStep};
@@ -218,34 +218,6 @@ impl ConfigureCommandHandler {
218218
.map_err(|e| (e.into(), current_step))?;
219219
}
220220

221-
let current_step = ConfigureStep::ConfigureGrafanaFirewall;
222-
// Configure Grafana-specific firewall rules (conditional on Grafana configuration)
223-
// Only execute if Grafana is configured in the environment
224-
if skip_firewall {
225-
info!(
226-
command = "configure",
227-
step = "configure_grafana_firewall",
228-
status = "skipped",
229-
"Skipping Grafana firewall configuration due to TORRUST_TD_SKIP_FIREWALL_IN_CONTAINER"
230-
);
231-
} else if environment.context().user_inputs.grafana.is_some() {
232-
info!(
233-
command = "configure",
234-
step = "configure_grafana_firewall",
235-
"Configuring Grafana firewall (Grafana enabled)"
236-
);
237-
ConfigureGrafanaFirewallStep::new(Arc::clone(&ansible_client))
238-
.execute()
239-
.map_err(|e| (e.into(), current_step))?;
240-
} else {
241-
info!(
242-
command = "configure",
243-
step = "configure_grafana_firewall",
244-
status = "skipped",
245-
"Skipping Grafana firewall configuration (Grafana disabled)"
246-
);
247-
}
248-
249221
// Transition to Configured state
250222
let configured = environment.clone().configured();
251223

src/application/steps/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ pub use rendering::{
3939
};
4040
pub use software::{InstallDockerComposeStep, InstallDockerStep};
4141
pub use system::{
42-
ConfigureFirewallStep, ConfigureGrafanaFirewallStep, ConfigureSecurityUpdatesStep,
43-
ConfigureTrackerFirewallStep, WaitForCloudInitStep,
42+
ConfigureFirewallStep, ConfigureSecurityUpdatesStep, ConfigureTrackerFirewallStep,
43+
WaitForCloudInitStep,
4444
};
4545
pub use validation::{
4646
ValidateCloudInitCompletionStep, ValidateDockerComposeInstallationStep,

src/application/steps/system/configure_grafana_firewall.rs

Lines changed: 0 additions & 149 deletions
This file was deleted.

src/application/steps/system/mod.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
* - Automatic security updates configuration
1010
* - UFW firewall configuration
1111
* - Tracker firewall configuration
12-
* - Grafana firewall configuration
1312
*
1413
* Future steps may include:
1514
* - User account setup and management
@@ -18,13 +17,11 @@
1817
*/
1918

2019
pub mod configure_firewall;
21-
pub mod configure_grafana_firewall;
2220
pub mod configure_security_updates;
2321
pub mod configure_tracker_firewall;
2422
pub mod wait_cloud_init;
2523

2624
pub use configure_firewall::ConfigureFirewallStep;
27-
pub use configure_grafana_firewall::ConfigureGrafanaFirewallStep;
2825
pub use configure_security_updates::ConfigureSecurityUpdatesStep;
2926
pub use configure_tracker_firewall::ConfigureTrackerFirewallStep;
3027
pub use wait_cloud_init::WaitForCloudInitStep;

src/domain/environment/state/configure_failed.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ pub enum ConfigureStep {
5151
ConfigureFirewall,
5252
/// Configuring Tracker firewall rules
5353
ConfigureTrackerFirewall,
54-
/// Configuring Grafana firewall rules
55-
ConfigureGrafanaFirewall,
5654
}
5755

5856
/// Error state - Application configuration failed

src/infrastructure/templating/ansible/template/renderer/project_generator.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,6 @@ impl AnsibleProjectGenerator {
307307
"configure-security-updates.yml",
308308
"configure-firewall.yml",
309309
"configure-tracker-firewall.yml",
310-
"configure-grafana-firewall.yml",
311310
"create-tracker-storage.yml",
312311
"init-tracker-database.yml",
313312
"deploy-tracker-config.yml",

templates/ansible/configure-grafana-firewall.yml

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)