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

Commit

Permalink
render: add --cloud-provider
Browse files Browse the repository at this point in the history
  • Loading branch information
kalbasit committed Aug 22, 2016
1 parent e23c960 commit b0d8215
Show file tree
Hide file tree
Showing 7 changed files with 270 additions and 208 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
cloudProvider string
}
)

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().StringVar(&renderOpts.cloudProvider, "cloud-provider", "", "The provider for cloud services. Empty string for no provider")
}

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,
CloudProvider: renderOpts.cloudProvider,
}, nil
}

Expand Down
11 changes: 6 additions & 5 deletions pkg/asset/asset.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,12 @@ 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
CloudProvider string
}

// NewDefaultAssets returns a list of default assets, optionally
Expand Down
437 changes: 240 additions & 197 deletions pkg/asset/internal/templates.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/asset/k8s.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ const (
func newStaticAssets() Assets {
var noData interface{}
return Assets{
mustCreateAssetFromTemplate(AssetPathControllerManager, internal.ControllerManagerTemplate, noData),
mustCreateAssetFromTemplate(AssetPathScheduler, internal.SchedulerTemplate, noData),
mustCreateAssetFromTemplate(AssetPathKubeDNSRc, internal.DNSRcTemplate, noData),
mustCreateAssetFromTemplate(AssetPathKubeDNSSvc, internal.DNSSvcTemplate, noData),
Expand All @@ -30,6 +29,7 @@ func newStaticAssets() Assets {

func newDynamicAssets(conf Config) Assets {
return Assets{
mustCreateAssetFromTemplate(AssetPathControllerManager, internal.ControllerManagerTemplate, conf),
mustCreateAssetFromTemplate(AssetPathKubelet, internal.KubeletTemplate, conf),
mustCreateAssetFromTemplate(AssetPathAPIServer, internal.APIServerTemplate, conf),
mustCreateAssetFromTemplate(AssetPathProxy, internal.ProxyTemplate, conf),
Expand Down
3 changes: 3 additions & 0 deletions pkg/asset/templates/kube-apiserver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ spec:
- --tls-private-key-file=/etc/kubernetes/secrets/apiserver.key
- --service-account-key-file=/etc/kubernetes/secrets/service-account.pub
- --client-ca-file=/etc/kubernetes/secrets/ca.crt
{{ with .CloudProvider -}}
- --cloud-provider={{ . }}
{{ end -}}
env:
- name: MY_POD_IP
valueFrom:
Expand Down
9 changes: 9 additions & 0 deletions pkg/asset/templates/kube-controller-manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,26 @@ spec:
- --root-ca-file=/etc/kubernetes/secrets/ca.crt
- --service-account-private-key-file=/etc/kubernetes/secrets/service-account.key
- --leader-elect=true
{{ with .CloudProvider -}}
- --cloud-provider={{ . }}
{{ end -}}
volumeMounts:
- name: secrets
mountPath: /etc/kubernetes/secrets
readOnly: true
- name: ssl-host
mountPath: /etc/ssl/certs
readOnly: true
- name: resolv-conf
mountPath: /etc/resolv.conf
readOnly: true
volumes:
- name: secrets
secret:
secretName: kube-controller-manager
- name: ssl-host
hostPath:
path: /usr/share/ca-certificates
- name: resolv-conf
hostPath:
path: /etc/resolv.conf
3 changes: 3 additions & 0 deletions pkg/asset/templates/kubelet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ spec:
- --kubeconfig=/etc/kubernetes/kubeconfig
- --lock-file=/var/run/lock/kubelet.lock
- --minimum-container-ttl-duration=3m0s
{{ with .CloudProvider -}}
- --cloud-provider={{ . }}
{{ end -}}
env:
- name: MY_POD_IP
valueFrom:
Expand Down

0 comments on commit b0d8215

Please sign in to comment.