Major version upgrade must never change extension version
Summary
When performing a major version upgrade the extension version must never change to avoid any error or malfunctioning. The user should be informed that the extension version does not exits for the specified target postgres major version. The only exception are those extensions that target the exact postgres version.
Current Behaviour
When a major version upgrade is performed an extension version that does not target an exact postgres version might be changed if such extension version does not exists for the target postgres major version.
Steps to reproduce
- Create a cluster for postgres 14 with pg_repack 1.4.7
- Perform major version upgrade of the cluster to postgres 15
Expected Behaviour
When a major version upgrade is performed an extension version that does not target an exact postgres version can not be changed if such extension version does not exists for the target postgres major version. An error is returned instead while creating the SGDbOps.
Possible Solution
Modify the mutating webhook for extensions so that the extension version can not be changed when already set.
Environment
- StackGres version: 1.4.4
- Kubernetes version: ?
- Cloud provider or hardware configuration: ?