[Operator] Merge git-repositories volume into shared volume

This is a major breaking change, since the directory structure in
the shared volume will not be the same as in the git repositories
volume and thus manually moving files will be required.

Change-Id: Id523f19a2aeb5ec2e1135684e29ee3b86f02f4b4
diff --git a/Documentation/operator-api-reference.md b/Documentation/operator-api-reference.md
index 563bd11..8d21838 100644
--- a/Documentation/operator-api-reference.md
+++ b/Documentation/operator-api-reference.md
@@ -58,7 +58,7 @@
 ---
 
 **Group**: gerritoperator.google.com \
-**Version**: v1alpha9 \
+**Version**: v1alpha10 \
 **Kind**: GerritCluster
 
 ---
@@ -75,7 +75,7 @@
 Example:
 
 ```yaml
-apiVersion: "gerritoperator.google.com/v1alpha9"
+apiVersion: "gerritoperator.google.com/v1alpha10"
 kind: GerritCluster
 metadata:
   name: gerrit
@@ -107,17 +107,6 @@
             Nobody-User = nobody
             Nobody-Group = nogroup
 
-    gitRepositoryStorage:
-      externalPVC:
-        enabled: false
-        claimName: ""
-      size: 1Gi
-      volumeName: ""
-      selector:
-        matchLabels:
-          volume-type: ssd
-          aws-availability-zone: us-east-1
-
     sharedStorage:
       externalPVC:
         enabled: false
@@ -326,7 +315,7 @@
 ---
 
 **Group**: gerritoperator.google.com \
-**Version**: v1alpha10 \
+**Version**: v1alpha11 \
 **Kind**: Gerrit
 
 ---
@@ -343,7 +332,7 @@
 Example:
 
 ```yaml
-apiVersion: "gerritoperator.google.com/v1alpha10"
+apiVersion: "gerritoperator.google.com/v1alpha11"
 kind: Gerrit
 metadata:
   name: gerrit
@@ -485,17 +474,6 @@
             Nobody-User = nobody
             Nobody-Group = nogroup
 
-    gitRepositoryStorage:
-      externalPVC:
-        enabled: false
-        claimName: ""
-      size: 1Gi
-      volumeName: ""
-      selector:
-        matchLabels:
-          volume-type: ssd
-          aws-availability-zone: us-east-1
-
     sharedStorage:
       externalPVC:
         enabled: false
@@ -520,7 +498,7 @@
 ---
 
 **Group**: gerritoperator.google.com \
-**Version**: v1alpha5 \
+**Version**: v1alpha6 \
 **Kind**: Receiver
 
 ---
@@ -537,7 +515,7 @@
 Example:
 
 ```yaml
-apiVersion: "gerritoperator.google.com/v1alpha5"
+apiVersion: "gerritoperator.google.com/v1alpha6"
 kind: Receiver
 metadata:
   name: receiver
@@ -628,17 +606,6 @@
             Nobody-User = nobody
             Nobody-Group = nogroup
 
-    gitRepositoryStorage:
-      externalPVC:
-        enabled: false
-        claimName: ""
-      size: 1Gi
-      volumeName: ""
-      selector:
-        matchLabels:
-          volume-type: ssd
-          aws-availability-zone: us-east-1
-
     sharedStorage:
       externalPVC:
         enabled: false
@@ -780,7 +747,6 @@
 |---|---|---|
 | `storageClasses` | [`StorageClassConfig`](#storageclassconfig) | StorageClasses used in the GerritCluster |
 | `sharedStorage` | [`SharedStorage`](#sharedstorage) | Volume used for resources shared between Gerrit instances except git repositories |
-| `gitRepositoryStorage` | [`SharedStorage`](#sharedstorage) | Volume used for storing Git repositories |
 
 ## GerritStorageConfig
 
diff --git a/helm-charts/gerrit-operator-crds/templates/gerritclusters.gerritoperator.google.com-v1.yml b/helm-charts/gerrit-operator-crds/templates/gerritclusters.gerritoperator.google.com-v1.yml
index ce4b335..2229fb0 100644
--- a/helm-charts/gerrit-operator-crds/templates/gerritclusters.gerritoperator.google.com-v1.yml
+++ b/helm-charts/gerrit-operator-crds/templates/gerritclusters.gerritoperator.google.com-v1.yml
@@ -13,7 +13,7 @@
     singular: gerritcluster
   scope: Namespaced
   versions:
-  - name: v1alpha9
+  - name: v1alpha10
     schema:
       openAPIV3Schema:
         properties:
@@ -79,43 +79,6 @@
                             type: object
                         type: object
                     type: object
-                  gitRepositoryStorage:
-                    properties:
-                      externalPVC:
-                        properties:
-                          enabled:
-                            type: boolean
-                          claimName:
-                            type: string
-                        type: object
-                      size:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                      volumeName:
-                        type: string
-                      selector:
-                        properties:
-                          matchExpressions:
-                            items:
-                              properties:
-                                key:
-                                  type: string
-                                operator:
-                                  type: string
-                                values:
-                                  items:
-                                    type: string
-                                  type: array
-                              type: object
-                            type: array
-                          matchLabels:
-                            additionalProperties:
-                              type: string
-                            type: object
-                        type: object
-                    type: object
                 type: object
               containerImages:
                 properties:
diff --git a/helm-charts/gerrit-operator-crds/templates/gerrits.gerritoperator.google.com-v1.yml b/helm-charts/gerrit-operator-crds/templates/gerrits.gerritoperator.google.com-v1.yml
index 9b9078f..ae3e9f2 100644
--- a/helm-charts/gerrit-operator-crds/templates/gerrits.gerritoperator.google.com-v1.yml
+++ b/helm-charts/gerrit-operator-crds/templates/gerrits.gerritoperator.google.com-v1.yml
@@ -13,7 +13,7 @@
     singular: gerrit
   scope: Namespaced
   versions:
-  - name: v1alpha10
+  - name: v1alpha11
     schema:
       openAPIV3Schema:
         properties:
@@ -107,43 +107,6 @@
                             type: object
                         type: object
                     type: object
-                  gitRepositoryStorage:
-                    properties:
-                      externalPVC:
-                        properties:
-                          enabled:
-                            type: boolean
-                          claimName:
-                            type: string
-                        type: object
-                      size:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                      volumeName:
-                        type: string
-                      selector:
-                        properties:
-                          matchExpressions:
-                            items:
-                              properties:
-                                key:
-                                  type: string
-                                operator:
-                                  type: string
-                                values:
-                                  items:
-                                    type: string
-                                  type: array
-                              type: object
-                            type: array
-                          matchLabels:
-                            additionalProperties:
-                              type: string
-                            type: object
-                        type: object
-                    type: object
                 type: object
               ingress:
                 properties:
diff --git a/helm-charts/gerrit-operator-crds/templates/receivers.gerritoperator.google.com-v1.yml b/helm-charts/gerrit-operator-crds/templates/receivers.gerritoperator.google.com-v1.yml
index f045c41..c314670 100644
--- a/helm-charts/gerrit-operator-crds/templates/receivers.gerritoperator.google.com-v1.yml
+++ b/helm-charts/gerrit-operator-crds/templates/receivers.gerritoperator.google.com-v1.yml
@@ -13,7 +13,7 @@
     singular: receiver
   scope: Namespaced
   versions:
-  - name: v1alpha5
+  - name: v1alpha6
     schema:
       openAPIV3Schema:
         properties:
@@ -102,43 +102,6 @@
                             type: object
                         type: object
                     type: object
-                  gitRepositoryStorage:
-                    properties:
-                      externalPVC:
-                        properties:
-                          enabled:
-                            type: boolean
-                          claimName:
-                            type: string
-                        type: object
-                      size:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                      volumeName:
-                        type: string
-                      selector:
-                        properties:
-                          matchExpressions:
-                            items:
-                              properties:
-                                key:
-                                  type: string
-                                operator:
-                                  type: string
-                                values:
-                                  items:
-                                    type: string
-                                  type: array
-                              type: object
-                            type: array
-                          matchLabels:
-                            additionalProperties:
-                              type: string
-                            type: object
-                        type: object
-                    type: object
                 type: object
               ingress:
                 properties:
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/GerritClusterReconciler.java b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/GerritClusterReconciler.java
index d76503d..bd3dae3 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/GerritClusterReconciler.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/GerritClusterReconciler.java
@@ -26,8 +26,6 @@
 import com.google.gerrit.k8s.operator.cluster.dependent.ClusterManagedGerritNetworkCondition;
 import com.google.gerrit.k8s.operator.cluster.dependent.ClusterManagedReceiver;
 import com.google.gerrit.k8s.operator.cluster.dependent.ClusterManagedReceiverCondition;
-import com.google.gerrit.k8s.operator.cluster.dependent.GitRepositoriesPVC;
-import com.google.gerrit.k8s.operator.cluster.dependent.GitRepositoriesPVCCondition;
 import com.google.gerrit.k8s.operator.cluster.dependent.NfsIdmapdConfigMap;
 import com.google.gerrit.k8s.operator.cluster.dependent.NfsWorkaroundCondition;
 import com.google.gerrit.k8s.operator.cluster.dependent.SharedPVC;
@@ -60,11 +58,6 @@
 @ControllerConfiguration(
     dependents = {
       @Dependent(
-          name = "git-repositories-pvc",
-          type = GitRepositoriesPVC.class,
-          reconcilePrecondition = GitRepositoriesPVCCondition.class,
-          useEventSourceWithName = PVC_EVENT_SOURCE),
-      @Dependent(
           name = "shared-pvc",
           type = SharedPVC.class,
           useEventSourceWithName = PVC_EVENT_SOURCE),
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/GitRepositoriesPVC.java b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/GitRepositoriesPVC.java
deleted file mode 100644
index 21c524d..0000000
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/GitRepositoriesPVC.java
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright (C) 2022 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.k8s.operator.cluster.dependent;
-
-import com.google.gerrit.k8s.operator.cluster.model.GerritCluster;
-import com.google.gerrit.k8s.operator.shared.model.GerritStorageConfig;
-import com.google.gerrit.k8s.operator.shared.model.SharedStorage;
-import com.google.gerrit.k8s.operator.util.CRUDKubernetesDependentPVCResource;
-import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
-import io.fabric8.kubernetes.api.model.PersistentVolumeClaimBuilder;
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
-import java.util.Map;
-
-@KubernetesDependent(resourceDiscriminator = GitRepositoriesPVCDiscriminator.class)
-public class GitRepositoriesPVC extends CRUDKubernetesDependentPVCResource<GerritCluster> {
-
-  public static final String REPOSITORY_PVC_NAME = "git-repositories-pvc";
-
-  @Override
-  protected PersistentVolumeClaim desiredPVC(
-      GerritCluster gerritCluster, Context<GerritCluster> context) {
-    GerritStorageConfig storageConfig = gerritCluster.getSpec().getStorage();
-    SharedStorage gitRepoStorage = storageConfig.getGitRepositoryStorage();
-    PersistentVolumeClaim gitRepoPvc =
-        new PersistentVolumeClaimBuilder()
-            .withNewMetadata()
-            .withName(REPOSITORY_PVC_NAME)
-            .withNamespace(gerritCluster.getMetadata().getNamespace())
-            .withLabels(
-                gerritCluster.getLabels(
-                    "git-repositories-storage", this.getClass().getSimpleName()))
-            .endMetadata()
-            .withNewSpec()
-            .withAccessModes("ReadWriteMany")
-            .withNewResources()
-            .withRequests(Map.of("storage", gitRepoStorage.getSize()))
-            .endResources()
-            .withStorageClassName(storageConfig.getStorageClasses().getReadWriteMany())
-            .withSelector(gitRepoStorage.getSelector())
-            .withVolumeName(gitRepoStorage.getVolumeName())
-            .endSpec()
-            .build();
-
-    return gitRepoPvc;
-  }
-}
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/GitRepositoriesPVCCondition.java b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/GitRepositoriesPVCCondition.java
deleted file mode 100644
index 5b42553..0000000
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/GitRepositoriesPVCCondition.java
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2023 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.k8s.operator.cluster.dependent;
-
-import com.google.gerrit.k8s.operator.cluster.model.GerritCluster;
-import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
-import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition;
-
-public class GitRepositoriesPVCCondition
-    implements Condition<PersistentVolumeClaim, GerritCluster> {
-
-  @Override
-  public boolean isMet(
-      DependentResource<PersistentVolumeClaim, GerritCluster> dependentResource,
-      GerritCluster gerritCluster,
-      Context<GerritCluster> context) {
-    return !gerritCluster
-        .getSpec()
-        .getStorage()
-        .getGitRepositoryStorage()
-        .getExternalPVC()
-        .isEnabled();
-  }
-}
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/GitRepositoriesPVCDiscriminator.java b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/GitRepositoriesPVCDiscriminator.java
deleted file mode 100644
index 24f7a73..0000000
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/GitRepositoriesPVCDiscriminator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2022 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.k8s.operator.cluster.dependent;
-
-import static com.google.gerrit.k8s.operator.cluster.GerritClusterReconciler.PVC_EVENT_SOURCE;
-
-import com.google.gerrit.k8s.operator.cluster.model.GerritCluster;
-import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
-import io.javaoperatorsdk.operator.processing.event.ResourceID;
-import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
-import java.util.Optional;
-
-public class GitRepositoriesPVCDiscriminator
-    implements ResourceDiscriminator<PersistentVolumeClaim, GerritCluster> {
-  @Override
-  public Optional<PersistentVolumeClaim> distinguish(
-      Class<PersistentVolumeClaim> resource,
-      GerritCluster primary,
-      Context<GerritCluster> context) {
-    InformerEventSource<PersistentVolumeClaim, GerritCluster> ies =
-        (InformerEventSource<PersistentVolumeClaim, GerritCluster>)
-            context
-                .eventSourceRetriever()
-                .getResourceEventSourceFor(PersistentVolumeClaim.class, PVC_EVENT_SOURCE);
-
-    return ies.get(
-        new ResourceID(
-            GitRepositoriesPVC.REPOSITORY_PVC_NAME, primary.getMetadata().getNamespace()));
-  }
-}
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/model/GerritCluster.java b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/model/GerritCluster.java
index bbf543c..8c8b41d 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/model/GerritCluster.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/model/GerritCluster.java
@@ -14,7 +14,6 @@
 
 package com.google.gerrit.k8s.operator.cluster.model;
 
-import static com.google.gerrit.k8s.operator.cluster.dependent.GitRepositoriesPVC.REPOSITORY_PVC_NAME;
 import static com.google.gerrit.k8s.operator.cluster.dependent.NfsIdmapdConfigMap.NFS_IDMAPD_CM_NAME;
 import static com.google.gerrit.k8s.operator.cluster.dependent.SharedPVC.SHARED_PVC_NAME;
 
@@ -43,13 +42,12 @@
 import org.apache.commons.lang3.builder.ToStringStyle;
 
 @Group("gerritoperator.google.com")
-@Version("v1alpha9")
+@Version("v1alpha10")
 @ShortNames("gclus")
 public class GerritCluster extends CustomResource<GerritClusterSpec, GerritClusterStatus>
     implements Namespaced {
   private static final long serialVersionUID = 2L;
   private static final String SHARED_VOLUME_NAME = "shared";
-  private static final String GIT_REPOSITORIES_VOLUME_NAME = "git-repositories";
   private static final String NFS_IDMAPD_CONFIG_VOLUME_NAME = "nfs-config";
   private static final int GERRIT_FS_UID = 1000;
   private static final int GERRIT_FS_GID = 100;
@@ -116,17 +114,6 @@
   }
 
   @JsonIgnore
-  public static Volume getGitRepositoriesVolume(ExternalPVCConfig externalPVC) {
-    String claimName = externalPVC.isEnabled() ? externalPVC.getClaimName() : REPOSITORY_PVC_NAME;
-    return new VolumeBuilder()
-        .withName(GIT_REPOSITORIES_VOLUME_NAME)
-        .withNewPersistentVolumeClaim()
-        .withClaimName(claimName)
-        .endPersistentVolumeClaim()
-        .build();
-  }
-
-  @JsonIgnore
   public static VolumeMount getGitRepositoriesVolumeMount() {
     return getGitRepositoriesVolumeMount("/var/mnt/git");
   }
@@ -134,7 +121,8 @@
   @JsonIgnore
   public static VolumeMount getGitRepositoriesVolumeMount(String mountPath) {
     return new VolumeMountBuilder()
-        .withName(GIT_REPOSITORIES_VOLUME_NAME)
+        .withName(SHARED_VOLUME_NAME)
+        .withSubPath("git")
         .withMountPath(mountPath)
         .build();
   }
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritStatefulSet.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritStatefulSet.java
index 116d4a1..18d1c5f 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritStatefulSet.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritStatefulSet.java
@@ -207,10 +207,6 @@
             gerrit.getSpec().getStorage().getSharedStorage().getExternalPVC()));
 
     volumes.add(
-        GerritCluster.getGitRepositoriesVolume(
-            gerrit.getSpec().getStorage().getGitRepositoryStorage().getExternalPVC()));
-
-    volumes.add(
         new VolumeBuilder()
             .withName("gerrit-init-config")
             .withNewConfigMap()
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/model/Gerrit.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/model/Gerrit.java
index 7c78347..9f75be6 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/model/Gerrit.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/model/Gerrit.java
@@ -24,7 +24,7 @@
 import org.apache.commons.lang3.builder.ToStringStyle;
 
 @Group("gerritoperator.google.com")
-@Version("v1alpha10")
+@Version("v1alpha11")
 @ShortNames("gcr")
 public class Gerrit extends CustomResource<GerritSpec, GerritStatus> implements Namespaced {
   private static final long serialVersionUID = 2L;
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gitgc/dependent/GitGarbageCollectionCronJob.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gitgc/dependent/GitGarbageCollectionCronJob.java
index 0bb0097..5a39d3a 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/gitgc/dependent/GitGarbageCollectionCronJob.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gitgc/dependent/GitGarbageCollectionCronJob.java
@@ -165,10 +165,6 @@
         GerritCluster.getSharedVolume(
             gerritCluster.getSpec().getStorage().getSharedStorage().getExternalPVC()));
 
-    volumes.add(
-        GerritCluster.getGitRepositoriesVolume(
-            gerritCluster.getSpec().getStorage().getGitRepositoryStorage().getExternalPVC()));
-
     if (gerritCluster.getSpec().getStorage().getStorageClasses().getNfsWorkaround().isEnabled()) {
       if (gerritCluster
               .getSpec()
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/receiver/dependent/ReceiverDeployment.java b/operator/src/main/java/com/google/gerrit/k8s/operator/receiver/dependent/ReceiverDeployment.java
index f1428f0..971c189 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/receiver/dependent/ReceiverDeployment.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/receiver/dependent/ReceiverDeployment.java
@@ -143,10 +143,6 @@
             receiver.getSpec().getStorage().getSharedStorage().getExternalPVC()));
 
     volumes.add(
-        GerritCluster.getGitRepositoriesVolume(
-            receiver.getSpec().getStorage().getGitRepositoryStorage().getExternalPVC()));
-
-    volumes.add(
         new VolumeBuilder()
             .withName(receiver.getSpec().getCredentialSecretRef())
             .withNewSecret()
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/receiver/model/Receiver.java b/operator/src/main/java/com/google/gerrit/k8s/operator/receiver/model/Receiver.java
index 8b4a074..ffda566 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/receiver/model/Receiver.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/receiver/model/Receiver.java
@@ -23,7 +23,7 @@
 import org.apache.commons.lang3.builder.ToStringStyle;
 
 @Group("gerritoperator.google.com")
-@Version("v1alpha5")
+@Version("v1alpha6")
 @ShortNames("grec")
 public class Receiver extends CustomResource<ReceiverSpec, ReceiverStatus> implements Namespaced {
   private static final long serialVersionUID = 1L;
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/shared/model/StorageConfig.java b/operator/src/main/java/com/google/gerrit/k8s/operator/shared/model/StorageConfig.java
index addab36..2551c4b 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/shared/model/StorageConfig.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/shared/model/StorageConfig.java
@@ -18,14 +18,12 @@
 
   private StorageClassConfig storageClasses;
   private SharedStorage sharedStorage;
-  private SharedStorage gitRepositoryStorage;
 
   public StorageConfig() {}
 
   public StorageConfig(GerritStorageConfig gerritStorageConfig) {
     storageClasses = gerritStorageConfig.getStorageClasses();
     sharedStorage = gerritStorageConfig.getSharedStorage();
-    gitRepositoryStorage = gerritStorageConfig.getGitRepositoryStorage();
   }
 
   public StorageClassConfig getStorageClasses() {
@@ -43,12 +41,4 @@
   public void setSharedStorage(SharedStorage sharedStorage) {
     this.sharedStorage = sharedStorage;
   }
-
-  public SharedStorage getGitRepositoryStorage() {
-    return gitRepositoryStorage;
-  }
-
-  public void setGitRepositoryStorage(SharedStorage gitRepositoryStorage) {
-    this.gitRepositoryStorage = gitRepositoryStorage;
-  }
 }
diff --git a/operator/src/test/java/com/google/gerrit/k8s/operator/cluster/GerritClusterE2E.java b/operator/src/test/java/com/google/gerrit/k8s/operator/cluster/GerritClusterE2E.java
index ed4b16b..b73f463 100644
--- a/operator/src/test/java/com/google/gerrit/k8s/operator/cluster/GerritClusterE2E.java
+++ b/operator/src/test/java/com/google/gerrit/k8s/operator/cluster/GerritClusterE2E.java
@@ -21,8 +21,8 @@
 import static org.hamcrest.Matchers.notNullValue;
 
 import com.google.common.flogger.FluentLogger;
-import com.google.gerrit.k8s.operator.cluster.dependent.GitRepositoriesPVC;
 import com.google.gerrit.k8s.operator.cluster.dependent.NfsIdmapdConfigMap;
+import com.google.gerrit.k8s.operator.cluster.dependent.SharedPVC;
 import com.google.gerrit.k8s.operator.network.IngressType;
 import com.google.gerrit.k8s.operator.test.AbstractGerritOperatorE2ETest;
 import io.fabric8.kubernetes.api.model.ConfigMap;
@@ -33,8 +33,8 @@
   private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   @Test
-  void testGitRepositoriesPvcCreated() {
-    logger.atInfo().log("Waiting max 1 minutes for the git repositories pvc to be created.");
+  void testSharedPvcCreated() {
+    logger.atInfo().log("Waiting max 1 minutes for the shared pvc to be created.");
     await()
         .atMost(1, MINUTES)
         .untilAsserted(
@@ -43,7 +43,7 @@
                   client
                       .persistentVolumeClaims()
                       .inNamespace(operator.getNamespace())
-                      .withName(GitRepositoriesPVC.REPOSITORY_PVC_NAME)
+                      .withName(SharedPVC.SHARED_PVC_NAME)
                       .get();
               assertThat(pvc, is(notNullValue()));
             });
diff --git a/operator/src/test/java/com/google/gerrit/k8s/operator/test/TestGerrit.java b/operator/src/test/java/com/google/gerrit/k8s/operator/test/TestGerrit.java
index 87585cf..49899c2 100644
--- a/operator/src/test/java/com/google/gerrit/k8s/operator/test/TestGerrit.java
+++ b/operator/src/test/java/com/google/gerrit/k8s/operator/test/TestGerrit.java
@@ -185,14 +185,14 @@
     gerritSpec.setConfigFiles(Map.of("gerrit.config", config.toText()));
     gerritSpec.setSecretRef(SECURE_CONFIG_SECRET_NAME);
 
-    SharedStorage repoStorage = new SharedStorage();
-    repoStorage.setSize(Quantity.parse("1Gi"));
+    SharedStorage sharedStorage = new SharedStorage();
+    sharedStorage.setSize(Quantity.parse("1Gi"));
 
     StorageClassConfig storageClassConfig = new StorageClassConfig();
     storageClassConfig.setReadWriteMany(testProps.getRWMStorageClass());
 
     GerritStorageConfig gerritStorageConfig = new GerritStorageConfig();
-    gerritStorageConfig.setGitRepositoryStorage(repoStorage);
+    gerritStorageConfig.setSharedStorage(sharedStorage);
     gerritStorageConfig.setStorageClasses(storageClassConfig);
     gerritSpec.setStorage(gerritStorageConfig);
 
diff --git a/operator/src/test/java/com/google/gerrit/k8s/operator/test/TestGerritCluster.java b/operator/src/test/java/com/google/gerrit/k8s/operator/test/TestGerritCluster.java
index 9025e60..99598f9 100644
--- a/operator/src/test/java/com/google/gerrit/k8s/operator/test/TestGerritCluster.java
+++ b/operator/src/test/java/com/google/gerrit/k8s/operator/test/TestGerritCluster.java
@@ -142,8 +142,8 @@
     cluster.setMetadata(
         new ObjectMetaBuilder().withName(CLUSTER_NAME).withNamespace(namespace).build());
 
-    SharedStorage repoStorage = new SharedStorage();
-    repoStorage.setSize(Quantity.parse("1Gi"));
+    SharedStorage sharedStorage = new SharedStorage();
+    sharedStorage.setSize(Quantity.parse("1Gi"));
 
     StorageClassConfig storageClassConfig = new StorageClassConfig();
     storageClassConfig.setReadWriteMany(testProps.getRWMStorageClass());
@@ -155,7 +155,7 @@
 
     GerritClusterSpec clusterSpec = new GerritClusterSpec();
     GerritStorageConfig gerritStorageConfig = new GerritStorageConfig();
-    gerritStorageConfig.setGitRepositoryStorage(repoStorage);
+    gerritStorageConfig.setSharedStorage(sharedStorage);
     gerritStorageConfig.setStorageClasses(storageClassConfig);
     clusterSpec.setStorage(gerritStorageConfig);