@@ -6,6 +6,7 @@ package config
66
77import (
88 "os"
9+ "strings"
910 "testing"
1011
1112 "gotest.tools/v3/assert"
@@ -201,57 +202,142 @@ func TestPostgresContainerImage(t *testing.T) {
201202}
202203
203204func TestVerifyImageValues (t * testing.T ) {
204- cluster := & v1beta1.PostgresCluster {}
205-
206- verifyImageCheck := func (t * testing.T , envVar , errString string , cluster * v1beta1.PostgresCluster ) {
207- t .Setenv (envVar , "" )
208- os .Unsetenv (envVar )
209- err := VerifyImageValues (cluster )
210- assert .ErrorContains (t , err , errString )
211- }
212-
213205 t .Run ("crunchy-postgres" , func (t * testing.T ) {
206+ cluster := & v1beta1.PostgresCluster {}
214207 cluster .Spec .PostgresVersion = 14
215- verifyImageCheck (t , "RELATED_IMAGE_POSTGRES_14" , "crunchy-postgres" , cluster )
208+ t .Setenv ("RELATED_IMAGE_POSTGRES_14" , "" )
209+ os .Unsetenv ("RELATED_IMAGE_POSTGRES_14" )
210+
211+ err := VerifyImageValues (cluster )
212+ assert .ErrorContains (t , err , "crunchy-postgres" )
216213 })
217214
218215 t .Run ("crunchy-postgres-gis" , func (t * testing.T ) {
216+ cluster := & v1beta1.PostgresCluster {}
217+ cluster .Spec .PostgresVersion = 14
219218 cluster .Spec .PostGISVersion = "3.3"
220- verifyImageCheck (t , "RELATED_IMAGE_POSTGRES_14_GIS_3.3" , "crunchy-postgres-gis" , cluster )
219+ t .Setenv ("RELATED_IMAGE_POSTGRES_14_GIS_3.3" , "" )
220+ os .Unsetenv ("RELATED_IMAGE_POSTGRES_14_GIS_3.3" )
221+
222+ err := VerifyImageValues (cluster )
223+ assert .ErrorContains (t , err , "crunchy-postgres-gis" )
221224 })
222225
223- // K8SPG-710: Image check will fail without a backup section in PostgresCluster
224- // t.Run("crunchy-pgbackrest", func(t *testing.T) {
225- // verifyImageCheck(t, "RELATED_IMAGE_PGBACKREST", "crunchy-pgbackrest", cluster)
226- // })
226+ t .Run ("crunchy-pgbackrest-enabled" , func (t * testing.T ) {
227+ cluster := & v1beta1.PostgresCluster {}
228+ cluster .Spec .PostgresVersion = 14
229+ enabled := true
230+ cluster .Spec .Backups .Enabled = & enabled
231+ t .Setenv ("RELATED_IMAGE_PGBACKREST" , "" )
232+ os .Unsetenv ("RELATED_IMAGE_PGBACKREST" )
233+
234+ err := VerifyImageValues (cluster )
235+ assert .ErrorContains (t , err , "crunchy-pgbackrest" )
236+ })
237+
238+ t .Run ("crunchy-pgbackrest-disabled" , func (t * testing.T ) {
239+ cluster := & v1beta1.PostgresCluster {}
240+ cluster .Spec .PostgresVersion = 14
241+ enabled := false
242+ cluster .Spec .Backups .Enabled = & enabled
243+ t .Setenv ("RELATED_IMAGE_PGBACKREST" , "" )
244+ os .Unsetenv ("RELATED_IMAGE_PGBACKREST" )
245+
246+ err := VerifyImageValues (cluster )
247+ assert .Assert (t , ! strings .Contains (err .Error (), "crunchy-pgbackrest" ))
248+ })
227249
228250 t .Run ("crunchy-pgbouncer" , func (t * testing.T ) {
229- cluster .Spec .Proxy = new (v1beta1.PostgresProxySpec )
230- cluster .Spec .Proxy .PGBouncer = new (v1beta1.PGBouncerPodSpec )
231- verifyImageCheck (t , "RELATED_IMAGE_PGBOUNCER" , "crunchy-pgbouncer" , cluster )
251+ cluster := & v1beta1.PostgresCluster {}
252+ cluster .Spec .PostgresVersion = 14
253+ cluster .Spec .Proxy = & v1beta1.PostgresProxySpec {
254+ PGBouncer : & v1beta1.PGBouncerPodSpec {},
255+ }
256+ t .Setenv ("RELATED_IMAGE_PGBOUNCER" , "" )
257+ os .Unsetenv ("RELATED_IMAGE_PGBOUNCER" )
258+
259+ err := VerifyImageValues (cluster )
260+ assert .ErrorContains (t , err , "crunchy-pgbouncer" )
232261 })
233262
234263 t .Run ("crunchy-pgadmin4" , func (t * testing.T ) {
235- cluster .Spec .UserInterface = new (v1beta1.UserInterfaceSpec )
236- cluster .Spec .UserInterface .PGAdmin = new (v1beta1.PGAdminPodSpec )
237- verifyImageCheck (t , "RELATED_IMAGE_PGADMIN" , "crunchy-pgadmin4" , cluster )
264+ cluster := & v1beta1.PostgresCluster {}
265+ cluster .Spec .PostgresVersion = 14
266+ cluster .Spec .UserInterface = & v1beta1.UserInterfaceSpec {
267+ PGAdmin : & v1beta1.PGAdminPodSpec {},
268+ }
269+ t .Setenv ("RELATED_IMAGE_PGADMIN" , "" )
270+ os .Unsetenv ("RELATED_IMAGE_PGADMIN" )
271+
272+ err := VerifyImageValues (cluster )
273+ assert .ErrorContains (t , err , "crunchy-pgadmin4" )
238274 })
239275
240276 t .Run ("crunchy-postgres-exporter" , func (t * testing.T ) {
241- cluster .Spec .Monitoring = new (v1beta1.MonitoringSpec )
242- cluster .Spec .Monitoring .PGMonitor = new (v1beta1.PGMonitorSpec )
243- cluster .Spec .Monitoring .PGMonitor .Exporter = new (v1beta1.ExporterSpec )
244- verifyImageCheck (t , "RELATED_IMAGE_PGEXPORTER" , "crunchy-postgres-exporter" , cluster )
277+ cluster := & v1beta1.PostgresCluster {}
278+ cluster .Spec .PostgresVersion = 14
279+ cluster .Spec .Monitoring = & v1beta1.MonitoringSpec {
280+ PGMonitor : & v1beta1.PGMonitorSpec {
281+ Exporter : & v1beta1.ExporterSpec {},
282+ },
283+ }
284+ t .Setenv ("RELATED_IMAGE_PGEXPORTER" , "" )
285+ os .Unsetenv ("RELATED_IMAGE_PGEXPORTER" )
286+
287+ err := VerifyImageValues (cluster )
288+ assert .ErrorContains (t , err , "crunchy-postgres-exporter" )
245289 })
246290
247- t .Run ("multiple images" , func (t * testing.T ) {
291+ t .Run ("multiple missing images" , func (t * testing.T ) {
292+ enabled := true
293+ cluster := & v1beta1.PostgresCluster {}
294+ cluster .Spec .PostgresVersion = 14
295+ cluster .Spec .PostGISVersion = "3.3"
296+ cluster .Spec .Backups .Enabled = & enabled
297+ cluster .Spec .Proxy = & v1beta1.PostgresProxySpec {
298+ PGBouncer : & v1beta1.PGBouncerPodSpec {},
299+ }
300+ cluster .Spec .UserInterface = & v1beta1.UserInterfaceSpec {
301+ PGAdmin : & v1beta1.PGAdminPodSpec {},
302+ }
303+ cluster .Spec .Monitoring = & v1beta1.MonitoringSpec {
304+ PGMonitor : & v1beta1.PGMonitorSpec {
305+ Exporter : & v1beta1.ExporterSpec {},
306+ },
307+ }
308+
248309 err := VerifyImageValues (cluster )
249310 assert .ErrorContains (t , err , "crunchy-postgres-gis" )
250- // K8SPG-710: Image check will fail without a backup section in PostgresCluster
251- // assert.ErrorContains(t, err, "crunchy-pgbackrest")
311+ assert .ErrorContains (t , err , "crunchy-pgbackrest" )
252312 assert .ErrorContains (t , err , "crunchy-pgbouncer" )
253313 assert .ErrorContains (t , err , "crunchy-pgadmin4" )
254314 assert .ErrorContains (t , err , "crunchy-postgres-exporter" )
255315 })
256316
317+ t .Run ("all images set" , func (t * testing.T ) {
318+ enabled := true
319+ cluster := & v1beta1.PostgresCluster {}
320+ cluster .Spec .PostgresVersion = 14
321+ cluster .Spec .PostGISVersion = "3.3"
322+ cluster .Spec .Backups .Enabled = & enabled
323+ cluster .Spec .Proxy = & v1beta1.PostgresProxySpec {
324+ PGBouncer : & v1beta1.PGBouncerPodSpec {},
325+ }
326+ cluster .Spec .UserInterface = & v1beta1.UserInterfaceSpec {
327+ PGAdmin : & v1beta1.PGAdminPodSpec {},
328+ }
329+ cluster .Spec .Monitoring = & v1beta1.MonitoringSpec {
330+ PGMonitor : & v1beta1.PGMonitorSpec {
331+ Exporter : & v1beta1.ExporterSpec {},
332+ },
333+ }
334+
335+ t .Setenv ("RELATED_IMAGE_POSTGRES_14_GIS_3.3" , "img" )
336+ t .Setenv ("RELATED_IMAGE_PGBACKREST" , "img" )
337+ t .Setenv ("RELATED_IMAGE_PGBOUNCER" , "img" )
338+ t .Setenv ("RELATED_IMAGE_PGADMIN" , "img" )
339+ t .Setenv ("RELATED_IMAGE_PGEXPORTER" , "img" )
340+
341+ assert .NilError (t , VerifyImageValues (cluster ))
342+ })
257343}
0 commit comments