...

Source file src/github.com/linkerd/linkerd2/controller/script/policy-client/main.go

Documentation: github.com/linkerd/linkerd2/controller/script/policy-client

     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