Skip to content

Commit 8227c23

Browse files
committed
Add tests
1 parent b705914 commit 8227c23

File tree

4 files changed

+44
-7
lines changed

4 files changed

+44
-7
lines changed

controllers/postgres_controller_test.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ import (
1010
"time"
1111

1212
pg "github.com/fi-ts/postgreslet/api/v1"
13+
"github.com/fi-ts/postgreslet/pkg/operatormanager"
1314
firewall "github.com/metal-stack/firewall-controller/api/v1"
1415
. "github.com/onsi/ginkgo"
1516
. "github.com/onsi/gomega"
1617
zalando "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
1718
core "k8s.io/api/core/v1"
18-
corev1 "k8s.io/api/core/v1"
1919
"k8s.io/apimachinery/pkg/types"
2020
)
2121

@@ -53,6 +53,15 @@ var _ = Describe("postgres controller", func() {
5353
}, timeout, interval).Should(BeTrue())
5454
})
5555

56+
It("should create pod-environment-configmap in service-cluster", func() {
57+
Eventually(func() bool {
58+
return svcClusterClient.Get(newCtx(), types.NamespacedName{
59+
Namespace: instance.ToPeripheralResourceNamespace(),
60+
Name: operatormanager.PodEnvCMName,
61+
}, &core.ConfigMap{}) == nil
62+
}, timeout, interval).Should(BeTrue())
63+
})
64+
5665
It("should create zalando postgresql in service-cluster", func() {
5766
z := &zalando.Postgresql{}
5867
Eventually(func() bool {
@@ -67,7 +76,7 @@ var _ = Describe("postgres controller", func() {
6776
return svcClusterClient.Get(newCtx(), types.NamespacedName{
6877
Namespace: instance.ToPeripheralResourceNamespace(),
6978
Name: instance.ToSvcLBName(),
70-
}, &corev1.Service{}) == nil
79+
}, &core.Service{}) == nil
7180
}, timeout, interval).Should(BeTrue())
7281
})
7382

@@ -97,7 +106,7 @@ var _ = Describe("postgres controller", func() {
97106
return svcClusterClient.Get(newCtx(), types.NamespacedName{
98107
Namespace: instance.ToPeripheralResourceNamespace(),
99108
Name: instance.ToSvcLBName(),
100-
}, &corev1.Service{}) == nil
109+
}, &core.Service{}) == nil
101110
}, timeout, interval).ShouldNot(BeTrue())
102111
})
103112

controllers/suite_test.go

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ var _ = BeforeSuite(func(done Done) {
135135
Expect(svcClusterClient).ToNot(BeNil())
136136

137137
createNamespace(svcClusterClient, "firewall")
138-
createPostgresTestInstance()
138+
createPostgresTestInstance(createBackupSecret())
139139
createConfigMapSidecarConfig()
140140
createCredentialSecrets()
141141
}, 1000)
@@ -150,6 +150,20 @@ var _ = AfterSuite(func() {
150150
Expect(err).ToNot(HaveOccurred())
151151
})
152152

153+
func createBackupSecret() *core.Secret {
154+
backupSecret := &core.Secret{}
155+
bytes, err := os.ReadFile(filepath.Join(externalYAMLDirTest, "secret-backup.yaml"))
156+
Expect(err).ToNot(HaveOccurred())
157+
Expect(yaml.Unmarshal(bytes, backupSecret)).Should(Succeed())
158+
159+
// Available in production, but not here
160+
createNamespace(ctrlClusterClient, backupSecret.Namespace)
161+
162+
Expect(ctrlClusterClient.Create(newCtx(), backupSecret)).Should(Succeed())
163+
164+
return backupSecret
165+
}
166+
153167
func createCredentialSecrets() {
154168
defer GinkgoRecover()
155169

@@ -191,14 +205,15 @@ func createNamespace(client client.Client, ns string) {
191205
Expect(client.Create(newCtx(), nsObj)).Should(Succeed())
192206
}
193207

194-
func createPostgresTestInstance() {
208+
func createPostgresTestInstance(backupSecret *core.Secret) {
195209
defer GinkgoRecover()
196210

211+
// Parse the test instance
197212
bytes, err := os.ReadFile(filepath.Join("..", "config", "samples", "complete.yaml"))
198213
Expect(err).ToNot(HaveOccurred())
199214
Expect(yaml.Unmarshal(bytes, instance)).Should(Succeed())
200215

201-
createNamespace(ctrlClusterClient, instance.Namespace)
216+
instance.Spec.BackupSecretRef = backupSecret.Name
202217

203218
Expect(ctrlClusterClient.Create(newCtx(), instance)).Should(Succeed())
204219
}

external/test/secret-backup.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: v1
2+
data:
3+
config: eyJpZCI6IjgxZWEyMzMxLTliMTQtNDUyMi05MjgzLTdkOGQwYmM2YjExNSIsIm5hbWUiOiJuYmctcHJvZC10ZXN0IiwicHJvamVjdCI6ImI2MjFlYjk5LTQ4ODgtNDkxMS05M2ZjLTk1ODU0ZmMwMzBlOCIsInRlbmFudCI6ImZpdHMiLCJjcmVhdGVkQnkiOiJcdTAwM2NpemUwMDBcdTAwM2VbYWNoaW0uYWRtaW5AZi1pLXRzLmRlXSIsInJldGVudGlvbiI6IjQiLCJzY2hlZHVsZSI6IjMwIDAwICogKiAqIiwiczNlbmRwb2ludCI6Imh0dHBzOi8vczMucHJvZC0wMy1uYmctdzgxMDEuZml0cy5jbG91ZCIsInMzYnVja2V0bmFtZSI6ImJhY2t1cC0xMjM0NTY3OCIsInMzcmVnaW9uIjoiZHVtbXkiLCJzM2FjY2Vzc2tleSI6IjRJMjUyOFA4UkcwOThYU1NDUEJNIiwiczNzZWNyZXRrZXkiOiJJSXBCOHBjU2tLVVF2MVhadmN6RU1XM0VrbERhUmU1N0FpM2FGdllCIn0=
4+
kind: Secret
5+
metadata:
6+
labels:
7+
postgres.database.fits.cloud/is-backup: "true"
8+
postgres.database.fits.cloud/project-id: b621eb99-4888-4911-93fc-95854fc030e8
9+
postgres.database.fits.cloud/tenant: fits
10+
name: 81ea2331-9b14-4522-9283-7d8d0bc6b115
11+
namespace: metal-extension-cloud
12+
type: Opaque

pkg/operatormanager/operatormanager.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ type OperatorManager struct {
7171
}
7272

7373
// New creates a new `OperatorManager`
74-
func New(CtrlClient client.Client, conf *rest.Config, fileName string, scheme *runtime.Scheme, log logr.Logger, pspName string) (*OperatorManager, error) {
74+
func New(ctrlClient client.Client, conf *rest.Config, fileName string, scheme *runtime.Scheme, log logr.Logger, pspName string) (*OperatorManager, error) {
7575
// Use no-cache client to avoid waiting for cashing.
7676
client, err := client.New(conf, client.Options{
7777
Scheme: scheme,
@@ -95,6 +95,7 @@ func New(CtrlClient client.Client, conf *rest.Config, fileName string, scheme *r
9595
log.Info("new `OperatorManager` created")
9696
return &OperatorManager{
9797
MetadataAccessor: meta.NewAccessor(),
98+
CtrlClient: ctrlClient,
9899
Client: client,
99100
Decoder: deserializer,
100101
list: list,

0 commit comments

Comments
 (0)