@@ -37,9 +37,11 @@ import (
37
37
// ReconcileOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of
38
38
// referencing the cmd.Flags()
39
39
type ReconcileOptions struct {
40
- PrintFlags * genericclioptions.PrintFlags
41
- FilenameOptions * resource.FilenameOptions
42
- DryRun bool
40
+ PrintFlags * genericclioptions.PrintFlags
41
+ FilenameOptions * resource.FilenameOptions
42
+ DryRun bool
43
+ RemoveExtraPermissions bool
44
+ RemoveExtraSubjects bool
43
45
44
46
Visitor resource.Visitor
45
47
RBACClient rbacv1client.RbacV1Interface
@@ -89,6 +91,8 @@ func NewCmdReconcile(f cmdutil.Factory, streams genericclioptions.IOStreams) *co
89
91
90
92
cmdutil .AddFilenameOptionFlags (cmd , o .FilenameOptions , "identifying the resource to reconcile." )
91
93
cmd .Flags ().BoolVar (& o .DryRun , "dry-run" , o .DryRun , "If true, display results but do not submit changes" )
94
+ cmd .Flags ().BoolVar (& o .RemoveExtraPermissions , "remove-extra-permissions" , o .RemoveExtraPermissions , "If true, removes extra permissions added to roles" )
95
+ cmd .Flags ().BoolVar (& o .RemoveExtraSubjects , "remove-extra-subjects" , o .RemoveExtraSubjects , "If true, removes extra subjects added to rolebindings" )
92
96
cmd .MarkFlagRequired ("filename" )
93
97
94
98
return cmd
@@ -174,7 +178,7 @@ func (o *ReconcileOptions) RunReconcile() error {
174
178
case * rbacv1.Role :
175
179
reconcileOptions := reconciliation.ReconcileRoleOptions {
176
180
Confirm : ! o .DryRun ,
177
- RemoveExtraPermissions : false ,
181
+ RemoveExtraPermissions : o . RemoveExtraPermissions ,
178
182
Role : reconciliation.RoleRuleOwner {Role : t },
179
183
Client : reconciliation.RoleModifier {
180
184
NamespaceClient : o .NamespaceClient .Namespaces (),
@@ -190,7 +194,7 @@ func (o *ReconcileOptions) RunReconcile() error {
190
194
case * rbacv1.ClusterRole :
191
195
reconcileOptions := reconciliation.ReconcileRoleOptions {
192
196
Confirm : ! o .DryRun ,
193
- RemoveExtraPermissions : false ,
197
+ RemoveExtraPermissions : o . RemoveExtraPermissions ,
194
198
Role : reconciliation.ClusterRoleRuleOwner {ClusterRole : t },
195
199
Client : reconciliation.ClusterRoleModifier {
196
200
Client : o .RBACClient .ClusterRoles (),
@@ -205,7 +209,7 @@ func (o *ReconcileOptions) RunReconcile() error {
205
209
case * rbacv1.RoleBinding :
206
210
reconcileOptions := reconciliation.ReconcileRoleBindingOptions {
207
211
Confirm : ! o .DryRun ,
208
- RemoveExtraSubjects : false ,
212
+ RemoveExtraSubjects : o . RemoveExtraSubjects ,
209
213
RoleBinding : reconciliation.RoleBindingAdapter {RoleBinding : t },
210
214
Client : reconciliation.RoleBindingClientAdapter {
211
215
Client : o .RBACClient ,
@@ -221,7 +225,7 @@ func (o *ReconcileOptions) RunReconcile() error {
221
225
case * rbacv1.ClusterRoleBinding :
222
226
reconcileOptions := reconciliation.ReconcileRoleBindingOptions {
223
227
Confirm : ! o .DryRun ,
224
- RemoveExtraSubjects : false ,
228
+ RemoveExtraSubjects : o . RemoveExtraSubjects ,
225
229
RoleBinding : reconciliation.ClusterRoleBindingAdapter {ClusterRoleBinding : t },
226
230
Client : reconciliation.ClusterRoleBindingClientAdapter {
227
231
Client : o .RBACClient .ClusterRoleBindings (),
0 commit comments