Skip to content

Commit b2fa40e

Browse files
authored
Merge pull request #1805 from jemrobinson/1570-remove-shm-dc
Remove SHM DC
2 parents a56a362 + 7494a3b commit b2fa40e

File tree

12 files changed

+11
-1240
lines changed

12 files changed

+11
-1240
lines changed

data_safe_haven/commands/deploy.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from data_safe_haven.exceptions import DataSafeHavenError
99
from data_safe_haven.external import GraphApi
1010
from data_safe_haven.infrastructure import SHMStackManager, SREStackManager
11-
from data_safe_haven.provisioning import SHMProvisioningManager, SREProvisioningManager
11+
from data_safe_haven.provisioning import SREProvisioningManager
1212
from data_safe_haven.utility import LoggingSingleton
1313

1414
deploy_command_group = typer.Typer()
@@ -73,13 +73,6 @@ def shm(
7373
config.shm.fqdn,
7474
stack.output("networking")["fqdn_nameservers"],
7575
)
76-
77-
# Provision SHM with anything that could not be done in Pulumi
78-
manager = SHMProvisioningManager(
79-
subscription_name=config.context.subscription_name,
80-
stack=stack,
81-
)
82-
manager.run()
8376
except DataSafeHavenError as exc:
8477
msg = f"Could not deploy Data Safe Haven Management environment.\n{exc}"
8578
raise DataSafeHavenError(msg) from exc

data_safe_haven/infrastructure/stacks/declarative_shm.py

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@
44

55
from data_safe_haven.config import Config
66

7-
from .shm.bastion import SHMBastionComponent, SHMBastionProps
87
from .shm.data import SHMDataComponent, SHMDataProps
9-
from .shm.domain_controllers import (
10-
SHMDomainControllersComponent,
11-
SHMDomainControllersProps,
12-
)
138
from .shm.firewall import SHMFirewallComponent, SHMFirewallProps
149
from .shm.monitoring import SHMMonitoringComponent, SHMMonitoringProps
1510
from .shm.networking import SHMNetworkingComponent, SHMNetworkingProps
@@ -49,30 +44,16 @@ def run(self) -> None:
4944
"shm_firewall",
5045
self.stack_name,
5146
SHMFirewallProps(
52-
domain_controller_private_ip=networking.domain_controller_private_ip,
5347
dns_zone=networking.dns_zone,
5448
location=self.cfg.azure.location,
5549
resource_group_name=networking.resource_group_name,
5650
route_table_name=networking.route_table.name,
5751
subnet_firewall=networking.subnet_firewall,
58-
subnet_identity_servers=networking.subnet_identity_servers,
5952
subnet_update_servers=networking.subnet_update_servers,
6053
),
6154
tags=self.cfg.tags.model_dump(),
6255
)
6356

64-
# Deploy firewall and routing
65-
SHMBastionComponent(
66-
"shm_bastion",
67-
self.stack_name,
68-
SHMBastionProps(
69-
location=self.cfg.azure.location,
70-
resource_group_name=networking.resource_group_name,
71-
subnet=networking.subnet_bastion,
72-
),
73-
tags=self.cfg.tags.model_dump(),
74-
)
75-
7657
# Deploy data storage
7758
data = SHMDataComponent(
7859
"shm_data",
@@ -116,32 +97,7 @@ def run(self) -> None:
11697
tags=self.cfg.tags.model_dump(),
11798
)
11899

119-
# Deploy domain controllers
120-
domain_controllers = SHMDomainControllersComponent(
121-
"shm_domain_controllers",
122-
self.stack_name,
123-
SHMDomainControllersProps(
124-
automation_account=monitoring.automation_account,
125-
automation_account_modules=monitoring.automation_account_modules,
126-
automation_account_private_dns=monitoring.automation_account_private_dns,
127-
domain_fqdn=networking.dns_zone.name,
128-
domain_netbios_name=self.shm_name.upper(),
129-
location=self.cfg.azure.location,
130-
log_analytics_workspace=monitoring.log_analytics_workspace,
131-
password_domain_admin=data.password_domain_admin,
132-
password_domain_azuread_connect=data.password_domain_azure_ad_connect,
133-
password_domain_searcher=data.password_domain_searcher,
134-
private_ip_address=networking.domain_controller_private_ip,
135-
subnet_identity_servers=networking.subnet_identity_servers,
136-
subscription_name=self.cfg.context.subscription_name,
137-
virtual_network_name=networking.virtual_network.name,
138-
virtual_network_resource_group_name=networking.resource_group_name,
139-
),
140-
tags=self.cfg.tags.model_dump(),
141-
)
142-
143100
# Export values for later use
144-
pulumi.export("domain_controllers", domain_controllers.exports)
145101
pulumi.export("firewall", firewall.exports)
146102
pulumi.export("monitoring", monitoring.exports)
147103
pulumi.export("networking", networking.exports)

data_safe_haven/infrastructure/stacks/shm/bastion.py

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

data_safe_haven/infrastructure/stacks/shm/data.py

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -124,48 +124,6 @@ def __init__(
124124
tags=child_tags,
125125
)
126126

127-
# Secret: Domain admin password
128-
password_domain_admin = pulumi_random.RandomPassword(
129-
f"{self._name}_password_domain_admin",
130-
length=20,
131-
special=True,
132-
opts=ResourceOptions.merge(child_opts, ResourceOptions(parent=key_vault)),
133-
)
134-
keyvault.Secret(
135-
f"{self._name}_kvs_password_domain_admin",
136-
properties=keyvault.SecretPropertiesArgs(
137-
value=password_domain_admin.result
138-
),
139-
resource_group_name=resource_group.name,
140-
secret_name="password-domain-admin",
141-
vault_name=key_vault.name,
142-
opts=ResourceOptions.merge(
143-
child_opts, ResourceOptions(parent=password_domain_admin)
144-
),
145-
tags=child_tags,
146-
)
147-
148-
# Secret: Azure ADConnect password
149-
password_domain_azure_ad_connect = pulumi_random.RandomPassword(
150-
f"{self._name}_password_domain_azure_ad_connect",
151-
length=20,
152-
special=True,
153-
opts=ResourceOptions.merge(child_opts, ResourceOptions(parent=key_vault)),
154-
)
155-
keyvault.Secret(
156-
f"{self._name}_kvs_password_domain_azure_ad_connect",
157-
properties=keyvault.SecretPropertiesArgs(
158-
value=password_domain_azure_ad_connect.result
159-
),
160-
resource_group_name=resource_group.name,
161-
secret_name="password-domain-azure-ad-connect",
162-
vault_name=key_vault.name,
163-
opts=ResourceOptions.merge(
164-
child_opts, ResourceOptions(parent=password_domain_azure_ad_connect)
165-
),
166-
tags=child_tags,
167-
)
168-
169127
# Secret: Linux update server admin password
170128
password_update_server_linux_admin = pulumi_random.RandomPassword(
171129
f"{self._name}_password_update_server_linux_admin",
@@ -243,10 +201,6 @@ def __init__(
243201
)
244202

245203
# Register outputs
246-
self.password_domain_admin = Output.secret(password_domain_admin.result)
247-
self.password_domain_azure_ad_connect = Output.secret(
248-
password_domain_azure_ad_connect.result
249-
)
250204
self.password_update_server_linux_admin = Output.secret(
251205
password_update_server_linux_admin.result
252206
)

data_safe_haven/infrastructure/stacks/shm/domain_controllers.py

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

0 commit comments

Comments
 (0)