@@ -27,34 +27,37 @@ import (
2727 "sigs.k8s.io/controller-runtime/pkg/log/zap"
2828)
2929
30+ var cl * kubernetes.K8sClient
31+
3032// Deploy CNGP operator, certmanager, minio and our plugins
3133func setup () error {
32- k8sClient , err := kubernetes .Client ()
34+ var err error
35+ cl , err = kubernetes .Client ()
3336 if err != nil {
3437 panic ("can't init kubernetes client" )
3538 }
3639 s := kubernetes.InstallSpec {ManifestUrl : "https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.25/releases/cnpg-1.25.1.yaml" }
37- if err := cnpg .Install (* k8sClient , s ); err != nil {
40+ if err := cnpg .Install (* cl , s ); err != nil {
3841 panic ("can't install CNPG" )
3942 }
4043 s = kubernetes.InstallSpec {ManifestUrl : "https://github.com/cert-manager/cert-manager/releases/download/v1.16.2/cert-manager.yaml" }
41- if err := certmanager .Install (* k8sClient , s ); err != nil {
44+ if err := certmanager .Install (* cl , s ); err != nil {
4245 panic ("can't install certmanager" )
4346 }
44- if err = minio .Install (* k8sClient ); err != nil {
47+ if err = minio .Install (* cl ); err != nil {
4548 panic ("can't install minio" )
4649 }
4750 // install our pgbackrest plugin from kubernetes directory at the root
4851 // of the repository
4952 path , err := os .Getwd ()
5053 s = kubernetes.InstallSpec {ManifestUrl : path + "/../../kubernetes" }
51- if err := pgbackrest .Install (* k8sClient , s ); err != nil {
54+ if err := pgbackrest .Install (* cl , s ); err != nil {
5255 panic ("can't deploy plugin" )
5356 }
5457 return nil
5558}
5659
57- func createSecret (ctx context.Context , k8sClient * kubernetes.K8sClient , namespace string ) (* v1.Secret , error ) {
60+ func createSecret (ctx context.Context , cl * kubernetes.K8sClient , namespace string ) (* v1.Secret , error ) {
5861 // TODO: move that ?
5962 secret := & v1.Secret {
6063 TypeMeta : metav1.TypeMeta {
@@ -71,7 +74,7 @@ func createSecret(ctx context.Context, k8sClient *kubernetes.K8sClient, namespac
7174 "key-secret" : minio .SECRET_KEY ,
7275 },
7376 }
74- return secret , k8sClient .Create (ctx , secret )
77+ return secret , cl .Create (ctx , secret )
7578}
7679
7780func teardown () {
@@ -87,15 +90,9 @@ func TestMain(m *testing.M) {
8790
8891func TestInstall (t * testing.T ) {
8992 logcr .SetLogger (zap .New (zap .WriteTo (os .Stdout ), zap .UseDevMode (true )))
90- // basic verification to ensure our plugin is present
91- k8sClient , err := kubernetes .Client ()
92- if k8sClient == nil || err != nil {
93- t .Errorf ("error kubernetes client not initialized" )
94- }
95- // basic check for deployment
9693 fqdn := types.NamespacedName {Name : "pgbackrest-controller" , Namespace : "cnpg-system" }
9794 obj := & appsv1.Deployment {}
98- k8sClient .Get (context .TODO (), fqdn , obj )
95+ cl .Get (context .TODO (), fqdn , obj )
9996 var want int32 = 1
10097 got := obj .Status .ReadyReplicas
10198 if got != want {
@@ -105,7 +102,7 @@ func TestInstall(t *testing.T) {
105102 // verify service creation
106103 fqdn = types.NamespacedName {Name : "pgbackrest" , Namespace : "cnpg-system" }
107104 svc := & corev1.Service {}
108- err = k8sClient .Get (context .TODO (), fqdn , svc )
105+ err := cl .Get (context .TODO (), fqdn , svc )
109106 if err != nil {
110107 t .Errorf ("error no service for pgbackrest found %s" , err .Error ())
111108 }
@@ -116,20 +113,16 @@ func TestInstall(t *testing.T) {
116113 if ! reflect .DeepEqual (svc .Labels , want_labels ) {
117114 t .Errorf ("error labels not valid %v" , svc .Labels )
118115 }
119- k8sClient .Get (context .TODO (), fqdn , obj )
116+ cl .Get (context .TODO (), fqdn , obj )
120117}
121118
122119// basic verification to ensure we can use our plugin with a cluster
123120func TestDeployInstance (t * testing.T ) {
124121 logcr .SetLogger (zap .New (zap .WriteTo (os .Stdout ), zap .UseDevMode (true )))
125- k8sClient , err := kubernetes .Client ()
126- if k8sClient == nil || err != nil {
127- t .Errorf ("error kubernetes client not initialized" )
128- }
129122 ns := "default"
130123 ctx := context .TODO ()
131124 // first create a secret
132- secret , err := createSecret (ctx , k8sClient , ns )
125+ secret , err := createSecret (ctx , cl , ns )
133126 if err != nil {
134127 t .Error (err .Error ())
135128 }
@@ -138,30 +131,30 @@ func TestDeployInstance(t *testing.T) {
138131 clusterName := "cluster-demo"
139132 p := maps .Clone (cluster .DefaultParamater )
140133 p ["s3-repo-path" ] = "/" + clusterName
141- c , err := cluster .Create (k8sClient , ns , clusterName , 1 , "100M" , p )
134+ c , err := cluster .Create (cl , ns , clusterName , 1 , "100M" , p )
142135 if err != nil {
143136 t .Error (err .Error ())
144137 }
145- if ready , err := k8sClient .PodsIsReady (ns , clusterName + "-1" , 30 , 2 ); err != nil {
138+ if ready , err := cl .PodsIsReady (ns , clusterName + "-1" , 30 , 2 ); err != nil {
146139 t .Errorf ("error when requesting pod status, %s" , err .Error ())
147140 } else if ! ready {
148141 t .Error ("pod not ready" )
149142 }
150143
151144 // Verify we can backup our cluster
152145 backupName := types.NamespacedName {Name : "backup-01" , Namespace : ns }
153- backup , err := cluster .Backup (k8sClient , clusterName , backupName )
146+ backup , err := cluster .Backup (cl , clusterName , backupName )
154147 if err != nil {
155148 t .Error (err )
156149 }
157- ctx , cancel := context .WithTimeout (context .TODO (), time .Minute * 2 )
150+ ctxTimeout , cancel := context .WithTimeout (context .TODO (), time .Minute * 2 )
158151 defer cancel ()
159- if err := cluster .BackupCompleted (ctx , k8sClient , backupName , time .Second * 2 ); err != nil {
152+ if err := cluster .BackupCompleted (ctxTimeout , cl , backupName , time .Second * 2 ); err != nil {
160153 t .Error (err )
161154 }
162155
163156 // delete created ressources
164- k8sClient .Delete (ctx , backup )
165- k8sClient .Delete (ctx , c )
166- k8sClient .Delete (ctx , secret )
157+ cl .Delete (ctx , backup )
158+ cl .Delete (ctx , c )
159+ cl .Delete (ctx , secret )
167160}
0 commit comments