// Helper for getting the docker version. func getDockerVersion(cadvisor cadvisor.Interface) *utilversion.Version { versions, err := cadvisor.VersionInfo() if err != nil { glog.Errorf("Error requesting cAdvisor VersionInfo: %v", err) return utilversion.MustParseSemantic("0.0.0") } dockerVersion, err := utilversion.ParseSemantic(versions.DockerVersion) if err != nil { glog.Errorf("Error parsing docker version %q: %v", versions.DockerVersion, err) return utilversion.MustParseSemantic("0.0.0") } return dockerVersion }
// TODO: Remove in 1.6. Returns if kubectl is older than v1.5.0 func isOldKubectl(userAgent string) bool { // example userAgent string: kubectl-1.3/v1.3.8 (linux/amd64) kubernetes/e328d5b if !strings.Contains(userAgent, "kubectl") { return false } userAgent = strings.Split(userAgent, " ")[0] subs := strings.Split(userAgent, "/") if len(subs) != 2 { return false } kubectlVersion, versionErr := utilversion.ParseSemantic(subs[1]) if versionErr != nil { return false } return kubectlVersion.LessThan(utilversion.MustParseSemantic("v1.5.0")) }
"k8s.io/kubernetes/pkg/util/metrics" utilnode "k8s.io/kubernetes/pkg/util/node" utilruntime "k8s.io/kubernetes/pkg/util/runtime" "k8s.io/kubernetes/pkg/util/system" utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/pkg/util/wait" ) func init() { // Register prometheus metrics Register() } var ( ErrCloudInstance = errors.New("cloud provider doesn't support instances.") gracefulDeletionVersion = utilversion.MustParseSemantic("v1.1.0") // The minimum kubelet version for which the nodecontroller // can safely flip pod.Status to NotReady. podStatusReconciliationVersion = utilversion.MustParseSemantic("v1.2.0") ) const ( // nodeStatusUpdateRetry controls the number of retries of writing NodeStatus update. nodeStatusUpdateRetry = 5 // controls how often NodeController will try to evict Pods from non-responsive Nodes. nodeEvictionPeriod = 100 * time.Millisecond // Burst value for all eviction rate limiters evictionRateLimiterBurst = 1 // The amount of time the nodecontroller polls on the list nodes endpoint. apiserverStartupGracePeriod = 10 * time.Minute
// The percent of the machine memory capacity. The value is used to calculate // docker memory resource container's hardlimit to workaround docker memory // leakage issue. Please see kubernetes/issues/9881 for more detail. DockerMemoryLimitThresholdPercent = 70 // The minimum memory limit allocated to docker container: 150Mi MinDockerMemoryLimit = 150 * 1024 * 1024 dockerProcessName = "docker" dockerPidFile = "/var/run/docker.pid" containerdProcessName = "docker-containerd" containerdPidFile = "/run/docker/libcontainerd/docker-containerd.pid" ) var ( // The docker version in which containerd was introduced. containerdVersion = utilversion.MustParseSemantic("1.11.0") ) // A non-user container tracked by the Kubelet. type systemContainer struct { // Absolute name of the container. name string // CPU limit in millicores. cpuMillicores int64 // Function that ensures the state of the container. // m is the cgroup manager for the specified container. ensureStateFunc func(m *fs.Manager) error // Manager for the cgroups of the external container.
"k8s.io/kubernetes/pkg/api/v1" utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/test/e2e/framework" testutils "k8s.io/kubernetes/test/utils" . "github.com/onsi/ginkgo" ) const ( podName = "pfpod" ) // TODO support other ports besides 80 var ( portForwardRegexp = regexp.MustCompile("Forwarding from 127.0.0.1:([0-9]+) -> 80") portForwardPortToStdOutV = utilversion.MustParseSemantic("v1.3.0-alpha.4") ) func pfPod(expectedClientData, chunks, chunkSize, chunkIntervalMillis string, bindAddress string) *v1.Pod { return &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: podName, Labels: map[string]string{"name": podName}, }, Spec: v1.PodSpec{ Containers: []v1.Container{ { Name: "readiness", Image: "gcr.io/google_containers/netexec:1.7", ReadinessProbe: &v1.Probe{ Handler: v1.Handler{
"time" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/util/uuid" utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount" "k8s.io/kubernetes/test/e2e/framework" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var serviceAccountTokenNamespaceVersion = utilversion.MustParseSemantic("v1.2.0") var _ = framework.KubeDescribe("ServiceAccounts", func() { f := framework.NewDefaultFramework("svcaccounts") It("should ensure a single API token exists", func() { // wait for the service account to reference a single secret var secrets []v1.ObjectReference framework.ExpectNoError(wait.Poll(time.Millisecond*500, time.Second*10, func() (bool, error) { By("waiting for a single token reference") sa, err := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) if apierrors.IsNotFound(err) { framework.Logf("default service account was not found") return false, nil } if err != nil {