diff --git a/Gopkg.lock b/Gopkg.lock index e0bab15..81a31c4 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -329,7 +329,7 @@ "pkg/nodeadm", "pkg/util/sets" ] - revision = "4d1aa61d1a737544620835788be1153a04a0ea91" + revision = "a04fd75546aa7f1b72b12849a2cee0a906538e91" [[projects]] name = "github.com/prometheus/client_golang" diff --git a/cmd/cluster.go b/cmd/cluster.go index 3103409..39489bf 100644 --- a/cmd/cluster.go +++ b/cmd/cluster.go @@ -105,7 +105,7 @@ func createCluster(clusterName, podsCIDR, servicesCIDR, vip string, routerID int APIEndpoints: []clusterv1.APIEndpoint{ clusterv1.APIEndpoint{ Host: vip, - Port: common.DEFAULT_APISERVER_PORT, + Port: common.DefaultApiserverPort, }, }, }, diff --git a/cmd/machine.go b/cmd/machine.go index e2183a3..346392b 100644 --- a/cmd/machine.go +++ b/cmd/machine.go @@ -232,6 +232,15 @@ func newProvisionedMachineAndMachine(name string, role clustercommon.MachineRole Roles: []spv1.MachineRole{ spv1.MachineRole(role), }, + ComponentVersions: &spv1.MachineComponentVersions{ + NodeadmVersion: common.DefaultNodeadmVersion, + EtcdadmVersion: common.DefaultEtcdadmVersion, + KubernetesVersion: common.DefaultKubernetesVersion, + CNIVersion: common.DefaultCNIVersion, + KeepalivedVersion: common.DefaultKeepalivedVersion, + FlannelVersion: common.DefaultFlannelVersion, + EtcdVersion: common.DefaultEtcdVersion, + }, } if err := sputil.PutMachineSpec(machineProviderSpec, &newMachine); err != nil { return nil, nil, fmt.Errorf("unable to encode machine provider spec: %v", err) @@ -612,8 +621,8 @@ func init() { deleteCmd.AddCommand(machineCmdDelete) machineCmdDelete.Flags().String("ip", "", "IP of the machine") machineCmdDelete.Flags().String("force", "", "Force delete the machine") - machineCmdDelete.Flags().DurationVar(&drainTimeout, "drain-timeout", common.DRAIN_TIMEOUT, "The length of time to wait before giving up, zero means infinite") - machineCmdDelete.Flags().IntVar(&drainGracePeriodSeconds, "drain-graceperiod", common.DRAIN_GRACE_PERIOD_SECONDS, "Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used.") + machineCmdDelete.Flags().DurationVar(&drainTimeout, "drain-timeout", common.DrainTimeout, "The length of time to wait before giving up, zero means infinite") + machineCmdDelete.Flags().IntVar(&drainGracePeriodSeconds, "drain-graceperiod", common.DrainGracePeriodSeconds, "Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used.") machineCmdGet.Flags().String("ip", "", "IP of the machine") getCmd.AddCommand(machineCmdGet) diff --git a/common/constants.go b/common/constants.go index 688c943..cc426fd 100644 --- a/common/constants.go +++ b/common/constants.go @@ -3,14 +3,11 @@ package common import "time" const ( - K8S_VERSION = "1.10.4" - DEFAULT_APISERVER_PORT = 6443 - DRAIN_TIMEOUT = 5 * time.Minute - DRAIN_GRACE_PERIOD_SECONDS = -1 - - MasterRole = "master" - NodeRole = "node" - + DefaultApiserverPort = 6443 + DrainTimeout = 5 * time.Minute + DrainGracePeriodSeconds = -1 + MasterRole = "master" + NodeRole = "node" DefaultSSHPort = 22 DefaultNamespace = "default" DefaultClusterName = "cctl-cluster" @@ -21,13 +18,18 @@ const ( DefaultFrontProxyCASecretName = "front-proxy-ca" DefaultServiceAccountKeySecretName = "serviceaccount-key" DefaultBootstrapTokenSecretName = "bootstrap-token" - - SystemUUIDFile = "/sys/class/dmi/id/product_uuid" - KubectlFile = "/opt/bin/kubectl" - AdminKubeconfig = "/etc/kubernetes/admin.conf" - KubeletKubeconfig = "/etc/kubernetes/kubelet.conf" - - ClusterV1PrintTemplate = `Cluster Information + SystemUUIDFile = "/sys/class/dmi/id/product_uuid" + KubectlFile = "/opt/bin/kubectl" + AdminKubeconfig = "/etc/kubernetes/admin.conf" + KubeletKubeconfig = "/etc/kubernetes/kubelet.conf" + DefaultNodeadmVersion = "v0.0.1-alpha" + DefaultEtcdadmVersion = "v0.0.1-alpha" + DefaultKubernetesVersion = "1.10.4" + DefaultCNIVersion = "v0.6.0" + DefaultFlannelVersion = "v0.10.0" + DefaultKeepalivedVersion = "v2.0.4" + DefaultEtcdVersion = "v3.3.8" + ClusterV1PrintTemplate = `Cluster Information ------- ------------ Cluster Name : {{ .Cluster.ObjectMeta.Name}} Creation Timestamp : {{ .Cluster.ObjectMeta.CreationTimestamp }} diff --git a/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/types.go b/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/types.go index d306af8..f6ce199 100644 --- a/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/types.go +++ b/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/types.go @@ -74,6 +74,17 @@ type ClusterStatus struct { EtcdMembers []EtcdMember } +// MachineComponentVersions +type MachineComponentVersions struct { + NodeadmVersion string + EtcdadmVersion string + KubernetesVersion string + CNIVersion string + FlannelVersion string + KeepalivedVersion string + EtcdVersion string +} + // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // MachineSpec @@ -86,6 +97,8 @@ type MachineSpec struct { // ProvisionedMachineName is the binding reference to the Provisioned // Machine backing this Machine. ProvisionedMachineName string + // ComponentVersions enumerates versions of all the components + ComponentVersions *MachineComponentVersions } // The MachineRole indicates the purpose of the Machine, and will determine diff --git a/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/types.go b/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/types.go index fc22a9c..e284ce0 100644 --- a/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/types.go +++ b/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/types.go @@ -91,6 +91,17 @@ type ClusterStatus struct { EtcdMembers []EtcdMember `json:"etcdMembers,omitempty"` } +// MachineComponentVersions +type MachineComponentVersions struct { + NodeadmVersion string `json:"nodeadmVersion,omitempty"` + EtcdadmVersion string `json:"etcdadmVersion,omitempty"` + KubernetesVersion string `json:"kubernetesVersion,omitempty"` + CNIVersion string `json:"cniVersion,omitempty"` + FlannelVersion string `json:"flannelVersion,omitempty"` + KeepalivedVersion string `json:"keepalivedVersion,omitempty"` + EtcdVersion string `json:"etcdVersion,omitempty"` +} + // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // MachineSpec @@ -103,6 +114,8 @@ type MachineSpec struct { // ProvisionedMachineName is the binding reference to the Provisioned // Machine backing this Machine. ProvisionedMachineName string `json:"provisionedMachineName,omitempty"` + // ComponentVersions enumerates versions of all the components + ComponentVersions *MachineComponentVersions `json:"componentVersions,omitempty"` } // The MachineRole indicates the purpose of the Machine, and will determine diff --git a/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/zz_generated.conversion.go b/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/zz_generated.conversion.go index 81013c8..a20e1de 100644 --- a/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/zz_generated.conversion.go +++ b/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/zz_generated.conversion.go @@ -45,6 +45,8 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_sshprovider_ClusterStatus_To_v1alpha1_ClusterStatus, Convert_v1alpha1_EtcdMember_To_sshprovider_EtcdMember, Convert_sshprovider_EtcdMember_To_v1alpha1_EtcdMember, + Convert_v1alpha1_MachineComponentVersions_To_sshprovider_MachineComponentVersions, + Convert_sshprovider_MachineComponentVersions_To_v1alpha1_MachineComponentVersions, Convert_v1alpha1_MachineSpec_To_sshprovider_MachineSpec, Convert_sshprovider_MachineSpec_To_v1alpha1_MachineSpec, Convert_v1alpha1_MachineStatus_To_sshprovider_MachineStatus, @@ -140,9 +142,42 @@ func Convert_sshprovider_EtcdMember_To_v1alpha1_EtcdMember(in *sshprovider.EtcdM return autoConvert_sshprovider_EtcdMember_To_v1alpha1_EtcdMember(in, out, s) } +func autoConvert_v1alpha1_MachineComponentVersions_To_sshprovider_MachineComponentVersions(in *MachineComponentVersions, out *sshprovider.MachineComponentVersions, s conversion.Scope) error { + out.NodeadmVersion = in.NodeadmVersion + out.EtcdadmVersion = in.EtcdadmVersion + out.KubernetesVersion = in.KubernetesVersion + out.CNIVersion = in.CNIVersion + out.FlannelVersion = in.FlannelVersion + out.KeepalivedVersion = in.KeepalivedVersion + out.EtcdVersion = in.EtcdVersion + return nil +} + +// Convert_v1alpha1_MachineComponentVersions_To_sshprovider_MachineComponentVersions is an autogenerated conversion function. +func Convert_v1alpha1_MachineComponentVersions_To_sshprovider_MachineComponentVersions(in *MachineComponentVersions, out *sshprovider.MachineComponentVersions, s conversion.Scope) error { + return autoConvert_v1alpha1_MachineComponentVersions_To_sshprovider_MachineComponentVersions(in, out, s) +} + +func autoConvert_sshprovider_MachineComponentVersions_To_v1alpha1_MachineComponentVersions(in *sshprovider.MachineComponentVersions, out *MachineComponentVersions, s conversion.Scope) error { + out.NodeadmVersion = in.NodeadmVersion + out.EtcdadmVersion = in.EtcdadmVersion + out.KubernetesVersion = in.KubernetesVersion + out.CNIVersion = in.CNIVersion + out.FlannelVersion = in.FlannelVersion + out.KeepalivedVersion = in.KeepalivedVersion + out.EtcdVersion = in.EtcdVersion + return nil +} + +// Convert_sshprovider_MachineComponentVersions_To_v1alpha1_MachineComponentVersions is an autogenerated conversion function. +func Convert_sshprovider_MachineComponentVersions_To_v1alpha1_MachineComponentVersions(in *sshprovider.MachineComponentVersions, out *MachineComponentVersions, s conversion.Scope) error { + return autoConvert_sshprovider_MachineComponentVersions_To_v1alpha1_MachineComponentVersions(in, out, s) +} + func autoConvert_v1alpha1_MachineSpec_To_sshprovider_MachineSpec(in *MachineSpec, out *sshprovider.MachineSpec, s conversion.Scope) error { out.Roles = *(*[]sshprovider.MachineRole)(unsafe.Pointer(&in.Roles)) out.ProvisionedMachineName = in.ProvisionedMachineName + out.ComponentVersions = (*sshprovider.MachineComponentVersions)(unsafe.Pointer(in.ComponentVersions)) return nil } @@ -154,6 +189,7 @@ func Convert_v1alpha1_MachineSpec_To_sshprovider_MachineSpec(in *MachineSpec, ou func autoConvert_sshprovider_MachineSpec_To_v1alpha1_MachineSpec(in *sshprovider.MachineSpec, out *MachineSpec, s conversion.Scope) error { out.Roles = *(*[]MachineRole)(unsafe.Pointer(&in.Roles)) out.ProvisionedMachineName = in.ProvisionedMachineName + out.ComponentVersions = (*MachineComponentVersions)(unsafe.Pointer(in.ComponentVersions)) return nil } diff --git a/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/zz_generated.deepcopy.go index 443f3e7..1cac0a4 100644 --- a/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/v1alpha1/zz_generated.deepcopy.go @@ -138,6 +138,22 @@ func (in *EtcdMember) DeepCopy() *EtcdMember { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineComponentVersions) DeepCopyInto(out *MachineComponentVersions) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineComponentVersions. +func (in *MachineComponentVersions) DeepCopy() *MachineComponentVersions { + if in == nil { + return nil + } + out := new(MachineComponentVersions) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineSpec) DeepCopyInto(out *MachineSpec) { *out = *in @@ -147,6 +163,11 @@ func (in *MachineSpec) DeepCopyInto(out *MachineSpec) { *out = make([]MachineRole, len(*in)) copy(*out, *in) } + if in.ComponentVersions != nil { + in, out := &in.ComponentVersions, &out.ComponentVersions + *out = new(MachineComponentVersions) + **out = **in + } return } diff --git a/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/zz_generated.deepcopy.go b/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/zz_generated.deepcopy.go index d4ba5a3..c396826 100644 --- a/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/zz_generated.deepcopy.go +++ b/vendor/github.com/platform9/ssh-provider/pkg/apis/sshprovider/zz_generated.deepcopy.go @@ -138,6 +138,22 @@ func (in *EtcdMember) DeepCopy() *EtcdMember { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineComponentVersions) DeepCopyInto(out *MachineComponentVersions) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineComponentVersions. +func (in *MachineComponentVersions) DeepCopy() *MachineComponentVersions { + if in == nil { + return nil + } + out := new(MachineComponentVersions) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineSpec) DeepCopyInto(out *MachineSpec) { *out = *in @@ -147,6 +163,11 @@ func (in *MachineSpec) DeepCopyInto(out *MachineSpec) { *out = make([]MachineRole, len(*in)) copy(*out, *in) } + if in.ComponentVersions != nil { + in, out := &in.ComponentVersions, &out.ComponentVersions + *out = new(MachineComponentVersions) + **out = **in + } return }