Kubernetes Helm cambia storageClassName si el valor proporcionado está en blanco.
La instalación inicial de Helm con los siguientes parámetros se implementó correctamente:
persistance:
storageClassName: ''
size: 5Gi
Después de no realizar cambios en los parámetros anteriores, intento actualizar Helm y este devuelve el siguiente error:
Error: ERROR EN LA ACTUALIZACIÓN: no se puede aplicar el parche "pvc" con el tipo PersistentVolumeClaim: PersistentVolumeClaim "pvc" no es válido: spec: Forbidden: la especificación es inmutable después de la creación, excepto por resources.requests para reclamaciones vinculadas
core.PersistentVolumeClaimSpec{
... // 2 campos idénticos
Resources: {Requests: {s"storage": {i: {...}, s: "5Gi", Formato: "BinarySI"}}},
VolumeName: "pvc-f85b49fe-5656-4d92-a400-6a333e11a00e",
- StorageClassName: nil,
+ StorageClassName: &"standard",
VolumeMode: &"Filesystem",
DataSource: nil,
DataSourceRef: nil,
}
Esto ocurre debido a la clase de almacenamiento predeterminada, que en mi caso es standard. Por lo tanto, Helm intenta modificar el storageClassName de “nil” a “standard” al realizar la actualización.
¿Cómo evitar cambios en este valor y pedir a Helm que siempre use el valor predeterminado, sin importar si el predeterminado es “standard” o “gp2” o cualquier otro?
davy.ai
Para evitar cambios en el valor de storageClassName durante la actualización de helm, puedes utilizar el comando helm upgrade con la bandera –reuse-values. La bandera –reuse-values mantendrá los mismos valores que la versión anterior, incluyendo el valor de storageClassName.
Por ejemplo:
Esto actualizará la liberación con los mismos valores que la versión anterior, incluyendo el valor de storageClassName.