diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/GerritIstioGateway.java b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/GerritIstioGateway.java
index 830e1d2..5566c59 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/GerritIstioGateway.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/GerritIstioGateway.java
@@ -83,7 +83,7 @@
 
     boolean sshEnabled =
         client.resources(Gerrit.class).list().getItems().stream()
-            .anyMatch(g -> g.getSpec().getService().getSshPort() != null);
+            .anyMatch(g -> g.getSpec().getService().isSshEnabled());
 
     if (sshEnabled) {
       servers.add(
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritConfigMapDependentResource.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritConfigMapDependentResource.java
index 7ebdb46..bc9f013 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritConfigMapDependentResource.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritConfigMapDependentResource.java
@@ -61,14 +61,14 @@
 
     if (gerritCluster.getSpec().getIngress().getType() == IngressType.ISTIO) {
       gerritConfigBuilder.withSsh(
-          gerrit.getSpec().getService().getSshPort() != null,
+          gerrit.getSpec().getService().isSshEnabled(),
           gerritCluster
                   .getSpec()
                   .getIngress()
                   .getFullHostnameForService(ServiceDependentResource.getName(gerrit))
               + ":29418");
     } else {
-      gerritConfigBuilder.withSsh(gerrit.getSpec().getService().getSshPort() != null);
+      gerritConfigBuilder.withSsh(gerrit.getSpec().getService().isSshEnabled());
     }
 
     configFiles.put("gerrit.config", gerritConfigBuilder.build().toText());
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritIstioVirtualService.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritIstioVirtualService.java
index f30f866..625e294 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritIstioVirtualService.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritIstioVirtualService.java
@@ -65,7 +65,7 @@
 
   private List<TCPRoute> getTCPRoutes(Gerrit gerrit) {
     List<TCPRoute> routes = new ArrayList<>();
-    if (gerrit.getSpec().getService().getSshPort() != null) {
+    if (gerrit.getSpec().getService().isSshEnabled()) {
       routes.add(
           new TCPRouteBuilder()
               .withMatch(List.of(new L4MatchAttributesBuilder().withPort(29418).build()))
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritServiceConfig.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritServiceConfig.java
index 841e02d..1237585 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritServiceConfig.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritServiceConfig.java
@@ -14,6 +14,7 @@
 
 package com.google.gerrit.k8s.operator.gerrit;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import java.io.Serializable;
 
 public class GerritServiceConfig implements Serializable {
@@ -46,4 +47,9 @@
   public void setSshPort(int sshPort) {
     this.sshPort = sshPort;
   }
+
+  @JsonIgnore
+  public boolean isSshEnabled() {
+    return this.sshPort != null;
+  }
 }
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/ServiceDependentResource.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/ServiceDependentResource.java
index 34c15c0..5bc8549 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/ServiceDependentResource.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/ServiceDependentResource.java
@@ -83,7 +83,7 @@
             .withPort(gerrit.getSpec().getService().getHttpPort())
             .withNewTargetPort(HTTP_PORT)
             .build());
-    if (gerrit.getSpec().getService().getSshPort() != null) {
+    if (gerrit.getSpec().getService().isSshEnabled()) {
       ports.add(
           new ServicePortBuilder()
               .withName("ssh")
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/StatefulSetDependentResource.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/StatefulSetDependentResource.java
index a02280c..dad0796 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/StatefulSetDependentResource.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/StatefulSetDependentResource.java
@@ -257,7 +257,7 @@
     List<ContainerPort> containerPorts = new ArrayList<>();
     containerPorts.add(new ContainerPort(HTTP_PORT, null, null, "http", null));
 
-    if (gerrit.getSpec().getService().getSshPort() != null) {
+    if (gerrit.getSpec().getService().isSshEnabled()) {
       containerPorts.add(new ContainerPort(SSH_PORT, null, null, "ssh", null));
     }
 
