k8sresolver

package module
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2019 License: MIT Imports: 9 Imported by: 0

README

k8sresolver

kubernetes resolver support for gRPC

Inspired by https://github.com/sercand/kuberesolver, using a better kubernetes client

Usage

import _ "go.guoyk.net/k8sresolver"

func main() {
  conn, err := grpc.Dial("k8s:///someservice.somenamespace:5000")
  _, _ = conn, err
}

Permission

By default, Pod uses the default ServiceAccount, thus read permission of endpoints must be assigned to default ServiceAccount

This is an example, modify if needed


---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
  name: endpoints-ro
  namespace: default
rules:
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
  name: default-sa-to-endpoints-ro
  namespace: default
subjects:
  - kind: ServiceAccount
    name: default
roleRef:
  kind: Role
  name: endpoints-ro
  apiGroup: rbac.authorization.k8s.io

License

Guo Y.K., MIT License

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// RefreshInterval periodic refresh interval
	RefreshInterval = time.Minute

	// DebounceInterval debounce interval
	DebounceInterval = time.Second * 3
)

Functions

This section is empty.

Types

type Builder

type Builder struct {
}

func (*Builder) Build

func (*Builder) Scheme

func (k *Builder) Scheme() string

type Resolver

type Resolver struct {
	// contains filtered or unexported fields
}

func NewResolver

func NewResolver(target k8s.Target, cc resolver.ClientConn, _ resolver.BuildOption, client k8s.Client) *Resolver

func (*Resolver) Close

func (r *Resolver) Close()

func (*Resolver) ResolveNow

func (r *Resolver) ResolveNow(opt resolver.ResolveNowOption)

func (*Resolver) Start

func (r *Resolver) Start()

Directories

Path Synopsis
pkg
k8s

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL