kubeadm: gofmt'ed cmd/kubeadm.

This commit is contained in:
Paulo Pires 2016-10-28 21:24:59 -04:00
parent b7c685d421
commit eb6eeb704a
No known key found for this signature in database
GPG Key ID: F3F6ED5C522EAA71
11 changed files with 267 additions and 267 deletions

View File

@ -47,13 +47,13 @@ func SetEnvParams() *EnvParams {
} }
} }
return &EnvParams{ return &EnvParams{
KubernetesDir: envParams["kubernetes_dir"], KubernetesDir: envParams["kubernetes_dir"],
HostPKIPath: envParams["host_pki_path"], HostPKIPath: envParams["host_pki_path"],
HostEtcdPath: envParams["host_etcd_path"], HostEtcdPath: envParams["host_etcd_path"],
HyperkubeImage: envParams["hyperkube_image"], HyperkubeImage: envParams["hyperkube_image"],
DiscoveryImage: envParams["discovery_image"], DiscoveryImage: envParams["discovery_image"],
EtcdImage: envParams["etcd_image"], EtcdImage: envParams["etcd_image"],
ComponentLoglevel: envParams["component_loglevel"], ComponentLoglevel: envParams["component_loglevel"],
} }
} }

View File

@ -19,13 +19,13 @@ package kubeadm
import "k8s.io/kubernetes/pkg/api/unversioned" import "k8s.io/kubernetes/pkg/api/unversioned"
type EnvParams struct { type EnvParams struct {
KubernetesDir string KubernetesDir string
HostPKIPath string HostPKIPath string
HostEtcdPath string HostEtcdPath string
HyperkubeImage string HyperkubeImage string
DiscoveryImage string DiscoveryImage string
EtcdImage string EtcdImage string
ComponentLoglevel string ComponentLoglevel string
} }
type MasterConfiguration struct { type MasterConfiguration struct {

View File

@ -36,7 +36,7 @@ func createKubeProxyPodSpec(cfg *kubeadmapi.MasterConfiguration) api.PodSpec {
SecurityContext: &api.PodSecurityContext{HostNetwork: true}, SecurityContext: &api.PodSecurityContext{HostNetwork: true},
Containers: []api.Container{{ Containers: []api.Container{{
Name: kubeProxy, Name: kubeProxy,
Image: images.GetCoreImage(images.KubeProxyImage, cfg, kubeadmapi.GlobalEnvParams.HyperkubeImage), Image: images.GetCoreImage(images.KubeProxyImage, cfg, kubeadmapi.GlobalEnvParams.HyperkubeImage),
Command: append(getProxyCommand(cfg), "--kubeconfig=/run/kubeconfig"), Command: append(getProxyCommand(cfg), "--kubeconfig=/run/kubeconfig"),
SecurityContext: &api.SecurityContext{Privileged: &privilegedTrue}, SecurityContext: &api.SecurityContext{Privileged: &privilegedTrue},
VolumeMounts: []api.VolumeMount{ VolumeMounts: []api.VolumeMount{
@ -66,7 +66,7 @@ func createKubeProxyPodSpec(cfg *kubeadmapi.MasterConfiguration) api.PodSpec {
{ {
Name: "kubeconfig", Name: "kubeconfig",
VolumeSource: api.VolumeSource{ VolumeSource: api.VolumeSource{
HostPath: &api.HostPathVolumeSource{Path: path.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, "kubelet.conf")}, HostPath: &api.HostPathVolumeSource{Path: path.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, "kubelet.conf")},
}, },
}, },
{ {

View File

@ -69,7 +69,7 @@ func newKubeDiscoveryPodSpec(cfg *kubeadmapi.MasterConfiguration) api.PodSpec {
SecurityContext: &api.PodSecurityContext{HostNetwork: true}, SecurityContext: &api.PodSecurityContext{HostNetwork: true},
Containers: []api.Container{{ Containers: []api.Container{{
Name: kubeDiscoveryName, Name: kubeDiscoveryName,
Image: kubeadmapi.GlobalEnvParams.DiscoveryImage, Image: kubeadmapi.GlobalEnvParams.DiscoveryImage,
Command: []string{"/usr/local/bin/kube-discovery"}, Command: []string{"/usr/local/bin/kube-discovery"},
VolumeMounts: []api.VolumeMount{{ VolumeMounts: []api.VolumeMount{{
Name: kubeDiscoverySecretName, Name: kubeDiscoverySecretName,

View File

@ -58,7 +58,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error {
staticPodSpecs := map[string]api.Pod{ staticPodSpecs := map[string]api.Pod{
kubeAPIServer: componentPod(api.Container{ kubeAPIServer: componentPod(api.Container{
Name: kubeAPIServer, Name: kubeAPIServer,
Image: images.GetCoreImage(images.KubeAPIServerImage, cfg, kubeadmapi.GlobalEnvParams.HyperkubeImage), Image: images.GetCoreImage(images.KubeAPIServerImage, cfg, kubeadmapi.GlobalEnvParams.HyperkubeImage),
Command: getAPIServerCommand(cfg), Command: getAPIServerCommand(cfg),
VolumeMounts: []api.VolumeMount{certsVolumeMount(), k8sVolumeMount()}, VolumeMounts: []api.VolumeMount{certsVolumeMount(), k8sVolumeMount()},
LivenessProbe: componentProbe(8080, "/healthz"), LivenessProbe: componentProbe(8080, "/healthz"),
@ -66,7 +66,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error {
}, certsVolume(cfg), k8sVolume(cfg)), }, certsVolume(cfg), k8sVolume(cfg)),
kubeControllerManager: componentPod(api.Container{ kubeControllerManager: componentPod(api.Container{
Name: kubeControllerManager, Name: kubeControllerManager,
Image: images.GetCoreImage(images.KubeControllerManagerImage, cfg, kubeadmapi.GlobalEnvParams.HyperkubeImage), Image: images.GetCoreImage(images.KubeControllerManagerImage, cfg, kubeadmapi.GlobalEnvParams.HyperkubeImage),
Command: getControllerManagerCommand(cfg), Command: getControllerManagerCommand(cfg),
VolumeMounts: []api.VolumeMount{certsVolumeMount(), k8sVolumeMount()}, VolumeMounts: []api.VolumeMount{certsVolumeMount(), k8sVolumeMount()},
LivenessProbe: componentProbe(10252, "/healthz"), LivenessProbe: componentProbe(10252, "/healthz"),
@ -74,7 +74,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error {
}, certsVolume(cfg), k8sVolume(cfg)), }, certsVolume(cfg), k8sVolume(cfg)),
kubeScheduler: componentPod(api.Container{ kubeScheduler: componentPod(api.Container{
Name: kubeScheduler, Name: kubeScheduler,
Image: images.GetCoreImage(images.KubeSchedulerImage, cfg, kubeadmapi.GlobalEnvParams.HyperkubeImage), Image: images.GetCoreImage(images.KubeSchedulerImage, cfg, kubeadmapi.GlobalEnvParams.HyperkubeImage),
Command: getSchedulerCommand(cfg), Command: getSchedulerCommand(cfg),
LivenessProbe: componentProbe(10251, "/healthz"), LivenessProbe: componentProbe(10251, "/healthz"),
Resources: componentResources("100m"), Resources: componentResources("100m"),
@ -92,7 +92,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error {
"--data-dir=/var/etcd/data", "--data-dir=/var/etcd/data",
}, },
VolumeMounts: []api.VolumeMount{certsVolumeMount(), etcdVolumeMount(), k8sVolumeMount()}, VolumeMounts: []api.VolumeMount{certsVolumeMount(), etcdVolumeMount(), k8sVolumeMount()},
Image: images.GetCoreImage(images.KubeEtcdImage, cfg, kubeadmapi.GlobalEnvParams.EtcdImage), Image: images.GetCoreImage(images.KubeEtcdImage, cfg, kubeadmapi.GlobalEnvParams.EtcdImage),
LivenessProbe: componentProbe(2379, "/health"), LivenessProbe: componentProbe(2379, "/health"),
Resources: componentResources("200m"), Resources: componentResources("200m"),
SecurityContext: &api.SecurityContext{ SecurityContext: &api.SecurityContext{
@ -107,7 +107,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error {
}, certsVolume(cfg), etcdVolume(cfg), k8sVolume(cfg)) }, certsVolume(cfg), etcdVolume(cfg), k8sVolume(cfg))
} }
manifestsPath := path.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, "manifests") manifestsPath := path.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, "manifests")
if err := os.MkdirAll(manifestsPath, 0700); err != nil { if err := os.MkdirAll(manifestsPath, 0700); err != nil {
return fmt.Errorf("<master/manifests> failed to create directory %q [%v]", manifestsPath, err) return fmt.Errorf("<master/manifests> failed to create directory %q [%v]", manifestsPath, err)
} }
@ -129,7 +129,7 @@ func etcdVolume(cfg *kubeadmapi.MasterConfiguration) api.Volume {
return api.Volume{ return api.Volume{
Name: "etcd", Name: "etcd",
VolumeSource: api.VolumeSource{ VolumeSource: api.VolumeSource{
HostPath: &api.HostPathVolumeSource{Path: kubeadmapi.GlobalEnvParams.HostEtcdPath}, HostPath: &api.HostPathVolumeSource{Path: kubeadmapi.GlobalEnvParams.HostEtcdPath},
}, },
} }
} }
@ -163,7 +163,7 @@ func k8sVolume(cfg *kubeadmapi.MasterConfiguration) api.Volume {
return api.Volume{ return api.Volume{
Name: "pki", Name: "pki",
VolumeSource: api.VolumeSource{ VolumeSource: api.VolumeSource{
HostPath: &api.HostPathVolumeSource{Path: kubeadmapi.GlobalEnvParams.KubernetesDir}, HostPath: &api.HostPathVolumeSource{Path: kubeadmapi.GlobalEnvParams.KubernetesDir},
}, },
} }
} }
@ -219,12 +219,12 @@ func componentPod(container api.Container, volumes ...api.Volume) api.Pod {
} }
func getComponentBaseCommand(component string) (command []string) { func getComponentBaseCommand(component string) (command []string) {
if kubeadmapi.GlobalEnvParams.HyperkubeImage != "" { if kubeadmapi.GlobalEnvParams.HyperkubeImage != "" {
command = []string{"/hyperkube", component} command = []string{"/hyperkube", component}
} else { } else {
command = []string{"kube-" + component} command = []string{"kube-" + component}
} }
command = append(command, kubeadmapi.GlobalEnvParams.ComponentLoglevel) command = append(command, kubeadmapi.GlobalEnvParams.ComponentLoglevel)
return return
} }

View File

@ -158,7 +158,7 @@ func CreatePKIAssets(cfg *kubeadmapi.MasterConfiguration) (*rsa.PrivateKey, *x50
} }
altNames.DNSNames = append(altNames.DNSNames, cfg.API.ExternalDNSNames...) altNames.DNSNames = append(altNames.DNSNames, cfg.API.ExternalDNSNames...)
pkiPath := path.Join(kubeadmapi.GlobalEnvParams.HostPKIPath) pkiPath := path.Join(kubeadmapi.GlobalEnvParams.HostPKIPath)
caKey, caCert, err := newCertificateAuthority() caKey, caCert, err := newCertificateAuthority()
if err != nil { if err != nil {

View File

@ -48,12 +48,12 @@ func generateTokenIfNeeded(s *kubeadmapi.Secrets) error {
} }
func CreateTokenAuthFile(s *kubeadmapi.Secrets) error { func CreateTokenAuthFile(s *kubeadmapi.Secrets) error {
tokenAuthFilePath := path.Join(kubeadmapi.GlobalEnvParams.HostPKIPath, "tokens.csv") tokenAuthFilePath := path.Join(kubeadmapi.GlobalEnvParams.HostPKIPath, "tokens.csv")
if err := generateTokenIfNeeded(s); err != nil { if err := generateTokenIfNeeded(s); err != nil {
return fmt.Errorf("<master/tokens> failed to generate token(s) [%v]", err) return fmt.Errorf("<master/tokens> failed to generate token(s) [%v]", err)
} }
if err := os.MkdirAll(kubeadmapi.GlobalEnvParams.HostPKIPath, 0700); err != nil { if err := os.MkdirAll(kubeadmapi.GlobalEnvParams.HostPKIPath, 0700); err != nil {
return fmt.Errorf("<master/tokens> failed to create directory %q [%v]", kubeadmapi.GlobalEnvParams.HostPKIPath, err) return fmt.Errorf("<master/tokens> failed to create directory %q [%v]", kubeadmapi.GlobalEnvParams.HostPKIPath, err)
} }
serialized := []byte(fmt.Sprintf("%s,kubeadm-node-csr,%s,system:kubelet-bootstrap\n", s.BearerToken, uuid.NewUUID())) serialized := []byte(fmt.Sprintf("%s,kubeadm-node-csr,%s,system:kubelet-bootstrap\n", s.BearerToken, uuid.NewUUID()))
// DumpReaderToFile create a file with mode 0600 // DumpReaderToFile create a file with mode 0600

View File

@ -17,36 +17,36 @@ limitations under the License.
package util package util
import ( import (
"fmt" "fmt"
"testing" "testing"
"k8s.io/kubernetes/cmd/kubeadm/app/preflight" "k8s.io/kubernetes/cmd/kubeadm/app/preflight"
) )
func TestCheckErr(t *testing.T) { func TestCheckErr(t *testing.T) {
var codeReturned int var codeReturned int
errHandle := func(err string, code int) { errHandle := func(err string, code int) {
codeReturned = code codeReturned = code
} }
var tokenTest = []struct { var tokenTest = []struct {
e error e error
expected int expected int
}{ }{
{nil, 0}, {nil, 0},
{fmt.Errorf(""), DefaultErrorExitCode}, {fmt.Errorf(""), DefaultErrorExitCode},
{&preflight.PreFlightError{}, PreFlight}, {&preflight.PreFlightError{}, PreFlight},
} }
for _, rt := range tokenTest { for _, rt := range tokenTest {
codeReturned = 0 codeReturned = 0
checkErr("", rt.e, errHandle) checkErr("", rt.e, errHandle)
if codeReturned != rt.expected { if codeReturned != rt.expected {
t.Errorf( t.Errorf(
"failed checkErr:\n\texpected: %d\n\t actual: %d", "failed checkErr:\n\texpected: %d\n\t actual: %d",
rt.expected, rt.expected,
codeReturned, codeReturned,
) )
} }
} }
} }

View File

@ -76,11 +76,11 @@ func MakeClientConfigWithToken(config *clientcmdapi.Config, clusterName string,
} }
func WriteKubeconfigIfNotExists(name string, kubeconfig *clientcmdapi.Config) error { func WriteKubeconfigIfNotExists(name string, kubeconfig *clientcmdapi.Config) error {
if err := os.MkdirAll(kubeadmapi.GlobalEnvParams.KubernetesDir, 0700); err != nil { if err := os.MkdirAll(kubeadmapi.GlobalEnvParams.KubernetesDir, 0700); err != nil {
return fmt.Errorf("<util/kubeconfig> failed to create directory %q [%v]", kubeadmapi.GlobalEnvParams.KubernetesDir, err) return fmt.Errorf("<util/kubeconfig> failed to create directory %q [%v]", kubeadmapi.GlobalEnvParams.KubernetesDir, err)
} }
filename := path.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, fmt.Sprintf("%s.conf", name)) filename := path.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, fmt.Sprintf("%s.conf", name))
// Create and open the file, only if it does not already exist. // Create and open the file, only if it does not already exist.
f, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_EXCL, 0600) f, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_EXCL, 0600)
if err != nil { if err != nil {

View File

@ -17,19 +17,19 @@ limitations under the License.
package util package util
import ( import (
"bytes" "bytes"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"os" "os"
"path/filepath" "path/filepath"
"testing" "testing"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
) )
const ( const (
configOut1 = `apiVersion: v1 configOut1 = `apiVersion: v1
clusters: clusters:
- cluster: - cluster:
server: "" server: ""
@ -40,7 +40,7 @@ kind: Config
preferences: {} preferences: {}
users: [] users: []
` `
configOut2 = `apiVersion: v1 configOut2 = `apiVersion: v1
clusters: clusters:
- cluster: - cluster:
server: "" server: ""
@ -54,146 +54,146 @@ users: []
) )
type configClient struct { type configClient struct {
c string c string
s string s string
ca []byte ca []byte
} }
type configClientWithCerts struct { type configClientWithCerts struct {
c *clientcmdapi.Config c *clientcmdapi.Config
clusterName string clusterName string
userName string userName string
clientKey []byte clientKey []byte
clientCert []byte clientCert []byte
} }
type configClientWithToken struct { type configClientWithToken struct {
c *clientcmdapi.Config c *clientcmdapi.Config
clusterName string clusterName string
userName string userName string
token string token string
} }
func TestCreateBasicClientConfig(t *testing.T) { func TestCreateBasicClientConfig(t *testing.T) {
var createBasicTest = []struct { var createBasicTest = []struct {
cc configClient cc configClient
expected string expected string
}{ }{
{configClient{}, ""}, {configClient{}, ""},
{configClient{c: "kubernetes"}, ""}, {configClient{c: "kubernetes"}, ""},
} }
for _, rt := range createBasicTest { for _, rt := range createBasicTest {
c := CreateBasicClientConfig(rt.cc.c, rt.cc.s, rt.cc.ca) c := CreateBasicClientConfig(rt.cc.c, rt.cc.s, rt.cc.ca)
if c.Kind != rt.expected { if c.Kind != rt.expected {
t.Errorf( t.Errorf(
"failed CreateBasicClientConfig:\n\texpected: %s\n\t actual: %s", "failed CreateBasicClientConfig:\n\texpected: %s\n\t actual: %s",
c.Kind, c.Kind,
rt.expected, rt.expected,
) )
} }
} }
} }
func TestMakeClientConfigWithCerts(t *testing.T) { func TestMakeClientConfigWithCerts(t *testing.T) {
var createBasicTest = []struct { var createBasicTest = []struct {
cc configClient cc configClient
ccWithCerts configClientWithCerts ccWithCerts configClientWithCerts
expected string expected string
}{ }{
{configClient{}, configClientWithCerts{}, ""}, {configClient{}, configClientWithCerts{}, ""},
{configClient{c: "kubernetes"}, configClientWithCerts{}, ""}, {configClient{c: "kubernetes"}, configClientWithCerts{}, ""},
} }
for _, rt := range createBasicTest { for _, rt := range createBasicTest {
c := CreateBasicClientConfig(rt.cc.c, rt.cc.s, rt.cc.ca) c := CreateBasicClientConfig(rt.cc.c, rt.cc.s, rt.cc.ca)
rt.ccWithCerts.c = c rt.ccWithCerts.c = c
cwc := MakeClientConfigWithCerts( cwc := MakeClientConfigWithCerts(
rt.ccWithCerts.c, rt.ccWithCerts.c,
rt.ccWithCerts.clusterName, rt.ccWithCerts.clusterName,
rt.ccWithCerts.userName, rt.ccWithCerts.userName,
rt.ccWithCerts.clientKey, rt.ccWithCerts.clientKey,
rt.ccWithCerts.clientCert, rt.ccWithCerts.clientCert,
) )
if cwc.Kind != rt.expected { if cwc.Kind != rt.expected {
t.Errorf( t.Errorf(
"failed MakeClientConfigWithCerts:\n\texpected: %s\n\t actual: %s", "failed MakeClientConfigWithCerts:\n\texpected: %s\n\t actual: %s",
c.Kind, c.Kind,
rt.expected, rt.expected,
) )
} }
} }
} }
func TestMakeClientConfigWithToken(t *testing.T) { func TestMakeClientConfigWithToken(t *testing.T) {
var createBasicTest = []struct { var createBasicTest = []struct {
cc configClient cc configClient
ccWithToken configClientWithToken ccWithToken configClientWithToken
expected string expected string
}{ }{
{configClient{}, configClientWithToken{}, ""}, {configClient{}, configClientWithToken{}, ""},
{configClient{c: "kubernetes"}, configClientWithToken{}, ""}, {configClient{c: "kubernetes"}, configClientWithToken{}, ""},
} }
for _, rt := range createBasicTest { for _, rt := range createBasicTest {
c := CreateBasicClientConfig(rt.cc.c, rt.cc.s, rt.cc.ca) c := CreateBasicClientConfig(rt.cc.c, rt.cc.s, rt.cc.ca)
rt.ccWithToken.c = c rt.ccWithToken.c = c
cwc := MakeClientConfigWithToken( cwc := MakeClientConfigWithToken(
rt.ccWithToken.c, rt.ccWithToken.c,
rt.ccWithToken.clusterName, rt.ccWithToken.clusterName,
rt.ccWithToken.userName, rt.ccWithToken.userName,
rt.ccWithToken.token, rt.ccWithToken.token,
) )
if cwc.Kind != rt.expected { if cwc.Kind != rt.expected {
t.Errorf( t.Errorf(
"failed MakeClientConfigWithCerts:\n\texpected: %s\n\t actual: %s", "failed MakeClientConfigWithCerts:\n\texpected: %s\n\t actual: %s",
c.Kind, c.Kind,
rt.expected, rt.expected,
) )
} }
} }
} }
func TestWriteKubeconfigIfNotExists(t *testing.T) { func TestWriteKubeconfigIfNotExists(t *testing.T) {
tmpdir, err := ioutil.TempDir("", "") tmpdir, err := ioutil.TempDir("", "")
if err != nil { if err != nil {
t.Fatalf("Couldn't create tmpdir") t.Fatalf("Couldn't create tmpdir")
} }
defer os.Remove(tmpdir) defer os.Remove(tmpdir)
// set up tmp GlobalEnvParams values for testing // set up tmp GlobalEnvParams values for testing
oldEnv := kubeadmapi.GlobalEnvParams oldEnv := kubeadmapi.GlobalEnvParams
kubeadmapi.GlobalEnvParams = kubeadmapi.SetEnvParams() kubeadmapi.GlobalEnvParams = kubeadmapi.SetEnvParams()
kubeadmapi.GlobalEnvParams.KubernetesDir = fmt.Sprintf("%s/etc/kubernetes", tmpdir) kubeadmapi.GlobalEnvParams.KubernetesDir = fmt.Sprintf("%s/etc/kubernetes", tmpdir)
kubeadmapi.GlobalEnvParams.HostPKIPath = fmt.Sprintf("%s/etc/kubernetes/pki", tmpdir) kubeadmapi.GlobalEnvParams.HostPKIPath = fmt.Sprintf("%s/etc/kubernetes/pki", tmpdir)
kubeadmapi.GlobalEnvParams.HostEtcdPath = fmt.Sprintf("%s/var/lib/etcd", tmpdir) kubeadmapi.GlobalEnvParams.HostEtcdPath = fmt.Sprintf("%s/var/lib/etcd", tmpdir)
kubeadmapi.GlobalEnvParams.DiscoveryImage = fmt.Sprintf("%s/var/lib/etcd", tmpdir) kubeadmapi.GlobalEnvParams.DiscoveryImage = fmt.Sprintf("%s/var/lib/etcd", tmpdir)
defer func() { kubeadmapi.GlobalEnvParams = oldEnv }() defer func() { kubeadmapi.GlobalEnvParams = oldEnv }()
var writeConfig = []struct { var writeConfig = []struct {
name string name string
cc configClient cc configClient
expected error expected error
file []byte file []byte
}{ }{
{"test1", configClient{}, nil, []byte(configOut1)}, {"test1", configClient{}, nil, []byte(configOut1)},
{"test2", configClient{c: "kubernetes"}, nil, []byte(configOut2)}, {"test2", configClient{c: "kubernetes"}, nil, []byte(configOut2)},
} }
for _, rt := range writeConfig { for _, rt := range writeConfig {
c := CreateBasicClientConfig(rt.cc.c, rt.cc.s, rt.cc.ca) c := CreateBasicClientConfig(rt.cc.c, rt.cc.s, rt.cc.ca)
err := WriteKubeconfigIfNotExists(rt.name, c) err := WriteKubeconfigIfNotExists(rt.name, c)
if err != rt.expected { if err != rt.expected {
t.Errorf( t.Errorf(
"failed WriteKubeconfigIfNotExists with an error:\n\texpected: %s\n\t actual: %s", "failed WriteKubeconfigIfNotExists with an error:\n\texpected: %s\n\t actual: %s",
err, err,
rt.expected, rt.expected,
) )
} }
configPath := filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, fmt.Sprintf("%s.conf", rt.name)) configPath := filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, fmt.Sprintf("%s.conf", rt.name))
newFile, err := ioutil.ReadFile(configPath) newFile, err := ioutil.ReadFile(configPath)
if !bytes.Equal(newFile, rt.file) { if !bytes.Equal(newFile, rt.file) {
t.Errorf( t.Errorf(
"failed WriteKubeconfigIfNotExists config write:\n\texpected: %s\n\t actual: %s", "failed WriteKubeconfigIfNotExists config write:\n\texpected: %s\n\t actual: %s",
newFile, newFile,
rt.file, rt.file,
) )
} }
} }
} }

View File

@ -18,7 +18,7 @@ package util
import ( import (
"bytes" "bytes"
"strings" "strings"
"testing" "testing"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
@ -86,86 +86,86 @@ func newSecretsWithToken(token string) *kubeadmapi.Secrets {
} }
func TestGenerateToken(t *testing.T) { func TestGenerateToken(t *testing.T) {
var genTest = []struct { var genTest = []struct {
s kubeadmapi.Secrets s kubeadmapi.Secrets
l int l int
n int n int
}{ }{
{kubeadmapi.Secrets{}, 2, 6}, {kubeadmapi.Secrets{}, 2, 6},
} }
for _, rt := range genTest { for _, rt := range genTest {
GenerateToken(&rt.s) GenerateToken(&rt.s)
givenToken := strings.Split(strings.ToLower(rt.s.GivenToken), ".") givenToken := strings.Split(strings.ToLower(rt.s.GivenToken), ".")
if len(givenToken) != rt.l { if len(givenToken) != rt.l {
t.Errorf( t.Errorf(
"failed GenerateToken num parts:\n\texpected: %d\n\t actual: %d", "failed GenerateToken num parts:\n\texpected: %d\n\t actual: %d",
rt.l, rt.l,
len(givenToken), len(givenToken),
) )
} }
if len(givenToken[0]) != rt.n { if len(givenToken[0]) != rt.n {
t.Errorf( t.Errorf(
"failed GenerateToken first part length:\n\texpected: %d\n\t actual: %d", "failed GenerateToken first part length:\n\texpected: %d\n\t actual: %d",
rt.l, rt.l,
len(givenToken), len(givenToken),
) )
} }
} }
} }
func TestUseGivenTokenIfValid(t *testing.T) { func TestUseGivenTokenIfValid(t *testing.T) {
var tokenTest = []struct { var tokenTest = []struct {
s kubeadmapi.Secrets s kubeadmapi.Secrets
expected bool expected bool
}{ }{
{kubeadmapi.Secrets{GivenToken: ""}, false}, // GivenToken == "" {kubeadmapi.Secrets{GivenToken: ""}, false}, // GivenToken == ""
{kubeadmapi.Secrets{GivenToken: "noperiod"}, false}, // not 2-part '.' format {kubeadmapi.Secrets{GivenToken: "noperiod"}, false}, // not 2-part '.' format
{kubeadmapi.Secrets{GivenToken: "abcd.a"}, false}, // len(tokenID) != 6 {kubeadmapi.Secrets{GivenToken: "abcd.a"}, false}, // len(tokenID) != 6
{kubeadmapi.Secrets{GivenToken: "abcdef.a"}, true}, {kubeadmapi.Secrets{GivenToken: "abcdef.a"}, true},
} }
for _, rt := range tokenTest { for _, rt := range tokenTest {
actual, _ := UseGivenTokenIfValid(&rt.s) actual, _ := UseGivenTokenIfValid(&rt.s)
if actual != rt.expected { if actual != rt.expected {
t.Errorf( t.Errorf(
"failed UseGivenTokenIfValid:\n\texpected: %t\n\t actual: %t\n\t token:%s", "failed UseGivenTokenIfValid:\n\texpected: %t\n\t actual: %t\n\t token:%s",
rt.expected, rt.expected,
actual, actual,
rt.s.GivenToken, rt.s.GivenToken,
) )
} }
} }
} }
func TestRandBytes(t *testing.T) { func TestRandBytes(t *testing.T) {
var randTest = []struct { var randTest = []struct {
r int r int
l int l int
expected error expected error
}{ }{
{0, 0, nil}, {0, 0, nil},
{1, 1, nil}, {1, 1, nil},
{2, 2, nil}, {2, 2, nil},
{3, 3, nil}, {3, 3, nil},
{100, 100, nil}, {100, 100, nil},
} }
for _, rt := range randTest { for _, rt := range randTest {
actual, _, err := RandBytes(rt.r) actual, _, err := RandBytes(rt.r)
if err != rt.expected { if err != rt.expected {
t.Errorf( t.Errorf(
"failed RandBytes:\n\texpected: %s\n\t actual: %s", "failed RandBytes:\n\texpected: %s\n\t actual: %s",
rt.expected, rt.expected,
err, err,
) )
} }
if len(actual) != rt.l { if len(actual) != rt.l {
t.Errorf( t.Errorf(
"failed RandBytes:\n\texpected: %d\n\t actual: %d\n", "failed RandBytes:\n\texpected: %d\n\t actual: %d\n",
rt.l, rt.l,
len(actual), len(actual),
) )
} }
} }
} }