...
1 package main
2
3 import (
4 "context"
5 "flag"
6 "fmt"
7 "os"
8
9 "sigs.k8s.io/yaml"
10
11 "github.com/linkerd/linkerd2/controller/gen/client/clientset/versioned"
12 "github.com/linkerd/linkerd2/pkg/k8s"
13 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
14 )
15
16 func main() {
17 namespace := flag.String("namespace", "", "namespace of resource to get")
18 flag.Parse()
19
20 config, err := k8s.GetConfig("", "")
21 if err != nil {
22 fmt.Fprintf(os.Stderr, "error configuring Kubernetes API client: %v", err)
23 os.Exit(1)
24 }
25 client := versioned.NewForConfigOrDie(config)
26
27 srvWatch, err := client.ServerV1beta2().Servers(*namespace).Watch(context.Background(), metav1.ListOptions{})
28 if err != nil {
29 fmt.Fprintf(os.Stderr, "failed to watch Servers: %s", err)
30 os.Exit(1)
31 }
32 sazWatch, err := client.ServerauthorizationV1beta1().ServerAuthorizations(*namespace).Watch(context.Background(), metav1.ListOptions{})
33 if err != nil {
34 fmt.Fprintf(os.Stderr, "failed to watch ServerAuthorizations: %s", err)
35 os.Exit(1)
36 }
37 srvUpdates := srvWatch.ResultChan()
38 sazUpdates := sazWatch.ResultChan()
39
40 for {
41 var update interface{}
42 select {
43 case u := <-srvUpdates:
44 update = u
45 case u := <-sazUpdates:
46 update = u
47 }
48 b, _ := yaml.Marshal(update)
49 fmt.Println(string(b))
50 }
51 }
52
View as plain text