[Operator] Add Fluent Bit Sidecar for Logging

Each Gerrit pod will have a fluent bit sidecar attached.

By default the sidecar is configured to simply tail Gerrit log files,
tag log messages with the log file name and pod name, and output to
stdout. New configuration can be provided to the sidecar as a string.
Any new configuration will replace the "output to stdout" behavior.

The operator sets up the input configuration.

Configuration options can be found:
https://docs.fluentbit.io/manual/administration/configuring-fluent-bit/classic-mode/configuration-file

Change-Id: I468c6b4b18848a07cfc33b1a53d3da3ef5d6a31e
diff --git a/Documentation/operator-api-reference.md b/Documentation/operator-api-reference.md
index 83c9f6b..ff63c69 100644
--- a/Documentation/operator-api-reference.md
+++ b/Documentation/operator-api-reference.md
@@ -28,6 +28,7 @@
   - [RefDatabase](#refdatabase)
   - [SpannerRefDbConfig](#spannerrefdbconfig)
   - [ZookeeperRefDbConfig](#zookeeperrefdbconfig)
+  - [FluentBitSidecarConfig](#fluentbitsidecarconfig)
   - [GerritTemplate](#gerrittemplate)
   - [GerritTemplateSpec](#gerrittemplatespec)
   - [GerritProbe](#gerritprobe)
@@ -67,7 +68,7 @@
 ---
 
 **Group**: gerritoperator.google.com \
-**Version**: v1beta4 \
+**Version**: v1beta5 \
 **Kind**: GerritCluster
 
 ---
@@ -84,7 +85,7 @@
 Example:
 
 ```yaml
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritCluster
 metadata:
   name: gerrit
@@ -154,6 +155,18 @@
       connectString: ""
       rootNode: ""
 
+  fluentBitSidecar:
+    enabled: true
+    image: fluent/fluent-bit:latest
+    config: |-
+      [OUTPUT]
+        Name              stdout
+        Match             *
+      [FILTER]
+        Name              modify
+        Match             *
+        Add k8s.pod.name  ${POD_NAME}
+
   serverId: ""
 
   gerrits:
@@ -353,7 +366,7 @@
 ---
 
 **Group**: gerritoperator.google.com \
-**Version**: v1beta4 \
+**Version**: v1beta5 \
 **Kind**: Gerrit
 
 ---
@@ -370,7 +383,7 @@
 Example:
 
 ```yaml
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: Gerrit
 metadata:
   name: gerrit
@@ -561,7 +574,7 @@
 ---
 
 **Group**: gerritoperator.google.com \
-**Version**: v1beta4 \
+**Version**: v1beta5 \
 **Kind**: Receiver
 
 ---
@@ -578,7 +591,7 @@
 Example:
 
 ```yaml
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: Receiver
 metadata:
   name: receiver
@@ -689,7 +702,7 @@
 ---
 
 **Group**: gerritoperator.google.com \
-**Version**: v1beta4 \
+**Version**: v1beta5 \
 **Kind**: GitGarbageCollection
 
 ---
@@ -706,7 +719,7 @@
 Example:
 
 ```yaml
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GitGarbageCollection
 metadata:
   name: gitgc
@@ -750,7 +763,7 @@
 ---
 
 **Group**: gerritoperator.google.com \
-**Version**: v1beta4 \
+**Version**: v1beta5 \
 **Kind**: GerritNetwork
 
 ---
@@ -766,7 +779,7 @@
 Example:
 
 ```yaml
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit-network
@@ -802,6 +815,7 @@
 | `containerImages` | [`ContainerImageConfig`](#containerimageconfig) | Container images used inside GerritCluster |
 | `ingress` | [`GerritClusterIngressConfig`](#gerritclusteringressconfig) | Ingress traffic handling in GerritCluster |
 | `refdb` | [`GlobalRefDbConfig`](#globalrefdbconfig) | The Global RefDB used by Gerrit |
+| `fluentBitSidecar` | [`FluentBitSidecarConfig`](#fluentbitsidecarconfig) | The Fluent Bit sidecar for application logging |
 | `serverId` | `String` | The serverId to be used for all Gerrit instances (default: `<namespace>/<name>`) |
 | `gerrits` | [`GerritTemplate`](#gerrittemplate)-Array | A list of Gerrit instances to be installed in the GerritCluster. Only a single primary Gerrit and a single Gerrit Replica is permitted. |
 | `receiver` | [`ReceiverTemplate`](#receivertemplate) | A Receiver instance to be installed in the GerritCluster. |
@@ -956,6 +970,21 @@
 | `connectString` | `String` | Hostname and port of the zookeeper instance to be used, e.g. `zookeeper.example.com:2181` |
 | `rootNode` | `String` | Root node that will be used to store the global refdb data. Will be set automatically, if `GerritCluster` is being used. |
 
+## FluentBitSidecarConfig
+
+Fluent Bit is installed as a sidecar container to each Gerrit pod, which allows application
+logs to be collected.
+
+The default configuration is to label logs with the file name, pod name, and then output
+to stdout. Any custom configuration will override the output to stdout and pod name label.
+The input and file name label is always configured by the operator.
+
+| Field | Type | Description |
+|---|---|---|
+| `enabled` | `boolean` | Whether or not to create the sidecar (default: `false`) |
+| `image` | `String` | Fluent Bit image from docker (default: `fluent/fluent-bit:latest`) |
+| `config` | `String` | Additional config for fluent bit. [Available options](https://docs.fluentbit.io/manual/administration/configuring-fluent-bit/classic-mode/configuration-file) |
+
 ## GerritTemplate
 
 | Field | Type | Description |
@@ -1063,6 +1092,7 @@
 | `containerImages` | [`ContainerImageConfig`](#containerimageconfig) | Container images used inside GerritCluster |
 | `ingress` | [`IngressConfig`](#ingressconfig) | Ingress configuration for Gerrit |
 | `refdb` | [`GlobalRefDbConfig`](#globalrefdbconfig) | The Global RefDB used by Gerrit |
+| `fluentBitSidecar` | [`FluentBitSidecarConfig`](#fluentbitsidecarconfig) | The Fluent Bit sidecar for application logging |
 | `serverId` | `String` | The serverId to be used for all Gerrit instances |
 
 ## GerritStatus
diff --git a/crd/current/gerritclusters.gerritoperator.google.com-v1.yml b/crd/current/gerritclusters.gerritoperator.google.com-v1.yml
index 9d081ec..fdb5b0a 100644
--- a/crd/current/gerritclusters.gerritoperator.google.com-v1.yml
+++ b/crd/current/gerritclusters.gerritoperator.google.com-v1.yml
@@ -13,7 +13,7 @@
     singular: gerritcluster
   scope: Namespaced
   versions:
-  - name: v1beta4
+  - name: v1beta5
     schema:
       openAPIV3Schema:
         properties:
@@ -1494,6 +1494,15 @@
                         type: string
                     type: object
                 type: object
+              fluentBitSidecar:
+                properties:
+                  image:
+                    type: string
+                  config:
+                    type: string
+                  enabled:
+                    type: boolean
+                type: object
             type: object
           status:
             properties:
diff --git a/crd/current/gerritnetworks.gerritoperator.google.com-v1.yml b/crd/current/gerritnetworks.gerritoperator.google.com-v1.yml
index cb9c789..1a90a73 100644
--- a/crd/current/gerritnetworks.gerritoperator.google.com-v1.yml
+++ b/crd/current/gerritnetworks.gerritoperator.google.com-v1.yml
@@ -13,7 +13,7 @@
     singular: gerritnetwork
   scope: Namespaced
   versions:
-  - name: v1beta4
+  - name: v1beta5
     schema:
       openAPIV3Schema:
         properties:
diff --git a/crd/current/gerrits.gerritoperator.google.com-v1.yml b/crd/current/gerrits.gerritoperator.google.com-v1.yml
index c6d3c22..d120cc9 100644
--- a/crd/current/gerrits.gerritoperator.google.com-v1.yml
+++ b/crd/current/gerrits.gerritoperator.google.com-v1.yml
@@ -13,7 +13,7 @@
     singular: gerrit
   scope: Namespaced
   versions:
-  - name: v1beta4
+  - name: v1beta5
     schema:
       openAPIV3Schema:
         properties:
@@ -149,6 +149,15 @@
                 type: object
               serverId:
                 type: string
+              fluentBitSidecar:
+                properties:
+                  image:
+                    type: string
+                  config:
+                    type: string
+                  enabled:
+                    type: boolean
+                type: object
               serviceAccount:
                 type: string
               tolerations:
diff --git a/crd/current/gitgcs.gerritoperator.google.com-v1.yml b/crd/current/gitgcs.gerritoperator.google.com-v1.yml
index da7c473..9d67c2b 100644
--- a/crd/current/gitgcs.gerritoperator.google.com-v1.yml
+++ b/crd/current/gitgcs.gerritoperator.google.com-v1.yml
@@ -13,7 +13,7 @@
     singular: gitgarbagecollection
   scope: Namespaced
   versions:
-  - name: v1beta4
+  - name: v1beta5
     schema:
       openAPIV3Schema:
         properties:
diff --git a/crd/current/receivers.gerritoperator.google.com-v1.yml b/crd/current/receivers.gerritoperator.google.com-v1.yml
index da9f8a7..410bfdf 100644
--- a/crd/current/receivers.gerritoperator.google.com-v1.yml
+++ b/crd/current/receivers.gerritoperator.google.com-v1.yml
@@ -13,7 +13,7 @@
     singular: receiver
   scope: Namespaced
   versions:
-  - name: v1beta4
+  - name: v1beta5
     schema:
       openAPIV3Schema:
         properties:
diff --git a/crd/deprecated/gerritclusters.gerritoperator.google.com-v1.yml b/crd/deprecated/gerritclusters.gerritoperator.google.com-v1.yml
index 43687dc..6bc135c 100644
--- a/crd/deprecated/gerritclusters.gerritoperator.google.com-v1.yml
+++ b/crd/deprecated/gerritclusters.gerritoperator.google.com-v1.yml
@@ -9,173 +9,892 @@
     kind: GerritCluster
     plural: gerritclusters
     shortNames:
-    - gclus
+      - gclus
     singular: gerritcluster
   scope: Namespaced
   versions:
-  - name: v1beta3
-    schema:
-      openAPIV3Schema:
-        properties:
-          spec:
-            properties:
-              storage:
-                properties:
-                  pluginCache:
-                    properties:
-                      enabled:
-                        type: boolean
-                    type: object
-                  storageClasses:
-                    properties:
-                      readWriteOnce:
-                        type: string
-                      readWriteMany:
-                        type: string
-                      nfsWorkaround:
+    - name: v1beta4
+      schema:
+        openAPIV3Schema:
+          properties:
+            spec:
+              properties:
+                storage:
+                  properties:
+                    pluginCache:
+                      properties:
+                        enabled:
+                          type: boolean
+                      type: object
+                    storageClasses:
+                      properties:
+                        readWriteOnce:
+                          type: string
+                        readWriteMany:
+                          type: string
+                        nfsWorkaround:
+                          properties:
+                            enabled:
+                              type: boolean
+                            chownOnStartup:
+                              type: boolean
+                            idmapdConfig:
+                              type: string
+                          type: object
+                      type: object
+                    sharedStorage:
+                      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:
+                    imagePullPolicy:
+                      type: string
+                    imagePullSecrets:
+                      items:
                         properties:
-                          enabled:
-                            type: boolean
-                          chownOnStartup:
-                            type: boolean
-                          idmapdConfig:
+                          name:
                             type: string
                         type: object
-                    type: object
-                  sharedStorage:
-                    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: array
+                    busyBox:
+                      properties:
+                        registry:
+                          type: string
+                        tag:
+                          type: string
+                      type: object
+                    gerritImages:
+                      properties:
+                        registry:
+                          type: string
+                        org:
+                          type: string
+                        tag:
+                          type: string
+                      type: object
+                  type: object
+                ingress:
+                  properties:
+                    enabled:
+                      type: boolean
+                    host:
+                      type: string
+                    annotations:
+                      additionalProperties:
                         type: string
-                      selector:
+                      type: object
+                    tls:
+                      properties:
+                        enabled:
+                          type: boolean
+                        secret:
+                          type: string
+                      type: object
+                    ssh:
+                      properties:
+                        enabled:
+                          type: boolean
+                      type: object
+                    ambassador:
+                      properties:
+                        id:
+                          items:
+                            type: string
+                          type: array
+                        createHost:
+                          type: boolean
+                      type: object
+                    istio:
+                      properties:
+                        gatewaySelector:
+                          additionalProperties:
+                            type: string
+                          type: object
+                      type: object
+                  type: object
+                refdb:
+                  properties:
+                    database:
+                      enum:
+                        - NONE
+                        - ZOOKEEPER
+                        - SPANNER
+                      type: string
+                    zookeeper:
+                      properties:
+                        connectString:
+                          type: string
+                        rootNode:
+                          type: string
+                      type: object
+                    spanner:
+                      properties:
+                        projectName:
+                          type: string
+                        instance:
+                          type: string
+                        database:
+                          type: string
+                      type: object
+                  type: object
+                serverId:
+                  type: string
+                gerrits:
+                  items:
+                    properties:
+                      metadata:
                         properties:
-                          matchExpressions:
+                          annotations:
+                            additionalProperties:
+                              type: string
+                            type: object
+                          creationTimestamp:
+                            type: string
+                          deletionGracePeriodSeconds:
+                            type: integer
+                          deletionTimestamp:
+                            type: string
+                          finalizers:
+                            items:
+                              type: string
+                            type: array
+                          generateName:
+                            type: string
+                          generation:
+                            type: integer
+                          labels:
+                            additionalProperties:
+                              type: string
+                            type: object
+                          managedFields:
                             items:
                               properties:
+                                apiVersion:
+                                  type: string
+                                fieldsType:
+                                  type: string
+                                fieldsV1:
+                                  type: object
+                                manager:
+                                  type: string
+                                operation:
+                                  type: string
+                                subresource:
+                                  type: string
+                                time:
+                                  type: string
+                              type: object
+                            type: array
+                          name:
+                            type: string
+                          namespace:
+                            type: string
+                          ownerReferences:
+                            items:
+                              properties:
+                                apiVersion:
+                                  type: string
+                                blockOwnerDeletion:
+                                  type: boolean
+                                controller:
+                                  type: boolean
+                                kind:
+                                  type: string
+                                name:
+                                  type: string
+                                uid:
+                                  type: string
+                              type: object
+                            type: array
+                          resourceVersion:
+                            type: string
+                          selfLink:
+                            type: string
+                          uid:
+                            type: string
+                        type: object
+                      spec:
+                        properties:
+                          serviceAccount:
+                            type: string
+                          tolerations:
+                            items:
+                              properties:
+                                effect:
+                                  type: string
                                 key:
                                   type: string
                                 operator:
                                   type: string
-                                values:
+                                tolerationSeconds:
+                                  type: integer
+                                value:
+                                  type: string
+                              type: object
+                            type: array
+                          affinity:
+                            properties:
+                              nodeAffinity:
+                                properties:
+                                  preferredDuringSchedulingIgnoredDuringExecution:
+                                    items:
+                                      properties:
+                                        preference:
+                                          properties:
+                                            matchExpressions:
+                                              items:
+                                                properties:
+                                                  key:
+                                                    type: string
+                                                  operator:
+                                                    type: string
+                                                  values:
+                                                    items:
+                                                      type: string
+                                                    type: array
+                                                type: object
+                                              type: array
+                                            matchFields:
+                                              items:
+                                                properties:
+                                                  key:
+                                                    type: string
+                                                  operator:
+                                                    type: string
+                                                  values:
+                                                    items:
+                                                      type: string
+                                                    type: array
+                                                type: object
+                                              type: array
+                                          type: object
+                                        weight:
+                                          type: integer
+                                      type: object
+                                    type: array
+                                  requiredDuringSchedulingIgnoredDuringExecution:
+                                    properties:
+                                      nodeSelectorTerms:
+                                        items:
+                                          properties:
+                                            matchExpressions:
+                                              items:
+                                                properties:
+                                                  key:
+                                                    type: string
+                                                  operator:
+                                                    type: string
+                                                  values:
+                                                    items:
+                                                      type: string
+                                                    type: array
+                                                type: object
+                                              type: array
+                                            matchFields:
+                                              items:
+                                                properties:
+                                                  key:
+                                                    type: string
+                                                  operator:
+                                                    type: string
+                                                  values:
+                                                    items:
+                                                      type: string
+                                                    type: array
+                                                type: object
+                                              type: array
+                                          type: object
+                                        type: array
+                                    type: object
+                                type: object
+                              podAffinity:
+                                properties:
+                                  preferredDuringSchedulingIgnoredDuringExecution:
+                                    items:
+                                      properties:
+                                        podAffinityTerm:
+                                          properties:
+                                            labelSelector:
+                                              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
+                                            namespaceSelector:
+                                              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
+                                            namespaces:
+                                              items:
+                                                type: string
+                                              type: array
+                                            topologyKey:
+                                              type: string
+                                          type: object
+                                        weight:
+                                          type: integer
+                                      type: object
+                                    type: array
+                                  requiredDuringSchedulingIgnoredDuringExecution:
+                                    items:
+                                      properties:
+                                        labelSelector:
+                                          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
+                                        namespaceSelector:
+                                          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
+                                        namespaces:
+                                          items:
+                                            type: string
+                                          type: array
+                                        topologyKey:
+                                          type: string
+                                      type: object
+                                    type: array
+                                type: object
+                              podAntiAffinity:
+                                properties:
+                                  preferredDuringSchedulingIgnoredDuringExecution:
+                                    items:
+                                      properties:
+                                        podAffinityTerm:
+                                          properties:
+                                            labelSelector:
+                                              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
+                                            namespaceSelector:
+                                              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
+                                            namespaces:
+                                              items:
+                                                type: string
+                                              type: array
+                                            topologyKey:
+                                              type: string
+                                          type: object
+                                        weight:
+                                          type: integer
+                                      type: object
+                                    type: array
+                                  requiredDuringSchedulingIgnoredDuringExecution:
+                                    items:
+                                      properties:
+                                        labelSelector:
+                                          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
+                                        namespaceSelector:
+                                          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
+                                        namespaces:
+                                          items:
+                                            type: string
+                                          type: array
+                                        topologyKey:
+                                          type: string
+                                      type: object
+                                    type: array
+                                type: object
+                            type: object
+                          topologySpreadConstraints:
+                            items:
+                              properties:
+                                labelSelector:
+                                  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
+                                matchLabelKeys:
                                   items:
                                     type: string
                                   type: array
+                                maxSkew:
+                                  type: integer
+                                minDomains:
+                                  type: integer
+                                nodeAffinityPolicy:
+                                  type: string
+                                nodeTaintsPolicy:
+                                  type: string
+                                topologyKey:
+                                  type: string
+                                whenUnsatisfiable:
+                                  type: string
                               type: object
                             type: array
-                          matchLabels:
+                          priorityClassName:
+                            type: string
+                          replicas:
+                            type: integer
+                          updatePartition:
+                            type: integer
+                          resources:
+                            properties:
+                              claims:
+                                items:
+                                  properties:
+                                    name:
+                                      type: string
+                                  type: object
+                                type: array
+                              limits:
+                                additionalProperties:
+                                  anyOf:
+                                    - type: integer
+                                    - type: string
+                                  x-kubernetes-int-or-string: true
+                                type: object
+                              requests:
+                                additionalProperties:
+                                  anyOf:
+                                    - type: integer
+                                    - type: string
+                                  x-kubernetes-int-or-string: true
+                                type: object
+                            type: object
+                          startupProbe:
+                            properties:
+                              exec:
+                                properties:
+                                  command:
+                                    items:
+                                      type: string
+                                    type: array
+                                type: object
+                              failureThreshold:
+                                type: integer
+                              grpc:
+                                properties:
+                                  port:
+                                    type: integer
+                                  service:
+                                    type: string
+                                type: object
+                              httpGet:
+                                properties:
+                                  host:
+                                    type: string
+                                  httpHeaders:
+                                    items:
+                                      properties:
+                                        name:
+                                          type: string
+                                        value:
+                                          type: string
+                                      type: object
+                                    type: array
+                                  path:
+                                    type: string
+                                  port:
+                                    anyOf:
+                                      - type: integer
+                                      - type: string
+                                    x-kubernetes-int-or-string: true
+                                  scheme:
+                                    type: string
+                                type: object
+                              initialDelaySeconds:
+                                type: integer
+                              periodSeconds:
+                                type: integer
+                              successThreshold:
+                                type: integer
+                              tcpSocket:
+                                properties:
+                                  host:
+                                    type: string
+                                  port:
+                                    anyOf:
+                                      - type: integer
+                                      - type: string
+                                    x-kubernetes-int-or-string: true
+                                type: object
+                              terminationGracePeriodSeconds:
+                                type: integer
+                              timeoutSeconds:
+                                type: integer
+                            type: object
+                          readinessProbe:
+                            properties:
+                              exec:
+                                properties:
+                                  command:
+                                    items:
+                                      type: string
+                                    type: array
+                                type: object
+                              failureThreshold:
+                                type: integer
+                              grpc:
+                                properties:
+                                  port:
+                                    type: integer
+                                  service:
+                                    type: string
+                                type: object
+                              httpGet:
+                                properties:
+                                  host:
+                                    type: string
+                                  httpHeaders:
+                                    items:
+                                      properties:
+                                        name:
+                                          type: string
+                                        value:
+                                          type: string
+                                      type: object
+                                    type: array
+                                  path:
+                                    type: string
+                                  port:
+                                    anyOf:
+                                      - type: integer
+                                      - type: string
+                                    x-kubernetes-int-or-string: true
+                                  scheme:
+                                    type: string
+                                type: object
+                              initialDelaySeconds:
+                                type: integer
+                              periodSeconds:
+                                type: integer
+                              successThreshold:
+                                type: integer
+                              tcpSocket:
+                                properties:
+                                  host:
+                                    type: string
+                                  port:
+                                    anyOf:
+                                      - type: integer
+                                      - type: string
+                                    x-kubernetes-int-or-string: true
+                                type: object
+                              terminationGracePeriodSeconds:
+                                type: integer
+                              timeoutSeconds:
+                                type: integer
+                            type: object
+                          livenessProbe:
+                            properties:
+                              exec:
+                                properties:
+                                  command:
+                                    items:
+                                      type: string
+                                    type: array
+                                type: object
+                              failureThreshold:
+                                type: integer
+                              grpc:
+                                properties:
+                                  port:
+                                    type: integer
+                                  service:
+                                    type: string
+                                type: object
+                              httpGet:
+                                properties:
+                                  host:
+                                    type: string
+                                  httpHeaders:
+                                    items:
+                                      properties:
+                                        name:
+                                          type: string
+                                        value:
+                                          type: string
+                                      type: object
+                                    type: array
+                                  path:
+                                    type: string
+                                  port:
+                                    anyOf:
+                                      - type: integer
+                                      - type: string
+                                    x-kubernetes-int-or-string: true
+                                  scheme:
+                                    type: string
+                                type: object
+                              initialDelaySeconds:
+                                type: integer
+                              periodSeconds:
+                                type: integer
+                              successThreshold:
+                                type: integer
+                              tcpSocket:
+                                properties:
+                                  host:
+                                    type: string
+                                  port:
+                                    anyOf:
+                                      - type: integer
+                                      - type: string
+                                    x-kubernetes-int-or-string: true
+                                type: object
+                              terminationGracePeriodSeconds:
+                                type: integer
+                              timeoutSeconds:
+                                type: integer
+                            type: object
+                          gracefulStopTimeout:
+                            type: integer
+                          service:
+                            properties:
+                              sshPort:
+                                type: integer
+                              type:
+                                type: string
+                              httpPort:
+                                type: integer
+                            type: object
+                          site:
+                            properties:
+                              size:
+                                anyOf:
+                                  - type: integer
+                                  - type: string
+                                x-kubernetes-int-or-string: true
+                            type: object
+                          plugins:
+                            items:
+                              properties:
+                                installAsLibrary:
+                                  type: boolean
+                                name:
+                                  type: string
+                                url:
+                                  type: string
+                                sha1:
+                                  type: string
+                                data:
+                                  properties:
+                                    secretRef:
+                                      type: string
+                                  type: object
+                              type: object
+                            type: array
+                          libs:
+                            items:
+                              properties:
+                                name:
+                                  type: string
+                                url:
+                                  type: string
+                                sha1:
+                                  type: string
+                                data:
+                                  properties:
+                                    secretRef:
+                                      type: string
+                                  type: object
+                              type: object
+                            type: array
+                          configFiles:
                             additionalProperties:
                               type: string
                             type: object
+                          secretRef:
+                            type: string
+                          mode:
+                            enum:
+                              - PRIMARY
+                              - REPLICA
+                            type: string
+                          debug:
+                            properties:
+                              enabled:
+                                type: boolean
+                              suspend:
+                                type: boolean
+                            type: object
                         type: object
                     type: object
-                type: object
-              containerImages:
-                properties:
-                  imagePullPolicy:
-                    type: string
-                  imagePullSecrets:
-                    items:
-                      properties:
-                        name:
-                          type: string
-                      type: object
-                    type: array
-                  busyBox:
-                    properties:
-                      registry:
-                        type: string
-                      tag:
-                        type: string
-                    type: object
-                  gerritImages:
-                    properties:
-                      registry:
-                        type: string
-                      org:
-                        type: string
-                      tag:
-                        type: string
-                    type: object
-                type: object
-              ingress:
-                properties:
-                  enabled:
-                    type: boolean
-                  host:
-                    type: string
-                  annotations:
-                    additionalProperties:
-                      type: string
-                    type: object
-                  tls:
-                    properties:
-                      enabled:
-                        type: boolean
-                      secret:
-                        type: string
-                    type: object
-                  ssh:
-                    properties:
-                      enabled:
-                        type: boolean
-                    type: object
-                  ambassador:
-                    properties:
-                      id:
-                        items:
-                          type: string
-                        type: array
-                      createHost:
-                        type: boolean
-                    type: object
-                  istio:
-                    properties:
-                      gatewaySelector:
-                        additionalProperties:
-                          type: string
-                        type: object
-                    type: object
-                type: object
-              refdb:
-                properties:
-                  database:
-                    enum:
-                    - NONE
-                    - ZOOKEEPER
-                    - SPANNER
-                    type: string
-                  zookeeper:
-                    properties:
-                      connectString:
-                        type: string
-                      rootNode:
-                        type: string
-                    type: object
-                  spanner:
-                    properties:
-                      projectName:
-                        type: string
-                      instance:
-                        type: string
-                      database:
-                        type: string
-                    type: object
-                type: object
-              serverId:
-                type: string
-              gerrits:
-                items:
+                  type: array
+                receiver:
                   properties:
                     metadata:
                       properties:
@@ -250,8 +969,6 @@
                       type: object
                     spec:
                       properties:
-                        serviceAccount:
-                          type: string
                         tolerations:
                           items:
                             properties:
@@ -608,8 +1325,16 @@
                           type: string
                         replicas:
                           type: integer
-                        updatePartition:
-                          type: integer
+                        maxSurge:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                        maxUnavailable:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
                         resources:
                           properties:
                             claims:
@@ -622,80 +1347,18 @@
                             limits:
                               additionalProperties:
                                 anyOf:
-                                - type: integer
-                                - type: string
+                                  - type: integer
+                                  - type: string
                                 x-kubernetes-int-or-string: true
                               type: object
                             requests:
                               additionalProperties:
                                 anyOf:
-                                - type: integer
-                                - type: string
+                                  - type: integer
+                                  - type: string
                                 x-kubernetes-int-or-string: true
                               type: object
                           type: object
-                        startupProbe:
-                          properties:
-                            exec:
-                              properties:
-                                command:
-                                  items:
-                                    type: string
-                                  type: array
-                              type: object
-                            failureThreshold:
-                              type: integer
-                            grpc:
-                              properties:
-                                port:
-                                  type: integer
-                                service:
-                                  type: string
-                              type: object
-                            httpGet:
-                              properties:
-                                host:
-                                  type: string
-                                httpHeaders:
-                                  items:
-                                    properties:
-                                      name:
-                                        type: string
-                                      value:
-                                        type: string
-                                    type: object
-                                  type: array
-                                path:
-                                  type: string
-                                port:
-                                  anyOf:
-                                  - type: integer
-                                  - type: string
-                                  x-kubernetes-int-or-string: true
-                                scheme:
-                                  type: string
-                              type: object
-                            initialDelaySeconds:
-                              type: integer
-                            periodSeconds:
-                              type: integer
-                            successThreshold:
-                              type: integer
-                            tcpSocket:
-                              properties:
-                                host:
-                                  type: string
-                                port:
-                                  anyOf:
-                                  - type: integer
-                                  - type: string
-                                  x-kubernetes-int-or-string: true
-                              type: object
-                            terminationGracePeriodSeconds:
-                              type: integer
-                            timeoutSeconds:
-                              type: integer
-                          type: object
                         readinessProbe:
                           properties:
                             exec:
@@ -731,8 +1394,8 @@
                                   type: string
                                 port:
                                   anyOf:
-                                  - type: integer
-                                  - type: string
+                                    - type: integer
+                                    - type: string
                                   x-kubernetes-int-or-string: true
                                 scheme:
                                   type: string
@@ -749,8 +1412,8 @@
                                   type: string
                                 port:
                                   anyOf:
-                                  - type: integer
-                                  - type: string
+                                    - type: integer
+                                    - type: string
                                   x-kubernetes-int-or-string: true
                               type: object
                             terminationGracePeriodSeconds:
@@ -793,8 +1456,8 @@
                                   type: string
                                 port:
                                   anyOf:
-                                  - type: integer
-                                  - type: string
+                                    - type: integer
+                                    - type: string
                                   x-kubernetes-int-or-string: true
                                 scheme:
                                   type: string
@@ -811,8 +1474,8 @@
                                   type: string
                                 port:
                                   anyOf:
-                                  - type: integer
-                                  - type: string
+                                    - type: integer
+                                    - type: string
                                   x-kubernetes-int-or-string: true
                               type: object
                             terminationGracePeriodSeconds:
@@ -820,692 +1483,29 @@
                             timeoutSeconds:
                               type: integer
                           type: object
-                        gracefulStopTimeout:
-                          type: integer
                         service:
                           properties:
-                            sshPort:
-                              type: integer
                             type:
                               type: string
                             httpPort:
                               type: integer
                           type: object
-                        site:
-                          properties:
-                            size:
-                              anyOf:
-                              - type: integer
-                              - type: string
-                              x-kubernetes-int-or-string: true
-                          type: object
-                        plugins:
-                          items:
-                            properties:
-                              installAsLibrary:
-                                type: boolean
-                              name:
-                                type: string
-                              url:
-                                type: string
-                              sha1:
-                                type: string
-                              data:
-                                properties:
-                                  secretRef:
-                                    type: string
-                                type: object
-                            type: object
-                          type: array
-                        libs:
-                          items:
-                            properties:
-                              name:
-                                type: string
-                              url:
-                                type: string
-                              sha1:
-                                type: string
-                              data:
-                                properties:
-                                  secretRef:
-                                    type: string
-                                type: object
-                            type: object
-                          type: array
-                        configFiles:
-                          additionalProperties:
-                            type: string
-                          type: object
-                        secretRef:
+                        credentialSecretRef:
                           type: string
-                        mode:
-                          enum:
-                          - PRIMARY
-                          - REPLICA
-                          type: string
-                        debug:
-                          properties:
-                            enabled:
-                              type: boolean
-                            suspend:
-                              type: boolean
-                          type: object
                       type: object
                   type: object
-                type: array
-              receiver:
-                properties:
-                  metadata:
-                    properties:
-                      annotations:
-                        additionalProperties:
-                          type: string
-                        type: object
-                      creationTimestamp:
-                        type: string
-                      deletionGracePeriodSeconds:
-                        type: integer
-                      deletionTimestamp:
-                        type: string
-                      finalizers:
-                        items:
-                          type: string
-                        type: array
-                      generateName:
-                        type: string
-                      generation:
-                        type: integer
-                      labels:
-                        additionalProperties:
-                          type: string
-                        type: object
-                      managedFields:
-                        items:
-                          properties:
-                            apiVersion:
-                              type: string
-                            fieldsType:
-                              type: string
-                            fieldsV1:
-                              type: object
-                            manager:
-                              type: string
-                            operation:
-                              type: string
-                            subresource:
-                              type: string
-                            time:
-                              type: string
-                          type: object
-                        type: array
-                      name:
-                        type: string
-                      namespace:
-                        type: string
-                      ownerReferences:
-                        items:
-                          properties:
-                            apiVersion:
-                              type: string
-                            blockOwnerDeletion:
-                              type: boolean
-                            controller:
-                              type: boolean
-                            kind:
-                              type: string
-                            name:
-                              type: string
-                            uid:
-                              type: string
-                          type: object
-                        type: array
-                      resourceVersion:
-                        type: string
-                      selfLink:
-                        type: string
-                      uid:
-                        type: string
-                    type: object
-                  spec:
-                    properties:
-                      tolerations:
-                        items:
-                          properties:
-                            effect:
-                              type: string
-                            key:
-                              type: string
-                            operator:
-                              type: string
-                            tolerationSeconds:
-                              type: integer
-                            value:
-                              type: string
-                          type: object
-                        type: array
-                      affinity:
-                        properties:
-                          nodeAffinity:
-                            properties:
-                              preferredDuringSchedulingIgnoredDuringExecution:
-                                items:
-                                  properties:
-                                    preference:
-                                      properties:
-                                        matchExpressions:
-                                          items:
-                                            properties:
-                                              key:
-                                                type: string
-                                              operator:
-                                                type: string
-                                              values:
-                                                items:
-                                                  type: string
-                                                type: array
-                                            type: object
-                                          type: array
-                                        matchFields:
-                                          items:
-                                            properties:
-                                              key:
-                                                type: string
-                                              operator:
-                                                type: string
-                                              values:
-                                                items:
-                                                  type: string
-                                                type: array
-                                            type: object
-                                          type: array
-                                      type: object
-                                    weight:
-                                      type: integer
-                                  type: object
-                                type: array
-                              requiredDuringSchedulingIgnoredDuringExecution:
-                                properties:
-                                  nodeSelectorTerms:
-                                    items:
-                                      properties:
-                                        matchExpressions:
-                                          items:
-                                            properties:
-                                              key:
-                                                type: string
-                                              operator:
-                                                type: string
-                                              values:
-                                                items:
-                                                  type: string
-                                                type: array
-                                            type: object
-                                          type: array
-                                        matchFields:
-                                          items:
-                                            properties:
-                                              key:
-                                                type: string
-                                              operator:
-                                                type: string
-                                              values:
-                                                items:
-                                                  type: string
-                                                type: array
-                                            type: object
-                                          type: array
-                                      type: object
-                                    type: array
-                                type: object
-                            type: object
-                          podAffinity:
-                            properties:
-                              preferredDuringSchedulingIgnoredDuringExecution:
-                                items:
-                                  properties:
-                                    podAffinityTerm:
-                                      properties:
-                                        labelSelector:
-                                          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
-                                        namespaceSelector:
-                                          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
-                                        namespaces:
-                                          items:
-                                            type: string
-                                          type: array
-                                        topologyKey:
-                                          type: string
-                                      type: object
-                                    weight:
-                                      type: integer
-                                  type: object
-                                type: array
-                              requiredDuringSchedulingIgnoredDuringExecution:
-                                items:
-                                  properties:
-                                    labelSelector:
-                                      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
-                                    namespaceSelector:
-                                      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
-                                    namespaces:
-                                      items:
-                                        type: string
-                                      type: array
-                                    topologyKey:
-                                      type: string
-                                  type: object
-                                type: array
-                            type: object
-                          podAntiAffinity:
-                            properties:
-                              preferredDuringSchedulingIgnoredDuringExecution:
-                                items:
-                                  properties:
-                                    podAffinityTerm:
-                                      properties:
-                                        labelSelector:
-                                          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
-                                        namespaceSelector:
-                                          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
-                                        namespaces:
-                                          items:
-                                            type: string
-                                          type: array
-                                        topologyKey:
-                                          type: string
-                                      type: object
-                                    weight:
-                                      type: integer
-                                  type: object
-                                type: array
-                              requiredDuringSchedulingIgnoredDuringExecution:
-                                items:
-                                  properties:
-                                    labelSelector:
-                                      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
-                                    namespaceSelector:
-                                      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
-                                    namespaces:
-                                      items:
-                                        type: string
-                                      type: array
-                                    topologyKey:
-                                      type: string
-                                  type: object
-                                type: array
-                            type: object
-                        type: object
-                      topologySpreadConstraints:
-                        items:
-                          properties:
-                            labelSelector:
-                              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
-                            matchLabelKeys:
-                              items:
-                                type: string
-                              type: array
-                            maxSkew:
-                              type: integer
-                            minDomains:
-                              type: integer
-                            nodeAffinityPolicy:
-                              type: string
-                            nodeTaintsPolicy:
-                              type: string
-                            topologyKey:
-                              type: string
-                            whenUnsatisfiable:
-                              type: string
-                          type: object
-                        type: array
-                      priorityClassName:
-                        type: string
-                      replicas:
-                        type: integer
-                      maxSurge:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                      maxUnavailable:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                      resources:
-                        properties:
-                          claims:
-                            items:
-                              properties:
-                                name:
-                                  type: string
-                              type: object
-                            type: array
-                          limits:
-                            additionalProperties:
-                              anyOf:
-                              - type: integer
-                              - type: string
-                              x-kubernetes-int-or-string: true
-                            type: object
-                          requests:
-                            additionalProperties:
-                              anyOf:
-                              - type: integer
-                              - type: string
-                              x-kubernetes-int-or-string: true
-                            type: object
-                        type: object
-                      readinessProbe:
-                        properties:
-                          exec:
-                            properties:
-                              command:
-                                items:
-                                  type: string
-                                type: array
-                            type: object
-                          failureThreshold:
-                            type: integer
-                          grpc:
-                            properties:
-                              port:
-                                type: integer
-                              service:
-                                type: string
-                            type: object
-                          httpGet:
-                            properties:
-                              host:
-                                type: string
-                              httpHeaders:
-                                items:
-                                  properties:
-                                    name:
-                                      type: string
-                                    value:
-                                      type: string
-                                  type: object
-                                type: array
-                              path:
-                                type: string
-                              port:
-                                anyOf:
-                                - type: integer
-                                - type: string
-                                x-kubernetes-int-or-string: true
-                              scheme:
-                                type: string
-                            type: object
-                          initialDelaySeconds:
-                            type: integer
-                          periodSeconds:
-                            type: integer
-                          successThreshold:
-                            type: integer
-                          tcpSocket:
-                            properties:
-                              host:
-                                type: string
-                              port:
-                                anyOf:
-                                - type: integer
-                                - type: string
-                                x-kubernetes-int-or-string: true
-                            type: object
-                          terminationGracePeriodSeconds:
-                            type: integer
-                          timeoutSeconds:
-                            type: integer
-                        type: object
-                      livenessProbe:
-                        properties:
-                          exec:
-                            properties:
-                              command:
-                                items:
-                                  type: string
-                                type: array
-                            type: object
-                          failureThreshold:
-                            type: integer
-                          grpc:
-                            properties:
-                              port:
-                                type: integer
-                              service:
-                                type: string
-                            type: object
-                          httpGet:
-                            properties:
-                              host:
-                                type: string
-                              httpHeaders:
-                                items:
-                                  properties:
-                                    name:
-                                      type: string
-                                    value:
-                                      type: string
-                                  type: object
-                                type: array
-                              path:
-                                type: string
-                              port:
-                                anyOf:
-                                - type: integer
-                                - type: string
-                                x-kubernetes-int-or-string: true
-                              scheme:
-                                type: string
-                            type: object
-                          initialDelaySeconds:
-                            type: integer
-                          periodSeconds:
-                            type: integer
-                          successThreshold:
-                            type: integer
-                          tcpSocket:
-                            properties:
-                              host:
-                                type: string
-                              port:
-                                anyOf:
-                                - type: integer
-                                - type: string
-                                x-kubernetes-int-or-string: true
-                            type: object
-                          terminationGracePeriodSeconds:
-                            type: integer
-                          timeoutSeconds:
-                            type: integer
-                        type: object
-                      service:
-                        properties:
-                          type:
-                            type: string
-                          httpPort:
-                            type: integer
-                        type: object
-                      credentialSecretRef:
-                        type: string
-                    type: object
-                type: object
-            type: object
-          status:
-            properties:
-              members:
-                additionalProperties:
-                  items:
-                    type: string
-                  type: array
-                type: object
-            type: object
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
+              type: object
+            status:
+              properties:
+                members:
+                  additionalProperties:
+                    items:
+                      type: string
+                    type: array
+                  type: object
+              type: object
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
diff --git a/crd/deprecated/gerritnetworks.gerritoperator.google.com-v1.yml b/crd/deprecated/gerritnetworks.gerritoperator.google.com-v1.yml
index 8d0f447..3c19f38 100644
--- a/crd/deprecated/gerritnetworks.gerritoperator.google.com-v1.yml
+++ b/crd/deprecated/gerritnetworks.gerritoperator.google.com-v1.yml
@@ -9,133 +9,133 @@
     kind: GerritNetwork
     plural: gerritnetworks
     shortNames:
-    - gn
+      - gn
     singular: gerritnetwork
   scope: Namespaced
   versions:
-  - name: v1beta3
-    schema:
-      openAPIV3Schema:
-        properties:
-          spec:
-            properties:
-              ingress:
-                properties:
-                  enabled:
-                    type: boolean
-                  host:
-                    type: string
-                  annotations:
-                    additionalProperties:
+    - name: v1beta4
+      schema:
+        openAPIV3Schema:
+          properties:
+            spec:
+              properties:
+                ingress:
+                  properties:
+                    enabled:
+                      type: boolean
+                    host:
                       type: string
-                    type: object
-                  tls:
-                    properties:
-                      enabled:
-                        type: boolean
-                      secret:
+                    annotations:
+                      additionalProperties:
                         type: string
-                    type: object
-                  ssh:
-                    properties:
-                      enabled:
-                        type: boolean
-                    type: object
-                  ambassador:
-                    properties:
-                      id:
-                        items:
-                          type: string
-                        type: array
-                      createHost:
-                        type: boolean
-                    type: object
-                  istio:
-                    properties:
-                      gatewaySelector:
-                        additionalProperties:
-                          type: string
-                        type: object
-                    type: object
-                type: object
-              receiver:
-                properties:
-                  name:
-                    type: string
-                  httpPort:
-                    type: integer
-                type: object
-              primaryGerrit:
-                properties:
-                  sshPort:
-                    type: integer
-                  name:
-                    type: string
-                  httpPort:
-                    type: integer
-                type: object
-              gerritReplica:
-                properties:
-                  sshPort:
-                    type: integer
-                  name:
-                    type: string
-                  httpPort:
-                    type: integer
-                type: object
-            type: object
-          status:
-            properties:
-              apiVersion:
-                type: string
-              code:
-                type: integer
-              details:
-                properties:
-                  causes:
-                    items:
+                      type: object
+                    tls:
                       properties:
-                        field:
-                          type: string
-                        message:
-                          type: string
-                        reason:
+                        enabled:
+                          type: boolean
+                        secret:
                           type: string
                       type: object
-                    type: array
-                  group:
-                    type: string
-                  kind:
-                    type: string
-                  name:
-                    type: string
-                  retryAfterSeconds:
-                    type: integer
-                  uid:
-                    type: string
-                type: object
-              kind:
-                type: string
-              message:
-                type: string
-              metadata:
-                properties:
-                  continue:
-                    type: string
-                  remainingItemCount:
-                    type: integer
-                  resourceVersion:
-                    type: string
-                  selfLink:
-                    type: string
-                type: object
-              reason:
-                type: string
-              status:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
+                    ssh:
+                      properties:
+                        enabled:
+                          type: boolean
+                      type: object
+                    ambassador:
+                      properties:
+                        id:
+                          items:
+                            type: string
+                          type: array
+                        createHost:
+                          type: boolean
+                      type: object
+                    istio:
+                      properties:
+                        gatewaySelector:
+                          additionalProperties:
+                            type: string
+                          type: object
+                      type: object
+                  type: object
+                receiver:
+                  properties:
+                    name:
+                      type: string
+                    httpPort:
+                      type: integer
+                  type: object
+                primaryGerrit:
+                  properties:
+                    sshPort:
+                      type: integer
+                    name:
+                      type: string
+                    httpPort:
+                      type: integer
+                  type: object
+                gerritReplica:
+                  properties:
+                    sshPort:
+                      type: integer
+                    name:
+                      type: string
+                    httpPort:
+                      type: integer
+                  type: object
+              type: object
+            status:
+              properties:
+                apiVersion:
+                  type: string
+                code:
+                  type: integer
+                details:
+                  properties:
+                    causes:
+                      items:
+                        properties:
+                          field:
+                            type: string
+                          message:
+                            type: string
+                          reason:
+                            type: string
+                        type: object
+                      type: array
+                    group:
+                      type: string
+                    kind:
+                      type: string
+                    name:
+                      type: string
+                    retryAfterSeconds:
+                      type: integer
+                    uid:
+                      type: string
+                  type: object
+                kind:
+                  type: string
+                message:
+                  type: string
+                metadata:
+                  properties:
+                    continue:
+                      type: string
+                    remainingItemCount:
+                      type: integer
+                    resourceVersion:
+                      type: string
+                    selfLink:
+                      type: string
+                  type: object
+                reason:
+                  type: string
+                status:
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
diff --git a/crd/deprecated/gerrits.gerritoperator.google.com-v1.yml b/crd/deprecated/gerrits.gerritoperator.google.com-v1.yml
index 96aa6cf..f60dbf5 100644
--- a/crd/deprecated/gerrits.gerritoperator.google.com-v1.yml
+++ b/crd/deprecated/gerrits.gerritoperator.google.com-v1.yml
@@ -9,84 +9,463 @@
     kind: Gerrit
     plural: gerrits
     shortNames:
-    - gcr
+      - gcr
     singular: gerrit
   scope: Namespaced
   versions:
-  - name: v1beta3
-    schema:
-      openAPIV3Schema:
-        properties:
-          spec:
-            properties:
-              containerImages:
-                properties:
-                  imagePullPolicy:
-                    type: string
-                  imagePullSecrets:
-                    items:
+    - name: v1beta4
+      schema:
+        openAPIV3Schema:
+          properties:
+            spec:
+              properties:
+                containerImages:
+                  properties:
+                    imagePullPolicy:
+                      type: string
+                    imagePullSecrets:
+                      items:
+                        properties:
+                          name:
+                            type: string
+                        type: object
+                      type: array
+                    busyBox:
                       properties:
-                        name:
+                        registry:
+                          type: string
+                        tag:
                           type: string
                       type: object
-                    type: array
-                  busyBox:
+                    gerritImages:
+                      properties:
+                        registry:
+                          type: string
+                        org:
+                          type: string
+                        tag:
+                          type: string
+                      type: object
+                  type: object
+                storage:
+                  properties:
+                    pluginCache:
+                      properties:
+                        enabled:
+                          type: boolean
+                      type: object
+                    storageClasses:
+                      properties:
+                        readWriteOnce:
+                          type: string
+                        readWriteMany:
+                          type: string
+                        nfsWorkaround:
+                          properties:
+                            enabled:
+                              type: boolean
+                            chownOnStartup:
+                              type: boolean
+                            idmapdConfig:
+                              type: string
+                          type: object
+                      type: object
+                    sharedStorage:
+                      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:
+                    enabled:
+                      type: boolean
+                    host:
+                      type: string
+                    tlsEnabled:
+                      type: boolean
+                    ssh:
+                      properties:
+                        enabled:
+                          type: boolean
+                      type: object
+                  type: object
+                refdb:
+                  properties:
+                    database:
+                      enum:
+                        - NONE
+                        - ZOOKEEPER
+                        - SPANNER
+                      type: string
+                    zookeeper:
+                      properties:
+                        connectString:
+                          type: string
+                        rootNode:
+                          type: string
+                      type: object
+                    spanner:
+                      properties:
+                        projectName:
+                          type: string
+                        instance:
+                          type: string
+                        database:
+                          type: string
+                      type: object
+                  type: object
+                serverId:
+                  type: string
+                serviceAccount:
+                  type: string
+                tolerations:
+                  items:
                     properties:
-                      registry:
+                      effect:
                         type: string
-                      tag:
+                      key:
+                        type: string
+                      operator:
+                        type: string
+                      tolerationSeconds:
+                        type: integer
+                      value:
                         type: string
                     type: object
-                  gerritImages:
+                  type: array
+                affinity:
+                  properties:
+                    nodeAffinity:
+                      properties:
+                        preferredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              preference:
+                                properties:
+                                  matchExpressions:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                  matchFields:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                type: object
+                              weight:
+                                type: integer
+                            type: object
+                          type: array
+                        requiredDuringSchedulingIgnoredDuringExecution:
+                          properties:
+                            nodeSelectorTerms:
+                              items:
+                                properties:
+                                  matchExpressions:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                  matchFields:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                type: object
+                              type: array
+                          type: object
+                      type: object
+                    podAffinity:
+                      properties:
+                        preferredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              podAffinityTerm:
+                                properties:
+                                  labelSelector:
+                                    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
+                                  namespaceSelector:
+                                    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
+                                  namespaces:
+                                    items:
+                                      type: string
+                                    type: array
+                                  topologyKey:
+                                    type: string
+                                type: object
+                              weight:
+                                type: integer
+                            type: object
+                          type: array
+                        requiredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              labelSelector:
+                                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
+                              namespaceSelector:
+                                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
+                              namespaces:
+                                items:
+                                  type: string
+                                type: array
+                              topologyKey:
+                                type: string
+                            type: object
+                          type: array
+                      type: object
+                    podAntiAffinity:
+                      properties:
+                        preferredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              podAffinityTerm:
+                                properties:
+                                  labelSelector:
+                                    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
+                                  namespaceSelector:
+                                    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
+                                  namespaces:
+                                    items:
+                                      type: string
+                                    type: array
+                                  topologyKey:
+                                    type: string
+                                type: object
+                              weight:
+                                type: integer
+                            type: object
+                          type: array
+                        requiredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              labelSelector:
+                                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
+                              namespaceSelector:
+                                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
+                              namespaces:
+                                items:
+                                  type: string
+                                type: array
+                              topologyKey:
+                                type: string
+                            type: object
+                          type: array
+                      type: object
+                  type: object
+                topologySpreadConstraints:
+                  items:
                     properties:
-                      registry:
-                        type: string
-                      org:
-                        type: string
-                      tag:
-                        type: string
-                    type: object
-                type: object
-              storage:
-                properties:
-                  pluginCache:
-                    properties:
-                      enabled:
-                        type: boolean
-                    type: object
-                  storageClasses:
-                    properties:
-                      readWriteOnce:
-                        type: string
-                      readWriteMany:
-                        type: string
-                      nfsWorkaround:
-                        properties:
-                          enabled:
-                            type: boolean
-                          chownOnStartup:
-                            type: boolean
-                          idmapdConfig:
-                            type: string
-                        type: object
-                    type: object
-                  sharedStorage:
-                    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:
+                      labelSelector:
                         properties:
                           matchExpressions:
                             items:
@@ -106,706 +485,327 @@
                               type: string
                             type: object
                         type: object
-                    type: object
-                type: object
-              ingress:
-                properties:
-                  enabled:
-                    type: boolean
-                  host:
-                    type: string
-                  tlsEnabled:
-                    type: boolean
-                  ssh:
-                    properties:
-                      enabled:
-                        type: boolean
-                    type: object
-                type: object
-              refdb:
-                properties:
-                  database:
-                    enum:
-                    - NONE
-                    - ZOOKEEPER
-                    - SPANNER
-                    type: string
-                  zookeeper:
-                    properties:
-                      connectString:
-                        type: string
-                      rootNode:
-                        type: string
-                    type: object
-                  spanner:
-                    properties:
-                      projectName:
-                        type: string
-                      instance:
-                        type: string
-                      database:
-                        type: string
-                    type: object
-                type: object
-              serverId:
-                type: string
-              serviceAccount:
-                type: string
-              tolerations:
-                items:
-                  properties:
-                    effect:
-                      type: string
-                    key:
-                      type: string
-                    operator:
-                      type: string
-                    tolerationSeconds:
-                      type: integer
-                    value:
-                      type: string
-                  type: object
-                type: array
-              affinity:
-                properties:
-                  nodeAffinity:
-                    properties:
-                      preferredDuringSchedulingIgnoredDuringExecution:
+                      matchLabelKeys:
                         items:
-                          properties:
-                            preference:
-                              properties:
-                                matchExpressions:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                                matchFields:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                              type: object
-                            weight:
-                              type: integer
-                          type: object
+                          type: string
                         type: array
-                      requiredDuringSchedulingIgnoredDuringExecution:
+                      maxSkew:
+                        type: integer
+                      minDomains:
+                        type: integer
+                      nodeAffinityPolicy:
+                        type: string
+                      nodeTaintsPolicy:
+                        type: string
+                      topologyKey:
+                        type: string
+                      whenUnsatisfiable:
+                        type: string
+                    type: object
+                  type: array
+                priorityClassName:
+                  type: string
+                replicas:
+                  type: integer
+                updatePartition:
+                  type: integer
+                resources:
+                  properties:
+                    claims:
+                      items:
                         properties:
-                          nodeSelectorTerms:
-                            items:
-                              properties:
-                                matchExpressions:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                                matchFields:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                              type: object
-                            type: array
+                          name:
+                            type: string
                         type: object
-                    type: object
-                  podAffinity:
-                    properties:
-                      preferredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            podAffinityTerm:
-                              properties:
-                                labelSelector:
-                                  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
-                                namespaceSelector:
-                                  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
-                                namespaces:
-                                  items:
-                                    type: string
-                                  type: array
-                                topologyKey:
-                                  type: string
-                              type: object
-                            weight:
-                              type: integer
-                          type: object
-                        type: array
-                      requiredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            labelSelector:
-                              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
-                            namespaceSelector:
-                              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
-                            namespaces:
-                              items:
-                                type: string
-                              type: array
-                            topologyKey:
-                              type: string
-                          type: object
-                        type: array
-                    type: object
-                  podAntiAffinity:
-                    properties:
-                      preferredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            podAffinityTerm:
-                              properties:
-                                labelSelector:
-                                  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
-                                namespaceSelector:
-                                  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
-                                namespaces:
-                                  items:
-                                    type: string
-                                  type: array
-                                topologyKey:
-                                  type: string
-                              type: object
-                            weight:
-                              type: integer
-                          type: object
-                        type: array
-                      requiredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            labelSelector:
-                              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
-                            namespaceSelector:
-                              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
-                            namespaces:
-                              items:
-                                type: string
-                              type: array
-                            topologyKey:
-                              type: string
-                          type: object
-                        type: array
-                    type: object
-                type: object
-              topologySpreadConstraints:
-                items:
+                      type: array
+                    limits:
+                      additionalProperties:
+                        anyOf:
+                          - type: integer
+                          - type: string
+                        x-kubernetes-int-or-string: true
+                      type: object
+                    requests:
+                      additionalProperties:
+                        anyOf:
+                          - type: integer
+                          - type: string
+                        x-kubernetes-int-or-string: true
+                      type: object
+                  type: object
+                startupProbe:
                   properties:
-                    labelSelector:
+                    exec:
                       properties:
-                        matchExpressions:
+                        command:
+                          items:
+                            type: string
+                          type: array
+                      type: object
+                    failureThreshold:
+                      type: integer
+                    grpc:
+                      properties:
+                        port:
+                          type: integer
+                        service:
+                          type: string
+                      type: object
+                    httpGet:
+                      properties:
+                        host:
+                          type: string
+                        httpHeaders:
                           items:
                             properties:
-                              key:
+                              name:
                                 type: string
-                              operator:
+                              value:
                                 type: string
-                              values:
-                                items:
-                                  type: string
-                                type: array
                             type: object
                           type: array
-                        matchLabels:
-                          additionalProperties:
+                        path:
+                          type: string
+                        port:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                        scheme:
+                          type: string
+                      type: object
+                    initialDelaySeconds:
+                      type: integer
+                    periodSeconds:
+                      type: integer
+                    successThreshold:
+                      type: integer
+                    tcpSocket:
+                      properties:
+                        host:
+                          type: string
+                        port:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                      type: object
+                    terminationGracePeriodSeconds:
+                      type: integer
+                    timeoutSeconds:
+                      type: integer
+                  type: object
+                readinessProbe:
+                  properties:
+                    exec:
+                      properties:
+                        command:
+                          items:
                             type: string
-                          type: object
+                          type: array
                       type: object
-                    matchLabelKeys:
-                      items:
-                        type: string
-                      type: array
-                    maxSkew:
+                    failureThreshold:
                       type: integer
-                    minDomains:
-                      type: integer
-                    nodeAffinityPolicy:
-                      type: string
-                    nodeTaintsPolicy:
-                      type: string
-                    topologyKey:
-                      type: string
-                    whenUnsatisfiable:
-                      type: string
-                  type: object
-                type: array
-              priorityClassName:
-                type: string
-              replicas:
-                type: integer
-              updatePartition:
-                type: integer
-              resources:
-                properties:
-                  claims:
-                    items:
+                    grpc:
                       properties:
-                        name:
+                        port:
+                          type: integer
+                        service:
                           type: string
                       type: object
-                    type: array
-                  limits:
-                    additionalProperties:
+                    httpGet:
+                      properties:
+                        host:
+                          type: string
+                        httpHeaders:
+                          items:
+                            properties:
+                              name:
+                                type: string
+                              value:
+                                type: string
+                            type: object
+                          type: array
+                        path:
+                          type: string
+                        port:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                        scheme:
+                          type: string
+                      type: object
+                    initialDelaySeconds:
+                      type: integer
+                    periodSeconds:
+                      type: integer
+                    successThreshold:
+                      type: integer
+                    tcpSocket:
+                      properties:
+                        host:
+                          type: string
+                        port:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                      type: object
+                    terminationGracePeriodSeconds:
+                      type: integer
+                    timeoutSeconds:
+                      type: integer
+                  type: object
+                livenessProbe:
+                  properties:
+                    exec:
+                      properties:
+                        command:
+                          items:
+                            type: string
+                          type: array
+                      type: object
+                    failureThreshold:
+                      type: integer
+                    grpc:
+                      properties:
+                        port:
+                          type: integer
+                        service:
+                          type: string
+                      type: object
+                    httpGet:
+                      properties:
+                        host:
+                          type: string
+                        httpHeaders:
+                          items:
+                            properties:
+                              name:
+                                type: string
+                              value:
+                                type: string
+                            type: object
+                          type: array
+                        path:
+                          type: string
+                        port:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                        scheme:
+                          type: string
+                      type: object
+                    initialDelaySeconds:
+                      type: integer
+                    periodSeconds:
+                      type: integer
+                    successThreshold:
+                      type: integer
+                    tcpSocket:
+                      properties:
+                        host:
+                          type: string
+                        port:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                      type: object
+                    terminationGracePeriodSeconds:
+                      type: integer
+                    timeoutSeconds:
+                      type: integer
+                  type: object
+                gracefulStopTimeout:
+                  type: integer
+                service:
+                  properties:
+                    sshPort:
+                      type: integer
+                    type:
+                      type: string
+                    httpPort:
+                      type: integer
+                  type: object
+                site:
+                  properties:
+                    size:
                       anyOf:
-                      - type: integer
-                      - type: string
+                        - type: integer
+                        - type: string
                       x-kubernetes-int-or-string: true
-                    type: object
-                  requests:
-                    additionalProperties:
-                      anyOf:
-                      - type: integer
-                      - type: string
-                      x-kubernetes-int-or-string: true
-                    type: object
-                type: object
-              startupProbe:
-                properties:
-                  exec:
+                  type: object
+                plugins:
+                  items:
                     properties:
-                      command:
-                        items:
-                          type: string
-                        type: array
+                      installAsLibrary:
+                        type: boolean
+                      name:
+                        type: string
+                      url:
+                        type: string
+                      sha1:
+                        type: string
+                      data:
+                        properties:
+                          secretRef:
+                            type: string
+                        type: object
                     type: object
-                  failureThreshold:
-                    type: integer
-                  grpc:
+                  type: array
+                libs:
+                  items:
                     properties:
-                      port:
-                        type: integer
-                      service:
+                      name:
                         type: string
+                      url:
+                        type: string
+                      sha1:
+                        type: string
+                      data:
+                        properties:
+                          secretRef:
+                            type: string
+                        type: object
                     type: object
-                  httpGet:
-                    properties:
-                      host:
-                        type: string
-                      httpHeaders:
-                        items:
-                          properties:
-                            name:
-                              type: string
-                            value:
-                              type: string
-                          type: object
-                        type: array
-                      path:
-                        type: string
-                      port:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                      scheme:
-                        type: string
-                    type: object
-                  initialDelaySeconds:
-                    type: integer
-                  periodSeconds:
-                    type: integer
-                  successThreshold:
-                    type: integer
-                  tcpSocket:
-                    properties:
-                      host:
-                        type: string
-                      port:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                    type: object
-                  terminationGracePeriodSeconds:
-                    type: integer
-                  timeoutSeconds:
-                    type: integer
-                type: object
-              readinessProbe:
-                properties:
-                  exec:
-                    properties:
-                      command:
-                        items:
-                          type: string
-                        type: array
-                    type: object
-                  failureThreshold:
-                    type: integer
-                  grpc:
-                    properties:
-                      port:
-                        type: integer
-                      service:
-                        type: string
-                    type: object
-                  httpGet:
-                    properties:
-                      host:
-                        type: string
-                      httpHeaders:
-                        items:
-                          properties:
-                            name:
-                              type: string
-                            value:
-                              type: string
-                          type: object
-                        type: array
-                      path:
-                        type: string
-                      port:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                      scheme:
-                        type: string
-                    type: object
-                  initialDelaySeconds:
-                    type: integer
-                  periodSeconds:
-                    type: integer
-                  successThreshold:
-                    type: integer
-                  tcpSocket:
-                    properties:
-                      host:
-                        type: string
-                      port:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                    type: object
-                  terminationGracePeriodSeconds:
-                    type: integer
-                  timeoutSeconds:
-                    type: integer
-                type: object
-              livenessProbe:
-                properties:
-                  exec:
-                    properties:
-                      command:
-                        items:
-                          type: string
-                        type: array
-                    type: object
-                  failureThreshold:
-                    type: integer
-                  grpc:
-                    properties:
-                      port:
-                        type: integer
-                      service:
-                        type: string
-                    type: object
-                  httpGet:
-                    properties:
-                      host:
-                        type: string
-                      httpHeaders:
-                        items:
-                          properties:
-                            name:
-                              type: string
-                            value:
-                              type: string
-                          type: object
-                        type: array
-                      path:
-                        type: string
-                      port:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                      scheme:
-                        type: string
-                    type: object
-                  initialDelaySeconds:
-                    type: integer
-                  periodSeconds:
-                    type: integer
-                  successThreshold:
-                    type: integer
-                  tcpSocket:
-                    properties:
-                      host:
-                        type: string
-                      port:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                    type: object
-                  terminationGracePeriodSeconds:
-                    type: integer
-                  timeoutSeconds:
-                    type: integer
-                type: object
-              gracefulStopTimeout:
-                type: integer
-              service:
-                properties:
-                  sshPort:
-                    type: integer
-                  type:
+                  type: array
+                configFiles:
+                  additionalProperties:
                     type: string
-                  httpPort:
-                    type: integer
-                type: object
-              site:
-                properties:
-                  size:
-                    anyOf:
-                    - type: integer
-                    - type: string
-                    x-kubernetes-int-or-string: true
-                type: object
-              plugins:
-                items:
+                  type: object
+                secretRef:
+                  type: string
+                mode:
+                  enum:
+                    - PRIMARY
+                    - REPLICA
+                  type: string
+                debug:
                   properties:
-                    installAsLibrary:
+                    enabled:
                       type: boolean
-                    name:
-                      type: string
-                    url:
-                      type: string
-                    sha1:
-                      type: string
-                    data:
-                      properties:
-                        secretRef:
-                          type: string
-                      type: object
+                    suspend:
+                      type: boolean
                   type: object
-                type: array
-              libs:
-                items:
-                  properties:
-                    name:
-                      type: string
-                    url:
-                      type: string
-                    sha1:
-                      type: string
-                    data:
-                      properties:
-                        secretRef:
-                          type: string
-                      type: object
+              type: object
+            status:
+              properties:
+                ready:
+                  type: boolean
+                appliedConfigMapVersions:
+                  additionalProperties:
+                    type: string
                   type: object
-                type: array
-              configFiles:
-                additionalProperties:
-                  type: string
-                type: object
-              secretRef:
-                type: string
-              mode:
-                enum:
-                - PRIMARY
-                - REPLICA
-                type: string
-              debug:
-                properties:
-                  enabled:
-                    type: boolean
-                  suspend:
-                    type: boolean
-                type: object
-            type: object
-          status:
-            properties:
-              ready:
-                type: boolean
-              appliedConfigMapVersions:
-                additionalProperties:
-                  type: string
-                type: object
-              appliedSecretVersions:
-                additionalProperties:
-                  type: string
-                type: object
-            type: object
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
+                appliedSecretVersions:
+                  additionalProperties:
+                    type: string
+                  type: object
+              type: object
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
diff --git a/crd/deprecated/gitgcs.gerritoperator.google.com-v1.yml b/crd/deprecated/gitgcs.gerritoperator.google.com-v1.yml
index da54910..aa3f26d 100644
--- a/crd/deprecated/gitgcs.gerritoperator.google.com-v1.yml
+++ b/crd/deprecated/gitgcs.gerritoperator.google.com-v1.yml
@@ -9,378 +9,384 @@
     kind: GitGarbageCollection
     plural: gitgcs
     shortNames:
-    - gitgc
+      - gitgc
     singular: gitgarbagecollection
   scope: Namespaced
   versions:
-  - name: v1beta3
-    schema:
-      openAPIV3Schema:
-        properties:
-          spec:
-            properties:
-              cluster:
-                type: string
-              schedule:
-                type: string
-              projects:
-                items:
+    - name: v1beta4
+      schema:
+        openAPIV3Schema:
+          properties:
+            spec:
+              properties:
+                cluster:
                   type: string
-                type: array
-              resources:
-                properties:
-                  claims:
-                    items:
-                      properties:
-                        name:
-                          type: string
-                      type: object
-                    type: array
-                  limits:
-                    additionalProperties:
-                      anyOf:
-                      - type: integer
-                      - type: string
-                      x-kubernetes-int-or-string: true
-                    type: object
-                  requests:
-                    additionalProperties:
-                      anyOf:
-                      - type: integer
-                      - type: string
-                      x-kubernetes-int-or-string: true
-                    type: object
-                type: object
-              tolerations:
-                items:
+                schedule:
+                  type: string
+                projects:
+                  items:
+                    type: string
+                  type: array
+                disableBitmapIndex:
+                  type: boolean
+                disablePackRefs:
+                  type: boolean
+                preservePacks:
+                  type: boolean
+                resources:
                   properties:
-                    effect:
-                      type: string
-                    key:
-                      type: string
-                    operator:
-                      type: string
-                    tolerationSeconds:
-                      type: integer
-                    value:
-                      type: string
-                  type: object
-                type: array
-              affinity:
-                properties:
-                  nodeAffinity:
-                    properties:
-                      preferredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            preference:
-                              properties:
-                                matchExpressions:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                                matchFields:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                              type: object
-                            weight:
-                              type: integer
-                          type: object
-                        type: array
-                      requiredDuringSchedulingIgnoredDuringExecution:
+                    claims:
+                      items:
                         properties:
-                          nodeSelectorTerms:
-                            items:
-                              properties:
-                                matchExpressions:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                                matchFields:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                              type: object
-                            type: array
+                          name:
+                            type: string
                         type: object
-                    type: object
-                  podAffinity:
+                      type: array
+                    limits:
+                      additionalProperties:
+                        anyOf:
+                          - type: integer
+                          - type: string
+                        x-kubernetes-int-or-string: true
+                      type: object
+                    requests:
+                      additionalProperties:
+                        anyOf:
+                          - type: integer
+                          - type: string
+                        x-kubernetes-int-or-string: true
+                      type: object
+                  type: object
+                tolerations:
+                  items:
                     properties:
-                      preferredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            podAffinityTerm:
-                              properties:
-                                labelSelector:
-                                  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
-                                namespaceSelector:
-                                  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
-                                namespaces:
-                                  items:
-                                    type: string
-                                  type: array
-                                topologyKey:
-                                  type: string
-                              type: object
-                            weight:
-                              type: integer
-                          type: object
-                        type: array
-                      requiredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            labelSelector:
-                              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
-                            namespaceSelector:
-                              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
-                            namespaces:
-                              items:
-                                type: string
-                              type: array
-                            topologyKey:
-                              type: string
-                          type: object
-                        type: array
+                      effect:
+                        type: string
+                      key:
+                        type: string
+                      operator:
+                        type: string
+                      tolerationSeconds:
+                        type: integer
+                      value:
+                        type: string
                     type: object
-                  podAntiAffinity:
-                    properties:
-                      preferredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            podAffinityTerm:
-                              properties:
-                                labelSelector:
-                                  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
-                                namespaceSelector:
-                                  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
-                                namespaces:
-                                  items:
-                                    type: string
-                                  type: array
-                                topologyKey:
-                                  type: string
-                              type: object
-                            weight:
-                              type: integer
-                          type: object
-                        type: array
-                      requiredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            labelSelector:
-                              properties:
-                                matchExpressions:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
+                  type: array
+                affinity:
+                  properties:
+                    nodeAffinity:
+                      properties:
+                        preferredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              preference:
+                                properties:
+                                  matchExpressions:
+                                    items:
+                                      properties:
+                                        key:
                                           type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                                matchLabels:
-                                  additionalProperties:
-                                    type: string
-                                  type: object
-                              type: object
-                            namespaceSelector:
-                              properties:
-                                matchExpressions:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
+                                        operator:
                                           type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                                matchLabels:
-                                  additionalProperties:
-                                    type: string
-                                  type: object
-                              type: object
-                            namespaces:
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                  matchFields:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                type: object
+                              weight:
+                                type: integer
+                            type: object
+                          type: array
+                        requiredDuringSchedulingIgnoredDuringExecution:
+                          properties:
+                            nodeSelectorTerms:
                               items:
-                                type: string
+                                properties:
+                                  matchExpressions:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                  matchFields:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                type: object
                               type: array
-                            topologyKey:
-                              type: string
                           type: object
-                        type: array
-                    type: object
-                type: object
-            type: object
-          status:
-            properties:
-              replicateAll:
-                type: boolean
-              excludedProjects:
-                items:
+                      type: object
+                    podAffinity:
+                      properties:
+                        preferredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              podAffinityTerm:
+                                properties:
+                                  labelSelector:
+                                    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
+                                  namespaceSelector:
+                                    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
+                                  namespaces:
+                                    items:
+                                      type: string
+                                    type: array
+                                  topologyKey:
+                                    type: string
+                                type: object
+                              weight:
+                                type: integer
+                            type: object
+                          type: array
+                        requiredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              labelSelector:
+                                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
+                              namespaceSelector:
+                                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
+                              namespaces:
+                                items:
+                                  type: string
+                                type: array
+                              topologyKey:
+                                type: string
+                            type: object
+                          type: array
+                      type: object
+                    podAntiAffinity:
+                      properties:
+                        preferredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              podAffinityTerm:
+                                properties:
+                                  labelSelector:
+                                    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
+                                  namespaceSelector:
+                                    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
+                                  namespaces:
+                                    items:
+                                      type: string
+                                    type: array
+                                  topologyKey:
+                                    type: string
+                                type: object
+                              weight:
+                                type: integer
+                            type: object
+                          type: array
+                        requiredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              labelSelector:
+                                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
+                              namespaceSelector:
+                                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
+                              namespaces:
+                                items:
+                                  type: string
+                                type: array
+                              topologyKey:
+                                type: string
+                            type: object
+                          type: array
+                      type: object
+                  type: object
+              type: object
+            status:
+              properties:
+                replicateAll:
+                  type: boolean
+                excludedProjects:
+                  items:
+                    type: string
+                  type: array
+                state:
+                  enum:
+                    - ACTIVE
+                    - INACTIVE
+                    - CONFLICT
+                    - ERROR
                   type: string
-                type: array
-              state:
-                enum:
-                - ACTIVE
-                - INACTIVE
-                - CONFLICT
-                - ERROR
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
+              type: object
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
diff --git a/crd/deprecated/receivers.gerritoperator.google.com-v1.yml b/crd/deprecated/receivers.gerritoperator.google.com-v1.yml
index 731d0f6..62e304b 100644
--- a/crd/deprecated/receivers.gerritoperator.google.com-v1.yml
+++ b/crd/deprecated/receivers.gerritoperator.google.com-v1.yml
@@ -9,79 +9,429 @@
     kind: Receiver
     plural: receivers
     shortNames:
-    - grec
+      - grec
     singular: receiver
   scope: Namespaced
   versions:
-  - name: v1beta3
-    schema:
-      openAPIV3Schema:
-        properties:
-          spec:
-            properties:
-              containerImages:
-                properties:
-                  imagePullPolicy:
-                    type: string
-                  imagePullSecrets:
-                    items:
+    - name: v1beta4
+      schema:
+        openAPIV3Schema:
+          properties:
+            spec:
+              properties:
+                containerImages:
+                  properties:
+                    imagePullPolicy:
+                      type: string
+                    imagePullSecrets:
+                      items:
+                        properties:
+                          name:
+                            type: string
+                        type: object
+                      type: array
+                    busyBox:
                       properties:
-                        name:
+                        registry:
+                          type: string
+                        tag:
                           type: string
                       type: object
-                    type: array
-                  busyBox:
+                    gerritImages:
+                      properties:
+                        registry:
+                          type: string
+                        org:
+                          type: string
+                        tag:
+                          type: string
+                      type: object
+                  type: object
+                storage:
+                  properties:
+                    storageClasses:
+                      properties:
+                        readWriteOnce:
+                          type: string
+                        readWriteMany:
+                          type: string
+                        nfsWorkaround:
+                          properties:
+                            enabled:
+                              type: boolean
+                            chownOnStartup:
+                              type: boolean
+                            idmapdConfig:
+                              type: string
+                          type: object
+                      type: object
+                    sharedStorage:
+                      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:
+                    enabled:
+                      type: boolean
+                    host:
+                      type: string
+                    tlsEnabled:
+                      type: boolean
+                    ssh:
+                      properties:
+                        enabled:
+                          type: boolean
+                      type: object
+                  type: object
+                tolerations:
+                  items:
                     properties:
-                      registry:
+                      effect:
                         type: string
-                      tag:
+                      key:
+                        type: string
+                      operator:
+                        type: string
+                      tolerationSeconds:
+                        type: integer
+                      value:
                         type: string
                     type: object
-                  gerritImages:
+                  type: array
+                affinity:
+                  properties:
+                    nodeAffinity:
+                      properties:
+                        preferredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              preference:
+                                properties:
+                                  matchExpressions:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                  matchFields:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                type: object
+                              weight:
+                                type: integer
+                            type: object
+                          type: array
+                        requiredDuringSchedulingIgnoredDuringExecution:
+                          properties:
+                            nodeSelectorTerms:
+                              items:
+                                properties:
+                                  matchExpressions:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                  matchFields:
+                                    items:
+                                      properties:
+                                        key:
+                                          type: string
+                                        operator:
+                                          type: string
+                                        values:
+                                          items:
+                                            type: string
+                                          type: array
+                                      type: object
+                                    type: array
+                                type: object
+                              type: array
+                          type: object
+                      type: object
+                    podAffinity:
+                      properties:
+                        preferredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              podAffinityTerm:
+                                properties:
+                                  labelSelector:
+                                    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
+                                  namespaceSelector:
+                                    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
+                                  namespaces:
+                                    items:
+                                      type: string
+                                    type: array
+                                  topologyKey:
+                                    type: string
+                                type: object
+                              weight:
+                                type: integer
+                            type: object
+                          type: array
+                        requiredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              labelSelector:
+                                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
+                              namespaceSelector:
+                                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
+                              namespaces:
+                                items:
+                                  type: string
+                                type: array
+                              topologyKey:
+                                type: string
+                            type: object
+                          type: array
+                      type: object
+                    podAntiAffinity:
+                      properties:
+                        preferredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              podAffinityTerm:
+                                properties:
+                                  labelSelector:
+                                    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
+                                  namespaceSelector:
+                                    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
+                                  namespaces:
+                                    items:
+                                      type: string
+                                    type: array
+                                  topologyKey:
+                                    type: string
+                                type: object
+                              weight:
+                                type: integer
+                            type: object
+                          type: array
+                        requiredDuringSchedulingIgnoredDuringExecution:
+                          items:
+                            properties:
+                              labelSelector:
+                                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
+                              namespaceSelector:
+                                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
+                              namespaces:
+                                items:
+                                  type: string
+                                type: array
+                              topologyKey:
+                                type: string
+                            type: object
+                          type: array
+                      type: object
+                  type: object
+                topologySpreadConstraints:
+                  items:
                     properties:
-                      registry:
-                        type: string
-                      org:
-                        type: string
-                      tag:
-                        type: string
-                    type: object
-                type: object
-              storage:
-                properties:
-                  storageClasses:
-                    properties:
-                      readWriteOnce:
-                        type: string
-                      readWriteMany:
-                        type: string
-                      nfsWorkaround:
-                        properties:
-                          enabled:
-                            type: boolean
-                          chownOnStartup:
-                            type: boolean
-                          idmapdConfig:
-                            type: string
-                        type: object
-                    type: object
-                  sharedStorage:
-                    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:
+                      labelSelector:
                         properties:
                           matchExpressions:
                             items:
@@ -101,555 +451,205 @@
                               type: string
                             type: object
                         type: object
-                    type: object
-                type: object
-              ingress:
-                properties:
-                  enabled:
-                    type: boolean
-                  host:
-                    type: string
-                  tlsEnabled:
-                    type: boolean
-                  ssh:
-                    properties:
-                      enabled:
-                        type: boolean
-                    type: object
-                type: object
-              tolerations:
-                items:
-                  properties:
-                    effect:
-                      type: string
-                    key:
-                      type: string
-                    operator:
-                      type: string
-                    tolerationSeconds:
-                      type: integer
-                    value:
-                      type: string
-                  type: object
-                type: array
-              affinity:
-                properties:
-                  nodeAffinity:
-                    properties:
-                      preferredDuringSchedulingIgnoredDuringExecution:
+                      matchLabelKeys:
                         items:
-                          properties:
-                            preference:
-                              properties:
-                                matchExpressions:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                                matchFields:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                              type: object
-                            weight:
-                              type: integer
-                          type: object
+                          type: string
                         type: array
-                      requiredDuringSchedulingIgnoredDuringExecution:
+                      maxSkew:
+                        type: integer
+                      minDomains:
+                        type: integer
+                      nodeAffinityPolicy:
+                        type: string
+                      nodeTaintsPolicy:
+                        type: string
+                      topologyKey:
+                        type: string
+                      whenUnsatisfiable:
+                        type: string
+                    type: object
+                  type: array
+                priorityClassName:
+                  type: string
+                replicas:
+                  type: integer
+                maxSurge:
+                  anyOf:
+                    - type: integer
+                    - type: string
+                  x-kubernetes-int-or-string: true
+                maxUnavailable:
+                  anyOf:
+                    - type: integer
+                    - type: string
+                  x-kubernetes-int-or-string: true
+                resources:
+                  properties:
+                    claims:
+                      items:
                         properties:
-                          nodeSelectorTerms:
-                            items:
-                              properties:
-                                matchExpressions:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                                matchFields:
-                                  items:
-                                    properties:
-                                      key:
-                                        type: string
-                                      operator:
-                                        type: string
-                                      values:
-                                        items:
-                                          type: string
-                                        type: array
-                                    type: object
-                                  type: array
-                              type: object
-                            type: array
+                          name:
+                            type: string
                         type: object
-                    type: object
-                  podAffinity:
-                    properties:
-                      preferredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            podAffinityTerm:
-                              properties:
-                                labelSelector:
-                                  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
-                                namespaceSelector:
-                                  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
-                                namespaces:
-                                  items:
-                                    type: string
-                                  type: array
-                                topologyKey:
-                                  type: string
-                              type: object
-                            weight:
-                              type: integer
-                          type: object
-                        type: array
-                      requiredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            labelSelector:
-                              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
-                            namespaceSelector:
-                              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
-                            namespaces:
-                              items:
-                                type: string
-                              type: array
-                            topologyKey:
-                              type: string
-                          type: object
-                        type: array
-                    type: object
-                  podAntiAffinity:
-                    properties:
-                      preferredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            podAffinityTerm:
-                              properties:
-                                labelSelector:
-                                  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
-                                namespaceSelector:
-                                  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
-                                namespaces:
-                                  items:
-                                    type: string
-                                  type: array
-                                topologyKey:
-                                  type: string
-                              type: object
-                            weight:
-                              type: integer
-                          type: object
-                        type: array
-                      requiredDuringSchedulingIgnoredDuringExecution:
-                        items:
-                          properties:
-                            labelSelector:
-                              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
-                            namespaceSelector:
-                              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
-                            namespaces:
-                              items:
-                                type: string
-                              type: array
-                            topologyKey:
-                              type: string
-                          type: object
-                        type: array
-                    type: object
-                type: object
-              topologySpreadConstraints:
-                items:
+                      type: array
+                    limits:
+                      additionalProperties:
+                        anyOf:
+                          - type: integer
+                          - type: string
+                        x-kubernetes-int-or-string: true
+                      type: object
+                    requests:
+                      additionalProperties:
+                        anyOf:
+                          - type: integer
+                          - type: string
+                        x-kubernetes-int-or-string: true
+                      type: object
+                  type: object
+                readinessProbe:
                   properties:
-                    labelSelector:
+                    exec:
                       properties:
-                        matchExpressions:
+                        command:
+                          items:
+                            type: string
+                          type: array
+                      type: object
+                    failureThreshold:
+                      type: integer
+                    grpc:
+                      properties:
+                        port:
+                          type: integer
+                        service:
+                          type: string
+                      type: object
+                    httpGet:
+                      properties:
+                        host:
+                          type: string
+                        httpHeaders:
                           items:
                             properties:
-                              key:
+                              name:
                                 type: string
-                              operator:
+                              value:
                                 type: string
-                              values:
-                                items:
-                                  type: string
-                                type: array
                             type: object
                           type: array
-                        matchLabels:
-                          additionalProperties:
-                            type: string
-                          type: object
+                        path:
+                          type: string
+                        port:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                        scheme:
+                          type: string
                       type: object
-                    matchLabelKeys:
-                      items:
-                        type: string
-                      type: array
-                    maxSkew:
+                    initialDelaySeconds:
                       type: integer
-                    minDomains:
+                    periodSeconds:
                       type: integer
-                    nodeAffinityPolicy:
-                      type: string
-                    nodeTaintsPolicy:
-                      type: string
-                    topologyKey:
-                      type: string
-                    whenUnsatisfiable:
-                      type: string
-                  type: object
-                type: array
-              priorityClassName:
-                type: string
-              replicas:
-                type: integer
-              maxSurge:
-                anyOf:
-                - type: integer
-                - type: string
-                x-kubernetes-int-or-string: true
-              maxUnavailable:
-                anyOf:
-                - type: integer
-                - type: string
-                x-kubernetes-int-or-string: true
-              resources:
-                properties:
-                  claims:
-                    items:
+                    successThreshold:
+                      type: integer
+                    tcpSocket:
                       properties:
-                        name:
+                        host:
+                          type: string
+                        port:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                      type: object
+                    terminationGracePeriodSeconds:
+                      type: integer
+                    timeoutSeconds:
+                      type: integer
+                  type: object
+                livenessProbe:
+                  properties:
+                    exec:
+                      properties:
+                        command:
+                          items:
+                            type: string
+                          type: array
+                      type: object
+                    failureThreshold:
+                      type: integer
+                    grpc:
+                      properties:
+                        port:
+                          type: integer
+                        service:
                           type: string
                       type: object
-                    type: array
-                  limits:
-                    additionalProperties:
-                      anyOf:
-                      - type: integer
-                      - type: string
-                      x-kubernetes-int-or-string: true
-                    type: object
-                  requests:
-                    additionalProperties:
-                      anyOf:
-                      - type: integer
-                      - type: string
-                      x-kubernetes-int-or-string: true
-                    type: object
-                type: object
-              readinessProbe:
-                properties:
-                  exec:
-                    properties:
-                      command:
-                        items:
+                    httpGet:
+                      properties:
+                        host:
                           type: string
-                        type: array
-                    type: object
-                  failureThreshold:
-                    type: integer
-                  grpc:
-                    properties:
-                      port:
-                        type: integer
-                      service:
-                        type: string
-                    type: object
-                  httpGet:
-                    properties:
-                      host:
-                        type: string
-                      httpHeaders:
-                        items:
-                          properties:
-                            name:
-                              type: string
-                            value:
-                              type: string
-                          type: object
-                        type: array
-                      path:
-                        type: string
-                      port:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                      scheme:
-                        type: string
-                    type: object
-                  initialDelaySeconds:
-                    type: integer
-                  periodSeconds:
-                    type: integer
-                  successThreshold:
-                    type: integer
-                  tcpSocket:
-                    properties:
-                      host:
-                        type: string
-                      port:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                    type: object
-                  terminationGracePeriodSeconds:
-                    type: integer
-                  timeoutSeconds:
-                    type: integer
-                type: object
-              livenessProbe:
-                properties:
-                  exec:
-                    properties:
-                      command:
-                        items:
+                        httpHeaders:
+                          items:
+                            properties:
+                              name:
+                                type: string
+                              value:
+                                type: string
+                            type: object
+                          type: array
+                        path:
                           type: string
-                        type: array
-                    type: object
-                  failureThreshold:
-                    type: integer
-                  grpc:
-                    properties:
-                      port:
-                        type: integer
-                      service:
-                        type: string
-                    type: object
-                  httpGet:
-                    properties:
-                      host:
-                        type: string
-                      httpHeaders:
-                        items:
-                          properties:
-                            name:
-                              type: string
-                            value:
-                              type: string
-                          type: object
-                        type: array
-                      path:
-                        type: string
-                      port:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                      scheme:
-                        type: string
-                    type: object
-                  initialDelaySeconds:
-                    type: integer
-                  periodSeconds:
-                    type: integer
-                  successThreshold:
-                    type: integer
-                  tcpSocket:
-                    properties:
-                      host:
-                        type: string
-                      port:
-                        anyOf:
-                        - type: integer
-                        - type: string
-                        x-kubernetes-int-or-string: true
-                    type: object
-                  terminationGracePeriodSeconds:
-                    type: integer
-                  timeoutSeconds:
-                    type: integer
-                type: object
-              service:
-                properties:
-                  type:
-                    type: string
-                  httpPort:
-                    type: integer
-                type: object
-              credentialSecretRef:
-                type: string
-            type: object
-          status:
-            properties:
-              ready:
-                type: boolean
-              appliedCredentialSecretVersion:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
+                        port:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                        scheme:
+                          type: string
+                      type: object
+                    initialDelaySeconds:
+                      type: integer
+                    periodSeconds:
+                      type: integer
+                    successThreshold:
+                      type: integer
+                    tcpSocket:
+                      properties:
+                        host:
+                          type: string
+                        port:
+                          anyOf:
+                            - type: integer
+                            - type: string
+                          x-kubernetes-int-or-string: true
+                      type: object
+                    terminationGracePeriodSeconds:
+                      type: integer
+                    timeoutSeconds:
+                      type: integer
+                  type: object
+                service:
+                  properties:
+                    type:
+                      type: string
+                    httpPort:
+                      type: integer
+                  type: object
+                credentialSecretRef:
+                  type: string
+              type: object
+            status:
+              properties:
+                ready:
+                  type: boolean
+                appliedCredentialSecretVersion:
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
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 42f1aa0..46a4b88 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: v1beta4
+    - name: v1beta5
       schema:
         openAPIV3Schema:
           properties:
@@ -1494,6 +1494,15 @@
                           type: string
                       type: object
                   type: object
+                fluentBitSidecar:
+                  properties:
+                    image:
+                      type: string
+                    config:
+                      type: string
+                    enabled:
+                      type: boolean
+                  type: object
               type: object
             status:
               properties:
@@ -1509,7 +1518,7 @@
       storage: true
       subresources:
         status: {}
-    - name: v1beta3
+    - name: v1beta4
       schema:
         openAPIV3Schema:
           properties:
diff --git a/helm-charts/gerrit-operator-crds/templates/gerritnetworks.gerritoperator.google.com-v1.yml b/helm-charts/gerrit-operator-crds/templates/gerritnetworks.gerritoperator.google.com-v1.yml
index 6d50b7e..d83b890 100644
--- a/helm-charts/gerrit-operator-crds/templates/gerritnetworks.gerritoperator.google.com-v1.yml
+++ b/helm-charts/gerrit-operator-crds/templates/gerritnetworks.gerritoperator.google.com-v1.yml
@@ -13,7 +13,7 @@
     singular: gerritnetwork
   scope: Namespaced
   versions:
-    - name: v1beta4
+    - name: v1beta5
       schema:
         openAPIV3Schema:
           properties:
@@ -139,7 +139,7 @@
       storage: true
       subresources:
         status: {}
-    - name: v1beta3
+    - name: v1beta4
       schema:
         openAPIV3Schema:
           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 352bd44..ed0b034 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: v1beta4
+    - name: v1beta5
       schema:
         openAPIV3Schema:
           properties:
@@ -149,6 +149,15 @@
                   type: object
                 serverId:
                   type: string
+                fluentBitSidecar:
+                  properties:
+                    image:
+                      type: string
+                    config:
+                      type: string
+                    enabled:
+                      type: boolean
+                  type: object
                 serviceAccount:
                   type: string
                 tolerations:
@@ -809,7 +818,7 @@
       storage: true
       subresources:
         status: {}
-    - name: v1beta3
+    - name: v1beta4
       schema:
         openAPIV3Schema:
           properties:
diff --git a/helm-charts/gerrit-operator-crds/templates/gitgcs.gerritoperator.google.com-v1.yml b/helm-charts/gerrit-operator-crds/templates/gitgcs.gerritoperator.google.com-v1.yml
index c5d683d..8c6ac60 100644
--- a/helm-charts/gerrit-operator-crds/templates/gitgcs.gerritoperator.google.com-v1.yml
+++ b/helm-charts/gerrit-operator-crds/templates/gitgcs.gerritoperator.google.com-v1.yml
@@ -13,7 +13,7 @@
     singular: gitgarbagecollection
   scope: Namespaced
   versions:
-    - name: v1beta4
+    - name: v1beta5
       schema:
         openAPIV3Schema:
           properties:
@@ -390,7 +390,7 @@
       storage: true
       subresources:
         status: {}
-    - name: v1beta3
+    - name: v1beta4
       schema:
         openAPIV3Schema:
           properties:
@@ -404,6 +404,12 @@
                   items:
                     type: string
                   type: array
+                disableBitmapIndex:
+                  type: boolean
+                disablePackRefs:
+                  type: boolean
+                preservePacks:
+                  type: boolean
                 resources:
                   properties:
                     claims:
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 5f11c30..c81266d 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: v1beta4
+    - name: v1beta5
       schema:
         openAPIV3Schema:
           properties:
@@ -653,7 +653,7 @@
       storage: true
       subresources:
         status: {}
-    - name: v1beta3
+    - name: v1beta4
       schema:
         openAPIV3Schema:
           properties:
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/Constants.java b/operator/src/main/java/com/google/gerrit/k8s/operator/Constants.java
index cd2c359..5692cd4 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/Constants.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/Constants.java
@@ -17,7 +17,7 @@
 import com.google.inject.AbstractModule;
 
 public class Constants extends AbstractModule {
-  public static final String VERSION = "v1beta4";
+  public static final String VERSION = "v1beta5";
   public static final String[] CUSTOM_RESOURCES =
       new String[] {"GerritCluster", "Gerrit", "Receiver", "GerritNetwork", "GitGarbageCollection"};
 }
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/cluster/GerritClusterSpec.java b/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/cluster/GerritClusterSpec.java
index d6d8511..4af8ef6 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/cluster/GerritClusterSpec.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/cluster/GerritClusterSpec.java
@@ -17,6 +17,7 @@
 import com.google.gerrit.k8s.operator.api.model.gerrit.GerritTemplate;
 import com.google.gerrit.k8s.operator.api.model.receiver.ReceiverTemplate;
 import com.google.gerrit.k8s.operator.api.model.shared.ContainerImageConfig;
+import com.google.gerrit.k8s.operator.api.model.shared.FluentBitSidecarConfig;
 import com.google.gerrit.k8s.operator.api.model.shared.GerritClusterIngressConfig;
 import com.google.gerrit.k8s.operator.api.model.shared.GerritStorageConfig;
 import com.google.gerrit.k8s.operator.api.model.shared.GlobalRefDbConfig;
@@ -32,6 +33,7 @@
   private String serverId = "";
   private List<GerritTemplate> gerrits = new ArrayList<>();
   private ReceiverTemplate receiver;
+  private FluentBitSidecarConfig fluentBitSidecar = new FluentBitSidecarConfig();
 
   public GerritStorageConfig getStorage() {
     return storage;
@@ -88,4 +90,12 @@
   public void setReceiver(ReceiverTemplate receiver) {
     this.receiver = receiver;
   }
+
+  public FluentBitSidecarConfig getFluentBitSidecar() {
+    return fluentBitSidecar;
+  }
+
+  public void setFluentBitSidecar(FluentBitSidecarConfig fluentBitSidecar) {
+    this.fluentBitSidecar = fluentBitSidecar;
+  }
 }
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/gerrit/GerritSpec.java b/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/gerrit/GerritSpec.java
index 94ba649..ad4b279 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/gerrit/GerritSpec.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/gerrit/GerritSpec.java
@@ -15,6 +15,7 @@
 package com.google.gerrit.k8s.operator.api.model.gerrit;
 
 import com.google.gerrit.k8s.operator.api.model.shared.ContainerImageConfig;
+import com.google.gerrit.k8s.operator.api.model.shared.FluentBitSidecarConfig;
 import com.google.gerrit.k8s.operator.api.model.shared.GerritStorageConfig;
 import com.google.gerrit.k8s.operator.api.model.shared.GlobalRefDbConfig;
 import com.google.gerrit.k8s.operator.api.model.shared.IngressConfig;
@@ -25,6 +26,7 @@
   private IngressConfig ingress = new IngressConfig();
   private GlobalRefDbConfig refdb = new GlobalRefDbConfig();
   private String serverId = "";
+  private FluentBitSidecarConfig fluentBitSidecar = new FluentBitSidecarConfig();
 
   public GerritSpec() {}
 
@@ -71,4 +73,12 @@
   public void setServerId(String serverId) {
     this.serverId = serverId;
   }
+
+  public FluentBitSidecarConfig getFluentBitSidecar() {
+    return fluentBitSidecar;
+  }
+
+  public void setFluentBitSidecar(FluentBitSidecarConfig fluentBitSidecar) {
+    this.fluentBitSidecar = fluentBitSidecar;
+  }
 }
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/gerrit/GerritTemplate.java b/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/gerrit/GerritTemplate.java
index ea26800..493c011 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/gerrit/GerritTemplate.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/gerrit/GerritTemplate.java
@@ -74,6 +74,7 @@
     ingressConfig.setSsh(gerritCluster.getSpec().getIngress().getSsh());
     gerritSpec.setIngress(ingressConfig);
     gerritSpec.setServerId(getServerId(gerritCluster));
+    gerritSpec.setFluentBitSidecar(gerritCluster.getSpec().getFluentBitSidecar());
     if (getSpec().isHighlyAvailablePrimary()) {
       GlobalRefDbConfig refdb = gerritCluster.getSpec().getRefdb();
       if (refdb.getZookeeper() != null && refdb.getZookeeper().getRootNode() == null) {
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/shared/FluentBitSidecarConfig.java b/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/shared/FluentBitSidecarConfig.java
new file mode 100644
index 0000000..c2380de
--- /dev/null
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/api/model/shared/FluentBitSidecarConfig.java
@@ -0,0 +1,54 @@
+// Copyright (C) 2024 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.api.model.shared;
+
+public class FluentBitSidecarConfig {
+  private String image = "fluent/fluent-bit:latest";
+  private String config = """
+      [OUTPUT]
+        Name            stdout
+        Match           *
+      [FILTER]
+        Name              modify
+        Match             *
+        Add k8s.pod.name  ${POD_NAME}\n
+      """;
+
+  private boolean enabled;
+
+  public boolean isEnabled() {
+    return enabled;
+  }
+
+  public void isEnabled(boolean enabled) {
+    this.enabled = enabled;
+  }
+
+  public String getImage() {
+    return image;
+  }
+
+  public void setImage(String image) {
+    this.image = image;
+  }
+
+  public String getConfig() {
+    return config;
+  }
+
+  public void setConfig(String config) {
+    this.config = config;
+  }
+}
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/FluentBitConfigMap.java b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/FluentBitConfigMap.java
new file mode 100644
index 0000000..7945f6a
--- /dev/null
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/FluentBitConfigMap.java
@@ -0,0 +1,61 @@
+// Copyright (C) 2024 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.api.model.cluster.GerritCluster;
+import com.google.gerrit.k8s.operator.api.model.gerrit.Gerrit;
+import io.fabric8.kubernetes.api.model.ConfigMap;
+import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
+import io.javaoperatorsdk.operator.api.reconciler.Context;
+import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
+import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
+import java.util.Map;
+
+@KubernetesDependent(resourceDiscriminator = FluentBitConfigMapDiscriminator.class)
+public class FluentBitConfigMap extends CRUDKubernetesDependentResource<ConfigMap, Gerrit> {
+
+  public FluentBitConfigMap() {
+    super(ConfigMap.class);
+  }
+
+  public static String getName(Gerrit gerrit) {
+    return String.format("%s-fluentbit-configmap", gerrit.getMetadata().getName());
+  }
+
+  @Override
+  protected ConfigMap desired(Gerrit gerrit, Context<Gerrit> context) {
+    String customConfig = gerrit.getSpec().getFluentBitSidecar().getConfig();
+    String config = """
+        [INPUT]
+          Name            tail
+          Path            /var/mnt/logs/*log
+          Tag             <log_name>
+          Tag_Regex       ^\\/var\\/mnt\\/logs\\/(?<log_name>[^*]+)\n
+        """
+        + customConfig;
+
+    return new ConfigMapBuilder()
+        .withApiVersion("v1")
+        .withNewMetadata()
+        .withName(getName(gerrit))
+        .withNamespace(gerrit.getMetadata().getNamespace())
+        .withLabels(
+            GerritCluster.getLabels(
+                gerrit.getMetadata().getName(), getName(gerrit), this.getClass().getSimpleName()))
+        .endMetadata()
+        .withData(Map.of("fluent-bit.conf", config))
+        .build();
+  }
+}
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/FluentBitConfigMapDiscriminator.java b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/FluentBitConfigMapDiscriminator.java
new file mode 100644
index 0000000..0c2684b
--- /dev/null
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/cluster/dependent/FluentBitConfigMapDiscriminator.java
@@ -0,0 +1,36 @@
+// Copyright (C) 2024 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.api.model.gerrit.Gerrit;
+import io.fabric8.kubernetes.api.model.ConfigMap;
+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 FluentBitConfigMapDiscriminator implements ResourceDiscriminator<ConfigMap, Gerrit> {
+  @Override
+  public Optional<ConfigMap> distinguish(
+      Class<ConfigMap> resource, Gerrit primary, Context<Gerrit> context) {
+    InformerEventSource<ConfigMap, Gerrit> ies =
+        (InformerEventSource<ConfigMap, Gerrit>)
+            context.eventSourceRetriever().getResourceEventSourceFor(ConfigMap.class);
+
+    return ies.get(
+        new ResourceID(FluentBitConfigMap.getName(primary), primary.getMetadata().getNamespace()));
+  }
+}
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritReconciler.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritReconciler.java
index 1baaf05..279e2e3 100644
--- a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritReconciler.java
+++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/GerritReconciler.java
@@ -21,6 +21,7 @@
 import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.k8s.operator.api.model.gerrit.Gerrit;
 import com.google.gerrit.k8s.operator.api.model.gerrit.GerritStatus;
+import com.google.gerrit.k8s.operator.cluster.dependent.FluentBitConfigMap;
 import com.google.gerrit.k8s.operator.gerrit.dependent.GerritConfigMap;
 import com.google.gerrit.k8s.operator.gerrit.dependent.GerritInitConfigMap;
 import com.google.gerrit.k8s.operator.gerrit.dependent.GerritSecret;
@@ -58,6 +59,10 @@
           type = GerritSecret.class,
           useEventSourceWithName = GERRIT_SECRET_EVENT_SOURCE),
       @Dependent(
+          name = "fluentbit-configmap",
+          type = FluentBitConfigMap.class,
+          useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE),
+      @Dependent(
           name = "gerrit-configmap",
           type = GerritConfigMap.class,
           useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE),
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 cb7f335..72b3f86 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
@@ -23,9 +23,11 @@
 import com.google.gerrit.k8s.operator.api.model.gerrit.GerritModuleData;
 import com.google.gerrit.k8s.operator.api.model.shared.ContainerImageConfig;
 import com.google.gerrit.k8s.operator.api.model.shared.NfsWorkaroundConfig;
+import com.google.gerrit.k8s.operator.cluster.dependent.FluentBitConfigMap;
 import com.google.gerrit.k8s.operator.gerrit.GerritReconciler;
 import com.google.gerrit.k8s.operator.util.CRUDReconcileAddKubernetesDependentResource;
 import io.fabric8.kubernetes.api.model.Container;
+import io.fabric8.kubernetes.api.model.ContainerBuilder;
 import io.fabric8.kubernetes.api.model.ContainerPort;
 import io.fabric8.kubernetes.api.model.EnvVar;
 import io.fabric8.kubernetes.api.model.EnvVarBuilder;
@@ -69,6 +71,19 @@
     StatefulSetBuilder stsBuilder = new StatefulSetBuilder();
 
     List<Container> initContainers = new ArrayList<>();
+    List<Container> sidecarContainers = new ArrayList<>();
+
+    if (gerrit.getSpec().getFluentBitSidecar().isEnabled()) {
+      Container fluentBitSidecarContainer =
+          new ContainerBuilder()
+              .withName("fluentbit-logger")
+              .withEnv(getEnvVars(gerrit))
+              .withImagePullPolicy(gerrit.getSpec().getContainerImages().getImagePullPolicy())
+              .withImage(gerrit.getSpec().getFluentBitSidecar().getImage())
+              .addAllToVolumeMounts(getFluentbitVolumeMounts(gerrit))
+              .build();
+      sidecarContainers.add(fluentBitSidecarContainer);
+    }
 
     NfsWorkaroundConfig nfsWorkaround =
         gerrit.getSpec().getStorage().getStorageClasses().getNfsWorkaround();
@@ -170,6 +185,7 @@
         .withLivenessProbe(gerrit.getSpec().getLivenessProbe())
         .addAllToVolumeMounts(getVolumeMounts(gerrit, false))
         .endContainer()
+        .addAllToContainers(sidecarContainers)
         .addAllToVolumes(getVolumes(gerrit))
         .endSpec()
         .endTemplate()
@@ -260,6 +276,16 @@
       volumes.add(GerritCluster.getNfsImapdConfigVolume());
     }
 
+    if (gerrit.getSpec().getFluentBitSidecar().isEnabled()) {
+      volumes.add(
+          new VolumeBuilder()
+              .withName(FluentBitConfigMap.getName(gerrit))
+              .withNewConfigMap()
+              .withName(FluentBitConfigMap.getName(gerrit))
+              .endConfigMap()
+              .build());
+    }
+
     return volumes;
   }
 
@@ -318,6 +344,19 @@
     return volumeMounts;
   }
 
+  private Set<VolumeMount> getFluentbitVolumeMounts(Gerrit gerrit) {
+    Set<VolumeMount> volumeMounts = new HashSet<>();
+    volumeMounts.add(
+        new VolumeMountBuilder()
+            .withName(FluentBitConfigMap.getName(gerrit))
+            .withMountPath("/fluent-bit/etc/")
+            .build());
+
+    volumeMounts.add(GerritCluster.getLogsVolumeMount());
+
+    return volumeMounts;
+  }
+
   private List<ContainerPort> getContainerPorts(Gerrit gerrit) {
     List<ContainerPort> containerPorts = new ArrayList<>();
     containerPorts.add(new ContainerPort(HTTP_PORT, null, null, "http", null));
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_default.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_default.yaml
index c43f0db..b8f691a 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_default.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_default.yaml
@@ -14,7 +14,7 @@
   annotations:
     app.kubernetes.io/managed-by: gerrit-operator
   ownerReferences:
-  - apiVersion: gerritoperator.google.com/v1beta4
+  - apiVersion: gerritoperator.google.com/v1beta5
     kind: GitGarbageCollection
     name: gitgc
     uid: abcd1234
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_nfs_workaround.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_nfs_workaround.yaml
index 9ef6e18..6d4d567 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_nfs_workaround.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_nfs_workaround.yaml
@@ -14,7 +14,7 @@
   annotations:
     app.kubernetes.io/managed-by: gerrit-operator
   ownerReferences:
-  - apiVersion: gerritoperator.google.com/v1beta4
+  - apiVersion: gerritoperator.google.com/v1beta5
     kind: GitGarbageCollection
     name: gitgc
     uid: abcd1234
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_options_enabled.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_options_enabled.yaml
index de2ed0f..ee21700 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_options_enabled.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_all_options_enabled.yaml
@@ -14,7 +14,7 @@
   annotations:
     app.kubernetes.io/managed-by: gerrit-operator
   ownerReferences:
-  - apiVersion: gerritoperator.google.com/v1beta4
+  - apiVersion: gerritoperator.google.com/v1beta5
     kind: GitGarbageCollection
     name: gitgc
     uid: abcd1234
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_selected_default.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_selected_default.yaml
index d8a8c65..ff2ec69 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_selected_default.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_selected_default.yaml
@@ -14,7 +14,7 @@
   annotations:
     app.kubernetes.io/managed-by: gerrit-operator
   ownerReferences:
-  - apiVersion: gerritoperator.google.com/v1beta4
+  - apiVersion: gerritoperator.google.com/v1beta5
     kind: GitGarbageCollection
     name: gitgc
     uid: abcd1234
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_selected_options_enabled.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_selected_options_enabled.yaml
index 00c711b..4e84f67 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_selected_options_enabled.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/dependent/cronjob_selected_options_enabled.yaml
@@ -14,7 +14,7 @@
   annotations:
     app.kubernetes.io/managed-by: gerrit-operator
   ownerReferences:
-  - apiVersion: gerritoperator.google.com/v1beta4
+  - apiVersion: gerritoperator.google.com/v1beta5
     kind: GitGarbageCollection
     name: gitgc
     uid: abcd1234
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gerritcluster_minimal.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gerritcluster_minimal.yaml
index 5420ae8..658ce31 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gerritcluster_minimal.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gerritcluster_minimal.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritCluster
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gerritcluster_nfs_workaround.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gerritcluster_nfs_workaround.yaml
index 45d41a9..870358e 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gerritcluster_nfs_workaround.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gerritcluster_nfs_workaround.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritCluster
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_all_default.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_all_default.yaml
index 3ef8ac2..5bf64f7 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_all_default.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_all_default.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GitGarbageCollection
 metadata:
   name: gitgc
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_all_options_enabled.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_all_options_enabled.yaml
index 294a5ea..c1f9bc5 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_all_options_enabled.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_all_options_enabled.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GitGarbageCollection
 metadata:
   name: gitgc
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_selected_default.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_selected_default.yaml
index 2ce1783..121cacd 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_selected_default.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_selected_default.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GitGarbageCollection
 metadata:
   name: gitgc
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_selected_options_enabled.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_selected_options_enabled.yaml
index affe32e..b9eeffd 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_selected_options_enabled.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gitgc/gitgc_selected_options_enabled.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GitGarbageCollection
 metadata:
   name: gitgc
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary.yaml
index 775c4c1..91ecd68 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica.yaml
index 0bd4346..352f543 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica_ssh.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica_ssh.yaml
index 4a01467..87b6c0c 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica_ssh.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica_ssh.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica_tls.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica_tls.yaml
index 8d13542..00d36f8 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica_tls.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_replica_tls.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_ssh.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_ssh.yaml
index 79bda12..a2e9851 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_ssh.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_primary_ssh.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica.yaml
index e355a44..8a44a6d 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica_ssh.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica_ssh.yaml
index 991a2b1..35aa204 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica_ssh.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica_ssh.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica_tls.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica_tls.yaml
index c0b1753..2f2dadd 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica_tls.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_receiver_replica_tls.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_replica.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_replica.yaml
index 8792ffa..00611ad 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_replica.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_replica.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_replica_ssh.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_replica_ssh.yaml
index b29b6a9..0d21303 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_replica_ssh.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/network/gerritnetwork_replica_ssh.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: GerritNetwork
 metadata:
   name: gerrit
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/receiver/receiver.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/receiver/receiver.yaml
index 52f124b..834bc2f 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/receiver/receiver.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/receiver/receiver.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: Receiver
 metadata:
   name: receiver
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/receiver/receiver_minimal.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/receiver/receiver_minimal.yaml
index bc62bd8..953b4a3 100644
--- a/operator/src/test/resources/com/google/gerrit/k8s/operator/receiver/receiver_minimal.yaml
+++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/receiver/receiver_minimal.yaml
@@ -1,4 +1,4 @@
-apiVersion: "gerritoperator.google.com/v1beta4"
+apiVersion: "gerritoperator.google.com/v1beta5"
 kind: Receiver
 metadata:
   name: receiver