istio API

istio API,第1张

概述packagemainimport("context""flag""fmt"networkingv1beta1"istio.io/apietworking/v1beta1""istio.io/client-go/pkg/apisetworking/v1beta1"versionedclient"istio.io/cli
package mainimport (    "context"    "flag"    "fmt"    networkingv1beta1 "istio.io/API/networking/v1beta1"    "istio.io/clIEnt-go/pkg/APIs/networking/v1beta1"    versionedclIEnt "istio.io/clIEnt-go/pkg/clIEntset/versioned"    "istio.io/clIEnt-go/pkg/informers/externalversions"    v1 "k8s.io/APImachinery/pkg/APIs/Meta/v1"    "k8s.io/clIEnt-go/tools/cache"    "k8s.io/clIEnt-go/tools/clIEntcmd"    "k8s.io/clIEnt-go/util/homedir"    "log"    "path/filepath")func main() {    var kubeconfig *string    if home := homedir.HomeDir(); home != "" {        kubeconfig = flag.String("config", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kube config file")    } else {        kubeconfig = flag.String("config", "", "absolute path to the kube config file")    }    restConfig, err := clIEntcmd.BuildConfigFromFlags("", *kubeconfig)    if err != nil {        log.Fatalf("Failed to create k8s rest clIEnt: %s", err)    }    clIEntSet, err := versionedclIEnt.NewForConfig(restConfig)    if err != nil {        log.Fatalf("Failed to create istio clIEnt: %s", err)    }    factory := externalversions.NewSharedInformerFactory(clIEntSet, 0)    Stopper := make(chan struct{})    // 启动 informer,List & watch    go factory.Start(Stopper)    virtualServiceInformer := factory.Networking().V1beta1().VirtualServices()    virtualServiceIndexer := virtualServiceInformer.Informer()    // 从 APIserver 同步资源,即 List    if !cache.WaitForCacheSync(Stopper, virtualServiceIndexer.HasSynced) {        panic("scaled_object informer timed out waiting for caches to sync")    }    vs, err := virtualServiceInformer.Lister().VirtualServices("default").Get("bookinfo")    if err != nil {        log.Fatalf("Failed to get virtualService: %s", err)    }    fmt.Println("virtualService--------", vs.name)    vsNew := &v1beta1.VirtualService{        ObjectMeta: v1.ObjectMeta{            name: "bookinfo2",        },        Spec: networkingv1beta1.VirtualService{            Hosts:    []string{"*"},            Gateways: []string{"bookinfo-gateway"},            http: []*networkingv1beta1.httpRoute{                {                    Match: []*networkingv1beta1.httpMatchRequest{                        {                            Uri: &networkingv1beta1.StringMatch{                                MatchType: &networkingv1beta1.StringMatch_Prefix{                                    Prefix: "/static",                                },                            },                        },                    },                    Route: []*networkingv1beta1.httpRouteDestination{                        {                            Destination: &networkingv1beta1.Destination{                                Host: "productpage",                                Port: &networkingv1beta1.PortSelector{                                    Number: 8090,                                },                            },                        },                    },                },            },        },    }    _, err = clIEntSet.NetworkingV1beta1().VirtualServices("default").Create(context.Background(), vsNew, v1.CreateOptions{})    if err != nil {        log.Fatalf("Failed to create virtualService: %s", err)    }    fmt.Println("创建成功")    // Print all VirtualServices    //vsList, err := clIEntSet.NetworkingV1Alpha3().VirtualServices("default").List(context.Background(), Metav1.ListOptions{})    //if err != nil {    //  log.Fatalf("Failed to get VirtualService in %s namespace: %s", "default", err)    //}    //for i := range vsList.Items {    //  vs := vsList.Items[i]    //  log.Printf("Index: %d VirtualService Hosts: %+v\n", i, vs.name)    //}}
总结

以上是内存溢出为你收集整理的istio API全部内容,希望文章能够帮你解决istio API所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1228802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存