in pkg/service/platform/k8s/k8s.go [159:189]
func (s *K8SService) GetDeploymentSSHPort(instance *gerritApi.Gerrit) (int32, error) {
ctx := context.Background()
d, err := s.appsV1Client.Deployments(instance.Namespace).Get(ctx, instance.Name, metaV1.GetOptions{})
if err != nil {
return 0, fmt.Errorf("failed to GET Deployment %q: %w", instance.Name, err)
}
for _, env := range d.Spec.Template.Spec.Containers[0].Env {
if env.Name == spec.SSHListnerEnvName {
re := regexp.MustCompile(`\d+`)
if re.MatchString(env.Value) {
ports := re.FindStringSubmatch(env.Value)
if len(ports) != 1 {
return 0, nil
}
port := ports[0]
portNumber, err := strconv.ParseInt(port, Base, BitSize)
if err != nil {
return 0, fmt.Errorf("failed to parse port value %q: %w", port, err)
}
return int32(portNumber), nil
}
}
}
return 0, nil
}