I’m trying to deploy MongoDB with the Percona MongoDB Operator and am facing an issue when defining a PVC for use with the sidecar.
I defined the sidecarPVCs in the PerconaServerMongoDB CRD using HELM, in the replicaSets section.
...
replicaSets:
- name: rs0
...
sidecarPVCs:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: filebeat-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: gp3
volumeMode: Filesystem
...
After creating the StatefulSet, I noticed the Pod wasn’t launching. I discovered an error indicating an incorrect PVC name, and found that the metadata.name field in the Volume Claims section of the StatefulSet is empty.
> kubectl describe sts/mongodb-test-rs0
...
Volume Claims:
Name: mongod-data
StorageClass: gp3
Labels: <none>
Annotations: <none>
Capacity: 8Gi
Access Modes: [ReadWriteOnce]
Name: <--- EMPTY NAME
StorageClass: gp3
Labels: <none>
Annotations: <none>
Capacity: 1Gi
Access Modes: [ReadWriteOnce]
> kubectl describe PerconaServerMongoDB/mongodb-test
...
Name: rs0
Sidecar PV Cs:
API Version: v1
Kind: PersistentVolumeClaim
Metadata: <---- EMPTY METADATA
Spec:
Access Modes:
ReadWriteOnce
Resources:
Requests:
Storage: 1Gi
Storage Class Name: gp3
Volume Mode: Filesystem
I think this issue is related to the sidecarPVCs.metadata definition in the CRD.
It appears the metadata type is defined as an object and the x-kubernetes-preserve-unknown-fields: true
option isn’t set, potentially leading to field pruning.
Can you please help verify this issue? Thank you.