Skip to content
Snippets Groups Projects
Commit ac76eebd authored by kaiyou's avatar kaiyou
Browse files

Fix various pki related issues

parent 4b9e24aa
No related branches found
No related tags found
No related merge requests found
Pipeline #21580 passed
...@@ -27,7 +27,7 @@ func New(settings *ClusterSettings, node *NodeSettings) *Cluster { ...@@ -27,7 +27,7 @@ func New(settings *ClusterSettings, node *NodeSettings) *Cluster {
node: node, node: node,
networking: NewClusterNetworking(settings.Name, node.Name), networking: NewClusterNetworking(settings.Name, node.Name),
ml: sml.New[HeptoMeta, HeptoState](node.Name, node.IP, node.Port, node.Anchors, settings.Key), ml: sml.New[HeptoMeta, HeptoState](node.Name, node.IP, node.Port, node.Anchors, settings.Key),
pki: &pki.ClusterCA{}, pki: pki.EmptyClusterCA(),
services: NewClusterServices(), services: NewClusterServices(),
} }
} }
......
...@@ -112,7 +112,7 @@ func (s *ClusterServices) startK8sMaster(net *ClusterNetworking, ca *pki.Cluster ...@@ -112,7 +112,7 @@ func (s *ClusterServices) startK8sMaster(net *ClusterNetworking, ca *pki.Cluster
} }
schedulerConfig := KubeConfig{ schedulerConfig := KubeConfig{
URL: fmt.Sprintf("https://[%s]:6443", net.NodeAddress.IP.String()), URL: fmt.Sprintf("https://[%s]:6443", net.NodeAddress.IP.String()),
CACert: ca.API.CertPath(), CACert: ca.TLS.CertPath(),
ClientCert: certs.SchedulerAPI.CertPath(), ClientCert: certs.SchedulerAPI.CertPath(),
ClientKey: certs.SchedulerAPI.KeyPath(), ClientKey: certs.SchedulerAPI.KeyPath(),
} }
......
...@@ -14,6 +14,7 @@ type ClusterCA struct { ...@@ -14,6 +14,7 @@ type ClusterCA struct {
API *pekahi.Certificate `json:"api"` API *pekahi.Certificate `json:"api"`
} }
// Cluster CA as it is held by the master node
func NewClusterCA(path string) (*ClusterCA, error) { func NewClusterCA(path string) (*ClusterCA, error) {
bundle, err := pekahi.NewFileBundle(path) bundle, err := pekahi.NewFileBundle(path)
if err != nil { if err != nil {
...@@ -34,7 +35,16 @@ func NewClusterCA(path string) (*ClusterCA, error) { ...@@ -34,7 +35,16 @@ func NewClusterCA(path string) (*ClusterCA, error) {
return &ClusterCA{tlsCA, kubeletCA, apiserverCA}, nil return &ClusterCA{tlsCA, kubeletCA, apiserverCA}, nil
} }
// Merge PKI // Empty CA for receiving certificates
func EmptyClusterCA() *ClusterCA {
return &ClusterCA{
TLS: &pekahi.Certificate{},
Kubelet: &pekahi.Certificate{},
API: &pekahi.Certificate{},
}
}
// Merge the CA
func (n *ClusterCA) Merge(remote *ClusterCA) bool { func (n *ClusterCA) Merge(remote *ClusterCA) bool {
change := mergeCert(n.TLS, remote.TLS) change := mergeCert(n.TLS, remote.TLS)
change = change || mergeCert(n.Kubelet, remote.Kubelet) change = change || mergeCert(n.Kubelet, remote.Kubelet)
......
...@@ -14,11 +14,6 @@ func mergeCert(local *pekahi.Certificate, remote *pekahi.Certificate) bool { ...@@ -14,11 +14,6 @@ func mergeCert(local *pekahi.Certificate, remote *pekahi.Certificate) bool {
if remote == nil { if remote == nil {
return change return change
} }
// Create local certificate if required
if local == nil && remote != nil {
*local = pekahi.Certificate{}
change = true
}
// Import CSR to master for signing // Import CSR to master for signing
if local.CSR == nil && remote.CSR != nil { if local.CSR == nil && remote.CSR != nil {
local.CSR = remote.CSR local.CSR = remote.CSR
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment