-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path.guided-setup.ps1
250 lines (206 loc) · 18.4 KB
/
.guided-setup.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
<#PSScriptInfo
.VERSION 2.10.0
.GUID e917c41a-260f-4ea4-980d-db00f8baef1b
.AUTHOR Black Duck
.COPYRIGHT Copyright 2024 Black Duck Software, Inc. All rights reserved.
#>
using module @{ModuleName='guided-setup'; RequiredVersion='1.14.0' }
$ErrorActionPreference = 'Stop'
$VerbosePreference = 'Continue'
Set-PSDebug -Strict
Write-Host 'Loading...' -NoNewline
'./setup/core/common/prereqs.ps1',
'./setup/steps/step.ps1',
'./setup/steps/welcome.ps1',
'./setup/steps/gitops.ps1',
'./setup/steps/backup.ps1',
'./setup/steps/k8s.ps1',
'./setup/steps/ingress.ps1',
'./setup/steps/image.ps1',
'./setup/steps/orchestration.ps1',
'./setup/steps/authentication.ps1',
'./setup/steps/cpu.ps1',
'./setup/steps/memory.ps1',
'./setup/steps/volume.ps1',
'./setup/steps/ephemeralstorage.ps1',
'./setup/steps/codedx.ps1',
'./setup/steps/cert.ps1',
'./setup/steps/storage.ps1',
'./setup/steps/schedule.ps1',
'./setup/steps/database.ps1',
'./setup/steps/summary.ps1' | ForEach-Object {
Write-Debug "'$PSCommandPath' is including file '$_'"
$path = join-path $PSScriptRoot $_
if (-not (Test-Path $path)) {
Write-Error "Unable to find file script dependency at $path. Please download the entire codedx-kubernetes GitHub repository and rerun the downloaded copy of this script."
}
. $path | out-null
}
$config = [ConfigInput]::new()
$graph = New-Object Graph($true)
$s = @{}
[Welcome],
[DeploymentMethod],[HelmManifestWarning],[SealedSecretsNamespace],[SealedSecretsControllerName],[SealedSecretsPublicKeyPath],
[Prerequisites],[PrequisitesNotMet],[WorkDir],[ChooseEnvironment],
[ChooseContext],[SelectContext],[HandleNoContext],
[GetKubernetesPort],
[UseTriageAssistant],
[UseToolOrchestration],[UseExternalDatabase],
[BackupType],[VeleroNamespace],[BackupSchedule],[BackupDatabaseTimeout],[BackupTimeToLive],
[UseDefaultOptions],[UsePodSecurityPolicyOption],[UseNetworkPolicyOption],[UseTlsOption],
[UseLegacyUnknownSigner],[CertsCAPath],[CodeDxSignerName],[ToolOrchestrationSignerName],[LegacyUnknownCertsPath],
[CodeDxNamespace],[CodeDxReleaseName],
[ToolOrchestrationNamespace],[ToolOrchestrationReleaseName],
[ExternalDatabaseHost],[ExternalDatabasePort],[ExternalDatabaseName],[ExternalDatabaseUser], [ExternalDatabasePwd],[ExternalDatabaseOneWayAuth],[ExternalDatabaseCert],
[DatabaseRootPwd],[DatabaseReplicationPwd],[DatabaseUserPwd],[DatabaseReplicaCount],
[CodeDxPassword],[ToolServiceKey],[MinioAdminPassword],[ToolServiceReplicaCount],
[UsePrivateDockerRegistry],[DockerImagePullSecret],[PrivateDockerRegistryHost],[PrivateDockerRegistryUser],[PrivateDockerRegistryPwd],
[UseDefaultDockerImages],[PublicRedirect],
[CodeDxTomcatDockerImage],[CodeDxToolsDockerImage],[CodeDxToolsMonoDockerImage],[CodeDxToolServiceDockerImage],[CodeDxSendResultsDockerImage],[CodeDxSendErrorResultsDockerImage],[CodeDxNewAnalysisDockerImage],[CodeDxPrepareDockerImage],[CodeDxPreDeleteDockerImage],
[CodeDxTomcatInitDockerImage],[CodeDxMariaDBDockerImage],[MinioDockerImage],[CodeDxWorkflowControllerDockerImage],[CodeDxWorkflowExecutorDockerImage],
[IngressKind],[CertManagerIssuerType],[CertManagerIssuer],[IngressCertificateArn],
[NginxTLS],[NginxTLSSecretName],
[DnsName],
[AuthenticationType],[LdapInstructions],[SamlAuthenticationDnsName],[SamlIdpMetadata],[SamlAppName],[SamlKeystorePwd],[SamlPrivateKeyPwd],[SamlExtraConfig],
[DefaultCPU],[CodeDxCPU],[MasterDatabaseCPU],[SubordinateDatabaseCPU],[ToolServiceCPU],[MinIOCPU],[WorkflowCPU],
[DefaultMemory],[CodeDxMemory],[MasterDatabaseMemory],[SubordinateDatabaseMemory],[ToolServiceMemory],[MinIOMemory],[WorkflowMemory],
[DefaultEphemeralStorage],[CodeDxEphemeralStorage],[MasterDatabaseEphemeralStorage],[SubordinateDatabaseEphemeralStorage],[ToolServiceEphemeralStorage],[MinIOEphemeralStorage],[WorkflowEphemeralStorage],
[DefaultVolumeSize],[CodeDxVolumeSize],[MasterDatabaseVolumeSize],[SubordinateDatabaseVolumeSize],[MinIOVolumeSize],[StorageClassName],
[UseDefaultCACerts],[CACertsFile],[CACertsFilePassword],[CACertsChangePassword],[CACertsFileNewPassword],[AddExtraCertificates],[ExtraCertificates],
[UseExternalStorage],[ExternalStorageEndpoint],[ExternalStorageTLS],[ExternalStorageUsername],[ExternalStoragePassword],[ExternalStorageBucket],[ExternalStorageTrustCert],[ExternalStorageCertificate],
[UseNodeSelectors],[CodeDxNodeSelector],[MasterDatabaseNodeSelector],[SubordinateDatabaseNodeSelector],[ToolServiceNodeSelector],[MinIONodeSelector],[WorkflowControllerNodeSelector],[ToolNodeSelector],
[UseTolerations],[CodeDxTolerations],[MasterDatabaseTolerations],[SubordinateDatabaseTolerations],[ToolServiceTolerations],[MinIOTolerations],[WorkflowControllerTolerations],[ToolTolerations],
[Finish],[Abort]
| ForEach-Object {
$s[$_] = new-object -type $_ -args $config
Add-Step $graph $s[$_]
}
Add-StepTransitions $graph $s[[Welcome]] $s[[DeploymentMethod]]
Add-StepTransitions $graph $s[[DeploymentMethod]] $s[[HelmManifestWarning]],$s[[Prerequisites]],$s[[PrequisitesNotMet]],$s[[Abort]]
Add-StepTransitions $graph $s[[DeploymentMethod]] $s[[Prerequisites]],$s[[WorkDir]],$s[[ChooseEnvironment]],$s[[ChooseContext]]
Add-StepTransitions $graph $s[[ChooseContext]] $s[[HandleNoContext]],$s[[Abort]]
Add-StepTransitions $graph $s[[ChooseContext]] $s[[SelectContext]],$s[[PrequisitesNotMet]],$s[[Abort]]
Add-StepTransitions $graph $s[[ChooseContext]] $s[[SelectContext]],$s[[GetKubernetesPort]]
Add-StepTransitions $graph $s[[GetKubernetesPort]] $s[[SealedSecretsNamespace]],$s[[SealedSecretsControllerName]],$s[[SealedSecretsPublicKeyPath]],$s[[UseTriageAssistant]]
Add-StepTransitions $graph $s[[GetKubernetesPort]] $s[[UseTriageAssistant]],$s[[UseToolOrchestration]],$s[[UseExternalDatabase]]
Add-StepTransitions $graph $s[[UseExternalDatabase]] $s[[UseExternalStorage]],$s[[ExternalStorageEndpoint]],$s[[ExternalStorageTLS]],$s[[ExternalStorageUsername]],$s[[ExternalStoragePassword]],$s[[ExternalStorageBucket]],$s[[ExternalStorageTrustCert]]
Add-StepTransitions $graph $s[[UseExternalDatabase]] $s[[BackupType]]
Add-StepTransitions $graph $s[[ExternalStorageBucket]] $s[[BackupType]]
Add-StepTransitions $graph $s[[ExternalStorageTrustCert]] $s[[ExternalStorageCertificate]],$s[[BackupType]]
Add-StepTransitions $graph $s[[ExternalStorageTrustCert]] $s[[BackupType]]
Add-StepTransitions $graph $s[[UseExternalStorage]] $s[[BackupType]]
Add-StepTransitions $graph $s[[BackupType]] $s[[VeleroNamespace]],$s[[BackupSchedule]],$s[[BackupDatabaseTimeout]],$s[[BackupTimeToLive]],$s[[UseDefaultOptions]]
Add-StepTransitions $graph $s[[BackupType]] $s[[UseDefaultOptions]]
Add-StepTransitions $graph $s[[UseDefaultOptions]] $s[[UsePodSecurityPolicyOption]],$s[[UseNetworkPolicyOption]],$s[[UseTlsOption]]
Add-StepTransitions $graph $s[[UseDefaultOptions]] $s[[UseNetworkPolicyOption]],$s[[UseTlsOption]]
Add-StepTransitions $graph $s[[UseDefaultOptions]] $s[[UseLegacyUnknownSigner]]
Add-StepTransitions $graph $s[[UseDefaultOptions]] $s[[CertsCAPath]]
Add-StepTransitions $graph $s[[UseDefaultOptions]] $s[[CodeDxNamespace]]
Add-StepTransitions $graph $s[[UseTlsOption]] $s[[UseLegacyUnknownSigner]],$s[[LegacyUnknownCertsPath]],$s[[CodeDxNamespace]]
Add-StepTransitions $graph $s[[UseTlsOption]] $s[[UseLegacyUnknownSigner]],$s[[CertsCAPath]]
Add-StepTransitions $graph $s[[UseTlsOption]] $s[[CertsCAPath]],$s[[CodeDxSignerName]],$s[[ToolOrchestrationSignerName]],$s[[CodeDxNamespace]]
Add-StepTransitions $graph $s[[UseTlsOption]] $s[[CertsCAPath]],$s[[CodeDxSignerName]],$s[[CodeDxNamespace]]
Add-StepTransitions $graph $s[[UseTlsOption]] $s[[CodeDxNamespace]]
Add-StepTransitions $graph $s[[CodeDxNamespace]] $s[[CodeDxReleaseName]],$s[[ToolOrchestrationNamespace]],$s[[ToolOrchestrationReleaseName]],$s[[ExternalDatabaseHost]]
Add-StepTransitions $graph $s[[CodeDxNamespace]] $s[[CodeDxReleaseName]],$s[[ToolOrchestrationNamespace]],$s[[ToolOrchestrationReleaseName]],$s[[DatabaseRootPwd]]
Add-StepTransitions $graph $s[[CodeDxNamespace]] $s[[CodeDxReleaseName]],$s[[ExternalDatabaseHost]]
Add-StepTransitions $graph $s[[CodeDxNamespace]] $s[[CodeDxReleaseName]],$s[[DatabaseRootPwd]]
Add-StepTransitions $graph $s[[DatabaseRootPwd]] $s[[DatabaseReplicationPwd]],$s[[DatabaseUserPwd]],$s[[DatabaseReplicaCount]],$s[[UseDefaultCACerts]]
Add-StepTransitions $graph $s[[DatabaseReplicaCount]] $s[[CACertsFile]]
Add-StepTransitions $graph $s[[ExternalDatabaseHost]] $s[[ExternalDatabasePort]],$s[[ExternalDatabaseName]],$s[[ExternalDatabaseUser]],$s[[ExternalDatabasePwd]],$s[[ExternalDatabaseOneWayAuth]]
Add-StepTransitions $graph $s[[ExternalDatabaseOneWayAuth]] $s[[ExternalDatabaseCert]],$s[[CACertsFile]]
Add-StepTransitions $graph $s[[ExternalDatabaseOneWayAuth]] $s[[UseDefaultCACerts]]
Add-StepTransitions $graph $s[[UseDefaultCACerts]] $s[[CACertsFile]],$s[[CACertsFilePassword]],$s[[CACertsChangePassword]]
Add-StepTransitions $graph $s[[CACertsChangePassword]] $s[[CACertsFileNewPassword]],$s[[AddExtraCertificates]]
Add-StepTransitions $graph $s[[CACertsChangePassword]] $s[[AddExtraCertificates]]
Add-StepTransitions $graph $s[[UseDefaultCACerts]] $s[[CodeDxPassword]]
Add-StepTransitions $graph $s[[AddExtraCertificates]] $s[[ExtraCertificates]],$s[[CodeDxPassword]]
Add-StepTransitions $graph $s[[AddExtraCertificates]] $s[[CodeDxPassword]]
Add-StepTransitions $graph $s[[CodeDxPassword]] $s[[ToolServiceKey]],$s[[MinioAdminPassword]],$s[[ToolServiceReplicaCount]],$s[[UsePrivateDockerRegistry]]
Add-StepTransitions $graph $s[[CodeDxPassword]] $s[[ToolServiceKey]],$s[[ToolServiceReplicaCount]],$s[[UsePrivateDockerRegistry]]
Add-StepTransitions $graph $s[[CodeDxPassword]] $s[[UsePrivateDockerRegistry]]
Add-StepTransitions $graph $s[[UsePrivateDockerRegistry]] $s[[DockerImagePullSecret]],$s[[PrivateDockerRegistryHost]],$s[[PrivateDockerRegistryUser]],$s[[PrivateDockerRegistryPwd]],$s[[UseDefaultDockerImages]]
Add-StepTransitions $graph $s[[UsePrivateDockerRegistry]] $s[[UseDefaultDockerImages]]
Add-StepTransitions $graph $s[[UseDefaultDockerImages]] $s[[PublicRedirect]],$s[[IngressKind]]
Add-StepTransitions $graph $s[[UseDefaultDockerImages]] $s[[CodeDxTomcatDockerImage]],$s[[CodeDxTomcatInitDockerImage]],$s[[CodeDxMariaDBDockerImage]],$s[[CodeDxToolsDockerImage]]
Add-StepTransitions $graph $s[[UseDefaultDockerImages]] $s[[CodeDxTomcatDockerImage]],$s[[CodeDxTomcatInitDockerImage]],$s[[CodeDxMariaDBDockerImage]],$s[[IngressKind]]
Add-StepTransitions $graph $s[[UseDefaultDockerImages]] $s[[CodeDxTomcatDockerImage]],$s[[CodeDxTomcatInitDockerImage]],$s[[CodeDxToolsDockerImage]]
Add-StepTransitions $graph $s[[CodeDxToolsDockerImage]] $s[[CodeDxToolsMonoDockerImage]],$s[[CodeDxToolServiceDockerImage]],$s[[CodeDxSendResultsDockerImage]],$s[[CodeDxSendErrorResultsDockerImage]],$s[[CodeDxNewAnalysisDockerImage]],$s[[CodeDxPrepareDockerImage]],$s[[CodeDxPreDeleteDockerImage]],$s[[MinioDockerImage]],$s[[CodeDxWorkflowControllerDockerImage]],$s[[CodeDxWorkflowExecutorDockerImage]],$s[[IngressKind]]
Add-StepTransitions $graph $s[[CodeDxToolsDockerImage]] $s[[CodeDxToolsMonoDockerImage]],$s[[CodeDxToolServiceDockerImage]],$s[[CodeDxSendResultsDockerImage]],$s[[CodeDxSendErrorResultsDockerImage]],$s[[CodeDxNewAnalysisDockerImage]],$s[[CodeDxPrepareDockerImage]],$s[[CodeDxPreDeleteDockerImage]],$s[[CodeDxWorkflowControllerDockerImage]],$s[[CodeDxWorkflowExecutorDockerImage]],$s[[IngressKind]]
Add-StepTransitions $graph $s[[UseDefaultDockerImages]] $s[[CodeDxTomcatDockerImage]],$s[[CodeDxTomcatInitDockerImage]],$s[[IngressKind]]
Add-StepTransitions $graph $s[[UseDefaultDockerImages]] $s[[IngressKind]]
Add-StepTransitions $graph $s[[IngressKind]] $s[[NginxTLS]],$s[[CertManagerIssuerType]],$s[[CertManagerIssuer]],$s[[DnsName]]
Add-StepTransitions $graph $s[[IngressKind]] $s[[NginxTLS]],$s[[NginxTLSSecretName]],$s[[DnsName]]
Add-StepTransitions $graph $s[[IngressKind]] $s[[NginxTLS]],$s[[DnsName]]
Add-StepTransitions $graph $s[[IngressKind]] $s[[IngressCertificateArn]],$s[[AuthenticationType]]
Add-StepTransitions $graph $s[[IngressKind]] $s[[DnsName]],$s[[AuthenticationType]]
Add-StepTransitions $graph $s[[IngressKind]] $s[[AuthenticationType]]
Add-StepTransitions $graph $s[[AuthenticationType]] $s[[LdapInstructions]],$s[[DefaultCPU]]
Add-StepTransitions $graph $s[[AuthenticationType]] $s[[SamlAuthenticationDnsName]],$s[[SamlIdpMetadata]],$s[[SamlAppName]],$s[[SamlKeystorePwd]],$s[[SamlPrivateKeyPwd]],$s[[SamlExtraConfig]],$s[[DefaultCPU]]
Add-StepTransitions $graph $s[[AuthenticationType]] $s[[SamlIdpMetadata]]
Add-StepTransitions $graph $s[[AuthenticationType]] $s[[DefaultCPU]]
Add-StepTransitions $graph $s[[DefaultCPU]] $s[[CodeDxCPU]]
Add-StepTransitions $graph $s[[DefaultCPU]] $s[[DefaultMemory]]
Add-StepTransitions $graph $s[[CodeDxCPU]] $s[[MasterDatabaseCPU]],$s[[SubordinateDatabaseCPU]],$s[[ToolServiceCPU]],$s[[MinIOCPU]],$s[[WorkflowCPU]],$s[[DefaultMemory]]
Add-StepTransitions $graph $s[[MasterDatabaseCPU]] $s[[ToolServiceCPU]]
Add-StepTransitions $graph $s[[MasterDatabaseCPU]] $s[[DefaultMemory]]
Add-StepTransitions $graph $s[[CodeDxCPU]] $s[[ToolServiceCPU]],$s[[MinIOCPU]],$s[[WorkflowCPU]],$s[[DefaultMemory]]
Add-StepTransitions $graph $s[[CodeDxCPU]] $s[[ToolServiceCPU]],$s[[WorkflowCPU]],$s[[DefaultMemory]]
Add-StepTransitions $graph $s[[CodeDxCPU]] $s[[MasterDatabaseCPU]],$s[[SubordinateDatabaseCPU]],$s[[DefaultMemory]]
Add-StepTransitions $graph $s[[CodeDxCPU]] $s[[DefaultMemory]]
Add-StepTransitions $graph $s[[DefaultMemory]] $s[[CodeDxMemory]]
Add-StepTransitions $graph $s[[DefaultMemory]] $s[[DefaultEphemeralStorage]]
Add-StepTransitions $graph $s[[CodeDxMemory]] $s[[MasterDatabaseMemory]],$s[[SubordinateDatabaseMemory]],$s[[ToolServiceMemory]],$s[[MinIOMemory]],$s[[WorkflowMemory]],$s[[DefaultEphemeralStorage]]
Add-StepTransitions $graph $s[[MasterDatabaseMemory]] $s[[ToolServiceMemory]]
Add-StepTransitions $graph $s[[MasterDatabaseMemory]] $s[[DefaultEphemeralStorage]]
Add-StepTransitions $graph $s[[CodeDxMemory]] $s[[ToolServiceMemory]],$s[[MinIOMemory]],$s[[WorkflowMemory]],$s[[DefaultEphemeralStorage]]
Add-StepTransitions $graph $s[[CodeDxMemory]] $s[[ToolServiceMemory]],$s[[WorkflowMemory]],$s[[DefaultEphemeralStorage]]
Add-StepTransitions $graph $s[[CodeDxMemory]] $s[[MasterDatabaseMemory]],$s[[SubordinateDatabaseMemory]],$s[[DefaultEphemeralStorage]]
Add-StepTransitions $graph $s[[CodeDxMemory]] $s[[DefaultEphemeralStorage]]
Add-StepTransitions $graph $s[[DefaultEphemeralStorage]] $s[[CodeDxEphemeralStorage]]
Add-StepTransitions $graph $s[[DefaultEphemeralStorage]] $s[[DefaultVolumeSize]]
Add-StepTransitions $graph $s[[CodeDxEphemeralStorage]] $s[[MasterDatabaseEphemeralStorage]],$s[[SubordinateDatabaseEphemeralStorage]],$s[[ToolServiceEphemeralStorage]],$s[[MinIOEphemeralStorage]],$s[[WorkflowEphemeralStorage]],$s[[DefaultVolumeSize]]
Add-StepTransitions $graph $s[[MasterDatabaseEphemeralStorage]] $s[[ToolServiceEphemeralStorage]]
Add-StepTransitions $graph $s[[MasterDatabaseEphemeralStorage]] $s[[DefaultVolumeSize]]
Add-StepTransitions $graph $s[[CodeDxEphemeralStorage]] $s[[ToolServiceEphemeralStorage]],$s[[MinIOEphemeralStorage]],$s[[WorkflowEphemeralStorage]],$s[[DefaultVolumeSize]]
Add-StepTransitions $graph $s[[CodeDxEphemeralStorage]] $s[[ToolServiceEphemeralStorage]],$s[[WorkflowEphemeralStorage]],$s[[DefaultVolumeSize]]
Add-StepTransitions $graph $s[[CodeDxEphemeralStorage]] $s[[MasterDatabaseEphemeralStorage]],$s[[SubordinateDatabaseEphemeralStorage]],$s[[DefaultVolumeSize]]
Add-StepTransitions $graph $s[[CodeDxEphemeralStorage]] $s[[DefaultVolumeSize]]
Add-StepTransitions $graph $s[[DefaultVolumeSize]] $s[[CodeDxVolumeSize]]
Add-StepTransitions $graph $s[[DefaultVolumeSize]] $s[[StorageClassName]]
Add-StepTransitions $graph $s[[CodeDxVolumeSize]] $s[[MasterDatabaseVolumeSize]],$s[[SubordinateDatabaseVolumeSize]],$s[[MinIOVolumeSize]],$s[[StorageClassName]]
Add-StepTransitions $graph $s[[MasterDatabaseVolumeSize]] $s[[MinIOVolumeSize]]
Add-StepTransitions $graph $s[[MasterDatabaseVolumeSize]] $s[[StorageClassName]]
Add-StepTransitions $graph $s[[SubordinateDatabaseVolumeSize]] $s[[StorageClassName]]
Add-StepTransitions $graph $s[[CodeDxVolumeSize]] $s[[MinIOVolumeSize]],$s[[StorageClassName]]
Add-StepTransitions $graph $s[[CodeDxVolumeSize]] $s[[StorageClassName]]
Add-StepTransitions $graph $s[[StorageClassName]] $s[[UseNodeSelectors]]
Add-StepTransitions $graph $s[[StorageClassName]] $s[[Finish]]
Add-StepTransitions $graph $s[[UseNodeSelectors]] $s[[CodeDxNodeSelector]],$s[[MasterDatabaseNodeSelector]],$s[[SubordinateDatabaseNodeSelector]],$s[[ToolServiceNodeSelector]]
Add-StepTransitions $graph $s[[UseNodeSelectors]] $s[[CodeDxNodeSelector]],$s[[ToolServiceNodeSelector]],$s[[MinIONodeSelector]],$s[[WorkflowControllerNodeSelector]],$s[[ToolNodeSelector]],$s[[UseTolerations]]
Add-StepTransitions $graph $s[[UseNodeSelectors]] $s[[CodeDxNodeSelector]],$s[[ToolServiceNodeSelector]],$s[[WorkflowControllerNodeSelector]],$s[[ToolNodeSelector]],$s[[UseTolerations]]
Add-StepTransitions $graph $s[[UseNodeSelectors]] $s[[CodeDxNodeSelector]],$s[[UseTolerations]]
Add-StepTransitions $graph $s[[UseNodeSelectors]] $s[[UseTolerations]]
Add-StepTransitions $graph $s[[SubordinateDatabaseNodeSelector]] $s[[UseTolerations]]
Add-StepTransitions $graph $s[[MasterDatabaseNodeSelector]] $s[[ToolServiceNodeSelector]]
Add-StepTransitions $graph $s[[MasterDatabaseNodeSelector]] $s[[UseTolerations]]
Add-StepTransitions $graph $s[[UseTolerations]] $s[[CodeDxTolerations]],$s[[MasterDatabaseTolerations]],$s[[SubordinateDatabaseTolerations]],$s[[ToolServiceTolerations]]
Add-StepTransitions $graph $s[[UseTolerations]] $s[[CodeDxTolerations]],$s[[ToolServiceTolerations]],$s[[MinIOTolerations]],$s[[WorkflowControllerTolerations]],$s[[ToolTolerations]],$s[[Finish]]
Add-StepTransitions $graph $s[[UseTolerations]] $s[[CodeDxTolerations]],$s[[ToolServiceTolerations]],$s[[WorkflowControllerTolerations]],$s[[ToolTolerations]],$s[[Finish]]
Add-StepTransitions $graph $s[[UseTolerations]] $s[[CodeDxTolerations]],$s[[Finish]]
Add-StepTransitions $graph $s[[UseTolerations]] $s[[Finish]]
Add-StepTransitions $graph $s[[SubordinateDatabaseTolerations]] $s[[Finish]]
Add-StepTransitions $graph $s[[MasterDatabaseTolerations]] $s[[ToolServiceTolerations]]
Add-StepTransitions $graph $s[[MasterDatabaseTolerations]] $s[[Finish]]
if ($DebugPreference -eq 'Continue') {
# Print graph at https://dreampuf.github.io/GraphvizOnline (select 'dot' Engine and use Format 'png-image-element')
write-host 'digraph G {'
$s.keys | ForEach-Object { $node = $s[$_]; ($node.getNeighbors() | ForEach-Object { write-host ('{0} -> {1};' -f $node.name,$_) }) }
write-host '}'
}
try {
$vStack = Invoke-GuidedSetup 'Code Dx - Guided Setup' $s[[Welcome]] ($s[[Finish]],$s[[Abort]])
Write-StepGraph (join-path ($config.workDir ?? './') 'graph.path') $s $vStack
} catch {
Write-Host "`n`nAn unexpected error occurred: $_`n"
}