-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
daemon.go
57 lines (48 loc) · 1.3 KB
/
daemon.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package kubelet
import (
"github.com/awslabs/amazon-eks-ami/nodeadm/internal/api"
"github.com/awslabs/amazon-eks-ami/nodeadm/internal/daemon"
)
const KubeletDaemonName = "kubelet"
var _ daemon.Daemon = &kubelet{}
type kubelet struct {
daemonManager daemon.DaemonManager
// environment variables to write for kubelet
environment map[string]string
// kubelet config flags without leading dashes
flags map[string]string
}
func NewKubeletDaemon(daemonManager daemon.DaemonManager) daemon.Daemon {
return &kubelet{
daemonManager: daemonManager,
environment: make(map[string]string),
flags: make(map[string]string),
}
}
func (k *kubelet) Configure(cfg *api.NodeConfig) error {
if err := k.writeKubeletConfig(cfg); err != nil {
return err
}
if err := k.writeKubeconfig(cfg); err != nil {
return err
}
if err := k.writeImageCredentialProviderConfig(cfg); err != nil {
return err
}
if err := writeClusterCaCert(cfg.Spec.Cluster.CertificateAuthority); err != nil {
return err
}
if err := k.writeKubeletEnvironment(cfg); err != nil {
return err
}
return nil
}
func (k *kubelet) EnsureRunning() error {
return k.daemonManager.StartDaemon(KubeletDaemonName)
}
func (k *kubelet) PostLaunch(_ *api.NodeConfig) error {
return nil
}
func (k *kubelet) Name() string {
return KubeletDaemonName
}