From e0bd75308dba86c77f8af81fb9f9ab4b4f605034 Mon Sep 17 00:00:00 2001 From: Charlie Egan Date: Fri, 18 Nov 2022 16:27:09 +0000 Subject: [PATCH] Handle options and skip issuer kinds print --- internal/command/clusters/backup.go | 2 - internal/kubernetes/backup/backup.go | 94 +++++++++++++++------------- 2 files changed, 50 insertions(+), 46 deletions(-) diff --git a/internal/command/clusters/backup.go b/internal/command/clusters/backup.go index aac1b7f..643639d 100644 --- a/internal/command/clusters/backup.go +++ b/internal/command/clusters/backup.go @@ -64,8 +64,6 @@ func Backup(run types.RunFunc, kubeConfigPath *string) *cobra.Command { } allIssuersString := allIssuers.String() - fmt.Println(allIssuersString) - flags := cmd.PersistentFlags() flags.BoolVar(&formatResources, "format-resources", true, "if set, will remove some fields from resources such as status and metadata to allow them to be cleanly applied later") flags.StringVar(&outputFormat, "format", "yaml", "output format, one of: yaml, json") diff --git a/internal/kubernetes/backup/backup.go b/internal/kubernetes/backup/backup.go index eb276f1..c509f66 100644 --- a/internal/kubernetes/backup/backup.go +++ b/internal/kubernetes/backup/backup.go @@ -100,63 +100,69 @@ func FetchClusterBackup(ctx context.Context, opts ClusterBackupOptions) (*Cluste } // fetch all configured issuers and external issuers - issuers, err := fetchAllIssuers(ctx, opts.RestConfig, dropFields) - if err != nil { - return &ClusterBackup{}, fmt.Errorf("failed to backup issuers: %w", err) + if opts.IncludeIssuers { + issuers, err := fetchAllIssuers(ctx, opts.RestConfig, dropFields) + if err != nil { + return &ClusterBackup{}, fmt.Errorf("failed to backup issuers: %w", err) + } + clusterBackup = append(clusterBackup, issuers...) } - clusterBackup = append(clusterBackup, issuers...) // fetch certifcates - certificateClient, err := clients.NewCertificateClient(opts.RestConfig) - if err != nil { - return &ClusterBackup{}, fmt.Errorf("failed to create client for certificates: %w", err) - } + if opts.IncludeCertificates { + certificateClient, err := clients.NewCertificateClient(opts.RestConfig) + if err != nil { + return &ClusterBackup{}, fmt.Errorf("failed to create client for certificates: %w", err) + } - var certificates v1certmanager.CertificateList - err = certificateClient.List( - ctx, - &clients.GenericRequestOptions{DropFields: dropFields}, - &certificates, - ) - if err != nil { - return &ClusterBackup{}, fmt.Errorf("failed to list certificates: %w", err) - } - for _, c := range certificates.Items { - // we do not include ingress certs, skip them - skip := false - if len(c.OwnerReferences) > 0 { - for _, owner := range c.OwnerReferences { - if owner.Kind == "Ingress" { - fmt.Fprintf(os.Stderr, "skipping ingress-shim managed certificate %s/%s\n", c.Namespace, c.Name) - skip = true - break + var certificates v1certmanager.CertificateList + err = certificateClient.List( + ctx, + &clients.GenericRequestOptions{DropFields: dropFields}, + &certificates, + ) + if err != nil { + return &ClusterBackup{}, fmt.Errorf("failed to list certificates: %w", err) + } + for _, c := range certificates.Items { + // we do not include ingress certs, skip them + skip := false + if len(c.OwnerReferences) > 0 { + for _, owner := range c.OwnerReferences { + if owner.Kind == "Ingress" { + fmt.Fprintf(os.Stderr, "skipping ingress-shim managed certificate %s/%s\n", c.Namespace, c.Name) + skip = true + break + } } } - } - if !skip { - clusterBackup = append(clusterBackup, c) + if !skip { + clusterBackup = append(clusterBackup, c) + } } } // fetch certificate request policies // Note: this back up data is not used in the migration to an operator managed installation. // These resourcse are only included for disaster recovery purposes. - certificateRequestPolicyClient, err := clients.NewCertificateRequestPolicyClient(opts.RestConfig) - if err != nil { - return &ClusterBackup{}, fmt.Errorf("failed to create client for certificate request policies: %w", err) - } + if opts.IncludeCertificateRequestPolicies { + certificateRequestPolicyClient, err := clients.NewCertificateRequestPolicyClient(opts.RestConfig) + if err != nil { + return &ClusterBackup{}, fmt.Errorf("failed to create client for certificate request policies: %w", err) + } - var certificateRequestPolicies v1alpha1approverpolicy.CertificateRequestPolicyList - err = certificateRequestPolicyClient.List( - ctx, - &clients.GenericRequestOptions{DropFields: dropFields}, - &certificateRequestPolicies, - ) - if err != nil { - return &ClusterBackup{}, fmt.Errorf("failed to list certificate request policies: %w", err) - } - for _, p := range certificateRequestPolicies.Items { - clusterBackup = append(clusterBackup, p) + var certificateRequestPolicies v1alpha1approverpolicy.CertificateRequestPolicyList + err = certificateRequestPolicyClient.List( + ctx, + &clients.GenericRequestOptions{DropFields: dropFields}, + &certificateRequestPolicies, + ) + if err != nil { + return &ClusterBackup{}, fmt.Errorf("failed to list certificate request policies: %w", err) + } + for _, p := range certificateRequestPolicies.Items { + clusterBackup = append(clusterBackup, p) + } } return &clusterBackup, nil