github.com/kotalco/kotal@v0.3.0/clients/ethereum2/nimbus_validator_client.go (about) 1 package ethereum2 2 3 import ( 4 "fmt" 5 "strings" 6 7 ethereum2v1alpha1 "github.com/kotalco/kotal/apis/ethereum2/v1alpha1" 8 "github.com/kotalco/kotal/controllers/shared" 9 corev1 "k8s.io/api/core/v1" 10 ) 11 12 // NimbusValidatorClient is Status Ethereum 2.0 client 13 // https://github.com/status-im/nimbus-eth2 14 type NimbusValidatorClient struct { 15 validator *ethereum2v1alpha1.Validator 16 } 17 18 // HomeDir returns container home directory 19 func (t *NimbusValidatorClient) HomeDir() string { 20 return NimbusHomeDir 21 } 22 23 // Command returns environment variables for the client 24 func (t *NimbusValidatorClient) Env() []corev1.EnvVar { 25 return nil 26 } 27 28 // Args returns command line arguments required for client 29 func (t *NimbusValidatorClient) Args() (args []string) { 30 31 validator := t.validator 32 33 args = append(args, NimbusNonInteractive) 34 35 args = append(args, argWithVal(NimbusLogging, string(t.validator.Spec.Logging))) 36 37 args = append(args, argWithVal(NimbusDataDir, shared.PathData(t.HomeDir()))) 38 39 args = append(args, argWithVal(NimbusFeeRecipient, string(validator.Spec.FeeRecipient))) 40 41 args = append(args, argWithVal(NimbusValidatorsDir, fmt.Sprintf("%s/kotal-validators/validator-keys", shared.PathData(t.HomeDir())))) 42 43 args = append(args, argWithVal(NimbusSecretsDir, fmt.Sprintf("%s/kotal-validators/validator-secrets", shared.PathData(t.HomeDir())))) 44 45 args = append(args, argWithVal(NimbusBeaconNodes, strings.Join(validator.Spec.BeaconEndpoints, ","))) 46 47 if validator.Spec.Graffiti != "" { 48 args = append(args, argWithVal(NimbusGraffiti, validator.Spec.Graffiti)) 49 } 50 51 return 52 } 53 54 // Command returns command for running the client 55 func (t *NimbusValidatorClient) Command() (command []string) { 56 command = []string{"nimbus_validator_client"} 57 return 58 }