You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement Pruning of removed upstream groups (#166)
* wip: looking into pruning
* wip: actually prune based on syncTime annotation
* change how syncStartTime is used so each group still gets it's own sync time annotation like currently. other minor cleanup
* refactoring names
* Return prune value
* Add missing prune to CRD for AzureProvider
* Update documentation
* Remove debugging info from logger on prune
* Prune groups and include count of pruned groups in sync complete status log
* Add new metric for groupsPruned
* Restore accidental removal in deepcopy
* Add backticks in docs around prune false
Copy file name to clipboardExpand all lines: README.md
+9-4Lines changed: 9 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -77,6 +77,7 @@ Groups contained within Azure Active Directory can be synchronized into OpenShif
77
77
|`filter`| Graph API filter || No |
78
78
|`groups`| List of groups to filter against || No |
79
79
|`userNameAttributes`| Fields on a user record to use as the User Name |`userPrincipalName`| No |
80
+
|`prune`| Prune Whether to prune groups that are no longer in Azure |`false`| No |
80
81
81
82
The following is an example of a minimal configuration that can be applied to integrate with a Azure provider:
82
83
@@ -131,6 +132,7 @@ Teams stored within a GitHub organization can be synchronized into OpenShift. Th
131
132
|`organization`| Organization to synchronize against || Yes |
132
133
|`teams`| List of teams to filter against || No |
133
134
|`url`| Base URL for the GitHub or GitHub Enterprise host (Must contain a trailing slash) || No |
135
+
|`prune`| Prune Whether to prune groups that are no longer in GitHub |`false`| No |
134
136
135
137
The following is an example of a minimal configuration that can be applied to integrate with a GitHub provider:
136
138
@@ -199,9 +201,10 @@ Groups stored within a GitLab can be synchronized into OpenShift. The following
199
201
|`ca`| Reference to a resource containing a SSL certificate to use for communication (See below) || No |
200
202
|`caSecret`|**DEPRECATED** Reference to a secret containing a SSL certificate to use for communication (See below) || No |
201
203
|`credentialsSecret`| Reference to a secret containing authentication details (See below) || Yes |
202
-
|`insecure`| Ignore SSL verification |'false'| No |
204
+
|`insecure`| Ignore SSL verification |`false`| No |
203
205
|`groups`| List of groups to filter against || No |
204
206
|`url`| Base URL for the GitLab instance |`https://gitlab.com`| No |
207
+
|`prune`| Prune Whether to prune groups that are no longer in GitLab |`false`| No |
205
208
206
209
The following is an example of a minimal configuration that can be applied to integrate with a GitHub provider:
207
210
@@ -255,14 +258,15 @@ The configurations of the three primary schemas (`rfc2307`, `activeDirectory` an
255
258
|`ca`| Reference to a resource containing a SSL certificate to use for communication (See below) || No |
256
259
|`caSecret`|**DEPRECATED** Reference to a secret containing a SSL certificate to use for communication (See below) || No |
257
260
|`credentialsSecret`| Reference to a secret containing authentication details (See below) || No |
258
-
|`insecure`| Ignore SSL verification |'false'| No |
261
+
|`insecure`| Ignore SSL verification |`false`| No |
259
262
|`groupUIDNameMapping`| User defined name mapping || No |
260
263
|`rfc2307`| Configuration using the [rfc2307](https://docs.openshift.com/container-platform/latest/authentication/ldap-syncing.html#ldap-syncing-rfc2307_ldap-syncing-groups) schema || No |
261
264
|`activeDirectory`| Configuration using the [activeDirectory](https://docs.openshift.com/container-platform/4.5/authentication/ldap-syncing.html#ldap-syncing-activedir_ldap-syncing-groups) schema || No |
262
265
|`augmentedActiveDirectory`| Configuration using the [activeDirectory](https://docs.openshift.com/container-platform/4.5/authentication/ldap-syncing.html#ldap-syncing-augmented-activedir_ldap-syncing-groups) schema || No |
263
266
|`url`| Connection URL for the LDAP server |`https://gitlab.cldap://ldapserver:389om`| No |
264
267
|`whitelist`| Explicit list of groups to synchronize || No |
265
268
|`blacklist`| Explicit list of groups to not synchronize || No |
269
+
|`prune`| Prune Whether to prune groups that are no longer in LDAP |`false`| No |
266
270
267
271
The following is an example using the `rfc2307` schema:
268
272
@@ -361,11 +365,12 @@ Groups stored within Keycloak can be synchronized into OpenShift. The following
361
365
|`caSecret`|**DEPRECATED** Reference to a secret containing a SSL certificate to use for communication (See below) || No |
362
366
|`credentialsSecret`| Reference to a secret containing authentication details (See below) || Yes |
363
367
|`groups`| List of groups to filter against || No |
364
-
|`insecure`| Ignore SSL verification |'false'| No |
368
+
|`insecure`| Ignore SSL verification |`false`| No |
365
369
|`loginRealm`| Realm to authenticate against |`master`| No |
366
370
|`realm`| Realm to synchronize || Yes |
367
371
|`scope`| Scope for group synchronization. Options are `one` for one level or `sub` to include subgroups |`sub`| No |
368
372
|`url`| URL Location for Keycloak || Yes |
373
+
|`prune`| Prune Whether to prune groups that are no longer in Keycloak |`false`| No |
369
374
370
375
The following is an example of a minimal configuration that can be applied to integrate with a Keycloak provider:
371
376
@@ -417,7 +422,7 @@ The following table describes the set of configuration options for the Okta prov
417
422
|`extractLoginUsername`| Bool to determine if you should extract username from okta login |`false`| No |
418
423
|`profileKey`| Attribute field on Okta User Profile you would like to use as identity |`'login'`| No |
419
424
|`groupLimit`| Integer to set the maximum number of groups to retrieve from OKTA per request. |`1000`| No |
420
-
425
+
|`prune`| Prune Whether to prune groups that are no longer in OKTA |`false`| No |
421
426
422
427
The following is an example of a minimal configuration that can be applied to integrate with an Okta provider:
// LdapProvider represents integration with an LDAP server
@@ -335,6 +350,11 @@ type LdapProvider struct {
335
350
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Blacklisted groups to not synchronize",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
336
351
// +kubebuilder:validation:Optional
337
352
Blacklist*[]string`json:"blacklist,omitempty"`
353
+
354
+
// Prune Whether to prune groups that are no longer in LDAP. Default is false
0 commit comments