mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-13 13:55:41 +00:00
Merge pull request #117614 from chendave/multi_cri
kubeadm: fix unit test failure on node with multiple cri endpoints
This commit is contained in:
commit
9924dc65b7
@ -82,10 +82,14 @@ func TestImagesListRunWithCustomConfigPath(t *testing.T) {
|
|||||||
constants.CurrentKubernetesVersion.String(),
|
constants.CurrentKubernetesVersion.String(),
|
||||||
},
|
},
|
||||||
configContents: []byte(dedent.Dedent(fmt.Sprintf(`
|
configContents: []byte(dedent.Dedent(fmt.Sprintf(`
|
||||||
apiVersion: %s
|
apiVersion: %s
|
||||||
kind: ClusterConfiguration
|
kind: InitConfiguration
|
||||||
kubernetesVersion: %s
|
nodeRegistration:
|
||||||
`, kubeadmapiv1.SchemeGroupVersion.String(), constants.CurrentKubernetesVersion))),
|
criSocket: %s
|
||||||
|
---
|
||||||
|
apiVersion: %[1]s
|
||||||
|
kind: ClusterConfiguration
|
||||||
|
kubernetesVersion: %[3]s`, kubeadmapiv1.SchemeGroupVersion.String(), constants.UnknownCRISocket, constants.CurrentKubernetesVersion))),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "use coredns",
|
name: "use coredns",
|
||||||
@ -94,10 +98,14 @@ func TestImagesListRunWithCustomConfigPath(t *testing.T) {
|
|||||||
"coredns",
|
"coredns",
|
||||||
},
|
},
|
||||||
configContents: []byte(dedent.Dedent(fmt.Sprintf(`
|
configContents: []byte(dedent.Dedent(fmt.Sprintf(`
|
||||||
apiVersion: %s
|
apiVersion: %s
|
||||||
kind: ClusterConfiguration
|
kind: InitConfiguration
|
||||||
kubernetesVersion: %s
|
nodeRegistration:
|
||||||
`, kubeadmapiv1.SchemeGroupVersion.String(), constants.MinimumControlPlaneVersion))),
|
criSocket: %s
|
||||||
|
---
|
||||||
|
apiVersion: %[1]s
|
||||||
|
kind: ClusterConfiguration
|
||||||
|
kubernetesVersion: %[3]s`, kubeadmapiv1.SchemeGroupVersion.String(), constants.UnknownCRISocket, constants.MinimumControlPlaneVersion))),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -384,10 +392,12 @@ func TestImagesPull(t *testing.T) {
|
|||||||
|
|
||||||
func TestMigrate(t *testing.T) {
|
func TestMigrate(t *testing.T) {
|
||||||
cfg := []byte(dedent.Dedent(fmt.Sprintf(`
|
cfg := []byte(dedent.Dedent(fmt.Sprintf(`
|
||||||
# This is intentionally testing an old API version. Sometimes this may be the latest version (if no old configs are supported).
|
# This is intentionally testing an old API version. Sometimes this may be the latest version (if no old configs are supported).
|
||||||
apiVersion: %s
|
apiVersion: %s
|
||||||
kind: InitConfiguration
|
kind: InitConfiguration
|
||||||
`, kubeadmapiv1.SchemeGroupVersion.String())))
|
nodeRegistration:
|
||||||
|
criSocket: %s
|
||||||
|
`, kubeadmapiv1.SchemeGroupVersion.String(), constants.UnknownCRISocket)))
|
||||||
configFile, cleanup := tempConfig(t, cfg)
|
configFile, cleanup := tempConfig(t, cfg)
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ func TestNewInitData(t *testing.T) {
|
|||||||
}{
|
}{
|
||||||
// Init data passed using flags
|
// Init data passed using flags
|
||||||
{
|
{
|
||||||
name: "pass without any flag (use defaults)",
|
name: "pass without any flag except the cri socket (use defaults)",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "fail if unknown feature gates flag are passed",
|
name: "fail if unknown feature gates flag are passed",
|
||||||
@ -190,6 +190,15 @@ func TestNewInitData(t *testing.T) {
|
|||||||
initOptions := newInitOptions()
|
initOptions := newInitOptions()
|
||||||
cmd := newCmdInit(nil, initOptions)
|
cmd := newCmdInit(nil, initOptions)
|
||||||
|
|
||||||
|
// set the cri socket here, otherwise the testcase might fail if is run on the node with multiple
|
||||||
|
// cri endpoints configured, the failure caused by this is normally not an expected failure.
|
||||||
|
if tc.flags == nil {
|
||||||
|
tc.flags = make(map[string]string)
|
||||||
|
}
|
||||||
|
// set `cri-socket` only if `CfgPath` is not set
|
||||||
|
if _, okay := tc.flags[options.CfgPath]; !okay {
|
||||||
|
tc.flags[options.NodeCRISocket] = constants.UnknownCRISocket
|
||||||
|
}
|
||||||
// sets cmd flags (that will be reflected on the init options)
|
// sets cmd flags (that will be reflected on the init options)
|
||||||
for f, v := range tc.flags {
|
for f, v := range tc.flags {
|
||||||
cmd.Flags().Set(f, v)
|
cmd.Flags().Set(f, v)
|
||||||
|
@ -35,6 +35,7 @@ import (
|
|||||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
|
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
|
||||||
|
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig"
|
kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -319,6 +320,15 @@ func TestNewJoinData(t *testing.T) {
|
|||||||
klog.LogToStderr(false)
|
klog.LogToStderr(false)
|
||||||
defer klog.LogToStderr(true)
|
defer klog.LogToStderr(true)
|
||||||
|
|
||||||
|
// set the cri socket here, otherwise the testcase might fail if is run on the node with multiple
|
||||||
|
// cri endpoints configured, the failure caused by this is normally not an expected failure.
|
||||||
|
if tc.flags == nil {
|
||||||
|
tc.flags = make(map[string]string)
|
||||||
|
}
|
||||||
|
// set `cri-socket` only if `CfgPath` is not set
|
||||||
|
if _, okay := tc.flags[options.CfgPath]; !okay {
|
||||||
|
tc.flags[options.NodeCRISocket] = constants.UnknownCRISocket
|
||||||
|
}
|
||||||
// sets cmd flags (that will be reflected on the join options)
|
// sets cmd flags (that will be reflected on the join options)
|
||||||
for f, v := range tc.flags {
|
for f, v := range tc.flags {
|
||||||
cmd.Flags().Set(f, v)
|
cmd.Flags().Set(f, v)
|
||||||
|
@ -45,6 +45,9 @@ func generateTestKubeadmConfig(dir, id, certDir, clusterName string) (string, er
|
|||||||
AdvertiseAddress: "1.2.3.4",
|
AdvertiseAddress: "1.2.3.4",
|
||||||
BindPort: 1234,
|
BindPort: 1234,
|
||||||
},
|
},
|
||||||
|
NodeRegistration: kubeadmapiv1.NodeRegistrationOptions{
|
||||||
|
CRISocket: kubeadmconstants.UnknownCRISocket,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
clusterCfg := kubeadmapiv1.ClusterConfiguration{
|
clusterCfg := kubeadmapiv1.ClusterConfiguration{
|
||||||
TypeMeta: metav1.TypeMeta{
|
TypeMeta: metav1.TypeMeta{
|
||||||
|
@ -36,6 +36,7 @@ import (
|
|||||||
outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme"
|
outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme"
|
||||||
outputapiv1alpha2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha2"
|
outputapiv1alpha2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha2"
|
||||||
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
|
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
|
||||||
|
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/util/output"
|
"k8s.io/kubernetes/cmd/kubeadm/app/util/output"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -172,6 +173,9 @@ func TestRunCreateToken(t *testing.T) {
|
|||||||
Groups: tc.extraGroups,
|
Groups: tc.extraGroups,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
NodeRegistration: kubeadmapiv1.NodeRegistrationOptions{
|
||||||
|
CRISocket: constants.UnknownCRISocket,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
err = RunCreateToken(&buf, fakeClient, "", cfg, tc.printJoin, "", "")
|
err = RunCreateToken(&buf, fakeClient, "", cfg, tc.printJoin, "", "")
|
||||||
|
@ -46,9 +46,15 @@ func TestRunDiff(t *testing.T) {
|
|||||||
currentVersion := "v" + constants.CurrentKubernetesVersion.String()
|
currentVersion := "v" + constants.CurrentKubernetesVersion.String()
|
||||||
|
|
||||||
// create a temporary file with valid ClusterConfiguration
|
// create a temporary file with valid ClusterConfiguration
|
||||||
testUpgradeDiffConfigContents := []byte(fmt.Sprintf("apiVersion: %s\n"+
|
testUpgradeDiffConfigContents := []byte(fmt.Sprintf(`
|
||||||
"kind: ClusterConfiguration\n"+
|
apiVersion: %s
|
||||||
"kubernetesVersion: %s", kubeadmapiv1.SchemeGroupVersion.String(), currentVersion))
|
kind: InitConfiguration
|
||||||
|
nodeRegistration:
|
||||||
|
criSocket: %s
|
||||||
|
---
|
||||||
|
apiVersion: %[1]s
|
||||||
|
kind: ClusterConfiguration
|
||||||
|
kubernetesVersion: %[3]s`, kubeadmapiv1.SchemeGroupVersion.String(), constants.UnknownCRISocket, currentVersion))
|
||||||
testUpgradeDiffConfig, err := createTestRunDiffFile(testUpgradeDiffConfigContents)
|
testUpgradeDiffConfig, err := createTestRunDiffFile(testUpgradeDiffConfigContents)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -61,7 +61,7 @@ apiVersion: %s
|
|||||||
kind: InitConfiguration
|
kind: InitConfiguration
|
||||||
nodeRegistration:
|
nodeRegistration:
|
||||||
name: foo
|
name: foo
|
||||||
criSocket: ""
|
criSocket: %s
|
||||||
localAPIEndpoint:
|
localAPIEndpoint:
|
||||||
advertiseAddress: 192.168.2.2
|
advertiseAddress: 192.168.2.2
|
||||||
bindPort: 6443
|
bindPort: 6443
|
||||||
@ -86,7 +86,7 @@ networking:
|
|||||||
dnsDomain: cluster.local
|
dnsDomain: cluster.local
|
||||||
podSubnet: ""
|
podSubnet: ""
|
||||||
serviceSubnet: 10.96.0.0/12
|
serviceSubnet: 10.96.0.0/12
|
||||||
`, kubeadmapiv1.SchemeGroupVersion.String())
|
`, kubeadmapiv1.SchemeGroupVersion.String(), constants.UnknownCRISocket)
|
||||||
|
|
||||||
// fakeWaiter is a fake apiclient.Waiter that returns errors it was initialized with
|
// fakeWaiter is a fake apiclient.Waiter that returns errors it was initialized with
|
||||||
type fakeWaiter struct {
|
type fakeWaiter struct {
|
||||||
|
@ -1070,6 +1070,9 @@ func TestJoinIPCheck(t *testing.T) {
|
|||||||
t.Skip("not a privileged user")
|
t.Skip("not a privileged user")
|
||||||
}
|
}
|
||||||
internalcfg, err := configutil.DefaultedJoinConfiguration(&kubeadmapiv1.JoinConfiguration{
|
internalcfg, err := configutil.DefaultedJoinConfiguration(&kubeadmapiv1.JoinConfiguration{
|
||||||
|
NodeRegistration: kubeadmapiv1.NodeRegistrationOptions{
|
||||||
|
CRISocket: constants.UnknownCRISocket,
|
||||||
|
},
|
||||||
Discovery: kubeadmapiv1.Discovery{
|
Discovery: kubeadmapiv1.Discovery{
|
||||||
BootstrapToken: &kubeadmapiv1.BootstrapTokenDiscovery{
|
BootstrapToken: &kubeadmapiv1.BootstrapTokenDiscovery{
|
||||||
Token: configutil.PlaceholderToken.Token.String(),
|
Token: configutil.PlaceholderToken.Token.String(),
|
||||||
|
@ -49,7 +49,9 @@ var cfgFiles = map[string][]byte{
|
|||||||
"InitConfiguration_v1beta3": []byte(fmt.Sprintf(`
|
"InitConfiguration_v1beta3": []byte(fmt.Sprintf(`
|
||||||
apiVersion: %s
|
apiVersion: %s
|
||||||
kind: InitConfiguration
|
kind: InitConfiguration
|
||||||
`, kubeadmapiv1.SchemeGroupVersion.String())),
|
nodeRegistration:
|
||||||
|
criSocket: %s
|
||||||
|
`, kubeadmapiv1.SchemeGroupVersion.String(), kubeadmconstants.UnknownCRISocket)),
|
||||||
"ClusterConfiguration_v1beta3": []byte(fmt.Sprintf(`
|
"ClusterConfiguration_v1beta3": []byte(fmt.Sprintf(`
|
||||||
apiVersion: %s
|
apiVersion: %s
|
||||||
kind: ClusterConfiguration
|
kind: ClusterConfiguration
|
||||||
|
@ -18,6 +18,7 @@ package config
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
@ -26,11 +27,19 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestLoadInitConfigurationFromFile(t *testing.T) {
|
func TestLoadInitConfigurationFromFile(t *testing.T) {
|
||||||
|
certDir := "/tmp/foo"
|
||||||
|
clusterCfg := []byte(fmt.Sprintf(`
|
||||||
|
apiVersion: %s
|
||||||
|
kind: ClusterConfiguration
|
||||||
|
certificatesDir: %s
|
||||||
|
kubernetesVersion: %s`, kubeadmapiv1.SchemeGroupVersion.String(), certDir, constants.MinimumControlPlaneVersion.String()))
|
||||||
|
|
||||||
// Create temp folder for the test case
|
// Create temp folder for the test case
|
||||||
tmpdir, err := os.MkdirTemp("", "")
|
tmpdir, err := os.MkdirTemp("", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -43,14 +52,23 @@ func TestLoadInitConfigurationFromFile(t *testing.T) {
|
|||||||
name string
|
name string
|
||||||
fileContents []byte
|
fileContents []byte
|
||||||
expectErr bool
|
expectErr bool
|
||||||
|
validate func(*testing.T, *kubeadm.InitConfiguration)
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "v1beta3.partial1",
|
name: "v1beta3.partial1",
|
||||||
fileContents: cfgFiles["InitConfiguration_v1beta3"],
|
fileContents: cfgFiles["InitConfiguration_v1beta3"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "v1beta3.partial2",
|
name: "v1beta3.partial2",
|
||||||
fileContents: cfgFiles["ClusterConfiguration_v1beta3"],
|
fileContents: bytes.Join([][]byte{
|
||||||
|
cfgFiles["InitConfiguration_v1beta3"],
|
||||||
|
clusterCfg,
|
||||||
|
}, []byte(constants.YAMLDocumentSeparator)),
|
||||||
|
validate: func(t *testing.T, cfg *kubeadm.InitConfiguration) {
|
||||||
|
if cfg.ClusterConfiguration.CertificatesDir != certDir {
|
||||||
|
t.Errorf("CertificatesDir from ClusterConfiguration holds the wrong value, Expected: %v. Actual: %v", certDir, cfg.ClusterConfiguration.CertificatesDir)
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "v1beta3.full",
|
name: "v1beta3.full",
|
||||||
@ -87,6 +105,10 @@ func TestLoadInitConfigurationFromFile(t *testing.T) {
|
|||||||
t.Error("Unexpected nil return value")
|
t.Error("Unexpected nil return value")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// exec additional validation on the returned value
|
||||||
|
if rt.validate != nil {
|
||||||
|
rt.validate(t, obj)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -104,6 +126,9 @@ func TestDefaultTaintsMarshaling(t *testing.T) {
|
|||||||
APIVersion: kubeadmapiv1.SchemeGroupVersion.String(),
|
APIVersion: kubeadmapiv1.SchemeGroupVersion.String(),
|
||||||
Kind: constants.InitConfigurationKind,
|
Kind: constants.InitConfigurationKind,
|
||||||
},
|
},
|
||||||
|
NodeRegistration: kubeadmapiv1.NodeRegistrationOptions{
|
||||||
|
CRISocket: constants.UnknownCRISocket,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
expectedTaintCnt: 1,
|
expectedTaintCnt: 1,
|
||||||
},
|
},
|
||||||
@ -114,7 +139,9 @@ func TestDefaultTaintsMarshaling(t *testing.T) {
|
|||||||
APIVersion: kubeadmapiv1.SchemeGroupVersion.String(),
|
APIVersion: kubeadmapiv1.SchemeGroupVersion.String(),
|
||||||
Kind: constants.InitConfigurationKind,
|
Kind: constants.InitConfigurationKind,
|
||||||
},
|
},
|
||||||
NodeRegistration: kubeadmapiv1.NodeRegistrationOptions{},
|
NodeRegistration: kubeadmapiv1.NodeRegistrationOptions{
|
||||||
|
CRISocket: constants.UnknownCRISocket,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
expectedTaintCnt: 1,
|
expectedTaintCnt: 1,
|
||||||
},
|
},
|
||||||
@ -126,7 +153,8 @@ func TestDefaultTaintsMarshaling(t *testing.T) {
|
|||||||
Kind: constants.InitConfigurationKind,
|
Kind: constants.InitConfigurationKind,
|
||||||
},
|
},
|
||||||
NodeRegistration: kubeadmapiv1.NodeRegistrationOptions{
|
NodeRegistration: kubeadmapiv1.NodeRegistrationOptions{
|
||||||
Taints: []v1.Taint{},
|
Taints: []v1.Taint{},
|
||||||
|
CRISocket: constants.UnknownCRISocket,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedTaintCnt: 0,
|
expectedTaintCnt: 0,
|
||||||
@ -143,6 +171,7 @@ func TestDefaultTaintsMarshaling(t *testing.T) {
|
|||||||
{Key: "taint1"},
|
{Key: "taint1"},
|
||||||
{Key: "taint2"},
|
{Key: "taint2"},
|
||||||
},
|
},
|
||||||
|
CRISocket: constants.UnknownCRISocket,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedTaintCnt: 2,
|
expectedTaintCnt: 2,
|
||||||
|
@ -56,6 +56,8 @@ func TestLoadJoinConfigurationFromFile(t *testing.T) {
|
|||||||
apiVersion: kubeadm.k8s.io/v1beta3
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
kind: JoinConfiguration
|
kind: JoinConfiguration
|
||||||
caCertPath: /etc/kubernetes/pki/ca.crt
|
caCertPath: /etc/kubernetes/pki/ca.crt
|
||||||
|
nodeRegistration:
|
||||||
|
criSocket: "unix:///var/run/unknown.sock"
|
||||||
discovery:
|
discovery:
|
||||||
bootstrapToken:
|
bootstrapToken:
|
||||||
apiServerEndpoint: kube-apiserver:6443
|
apiServerEndpoint: kube-apiserver:6443
|
||||||
|
Loading…
Reference in New Issue
Block a user