mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-10 12:32:03 +00:00
fix fd leaks and failed file removing for test directory
This commit is contained in:
parent
b94c6daa0b
commit
5289a7b029
@ -19,11 +19,14 @@ package apimachinery
|
|||||||
import (
|
import (
|
||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
"os"
|
"os"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
|
"k8s.io/kubernetes/test/utils"
|
||||||
|
|
||||||
"k8s.io/client-go/util/cert"
|
"k8s.io/client-go/util/cert"
|
||||||
"k8s.io/client-go/util/keyutil"
|
"k8s.io/client-go/util/keyutil"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
"k8s.io/kubernetes/test/utils"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type certContext struct {
|
type certContext struct {
|
||||||
@ -52,6 +55,7 @@ func setupServerCert(namespaceName, serviceName string) *certContext {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Failed to create a temp file for ca cert generation %v", err)
|
framework.Failf("Failed to create a temp file for ca cert generation %v", err)
|
||||||
}
|
}
|
||||||
|
defer utiltesting.CloseAndRemove(&testing.T{}, caCertFile)
|
||||||
if err := os.WriteFile(caCertFile.Name(), utils.EncodeCertPEM(signingCert), 0644); err != nil {
|
if err := os.WriteFile(caCertFile.Name(), utils.EncodeCertPEM(signingCert), 0644); err != nil {
|
||||||
framework.Failf("Failed to write CA cert %v", err)
|
framework.Failf("Failed to write CA cert %v", err)
|
||||||
}
|
}
|
||||||
@ -74,6 +78,7 @@ func setupServerCert(namespaceName, serviceName string) *certContext {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Failed to create a temp file for cert generation %v", err)
|
framework.Failf("Failed to create a temp file for cert generation %v", err)
|
||||||
}
|
}
|
||||||
|
defer utiltesting.CloseAndRemove(&testing.T{}, certFile)
|
||||||
keyFile, err := os.CreateTemp(certDir, "server.key")
|
keyFile, err := os.CreateTemp(certDir, "server.key")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Failed to create a temp file for key generation %v", err)
|
framework.Failf("Failed to create a temp file for key generation %v", err)
|
||||||
@ -88,6 +93,7 @@ func setupServerCert(namespaceName, serviceName string) *certContext {
|
|||||||
if err = os.WriteFile(keyFile.Name(), privateKeyPEM, 0644); err != nil {
|
if err = os.WriteFile(keyFile.Name(), privateKeyPEM, 0644); err != nil {
|
||||||
framework.Failf("Failed to write key file %v", err)
|
framework.Failf("Failed to write key file %v", err)
|
||||||
}
|
}
|
||||||
|
defer utiltesting.CloseAndRemove(&testing.T{}, keyFile)
|
||||||
return &certContext{
|
return &certContext{
|
||||||
cert: utils.EncodeCertPEM(signedCert),
|
cert: utils.EncodeCertPEM(signedCert),
|
||||||
key: privateKeyPEM,
|
key: privateKeyPEM,
|
||||||
|
@ -19,6 +19,9 @@ package services
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
|
|
||||||
"k8s.io/apiserver/pkg/storage/storagebackend"
|
"k8s.io/apiserver/pkg/storage/storagebackend"
|
||||||
netutils "k8s.io/utils/net"
|
netutils "k8s.io/utils/net"
|
||||||
@ -79,7 +82,7 @@ func (a *APIServer) Start() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("create temp file failed: %w", err)
|
return fmt.Errorf("create temp file failed: %w", err)
|
||||||
}
|
}
|
||||||
defer os.RemoveAll(saSigningKeyFile.Name())
|
defer utiltesting.CloseAndRemove(&testing.T{}, saSigningKeyFile)
|
||||||
if err = os.WriteFile(saSigningKeyFile.Name(), []byte(ecdsaPrivateKey), 0666); err != nil {
|
if err = os.WriteFile(saSigningKeyFile.Name(), []byte(ecdsaPrivateKey), 0666); err != nil {
|
||||||
return fmt.Errorf("write file %s failed: %w", saSigningKeyFile.Name(), err)
|
return fmt.Errorf("write file %s failed: %w", saSigningKeyFile.Name(), err)
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
|
|
||||||
"k8s.io/api/admission/v1beta1"
|
"k8s.io/api/admission/v1beta1"
|
||||||
admissionregistrationv1 "k8s.io/api/admissionregistration/v1"
|
admissionregistrationv1 "k8s.io/api/admissionregistration/v1"
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
@ -87,7 +89,7 @@ func testWebhookClientAuth(t *testing.T, enableAggregatorRouting bool) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer os.Remove(kubeConfigFile.Name())
|
defer utiltesting.CloseAndRemove(t, kubeConfigFile)
|
||||||
|
|
||||||
if err := os.WriteFile(kubeConfigFile.Name(), []byte(`
|
if err := os.WriteFile(kubeConfigFile.Name(), []byte(`
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@ -113,7 +115,7 @@ users:
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer os.Remove(admissionConfigFile.Name())
|
defer utiltesting.CloseAndRemove(t, admissionConfigFile)
|
||||||
|
|
||||||
if err := os.WriteFile(admissionConfigFile.Name(), []byte(`
|
if err := os.WriteFile(admissionConfigFile.Name(), []byte(`
|
||||||
apiVersion: apiserver.k8s.io/v1alpha1
|
apiVersion: apiserver.k8s.io/v1alpha1
|
||||||
|
@ -44,6 +44,7 @@ import (
|
|||||||
auditv1 "k8s.io/apiserver/pkg/apis/audit/v1"
|
auditv1 "k8s.io/apiserver/pkg/apis/audit/v1"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
||||||
"k8s.io/kubernetes/test/integration/framework"
|
"k8s.io/kubernetes/test/integration/framework"
|
||||||
"k8s.io/kubernetes/test/utils"
|
"k8s.io/kubernetes/test/utils"
|
||||||
@ -281,7 +282,7 @@ func testWebhookReinvocationPolicy(t *testing.T, watchCache bool) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Failed to create audit log file: %v", err)
|
t.Fatalf("Failed to create audit log file: %v", err)
|
||||||
}
|
}
|
||||||
defer os.Remove(logFile.Name())
|
defer utiltesting.CloseAndRemove(t, logFile)
|
||||||
|
|
||||||
s := kubeapiservertesting.StartTestServerOrDie(t, kubeapiservertesting.NewDefaultTestServerOptions(), []string{
|
s := kubeapiservertesting.StartTestServerOrDie(t, kubeapiservertesting.NewDefaultTestServerOptions(), []string{
|
||||||
"--disable-admission-plugins=ServiceAccount",
|
"--disable-admission-plugins=ServiceAccount",
|
||||||
|
@ -38,6 +38,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
||||||
client "k8s.io/client-go/kubernetes"
|
client "k8s.io/client-go/kubernetes"
|
||||||
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
||||||
"k8s.io/kubernetes/test/integration/framework"
|
"k8s.io/kubernetes/test/integration/framework"
|
||||||
)
|
)
|
||||||
@ -73,7 +74,7 @@ egressSelections:
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer os.Remove(tracingConfigFile.Name())
|
defer utiltesting.CloseAndRemove(t, tracingConfigFile)
|
||||||
|
|
||||||
if err := os.WriteFile(tracingConfigFile.Name(), []byte(fmt.Sprintf(`
|
if err := os.WriteFile(tracingConfigFile.Name(), []byte(fmt.Sprintf(`
|
||||||
apiVersion: apiserver.config.k8s.io/v1beta1
|
apiVersion: apiserver.config.k8s.io/v1beta1
|
||||||
|
@ -41,6 +41,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
|
|
||||||
"github.com/google/go-cmp/cmp"
|
"github.com/google/go-cmp/cmp"
|
||||||
|
|
||||||
authenticationv1beta1 "k8s.io/api/authentication/v1beta1"
|
authenticationv1beta1 "k8s.io/api/authentication/v1beta1"
|
||||||
@ -86,7 +88,7 @@ func getTestWebhookTokenAuth(serverURL string, customDial utilnet.DialFunc) (aut
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer os.Remove(kubecfgFile.Name())
|
defer utiltesting.CloseAndRemove(&testing.T{}, kubecfgFile)
|
||||||
config := v1.Config{
|
config := v1.Config{
|
||||||
Clusters: []v1.NamedCluster{
|
Clusters: []v1.NamedCluster{
|
||||||
{
|
{
|
||||||
|
@ -22,6 +22,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apiserver/pkg/authentication/authenticator"
|
"k8s.io/apiserver/pkg/authentication/authenticator"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
@ -38,7 +40,7 @@ func TestDynamicClientBuilder(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("create temp file failed: %v", err)
|
t.Fatalf("create temp file failed: %v", err)
|
||||||
}
|
}
|
||||||
defer os.RemoveAll(tmpfile.Name())
|
defer utiltesting.CloseAndRemove(t, tmpfile)
|
||||||
|
|
||||||
if err = os.WriteFile(tmpfile.Name(), []byte(ecdsaPrivateKey), 0666); err != nil {
|
if err = os.WriteFile(tmpfile.Name(), []byte(ecdsaPrivateKey), 0666); err != nil {
|
||||||
t.Fatalf("write file %s failed: %v", tmpfile.Name(), err)
|
t.Fatalf("write file %s failed: %v", tmpfile.Name(), err)
|
||||||
|
@ -41,6 +41,7 @@ import (
|
|||||||
auditinternal "k8s.io/apiserver/pkg/apis/audit"
|
auditinternal "k8s.io/apiserver/pkg/apis/audit"
|
||||||
auditv1 "k8s.io/apiserver/pkg/apis/audit/v1"
|
auditv1 "k8s.io/apiserver/pkg/apis/audit/v1"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
||||||
"k8s.io/kubernetes/test/integration/framework"
|
"k8s.io/kubernetes/test/integration/framework"
|
||||||
"k8s.io/kubernetes/test/utils"
|
"k8s.io/kubernetes/test/utils"
|
||||||
@ -245,7 +246,7 @@ func runTestWithVersion(t *testing.T, version string) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Failed to create audit log file: %v", err)
|
t.Fatalf("Failed to create audit log file: %v", err)
|
||||||
}
|
}
|
||||||
defer os.Remove(logFile.Name())
|
defer utiltesting.CloseAndRemove(t, logFile)
|
||||||
|
|
||||||
// start api server
|
// start api server
|
||||||
result := kubeapiservertesting.StartTestServerOrDie(t, nil,
|
result := kubeapiservertesting.StartTestServerOrDie(t, nil,
|
||||||
|
@ -26,6 +26,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
|
|
||||||
clientv3 "go.etcd.io/etcd/client/v3"
|
clientv3 "go.etcd.io/etcd/client/v3"
|
||||||
|
|
||||||
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||||
@ -81,7 +83,7 @@ func StartRealAPIServerOrDie(t *testing.T, configFuncs ...func(*options.ServerRu
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("create temp file failed: %v", err)
|
t.Fatalf("create temp file failed: %v", err)
|
||||||
}
|
}
|
||||||
defer os.RemoveAll(saSigningKeyFile.Name())
|
defer utiltesting.CloseAndRemove(t, saSigningKeyFile)
|
||||||
if err = os.WriteFile(saSigningKeyFile.Name(), []byte(ecdsaPrivateKey), 0666); err != nil {
|
if err = os.WriteFile(saSigningKeyFile.Name(), []byte(ecdsaPrivateKey), 0666); err != nil {
|
||||||
t.Fatalf("write file %s failed: %v", saSigningKeyFile.Name(), err)
|
t.Fatalf("write file %s failed: %v", saSigningKeyFile.Name(), err)
|
||||||
}
|
}
|
||||||
|
@ -522,6 +522,7 @@ func writeKubeConfigForWardleServerToKASConnection(t *testing.T, kubeClientConfi
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer wardleToKASKubeConfigFile.Close()
|
||||||
return wardleToKASKubeConfigFile.Name()
|
return wardleToKASKubeConfigFile.Name()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,6 +99,7 @@ func StartTestServer(ctx context.Context, t testing.TB, setup TestServerSetup) (
|
|||||||
if err := os.WriteFile(proxyCACertFile.Name(), utils.EncodeCertPEM(proxySigningCert), 0644); err != nil {
|
if err := os.WriteFile(proxyCACertFile.Name(), utils.EncodeCertPEM(proxySigningCert), 0644); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
defer proxyCACertFile.Close()
|
||||||
clientSigningKey, err := utils.NewPrivateKey()
|
clientSigningKey, err := utils.NewPrivateKey()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -111,7 +112,7 @@ func StartTestServer(ctx context.Context, t testing.TB, setup TestServerSetup) (
|
|||||||
if err := os.WriteFile(clientCACertFile.Name(), utils.EncodeCertPEM(clientSigningCert), 0644); err != nil {
|
if err := os.WriteFile(clientCACertFile.Name(), utils.EncodeCertPEM(clientSigningCert), 0644); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
defer clientCACertFile.Close()
|
||||||
listener, _, err := genericapiserveroptions.CreateListener("tcp", "127.0.0.1:0", net.ListenConfig{})
|
listener, _, err := genericapiserveroptions.CreateListener("tcp", "127.0.0.1:0", net.ListenConfig{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -121,7 +122,7 @@ func StartTestServer(ctx context.Context, t testing.TB, setup TestServerSetup) (
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("create temp file failed: %v", err)
|
t.Fatalf("create temp file failed: %v", err)
|
||||||
}
|
}
|
||||||
defer os.RemoveAll(saSigningKeyFile.Name())
|
defer saSigningKeyFile.Close()
|
||||||
if err = os.WriteFile(saSigningKeyFile.Name(), []byte(ecdsaPrivateKey), 0666); err != nil {
|
if err = os.WriteFile(saSigningKeyFile.Name(), []byte(ecdsaPrivateKey), 0666); err != nil {
|
||||||
t.Fatalf("write file %s failed: %v", saSigningKeyFile.Name(), err)
|
t.Fatalf("write file %s failed: %v", saSigningKeyFile.Name(), err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user