ethereum_beacon_cookbooks

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LighthouseMainnet   = "lighthouse"
	LodestarEphemeral   = "lodestar-ephemeral"
	LighthouseEphemeral = "lighthouse-ephemeral"

	LodestarGoerli = "lodestar-goerli"
)
View Source
const (
	GethEphemeral = "gethEphemeral"
	GethGoerli    = "gethGoerli"
	GethMainnet   = "geth"
)

Variables

View Source
var (
	BeaconClusterDefinition = zeus_cluster_config_drivers.ClusterDefinition{
		ClusterClassName: "ethereum-ephemeral-beacons",
		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{
		"beacon-ingress":                  IngressComponentBase,
		"consensus-clients":               ConsensusClientComponentBase,
		"exec-clients":                    ExecClientComponentBase,
		"servicemonitor-consensus-client": ConsensusClientMonitoringComponentBase,
		"servicemonitor-exec-client":      ExecClientMonitoringComponentBase,
		"choreography":                    choreography_cookbooks.ChoreographyComponentBase,
	}
	ConsensusClientComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"lodestar-hercules": ConsensusClientSkeletonBaseConfig,
		},
	}
	ConsensusClientMonitoringComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"servicemonitor-consensus-client": ConsensusClientSkeletonBaseMonitoringConfig,
		},
	}
	ExecClientComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"geth-hercules": ExecClientSkeletonBaseConfig,
		},
	}
	ExecClientMonitoringComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"servicemonitor-exec-client": ExecClientSkeletonBaseMonitoringConfig,
		},
	}
	IngressComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"beacon-ingress": BeaconIngressSkeletonBaseConfig,
		},
	}
	BearerTokenSecretFromChoreography = zeus_topology_config_drivers.MakeSecretEnvVar("BEARER", "bearer", "choreography")
)
View Source
var (
	BeaconGoerliClusterDefinition = zeus_cluster_config_drivers.ClusterDefinition{
		ClusterClassName: "ethereum-goerli-beacons",
		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{
		"consensus-clients": ConsensusClientGoerliComponentBase,
		"exec-clients":      ExecClientGoerliComponentBase,
	}
	ConsensusClientGoerliComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"lodestar-hercules": ConsensusClientGoerliSkeletonBaseConfig,
		},
	}
	ExecClientGoerliComponentBase = zeus_cluster_config_drivers.ComponentBaseDefinition{
		SkeletonBases: map[string]zeus_cluster_config_drivers.ClusterSkeletonBaseDefinition{
			"geth-hercules": ExecClientGoerliSkeletonBaseConfig,
		},
	}
)
View Source
var BeaconConsensusClientChartPath = filepaths.Path{
	PackageName: "",
	DirIn:       "./ethereum/beacons/infra/consensus_client",
	DirOut:      "./ethereum/outputs",
	FnIn:        "lighthouse-hercules",
	FnOut:       "",
	Env:         "",
}
View Source
var BeaconExecClientChartPath = filepaths.Path{
	PackageName: "",
	DirIn:       "./ethereum/beacons/infra/exec_client",
	DirOut:      "./ethereum/outputs",
	FnIn:        "geth-hercules",
	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:    "ethereum-beacons",
	SkeletonBaseOptions: []string{"geth-hercules", "lighthouse-hercules"},
	CloudCtxNs:          BeaconCloudCtxNs,
}
View Source
var ConsensusClientChart = zeus_req_types.TopologyCreateRequest{
	TopologyName:      "lighthouse-hercules",
	ChartName:         "lighthouse-hercules",
	ChartDescription:  "lighthouse-hercules",
	Version:           fmt.Sprintf("lighthouse-herculesv0.0.%d", time.Now().Unix()),
	ClusterClassName:  "ethereum-beacons",
	ComponentBaseName: "zeus-consensus-client",
	SkeletonBaseName:  "lighthouse-hercules",
	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: zk8s_templates.GetPvcTemplate(pvcTempGoerliConsClient),
				},
			},
		},
	}}
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: lighthouseDockerImage,
				}},
			},
			PVCDriver: &config_overrides.PersistentVolumeClaimsConfigDriver{
				PersistentVolumeClaimDrivers: map[string]v1Core.PersistentVolumeClaim{
					consensusStorageDiskName: zk8s_templates.GetPvcTemplate(pvcTempEph),
				},
			}},
	},
}
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:      "geth-hercules",
	ChartName:         "geth-hercules",
	ChartDescription:  "geth-hercules",
	Version:           fmt.Sprintf("gethHerculesv0.0.%d", time.Now().Unix()),
	ClusterClassName:  "ethereum-beacons",
	ComponentBaseName: "execution-client",
	SkeletonBaseName:  "geth-hercules",
	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: zk8s_templates.GetPvcTemplate(pvcTempGoeExecClient),
				}},
		},
	}}
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: zk8s_templates.GetPvcTemplate(pvcTempEphExecClient),
				},
			},
		},
	}}
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:      "beacon-ingress",
	ChartName:         "beacon-ingress",
	ChartDescription:  "beacon-ingress",
	Version:           fmt.Sprintf("beacon-ingress-v.0.%d", time.Now().Unix()),
	SkeletonBaseName:  "beacon-ingress",
	ComponentBaseName: "beacon-ingress",
	ClusterClassName:  "ethereum-beacon",
	Tag:               "latest",
}
View Source
var IngressChartPath = filepaths.Path{
	PackageName: "",
	DirIn:       "./ethereum/beacons/infra/ingress",
	DirOut:      "./ethereum/beacons/infra/processed_beacon_ingress",
	FnIn:        "beacon-ingress",
	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 CreateClientClusterDefWithParams added in v1.0.0

func CreateClientClusterDefWithParams(beaconConfig BeaconConfig) zeus_cluster_config_drivers.ClusterDefinition

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(beaconConfig BeaconConfig) map[string]zeus_cluster_config_drivers.ComponentBaseDefinition

func GetConsensusClientNetworkConfig added in v0.4.0

func GetConsensusClientNetworkConfig(beaconConfig BeaconConfig) zeus_cluster_config_drivers.ComponentBaseDefinition

func GetExecClientNetworkConfig added in v0.4.0

func GetExecClientNetworkConfig(beaconConfig BeaconConfig) zeus_cluster_config_drivers.ComponentBaseDefinition

Types

type BeaconConfig added in v1.0.0

type BeaconConfig struct {
	ConsensusClient    string
	ExecClient         string
	Network            string
	WithIngress        bool
	WithServiceMonitor bool
	WithChoreography   bool
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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