Skip to content

Commit f77e631

Browse files
Add Virtual Secret Pgbouncer Pgpool Redis Valkey (#199)
Signed-off-by: HiranmoyChowdhury <[email protected]>
1 parent b824c01 commit f77e631

File tree

407 files changed

+187164
-722
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

407 files changed

+187164
-722
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ endif
4545
### These variables should not need tweaking.
4646
###
4747

48-
SRC_PKGS := elasticsearch elasticsearchdashboard mariadb mongodb mysql oracle perconaxtradb pgbouncer postgres proxysql redis redissentinel
48+
SRC_PKGS := elasticsearch elasticsearchdashboard mariadb mongodb mysql oracle perconaxtradb pgbouncer postgres proxysql redis redissentinel pgpool
4949
SRC_DIRS := $(SRC_PKGS)
5050

5151
DOCKER_PLATFORMS := linux/amd64 linux/arm linux/arm64

go.mod

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ require (
3434
go.mongodb.org/mongo-driver v1.14.0
3535
go.virtual-secrets.dev/apimachinery v0.0.1
3636
gomodules.xyz/pointer v0.1.0
37-
k8s.io/api v0.32.3
38-
k8s.io/apimachinery v0.32.3
39-
k8s.io/client-go v0.32.3
37+
k8s.io/api v0.32.8
38+
k8s.io/apimachinery v0.32.8
39+
k8s.io/client-go v0.32.8
4040
k8s.io/klog/v2 v2.130.1
41-
kmodules.xyz/client-go v0.32.7
41+
kmodules.xyz/client-go v0.32.9
4242
kmodules.xyz/custom-resources v0.32.2
43-
kubedb.dev/apimachinery v0.59.0
43+
kubedb.dev/apimachinery v0.59.1-0.20251205110528-3d10db600e5d
4444
sigs.k8s.io/controller-runtime v0.20.4
4545
xorm.io/xorm v1.3.9
4646
)
@@ -69,6 +69,7 @@ require (
6969
github.com/go-faster/city v1.0.1 // indirect
7070
github.com/go-faster/errors v0.7.1 // indirect
7171
github.com/go-logr/stdr v1.2.2 // indirect
72+
github.com/go-logr/zapr v1.3.0 // indirect
7273
github.com/go-ole/go-ole v1.2.6 // indirect
7374
github.com/go-openapi/jsonpointer v0.21.0 // indirect
7475
github.com/go-openapi/jsonreference v0.21.0 // indirect
@@ -144,6 +145,8 @@ require (
144145
go.opentelemetry.io/otel v1.35.0 // indirect
145146
go.opentelemetry.io/otel/metric v1.35.0 // indirect
146147
go.opentelemetry.io/otel/trace v1.35.0 // indirect
148+
go.uber.org/multierr v1.11.0 // indirect
149+
go.uber.org/zap v1.27.0 // indirect
147150
golang.org/x/crypto v0.38.0 // indirect
148151
golang.org/x/net v0.40.0 // indirect
149152
golang.org/x/oauth2 v0.28.0 // indirect
@@ -152,26 +155,30 @@ require (
152155
golang.org/x/term v0.32.0 // indirect
153156
golang.org/x/text v0.25.0 // indirect
154157
golang.org/x/time v0.10.0 // indirect
158+
gomodules.xyz/clock v0.0.0-20200817085942-06523dba733f // indirect
155159
gomodules.xyz/encoding v0.0.8 // indirect
156160
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
157161
gomodules.xyz/mergo v0.3.13 // indirect
158162
gomodules.xyz/sets v0.2.1 // indirect
163+
gomodules.xyz/sync v0.1.0 // indirect
164+
gomodules.xyz/wait v0.2.0 // indirect
159165
gomodules.xyz/x v0.0.17 // indirect
160166
google.golang.org/protobuf v1.36.3 // indirect
161167
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
162168
gopkg.in/inf.v0 v0.9.1 // indirect
163169
gopkg.in/yaml.v3 v3.0.1 // indirect
164-
k8s.io/apiextensions-apiserver v0.32.3 // indirect
170+
k8s.io/apiextensions-apiserver v0.32.8 // indirect
171+
k8s.io/apiserver v0.32.8 // indirect
165172
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
166173
k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect
167174
kmodules.xyz/apiversion v0.2.0 // indirect
168-
kmodules.xyz/monitoring-agent-api v0.32.1 // indirect
175+
kmodules.xyz/monitoring-agent-api v0.32.4 // indirect
169176
kmodules.xyz/objectstore-api v0.32.0 // indirect
170177
kmodules.xyz/offshoot-api v0.32.0 // indirect
171178
kmodules.xyz/prober v0.32.0 // indirect
172179
kmodules.xyz/resource-metadata v0.32.1 // indirect
173180
kubeops.dev/operator-shard-manager v0.0.3 // indirect
174-
kubeops.dev/petset v0.0.12 // indirect
181+
kubeops.dev/petset v0.0.14 // indirect
175182
kubeops.dev/sidekick v0.0.11 // indirect
176183
kubestash.dev/apimachinery v0.21.0 // indirect
177184
modernc.org/memory v1.5.0 // indirect
@@ -182,6 +189,7 @@ require (
182189
sigs.k8s.io/randfill v1.0.0 // indirect
183190
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
184191
sigs.k8s.io/yaml v1.4.0 // indirect
192+
stash.appscode.dev/apimachinery v0.41.0 // indirect
185193
xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978 // indirect
186194
)
187195

go.sum

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,8 @@ github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zt
233233
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
234234
github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
235235
github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
236+
github.com/kmodules/apiserver v0.32.3-0.20250221062720-35dc674c7dd6 h1:U6BBc6uBT3jTlmTBTyXaIfNnp1WzUaX6Xz7ReV8qcaw=
237+
github.com/kmodules/apiserver v0.32.3-0.20250221062720-35dc674c7dd6/go.mod h1:PEwREHiHNU2oFdte7BjzA1ZyjWjuckORLIK/wLV5goM=
236238
github.com/kmodules/controller-runtime v0.20.3-0.20250221050548-8eabe54e7dda h1:sCYJ4MiAYXHjUT6mJSRPaCPbHosjHjyrdNita/ZFQLk=
237239
github.com/kmodules/controller-runtime v0.20.3-0.20250221050548-8eabe54e7dda/go.mod h1:xg2XB0K5ShQzAgsoujxuKN4LNXR2LfwwHsPj7Iaw+XY=
238240
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -509,6 +511,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
509511
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
510512
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
511513
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
514+
gomodules.xyz/clock v0.0.0-20200817085942-06523dba733f h1:hTyhR4r+tj1Uq7/PpFxLTzbeA0LhMVp7bEYfhkzFjdY=
515+
gomodules.xyz/clock v0.0.0-20200817085942-06523dba733f/go.mod h1:K3m7N+nBOlf91/tpv8REUGwsAgaKFwElQCuiLhm12AQ=
512516
gomodules.xyz/encoding v0.0.8 h1:r2Koq0BJ4HQCCjPTHuti0ItJDXqWJoLRHcm14Ayyp10=
513517
gomodules.xyz/encoding v0.0.8/go.mod h1:tn9zeeM1vHMxwVIwJQo7gGfJSCOklnU11tZ+3gSbj08=
514518
gomodules.xyz/jsonpatch/v2 v2.5.0 h1:JELs8RLM12qJGXU4u/TO3V25KW8GreMKl9pdkk14RM0=
@@ -519,6 +523,10 @@ gomodules.xyz/pointer v0.1.0 h1:sG2UKrYVSo6E3r4itAjXfPfe4fuXMi0KdyTHpR3vGCg=
519523
gomodules.xyz/pointer v0.1.0/go.mod h1:sPLsC0+yLTRecUiC5yVlyvXhZ6LAGojNCRWNNqoplvo=
520524
gomodules.xyz/sets v0.2.1 h1:vK3oUWoGVrZKLDKO/bzEo/ucHFdCE7+DxWPeWxK72KQ=
521525
gomodules.xyz/sets v0.2.1/go.mod h1:jKgNp01/iDs+svOWXaPk5cKP3VXy0mWUoTF/ore+aMc=
526+
gomodules.xyz/sync v0.1.0 h1:Y7vHOtMrqN9FojRwkCQdC17dKL1fVx+6xb7WdfnXX58=
527+
gomodules.xyz/sync v0.1.0/go.mod h1:kv570yCdknyiZ8Y94uaRFGBC5E47TV/5A7PD9jlnJoQ=
528+
gomodules.xyz/wait v0.2.0 h1:HnRIh+cvIrrKIFaXoYznCVVirv2/2xu3KzjSzsQmYAY=
529+
gomodules.xyz/wait v0.2.0/go.mod h1:g/epKzZQuCqgvhzhaoG4cSBNGHqnOrhFR4Q7szDJ1JM=
522530
gomodules.xyz/x v0.0.17 h1:Ik3wf0suCMiYPY0miFUh+q8BpjsUHc/7zvANbFViBQA=
523531
gomodules.xyz/x v0.0.17/go.mod h1:7R5182LvgWj1ZGlnpbhfSLsxM3lFN7LBettztpX+A2I=
524532
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
@@ -546,14 +554,14 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
546554
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
547555
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
548556
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
549-
k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls=
550-
k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k=
551-
k8s.io/apiextensions-apiserver v0.32.3 h1:4D8vy+9GWerlErCwVIbcQjsWunF9SUGNu7O7hiQTyPY=
552-
k8s.io/apiextensions-apiserver v0.32.3/go.mod h1:8YwcvVRMVzw0r1Stc7XfGAzB/SIVLunqApySV5V7Dss=
553-
k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U=
554-
k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
555-
k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU=
556-
k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY=
557+
k8s.io/api v0.32.8 h1:PhuKPnqsaXYuwmLXRLAmdDJ9EZ2R2kEbOZTq4UE3lGc=
558+
k8s.io/api v0.32.8/go.mod h1:gdRZQ4zXGawr9YrJ5OjTl7aR3TD0mTowtFsqFtpCDXo=
559+
k8s.io/apiextensions-apiserver v0.32.8 h1:iYIIaZmn/BMTwzGYRZnYZysaKB4t2TL3O+0yhmbXE2U=
560+
k8s.io/apiextensions-apiserver v0.32.8/go.mod h1:GTGskWgcBo/7boX33zcS8JY6vaG4s728AdbQPxtheVk=
561+
k8s.io/apimachinery v0.32.8 h1:95I+2jX71Tev+C+UlhNbmKfv+A/TQII42HLskiHZpBg=
562+
k8s.io/apimachinery v0.32.8/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
563+
k8s.io/client-go v0.32.8 h1:BkSFWUtRz/BbE3DJF98KPg7ix6lwMnIQ9DnHw3iWiSw=
564+
k8s.io/client-go v0.32.8/go.mod h1:vGkCzRxZ7BuRX2zdW7+kOwCdcgOkq9omDWb26wk/sE0=
557565
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
558566
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
559567
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4=
@@ -562,12 +570,12 @@ k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJ
562570
k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
563571
kmodules.xyz/apiversion v0.2.0 h1:vAQYqZFm4xu4pbB1cAdHbFEPES6EQkcR4wc06xdTOWk=
564572
kmodules.xyz/apiversion v0.2.0/go.mod h1:oPX8g8LvlPdPX3Yc5YvCzJHQnw3YF/X4/jdW0b1am80=
565-
kmodules.xyz/client-go v0.32.7 h1:vBAbp8vs4coYRhY4wqm1Hw/eBEDiVU238AyMLSoRJ1c=
566-
kmodules.xyz/client-go v0.32.7/go.mod h1:ZwLnc7UqEXUNSe43n/SnER6+7YAQCu38L2te6YefoHU=
573+
kmodules.xyz/client-go v0.32.9 h1:iZVhmTuMybHR7THGqnkbQdAJEOJCtZ9Ry9cY8TBvTJI=
574+
kmodules.xyz/client-go v0.32.9/go.mod h1:ZwLnc7UqEXUNSe43n/SnER6+7YAQCu38L2te6YefoHU=
567575
kmodules.xyz/custom-resources v0.32.2 h1:NkRqL/4AWHiXdT5WKFcJlBcvRuoNdeYIrBGvQIRJRn4=
568576
kmodules.xyz/custom-resources v0.32.2/go.mod h1:YKFNcsFQU7Z3AcPvYVCdFtgAdWiG1Wd1HQMOxCrAoWc=
569-
kmodules.xyz/monitoring-agent-api v0.32.1 h1:F0cm5NJWfgiANw3eiKkXXSXoClMBpAolMXE/N7Xts74=
570-
kmodules.xyz/monitoring-agent-api v0.32.1/go.mod h1:zgRKiJcuK7FOHy0Y1TsONRbJfgnPCs8t4Zh/6Afr+yU=
577+
kmodules.xyz/monitoring-agent-api v0.32.4 h1:JGm2bvHfAXHAf7EKjFrNDG3f7+QFpYV2Mvgj3RDVRhw=
578+
kmodules.xyz/monitoring-agent-api v0.32.4/go.mod h1:NkCiNP05EWrsjTTU2Npova/Sm27+I8vwUXqXVCmBbQ4=
571579
kmodules.xyz/objectstore-api v0.32.0 h1:A45lWKNb+02fJV1Mo4IDIpC1hWvLh/wuHKErovxKmQw=
572580
kmodules.xyz/objectstore-api v0.32.0/go.mod h1:N2SXdUU+YjXwG64UATYg+OoFYQ+p2MhX8B5TTKBeTf8=
573581
kmodules.xyz/offshoot-api v0.32.0 h1:gogc5scSZe2JoXtZof72UGRl3Tit0kFaFRMkLLT1D8o=
@@ -576,12 +584,12 @@ kmodules.xyz/prober v0.32.0 h1:8Z6pFRAu8kP0wwX2BooPCRy2SE6ZkUMHQmZDH5VUEGY=
576584
kmodules.xyz/prober v0.32.0/go.mod h1:h0fH4m9DaIwuNZq85zOlWUvBycyy4LvCPMUUhpS3iSE=
577585
kmodules.xyz/resource-metadata v0.32.1 h1:hWQbL0Xb+GaF7qn+rY0CNh7FUfKZw29VBUKTxjHFGYI=
578586
kmodules.xyz/resource-metadata v0.32.1/go.mod h1:wHC24BVzKb1gzkDCSI5l9CXK4AKD5gMamxEqVys50lI=
579-
kubedb.dev/apimachinery v0.59.0 h1:6daQ4dS6xayoyaZ67N5NXxOD1wH4H7v5JKPSwjPDbAk=
580-
kubedb.dev/apimachinery v0.59.0/go.mod h1:cdAy0z4ED/iunIQprmaB4yCSxgBkFaT5fcOT/ogxl0Q=
587+
kubedb.dev/apimachinery v0.59.1-0.20251205110528-3d10db600e5d h1:RFsZrXvM52Sz7joiRV2/d+Mt1sl3zV/BhmRjCypZxdA=
588+
kubedb.dev/apimachinery v0.59.1-0.20251205110528-3d10db600e5d/go.mod h1:8zu7zUBEd2PQsI0JZJFmxzglf63zxbwlAJIJlY77UqM=
581589
kubeops.dev/operator-shard-manager v0.0.3 h1:Z2YOAfyQIjvHMwT4O56lR0l9z25s2tCVDO22u/XuYnw=
582590
kubeops.dev/operator-shard-manager v0.0.3/go.mod h1:2oRq5vnCaUxzE+qIiRuzB34PlqahiynE+sYqWu6AMIY=
583-
kubeops.dev/petset v0.0.12 h1:NSFEeuckBVm44f3cAL4HhcQWvnfOE4qgbfug7+FEyaY=
584-
kubeops.dev/petset v0.0.12/go.mod h1:akG9QH1JaOZQcuQKEKWvkVWI8P3im/5O554aTRvB6Y0=
591+
kubeops.dev/petset v0.0.14 h1:Lk3prjtm5AgR44qr2SX8elx6sF9PK1G0GYlv8AZd9OY=
592+
kubeops.dev/petset v0.0.14/go.mod h1:X10jcvIjjP9HIa8ezh9PjtaXvFfk2zT+JmmO/S+7uhA=
585593
kubeops.dev/sidekick v0.0.11 h1:OydXdIH6cYSiWxKIWvrywk95WhhHSERkc7RNPOmTekc=
586594
kubeops.dev/sidekick v0.0.11/go.mod h1:90KMNmJOPoMKHbrdC1cpEsMx+1KjTea/lHDAbGRDzHc=
587595
kubestash.dev/apimachinery v0.21.0 h1:2qHROfY6RdxNjoEPm2yzQOuaqKlIeEMEn7bP+a/xezQ=
@@ -619,6 +627,8 @@ sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW
619627
sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps=
620628
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
621629
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
630+
stash.appscode.dev/apimachinery v0.41.0 h1:1K4j0ADKjlQ/tGnCpctEmDx1CfJzu1HKgQC0EK5U4ZA=
631+
stash.appscode.dev/apimachinery v0.41.0/go.mod h1:y1VgM/7CT990qqHAtE0JGg1N0sFWzmrq/9HzUU5V8dc=
622632
xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978 h1:bvLlAPW1ZMTWA32LuZMBEGHAUOcATZjzHcotf3SWweM=
623633
xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE=
624634
xorm.io/xorm v1.3.9 h1:TUovzS0ko+IQ1XnNLfs5dqK1cJl1H5uHpWbWqAQ04nU=

pgbouncer/kubedb_client_builder.go

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ import (
2222

2323
"kubedb.dev/apimachinery/apis/kubedb"
2424
dbapi "kubedb.dev/apimachinery/apis/kubedb/v1"
25+
"kubedb.dev/apimachinery/pkg/lib"
2526

2627
_ "github.com/lib/pq"
28+
vsecretapi "go.virtual-secrets.dev/apimachinery/apis/virtual/v1alpha1"
2729
core "k8s.io/api/core/v1"
2830
"k8s.io/apimachinery/pkg/types"
2931
"k8s.io/klog/v2"
@@ -152,23 +154,32 @@ func (o *KubeDBClientBuilder) GetBackendAuth() (string, string, error) {
152154
return "", "", fmt.Errorf("backend postgres auth secret unspecified for pgBouncer %s/%s", o.pgbouncer.Namespace, o.pgbouncer.Name)
153155
}
154156

155-
var secret core.Secret
156-
err = o.kc.Get(o.ctx, client.ObjectKey{Namespace: appBinding.Namespace, Name: appBinding.Spec.Secret.Name}, &secret)
157-
if err != nil {
158-
return "", "", err
159-
}
157+
if appBinding.Spec.Secret.APIGroup != vsecretapi.GroupName {
158+
var secret core.Secret
159+
err = o.kc.Get(o.ctx, client.ObjectKey{Namespace: appBinding.Namespace, Name: appBinding.Spec.Secret.Name}, &secret)
160+
if err != nil {
161+
return "", "", err
162+
}
160163

161-
user, present := secret.Data[core.BasicAuthUsernameKey]
162-
if !present {
163-
return "", "", fmt.Errorf("error getting backend username")
164-
}
164+
if err = lib.ValidateAuthSecret(&secret); err != nil {
165+
return "", "", err
166+
}
167+
return string(secret.Data[core.BasicAuthUsernameKey]), string(secret.Data[core.BasicAuthPasswordKey]), nil
168+
} else {
169+
vSecret := &vsecretapi.Secret{}
170+
err = o.kc.Get(context.TODO(), types.NamespacedName{
171+
Name: appBinding.Spec.Secret.Name,
172+
Namespace: appBinding.Namespace,
173+
}, vSecret)
174+
if err != nil {
175+
return "", "", err
176+
}
165177

166-
pass, present := secret.Data[core.BasicAuthPasswordKey]
167-
if !present {
168-
return "", "", fmt.Errorf("error getting backend password")
178+
if err = lib.ValidateVirtualAuthSecret(vSecret); err != nil {
179+
return "", "", err
180+
}
181+
return string(vSecret.Data[core.BasicAuthUsernameKey]), string(vSecret.Data[core.BasicAuthPasswordKey]), nil
169182
}
170-
171-
return string(user), string(pass), nil
172183
}
173184

174185
func (o *KubeDBClientBuilder) getTLSConfig(ctx context.Context) (*certholder.Paths, error) {

pgpool/kubedb_client_builder.go

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ package pgpool
1818

1919
import (
2020
"context"
21-
2221
"fmt"
2322

2423
olddbapi "kubedb.dev/apimachinery/apis/kubedb/v1alpha2"
24+
"kubedb.dev/apimachinery/pkg/lib"
2525

2626
_ "github.com/lib/pq"
27+
vsecretapi "go.virtual-secrets.dev/apimachinery/apis/virtual/v1alpha1"
2728
core "k8s.io/api/core/v1"
2829
"k8s.io/apimachinery/pkg/types"
2930
"k8s.io/klog/v2"
@@ -124,20 +125,27 @@ func (o *KubeDBClientBuilder) getBackendAuth() (string, string, error) {
124125
return "", "", fmt.Errorf("backend postgres auth secret unspecified for pgpool %s/%s", pp.Namespace, pp.Name)
125126
}
126127

127-
var secret core.Secret
128-
err = o.kc.Get(o.ctx, client.ObjectKey{Namespace: pp.Spec.PostgresRef.Namespace, Name: apb.Spec.Secret.Name}, &secret)
129-
if err != nil {
130-
return "", "", err
131-
}
132-
user, ok := secret.Data[core.BasicAuthUsernameKey]
133-
if !ok {
134-
return "", "", fmt.Errorf("error getting backend username")
135-
}
136-
pass, ok := secret.Data[core.BasicAuthPasswordKey]
137-
if !ok {
138-
return "", "", fmt.Errorf("error getting backend password")
128+
if apb.Spec.Secret.APIGroup == vsecretapi.GroupName {
129+
var secret vsecretapi.Secret
130+
err = o.kc.Get(o.ctx, client.ObjectKey{Namespace: pp.Spec.PostgresRef.Namespace, Name: apb.Spec.Secret.Name}, &secret)
131+
if err != nil {
132+
return "", "", err
133+
}
134+
if err = lib.ValidateVirtualAuthSecret(&secret); err != nil {
135+
return "", "", err
136+
}
137+
return string(secret.Data[core.BasicAuthUsernameKey]), string(secret.Data[core.BasicAuthPasswordKey]), nil
138+
} else {
139+
var secret core.Secret
140+
err = o.kc.Get(o.ctx, client.ObjectKey{Namespace: pp.Spec.PostgresRef.Namespace, Name: apb.Spec.Secret.Name}, &secret)
141+
if err != nil {
142+
return "", "", err
143+
}
144+
if err = lib.ValidateAuthSecret(&secret); err != nil {
145+
return "", "", err
146+
}
147+
return string(secret.Data[core.BasicAuthUsernameKey]), string(secret.Data[core.BasicAuthPasswordKey]), nil
139148
}
140-
return string(user), string(pass), nil
141149
}
142150

143151
func (o *KubeDBClientBuilder) getConnectionString() (string, error) {

redis/kubedb_client_builder.go

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ import (
2626

2727
"kubedb.dev/apimachinery/apis/kubedb"
2828
dbapi "kubedb.dev/apimachinery/apis/kubedb/v1"
29+
"kubedb.dev/apimachinery/pkg/lib"
2930

3031
rd "github.com/redis/go-redis/v9"
32+
vsecretapi "go.virtual-secrets.dev/apimachinery/apis/virtual/v1alpha1"
3133
core "k8s.io/api/core/v1"
3234
"k8s.io/klog/v2"
3335
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -156,13 +158,26 @@ func (o *KubeDBClientBuilder) getClientPassword(ctx context.Context) (string, er
156158
if o.db.Spec.AuthSecret == nil || o.db.Spec.AuthSecret.Name == "" {
157159
return "", errors.New("no database secret")
158160
}
159-
var authSecret core.Secret
160-
err := o.kc.Get(ctx, client.ObjectKey{Namespace: o.db.Namespace, Name: o.db.Spec.AuthSecret.Name}, &authSecret)
161+
var clientPass string
162+
if !dbapi.IsVirtualAuthSecretReferred(o.db.Spec.AuthSecret) {
163+
var authSecret core.Secret
164+
err := o.kc.Get(ctx, client.ObjectKey{Namespace: o.db.Namespace, Name: o.db.Spec.AuthSecret.Name}, &authSecret)
165+
if err != nil {
166+
return "", err
167+
}
168+
clientPass = string(authSecret.Data[core.BasicAuthPasswordKey])
169+
return clientPass, nil
170+
}
171+
vSecret := &vsecretapi.Secret{}
172+
err := o.kc.Get(context.TODO(), client.ObjectKey{Namespace: o.db.Namespace, Name: o.db.Spec.AuthSecret.Name}, vSecret)
161173
if err != nil {
162174
return "", err
163175
}
164-
clientPass := string(authSecret.Data[core.BasicAuthPasswordKey])
165-
return clientPass, nil
176+
177+
if err = lib.ValidateVirtualAuthSecret(vSecret); err != nil {
178+
return "", err
179+
}
180+
return string(vSecret.Data[core.BasicAuthPasswordKey]), nil
166181
}
167182

168183
func (o *KubeDBClientBuilder) getTLSConfig(ctx context.Context) (*tls.Config, error) {

vendor/github.com/cert-manager/cert-manager/pkg/client/clientset/versioned/scheme/doc.go

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)