You need to sign in or sign up before continuing.
Commit 20cd94de authored by Matt Rogers's avatar Matt Rogers

Add dry-run to auth reconcile

parent 8306b0b1
...@@ -39,6 +39,7 @@ import ( ...@@ -39,6 +39,7 @@ import (
type ReconcileOptions struct { type ReconcileOptions struct {
PrintFlags *genericclioptions.PrintFlags PrintFlags *genericclioptions.PrintFlags
FilenameOptions *resource.FilenameOptions FilenameOptions *resource.FilenameOptions
DryRun bool
Visitor resource.Visitor Visitor resource.Visitor
RBACClient rbacv1client.RbacV1Interface RBACClient rbacv1client.RbacV1Interface
...@@ -87,6 +88,7 @@ func NewCmdReconcile(f cmdutil.Factory, streams genericclioptions.IOStreams) *co ...@@ -87,6 +88,7 @@ func NewCmdReconcile(f cmdutil.Factory, streams genericclioptions.IOStreams) *co
o.PrintFlags.AddFlags(cmd) o.PrintFlags.AddFlags(cmd)
cmdutil.AddFilenameOptionFlags(cmd, o.FilenameOptions, "identifying the resource to reconcile.") cmdutil.AddFilenameOptionFlags(cmd, o.FilenameOptions, "identifying the resource to reconcile.")
cmd.Flags().BoolVar(&o.DryRun, "dry-run", o.DryRun, "If true, display results but do not submit changes")
cmd.MarkFlagRequired("filename") cmd.MarkFlagRequired("filename")
return cmd return cmd
...@@ -128,6 +130,9 @@ func (o *ReconcileOptions) Complete(cmd *cobra.Command, f cmdutil.Factory, args ...@@ -128,6 +130,9 @@ func (o *ReconcileOptions) Complete(cmd *cobra.Command, f cmdutil.Factory, args
return err return err
} }
if o.DryRun {
o.PrintFlags.Complete("%s (dry run)")
}
printer, err := o.PrintFlags.ToPrinter() printer, err := o.PrintFlags.ToPrinter()
if err != nil { if err != nil {
return err return err
...@@ -168,7 +173,7 @@ func (o *ReconcileOptions) RunReconcile() error { ...@@ -168,7 +173,7 @@ func (o *ReconcileOptions) RunReconcile() error {
switch t := info.Object.(type) { switch t := info.Object.(type) {
case *rbacv1.Role: case *rbacv1.Role:
reconcileOptions := reconciliation.ReconcileRoleOptions{ reconcileOptions := reconciliation.ReconcileRoleOptions{
Confirm: true, Confirm: !o.DryRun,
RemoveExtraPermissions: false, RemoveExtraPermissions: false,
Role: reconciliation.RoleRuleOwner{Role: t}, Role: reconciliation.RoleRuleOwner{Role: t},
Client: reconciliation.RoleModifier{ Client: reconciliation.RoleModifier{
...@@ -184,7 +189,7 @@ func (o *ReconcileOptions) RunReconcile() error { ...@@ -184,7 +189,7 @@ func (o *ReconcileOptions) RunReconcile() error {
case *rbacv1.ClusterRole: case *rbacv1.ClusterRole:
reconcileOptions := reconciliation.ReconcileRoleOptions{ reconcileOptions := reconciliation.ReconcileRoleOptions{
Confirm: true, Confirm: !o.DryRun,
RemoveExtraPermissions: false, RemoveExtraPermissions: false,
Role: reconciliation.ClusterRoleRuleOwner{ClusterRole: t}, Role: reconciliation.ClusterRoleRuleOwner{ClusterRole: t},
Client: reconciliation.ClusterRoleModifier{ Client: reconciliation.ClusterRoleModifier{
...@@ -199,7 +204,7 @@ func (o *ReconcileOptions) RunReconcile() error { ...@@ -199,7 +204,7 @@ func (o *ReconcileOptions) RunReconcile() error {
case *rbacv1.RoleBinding: case *rbacv1.RoleBinding:
reconcileOptions := reconciliation.ReconcileRoleBindingOptions{ reconcileOptions := reconciliation.ReconcileRoleBindingOptions{
Confirm: true, Confirm: !o.DryRun,
RemoveExtraSubjects: false, RemoveExtraSubjects: false,
RoleBinding: reconciliation.RoleBindingAdapter{RoleBinding: t}, RoleBinding: reconciliation.RoleBindingAdapter{RoleBinding: t},
Client: reconciliation.RoleBindingClientAdapter{ Client: reconciliation.RoleBindingClientAdapter{
...@@ -215,7 +220,7 @@ func (o *ReconcileOptions) RunReconcile() error { ...@@ -215,7 +220,7 @@ func (o *ReconcileOptions) RunReconcile() error {
case *rbacv1.ClusterRoleBinding: case *rbacv1.ClusterRoleBinding:
reconcileOptions := reconciliation.ReconcileRoleBindingOptions{ reconcileOptions := reconciliation.ReconcileRoleBindingOptions{
Confirm: true, Confirm: !o.DryRun,
RemoveExtraSubjects: false, RemoveExtraSubjects: false,
RoleBinding: reconciliation.ClusterRoleBindingAdapter{ClusterRoleBinding: t}, RoleBinding: reconciliation.ClusterRoleBindingAdapter{ClusterRoleBinding: t},
Client: reconciliation.ClusterRoleBindingClientAdapter{ Client: reconciliation.ClusterRoleBindingClientAdapter{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment