Skip to content

Commit 01fdca9

Browse files
Merge pull request #90 from smartcontractkit/chore/separate-explorer
separate explorer
2 parents b7fdc0f + 70882ee commit 01fdca9

File tree

4 files changed

+64
-29
lines changed

4 files changed

+64
-29
lines changed

environment/environment_templates.go

Lines changed: 55 additions & 27 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,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+
}

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)