github.com/kotalco/kotal@v0.3.0/clients/ethereum2/prysm_validator_client.go (about) 1 package ethereum2 2 3 import ( 4 "fmt" 5 6 ethereum2v1alpha1 "github.com/kotalco/kotal/apis/ethereum2/v1alpha1" 7 "github.com/kotalco/kotal/controllers/shared" 8 corev1 "k8s.io/api/core/v1" 9 ) 10 11 // PrysmValidatorClient is Prysmatic labs validator client 12 // https://github.com/prysmaticlabs/prysm 13 type PrysmValidatorClient struct { 14 validator *ethereum2v1alpha1.Validator 15 } 16 17 // HomeDir returns container home directory 18 func (t *PrysmValidatorClient) HomeDir() string { 19 return PrysmHomeDir 20 } 21 22 // Command returns environment variables for the client 23 func (t *PrysmValidatorClient) Env() []corev1.EnvVar { 24 return nil 25 } 26 27 // Args returns command line arguments required for client 28 func (t *PrysmValidatorClient) Args() (args []string) { 29 30 validator := t.validator 31 32 args = append(args, PrysmAcceptTermsOfUse) 33 34 args = append(args, PrysmDataDir, shared.PathData(t.HomeDir())) 35 36 args = append(args, PrysmLogging, string(t.validator.Spec.Logging)) 37 38 args = append(args, PrysmWalletDir, fmt.Sprintf("%s/prysm-wallet", shared.PathData(t.HomeDir()))) 39 40 args = append(args, PrysmWalletPasswordFile, fmt.Sprintf("%s/prysm-wallet/prysm-wallet-password.txt", shared.PathSecrets(t.HomeDir()))) 41 42 args = append(args, PrysmFeeRecipient, string(t.validator.Spec.FeeRecipient)) 43 44 args = append(args, fmt.Sprintf("--%s", validator.Spec.Network)) 45 46 if len(validator.Spec.BeaconEndpoints) != 0 { 47 args = append(args, PrysmBeaconRPCProvider, validator.Spec.BeaconEndpoints[0]) 48 } 49 50 if validator.Spec.Graffiti != "" { 51 args = append(args, PrysmGraffiti, validator.Spec.Graffiti) 52 } 53 54 if validator.Spec.CertSecretName != "" { 55 args = append(args, PrysmTLSCert, fmt.Sprintf("%s/cert/tls.crt", shared.PathSecrets(t.HomeDir()))) 56 } 57 58 return args 59 } 60 61 // Command returns command for running the client 62 func (t *PrysmValidatorClient) Command() (command []string) { 63 command = []string{"validator"} 64 return 65 }