-
Notifications
You must be signed in to change notification settings - Fork 85
Expand file tree
/
Copy pathcheck.go
More file actions
53 lines (47 loc) · 1.73 KB
/
check.go
File metadata and controls
53 lines (47 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package cmds
import (
"github.com/appscode/go/log"
"github.com/appscode/kutil/meta"
"github.com/appscode/kutil/tools/analytics"
cs "github.com/appscode/stash/client/typed/stash/v1alpha1"
"github.com/appscode/stash/pkg/check"
"github.com/spf13/cobra"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
func NewCmdCheck() *cobra.Command {
var (
masterURL string
kubeconfigPath string
opt = check.Options{
Namespace: meta.Namespace(),
}
)
cmd := &cobra.Command{
Use: "check",
Short: "Check restic backup",
DisableAutoGenTag: true,
Run: func(cmd *cobra.Command, args []string) {
config, err := clientcmd.BuildConfigFromFlags(masterURL, kubeconfigPath)
if err != nil {
log.Fatalln(err)
}
kubeClient := kubernetes.NewForConfigOrDie(config)
stashClient := cs.NewForConfigOrDie(config)
if meta.PossiblyInCluster() {
sendAnalytics(cmd, analytics.ClientID(kubeClient.CoreV1().Nodes()))
}
c := check.New(kubeClient, stashClient, opt)
if err = c.Run(); err != nil {
log.Fatal(err)
}
log.Infoln("Exiting stash check")
},
}
cmd.Flags().StringVar(&masterURL, "master", masterURL, "The address of the Kubernetes API server (overrides any value in kubeconfig)")
cmd.Flags().StringVar(&kubeconfigPath, "kubeconfig", kubeconfigPath, "Path to kubeconfig file with authorization information (the master location is set by the master flag).")
cmd.Flags().StringVar(&opt.ResticName, "restic-name", opt.ResticName, "Name of the Restic CRD.")
cmd.Flags().StringVar(&opt.HostName, "host-name", opt.HostName, "Host name for workload.")
cmd.Flags().StringVar(&opt.SmartPrefix, "smart-prefix", opt.SmartPrefix, "Smart prefix for workload")
return cmd
}