Bumping k8s dependencies to 1.13

This commit is contained in:
Cheng Xing
2018-11-16 14:08:25 -08:00
parent 305407125c
commit b4c0b68ec7
8002 changed files with 884099 additions and 276228 deletions

View File

@@ -11,8 +11,10 @@ go_library(
importpath = "k8s.io/kubernetes/cmd/kubeadm/test",
deps = [
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
"//cmd/kubeadm/app/apis/kubeadm/v1alpha3:go_default_library",
"//cmd/kubeadm/app/constants:go_default_library",
"//cmd/kubeadm/app/phases/certs/pkiutil:go_default_library",
"//cmd/kubeadm/app/util/config:go_default_library",
"//cmd/kubeadm/test/certs:go_default_library",
"//vendor/github.com/renstrom/dedent:go_default_library",
],

View File

@@ -9,7 +9,10 @@ go_library(
name = "go_default_library",
srcs = ["util.go"],
importpath = "k8s.io/kubernetes/cmd/kubeadm/test/certs",
deps = ["//cmd/kubeadm/app/phases/certs/pkiutil:go_default_library"],
deps = [
"//cmd/kubeadm/app/phases/certs/pkiutil:go_default_library",
"//staging/src/k8s.io/client-go/util/cert:go_default_library",
],
)
filegroup(

View File

@@ -22,13 +22,14 @@ import (
"net"
"testing"
certutil "k8s.io/client-go/util/cert"
"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil"
)
// SetupCertificateAuthorithy is a utility function for kubeadm testing that creates a
// CertificateAuthorithy cert/key pair
func SetupCertificateAuthorithy(t *testing.T) (*x509.Certificate, *rsa.PrivateKey) {
caCert, caKey, err := pkiutil.NewCertificateAuthority()
caCert, caKey, err := pkiutil.NewCertificateAuthority(&certutil.Config{CommonName: "kubernetes"})
if err != nil {
t.Fatalf("failure while generating CA certificate and key: %v", err)
}

View File

@@ -23,14 +23,16 @@ go_test(
"version_test.go",
],
args = ["--kubeadm-path=$(location //cmd/kubeadm:kubeadm)"],
data = ["//cmd/kubeadm"],
data = ["//cmd/kubeadm"] + glob(["testdata/**"]),
embed = [":go_default_library"],
rundir = ".",
tags = [
"integration",
"skip",
],
deps = ["//vendor/github.com/ghodss/yaml:go_default_library"],
deps = [
"//vendor/github.com/ghodss/yaml:go_default_library",
"//vendor/github.com/renstrom/dedent:go_default_library",
],
)
filegroup(

View File

@@ -19,6 +19,8 @@ package kubeadm
import "testing"
func TestCmdCompletion(t *testing.T) {
kubeadmPath := getKubeadmPath()
if *kubeadmCmdSkip {
t.Log("kubeadm cmd tests being skipped")
t.Skip()
@@ -33,7 +35,7 @@ func TestCmdCompletion(t *testing.T) {
}
for _, rt := range tests {
_, _, actual := RunCmd(*kubeadmPath, "completion", rt.args)
_, _, actual := RunCmd(kubeadmPath, "completion", rt.args)
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdCompletion running 'kubeadm completion %s' with an error: %v\n\texpected: %t\n\t actual: %t",

View File

@@ -16,12 +16,17 @@ limitations under the License.
package kubeadm
import "testing"
import (
"testing"
// kubeadmReset executes "kubeadm reset" and restarts kubelet.
func kubeadmReset() error {
_, _, err := RunCmd(*kubeadmPath, "reset")
return err
"github.com/renstrom/dedent"
)
func runKubeadmInit(args ...string) (string, string, error) {
kubeadmPath := getKubeadmPath()
kubeadmArgs := []string{"init", "--dry-run", "--ignore-preflight-errors=all"}
kubeadmArgs = append(kubeadmArgs, args...)
return RunCmd(kubeadmPath, kubeadmArgs...)
}
func TestCmdInitToken(t *testing.T) {
@@ -30,26 +35,46 @@ func TestCmdInitToken(t *testing.T) {
t.Skip()
}
var initTest = []struct {
initTest := []struct {
name string
args string
expected bool
}{
{"--discovery=token://abcd:1234567890abcd", false}, // invalid token size
{"--discovery=token://Abcdef:1234567890abcdef", false}, // invalid token non-lowercase
{
name: "invalid token size",
args: "--token=abcd:1234567890abcd",
expected: false,
},
{
name: "invalid token non-lowercase",
args: "--token=Abcdef:1234567890abcdef",
expected: false,
},
{
name: "valid token is accepted",
args: "--token=abcdef.0123456789abcdef",
expected: true,
},
}
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "init", rt.args, "--skip-preflight-checks")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdInitToken running 'kubeadm init %s' with an error: %v\n\texpected: %t\n\t actual: %t",
rt.args,
actual,
rt.expected,
(actual == nil),
)
}
kubeadmReset()
t.Run(rt.name, func(t *testing.T) {
_, _, err := runKubeadmInit(rt.args)
if (err == nil) != rt.expected {
t.Fatalf(dedent.Dedent(`
CmdInitToken test case %q failed with an error: %v
command 'kubeadm init %s'
expected: %t
err: %t
`),
rt.name,
err,
rt.args,
rt.expected,
(err == nil),
)
}
})
}
}
@@ -59,25 +84,41 @@ func TestCmdInitKubernetesVersion(t *testing.T) {
t.Skip()
}
var initTest = []struct {
initTest := []struct {
name string
args string
expected bool
}{
{"--kubernetes-version=foobar", false},
{
name: "invalid semantic version string is detected",
args: "--kubernetes-version=v1.1",
expected: false,
},
{
name: "valid version is accepted",
args: "--kubernetes-version=1.11.0",
expected: true,
},
}
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "init", rt.args, "--skip-preflight-checks")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdInitKubernetesVersion running 'kubeadm init %s' with an error: %v\n\texpected: %t\n\t actual: %t",
rt.args,
actual,
rt.expected,
(actual == nil),
)
}
kubeadmReset()
t.Run(rt.name, func(t *testing.T) {
_, _, err := runKubeadmInit(rt.args)
if (err == nil) != rt.expected {
t.Fatalf(dedent.Dedent(`
CmdInitKubernetesVersion test case %q failed with an error: %v
command 'kubeadm init %s'
expected: %t
err: %t
`),
rt.name,
err,
rt.args,
rt.expected,
(err == nil),
)
}
})
}
}
@@ -87,26 +128,56 @@ func TestCmdInitConfig(t *testing.T) {
t.Skip()
}
var initTest = []struct {
initTest := []struct {
name string
args string
expected bool
}{
{"--config=foobar", false},
{"--config=/does/not/exist/foo/bar", false},
{
name: "fail on non existing path",
args: "--config=/does/not/exist/foo/bar",
expected: false,
},
{
name: "can't load v1alpha1 config",
args: "--config=testdata/init/v1alpha1.yaml",
expected: false,
},
{
name: "can load v1alpha2 config",
args: "--config=testdata/init/v1alpha2.yaml",
expected: true,
},
{
name: "can load v1alpha3 config",
args: "--config=testdata/init/v1alpha3.yaml",
expected: true,
},
{
name: "don't allow mixed arguments",
args: "--kubernetes-version=1.11.0 --config=testdata/init/v1alpha3.yaml",
expected: false,
},
}
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "init", rt.args, "--skip-preflight-checks")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdInitConfig running 'kubeadm init %s' with an error: %v\n\texpected: %t\n\t actual: %t",
rt.args,
actual,
rt.expected,
(actual == nil),
)
}
kubeadmReset()
t.Run(rt.name, func(t *testing.T) {
_, _, err := runKubeadmInit(rt.args)
if (err == nil) != rt.expected {
t.Fatalf(dedent.Dedent(`
CmdInitConfig test case %q failed with an error: %v
command 'kubeadm init %s'
expected: %t
err: %t
`),
rt.name,
err,
rt.args,
rt.expected,
(err == nil),
)
}
})
}
}
@@ -116,52 +187,50 @@ func TestCmdInitAPIPort(t *testing.T) {
t.Skip()
}
var initTest = []struct {
initTest := []struct {
name string
args string
expected bool
}{
{"--api-port=foobar", false},
{
name: "fail on non-string port",
args: "--apiserver-bind-port=foobar",
expected: false,
},
{
name: "fail on too large port number",
args: "--apiserver-bind-port=100000",
expected: false,
},
{
name: "fail on negative port number",
args: "--apiserver-bind-port=-6000",
expected: false,
},
{
name: "accept a valid port number",
args: "--apiserver-bind-port=6000",
expected: true,
},
}
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "init", rt.args, "--skip-preflight-checks")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdInitAPIPort running 'kubeadm init %s' with an error: %v\n\texpected: %t\n\t actual: %t",
rt.args,
actual,
rt.expected,
(actual == nil),
)
}
kubeadmReset()
}
}
func TestCmdInitArgsMixed(t *testing.T) {
if *kubeadmCmdSkip {
t.Log("kubeadm cmd tests being skipped")
t.Skip()
}
var initTest = []struct {
args string
expected bool
}{
{"--api-port=1000 --config=/etc/kubernets/kubeadm.config", false},
}
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "init", rt.args, "--skip-preflight-checks")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdInitArgsMixed running 'kubeadm init %s' with an error: %v\n\texpected: %t\n\t actual: %t",
rt.args,
actual,
rt.expected,
(actual == nil),
)
}
kubeadmReset()
t.Run(rt.name, func(t *testing.T) {
_, _, err := runKubeadmInit(rt.args)
if (err == nil) != rt.expected {
t.Fatalf(dedent.Dedent(`
CmdInitAPIPort test case %q failed with an error: %v
command 'kubeadm init %s'
expected: %t
err: %t
`),
rt.name,
err,
rt.args,
rt.expected,
(err == nil),
)
}
})
}
}

View File

@@ -18,6 +18,13 @@ package kubeadm
import "testing"
// kubeadmReset executes "kubeadm reset" and restarts kubelet.
func kubeadmReset() error {
kubeadmPath := getKubeadmPath()
_, _, err := RunCmd(kubeadmPath, "reset")
return err
}
func TestCmdJoinConfig(t *testing.T) {
if *kubeadmCmdSkip {
t.Log("kubeadm cmd tests being skipped")
@@ -32,8 +39,9 @@ func TestCmdJoinConfig(t *testing.T) {
{"--config=/does/not/exist/foo/bar", false},
}
kubeadmPath := getKubeadmPath()
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--skip-preflight-checks")
_, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdJoinConfig running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t",
@@ -61,8 +69,9 @@ func TestCmdJoinDiscoveryFile(t *testing.T) {
{"--discovery-file=file:wrong", false},
}
kubeadmPath := getKubeadmPath()
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--skip-preflight-checks")
_, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdJoinDiscoveryFile running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t",
@@ -90,8 +99,9 @@ func TestCmdJoinDiscoveryToken(t *testing.T) {
{"--discovery-token=token://asdf:asdf", false},
}
kubeadmPath := getKubeadmPath()
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--skip-preflight-checks")
_, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdJoinDiscoveryToken running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t",
@@ -118,8 +128,9 @@ func TestCmdJoinNodeName(t *testing.T) {
{"--node-name=foobar", false},
}
kubeadmPath := getKubeadmPath()
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--skip-preflight-checks")
_, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdJoinNodeName running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t",
@@ -147,8 +158,9 @@ func TestCmdJoinTLSBootstrapToken(t *testing.T) {
{"--tls-bootstrap-token=token://asdf:asdf", false},
}
kubeadmPath := getKubeadmPath()
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--skip-preflight-checks")
_, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdJoinTLSBootstrapToken running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t",
@@ -176,8 +188,9 @@ func TestCmdJoinToken(t *testing.T) {
{"--token=token://asdf:asdf", false},
}
kubeadmPath := getKubeadmPath()
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--skip-preflight-checks")
_, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdJoinToken running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t",
@@ -197,6 +210,7 @@ func TestCmdJoinBadArgs(t *testing.T) {
t.Skip()
}
kubeadmPath := getKubeadmPath()
var initTest = []struct {
args string
expected bool
@@ -206,7 +220,7 @@ func TestCmdJoinBadArgs(t *testing.T) {
}
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--skip-preflight-checks")
_, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdJoinBadArgs 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t",
@@ -230,11 +244,12 @@ func TestCmdJoinArgsMixed(t *testing.T) {
args string
expected bool
}{
{"--discovery-token=abcdef.1234567890abcdef --config=/etc/kubernets/kubeadm.config", false},
{"--discovery-token=abcdef.1234567890abcdef --config=/etc/kubernetes/kubeadm.config", false},
}
kubeadmPath := getKubeadmPath()
for _, rt := range initTest {
_, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--skip-preflight-checks")
_, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all")
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdJoinArgsMixed running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t",

View File

@@ -0,0 +1,2 @@
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration

View File

@@ -0,0 +1,2 @@
apiVersion: kubeadm.k8s.io/v1alpha2
kind: MasterConfiguration

View File

@@ -0,0 +1,2 @@
apiVersion: kubeadm.k8s.io/v1alpha3
kind: InitConfiguration

View File

@@ -19,6 +19,7 @@ package kubeadm
import (
"flag"
"os"
"path"
"path/filepath"
"regexp"
"testing"
@@ -28,15 +29,26 @@ const (
TokenExpectedRegex = "^\\S{6}\\.\\S{16}\n$"
)
var kubeadmPath = flag.String("kubeadm-path", filepath.Join(os.Getenv("KUBE_ROOT"), "cluster/kubeadm.sh"), "Location of kubeadm")
var kubeadmPathFlag = flag.String("kubeadm-path", filepath.Join(os.Getenv("KUBE_ROOT"), "cluster/kubeadm.sh"), "Location of kubeadm")
func getKubeadmPath() string {
kubeadmPath := *kubeadmPathFlag // TEST_SRCDIR is provided by Bazel.
if srcDir := os.Getenv("TEST_SRCDIR"); srcDir != "" {
kubeadmPath = path.Join(srcDir, os.Getenv("TEST_WORKSPACE"), kubeadmPath)
}
return kubeadmPath
}
var kubeadmCmdSkip = flag.Bool("kubeadm-cmd-skip", false, "Skip kubeadm cmd tests")
func TestCmdTokenGenerate(t *testing.T) {
kubeadmPath := getKubeadmPath()
if *kubeadmCmdSkip {
t.Log("kubeadm cmd tests being skipped")
t.Skip()
}
stdout, _, err := RunCmd(*kubeadmPath, "token", "generate")
stdout, _, err := RunCmd(kubeadmPath, "token", "generate")
if err != nil {
t.Fatalf("'kubeadm token generate' exited uncleanly: %v", err)
}
@@ -65,7 +77,8 @@ func TestCmdTokenGenerateTypoError(t *testing.T) {
t.Skip()
}
_, _, err := RunCmd(*kubeadmPath, "token", "genorate") // subtle typo
kubeadmPath := getKubeadmPath()
_, _, err := RunCmd(kubeadmPath, "token", "genorate") // subtle typo
if err == nil {
t.Error("'kubeadm token genorate' (a deliberate typo) exited without an error when we expected non-zero exit status")
}
@@ -84,8 +97,9 @@ func TestCmdTokenDelete(t *testing.T) {
{"foobar", false}, // invalid token
}
kubeadmPath := getKubeadmPath()
for _, rt := range tests {
_, _, actual := RunCmd(*kubeadmPath, "token", "delete", rt.args)
_, _, actual := RunCmd(kubeadmPath, "token", "delete", rt.args)
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdTokenDelete running 'kubeadm token %s' with an error: %v\n\texpected: %t\n\t actual: %t",

View File

@@ -49,8 +49,9 @@ func TestCmdVersion(t *testing.T) {
{"", NormalExpectedRegex, true},
}
kubeadmPath := getKubeadmPath()
for _, rt := range versionTest {
stdout, _, actual := RunCmd(*kubeadmPath, "version", rt.args)
stdout, _, actual := RunCmd(kubeadmPath, "version", rt.args)
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdVersion running 'kubeadm version %s' with an error: %v\n\texpected: %t\n\t actual: %t",
@@ -88,8 +89,9 @@ func TestCmdVersionOutputJsonOrYaml(t *testing.T) {
{"--output=yaml", "yaml", true},
}
kubeadmPath := getKubeadmPath()
for _, rt := range versionTest {
stdout, _, actual := RunCmd(*kubeadmPath, "version", rt.args)
stdout, _, actual := RunCmd(kubeadmPath, "version", rt.args)
if (actual == nil) != rt.expected {
t.Errorf(
"failed CmdVersion running 'kubeadm version %s' with an error: %v\n\texpected: %t\n\t actual: %t",

View File

@@ -11,7 +11,7 @@ go_library(
importpath = "k8s.io/kubernetes/cmd/kubeadm/test/kubeconfig",
deps = [
"//cmd/kubeadm/test/certs:go_default_library",
"//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library",
"//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library",
],
)

View File

@@ -26,8 +26,10 @@ import (
"github.com/renstrom/dedent"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmapiv1alpha3 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha3"
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil"
configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config"
certtestutil "k8s.io/kubernetes/cmd/kubeadm/test/certs"
)
@@ -42,10 +44,10 @@ func SetupTempDir(t *testing.T) string {
return tmpdir
}
// SetupMasterConfigurationFile is a utility function for kubeadm testing that writes a master configuration file
// SetupInitConfigurationFile is a utility function for kubeadm testing that writes a master configuration file
// into /config subfolder of a given temporary directory.
// The function returns the path of the created master configuration file.
func SetupMasterConfigurationFile(t *testing.T, tmpdir string, cfg *kubeadmapi.MasterConfiguration) string {
func SetupInitConfigurationFile(t *testing.T, tmpdir string, cfg *kubeadmapi.InitConfiguration) string {
cfgPath := filepath.Join(tmpdir, "config/masterconfig.yaml")
if err := os.MkdirAll(filepath.Dir(cfgPath), os.FileMode(0755)); err != nil {
@@ -53,15 +55,18 @@ func SetupMasterConfigurationFile(t *testing.T, tmpdir string, cfg *kubeadmapi.M
}
cfgTemplate := template.Must(template.New("init").Parse(dedent.Dedent(`
apiVersion: kubeadm.k8s.io/v1alpha2
kind: MasterConfiguration
certificatesDir: {{.CertificatesDir}}
api:
advertiseAddress: {{.API.AdvertiseAddress}}
bindPort: {{.API.BindPort}}
apiVersion: kubeadm.k8s.io/v1alpha3
kind: InitConfiguration
apiEndpoint:
advertiseAddress: {{.APIEndpoint.AdvertiseAddress}}
bindPort: {{.APIEndpoint.BindPort}}
nodeRegistration:
name: {{.NodeRegistration.Name}}
kubernetesVersion: v1.10.0
---
apiVersion: kubeadm.k8s.io/v1alpha3
kind: ClusterConfiguration
certificatesDir: {{.CertificatesDir}}
kubernetesVersion: v1.11.0
`)))
f, err := os.Create(cfgPath)
@@ -137,3 +142,13 @@ func AssertFileExists(t *testing.T, dirName string, fileNames ...string) {
}
}
}
// GetDefaultInternalConfig returns a defaulted kubeadmapi.InitConfiguration
func GetDefaultInternalConfig(t *testing.T) *kubeadmapi.InitConfiguration {
internalcfg, err := configutil.ConfigFileAndDefaultsToInternalConfig("", &kubeadmapiv1alpha3.InitConfiguration{})
if err != nil {
t.Fatalf("unexpected error getting default config: %v", err)
}
return internalcfg
}