mirror of https://github.com/k3s-io/k3s
Move basic authentication to k3s
parent
57fc0c9c87
commit
c5dc09159f
|
@ -0,0 +1,30 @@
|
||||||
|
package control
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/rancher/k3s/pkg/authenticator/basicauth"
|
||||||
|
"github.com/rancher/k3s/pkg/authenticator/passwordfile"
|
||||||
|
"k8s.io/apiserver/pkg/authentication/authenticator"
|
||||||
|
"k8s.io/apiserver/pkg/authentication/group"
|
||||||
|
"k8s.io/apiserver/pkg/authentication/request/union"
|
||||||
|
)
|
||||||
|
|
||||||
|
func basicAuthenticator(basicAuthFile string) (authenticator.Request, error) {
|
||||||
|
if basicAuthFile == "" {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
basicAuthenticator, err := passwordfile.NewCSV(basicAuthFile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return basicauth.New(basicAuthenticator), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func combineAuthenticators(auths ...authenticator.Request) authenticator.Request {
|
||||||
|
var authenticators []authenticator.Request
|
||||||
|
for _, auth := range auths {
|
||||||
|
if auth != nil {
|
||||||
|
authenticators = append(authenticators, auth)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return group.NewAuthenticatedGroupAdder(union.New(authenticators...))
|
||||||
|
}
|
|
@ -102,8 +102,13 @@ func Server(ctx context.Context, cfg *config.Control) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
basicAuth, err := basicAuthenticator(runtime.PasswdFile)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
runtime.Authenticator = combineAuthenticators(basicAuth, auth)
|
||||||
runtime.Handler = handler
|
runtime.Handler = handler
|
||||||
runtime.Authenticator = auth
|
|
||||||
|
|
||||||
if !cfg.NoScheduler {
|
if !cfg.NoScheduler {
|
||||||
if err := scheduler(cfg, runtime); err != nil {
|
if err := scheduler(cfg, runtime); err != nil {
|
||||||
|
@ -195,7 +200,6 @@ func apiServer(ctx context.Context, cfg *config.Control, runtime *config.Control
|
||||||
argsMap["service-account-key-file"] = runtime.ServiceKey
|
argsMap["service-account-key-file"] = runtime.ServiceKey
|
||||||
argsMap["service-account-issuer"] = version.Program
|
argsMap["service-account-issuer"] = version.Program
|
||||||
argsMap["api-audiences"] = "unknown"
|
argsMap["api-audiences"] = "unknown"
|
||||||
argsMap["basic-auth-file"] = runtime.PasswdFile
|
|
||||||
argsMap["kubelet-certificate-authority"] = runtime.ServerCA
|
argsMap["kubelet-certificate-authority"] = runtime.ServerCA
|
||||||
argsMap["kubelet-client-certificate"] = runtime.ClientKubeAPICert
|
argsMap["kubelet-client-certificate"] = runtime.ClientKubeAPICert
|
||||||
argsMap["kubelet-client-key"] = runtime.ClientKubeAPIKey
|
argsMap["kubelet-client-key"] = runtime.ClientKubeAPIKey
|
||||||
|
|
Loading…
Reference in New Issue