mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 02:41:25 +00:00
make client authentication optional for test kube-apiserver
This commit is contained in:
parent
3aede35b3b
commit
3fbfe60ed2
@ -47,6 +47,9 @@ type TearDownFunc func()
|
|||||||
type TestServerInstanceOptions struct {
|
type TestServerInstanceOptions struct {
|
||||||
// DisableStorageCleanup Disable the automatic storage cleanup
|
// DisableStorageCleanup Disable the automatic storage cleanup
|
||||||
DisableStorageCleanup bool
|
DisableStorageCleanup bool
|
||||||
|
|
||||||
|
// Enable cert-auth for the kube-apiserver
|
||||||
|
EnableCertAuth bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestServer return values supplied by kube-test-ApiServer
|
// TestServer return values supplied by kube-test-ApiServer
|
||||||
@ -68,6 +71,7 @@ type Logger interface {
|
|||||||
func NewDefaultTestServerOptions() *TestServerInstanceOptions {
|
func NewDefaultTestServerOptions() *TestServerInstanceOptions {
|
||||||
return &TestServerInstanceOptions{
|
return &TestServerInstanceOptions{
|
||||||
DisableStorageCleanup: false,
|
DisableStorageCleanup: false,
|
||||||
|
EnableCertAuth: true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,33 +128,36 @@ func StartTestServer(t Logger, instanceOptions *TestServerInstanceOptions, custo
|
|||||||
}
|
}
|
||||||
s.SecureServing.ServerCert.CertDirectory = result.TmpDir
|
s.SecureServing.ServerCert.CertDirectory = result.TmpDir
|
||||||
|
|
||||||
// create optional certificates for aggregation and client-cert auth
|
if instanceOptions.EnableCertAuth {
|
||||||
proxySigningKey, err := testutil.NewPrivateKey()
|
// create certificates for aggregation and client-cert auth
|
||||||
if err != nil {
|
proxySigningKey, err := testutil.NewPrivateKey()
|
||||||
return result, err
|
if err != nil {
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
proxySigningCert, err := cert.NewSelfSignedCACert(cert.Config{CommonName: "front-proxy-ca"}, proxySigningKey)
|
||||||
|
if err != nil {
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
proxyCACertFile := path.Join(s.SecureServing.ServerCert.CertDirectory, "proxy-ca.crt")
|
||||||
|
if err := ioutil.WriteFile(proxyCACertFile, testutil.EncodeCertPEM(proxySigningCert), 0644); err != nil {
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
s.Authentication.RequestHeader.ClientCAFile = proxyCACertFile
|
||||||
|
clientSigningKey, err := testutil.NewPrivateKey()
|
||||||
|
if err != nil {
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
clientSigningCert, err := cert.NewSelfSignedCACert(cert.Config{CommonName: "client-ca"}, clientSigningKey)
|
||||||
|
if err != nil {
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
clientCACertFile := path.Join(s.SecureServing.ServerCert.CertDirectory, "client-ca.crt")
|
||||||
|
if err := ioutil.WriteFile(clientCACertFile, testutil.EncodeCertPEM(clientSigningCert), 0644); err != nil {
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
s.Authentication.ClientCert.ClientCA = clientCACertFile
|
||||||
}
|
}
|
||||||
proxySigningCert, err := cert.NewSelfSignedCACert(cert.Config{CommonName: "front-proxy-ca"}, proxySigningKey)
|
|
||||||
if err != nil {
|
|
||||||
return result, err
|
|
||||||
}
|
|
||||||
proxyCACertFile := path.Join(s.SecureServing.ServerCert.CertDirectory, "proxy-ca.crt")
|
|
||||||
if err := ioutil.WriteFile(proxyCACertFile, testutil.EncodeCertPEM(proxySigningCert), 0644); err != nil {
|
|
||||||
return result, err
|
|
||||||
}
|
|
||||||
s.Authentication.RequestHeader.ClientCAFile = proxyCACertFile
|
|
||||||
clientSigningKey, err := testutil.NewPrivateKey()
|
|
||||||
if err != nil {
|
|
||||||
return result, err
|
|
||||||
}
|
|
||||||
clientSigningCert, err := cert.NewSelfSignedCACert(cert.Config{CommonName: "client-ca"}, clientSigningKey)
|
|
||||||
if err != nil {
|
|
||||||
return result, err
|
|
||||||
}
|
|
||||||
clientCACertFile := path.Join(s.SecureServing.ServerCert.CertDirectory, "client-ca.crt")
|
|
||||||
if err := ioutil.WriteFile(clientCACertFile, testutil.EncodeCertPEM(clientSigningCert), 0644); err != nil {
|
|
||||||
return result, err
|
|
||||||
}
|
|
||||||
s.Authentication.ClientCert.ClientCA = clientCACertFile
|
|
||||||
s.SecureServing.ExternalAddress = s.SecureServing.Listener.Addr().(*net.TCPAddr).IP // use listener addr although it is a loopback device
|
s.SecureServing.ExternalAddress = s.SecureServing.Listener.Addr().(*net.TCPAddr).IP // use listener addr although it is a loopback device
|
||||||
|
|
||||||
_, thisFile, _, ok := runtime.Caller(0)
|
_, thisFile, _, ok := runtime.Caller(0)
|
||||||
|
@ -58,7 +58,7 @@ func TestAggregatedAPIServer(t *testing.T) {
|
|||||||
stopCh := make(chan struct{})
|
stopCh := make(chan struct{})
|
||||||
defer close(stopCh)
|
defer close(stopCh)
|
||||||
|
|
||||||
testServer := kastesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
testServer := kastesting.StartTestServerOrDie(t, &kastesting.TestServerInstanceOptions{EnableCertAuth: true}, nil, framework.SharedEtcd())
|
||||||
defer testServer.TearDownFn()
|
defer testServer.TearDownFn()
|
||||||
kubeClientConfig := rest.CopyConfig(testServer.ClientConfig)
|
kubeClientConfig := rest.CopyConfig(testServer.ClientConfig)
|
||||||
// force json because everything speaks it
|
// force json because everything speaks it
|
||||||
|
Loading…
Reference in New Issue
Block a user