ethereum_beacon_cookbooks

package
v1.0.0-beta.rc4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2023 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LighthouseMainnet   = "lighthouse"
	LodestarEphemeral   = "lodestarEphemeral"
	LighthouseEphemeral = "lighthouseEphemeral"

	LodestarGoerli = "lodestarGoerli"
)
View Source
const (
	GethEphemeral = "gethEphemeral"
	GethGoerli    = "gethGoerli"
	GethMainnet   = "geth"
)

Variables

View Source
var (
	BeaconClusterDefinition = zeus_cluster_config_drivers.ClusterDefinition{
		ClusterClassName: "ethereumEphemeralBeaconsDev",
		CloudCtxNs:       BeaconCloudCtxNs,
		ComponentBases:   BeaconComponentBases,
	}
	BeaconCloudCtxNs = zeus_common_types.CloudCtxNs{
		CloudProvider: "do",
		Region:        "sfo3",
		Context:       "do-sfo3-dev-do-sfo3-zeus",
		Namespace:     "ephemeral",
		Env:           "production",
	}
	BeaconComponentBases = map[string]zeus_cluster_config_drivers.ComponentBaseDefinition{
		"beaconIngress":                 IngressComponentBase,
		"consensusClients":              ConsensusClientComponentBase,
		"execClients":                   ExecClientComponentBase,
		"serviceMonitorConsensusClient": ConsensusClientMonitoringComponentBase,
		"serviceMonitorExecClient":      ExecClientMonitoringComponentBase,
		"choreography":                  choreography_cookbooks.ChoreographyComponentBase,
	}
	ConsensusClientComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"lodestarHercules": ConsensusClientSkeletonBaseConfig,
		},
	}
	ConsensusClientMonitoringComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"serviceMonitorConsensusClient": ConsensusClientSkeletonBaseMonitoringConfig,
		},
	}
	ExecClientComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"gethHercules": ExecClientSkeletonBaseConfig,
		},
	}
	ExecClientMonitoringComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"serviceMonitorExecClient": ExecClientSkeletonBaseMonitoringConfig,
		},
	}
	IngressComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"beaconIngress": BeaconIngressSkeletonBaseConfig,
		},
	}
	BearerTokenSecretFromChoreography = zeus_topology_config_drivers.MakeSecretEnvVar("BEARER", "bearer", "choreography")
)
View Source
var (
	BeaconGoerliClusterDefinition = zeus_cluster_config_drivers.ClusterDefinition{
		ClusterClassName: "ethereumGoerliBeacons",
		CloudCtxNs:       BeaconGoerliCloudCtxNs,
		ComponentBases:   BeaconGoerliComponentBases,
	}
	BeaconGoerliCloudCtxNs = zeus_common_types.CloudCtxNs{
		CloudProvider: "do",
		Region:        "sfo3",
		Context:       "do-sfo3-dev-do-sfo3-zeus",
		Namespace:     "goerli-beacon",
		Env:           "production",
	}
	BeaconGoerliComponentBases = map[string]zeus_cluster_config_drivers.ComponentBaseDefinition{
		"consensusClients": ConsensusClientGoerliComponentBase,
		"execClients":      ExecClientGoerliComponentBase,
	}
	ConsensusClientGoerliComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"lodestarHercules": ConsensusClientGoerliSkeletonBaseConfig,
		},
	}
	ExecClientGoerliComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"gethHercules": ExecClientGoerliSkeletonBaseConfig,
		},
	}
)
View Source
var BeaconConsensusClientChartPath = filepaths.Path{
	PackageName: "",
	DirIn:       "./ethereum/beacons/infra/consensus_client",
	DirOut:      "./ethereum/outputs",
	FnIn:        "lighthouseHercules",
	FnOut:       "",
	Env:         "",
}
View Source
var BeaconExecClientChartPath = filepaths.Path{
	PackageName: "",
	DirIn:       "./ethereum/beacons/infra/exec_client",
	DirOut:      "./ethereum/outputs",
	FnIn:        "gethHercules",
	FnOut:       "",
	Env:         "",
}
View Source
var BeaconIngressSkeletonBaseConfig = zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
	SkeletonBaseChart:         zeus_req_types.TopologyCreateRequest{},
	SkeletonBaseNameChartPath: IngressChartPath,
}
View Source
var Cd = zeus_req_types.ClusterTopologyDeployRequest{

	ClusterClassName:    "ethereumBeacons",
	SkeletonBaseOptions: []string{"gethHercules", "lighthouseHercules"},
	CloudCtxNs:          BeaconCloudCtxNs,
}
View Source
var ConsensusClientChart = zeus_req_types.TopologyCreateRequest{
	TopologyName:      "lighthouseHercules",
	ChartName:         "lighthouseHercules",
	ChartDescription:  "lighthouseHercules",
	Version:           fmt.Sprintf("lighthouseHerculesv0.0.%d", time.Now().Unix()),
	ClusterClassName:  "ethereumBeacons",
	ComponentBaseName: "zeusConsensusClient",
	SkeletonBaseName:  "lighthouseHercules",
	Tag:               "latest",
}
View Source
var ConsensusClientGoerliSkeletonBaseConfig = zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
	SkeletonBaseChart:         zeus_req_types.TopologyCreateRequest{},
	SkeletonBaseNameChartPath: BeaconConsensusClientChartPath,
	TopologyConfigDriver: &config_overrides.TopologyConfigDriver{
		ConfigMapDriver: &config_overrides.ConfigMapDriver{
			ConfigMap: v1Core.ConfigMap{
				ObjectMeta: metav1.ObjectMeta{Name: "cm-consensus-client"},
			},
			SwapKeys: map[string]string{
				"start.sh": LodestarGoerli + ".sh",
			},
		},
		ServiceDriver: &config_overrides.ServiceDriver{
			Service: v1Core.Service{
				Spec: v1Core.ServiceSpec{
					Ports: []v1Core.ServicePort{
						{
							Name:       "hercules",
							Protocol:   "TCP",
							Port:       9003,
							TargetPort: intstr.IntOrString{Type: intstr.String, StrVal: "hercules"},
						},
						{
							Name:       "p2p-tcp",
							Protocol:   "TCP",
							Port:       9000,
							TargetPort: intstr.IntOrString{Type: intstr.String, StrVal: "p2p-tcp"},
						},
						{
							Name:       "p2p-udp",
							Protocol:   "UDP",
							Port:       9000,
							TargetPort: intstr.IntOrString{Type: intstr.String, StrVal: "p2p-udp"},
						},
						{
							Name:       "http-api",
							Protocol:   "TCP",
							Port:       int32(lodestarRestPort),
							TargetPort: intstr.IntOrString{Type: intstr.String, StrVal: "http-api"},
						},
					},
				},
			},
		},
		StatefulSetDriver: &config_overrides.StatefulSetDriver{
			ContainerDrivers: map[string]config_overrides.ContainerDriver{
				zeusConsensusClient: {Container: v1Core.Container{
					Name:  zeusConsensusClient,
					Image: lodestarDockerImage,
					Ports: []v1Core.ContainerPort{
						{
							Name:          "p2p-tcp",
							ContainerPort: 9000,
							Protocol:      "TCP",
						},
						{
							Name:          "p2p-udp",
							ContainerPort: 9000,
							Protocol:      "UDP",
						},
						{
							Name:          "http-api",
							ContainerPort: int32(lodestarRestPort),
							Protocol:      "TCP",
						},
					},
				}},
			},
			PVCDriver: &config_overrides.PersistentVolumeClaimsConfigDriver{
				PersistentVolumeClaimDrivers: map[string]v1Core.PersistentVolumeClaim{
					consensusStorageDiskName: {
						ObjectMeta: metav1.ObjectMeta{Name: consensusStorageDiskName},
						Spec: v1Core.PersistentVolumeClaimSpec{Resources: v1Core.ResourceRequirements{
							Requests: v1Core.ResourceList{"storage": resource.MustParse(consensusStorageDiskSizeGoerli)},
						}},
					},
				}},
		},
	}}
View Source
var ConsensusClientSkeletonBaseConfig = zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
	SkeletonBaseChart:         zeus_req_types.TopologyCreateRequest{},
	SkeletonBaseNameChartPath: BeaconConsensusClientChartPath,
	TopologyConfigDriver: &config_overrides.TopologyConfigDriver{
		ConfigMapDriver: &config_overrides.ConfigMapDriver{
			ConfigMap: v1Core.ConfigMap{
				ObjectMeta: metav1.ObjectMeta{Name: "cm-consensus-client"},
			},
			SwapKeys: map[string]string{
				"start.sh": LighthouseEphemeral + ".sh",
			},
		},
		StatefulSetDriver: &config_overrides.StatefulSetDriver{
			ContainerDrivers: map[string]config_overrides.ContainerDriver{
				zeusConsensusClient: {Container: v1Core.Container{
					Name:  zeusConsensusClient,
					Image: lighthouseDockerImageCapella,
				}},
			},
			PVCDriver: &config_overrides.PersistentVolumeClaimsConfigDriver{
				PersistentVolumeClaimDrivers: map[string]v1Core.PersistentVolumeClaim{
					consensusStorageDiskName: {
						ObjectMeta: metav1.ObjectMeta{Name: consensusStorageDiskName},
						Spec: v1Core.PersistentVolumeClaimSpec{Resources: v1Core.ResourceRequirements{
							Requests: v1Core.ResourceList{"storage": resource.MustParse(consensusStorageDiskSizeEphemeral)},
						}},
					},
				}},
		},
	}}
View Source
var ConsensusClientSkeletonBaseMonitoringConfig = zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
	SkeletonBaseChart:         zeus_req_types.TopologyCreateRequest{},
	SkeletonBaseNameChartPath: ServiceMonitorChartPath,
	TopologyConfigDriver: &config_overrides.TopologyConfigDriver{
		ServiceMonitorDriver: &config_overrides.ServiceMonitorDriver{
			ServiceMonitor: v1.ServiceMonitor{
				ObjectMeta: metav1.ObjectMeta{
					Name: "zeus-consensus-client-monitor",
					Labels: map[string]string{
						"app":     zeusConsensusClient,
						"release": "kube-prometheus-stack",
					}},
				Spec: v1.ServiceMonitorSpec{
					Selector: metav1.LabelSelector{
						MatchLabels: map[string]string{
							"app.kubernetes.io/instance": zeusConsensusClient,
							"app.kubernetes.io/name":     zeusConsensusClient,
						},
					},
				},
			}},
	},
}
View Source
var DeployConsensusClientKnsReq = zeus_req_types.TopologyDeployRequest{
	TopologyID: 0,
	CloudCtxNs: BeaconCloudCtxNs,
}

DeployConsensusClientKnsReq set your own topologyID here after uploading a chart workload

View Source
var DeployExecClientKnsReq = zeus_req_types.TopologyDeployRequest{
	TopologyID: 0,
	CloudCtxNs: BeaconCloudCtxNs,
}

DeployExecClientKnsReq set your own topologyID here after uploading a chart workload

View Source
var ExecClientChart = zeus_req_types.TopologyCreateRequest{
	TopologyName:      "gethHercules",
	ChartName:         "gethHercules",
	ChartDescription:  "gethHercules",
	Version:           fmt.Sprintf("gethHerculesv0.0.%d", time.Now().Unix()),
	ClusterClassName:  "ethereumBeacons",
	ComponentBaseName: "executionClient",
	SkeletonBaseName:  "gethHercules",
	Tag:               "latest",
}
View Source
var ExecClientGoerliSkeletonBaseConfig = zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
	SkeletonBaseChart:         zeus_req_types.TopologyCreateRequest{},
	SkeletonBaseNameChartPath: BeaconExecClientChartPath,
	TopologyConfigDriver: &config_overrides.TopologyConfigDriver{
		ConfigMapDriver: &config_overrides.ConfigMapDriver{
			ConfigMap: v1Core.ConfigMap{
				ObjectMeta: metav1.ObjectMeta{Name: cmExecClient},
			},
			SwapKeys: map[string]string{
				"start.sh": GethGoerli + ".sh",
			},
		},
		StatefulSetDriver: &config_overrides.StatefulSetDriver{
			ContainerDrivers: map[string]config_overrides.ContainerDriver{
				zeusExecClient: {
					Container: v1Core.Container{
						Name:  zeusExecClient,
						Image: gethDockerImage,
					},
				},
			},
			PVCDriver: &config_overrides.PersistentVolumeClaimsConfigDriver{
				PersistentVolumeClaimDrivers: map[string]v1Core.PersistentVolumeClaim{
					execClientDiskName: {
						ObjectMeta: metav1.ObjectMeta{Name: execClientDiskName},
						Spec: v1Core.PersistentVolumeClaimSpec{Resources: v1Core.ResourceRequirements{
							Requests: v1Core.ResourceList{"storage": resource.MustParse(execClientDiskSizeGoerli)},
						}},
					},
				}},
		},
	}}
View Source
var ExecClientSkeletonBaseConfig = zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
	SkeletonBaseChart:         zeus_req_types.TopologyCreateRequest{},
	SkeletonBaseNameChartPath: BeaconExecClientChartPath,
	TopologyConfigDriver: &config_overrides.TopologyConfigDriver{
		ConfigMapDriver: &config_overrides.ConfigMapDriver{
			ConfigMap: v1Core.ConfigMap{
				ObjectMeta: metav1.ObjectMeta{Name: "cm-exec-client"},
			},
			SwapKeys: map[string]string{
				"start.sh": GethEphemeral + ".sh",
			},
		},
		StatefulSetDriver: &config_overrides.StatefulSetDriver{
			ContainerDrivers: map[string]config_overrides.ContainerDriver{
				zeusExecClient: {
					Container: v1Core.Container{
						Name:  zeusExecClient,
						Image: gethDockerImage,
					},
				},
			},
			PVCDriver: &config_overrides.PersistentVolumeClaimsConfigDriver{
				PersistentVolumeClaimDrivers: map[string]v1Core.PersistentVolumeClaim{
					execClientDiskName: {
						ObjectMeta: metav1.ObjectMeta{Name: execClientDiskName},
						Spec: v1Core.PersistentVolumeClaimSpec{Resources: v1Core.ResourceRequirements{
							Requests: v1Core.ResourceList{"storage": resource.MustParse(execClientDiskSizeEphemeral)},
						}},
					},
				}},
		},
	}}
View Source
var ExecClientSkeletonBaseMonitoringConfig = zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
	SkeletonBaseChart:         zeus_req_types.TopologyCreateRequest{},
	SkeletonBaseNameChartPath: ServiceMonitorChartPath,
	TopologyConfigDriver: &config_overrides.TopologyConfigDriver{
		ServiceMonitorDriver: &config_overrides.ServiceMonitorDriver{
			ServiceMonitor: v1.ServiceMonitor{
				ObjectMeta: metav1.ObjectMeta{
					Name: "zeus-exec-client-monitor",
					Labels: map[string]string{
						"app":     zeusExecClient,
						"release": "kube-prometheus-stack",
					}},
				Spec: v1.ServiceMonitorSpec{
					Selector: metav1.LabelSelector{
						MatchLabels: map[string]string{
							"app.kubernetes.io/instance": zeusExecClient,
							"app.kubernetes.io/name":     zeusExecClient,
						},
					},
				},
			}},
	},
}
View Source
var IngressChart = zeus_req_types.TopologyCreateRequest{
	TopologyName:      "beaconIngress",
	ChartName:         "beaconIngress",
	ChartDescription:  "beaconIngress",
	Version:           fmt.Sprintf("beaconIngress-v.0.%d", time.Now().Unix()),
	SkeletonBaseName:  "beaconIngress",
	ComponentBaseName: "beaconIngress",
	ClusterClassName:  "ethereumBeacon",
	Tag:               "latest",
}
View Source
var IngressChartPath = filepaths.Path{
	PackageName: "",
	DirIn:       "./ethereum/beacons/infra/ingress",
	DirOut:      "./ethereum/beacons/infra/processed_beacon_ingress",
	FnIn:        "beaconIngress",
	FnOut:       "",
	Env:         "",
}
View Source
var ServiceMonitorChartPath = filepaths.Path{
	PackageName: "",
	DirIn:       "./ethereum/beacons/infra/servicemonitor",
	DirOut:      "./ethereum/beacons/infra/processed_servicemonitor",
	FnIn:        "servicemonitor",
	FnOut:       "",
	Env:         "",
}

Functions

func ConfigEphemeralLighthouseGethBeacon

func ConfigEphemeralLighthouseGethBeacon(cp, ep, ing filepaths.Path, withIngress bool)

func EphemeralConsensusClientLighthouseConfig

func EphemeralConsensusClientLighthouseConfig(inf topology_workloads.TopologyBaseInfraWorkload)

func EphemeralExecClientGethConfig

func EphemeralExecClientGethConfig(inf topology_workloads.TopologyBaseInfraWorkload)

func GetClientClusterDef added in v0.4.0

func GetClientClusterDef(consensusClient, execClient, network string, withIngress bool) zeus_cluster_config_drivers.ClusterDefinition

func GetComponentBases added in v0.4.0

func GetComponentBases(consensusClient, execClient, network string, withIngress bool) map[string]zeus_cluster_config_drivers.ComponentBaseDefinition

func GetConsensusClientNetworkConfig added in v0.4.0

func GetConsensusClientNetworkConfig(consensusClient, network string, choreographySecretsExist bool) zeus_cluster_config_drivers.ComponentBaseDefinition

func GetExecClientNetworkConfig added in v0.4.0

func GetExecClientNetworkConfig(execClient, network string, choreographySecretsExist bool) zeus_cluster_config_drivers.ComponentBaseDefinition

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL