Proposal
From the CR standpoint both in the PerconaPGCluster resource and the upstream PostgresCluster image fields are optional - even though in practice they are not, and the error about missing images only appreas in the events of the upstream resource.
In the upstream the feature to control the default images through env variables was introduced and the default operator installation comes with these predefined.
Downstream Percona has some issues with this approach
- Certified images definitions are NOT included in the default bundle
- There is no concept of
crVersion in the upstream, so the upstream solution defines default images once, not per crVersion
- Percona has more/other images such as PMM, or configurable initContainer and extensions installer image
I would like to propose a solution where operator would automatically pick certified images for a given crVersion which would make the image fields actually optional instead of silently erroring (warning events are present only on the upstream resource). The solution would be consisting of:
- An YAML file embed withing the binary containing the per
crVersion image definitions. This would need to either be automated or maintained once per release
- An option to partially or fully override the images or only registry using either a configmap or a mounted yaml (mounted to the operator deployment)
- Possibility of defining images on the CR and backwards compatibility would be preserved
Use-Case
It would reduce a maintenance burden of maintainingg the image versions and manually checking Percona documentation for certified images which correspond to a given crVersion.
Given the presence of the MR for supporting official postgres images, it would also be possible to easily switch to these by default
Is this a feature you are interested in implementing yourself?
Yes
Anything else?
A draft, not code-ready proposal is present in: #1640
Proposal
From the CR standpoint both in the
PerconaPGClusterresource and the upstreamPostgresClusterimagefields are optional - even though in practice they are not, and the error about missing images only appreas in the events of the upstream resource.In the upstream the feature to control the default images through env variables was introduced and the default operator installation comes with these predefined.
Downstream Percona has some issues with this approach
crVersionin the upstream, so the upstream solution defines default images once, not percrVersionI would like to propose a solution where operator would automatically pick certified images for a given crVersion which would make the
imagefields actually optional instead of silently erroring (warning events are present only on the upstream resource). The solution would be consisting of:crVersionimage definitions. This would need to either be automated or maintained once per releaseUse-Case
It would reduce a maintenance burden of maintainingg the image versions and manually checking Percona documentation for certified images which correspond to a given crVersion.
Given the presence of the MR for supporting official postgres images, it would also be possible to easily switch to these by default
Is this a feature you are interested in implementing yourself?
Yes
Anything else?
A draft, not code-ready proposal is present in: #1640