Add jgroups port to the Primary Gerrit service This was inconsistent to the ServiceEntries. Since jgroups usually uses the Pod IP that was not an issue yet, but in some setups this broke the communication between primary Gerrits. Change-Id: I74aec8c221bce6f0937f30dcf50933efdd91a779
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritAbstractService.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritAbstractService.java index f09a97e..76663c4 100644 --- a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritAbstractService.java +++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritAbstractService.java
@@ -15,6 +15,7 @@ package com.google.gerrit.k8s.operator.gerrit.dependent; import static com.google.gerrit.k8s.operator.gerrit.dependent.GerritStatefulSet.HTTP_PORT; +import static com.google.gerrit.k8s.operator.gerrit.dependent.GerritStatefulSet.JGROUPS_PORT; import static com.google.gerrit.k8s.operator.gerrit.dependent.GerritStatefulSet.SSH_PORT; import com.google.gerrit.k8s.operator.api.model.gerrit.Gerrit; @@ -38,6 +39,7 @@ public static final String HTTP_PORT_NAME = "http"; public static final String SSH_PORT_NAME = "ssh"; + public static final String JGROUPS_PORT_NAME = "jgroups"; abstract ServiceSpec getSpec(Gerrit gerrit); @@ -104,6 +106,14 @@ .withNewTargetPort(SSH_PORT) .build()); } + if (gerrit.getSpec().isHighlyAvailablePrimary()) { + ports.add( + new ServicePortBuilder() + .withName(JGROUPS_PORT_NAME) + .withPort(JGROUPS_PORT) + .withNewTargetPort(JGROUPS_PORT) + .build()); + } return ports; } }
diff --git a/operator/src/test/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritTest.java b/operator/src/test/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritTest.java index 037e097..86179a7 100644 --- a/operator/src/test/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritTest.java +++ b/operator/src/test/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritTest.java
@@ -126,14 +126,14 @@ "gerrit_configmap_ha_primary.yaml", "gerrit-init_configmap_ha_primary.yaml", "statefulset_ha_primary.yaml", - "service.yaml", - "headless_service.yaml"), + "service_ha_primary.yaml", + "headless_service_ha_primary.yaml"), Arguments.of( "../gerrit_es_primary.yaml", "gerrit_configmap_es_primary.yaml", "gerrit-init_configmap_ha_primary.yaml", "statefulset_es_primary.yaml", - "service.yaml", - "headless_service.yaml")); + "service_ha_primary.yaml", + "headless_service_ha_primary.yaml")); } }
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/headless_service_ha_primary.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/headless_service_ha_primary.yaml new file mode 100644 index 0000000..8c5570e --- /dev/null +++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/headless_service_ha_primary.yaml
@@ -0,0 +1,31 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: gerrit + app.kubernetes.io/created-by: GerritReconciler + app.kubernetes.io/instance: gerrit + app.kubernetes.io/managed-by: gerrit-operator + app.kubernetes.io/name: gerrit + app.kubernetes.io/part-of: gerrit + app.kubernetes.io/version: unknown + name: gerrit + namespace: gerrit +spec: + clusterIP: None + ports: + - name: http + port: 80 + targetPort: 8080 + - name: ssh + port: 29418 + targetPort: 29418 + - name: jgroups + port: 7800 + targetPort: 7800 + selector: + app.kubernetes.io/component: gerrit-statefulset-gerrit + app.kubernetes.io/instance: gerrit + app.kubernetes.io/managed-by: gerrit-operator + app.kubernetes.io/name: gerrit + app.kubernetes.io/part-of: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/service_ha_primary.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/service_ha_primary.yaml new file mode 100644 index 0000000..c4ebf86 --- /dev/null +++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/service_ha_primary.yaml
@@ -0,0 +1,31 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: gerrit-service + app.kubernetes.io/created-by: GerritReconciler + app.kubernetes.io/instance: gerrit + app.kubernetes.io/managed-by: gerrit-operator + app.kubernetes.io/name: gerrit + app.kubernetes.io/part-of: gerrit + app.kubernetes.io/version: unknown + name: gerrit-service + namespace: gerrit +spec: + ports: + - name: http + port: 80 + targetPort: 8080 + - name: ssh + port: 29418 + targetPort: 29418 + - name: jgroups + port: 7800 + targetPort: 7800 + selector: + app.kubernetes.io/component: gerrit-statefulset-gerrit + app.kubernetes.io/instance: gerrit + app.kubernetes.io/managed-by: gerrit-operator + app.kubernetes.io/name: gerrit + app.kubernetes.io/part-of: gerrit + type: NodePort