mirror of https://github.com/kubernetes/kops.git
Use kops-controller to issue kube-router cert
This commit is contained in:
parent
8e43c1d637
commit
b6947ccaee
|
@ -168,6 +168,10 @@ func (s *Server) issueCert(name string, pubKey string, id *fi.VerifyResult, vali
|
||||||
issueReq.Subject = pkix.Name{
|
issueReq.Subject = pkix.Name{
|
||||||
CommonName: rbac.KubeProxy,
|
CommonName: rbac.KubeProxy,
|
||||||
}
|
}
|
||||||
|
case "kube-router":
|
||||||
|
issueReq.Subject = pkix.Name{
|
||||||
|
CommonName: rbac.KubeRouter,
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return "", fmt.Errorf("unexpected key name")
|
return "", fmt.Errorf("unexpected key name")
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ go_library(
|
||||||
deps = [
|
deps = [
|
||||||
"//nodeup/pkg/model:go_default_library",
|
"//nodeup/pkg/model:go_default_library",
|
||||||
"//pkg/apis/kops:go_default_library",
|
"//pkg/apis/kops:go_default_library",
|
||||||
|
"//pkg/rbac:go_default_library",
|
||||||
"//upup/pkg/fi:go_default_library",
|
"//upup/pkg/fi:go_default_library",
|
||||||
"//upup/pkg/fi/nodeup/nodetasks:go_default_library",
|
"//upup/pkg/fi/nodeup/nodetasks:go_default_library",
|
||||||
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
|
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
|
||||||
|
|
|
@ -18,6 +18,7 @@ package networking
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/kops/nodeup/pkg/model"
|
"k8s.io/kops/nodeup/pkg/model"
|
||||||
|
"k8s.io/kops/pkg/rbac"
|
||||||
"k8s.io/kops/upup/pkg/fi"
|
"k8s.io/kops/upup/pkg/fi"
|
||||||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||||
)
|
)
|
||||||
|
@ -37,14 +38,21 @@ func (b *KuberouterBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
kubeconfig, err := b.BuildPKIKubeconfig("kube-router")
|
var kubeconfig fi.Resource
|
||||||
|
var err error
|
||||||
|
|
||||||
|
if b.IsMaster {
|
||||||
|
kubeconfig = b.BuildIssuedKubeconfig("kube-router", nodetasks.PKIXName{CommonName: rbac.KubeRouter}, c)
|
||||||
|
} else {
|
||||||
|
kubeconfig, err = b.BuildBootstrapKubeconfig("kube-router", c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
c.AddTask(&nodetasks.File{
|
c.AddTask(&nodetasks.File{
|
||||||
Path: "/var/lib/kube-router/kubeconfig",
|
Path: "/var/lib/kube-router/kubeconfig",
|
||||||
Contents: fi.NewStringResource(kubeconfig),
|
Contents: kubeconfig,
|
||||||
Type: nodetasks.FileType_File,
|
Type: nodetasks.FileType_File,
|
||||||
Mode: fi.String("0400"),
|
Mode: fi.String("0400"),
|
||||||
})
|
})
|
||||||
|
|
|
@ -474,7 +474,7 @@ func ReadableStatePaths(cluster *kops.Cluster, role kops.InstanceGroupRole) ([]s
|
||||||
|
|
||||||
if networkingSpec != nil {
|
if networkingSpec != nil {
|
||||||
// @check if kuberoute is enabled and permit access to the private key
|
// @check if kuberoute is enabled and permit access to the private key
|
||||||
if networkingSpec.Kuberouter != nil {
|
if networkingSpec.Kuberouter != nil && !model.UseKopsControllerForNodeBootstrap(cluster) {
|
||||||
paths = append(paths, "/pki/private/kube-router/*")
|
paths = append(paths, "/pki/private/kube-router/*")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -140,10 +140,10 @@ func (b *PKIModelBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if b.KopsModelContext.Cluster.Spec.Networking.Kuberouter != nil {
|
if b.KopsModelContext.Cluster.Spec.Networking.Kuberouter != nil && !b.UseKopsControllerForNodeBootstrap() {
|
||||||
t := &fitasks.Keypair{
|
t := &fitasks.Keypair{
|
||||||
Name: fi.String("kube-router"),
|
Name: fi.String("kube-router"),
|
||||||
Subject: "cn=" + "system:kube-router",
|
Subject: "cn=" + rbac.KubeRouter,
|
||||||
Type: "client",
|
Type: "client",
|
||||||
Signer: defaultCA,
|
Signer: defaultCA,
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ const (
|
||||||
|
|
||||||
// core kubernetes process identities
|
// core kubernetes process identities
|
||||||
KubeProxy = "system:kube-proxy"
|
KubeProxy = "system:kube-proxy"
|
||||||
|
KubeRouter = "system:kube-router"
|
||||||
KubeControllerManager = "system:kube-controller-manager"
|
KubeControllerManager = "system:kube-controller-manager"
|
||||||
KubeScheduler = "system:kube-scheduler"
|
KubeScheduler = "system:kube-scheduler"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue