mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-13 05:46:16 +00:00
Move cluster client creation to client.NewInCluster()
Built & pushed nettest:1.4.
This commit is contained in:
parent
68d0511d4e
commit
e3c0e38f1b
@ -37,7 +37,6 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"net"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
@ -202,20 +201,11 @@ func main() {
|
|||||||
// Find all sibling pods in the service and post to their /write handler.
|
// Find all sibling pods in the service and post to their /write handler.
|
||||||
func contactOthers(state *State) {
|
func contactOthers(state *State) {
|
||||||
defer state.doneContactingPeers()
|
defer state.doneContactingPeers()
|
||||||
token, err := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/token")
|
client, err := client.NewInCluster()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Unable to read service account token: %v", err)
|
log.Fatalf("Unable to create client; error: %v\n", err)
|
||||||
}
|
|
||||||
cc := client.Config{
|
|
||||||
Host: "https://" + net.JoinHostPort(os.Getenv("KUBERNETES_SERVICE_HOST"), os.Getenv("KUBERNETES_SERVICE_PORT")),
|
|
||||||
Version: "v1beta3",
|
|
||||||
BearerToken: string(token),
|
|
||||||
Insecure: true, // TOOD: package certs along with the token
|
|
||||||
}
|
|
||||||
client, err := client.New(&cc)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Unable to create client:\nconfig: %#v\nerror: %v\n", err)
|
|
||||||
}
|
}
|
||||||
|
// Double check that that worked by getting the server version.
|
||||||
if v, err := client.ServerVersion(); err != nil {
|
if v, err := client.ServerVersion(); err != nil {
|
||||||
log.Fatalf("Unable to get server version: %v\n", err)
|
log.Fatalf("Unable to get server version: %v\n", err)
|
||||||
} else {
|
} else {
|
||||||
|
@ -18,6 +18,7 @@ package client
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
@ -166,6 +167,34 @@ func NewOrDie(c *Config) *Client {
|
|||||||
return client
|
return client
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InClusterConfig returns a config object which uses the service account
|
||||||
|
// kubernetes gives to pods. It's intended for clients that expect to be
|
||||||
|
// running inside a pod running on kuberenetes. It will return an error if
|
||||||
|
// called from a process not running in a kubernetes environment.
|
||||||
|
func InClusterConfig() (*Config, error) {
|
||||||
|
token, err := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/token")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &Config{
|
||||||
|
// TODO: switch to using cluster DNS.
|
||||||
|
Host: "https://" + net.JoinHostPort(os.Getenv("KUBERNETES_SERVICE_HOST"), os.Getenv("KUBERNETES_SERVICE_PORT")),
|
||||||
|
Version: "v1beta3",
|
||||||
|
BearerToken: string(token),
|
||||||
|
// TODO: package certs along with the token
|
||||||
|
Insecure: true,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewInCluster is a shortcut for calling InClusterConfig() and then New().
|
||||||
|
func NewInCluster() (*Client, error) {
|
||||||
|
cc, err := InClusterConfig()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return New(cc)
|
||||||
|
}
|
||||||
|
|
||||||
// SetKubernetesDefaults sets default values on the provided client config for accessing the
|
// SetKubernetesDefaults sets default values on the provided client config for accessing the
|
||||||
// Kubernetes API or returns an error if any of the defaults are impossible or invalid.
|
// Kubernetes API or returns an error if any of the defaults are impossible or invalid.
|
||||||
func SetKubernetesDefaults(config *Config) error {
|
func SetKubernetesDefaults(config *Config) error {
|
||||||
|
Loading…
Reference in New Issue
Block a user