1
1
# End-to-End Tests
2
2
3
- CloudNativePG operator is automatically tested after each
4
- commit via a suite of ** End-to-end (E2E) tests** . It ensures that
5
- the operator correctly deploys and manages the PostgreSQL clusters.
3
+ CloudNativePG is automatically tested after each
4
+ commit via a suite of ** End-to-end (E2E) tests** , which ensures that
5
+ the operator correctly deploys and manages PostgreSQL clusters.
6
6
7
7
Moreover, the following Kubernetes versions are tested for each commit,
8
- ensuring failure and bugs detection at an early stage of the development
9
- process:
8
+ helping detect bugs at an early stage of the development process:
10
9
11
10
* 1.25
12
11
* 1.24
@@ -16,7 +15,7 @@ process:
16
15
17
16
The following PostgreSQL versions are tested:
18
17
19
- * PostgreSQL 15 beta ( ** not for production!!! ** )
18
+ * PostgreSQL 15
20
19
* PostgreSQL 14
21
20
* PostgreSQL 13
22
21
* PostgreSQL 12
@@ -27,34 +26,66 @@ For each tested version of Kubernetes and PostgreSQL, a Kubernetes
27
26
cluster is created using [ kind] ( https://kind.sigs.k8s.io/ ) ,
28
27
and the following suite of E2E tests are performed on that cluster:
29
28
30
- * Installation of the operator;
31
- * Creation of a ` Cluster ` ;
32
- * Usage of a persistent volume for data storage;
33
- * Connection via services, including read-only;
34
- * Connection via user-provided server and/or client certificates;
35
- * Scale-up and scale-down of a ` Cluster ` ;
36
- * Failover;
37
- * Switchover;
38
- * Manage PostgreSQL configuration changes;
39
- * Rolling updates when changing PostgreSQL images;
40
- * Backup and ScheduledBackups execution;
41
- * Backup and ScheduledBackups execution using Barman Cloud on Azure blob storage;
42
- * Synchronous replication;
43
- * Restore from backup;
44
- * Restore from backup using Barman Cloud on Azure blob storage;
45
- * Pod affinity using ` NodeSelector ` ;
46
- * Metrics collection;
47
- * JSON log format;
48
- * Operator configuration via ConfigMap;
49
- * Operator pod deletion;
50
- * Operator pod eviction;
51
- * Operator upgrade;
52
- * Operator High Availability;
53
- * Node drain;
54
- * Primary endpoint switch in case of failover in less than 10 seconds;
55
- * Primary endpoint switch in case of switchover in less than 20 seconds;
56
- * Recover from a degraded state in less than 60 seconds;
57
- * Physical replica clusters;
58
- * Storage expansion;
59
- * Data corruption;
60
- * Replication Slots;
29
+ - ** Basic:**
30
+ * Installation of the operator;
31
+ * Creation of a Cluster;
32
+ * Usage of a persistent volume for data storage;
33
+ - ** Service connectivity:**
34
+ * Connection via services, including read-only;
35
+ * Connection via user-provided server and/or client certificates;
36
+ * PgBouncer;
37
+ - ** Self-healing:**
38
+ * Failover;
39
+ * Switchover;
40
+ * Primary endpoint switch in case of failover in less than 10 seconds;
41
+ * Primary endpoint switch in case of switchover in less than 20 seconds;
42
+ * Recover from a degraded state in less than 60 seconds;
43
+ * PVC Deletion;
44
+ - ** Backup and Restore:**
45
+ * Backup and ScheduledBackups execution using Barman Cloud on S3;
46
+ * Backup and ScheduledBackups execution using Barman Cloud on Azure
47
+ blob storage;
48
+ * Restore from backup using Barman Cloud on S3;
49
+ * Restore from backup using Barman Cloud on Azure blob storage;
50
+ * Wal-Restore;
51
+ - ** Operator:**
52
+ * Operator Deployment;
53
+ * Operator configuration via ConfigMap;
54
+ * Operator pod deletion;
55
+ * Operator pod eviction;
56
+ * Operator upgrade;
57
+ * Operator High Availability;
58
+ - ** Observability:**
59
+ * Metrics collection;
60
+ * PgBouncer Metrics;
61
+ * JSON log format;
62
+ - ** Replication:**
63
+ * Physical replica clusters;
64
+ * Replication Slots;
65
+ * Synchronous replication;
66
+ * Scale-up and scale-down of a Cluster;
67
+ - ** Plugin:**
68
+ * Cluster Hibernation using CNPG plugin;
69
+ * Fencing;
70
+ * Creation of a connection certificate;
71
+ - ** Postgres Configuration:**
72
+ * Manage PostgreSQL configuration changes;
73
+ * Rolling updates when changing PostgreSQL images;
74
+ - ** Pod Scheduling:**
75
+ * Tolerations and taints;
76
+ * Pod affinity using ` NodeSelector ` ;
77
+ - ** Cluster Metadata:**
78
+ * ConfigMap for Cluster Labels and Annotations;
79
+ * Object metadata;
80
+ - ** Recovery:**
81
+ * Data corruption;
82
+ * pg_basebackup;
83
+ - ** Importing Databases:**
84
+ * Microservice approach;
85
+ * Monolith approach;
86
+ - ** Storage:**
87
+ * Storage expansion;
88
+ - ** Security:**
89
+ * AppArmor annotation propagation. Executed only on Azure environment;
90
+ - ** Maintenance:**
91
+ * Node Drain;
0 commit comments