/
kubernetes.go
66 lines (54 loc) · 1.59 KB
/
kubernetes.go
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
54
55
56
57
58
59
60
61
62
63
64
65
66
package cmd
import (
"context"
"os"
"strings"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/cli-runtime/pkg/genericclioptions"
cmdutil "k8s.io/kubectl/pkg/cmd/util"
)
var (
ioStreams = genericclioptions.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr}
kubeConfigFlags = genericclioptions.NewConfigFlags(true)
kubeFactory cmdutil.Factory
)
var (
flagAllApplications bool
flagAllInstances bool
)
func init() {
kubeConfigFlags.AddFlags(rootCmd.PersistentFlags())
rootCmd.PersistentFlags().MarkHidden("as")
rootCmd.PersistentFlags().MarkHidden("as-group")
rootCmd.PersistentFlags().MarkHidden("cache-dir")
matchVersionKubeConfigFlags := cmdutil.NewMatchVersionFlags(kubeConfigFlags)
kubeFactory = cmdutil.NewFactory(matchVersionKubeConfigFlags)
if *kubeConfigFlags.Context == "" && os.Getenv("KUBECONTEXT") != "" {
*kubeConfigFlags.Context = os.Getenv("KUBECONTEXT")
}
}
func getSelector(labels map[string]string) string {
var selectorList = make([]string, 0, len(labels))
if flagAllApplications {
selectorList = append(selectorList, "app.kubernetes.io/managed-by=app2kube")
} else {
for k, v := range labels {
if flagAllInstances && k == "app.kubernetes.io/instance" {
continue
}
selectorList = append(selectorList, k+"="+v)
}
}
return strings.Join(selectorList, ",")
}
func deleteDeployment(name, namespace string) error {
kcs, err := kubeFactory.KubernetesClientSet()
if err != nil {
return err
}
err = kcs.AppsV1().Deployments(namespace).Delete(context.TODO(), name, metav1.DeleteOptions{})
if err != nil {
return err
}
return nil
}