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

Commit

Permalink
Merge pull request #149 from pbx0/self-host-option
Browse files Browse the repository at this point in the history
Kublet is optionally run as a self-hosted component
  • Loading branch information
aaronlevy authored Oct 6, 2016
2 parents 8f8d0fb + 2f6631e commit a805b96
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 15 deletions.
13 changes: 8 additions & 5 deletions cmd/bootkube/render.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ var (
etcdServers string
apiServers string
altNames string
selfHostKubelet bool
}
)

Expand All @@ -44,6 +45,7 @@ func init() {
cmdRender.Flags().StringVar(&renderOpts.etcdServers, "etcd-servers", "http://127.0.0.1:2379", "List of etcd servers URLs including host:port, comma separated")
cmdRender.Flags().StringVar(&renderOpts.apiServers, "api-servers", "https://127.0.0.1:443", "List of API server URLs including host:port, commma seprated")
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.")
cmdRender.Flags().BoolVar(&renderOpts.selfHostKubelet, "self-host-kubelet", true, "Set false to skip creation of and pivot to self-hosted kubelet.")
}

func runCmdRender(cmd *cobra.Command, args []string) error {
Expand Down Expand Up @@ -106,11 +108,12 @@ func flagsToAssetConfig() (c *asset.Config, err error) {
}
}
return &asset.Config{
EtcdServers: etcdServers,
CACert: caCert,
CAPrivKey: caPrivKey,
APIServers: apiServers,
AltNames: altNames,
EtcdServers: etcdServers,
CACert: caCert,
CAPrivKey: caPrivKey,
APIServers: apiServers,
AltNames: altNames,
SelfHostKubelet: renderOpts.selfHostKubelet,
}, nil
}

Expand Down
13 changes: 7 additions & 6 deletions pkg/asset/asset.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,19 @@ const (
// AssetConfig holds all configuration needed when generating
// the default set of assets.
type Config struct {
EtcdServers []*url.URL
APIServers []*url.URL
CACert *x509.Certificate
CAPrivKey *rsa.PrivateKey
AltNames *tlsutil.AltNames
EtcdServers []*url.URL
APIServers []*url.URL
CACert *x509.Certificate
CAPrivKey *rsa.PrivateKey
AltNames *tlsutil.AltNames
SelfHostKubelet bool
}

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

// TLS assets
Expand Down
10 changes: 7 additions & 3 deletions pkg/asset/k8s.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,20 @@ const (
secretCMName = "kube-controller-manager"
)

func newStaticAssets() Assets {
func newStaticAssets(selfHostKubelet bool) Assets {
var noData interface{}
return Assets{
assets := Assets{
mustCreateAssetFromTemplate(AssetPathControllerManager, internal.ControllerManagerTemplate, noData),
mustCreateAssetFromTemplate(AssetPathScheduler, internal.SchedulerTemplate, noData),
mustCreateAssetFromTemplate(AssetPathKubelet, internal.KubeletTemplate, noData),
mustCreateAssetFromTemplate(AssetPathProxy, internal.ProxyTemplate, noData),
mustCreateAssetFromTemplate(AssetPathKubeDNSDeployment, internal.DNSDeploymentTemplate, noData),
mustCreateAssetFromTemplate(AssetPathKubeDNSSvc, internal.DNSSvcTemplate, noData),
}
if selfHostKubelet {
assets = append(assets, mustCreateAssetFromTemplate(AssetPathKubelet, internal.KubeletTemplate, noData))
}

return assets
}

func newDynamicAssets(conf Config) Assets {
Expand Down
1 change: 0 additions & 1 deletion pkg/bootkube/bootkube.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ const (

var requiredPods = []string{
"kube-api-checkpoint",
"kubelet",
"kube-apiserver",
"kube-scheduler",
"kube-controller-manager",
Expand Down

0 comments on commit a805b96

Please sign in to comment.