in controllers/gerritreplicationconfig/gerritreplicationconfig_controller.go [205:249]
func (r *ReconcileGerritReplicationConfig) configureReplication(config *gerritApi.GerritReplicationConfig, gerritObj *gerritApi.Gerrit) error {
gerritTemplatesPath := platformHelper.LocalTemplatesRelativePath
executableFilePath, err := helper.GetExecutableFilePath()
if err != nil {
return errors.New("failed to check if operator running in cluster")
}
if helper.RunningInCluster() {
gerritTemplatesPath = fmt.Sprintf("%s/../%s/%s",
executableFilePath, platformHelper.LocalConfigsRelativePath, platformHelper.DefaultTemplatesDirectory)
}
configArgs, err := r.getConfigurationArgs(gerritObj)
if err != nil {
return fmt.Errorf("failed to get configuration arguments: %w", err)
}
if err := r.saveSshReplicationKey(gerritObj.Namespace, configArgs.gerritPodName,
string(configArgs.gerritVCSSshKey["ssh-privatekey"])); err != nil {
return err
}
k8sClient := gerritClient.Client{}
if err := k8sClient.InitNewSshClient(spec.GerritDefaultAdminUser, configArgs.gerritAdminSshKeys["id_rsa"],
configArgs.gerritUrl, configArgs.sshPortService); err != nil {
return fmt.Errorf("failed to init ssh client for Gerrit admin user: %w", err)
}
if err := r.createReplicationConfig(gerritObj.Namespace, configArgs.gerritPodName); err != nil {
return err
}
if err := r.updateReplicationConfig(gerritObj.Namespace, configArgs.gerritPodName, gerritTemplatesPath, config); err != nil {
return err
}
if err := r.updateSshConfig(gerritObj.Namespace, configArgs.gerritPodName, gerritTemplatesPath,
filepath.Join(spec.GerritDefaultVCSKeyPath, spec.GerritDefaultVCSKeyName), config); err != nil {
return err
}
return r.reloadReplicationPlugin(&k8sClient)
}