mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Various improvements plus added a version command
This commit is contained in:
		@@ -64,13 +64,12 @@ type InitFlags struct {
 | 
				
			|||||||
		Kubernetes string
 | 
							Kubernetes string
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	CloudProvider string
 | 
						CloudProvider string
 | 
				
			||||||
	Schedulable   bool
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
	DefaultServiceDNSDomain   = "cluster.local"
 | 
						DefaultServiceDNSDomain   = "cluster.local"
 | 
				
			||||||
	DefaultServicesCIDRString = "100.64.0.0/12" // Carrier-grade NAT range (RFC 6598)
 | 
						DefaultServicesCIDRString = "100.64.0.0/12" // Carrier-grade NAT range (RFC 6598)
 | 
				
			||||||
	DefaultKubernetesVersion  = "v1.4.0-beta.10"
 | 
						DefaultKubernetesVersion  = "v1.4.0"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
@@ -86,15 +85,10 @@ var (
 | 
				
			|||||||
		"rackspace",
 | 
							"rackspace",
 | 
				
			||||||
		"vsphere",
 | 
							"vsphere",
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	SupportedCloudProviders map[string]bool
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	_, DefaultServicesCIDR, _ = net.ParseCIDR(DefaultServicesCIDRString)
 | 
						_, DefaultServicesCIDR, _ = net.ParseCIDR(DefaultServicesCIDRString)
 | 
				
			||||||
	SupportedCloudProviders = make(map[string]bool, len(ListOfCloudProviders))
 | 
					 | 
				
			||||||
	for _, v := range ListOfCloudProviders {
 | 
					 | 
				
			||||||
		SupportedCloudProviders[v] = true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// JoinFlags holds values for "kubeadm join" command flags.
 | 
					// JoinFlags holds values for "kubeadm join" command flags.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -84,6 +84,7 @@ func NewKubeadmCommand(f *cmdutil.Factory, in io.Reader, out, err io.Writer, env
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	cmds.AddCommand(NewCmdInit(out, s))
 | 
						cmds.AddCommand(NewCmdInit(out, s))
 | 
				
			||||||
	cmds.AddCommand(NewCmdJoin(out, s))
 | 
						cmds.AddCommand(NewCmdJoin(out, s))
 | 
				
			||||||
 | 
						cmds.AddCommand(NewCmdVersion(out))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return cmds
 | 
						return cmds
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -83,10 +83,6 @@ func NewCmdInit(out io.Writer, s *kubeadmapi.KubeadmConfig) *cobra.Command {
 | 
				
			|||||||
		&s.InitFlags.CloudProvider, "cloud-provider", "",
 | 
							&s.InitFlags.CloudProvider, "cloud-provider", "",
 | 
				
			||||||
		`Enable cloud provider features (external load-balancers, storage, etc), e.g. "gce"`,
 | 
							`Enable cloud provider features (external load-balancers, storage, etc), e.g. "gce"`,
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
	cmd.PersistentFlags().BoolVar(
 | 
					 | 
				
			||||||
		&s.InitFlags.Schedulable, "schedule-pods-here", false,
 | 
					 | 
				
			||||||
		`Allow to schedule workload to the node`,
 | 
					 | 
				
			||||||
	)
 | 
					 | 
				
			||||||
	cmd.PersistentFlags().StringVar(
 | 
						cmd.PersistentFlags().StringVar(
 | 
				
			||||||
		&s.InitFlags.Versions.Kubernetes, "use-kubernetes-version", kubeadmapi.DefaultKubernetesVersion,
 | 
							&s.InitFlags.Versions.Kubernetes, "use-kubernetes-version", kubeadmapi.DefaultKubernetesVersion,
 | 
				
			||||||
		`Choose a specific Kubernetes version for the control plane`,
 | 
							`Choose a specific Kubernetes version for the control plane`,
 | 
				
			||||||
@@ -99,15 +95,15 @@ func NewCmdInit(out io.Writer, s *kubeadmapi.KubeadmConfig) *cobra.Command {
 | 
				
			|||||||
	)
 | 
						)
 | 
				
			||||||
	cmd.PersistentFlags().StringVar(
 | 
						cmd.PersistentFlags().StringVar(
 | 
				
			||||||
		&s.InitFlags.API.Etcd.ExternalCAFile, "external-etcd-cafile", "",
 | 
							&s.InitFlags.API.Etcd.ExternalCAFile, "external-etcd-cafile", "",
 | 
				
			||||||
		"etcd certificate authority certificate file",
 | 
							"etcd certificate authority certificate file. Note: The path must be in /etc/ssl/certs",
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
	cmd.PersistentFlags().StringVar(
 | 
						cmd.PersistentFlags().StringVar(
 | 
				
			||||||
		&s.InitFlags.API.Etcd.ExternalCertFile, "external-etcd-certfile", "",
 | 
							&s.InitFlags.API.Etcd.ExternalCertFile, "external-etcd-certfile", "",
 | 
				
			||||||
		"etcd client certificate file",
 | 
							"etcd client certificate file. Note: The path must be in /etc/ssl/certs",
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
	cmd.PersistentFlags().StringVar(
 | 
						cmd.PersistentFlags().StringVar(
 | 
				
			||||||
		&s.InitFlags.API.Etcd.ExternalKeyFile, "external-etcd-keyfile", "",
 | 
							&s.InitFlags.API.Etcd.ExternalKeyFile, "external-etcd-keyfile", "",
 | 
				
			||||||
		"etcd client key file",
 | 
							"etcd client key file. Note: The path must be in /etc/ssl/certs",
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return cmd
 | 
						return cmd
 | 
				
			||||||
@@ -136,8 +132,18 @@ func RunInit(out io.Writer, cmd *cobra.Command, args []string, s *kubeadmapi.Kub
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// TODO(phase1+) create a custom flag
 | 
						// TODO(phase1+) create a custom flag
 | 
				
			||||||
	if s.InitFlags.CloudProvider != "" {
 | 
						if s.InitFlags.CloudProvider != "" {
 | 
				
			||||||
		if _, ok := kubeadmapi.SupportedCloudProviders[s.InitFlags.CloudProvider]; !ok {
 | 
							found := false
 | 
				
			||||||
			return fmt.Errorf("<cmd/init> cloud provider %q is not supported, you can use any of %v, or leave it unset", s.InitFlags.CloudProvider, kubeadmapi.ListOfCloudProviders)
 | 
							for _, provider := range kubeadmapi.ListOfCloudProviders {
 | 
				
			||||||
 | 
								if provider == s.InitFlags.CloudProvider {
 | 
				
			||||||
 | 
									found = true
 | 
				
			||||||
 | 
									break
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if found {
 | 
				
			||||||
 | 
								fmt.Printf("<cmd/init> cloud provider %q initialized for the control plane. Remember to set the same cloud provider flag on the kubelet.\n", s.InitFlags.CloudProvider)
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								return fmt.Errorf("<cmd/init> cloud provider %q is not supported, you can use any of %v, or leave it unset.\n", s.InitFlags.CloudProvider, kubeadmapi.ListOfCloudProviders)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -179,7 +185,8 @@ func RunInit(out io.Writer, cmd *cobra.Command, args []string, s *kubeadmapi.Kub
 | 
				
			|||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err := kubemaster.UpdateMasterRoleLabelsAndTaints(client, s.Schedulable); err != nil {
 | 
						schedulePodsOnMaster := false
 | 
				
			||||||
 | 
						if err := kubemaster.UpdateMasterRoleLabelsAndTaints(client, schedulePodsOnMaster); err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										44
									
								
								cmd/kubeadm/app/cmd/version.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								cmd/kubeadm/app/cmd/version.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2014 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package cmd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
						"io"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/spf13/cobra"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/version"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func NewCmdVersion(out io.Writer) *cobra.Command {
 | 
				
			||||||
 | 
						cmd := &cobra.Command{
 | 
				
			||||||
 | 
							Use:   "version",
 | 
				
			||||||
 | 
							Short: "Print the version of kubeadm",
 | 
				
			||||||
 | 
							Run: func(cmd *cobra.Command, args []string) {
 | 
				
			||||||
 | 
								err := RunVersion(out, cmd)
 | 
				
			||||||
 | 
								cmdutil.CheckErr(err)
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return cmd
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func RunVersion(out io.Writer, cmd *cobra.Command) error {
 | 
				
			||||||
 | 
						fmt.Fprintf(out, "kubeadm version: %#v\n", version.Get())
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -20,6 +20,7 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
						"runtime"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/renstrom/dedent"
 | 
						"github.com/renstrom/dedent"
 | 
				
			||||||
	"github.com/spf13/pflag"
 | 
						"github.com/spf13/pflag"
 | 
				
			||||||
@@ -46,7 +47,7 @@ func getEnvParams() map[string]string {
 | 
				
			|||||||
		"host_pki_path":      "/etc/kubernetes/pki",
 | 
							"host_pki_path":      "/etc/kubernetes/pki",
 | 
				
			||||||
		"host_etcd_path":     "/var/lib/etcd",
 | 
							"host_etcd_path":     "/var/lib/etcd",
 | 
				
			||||||
		"hyperkube_image":    "",
 | 
							"hyperkube_image":    "",
 | 
				
			||||||
		"discovery_image":    "dgoodwin/kubediscovery:latest", // TODO(phase1): fmt.Sprintf("gcr.io/google_containers/kube-discovery-%s:%s", runtime.GOARCH, "1.0"),
 | 
							"discovery_image":    fmt.Sprintf("gcr.io/google_containers/kube-discovery-%s:%s", runtime.GOARCH, "1.0"),
 | 
				
			||||||
		"etcd_image":         "",
 | 
							"etcd_image":         "",
 | 
				
			||||||
		"component_loglevel": "--v=4",
 | 
							"component_loglevel": "--v=4",
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -220,7 +220,7 @@ func componentPod(container api.Container, volumes ...api.Volume) api.Pod {
 | 
				
			|||||||
func getComponentCommand(component string, s *kubeadmapi.KubeadmConfig) (command []string) {
 | 
					func getComponentCommand(component string, s *kubeadmapi.KubeadmConfig) (command []string) {
 | 
				
			||||||
	baseFlags := map[string][]string{
 | 
						baseFlags := map[string][]string{
 | 
				
			||||||
		apiServer: {
 | 
							apiServer: {
 | 
				
			||||||
			"--address=127.0.0.1",
 | 
								"--insecure-bind-address=127.0.0.1",
 | 
				
			||||||
			"--etcd-servers=http://127.0.0.1:2379",
 | 
								"--etcd-servers=http://127.0.0.1:2379",
 | 
				
			||||||
			"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota",
 | 
								"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota",
 | 
				
			||||||
			"--service-cluster-ip-range=" + s.InitFlags.Services.CIDR.String(),
 | 
								"--service-cluster-ip-range=" + s.InitFlags.Services.CIDR.String(),
 | 
				
			||||||
@@ -233,7 +233,7 @@ func getComponentCommand(component string, s *kubeadmapi.KubeadmConfig) (command
 | 
				
			|||||||
			"--allow-privileged",
 | 
								"--allow-privileged",
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		controllerManager: {
 | 
							controllerManager: {
 | 
				
			||||||
			// TODO(phase1+): consider adding --address=127.0.0.1 in order to not expose the cm port to the rest of the world
 | 
								"--address=127.0.0.1",
 | 
				
			||||||
			"--leader-elect",
 | 
								"--leader-elect",
 | 
				
			||||||
			"--master=127.0.0.1:8080",
 | 
								"--master=127.0.0.1:8080",
 | 
				
			||||||
			"--cluster-name=" + DefaultClusterName,
 | 
								"--cluster-name=" + DefaultClusterName,
 | 
				
			||||||
@@ -244,7 +244,7 @@ func getComponentCommand(component string, s *kubeadmapi.KubeadmConfig) (command
 | 
				
			|||||||
			"--insecure-experimental-approve-all-kubelet-csrs-for-group=system:kubelet-bootstrap",
 | 
								"--insecure-experimental-approve-all-kubelet-csrs-for-group=system:kubelet-bootstrap",
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		scheduler: {
 | 
							scheduler: {
 | 
				
			||||||
			// TODO(phase1+): consider adding --address=127.0.0.1 in order to not expose the scheduler port to the rest of the world
 | 
								"--address=127.0.0.1",
 | 
				
			||||||
			"--leader-elect",
 | 
								"--leader-elect",
 | 
				
			||||||
			"--master=127.0.0.1:8080",
 | 
								"--master=127.0.0.1:8080",
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,6 +35,7 @@ kube::golang::server_targets() {
 | 
				
			|||||||
    cmd/kube-apiserver
 | 
					    cmd/kube-apiserver
 | 
				
			||||||
    cmd/kube-controller-manager
 | 
					    cmd/kube-controller-manager
 | 
				
			||||||
    cmd/kubelet
 | 
					    cmd/kubelet
 | 
				
			||||||
 | 
					    cmd/kubeadm
 | 
				
			||||||
    cmd/kubemark
 | 
					    cmd/kubemark
 | 
				
			||||||
    cmd/hyperkube
 | 
					    cmd/hyperkube
 | 
				
			||||||
    plugin/cmd/kube-scheduler
 | 
					    plugin/cmd/kube-scheduler
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user