delete k8s

This commit is contained in:
wangchuxiao
2023-05-16 10:25:05 +08:00
parent ba8d14a5bf
commit 9d3237e0ab
3 changed files with 47 additions and 126 deletions
+45 -57
View File
@@ -1,63 +1,51 @@
package discoveryregistry
import (
"context"
"fmt"
"net"
// type DnsDiscoveryRegistry struct {
// opts []grpc.DialOption
// namespace string
// clientset *kubernetes.Clientset
// }
"google.golang.org/grpc"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
// func NewDnsDiscoveryRegistry(namespace string, opts []grpc.DialOption) (*DnsDiscoveryRegistry, error) {
// config, err := rest.InClusterConfig()
// if err != nil {
// return nil, err
// }
// clientset, err := kubernetes.NewForConfig(config)
// if err != nil {
// return nil, err
// }
// return &DnsDiscoveryRegistry{
// clientset: clientset,
// namespace: namespace,
// opts: opts,
// }, nil
// }
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
)
// func (d DnsDiscoveryRegistry) GetConns(ctx context.Context, serviceName string, opts ...grpc.DialOption) ([]*grpc.ClientConn, error) {
// endpoints, err := d.clientset.CoreV1().Endpoints(d.namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
// if err != nil {
// return nil, err
// }
// var conns []*grpc.ClientConn
// for _, subset := range endpoints.Subsets {
// for _, address := range subset.Addresses {
// for _, port := range subset.Ports {
// conn, err := grpc.DialContext(ctx, net.JoinHostPort(address.IP, string(port.Port)), append(d.opts, opts...)...)
// if err != nil {
// return nil, err
// }
// conns = append(conns, conn)
// }
// }
// }
// return conns, nil
// }
type DnsDiscoveryRegistry struct {
opts []grpc.DialOption
namespace string
clientset *kubernetes.Clientset
}
// func (d DnsDiscoveryRegistry) GetConn(ctx context.Context, serviceName string, opts ...grpc.DialOption) (*grpc.ClientConn, error) {
// return grpc.DialContext(ctx, fmt.Sprintf("%s.%s.svc.cluster.local", serviceName, d.namespace), append(d.opts, opts...)...)
// }
func NewDnsDiscoveryRegistry(namespace string, opts []grpc.DialOption) (*DnsDiscoveryRegistry, error) {
config, err := rest.InClusterConfig()
if err != nil {
return nil, err
}
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
return nil, err
}
return &DnsDiscoveryRegistry{
clientset: clientset,
namespace: namespace,
opts: opts,
}, nil
}
func (d DnsDiscoveryRegistry) GetConns(ctx context.Context, serviceName string, opts ...grpc.DialOption) ([]*grpc.ClientConn, error) {
endpoints, err := d.clientset.CoreV1().Endpoints(d.namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
if err != nil {
return nil, err
}
var conns []*grpc.ClientConn
for _, subset := range endpoints.Subsets {
for _, address := range subset.Addresses {
for _, port := range subset.Ports {
conn, err := grpc.DialContext(ctx, net.JoinHostPort(address.IP, string(port.Port)), append(d.opts, opts...)...)
if err != nil {
return nil, err
}
conns = append(conns, conn)
}
}
}
return conns, nil
}
func (d DnsDiscoveryRegistry) GetConn(ctx context.Context, serviceName string, opts ...grpc.DialOption) (*grpc.ClientConn, error) {
return grpc.DialContext(ctx, fmt.Sprintf("%s.%s.svc.cluster.local", serviceName, d.namespace), append(d.opts, opts...)...)
}
func (d *DnsDiscoveryRegistry) AddOption(opts ...grpc.DialOption) {
d.opts = append(d.opts, opts...)
}
// func (d *DnsDiscoveryRegistry) AddOption(opts ...grpc.DialOption) {
// d.opts = append(d.opts, opts...)
// }