Skip to content
This repository was archived by the owner on Jul 30, 2021. It is now read-only.

Commit 2f6631e

Browse files
author
Patrick Baxter
committed
make self-hosted kubelet optional with render flag
1 parent 8f8d0fb commit 2f6631e

File tree

4 files changed

+22
-15
lines changed

4 files changed

+22
-15
lines changed

cmd/bootkube/render.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ var (
3333
etcdServers string
3434
apiServers string
3535
altNames string
36+
selfHostKubelet bool
3637
}
3738
)
3839

@@ -44,6 +45,7 @@ func init() {
4445
cmdRender.Flags().StringVar(&renderOpts.etcdServers, "etcd-servers", "http://127.0.0.1:2379", "List of etcd servers URLs including host:port, comma separated")
4546
cmdRender.Flags().StringVar(&renderOpts.apiServers, "api-servers", "https://127.0.0.1:443", "List of API server URLs including host:port, commma seprated")
4647
cmdRender.Flags().StringVar(&renderOpts.altNames, "api-server-alt-names", "", "List of SANs to use in api-server certificate. Example: 'IP=127.0.0.1,IP=127.0.0.2,DNS=localhost'. If empty, SANs will be extracted from the --api-servers flag.")
48+
cmdRender.Flags().BoolVar(&renderOpts.selfHostKubelet, "self-host-kubelet", true, "Set false to skip creation of and pivot to self-hosted kubelet.")
4749
}
4850

4951
func runCmdRender(cmd *cobra.Command, args []string) error {
@@ -106,11 +108,12 @@ func flagsToAssetConfig() (c *asset.Config, err error) {
106108
}
107109
}
108110
return &asset.Config{
109-
EtcdServers: etcdServers,
110-
CACert: caCert,
111-
CAPrivKey: caPrivKey,
112-
APIServers: apiServers,
113-
AltNames: altNames,
111+
EtcdServers: etcdServers,
112+
CACert: caCert,
113+
CAPrivKey: caPrivKey,
114+
APIServers: apiServers,
115+
AltNames: altNames,
116+
SelfHostKubelet: renderOpts.selfHostKubelet,
114117
}, nil
115118
}
116119

pkg/asset/asset.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,19 @@ const (
3838
// AssetConfig holds all configuration needed when generating
3939
// the default set of assets.
4040
type Config struct {
41-
EtcdServers []*url.URL
42-
APIServers []*url.URL
43-
CACert *x509.Certificate
44-
CAPrivKey *rsa.PrivateKey
45-
AltNames *tlsutil.AltNames
41+
EtcdServers []*url.URL
42+
APIServers []*url.URL
43+
CACert *x509.Certificate
44+
CAPrivKey *rsa.PrivateKey
45+
AltNames *tlsutil.AltNames
46+
SelfHostKubelet bool
4647
}
4748

4849
// NewDefaultAssets returns a list of default assets, optionally
4950
// configured via a user provided AssetConfig. Default assets include
5051
// TLS assets (certs, keys and secrets), and k8s component manifests.
5152
func NewDefaultAssets(conf Config) (Assets, error) {
52-
as := newStaticAssets()
53+
as := newStaticAssets(conf.SelfHostKubelet)
5354
as = append(as, newDynamicAssets(conf)...)
5455

5556
// TLS assets

pkg/asset/k8s.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,20 @@ const (
1717
secretCMName = "kube-controller-manager"
1818
)
1919

20-
func newStaticAssets() Assets {
20+
func newStaticAssets(selfHostKubelet bool) Assets {
2121
var noData interface{}
22-
return Assets{
22+
assets := Assets{
2323
mustCreateAssetFromTemplate(AssetPathControllerManager, internal.ControllerManagerTemplate, noData),
2424
mustCreateAssetFromTemplate(AssetPathScheduler, internal.SchedulerTemplate, noData),
25-
mustCreateAssetFromTemplate(AssetPathKubelet, internal.KubeletTemplate, noData),
2625
mustCreateAssetFromTemplate(AssetPathProxy, internal.ProxyTemplate, noData),
2726
mustCreateAssetFromTemplate(AssetPathKubeDNSDeployment, internal.DNSDeploymentTemplate, noData),
2827
mustCreateAssetFromTemplate(AssetPathKubeDNSSvc, internal.DNSSvcTemplate, noData),
2928
}
29+
if selfHostKubelet {
30+
assets = append(assets, mustCreateAssetFromTemplate(AssetPathKubelet, internal.KubeletTemplate, noData))
31+
}
32+
33+
return assets
3034
}
3135

3236
func newDynamicAssets(conf Config) Assets {

pkg/bootkube/bootkube.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ const (
2424

2525
var requiredPods = []string{
2626
"kube-api-checkpoint",
27-
"kubelet",
2827
"kube-apiserver",
2928
"kube-scheduler",
3029
"kube-controller-manager",

0 commit comments

Comments
 (0)