Skip to content

Commit f9fa42c

Browse files
authored
Fix service user role reconciliation (#979)
The check if roles are actually missing was flawed and would constanly try to update a service user if it had any additional roles assigned besides the wanted ones.
1 parent 6d53f8e commit f9fa42c

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

pkg/controller/flight/reconciler.go

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -143,21 +143,20 @@ func (f *flightReconciler) EnsureServiceUserRoles() []string {
143143
}
144144

145145
rolesToCreate := []string{}
146-
if len(existingUserRoles) != len(wantedUserRoles) {
147-
for _, wantedUserRole := range wantedUserRoles {
148-
exists := false
149-
for _, existingUserRole := range existingUserRoles {
150-
if existingUserRole == wantedUserRole {
151-
exists = true
152-
break
153-
}
154-
}
155-
if !exists {
156-
rolesToCreate = append(rolesToCreate, wantedUserRole)
146+
for _, wantedUserRole := range wantedUserRoles {
147+
exists := false
148+
for _, existingUserRole := range existingUserRoles {
149+
if existingUserRole == wantedUserRole {
150+
exists = true
151+
break
157152
}
158153
}
159-
160-
err = f.AdminClient.AssignUserRoles(secret.Openstack.ProjectID, secret.Openstack.Username, secret.Openstack.DomainName, wantedUserRoles)
154+
if !exists {
155+
rolesToCreate = append(rolesToCreate, wantedUserRole)
156+
}
157+
}
158+
if len(rolesToCreate) > 0 {
159+
err = f.AdminClient.AssignUserRoles(secret.Openstack.ProjectID, secret.Openstack.Username, secret.Openstack.DomainName, rolesToCreate)
161160
if err != nil {
162161
f.Logger.Log("msg", "couldn't reconcile service user roles", "err", err)
163162
}

0 commit comments

Comments
 (0)