Skip to content

Commit 6cb804d

Browse files
separate explorer
1 parent b7fdc0f commit 6cb804d

File tree

4 files changed

+67
-27
lines changed

4 files changed

+67
-27
lines changed

environment/environment_templates.go

Lines changed: 58 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -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,11 @@ 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)
285+
286+
//return addDependencyGroup(nodeCount, "mixed-version-chainlink", chainlinkGroup)
265287
}
266288

267289
// NewGethReorgHelmChart creates new helm chart for multi-node Geth network
@@ -306,9 +328,8 @@ func getMixedVersions(versionCount int) ([]string, error) {
306328
return mixedVersions, nil
307329
}
308330

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 {
331+
// getBasicDependencyGroup returns a manifest group containing the basic setup for a chainlink deployment
332+
func getBasicDependencyGroup() *K8sManifestGroup {
312333
group := &K8sManifestGroup{
313334
id: "DependencyGroup",
314335
manifests: []K8sEnvResource{NewAdapterManifest()},
@@ -327,40 +348,52 @@ func addDependencyGroup(nodeCount int, envName string, chainlinkGroup *K8sManife
327348
return nil
328349
},
329350
}
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-
}
351+
return group
352+
}
335353

354+
// addNetworkManifestToDependencyGroup adds the correct network to the dependency group and returns
355+
// an array of all groups, this should be called as the last function when creating deploys
356+
func addNetworkManifestToDependencyGroup(envName string, dependencyGroup *K8sManifestGroup, chainlinkGroup *K8sManifestGroup) K8sEnvSpecInit {
336357
return func(config *config.NetworkConfig) (string, K8sEnvSpecs) {
337358
switch config.Name {
338359
case "Ethereum Geth reorg":
339-
group.manifests = append(
340-
group.manifests,
360+
dependencyGroup.manifests = append(
361+
dependencyGroup.manifests,
341362
NewGethReorgHelmChart(),
342363
)
343364
case "Ethereum Geth dev":
344-
group.manifests = append(
345-
group.manifests,
346-
NewGethManifest(),
347-
NewExplorerManifest(nodeCount))
365+
dependencyGroup.manifests = append(
366+
dependencyGroup.manifests,
367+
NewGethManifest())
348368
case "Ethereum Hardhat":
349-
group.manifests = append(
350-
group.manifests,
369+
dependencyGroup.manifests = append(
370+
dependencyGroup.manifests,
351371
NewHardhatManifest())
352372
case "Ethereum Ganache":
353-
group.manifests = append(
354-
group.manifests,
373+
dependencyGroup.manifests = append(
374+
dependencyGroup.manifests,
355375
NewGanacheManifest())
356376
default: // no simulated chain
357-
group.manifests = append(
358-
group.manifests,
359-
NewExplorerManifest(nodeCount))
377+
dependencyGroup.manifests = append(
378+
dependencyGroup.manifests)
360379
}
361380
if len(chainlinkGroup.manifests) > 0 {
362-
return envName, K8sEnvSpecs{group, chainlinkGroup}
381+
return envName, K8sEnvSpecs{dependencyGroup, chainlinkGroup}
363382
}
364-
return envName, K8sEnvSpecs{group}
383+
return envName, K8sEnvSpecs{dependencyGroup}
384+
}
385+
}
386+
387+
// addPostgresDbsToDependencyGroup adds a postgresCount number of postgres dbs to the dependency group
388+
func addPostgresDbsToDependencyGroup(dependencyGroup *K8sManifestGroup, postgresCount int) {
389+
for i := 0; i < postgresCount; i++ {
390+
pManifest := NewPostgresManifest()
391+
pManifest.id = fmt.Sprintf("%s-%d", pManifest.id, i)
392+
dependencyGroup.manifests = append(dependencyGroup.manifests, pManifest)
365393
}
366394
}
395+
396+
// addServicesForTestingAlertsToDependencyGroup adds services necessary for testing alerts to the dependency group
397+
func addServicesForTestingAlertsToDependencyGroup(dependencyGroup *K8sManifestGroup, nodeCount int) {
398+
dependencyGroup.manifests = append(dependencyGroup.manifests, NewExplorerManifest(nodeCount))
399+
}

environment/k8s_environment.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -853,13 +853,18 @@ func next(array *TemplateValuesArray) (interface{}, error) {
853853
return val, nil
854854
}
855855

856+
func present(name string, data map[string]interface{}) bool {
857+
_, ok := data[name]
858+
return ok
859+
}
860+
856861
func (m *K8sManifest) parse(path string, obj interface{}, data interface{}) error {
857862
fileBytes, err := ioutil.ReadFile(path)
858863
if err != nil {
859864
return fmt.Errorf("failed to read k8s file: %v", err)
860865
}
861866

862-
var funcs = template.FuncMap{"next": next}
867+
var funcs = template.FuncMap{"next": next, "present": present}
863868

864869
tpl, err := template.New(path).Funcs(funcs).Parse(string(fileBytes))
865870
if err != nil {

environment/templates/chainlink/chainlink-deployment.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ spec:
8383
value: "200000"
8484
- name: KEEPER_REGISTRY_PERFORM_GAS_OVERHEAD
8585
value: "150000"
86+
{{ if (present "explorer" .Values.DependencyGroup) }}
8687
- name: EXPLORER_URL
8788
value: {{ .Values.DependencyGroup.explorer.clusterURL }}
8889
{{ with $x := next .Values.DependencyGroup.explorer.keys }}
@@ -91,6 +92,7 @@ spec:
9192
- name: EXPLORER_SECRET
9293
value: {{ $x.Secret }}
9394
{{ end }}
95+
{{ end }}
9496
volumeMounts:
9597
- name: node-secrets-volume
9698
readonly: false

suite/contracts/contracts_alerts_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var _ = Describe("Alerts suite", func() {
2222
BeforeEach(func() {
2323
By("Deploying the environment", func() {
2424
suiteSetup, err = actions.DefaultLocalSetup(
25-
environment.NewChainlinkCluster(3),
25+
environment.NewChainlinkClusterForAlertsTesting(3),
2626
client.NewNetworkFromConfig,
2727
tools.ProjectRoot,
2828
)

0 commit comments

Comments
 (0)