...
1 package cmd
2
3 import (
4 "context"
5 "fmt"
6 "os"
7
8 pkgCmd "github.com/linkerd/linkerd2/pkg/cmd"
9 "github.com/linkerd/linkerd2/pkg/k8s"
10 "github.com/spf13/cobra"
11 )
12
13 func newCmdUninstall() *cobra.Command {
14 cmd := &cobra.Command{
15 Use: "uninstall",
16 Args: cobra.NoArgs,
17 Short: "Output Kubernetes resources to uninstall the Linkerd-jaeger extension",
18 Long: `Output Kubernetes resources to uninstall the Linkerd-jaeger extension.
19
20 This command provides all Kubernetes namespace-scoped and cluster-scoped resources (e.g services, deployments, RBACs, etc.) necessary to uninstall the Linkerd-jaeger extension.`,
21 Example: `linkerd uninstall | kubectl delete -f -`,
22 RunE: func(cmd *cobra.Command, args []string) error {
23 err := uninstallRunE(cmd.Context())
24 if err != nil {
25 fmt.Fprintln(os.Stderr, err)
26 os.Exit(1)
27 }
28 return nil
29 },
30 }
31
32 return cmd
33 }
34
35 func uninstallRunE(ctx context.Context) error {
36 k8sAPI, err := k8s.NewAPI(kubeconfigPath, kubeContext, impersonate, impersonateGroup, 0)
37 if err != nil {
38 return err
39 }
40
41 selector, err := pkgCmd.GetLabelSelector(k8s.LinkerdExtensionLabel, JaegerExtensionName, JaegerLegacyExtension)
42 if err != nil {
43 return err
44 }
45
46 return pkgCmd.Uninstall(ctx, k8sAPI, selector)
47 }
48
View as plain text