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  }