[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