-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
The field spec.name is not used to add / create or update policies on the minio side, as opposed of what is documented in the readme. https://github.com/InseeFrLab/s3-operator#policy-example
s3-operator/internal/controller/user/reconcile.go
Lines 374 to 448 in c77853a
| policyToDelete := []string{} | |
| policyToAdd := []string{} | |
| for _, policy := range userPolicies { | |
| policyFound := slices.Contains(userResource.Spec.Policies, policy) | |
| if !policyFound { | |
| logger.Info( | |
| fmt.Sprintf("S3User has unexpected policy not in definition: %s", policy), | |
| "userResource", | |
| userResource.Name, | |
| "NamespacedName", | |
| req.NamespacedName.String(), | |
| ) | |
| policyToDelete = append(policyToDelete, policy) | |
| } | |
| } | |
| for _, policy := range userResource.Spec.Policies { | |
| policyFound := slices.Contains(userPolicies, policy) | |
| if !policyFound { | |
| logger.Info( | |
| fmt.Sprintf("S3User is missing policy from definition: %s", policy), | |
| "userResource", | |
| userResource.Name, | |
| "NamespacedName", | |
| req.NamespacedName.String(), | |
| ) | |
| policyToAdd = append(policyToAdd, policy) | |
| } | |
| } | |
| if len(policyToDelete) > 0 { | |
| err = s3Client.RemovePoliciesFromUser(userResource.Spec.AccessKey, policyToDelete) | |
| if err != nil { | |
| logger.Error( | |
| err, | |
| "An error occurred while removing policy to user", | |
| "userResource", | |
| userResource.Name, | |
| "NamespacedName", | |
| req.NamespacedName.String(), | |
| ) | |
| return r.SetReconciledCondition( | |
| ctx, | |
| req, | |
| userResource, | |
| s3v1alpha1.Unreachable, | |
| "Error while updating policies of user", | |
| err, | |
| ) | |
| } | |
| } | |
| if len(policyToAdd) > 0 { | |
| err := s3Client.AddPoliciesToUser(userResource.Spec.AccessKey, policyToAdd) | |
| if err != nil { | |
| logger.Error( | |
| err, | |
| "An error occurred while adding policy to user", | |
| "userResource", | |
| userResource.Name, | |
| "NamespacedName", | |
| req.NamespacedName.String(), | |
| ) | |
| return r.SetReconciledCondition( | |
| ctx, | |
| req, | |
| userResource, | |
| s3v1alpha1.Unreachable, | |
| "Error while updating policies of user", | |
| err, | |
| ) | |
| } | |
| } |
Metadata
Metadata
Assignees
Labels
No labels