Skip to content

Commit d590544

Browse files
committed
fix: tests after review
1 parent 627f711 commit d590544

File tree

8 files changed

+11
-117
lines changed

8 files changed

+11
-117
lines changed

charts/ext-postgres-operator/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ description: |
99
type: application
1010

1111
version: 2.3.0
12-
appVersion: "2.2.0"
12+
appVersion: "2.4.0"

charts/ext-postgres-operator/templates/clusterrole.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ rules:
1111
- secrets
1212
verbs:
1313
- "*"
14+
- apiGroups:
15+
- apps
1416
resourceNames:
1517
- ext-postgres-operator
1618
resources:

config/rbac/cluster_role.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ rules:
99
- secrets
1010
verbs:
1111
- "*"
12+
- apiGroups:
13+
- apps
1214
resourceNames:
1315
- ext-postgres-operator
1416
resources:

internal/controller/postgres_controller_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ var _ = Describe("PostgresReconciler", func() {
7373
pg = mockpg.NewMockPG(mockCtrl)
7474
pg.EXPECT().AlterDatabaseOwner(gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
7575
pg.EXPECT().ReassignDatabaseOwner(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
76-
pg.EXPECT().ReassignDatabaseOwner(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
7776
cl = k8sClient
7877
// Create runtime scheme
7978
sc = scheme.Scheme

internal/controller/postgresuser_controller.go

Lines changed: 6 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -203,89 +203,7 @@ func (r *PostgresUserReconciler) Reconcile(ctx context.Context, req ctrl.Request
203203
}
204204
} else if awsIamRequested {
205205
reqLogger.WithValues("role", role).Info("IAM Auth requested while we are not running with AWS cloud provider config")
206-
// Reconcile logic for changes in group membership
207-
// This is only applicable if user role is already created
208-
// and privileges are changed in spec
209-
if instance.Status.PostgresRole != "" {
210-
211-
// We need to get the Postgres CR to get the group role name
212-
database, err := r.getPostgresCR(ctx, instance)
213-
if err != nil {
214-
return r.requeue(ctx, instance, errors.NewInternalError(err))
215-
}
216-
217-
// Determine desired group role
218-
var desiredGroup string
219-
switch instance.Spec.Privileges {
220-
case "READ":
221-
desiredGroup = database.Status.Roles.Reader
222-
case "WRITE":
223-
desiredGroup = database.Status.Roles.Writer
224-
default:
225-
desiredGroup = database.Status.Roles.Owner
226-
}
227-
228-
// Ability user to be reassigned to another group role
229-
currentGroup := instance.Status.PostgresGroup
230-
if desiredGroup != "" && currentGroup != desiredGroup {
231-
232-
// Remove the old group membership if present
233-
if currentGroup != "" {
234-
err = r.pg.RevokeRole(currentGroup, role)
235-
if err != nil {
236-
return r.requeue(ctx, instance, errors.NewInternalError(err))
237-
}
238-
}
239-
240-
// Grant the new group role
241-
err = r.pg.GrantRole(desiredGroup, role)
242-
if err != nil {
243-
return r.requeue(ctx, instance, errors.NewInternalError(err))
244-
}
245-
246-
// Ensure objects created by the user are owned by the new group
247-
err = r.pg.AlterDefaultLoginRole(role, desiredGroup)
248-
if err != nil {
249-
return r.requeue(ctx, instance, errors.NewInternalError(err))
250-
}
251-
252-
instance.Status.PostgresGroup = desiredGroup
253-
err = r.Status().Update(ctx, instance)
254-
if err != nil {
255-
return r.requeue(ctx, instance, err)
256-
}
257-
}
258-
} else {
259-
role = instance.Status.PostgresRole
260-
login = instance.Status.PostgresLogin
261-
awsConfig := instance.Spec.AWS
262-
awsIamRequested := awsConfig != nil && awsConfig.EnableIamAuth
263-
264-
if r.cloudProvider == "AWS" {
265-
if awsIamRequested && !instance.Status.EnableIamAuth {
266-
if err := r.pg.GrantRole("rds_iam", role); err != nil {
267-
reqLogger.WithValues("role", role).Error(err, "failed to grant rds_iam role")
268-
} else {
269-
instance.Status.EnableIamAuth = true
270-
if sErr := r.Status().Update(ctx, instance); sErr != nil {
271-
reqLogger.WithValues("role", role).Error(sErr, "failed to update status after IAM grant")
272-
}
273-
}
274-
}
275-
276-
// Revoke aws_iam role on transition: spec=false, status=true
277-
if !awsIamRequested && instance.Status.EnableIamAuth {
278-
if err := r.pg.RevokeRole("rds_iam", role); err != nil {
279-
reqLogger.WithValues("role", role).Error(err, "failed to revoke rds_iam role")
280-
} else {
281-
instance.Status.EnableIamAuth = false
282-
if sErr := r.Status().Update(ctx, instance); sErr != nil {
283-
reqLogger.WithValues("role", role).Error(sErr, "failed to update status after IAM revoke")
284-
}
285-
}
286-
}
287-
} else if awsIamRequested {
288-
reqLogger.WithValues("role", role).Info("IAM Auth requested while we are not running with AWS cloud provider config")
206+
}
289207

290208
// Reconcile logic for changes in group membership
291209
// This is only applicable if user role is already created
@@ -309,32 +227,29 @@ func (r *PostgresUserReconciler) Reconcile(ctx context.Context, req ctrl.Request
309227
desiredGroup = database.Status.Roles.Owner
310228
}
311229

230+
// Ability user to be reassigned to another group role
312231
currentGroup := instance.Status.PostgresGroup
313232
if desiredGroup != "" && currentGroup != desiredGroup {
314233

315234
// Remove the old group membership if present
316235
if currentGroup != "" {
317-
err = r.pg.RevokeRole(currentGroup, role)
318-
if err != nil {
236+
if err := r.pg.RevokeRole(currentGroup, role); err != nil {
319237
return r.requeue(ctx, instance, errors.NewInternalError(err))
320238
}
321239
}
322240

323241
// Grant the new group role
324-
err = r.pg.GrantRole(desiredGroup, role)
325-
if err != nil {
242+
if err := r.pg.GrantRole(desiredGroup, role); err != nil {
326243
return r.requeue(ctx, instance, errors.NewInternalError(err))
327244
}
328245

329246
// Ensure objects created by the user are owned by the new group
330-
err = r.pg.AlterDefaultLoginRole(role, desiredGroup)
331-
if err != nil {
247+
if err := r.pg.AlterDefaultLoginRole(role, desiredGroup); err != nil {
332248
return r.requeue(ctx, instance, errors.NewInternalError(err))
333249
}
334250

335251
instance.Status.PostgresGroup = desiredGroup
336-
err = r.Status().Update(ctx, instance)
337-
if err != nil {
252+
if err := r.Status().Update(ctx, instance); err != nil {
338253
return r.requeue(ctx, instance, err)
339254
}
340255
}

pkg/postgres/aws.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,3 @@ func (c *awspg) DropRole(role, newOwner, database string, logger logr.Logger) er
7878

7979
return c.pg.DropRole(role, newOwner, database, logger)
8080
}
81-
82-
func (c *awspg) AlterDatabaseOwner(dbName, owner string) error {
83-
return c.pg.AlterDatabaseOwner(dbName, owner)
84-
}
85-
86-
func (c *awspg) ReassignDatabaseOwner(dbName, currentOwner, newOwner string, logger logr.Logger) error {
87-
return c.pg.ReassignDatabaseOwner(dbName, currentOwner, newOwner, logger)
88-
}

pkg/postgres/azure.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,3 @@ func (azpg *azurepg) DropRole(role, newOwner, database string, logger logr.Logge
4848
// Delegate to parent implementation to perform the actual drop
4949
return azpg.pg.DropRole(role, newOwner, database, logger)
5050
}
51-
52-
func (azpg *azurepg) AlterDatabaseOwner(dbName, owner string) error {
53-
return azpg.pg.AlterDatabaseOwner(dbName, owner)
54-
}
55-
56-
func (azpg *azurepg) ReassignDatabaseOwner(dbName, currentOwner, newOwner string, logger logr.Logger) error {
57-
return azpg.pg.ReassignDatabaseOwner(dbName, currentOwner, newOwner, logger)
58-
}

pkg/postgres/gcp.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,3 @@ func (c *gcppg) DropRole(role, newOwner, database string, logger logr.Logger) er
8383
}
8484
return nil
8585
}
86-
87-
func (c *gcppg) AlterDatabaseOwner(dbName, owner string) error {
88-
return c.pg.AlterDatabaseOwner(dbName, owner)
89-
}
90-
91-
func (c *gcppg) ReassignDatabaseOwner(dbName, currentOwner, newOwner string, logger logr.Logger) error {
92-
return c.pg.ReassignDatabaseOwner(dbName, currentOwner, newOwner, logger)
93-
}

0 commit comments

Comments
 (0)