From 4475d68c2ecb32e91e9720943a3e0b506136e8e0 Mon Sep 17 00:00:00 2001 From: Justin Santa Barbara Date: Sun, 18 Dec 2016 21:18:48 -0500 Subject: [PATCH] Remove dead code --- pkg/apis/kops/v1alpha1/conversion.go | 2 - pkg/apis/kops/v1alpha2/cluster.go | 93 ---- pkg/apis/kops/v1alpha2/componentconfig.go | 405 ------------------ pkg/model/bastion.go | 50 --- pkg/model/external_access.go | 21 - pkg/model/names.go | 11 - pkg/model/network.go | 1 - .../fi/cloudup/populate_instancegroup_spec.go | 31 -- upup/pkg/kutil/import_cluster.go | 6 - 9 files changed, 620 deletions(-) diff --git a/pkg/apis/kops/v1alpha1/conversion.go b/pkg/apis/kops/v1alpha1/conversion.go index cf14a2edff..6dd3d30878 100644 --- a/pkg/apis/kops/v1alpha1/conversion.go +++ b/pkg/apis/kops/v1alpha1/conversion.go @@ -1,5 +1,3 @@ -// +build !ignore_autogenerated - /* Copyright 2016 The Kubernetes Authors. diff --git a/pkg/apis/kops/v1alpha2/cluster.go b/pkg/apis/kops/v1alpha2/cluster.go index 5e0f9beaa6..ca3f25e16b 100644 --- a/pkg/apis/kops/v1alpha2/cluster.go +++ b/pkg/apis/kops/v1alpha2/cluster.go @@ -134,89 +134,6 @@ type ClusterSpec struct { // missing: default policy (currently OS security upgrades that do not require a reboot) UpdatePolicy *string `json:"updatePolicy,omitempty"` - //HairpinMode string `json:",omitempty"` - // - //OpencontrailTag string `json:",omitempty"` - //OpencontrailKubernetesTag string `json:",omitempty"` - //OpencontrailPublicSubnet string `json:",omitempty"` - // - //EnableClusterMonitoring string `json:",omitempty"` - //EnableL7LoadBalancing string `json:",omitempty"` - //EnableClusterUI *bool `json:",omitempty"` - // - //EnableClusterDNS *bool `json:",omitempty"` - //DNSReplicas int `json:",omitempty"` - //DNSServerIP string `json:",omitempty"` - - //EnableClusterLogging *bool `json:",omitempty"` - //EnableNodeLogging *bool `json:",omitempty"` - //LoggingDestination string `json:",omitempty"` - //ElasticsearchLoggingReplicas int `json:",omitempty"` - // - //EnableClusterRegistry *bool `json:",omitempty"` - //ClusterRegistryDisk string `json:",omitempty"` - //ClusterRegistryDiskSize int `json:",omitempty"` - // - //EnableCustomMetrics *bool `json:",omitempty"` - // - //RegisterMasterKubelet *bool `json:",omitempty"` - - //// Image is the default image spec to use for the cluster - //Image string `json:",omitempty"` - - //KubeUser string `json:",omitempty"` - // - //// These are moved to CAStore / SecretStore - ////KubePassword string - ////KubeletToken string - ////KubeProxyToken string - ////BearerToken string - ////CACert []byte - ////CAKey []byte - ////KubeletCert []byte - ////KubeletKey []byte - ////MasterCert []byte - ////MasterKey []byte - ////KubecfgCert []byte - ////KubecfgKey []byte - // - //AdmissionControl string `json:",omitempty"` - // - //KubeImageTag string `json:",omitempty"` - //KubeDockerRegistry string `json:",omitempty"` - //KubeAddonRegistry string `json:",omitempty"` - // - //KubeletPort int `json:",omitempty"` - // - //KubeApiserverRequestTimeout int `json:",omitempty"` - // - //TerminatedPodGcThreshold string `json:",omitempty"` - // - //EnableManifestURL *bool `json:",omitempty"` - //ManifestURL string `json:",omitempty"` - //ManifestURLHeader string `json:",omitempty"` - // - //TestCluster string `json:",omitempty"` - // - //E2EStorageTestEnvironment string `json:",omitempty"` - //KubeletTestArgs string `json:",omitempty"` - //KubeletTestLogLevel string `json:",omitempty"` - //DockerTestArgs string `json:",omitempty"` - //DockerTestLogLevel string `json:",omitempty"` - //ApiserverTestArgs string `json:",omitempty"` - //ApiserverTestLogLevel string `json:",omitempty"` - //ControllerManagerTestArgs string `json:",omitempty"` - //ControllerManagerTestLogLevel string `json:",omitempty"` - //SchedulerTestArgs string `json:",omitempty"` - //SchedulerTestLogLevel string `json:",omitempty"` - //KubeProxyTestArgs string `json:",omitempty"` - //KubeProxyTestLogLevel string `json:",omitempty"` - - //NodeUp *NodeUpConfig `json:",omitempty"` - - //// Masters is the configuration for each master in the cluster - //Masters []*MasterConfig `json:",omitempty"` - // EtcdClusters stores the configuration for each cluster EtcdClusters []*EtcdClusterSpec `json:"etcdClusters,omitempty"` @@ -243,16 +160,6 @@ type KubeDNSConfig struct { ServerIP string `json:"serverIP,omitempty"` } -// -//type MasterConfig struct { -// Name string `json:",omitempty"` -// -// Image string `json:",omitempty"` -// Zone string `json:",omitempty"` -// MachineType string `json:",omitempty"` -//} -// - type EtcdClusterSpec struct { // Name is the name of the etcd cluster (main, events etc) Name string `json:"name,omitempty"` diff --git a/pkg/apis/kops/v1alpha2/componentconfig.go b/pkg/apis/kops/v1alpha2/componentconfig.go index 3e1708cbf8..c6e0b9cc5c 100644 --- a/pkg/apis/kops/v1alpha2/componentconfig.go +++ b/pkg/apis/kops/v1alpha2/componentconfig.go @@ -25,154 +25,30 @@ type KubeletConfigSpec struct { // config is the path to the config file or directory of files Config string `json:"config,omitempty" flag:"config"` - //// syncFrequency is the max period between synchronizing running - //// containers and config - //SyncFrequency unversioned.Duration `json:"syncFrequency"` - //// fileCheckFrequency is the duration between checking config files for - //// new data - //FileCheckFrequency unversioned.Duration `json:"fileCheckFrequency"` - //// httpCheckFrequency is the duration between checking http for new data - //HTTPCheckFrequency unversioned.Duration `json:"httpCheckFrequency"` - //// manifestURL is the URL for accessing the container manifest - //ManifestURL string `json:"manifestURL"` - //// manifestURLHeader is the HTTP header to use when accessing the manifest - //// URL, with the key separated from the value with a ':', as in 'key:value' - //ManifestURLHeader string `json:"manifestURLHeader"` - //// enableServer enables the Kubelet's server - //EnableServer bool `json:"enableServer"` - //// address is the IP address for the Kubelet to serve on (set to 0.0.0.0 - //// for all interfaces) - //Address string `json:"address"` - //// port is the port for the Kubelet to serve on. - //Port uint `json:"port"` - //// readOnlyPort is the read-only port for the Kubelet to serve on with - //// no authentication/authorization (set to 0 to disable) - //ReadOnlyPort uint `json:"readOnlyPort"` - //// tLSCertFile is the file containing x509 Certificate for HTTPS. (CA cert, - //// if any, concatenated after server cert). If tlsCertFile and - //// tlsPrivateKeyFile are not provided, a self-signed certificate - //// and key are generated for the public address and saved to the directory - //// passed to certDir. - //TLSCertFile string `json:"tlsCertFile"` - //// tLSPrivateKeyFile is the ile containing x509 private key matching - //// tlsCertFile. - //TLSPrivateKeyFile string `json:"tlsPrivateKeyFile"` - //// certDirectory is the directory where the TLS certs are located (by - //// default /var/run/kubernetes). If tlsCertFile and tlsPrivateKeyFile - //// are provided, this flag will be ignored. - //CertDirectory string `json:"certDirectory"` // hostnameOverride is the hostname used to identify the kubelet instead // of the actual hostname. // Note: We recognize some additional values: // @aws uses the hostname from the AWS metadata service HostnameOverride string `json:"hostnameOverride,omitempty" flag:"hostname-override"` - //// podInfraContainerImage is the image whose network/ipc namespaces - //// containers in each pod will use. - //PodInfraContainerImage string `json:"podInfraContainerImage"` - //// dockerEndpoint is the path to the docker endpoint to communicate with. - //DockerEndpoint string `json:"dockerEndpoint"` - //// rootDirectory is the directory path to place kubelet files (volume - //// mounts,etc). - //RootDirectory string `json:"rootDirectory"` - //// seccompProfileRoot is the directory path for seccomp profiles. - //SeccompProfileRoot string `json:"seccompProfileRoot"` // allowPrivileged enables containers to request privileged mode. // Defaults to false. AllowPrivileged *bool `json:"allowPrivileged,omitempty" flag:"allow-privileged"` - //// hostNetworkSources is a comma-separated list of sources from which the - //// Kubelet allows pods to use of host network. Defaults to "*". - //HostNetworkSources []string `json:"hostNetworkSources"` - //// hostPIDSources is a comma-separated list of sources from which the - //// Kubelet allows pods to use the host pid namespace. Defaults to "*". - //HostPIDSources []string `json:"hostPIDSources"` - //// hostIPCSources is a comma-separated list of sources from which the - //// Kubelet allows pods to use the host ipc namespace. Defaults to "*". - //HostIPCSources []string `json:"hostIPCSources"` - //// registryPullQPS is the limit of registry pulls per second. If 0, - //// unlimited. Set to 0 for no limit. Defaults to 5.0. - //RegistryPullQPS float64 `json:"registryPullQPS"` - //// registryBurst is the maximum size of a bursty pulls, temporarily allows - //// pulls to burst to this number, while still not exceeding registryQps. - //// Only used if registryQps > 0. - //RegistryBurst int32 `json:"registryBurst"` - //// eventRecordQPS is the maximum event creations per second. If 0, there - //// is no limit enforced. - //EventRecordQPS float32 `json:"eventRecordQPS"` - //// eventBurst is the maximum size of a bursty event records, temporarily - //// allows event records to burst to this number, while still not exceeding - //// event-qps. Only used if eventQps > 0 - //EventBurst int32 `json:"eventBurst"` // enableDebuggingHandlers enables server endpoints for log collection // and local running of containers and commands EnableDebuggingHandlers *bool `json:"enableDebuggingHandlers,omitempty" flag:"enable-debugging-handlers"` - //// minimumGCAge is the minimum age for a finished container before it is - //// garbage collected. - //MinimumGCAge unversioned.Duration `json:"minimumGCAge"` - //// maxPerPodContainerCount is the maximum number of old instances to - //// retain per container. Each container takes up some disk space. - //MaxPerPodContainerCount int32 `json:"maxPerPodContainerCount"` - //// maxContainerCount is the maximum number of old instances of containers - //// to retain globally. Each container takes up some disk space. - //MaxContainerCount int32 `json:"maxContainerCount"` - //// cAdvisorPort is the port of the localhost cAdvisor endpoint - //CAdvisorPort uint `json:"cAdvisorPort"` - //// healthzPort is the port of the localhost healthz endpoint - //HealthzPort int32 `json:"healthzPort"` - //// healthzBindAddress is the IP address for the healthz server to serve - //// on. - //HealthzBindAddress string `json:"healthzBindAddress"` - //// oomScoreAdj is The oom-score-adj value for kubelet process. Values - //// must be within the range [-1000, 1000]. - //OOMScoreAdj int32 `json:"oomScoreAdj"` - //// registerNode enables automatic registration with the apiserver. - //RegisterNode bool `json:"registerNode"` // clusterDomain is the DNS domain for this cluster. If set, kubelet will // configure all containers to search this domain in addition to the // host's search domains. ClusterDomain string `json:"clusterDomain,omitempty" flag:"cluster-domain"` - //// masterServiceNamespace is The namespace from which the kubernetes - //// master services should be injected into pods. - //MasterServiceNamespace string `json:"masterServiceNamespace"` // clusterDNS is the IP address for a cluster DNS server. If set, kubelet // will configure all containers to use this for DNS resolution in // addition to the host's DNS servers ClusterDNS string `json:"clusterDNS,omitempty" flag:"cluster-dns"` - //// streamingConnectionIdleTimeout is the maximum time a streaming connection - //// can be idle before the connection is automatically closed. - //StreamingConnectionIdleTimeout unversioned.Duration `json:"streamingConnectionIdleTimeout"` - //// nodeStatusUpdateFrequency is the frequency that kubelet posts node - //// status to master. Note: be cautious when changing the constant, it - //// must work with nodeMonitorGracePeriod in nodecontroller. - //NodeStatusUpdateFrequency unversioned.Duration `json:"nodeStatusUpdateFrequency"` - //// minimumGCAge is the minimum age for a unused image before it is - //// garbage collected. - //ImageMinimumGCAge unversioned.Duration `json:"imageMinimumGCAge"` - //// imageGCHighThresholdPercent is the percent of disk usage after which - //// image garbage collection is always run. - //ImageGCHighThresholdPercent int32 `json:"imageGCHighThresholdPercent"` - //// imageGCLowThresholdPercent is the percent of disk usage before which - //// image garbage collection is never run. Lowest disk usage to garbage - //// collect to. - //ImageGCLowThresholdPercent int32 `json:"imageGCLowThresholdPercent"` - //// lowDiskSpaceThresholdMB is the absolute free disk space, in MB, to - //// maintain. When disk space falls below this threshold, new pods would - //// be rejected. - //LowDiskSpaceThresholdMB int32 `json:"lowDiskSpaceThresholdMB"` - //// How frequently to calculate and cache volume disk usage for all pods - //VolumeStatsAggPeriod unversioned.Duration `json:"volumeStatsAggPeriod"` // networkPluginName is the name of the network plugin to be invoked for // various events in kubelet/pod lifecycle NetworkPluginName string `json:"networkPluginName,omitempty" flag:"network-plugin"` - //// networkPluginDir is the full path of the directory in which to search - //// for network plugins - //NetworkPluginDir string `json:"networkPluginDir"` - //// volumePluginDir is the full path of the directory in which to search - //// for additional third party volume plugins - //VolumePluginDir string `json:"volumePluginDir"` // cloudProvider is the provider for cloud services. CloudProvider string `json:"cloudProvider,omitempty" flag:"cloud-provider"` - //// cloudConfigFile is the path to the cloud provider configuration file. - //CloudConfigFile string `json:"cloudConfigFile,omitempty"` // KubeletCgroups is the absolute name of cgroups to isolate the kubelet in. KubeletCgroups string `json:"kubeletCgroups,omitempty" flag:"kubelet-cgroups"` // Cgroups that container runtime is expected to be isolated in. @@ -184,25 +60,6 @@ type KubeletConfigSpec struct { // cgroupRoot is the root cgroup to use for pods. This is handled by the // container runtime on a best effort basis. CgroupRoot string `json:"cgroupRoot,omitempty" flag:"cgroup-root"` - //// containerRuntime is the container runtime to use. - //ContainerRuntime string `json:"containerRuntime"` - //// rktPath is the path of rkt binary. Leave empty to use the first rkt in - //// $PATH. - //RktPath string `json:"rktPath,omitempty"` - //// rktApiEndpoint is the endpoint of the rkt API service to communicate with. - //RktAPIEndpoint string `json:"rktAPIEndpoint,omitempty"` - //// rktStage1Image is the image to use as stage1. Local paths and - //// http/https URLs are supported. - //RktStage1Image string `json:"rktStage1Image,omitempty"` - //// lockFilePath is the path that kubelet will use to as a lock file. - //// It uses this file as a lock to synchronize with other kubelet processes - //// that may be running. - //LockFilePath string `json:"lockFilePath"` - //// ExitOnLockContention is a flag that signifies to the kubelet that it is running - //// in "bootstrap" mode. This requires that 'LockFilePath' has been set. - //// This will cause the kubelet to listen to inotify events on the lock file, - //// releasing it and exiting when another process tries to open that file. - //ExitOnLockContention bool `json:"exitOnLockContention"` // configureCBR0 enables the kublet to configure cbr0 based on // Node.Spec.PodCIDR. ConfigureCBR0 *bool `json:"configureCbr0,omitempty" flag:"configure-cbr0"` @@ -218,77 +75,19 @@ type KubeletConfigSpec struct { HairpinMode string `json:"hairpinMode,omitempty" flag:"hairpin-mode"` // The node has babysitter process monitoring docker and kubelet. BabysitDaemons *bool `json:"babysitDaemons,omitempty" flag:"babysit-daemons"` - //// maxPods is the number of pods that can run on this Kubelet. - //MaxPods int32 `json:"maxPods"` - //// nvidiaGPUs is the number of NVIDIA GPU devices on this node. - //NvidiaGPUs int32 `json:"nvidiaGPUs"` - //// dockerExecHandlerName is the handler to use when executing a command - //// in a container. Valid values are 'native' and 'nsenter'. Defaults to - //// 'native'. - //DockerExecHandlerName string `json:"dockerExecHandlerName"` // The CIDR to use for pod IP addresses, only used in standalone mode. // In cluster mode, this is obtained from the master. PodCIDR string `json:"podCIDR,omitempty" flag:"pod-cidr"` - //// ResolverConfig is the resolver configuration file used as the basis - //// for the container DNS resolution configuration."), [] - //ResolverConfig string `json:"resolvConf"` - //// cpuCFSQuota is Enable CPU CFS quota enforcement for containers that - //// specify CPU limits - //CPUCFSQuota bool `json:"cpuCFSQuota"` - //// containerized should be set to true if kubelet is running in a container. - //Containerized bool `json:"containerized"` - //// maxOpenFiles is Number of files that can be opened by Kubelet process. - //MaxOpenFiles uint64 `json:"maxOpenFiles"` // reconcileCIDR is Reconcile node CIDR with the CIDR specified by the // API server. No-op if register-node or configure-cbr0 is false. ReconcileCIDR *bool `json:"reconcileCIDR,omitempty" flag:"reconcile-cidr"` // registerSchedulable tells the kubelet to register the node as // schedulable. No-op if register-node is false. RegisterSchedulable *bool `json:"registerSchedulable,omitempty" flag:"register-schedulable"` - //// contentType is contentType of requests sent to apiserver. - //ContentType string `json:"contentType"` - //// kubeAPIQPS is the QPS to use while talking with kubernetes apiserver - //KubeAPIQPS float32 `json:"kubeAPIQPS"` - //// kubeAPIBurst is the burst to allow while talking with kubernetes - //// apiserver - //KubeAPIBurst int32 `json:"kubeAPIBurst"` - //// serializeImagePulls when enabled, tells the Kubelet to pull images one - //// at a time. We recommend *not* changing the default value on nodes that - //// run docker daemon with version < 1.9 or an Aufs storage backend. - //// Issue #10959 has more details. - //SerializeImagePulls bool `json:"serializeImagePulls"` - //// experimentalFlannelOverlay enables experimental support for starting the - //// kubelet with the default overlay network (flannel). Assumes flanneld - //// is already running in client mode. - //ExperimentalFlannelOverlay bool `json:"experimentalFlannelOverlay"` - //// outOfDiskTransitionFrequency is duration for which the kubelet has to - //// wait before transitioning out of out-of-disk node condition status. - //OutOfDiskTransitionFrequency unversioned.Duration `json:"outOfDiskTransitionFrequency,omitempty"` - //// nodeIP is IP address of the node. If set, kubelet will use this IP - //// address for the node. - //NodeIP string `json:"nodeIP,omitempty"` // nodeLabels to add when registering the node in the cluster. NodeLabels map[string]string `json:"nodeLabels,omitempty" flag:"node-labels"` // nonMasqueradeCIDR configures masquerading: traffic to IPs outside this range will use IP masquerade. NonMasqueradeCIDR string `json:"nonMasqueradeCIDR,omitempty" flag:"non-masquerade-cidr"` - //// enable gathering custom metrics. - //EnableCustomMetrics bool `json:"enableCustomMetrics"` - //// Comma-delimited list of hard eviction expressions. For example, 'memory.available<300Mi'. - //EvictionHard string `json:"evictionHard,omitempty"` - //// Comma-delimited list of soft eviction expressions. For example, 'memory.available<300Mi'. - //EvictionSoft string `json:"evictionSoft,omitempty"` - //// Comma-delimeted list of grace periods for each soft eviction signal. For example, 'memory.available=30s'. - //EvictionSoftGracePeriod string `json:"evictionSoftGracePeriod,omitempty"` - //// Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. - //EvictionPressureTransitionPeriod unversioned.Duration `json:"evictionPressureTransitionPeriod,omitempty"` - //// Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. - //EvictionMaxPodGracePeriod int32 `json:"evictionMaxPodGracePeriod,omitempty"` - //// Maximum number of pods per core. Cannot exceed MaxPods - //PodsPerCore int32 `json:"podsPerCore"` - //// enableControllerAttachDetach enables the Attach/Detach controller to - //// manage attachment/detachment of volumes scheduled to this node, and - //// disables kubelet from executing any attach/detach operations - //EnableControllerAttachDetach bool `json:"enableControllerAttachDetach"` // networkPluginMTU is the MTU to be passed to the network plugin, // and overrides the default MTU for cases where it cannot be automatically @@ -305,52 +104,8 @@ type KubeProxyConfig struct { // Configuration flags - a subset of https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/componentconfig/types.go - //// bindAddress is the IP address for the proxy server to serve on (set to 0.0.0.0 - //// for all interfaces) - //BindAddress string `json:"bindAddress"` - //// clusterCIDR is the CIDR range of the pods in the cluster. It is used to - //// bridge traffic coming from outside of the cluster. If not provided, - //// no off-cluster bridging will be performed. - //ClusterCIDR string `json:"clusterCIDR"` - //// healthzBindAddress is the IP address for the health check server to serve on, - //// defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces) - //HealthzBindAddress string `json:"healthzBindAddress"` - //// healthzPort is the port to bind the health check server. Use 0 to disable. - //HealthzPort int32 `json:"healthzPort"` - //// hostnameOverride, if non-empty, will be used as the identity instead of the actual hostname. - //HostnameOverride string `json:"hostnameOverride"` - //// iptablesMasqueradeBit is the bit of the iptables fwmark space to use for SNAT if using - //// the pure iptables proxy mode. Values must be within the range [0, 31]. - //IPTablesMasqueradeBit *int32 `json:"iptablesMasqueradeBit"` - //// iptablesSyncPeriod is the period that iptables rules are refreshed (e.g. '5s', '1m', - //// '2h22m'). Must be greater than 0. - //IPTablesSyncPeriod unversioned.Duration `json:"iptablesSyncPeriodSeconds"` - //// kubeconfigPath is the path to the kubeconfig file with authorization information (the - //// master location is set by the master flag). - //KubeconfigPath string `json:"kubeconfigPath"` - //// masqueradeAll tells kube-proxy to SNAT everything if using the pure iptables proxy mode. - //MasqueradeAll bool `json:"masqueradeAll"` // master is the address of the Kubernetes API server (overrides any value in kubeconfig) Master string `json:"master,omitempty" flag:"master"` - //// oomScoreAdj is the oom-score-adj value for kube-proxy process. Values must be within - //// the range [-1000, 1000] - //OOMScoreAdj *int32 `json:"oomScoreAdj"` - //// mode specifies which proxy mode to use. - //Mode ProxyMode `json:"mode"` - //// portRange is the range of host ports (beginPort-endPort, inclusive) that may be consumed - //// in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen. - //PortRange string `json:"portRange"` - //// resourceContainer is the bsolute name of the resource-only container to create and run - //// the Kube-proxy in (Default: /kube-proxy). - //ResourceContainer string `json:"resourceContainer"` - //// udpIdleTimeout is how long an idle UDP connection will be kept open (e.g. '250ms', '2s'). - //// Must be greater than 0. Only applicable for proxyMode=userspace. - //UDPIdleTimeout unversioned.Duration `json:"udpTimeoutMilliseconds"` - //// conntrackMax is the maximum number of NAT connections to track (0 to leave as-is)") - //ConntrackMax int32 `json:"conntrackMax"` - //// conntrackTCPEstablishedTimeout is how long an idle UDP connection will be kept open - //// (e.g. '250ms', '2s'). Must be greater than 0. Only applicable for proxyMode is Userspace - //ConntrackTCPEstablishedTimeout unversioned.Duration `json:"conntrackTCPEstablishedTimeout"` } type KubeAPIServerConfig struct { @@ -392,116 +147,12 @@ type KubeControllerManagerConfig struct { // Configuration flags - a subset of https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/componentconfig/types.go - //// port is the port that the controller-manager's http service runs on. - //Port int32 `json:"port"` - //// address is the IP address to serve on (set to 0.0.0.0 for all interfaces). - //Address string `json:"address"` // cloudProvider is the provider for cloud services. CloudProvider string `json:"cloudProvider,omitempty" flag:"cloud-provider"` - //// cloudConfigFile is the path to the cloud provider configuration file. - //CloudConfigFile string `json:"cloudConfigFile"` - //// concurrentEndpointSyncs is the number of endpoint syncing operations - //// that will be done concurrently. Larger number = faster endpoint updating, - //// but more CPU (and network) load. - //ConcurrentEndpointSyncs int32 `json:"concurrentEndpointSyncs"` - //// concurrentRSSyncs is the number of replica sets that are allowed to sync - //// concurrently. Larger number = more responsive replica management, but more - //// CPU (and network) load. - //ConcurrentRSSyncs int32 `json:"concurrentRSSyncs"` - //// concurrentRCSyncs is the number of replication controllers that are - //// allowed to sync concurrently. Larger number = more responsive replica - //// management, but more CPU (and network) load. - //ConcurrentRCSyncs int32 `json:"concurrentRCSyncs"` - //// concurrentResourceQuotaSyncs is the number of resource quotas that are - //// allowed to sync concurrently. Larger number = more responsive quota - //// management, but more CPU (and network) load. - //ConcurrentResourceQuotaSyncs int32 `json:"concurrentResourceQuotaSyncs"` - //// concurrentDeploymentSyncs is the number of deployment objects that are - //// allowed to sync concurrently. Larger number = more responsive deployments, - //// but more CPU (and network) load. - //ConcurrentDeploymentSyncs int32 `json:"concurrentDeploymentSyncs"` - //// concurrentDaemonSetSyncs is the number of daemonset objects that are - //// allowed to sync concurrently. Larger number = more responsive daemonset, - //// but more CPU (and network) load. - //ConcurrentDaemonSetSyncs int32 `json:"concurrentDaemonSetSyncs"` - //// concurrentJobSyncs is the number of job objects that are - //// allowed to sync concurrently. Larger number = more responsive jobs, - //// but more CPU (and network) load. - //ConcurrentJobSyncs int32 `json:"concurrentJobSyncs"` - //// concurrentNamespaceSyncs is the number of namespace objects that are - //// allowed to sync concurrently. - //ConcurrentNamespaceSyncs int32 `json:"concurrentNamespaceSyncs"` - //// lookupCacheSizeForRC is the size of lookup cache for replication controllers. - //// Larger number = more responsive replica management, but more MEM load. - //LookupCacheSizeForRC int32 `json:"lookupCacheSizeForRC"` - //// lookupCacheSizeForRS is the size of lookup cache for replicatsets. - //// Larger number = more responsive replica management, but more MEM load. - //LookupCacheSizeForRS int32 `json:"lookupCacheSizeForRS"` - //// lookupCacheSizeForDaemonSet is the size of lookup cache for daemonsets. - //// Larger number = more responsive daemonset, but more MEM load. - //LookupCacheSizeForDaemonSet int32 `json:"lookupCacheSizeForDaemonSet"` - //// serviceSyncPeriod is the period for syncing services with their external - //// load balancers. - //ServiceSyncPeriod unversioned.Duration `json:"serviceSyncPeriod"` - //// nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer - //// periods will result in fewer calls to cloud provider, but may delay addition - //// of new nodes to cluster. - //NodeSyncPeriod unversioned.Duration `json:"nodeSyncPeriod"` - //// resourceQuotaSyncPeriod is the period for syncing quota usage status - //// in the system. - //ResourceQuotaSyncPeriod unversioned.Duration `json:"resourceQuotaSyncPeriod"` - //// namespaceSyncPeriod is the period for syncing namespace life-cycle - //// updates. - //NamespaceSyncPeriod unversioned.Duration `json:"namespaceSyncPeriod"` - //// pvClaimBinderSyncPeriod is the period for syncing persistent volumes - //// and persistent volume claims. - //PVClaimBinderSyncPeriod unversioned.Duration `json:"pvClaimBinderSyncPeriod"` - //// minResyncPeriod is the resync period in reflectors; will be random between - //// minResyncPeriod and 2*minResyncPeriod. - //MinResyncPeriod unversioned.Duration `json:"minResyncPeriod"` - //// terminatedPodGCThreshold is the number of terminated pods that can exist - //// before the terminated pod garbage collector starts deleting terminated pods. - //// If <= 0, the terminated pod garbage collector is disabled. - //TerminatedPodGCThreshold int32 `json:"terminatedPodGCThreshold"` - //// horizontalPodAutoscalerSyncPeriod is the period for syncing the number of - //// pods in horizontal pod autoscaler. - //HorizontalPodAutoscalerSyncPeriod unversioned.Duration `json:"horizontalPodAutoscalerSyncPeriod"` - //// deploymentControllerSyncPeriod is the period for syncing the deployments. - //DeploymentControllerSyncPeriod unversioned.Duration `json:"deploymentControllerSyncPeriod"` - //// podEvictionTimeout is the grace period for deleting pods on failed nodes. - //PodEvictionTimeout unversioned.Duration `json:"podEvictionTimeout"` - //// deletingPodsQps is the number of nodes per second on which pods are deleted in - //// case of node failure. - //DeletingPodsQps float32 `json:"deletingPodsQps"` - //// deletingPodsBurst is the number of nodes on which pods are bursty deleted in - //// case of node failure. For more details look into RateLimiter. - //DeletingPodsBurst int32 `json:"deletingPodsBurst"` - //// nodeMontiorGracePeriod is the amount of time which we allow a running node to be - //// unresponsive before marking it unhealty. Must be N times more than kubelet's - //// nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet - //// to post node status. - //NodeMonitorGracePeriod unversioned.Duration `json:"nodeMonitorGracePeriod"` - //// registerRetryCount is the number of retries for initial node registration. - //// Retry interval equals node-sync-period. - //RegisterRetryCount int32 `json:"registerRetryCount"` - //// nodeStartupGracePeriod is the amount of time which we allow starting a node to - //// be unresponsive before marking it unhealty. - //NodeStartupGracePeriod unversioned.Duration `json:"nodeStartupGracePeriod"` - //// nodeMonitorPeriod is the period for syncing NodeStatus in NodeController. - //NodeMonitorPeriod unversioned.Duration `json:"nodeMonitorPeriod"` - //// serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key - //// used to sign service account tokens. - //ServiceAccountKeyFile string `json:"serviceAccountKeyFile"` - //// enableProfiling enables profiling via web interface host:port/debug/pprof/ - //EnableProfiling bool `json:"enableProfiling"` // clusterName is the instance prefix for the cluster. ClusterName string `json:"clusterName,omitempty" flag:"cluster-name"` // clusterCIDR is CIDR Range for Pods in cluster. ClusterCIDR string `json:"clusterCIDR,omitempty" flag:"cluster-cidr"` - //// serviceCIDR is CIDR Range for Services in cluster. - //ServiceCIDR string `json:"serviceCIDR"` - //// NodeCIDRMaskSize is the mask size for node cidr in cluster. - //NodeCIDRMaskSize int32 `json:"nodeCIDRMaskSize"` // allocateNodeCIDRs enables CIDRs for Pods to be allocated and, if // ConfigureCloudRoutes is true, to be set on the cloud provider. AllocateNodeCIDRs *bool `json:"allocateNodeCIDRs,omitempty" flag:"allocate-node-cidrs"` @@ -511,22 +162,8 @@ type KubeControllerManagerConfig struct { // rootCAFile is the root certificate authority will be included in service // account's token secret. This must be a valid PEM-encoded CA bundle. RootCAFile string `json:"rootCAFile,omitempty" flag:"root-ca-file"` - //// contentType is contentType of requests sent to apiserver. - //ContentType string `json:"contentType"` - //// kubeAPIQPS is the QPS to use while talking with kubernetes apiserver. - //KubeAPIQPS float32 `json:"kubeAPIQPS"` - //// kubeAPIBurst is the burst to use while talking with kubernetes apiserver. - //KubeAPIBurst int32 `json:"kubeAPIBurst"` // leaderElection defines the configuration of leader election client. LeaderElection *LeaderElectionConfiguration `json:"leaderElection,omitempty"` - //// volumeConfiguration holds configuration for volume related features. - //VolumeConfiguration VolumeConfiguration `json:"volumeConfiguration"` - //// How long to wait between starting controller managers - //ControllerStartInterval unversioned.Duration `json:"controllerStartInterval"` - //// enables the generic garbage collector. MUST be synced with the - //// corresponding flag of the kube-apiserver. WARNING: the generic garbage - //// collector is an alpha feature. - //EnableGarbageCollector bool `json:"enableGarbageCollector"` } type KubeSchedulerConfig struct { @@ -537,32 +174,6 @@ type KubeSchedulerConfig struct { // Configuration flags - a subset of https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/componentconfig/types.go - //// port is the port that the scheduler's http service runs on. - //Port int32 `json:"port"` - //// address is the IP address to serve on. - //Address string `json:"address"` - //// algorithmProvider is the scheduling algorithm provider to use. - //AlgorithmProvider string `json:"algorithmProvider"` - //// policyConfigFile is the filepath to the scheduler policy configuration. - //PolicyConfigFile string `json:"policyConfigFile"` - //// enableProfiling enables profiling via web interface. - //EnableProfiling bool `json:"enableProfiling"` - //// contentType is contentType of requests sent to apiserver. - //ContentType string `json:"contentType"` - //// kubeAPIQPS is the QPS to use while talking with kubernetes apiserver. - //KubeAPIQPS float32 `json:"kubeAPIQPS"` - //// kubeAPIBurst is the QPS burst to use while talking with kubernetes apiserver. - //KubeAPIBurst int32 `json:"kubeAPIBurst"` - //// schedulerName is name of the scheduler, used to select which pods - //// will be processed by this scheduler, based on pod's annotation with - //// key 'scheduler.alpha.kubernetes.io/name'. - //SchedulerName string `json:"schedulerName"` - //// RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule - //// corresponding to every RequiredDuringScheduling affinity rule. - //// HardPodAffinitySymmetricWeight represents the weight of implicit PreferredDuringScheduling affinity rule, in the range 0-100. - //HardPodAffinitySymmetricWeight int `json:"hardPodAffinitySymmetricWeight"` - //// Indicate the "all topologies" set for empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity. - //FailureDomains string `json:"failureDomains"` // leaderElection defines the configuration of leader election client. LeaderElection *LeaderElectionConfiguration `json:"leaderElection,omitempty"` } @@ -574,20 +185,4 @@ type LeaderElectionConfiguration struct { // before executing the main loop. Enable this when running replicated // components for high availability. LeaderElect *bool `json:"leaderElect,omitempty" flag:"leader-elect"` - //// leaseDuration is the duration that non-leader candidates will wait - //// after observing a leadership renewal until attempting to acquire - //// leadership of a led but unrenewed leader slot. This is effectively the - //// maximum duration that a leader can be stopped before it is replaced - //// by another candidate. This is only applicable if leader election is - //// enabled. - //LeaseDuration unversioned.Duration `json:"leaseDuration"` - //// renewDeadline is the interval between attempts by the acting master to - //// renew a leadership slot before it stops leading. This must be less - //// than or equal to the lease duration. This is only applicable if leader - //// election is enabled. - //RenewDeadline unversioned.Duration `json:"renewDeadline"` - //// retryPeriod is the duration the clients should wait between attempting - //// acquisition and renewal of a leadership. This is only applicable if - //// leader election is enabled. - //RetryPeriod unversioned.Duration `json:"retryPeriod"` } diff --git a/pkg/model/bastion.go b/pkg/model/bastion.go index d67435fc49..a8042c4ad7 100644 --- a/pkg/model/bastion.go +++ b/pkg/model/bastion.go @@ -245,53 +245,3 @@ func (b *BastionModelBuilder) Build(c *fi.ModelBuilderContext) error { } return nil } - -//func (b*BastionModelBuilder) buildASG(ig *kops.InstanceGroup) (*awstasks.AutoscalingGroup, error) { -// name := ig.ObjectMeta.Name + "." + b.ClusterName() -// -// sshKey, err := b.LinkToSSHKey() -// if err != nil { -// return nil, err -// } -// -// lc := &awstasks.LaunchConfiguration{ -// Name: s(name), -// SSHKey: sshKey, -// SecurityGroups: []*awstasks.SecurityGroup{ -// b.LinkToSecurityGroup(ig.Spec.Role), -// }, -// IAMInstanceProfile: b.LinkToIAMInstanceProfile(ig), -// ImageID: s(ig.Spec.Image), -// InstanceType: s(ig.Spec.MachineType), -// AssociatePublicIP: fi.Bool(false), -// RootVolumeSize: i64(20), -// RootVolumeType:s("gp2"), -// } -// -// var subnets []*awstasks.Subnet -// { -// subnetSpecs, err := b.GatherSubnets(ig) -// if err != nil { -// return nil, err -// } -// for _, subnetSpec := range subnetSpecs { -// subnet := b.LinkToSubnet(subnetSpec) -// subnets = append(subnets, subnet) -// } -// } -// -// asg := &awstasks.AutoscalingGroup{ -// Name: s(name), -// MinSize: i64(1), -// MaxSize: i64(1), -// LaunchConfiguration: lc, -// Tags: map[string]string{ -// "Name": name, -// // TODO: Aren't these added automatically? -// "KubernetesCluster": b.ClusterName(), -// }, -// Subnets: subnets, -// } -// -// return asg, nil -//} diff --git a/pkg/model/external_access.go b/pkg/model/external_access.go index 709636b90a..e260f7763d 100644 --- a/pkg/model/external_access.go +++ b/pkg/model/external_access.go @@ -23,15 +23,6 @@ func (b *ExternalAccessModelBuilder) Build(c *fi.ModelBuilderContext) error { if len(b.Cluster.Spec.SSHAccess) == 0 { glog.Warningf("SSHAccess is empty") - - //// AdminCIDR returns the CIDRs that are allowed to access the admin ports of the cluster - //// (22, 443 on master and 22 on nodes) - //func (tf *TemplateFunctions) AdminCIDR() []string { - // if len(tf.cluster.Spec.AdminAccess) == 0 { - // return []string{"0.0.0.0/0"} - // } - // return tf.cluster.Spec.AdminAccess - //} } // SSH is open to AdminCIDR set @@ -74,17 +65,5 @@ func (b *ExternalAccessModelBuilder) Build(c *fi.ModelBuilderContext) error { } } - //upup/models/cloudup/_aws/master/_master_lb/master_lb.yaml: - //# HTTPS to the master ELB is allowed (for API access) - //# One security group rule is necessary per admin CIDR - //{{ range $index, $cidr := AdminCIDR }} - //securityGroupRule/https-external-to-api-{{ $index }}: - //securityGroup: securityGroup/api.{{ ClusterName }} - //cidr: {{ $cidr }} - //protocol: tcp - //fromPort: 443 - //toPort: 443 - //{{ end }} - return nil } diff --git a/pkg/model/names.go b/pkg/model/names.go index 54a7b61c6d..717b39112c 100644 --- a/pkg/model/names.go +++ b/pkg/model/names.go @@ -140,17 +140,6 @@ func (b *KopsModelContext) LinkToSSHKey() (*awstasks.SSHKey, error) { } func (b *KopsModelContext) LinkToSubnet(z *kops.ClusterSubnetSpec) *awstasks.Subnet { - //var name string - // - //if b.Cluster.IsTopologyPublic() { - // name = z.SubnetName + "." + b.ClusterName() - //} else if z.Type == kops.SubnetTypePublic { - // name = z.SubnetName + "." + b.ClusterName() - //} else if z.Type == kops.SubnetTypePrivate { - // name = "private-" + z.SubnetName + "." + b.ClusterName() - //} else { - // glog.Fatalf("unable to construct link to subnet %q of type %q", z.SubnetName, z.Type) - //} name := z.SubnetName + "." + b.ClusterName() return &awstasks.Subnet{Name: &name} diff --git a/pkg/model/network.go b/pkg/model/network.go index 71795a4611..8e8e0c004d 100644 --- a/pkg/model/network.go +++ b/pkg/model/network.go @@ -60,7 +60,6 @@ func (b *NetworkModelBuilder) Build(c *fi.ModelBuilderContext) error { // We always have a public route table, though for private networks it is only used for NGWs and ELBs var publicRouteTable *awstasks.RouteTable - //if b.Cluster.IsTopologyPublic() { // The internet gateway is the main entry point to the cluster. igw := &awstasks.InternetGateway{ diff --git a/upup/pkg/fi/cloudup/populate_instancegroup_spec.go b/upup/pkg/fi/cloudup/populate_instancegroup_spec.go index 0db6d63ec5..4ae3a1c1b8 100644 --- a/upup/pkg/fi/cloudup/populate_instancegroup_spec.go +++ b/upup/pkg/fi/cloudup/populate_instancegroup_spec.go @@ -40,10 +40,6 @@ const ( DefaultMasterMachineTypeAWS_USEAST2 = "c4.large" ) -//// Default LoadBalancing IdleTimeout for bastion hosts -//const DefaultBastionIdleTimeoutAWS = 120 -//const DefaultBastionIdleTimeoutGCE = 120 - // PopulateInstanceGroupSpec sets default values in the InstanceGroup // The InstanceGroup is simpler than the cluster spec, so we just populate in place (like the rest of k8s) func PopulateInstanceGroupSpec(cluster *api.Cluster, input *api.InstanceGroup, channel *api.Channel) (*api.InstanceGroup, error) { @@ -213,30 +209,3 @@ func defaultImage(cluster *api.Cluster, channel *api.Channel) string { glog.Infof("Cannot set default Image for CloudProvider=%q", cluster.Spec.CloudProvider) return "" } - -//// defaultBastionMachineType returns the default MachineType for bastion host, based on the cloudprovider -//func DefaultBastionMachineType(cluster *api.Cluster) string { -// switch fi.CloudProviderID(cluster.Spec.CloudProvider) { -// case fi.CloudProviderAWS: -// return DefaultBastionMachineTypeAWS -// case fi.CloudProviderGCE: -// return DefaultBastionMasterMachineTypeGCE -// default: -// glog.V(2).Infof("Cannot set default MachineType for CloudProvider=%q", cluster.Spec.CloudProvider) -// return "" -// } -//} -// -//// defaultIdleTimeout returns the default Idletimeout for bastion loadbalancer, based on the cloudprovider -//func DefaultBastionIdleTimeout(cluster *api.Cluster) int { -// switch fi.CloudProviderID(cluster.Spec.CloudProvider) { -// case fi.CloudProviderAWS: -// return DefaultBastionIdleTimeoutAWS -// case fi.CloudProviderGCE: -// return DefaultBastionIdleTimeoutGCE -// default: -// glog.V(2).Infof("Cannot set default IdleTimeout for CloudProvider=%q", cluster.Spec.CloudProvider) -// return 0 -// } -//} -// diff --git a/upup/pkg/kutil/import_cluster.go b/upup/pkg/kutil/import_cluster.go index 9bd6f27099..75421353a7 100644 --- a/upup/pkg/kutil/import_cluster.go +++ b/upup/pkg/kutil/import_cluster.go @@ -348,12 +348,6 @@ func (x *ImportCluster) ImportAWSCluster() error { etcdCluster := &api.EtcdClusterSpec{ Name: etcdClusterName, } - //for _, subnetName := range masterGroup.Spec.Subnets { - // etcdCluster.Members = append(etcdCluster.Members, &api.EtcdMemberSpec{ - // Name: subnetName, - // InstanceGroup: fi.String(masterGroup.Name), - // }) - //} for _, ig := range masterInstanceGroups { etcdCluster.Members = append(etcdCluster.Members, &api.EtcdMemberSpec{