@@ -224,7 +224,25 @@ func NewChainlinkCluster(nodeCount int) K8sEnvSpecInit {
224224 chainlinkGroup .manifests = append (chainlinkGroup .manifests , cManifest )
225225 }
226226
227- return addDependencyGroup (nodeCount , "basic-chainlink" , chainlinkGroup )
227+ dependencyGroup := getBasicDependencyGroup ()
228+ addPostgresDbsToDependencyGroup (dependencyGroup , nodeCount )
229+ return addNetworkManifestToDependencyGroup ("basic-chainlink" , dependencyGroup , chainlinkGroup )
230+ }
231+
232+ func NewChainlinkClusterForAlertsTesting (nodeCount int ) K8sEnvSpecInit {
233+ chainlinkGroup := & K8sManifestGroup {
234+ id : "chainlinkCluster" ,
235+ manifests : []K8sEnvResource {},
236+ }
237+ for i := 0 ; i < nodeCount ; i ++ {
238+ cManifest := NewChainlinkManifest ()
239+ cManifest .id = fmt .Sprintf ("%s-%d" , cManifest .id , i )
240+ chainlinkGroup .manifests = append (chainlinkGroup .manifests , cManifest )
241+ }
242+ dependencyGroup := getBasicDependencyGroup ()
243+ addPostgresDbsToDependencyGroup (dependencyGroup , nodeCount )
244+ addServicesForTestingAlertsToDependencyGroup (dependencyGroup , nodeCount )
245+ return addNetworkManifestToDependencyGroup ("basic-chainlink" , dependencyGroup , chainlinkGroup )
228246}
229247
230248// NewMixedVersionChainlinkCluster mixes the currently latest chainlink version (as defined by the config file) with
@@ -261,7 +279,9 @@ func NewMixedVersionChainlinkCluster(nodeCount, pastVersionsCount int) K8sEnvSpe
261279 chainlinkGroup .manifests = append (chainlinkGroup .manifests , cManifest )
262280 }
263281
264- return addDependencyGroup (nodeCount , "mixed-version-chainlink" , chainlinkGroup )
282+ dependencyGroup := getBasicDependencyGroup ()
283+ addPostgresDbsToDependencyGroup (dependencyGroup , nodeCount )
284+ return addNetworkManifestToDependencyGroup ("mixed-version-chainlink" , dependencyGroup , chainlinkGroup )
265285}
266286
267287// NewGethReorgHelmChart creates new helm chart for multi-node Geth network
@@ -306,9 +326,8 @@ func getMixedVersions(versionCount int) ([]string, error) {
306326 return mixedVersions , nil
307327}
308328
309- // addDependencyGroup add everything that has no dependencies but other pods have
310- // dependencies on in the first group
311- func addDependencyGroup (nodeCount int , envName string , chainlinkGroup * K8sManifestGroup ) K8sEnvSpecInit {
329+ // getBasicDependencyGroup returns a manifest group containing the basic setup for a chainlink deployment
330+ func getBasicDependencyGroup () * K8sManifestGroup {
312331 group := & K8sManifestGroup {
313332 id : "DependencyGroup" ,
314333 manifests : []K8sEnvResource {NewAdapterManifest ()},
@@ -327,40 +346,49 @@ func addDependencyGroup(nodeCount int, envName string, chainlinkGroup *K8sManife
327346 return nil
328347 },
329348 }
330- for i := 0 ; i < nodeCount ; i ++ {
331- pManifest := NewPostgresManifest ()
332- pManifest .id = fmt .Sprintf ("%s-%d" , pManifest .id , i )
333- group .manifests = append (group .manifests , pManifest )
334- }
349+ return group
350+ }
335351
352+ // addNetworkManifestToDependencyGroup adds the correct network to the dependency group and returns
353+ // an array of all groups, this should be called as the last function when creating deploys
354+ func addNetworkManifestToDependencyGroup (envName string , dependencyGroup * K8sManifestGroup , chainlinkGroup * K8sManifestGroup ) K8sEnvSpecInit {
336355 return func (config * config.NetworkConfig ) (string , K8sEnvSpecs ) {
337356 switch config .Name {
338357 case "Ethereum Geth reorg" :
339- group .manifests = append (
340- group .manifests ,
341- NewGethReorgHelmChart (),
342- )
358+ dependencyGroup .manifests = append (
359+ dependencyGroup .manifests ,
360+ NewGethReorgHelmChart ())
343361 case "Ethereum Geth dev" :
344- group .manifests = append (
345- group .manifests ,
346- NewGethManifest (),
347- NewExplorerManifest (nodeCount ))
362+ dependencyGroup .manifests = append (
363+ dependencyGroup .manifests ,
364+ NewGethManifest ())
348365 case "Ethereum Hardhat" :
349- group .manifests = append (
350- group .manifests ,
366+ dependencyGroup .manifests = append (
367+ dependencyGroup .manifests ,
351368 NewHardhatManifest ())
352369 case "Ethereum Ganache" :
353- group .manifests = append (
354- group .manifests ,
370+ dependencyGroup .manifests = append (
371+ dependencyGroup .manifests ,
355372 NewGanacheManifest ())
356373 default : // no simulated chain
357- group .manifests = append (
358- group .manifests ,
359- NewExplorerManifest (nodeCount ))
360374 }
361375 if len (chainlinkGroup .manifests ) > 0 {
362- return envName , K8sEnvSpecs {group , chainlinkGroup }
376+ return envName , K8sEnvSpecs {dependencyGroup , chainlinkGroup }
363377 }
364- return envName , K8sEnvSpecs {group }
378+ return envName , K8sEnvSpecs {dependencyGroup }
379+ }
380+ }
381+
382+ // addPostgresDbsToDependencyGroup adds a postgresCount number of postgres dbs to the dependency group
383+ func addPostgresDbsToDependencyGroup (dependencyGroup * K8sManifestGroup , postgresCount int ) {
384+ for i := 0 ; i < postgresCount ; i ++ {
385+ pManifest := NewPostgresManifest ()
386+ pManifest .id = fmt .Sprintf ("%s-%d" , pManifest .id , i )
387+ dependencyGroup .manifests = append (dependencyGroup .manifests , pManifest )
365388 }
366389}
390+
391+ // addServicesForTestingAlertsToDependencyGroup adds services necessary for testing alerts to the dependency group
392+ func addServicesForTestingAlertsToDependencyGroup (dependencyGroup * K8sManifestGroup , nodeCount int ) {
393+ dependencyGroup .manifests = append (dependencyGroup .manifests , NewExplorerManifest (nodeCount ))
394+ }
0 commit comments