Documentation ¶
Overview ¶
Package k8srestconfig provides interface to create client-go rest config which can be used to construct various clients.
Example usage:
import ( "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" "github.com/giantswarm/apiextensions/pkg/clientset/versioned" "github.com/giantswarm/k8sclient/k8srestconfig" "github.com/giantswarm/microerror" ) func f(config Config) error { var err error var restConfig *rest.Config { c := k8srestconfig.Config{ Logger: config.Logger, Address: config.Viper.GetString(config.Flag.Service.Kubernetes.Address), InCluster: config.Viper.GetBool(config.Flag.Service.Kubernetes.InCluster), KubeConfig: config.Viper.GetBool(config.Flag.Service.Kubernetes.KubeConfig), TLS: k8srestconfig.ConfigTLS{ CAFile: config.Viper.GetString(config.Flag.Service.Kubernetes.TLS.CAFile), CrtFile: config.Viper.GetString(config.Flag.Service.Kubernetes.TLS.CrtFile), KeyFile: config.Viper.GetString(config.Flag.Service.Kubernetes.TLS.KeyFile), }, } restConfig, err = k8srestconfig.New(c) if err != nil { return microerror.Mask(err) } } k8sClient, err := kubernetes.NewForConfig(restConfig) if err != nil { return micorerror.Mask(err) } k8sExtClient, err := apiextensionsclient.NewForConfig(restConfig) if err != nil { return micorerror.Mask(err) } g8sClient, err := versioned.NewForConfig(restConfig) if err != nil { return microerror.Mask(err) } }
Index ¶
Constants ¶
View Source
const ( // Maximum QPS to the master from this client. MaxQPS = 100 // Maximum burst for throttle. MaxBurst = 100 DefaultTimeout = 10 * time.Second )
Variables ¶
This section is empty.
Functions ¶
func IsInvalidConfig ¶
IsInvalidConfig asserts invalidConfigError.
Types ¶
type Config ¶
type Config struct { // Dependencies. Logger micrologger.Logger // Settings Address string KubeConfig string InCluster bool Timeout time.Duration TLS ConfigTLS }
Config contains the common attributes to create a Kubernetes Clientset.
type ConfigTLS ¶
type ConfigTLS struct { // CAFile is the CA certificate for the cluster. CAFile string // CrtFile is the TLS client certificate. CrtFile string // KeyFile is the key for the TLS client certificate. KeyFile string // CAData holds PEM-encoded bytes. CAData takes precedence over CAFile. CAData []byte // CrtData holds PEM-encoded bytes. CrtData takes precedence over CrtFile. CrtData []byte // KeyData holds PEM-encoded bytes. KeyData takes precedence over KeyFile. KeyData []byte }
ConfigTLS contains settings to enable transport layer security.
Click to show internal directories.
Click to hide internal directories.