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

Start containerd on nodes

parent ac76eebd
No related branches found
No related tags found
No related merge requests found
...@@ -81,3 +81,26 @@ func (k *KubeletConfig) Write(path string) error { ...@@ -81,3 +81,26 @@ func (k *KubeletConfig) Write(path string) error {
defer file.Close() defer file.Close()
return t.Execute(file, k) return t.Execute(file, k)
} }
const containerdTemplate = `
root = "{{.RootDir}}"
version = 2
[grpc]
address = "{{.Socket}}"
`
type ContainerdConfig struct {
RootDir string
Socket string
}
func (c *ContainerdConfig) Write(path string) error {
t, _ := template.New("containerd").Parse(containerdTemplate)
file, err := os.Create(path)
if err != nil {
return err
}
defer file.Close()
return t.Execute(file, c)
}
...@@ -57,11 +57,11 @@ func (s *HeptoState) Merge(b []byte) (bool, error) { ...@@ -57,11 +57,11 @@ func (s *HeptoState) Merge(b []byte) (bool, error) {
return false, nil return false, nil
} }
change := false change := false
change = change || s.PKI.Merge(remote.PKI) change = s.PKI.Merge(remote.PKI) || change
for name, remoteCerts := range remote.Certificates { for name, remoteCerts := range remote.Certificates {
_, ok := s.Certificates[name] _, ok := s.Certificates[name]
if ok { if ok {
change = change || s.Certificates[name].Merge(remoteCerts) change = s.Certificates[name].Merge(remoteCerts) || change
} else { } else {
s.Certificates[name] = remoteCerts s.Certificates[name] = remoteCerts
change = true change = true
......
...@@ -133,6 +133,20 @@ func (s *ClusterServices) startK8sMaster(net *ClusterNetworking, ca *pki.Cluster ...@@ -133,6 +133,20 @@ func (s *ClusterServices) startK8sMaster(net *ClusterNetworking, ca *pki.Cluster
} }
func (s *ClusterServices) startK8sNode(master net.IP, ca *pki.ClusterCA, certs *pki.NodeCerts) { func (s *ClusterServices) startK8sNode(master net.IP, ca *pki.ClusterCA, certs *pki.NodeCerts) {
// Containerd
containerdConfig := ContainerdConfig{
RootDir: "/containerd",
Socket: "/containerd.sock",
}
containerdConfigPath := "/containerd.toml"
containerdConfig.Write(containerdConfigPath)
containerd, err := wrappers.Containerd(s.ctx, []string{
"--config", containerdConfigPath,
})
if err != nil {
logrus.Fatal("could not start containerd:", err)
}
// Kubelet
kubeletKubeConfig := KubeConfig{ kubeletKubeConfig := KubeConfig{
URL: fmt.Sprintf("https://[%s]:6443", master.String()), URL: fmt.Sprintf("https://[%s]:6443", master.String()),
CACert: ca.TLS.CertPath(), CACert: ca.TLS.CertPath(),
...@@ -152,10 +166,11 @@ func (s *ClusterServices) startK8sNode(master net.IP, ca *pki.ClusterCA, certs * ...@@ -152,10 +166,11 @@ func (s *ClusterServices) startK8sNode(master net.IP, ca *pki.ClusterCA, certs *
"--kubeconfig", kubeletKubeConfigPath, "--kubeconfig", kubeletKubeConfigPath,
"--config", kubeletConfigPath, "--config", kubeletConfigPath,
"--container-runtime", "remote", "--container-runtime", "remote",
"--container-runtime-endpoint", "/run/containerd/containerd.sock", "--container-runtime-endpoint", "unix://" + containerdConfig.Socket,
}) })
if err != nil { if err != nil {
logrus.Fatal(err) logrus.Fatal(err)
} }
go s.watch(containerd)
go s.watch(kubelet) go s.watch(kubelet)
} }
...@@ -7,7 +7,7 @@ import ( ...@@ -7,7 +7,7 @@ import (
"crypto/rand" "crypto/rand"
"crypto/x509" "crypto/x509"
"errors" "errors"
"io/ioutil" "os"
) )
type Cert struct { type Cert struct {
...@@ -96,9 +96,9 @@ func (c *Certificate) Save() error { ...@@ -96,9 +96,9 @@ func (c *Certificate) Save() error {
// temporary directory // temporary directory
func (c *Certificate) ensureIO() { func (c *Certificate) ensureIO() {
if c.IO == nil { if c.IO == nil {
dir, _ := ioutil.TempDir("/tmp", "cert-") tmp, _ := os.CreateTemp("", "cert-")
c.IO = FileIO{dir} tmp.Close()
c.Save() c.IO = FileIO{tmp.Name()}
} }
} }
......
...@@ -47,7 +47,7 @@ func EmptyClusterCA() *ClusterCA { ...@@ -47,7 +47,7 @@ func EmptyClusterCA() *ClusterCA {
// Merge the CA // 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 = mergeCert(n.Kubelet, remote.Kubelet) || change
change = change || mergeCert(n.API, remote.API) change = mergeCert(n.API, remote.API) || change
return change return change
} }
...@@ -42,7 +42,7 @@ func NewNodeCerts(path string, nodeName string) (*NodeCerts, error) { ...@@ -42,7 +42,7 @@ func NewNodeCerts(path string, nodeName string) (*NodeCerts, error) {
// Merge node certificates // Merge node certificates
func (n *NodeCerts) Merge(other *NodeCerts) bool { func (n *NodeCerts) Merge(other *NodeCerts) bool {
change := mergeCert(n.TLS, other.TLS) change := mergeCert(n.TLS, other.TLS)
change = change || mergeCert(n.API, other.API) change = mergeCert(n.API, other.API) || change
return change return change
} }
......
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