diff --git a/1.4/Godeps/Godeps.json b/1.4/Godeps/Godeps.json index d72570dc..bf3838d6 100644 --- a/1.4/Godeps/Godeps.json +++ b/1.4/Godeps/Godeps.json @@ -1,6 +1,6 @@ { - "ImportPath": "k8s.io/kubernetes/staging/src/k8s.io/client-go/1.4/_tmp", - "GoVersion": "go1.7", + "ImportPath": "k8s.io/client-go/1.4", + "GoVersion": "go1.6", "GodepVersion": "v74", "Packages": [ "./..." @@ -111,656 +111,6 @@ { "ImportPath": "gopkg.in/yaml.v2", "Rev": "53feefa2559fb8dfa8d81baad31be332c97d6c77" - }, - { - "ImportPath": "k8s.io/kubernetes/federation/apis/federation", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/federation/apis/federation/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/federation/apis/federation/v1beta1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/endpoints", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/errors", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/meta", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/meta/metatypes", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/pod", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/resource", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/service", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/testapi", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/unversioned", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/unversioned/validation", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/util", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/v1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/api/validation", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apimachinery", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apimachinery/registered", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/apps", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/apps/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/apps/v1alpha1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/authentication", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/authentication/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/authorization", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/authorization/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling/v1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/batch", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/batch/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/batch/v1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/certificates", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/certificates/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/componentconfig", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/componentconfig/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/extensions", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/extensions/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/imagepolicy", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/imagepolicy/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/imagepolicy/v1alpha1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/policy", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/policy/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/policy/v1alpha1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac/install", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/auth/user", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/capabilities", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/authorization/v1beta1/fake", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/autoscaling/v1/fake", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/batch/v1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/batch/v1/fake", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/core/v1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/core/v1/fake", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/extensions/v1beta1/fake", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/typed/policy/v1alpha1/fake", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/metrics", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/restclient", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/testing/core", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/transport", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/typed/discovery", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/typed/discovery/fake", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/unversioned/auth", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api/latest", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api/v1", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/conversion", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/conversion/queryparams", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/fields", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/kubelet/qos", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/kubelet/server/portforward", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/kubelet/types", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/labels", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/master/ports", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/runtime", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer/json", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer/protobuf", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer/recognizer", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer/streaming", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer/versioning", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/security/apparmor", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/selection", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/types", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/clock", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/config", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/crypto", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/diff", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/errors", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/flowcontrol", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/framer", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/hash", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/homedir", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/httpstream", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/integer", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/intstr", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/json", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/labels", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/net", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/net/sets", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/parsers", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/rand", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/runtime", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/sets", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/strategicpatch", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/testing", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/uuid", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/validation", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/validation/field", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/wait", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/yaml", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/version", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/watch", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/watch/versioned", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/third_party/forked/golang/json", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" - }, - { - "ImportPath": "k8s.io/kubernetes/third_party/forked/golang/reflect", - "Comment": "v1.4.0-alpha.3-189-g57ef2cc", - "Rev": "57ef2cce04875b7ba50cad2e13ad556a4cc3f30d" } ] } diff --git a/1.4/pkg/api/meta/interfaces.go b/1.4/pkg/api/meta/interfaces.go index e7dab402..652c379a 100644 --- a/1.4/pkg/api/meta/interfaces.go +++ b/1.4/pkg/api/meta/interfaces.go @@ -163,16 +163,16 @@ type RESTMapping struct { // TODO(caesarxuchao): Add proper multi-group support so that kinds & resources are // scoped to groups. See http://issues.k8s.io/12413 and http://issues.k8s.io/10009. type RESTMapper interface { - // KindFor takes a partial resource and returns back the single match. Returns an error if there are multiple matches + // KindFor takes a partial resource and returns the single match. Returns an error if there are multiple matches KindFor(resource unversioned.GroupVersionResource) (unversioned.GroupVersionKind, error) - // KindsFor takes a partial resource and returns back the list of potential kinds in priority order + // KindsFor takes a partial resource and returns the list of potential kinds in priority order KindsFor(resource unversioned.GroupVersionResource) ([]unversioned.GroupVersionKind, error) - // ResourceFor takes a partial resource and returns back the single match. Returns an error if there are multiple matches + // ResourceFor takes a partial resource and returns the single match. Returns an error if there are multiple matches ResourceFor(input unversioned.GroupVersionResource) (unversioned.GroupVersionResource, error) - // ResourcesFor takes a partial resource and returns back the list of potential resource in priority order + // ResourcesFor takes a partial resource and returns the list of potential resource in priority order ResourcesFor(input unversioned.GroupVersionResource) ([]unversioned.GroupVersionResource, error) // RESTMapping identifies a preferred resource mapping for the provided group kind. diff --git a/1.4/pkg/api/meta/restmapper.go b/1.4/pkg/api/meta/restmapper.go index 75b33ac7..94279255 100644 --- a/1.4/pkg/api/meta/restmapper.go +++ b/1.4/pkg/api/meta/restmapper.go @@ -189,7 +189,7 @@ func (m *DefaultRESTMapper) ResourceSingularizer(resourceType string) (string, e } if currSingular.Resource != singular.Resource { - return resourceType, fmt.Errorf("multiple possibile singular resources (%v) found for %v", resources, resourceType) + return resourceType, fmt.Errorf("multiple possible singular resources (%v) found for %v", resources, resourceType) } } diff --git a/1.4/pkg/api/pod/util.go b/1.4/pkg/api/pod/util.go index 7c953988..584d0dfd 100644 --- a/1.4/pkg/api/pod/util.go +++ b/1.4/pkg/api/pod/util.go @@ -30,7 +30,7 @@ const ( // TODO: to be de!eted after v1.3 is released. PodSpec has a dedicated Subdomain field. // The annotation value is a string specifying the subdomain e.g. "my-web-service" - // If specified, on the the pod itself, ".my-web-service..svc." would resolve to + // If specified, on the pod itself, ".my-web-service..svc." would resolve to // the pod's IP. // If there is a headless service named "my-web-service" in the same namespace as the pod, then, // .my-web-service..svc." would be resolved by the cluster DNS Server. diff --git a/1.4/pkg/api/register.go b/1.4/pkg/api/register.go index 00b9febd..1f57414d 100644 --- a/1.4/pkg/api/register.go +++ b/1.4/pkg/api/register.go @@ -45,12 +45,12 @@ var Unversioned = unversioned.GroupVersion{Group: "", Version: "v1"} // ParameterCodec handles versioning of objects that are converted to query parameters. var ParameterCodec = runtime.NewParameterCodec(Scheme) -// Kind takes an unqualified kind and returns back a Group qualified GroupKind +// Kind takes an unqualified kind and returns a Group qualified GroupKind func Kind(kind string) unversioned.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -// Resource takes an unqualified resource and returns back a Group qualified GroupResource +// Resource takes an unqualified resource and returns a Group qualified GroupResource func Resource(resource string) unversioned.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } @@ -62,7 +62,7 @@ var ( func init() { // TODO(lavalamp): move this call to scheme builder above. Can't - // remove it from here because lots of people inapropriately rely on it + // remove it from here because lots of people inappropriately rely on it // (specifically the unversioned time conversion). Can't have it in // both places because then it gets double registered. Consequence of // current state is that it only ever gets registered in the main diff --git a/1.4/pkg/api/resource_helpers.go b/1.4/pkg/api/resource_helpers.go index e53e3a85..c334c805 100644 --- a/1.4/pkg/api/resource_helpers.go +++ b/1.4/pkg/api/resource_helpers.go @@ -93,7 +93,7 @@ func GetPodReadyCondition(status PodStatus) *PodCondition { } // GetPodCondition extracts the provided condition from the given status and returns that. -// Returns nil and -1 if the condition is not present, and the the index of the located condition. +// Returns nil and -1 if the condition is not present, and the index of the located condition. func GetPodCondition(status *PodStatus, conditionType PodConditionType) (int, *PodCondition) { if status == nil { return -1, nil @@ -107,7 +107,7 @@ func GetPodCondition(status *PodStatus, conditionType PodConditionType) (int, *P } // GetNodeCondition extracts the provided condition from the given status and returns that. -// Returns nil and -1 if the condition is not present, and the the index of the located condition. +// Returns nil and -1 if the condition is not present, and the index of the located condition. func GetNodeCondition(status *NodeStatus, conditionType NodeConditionType) (int, *NodeCondition) { if status == nil { return -1, nil diff --git a/1.4/pkg/api/types.go b/1.4/pkg/api/types.go index 900caa24..5dffaef6 100644 --- a/1.4/pkg/api/types.go +++ b/1.4/pkg/api/types.go @@ -219,7 +219,7 @@ type VolumeSource struct { Quobyte *QuobyteVolumeSource `json:"quobyte,omitempty"` // FlexVolume represents a generic volume resource that is - // provisioned/attached using a exec based plugin. This is an alpha feature and may change in future. + // provisioned/attached using an exec based plugin. This is an alpha feature and may change in future. FlexVolume *FlexVolumeSource `json:"flexVolume,omitempty"` // Cinder represents a cinder volume attached and mounted on kubelets host machine @@ -271,7 +271,7 @@ type PersistentVolumeSource struct { // kubelet's host machine and then exposed to the pod. ISCSI *ISCSIVolumeSource `json:"iscsi,omitempty"` // FlexVolume represents a generic volume resource that is - // provisioned/attached using a exec based plugin. This is an alpha feature and may change in future. + // provisioned/attached using an exec based plugin. This is an alpha feature and may change in future. FlexVolume *FlexVolumeSource `json:"flexVolume,omitempty"` // Cinder represents a cinder volume attached and mounted on kubelets host machine Cinder *CinderVolumeSource `json:"cinder,omitempty"` @@ -530,7 +530,7 @@ type ISCSIVolumeSource struct { // Fibre Channel volumes can only be mounted as read/write once. // Fibre Channel volumes support ownership management and SELinux relabeling. type FCVolumeSource struct { - // Required: FC target world wide names (WWNs) + // Required: FC target worldwide names (WWNs) TargetWWNs []string `json:"targetWWNs"` // Required: FC target lun number Lun *int32 `json:"lun"` @@ -545,7 +545,7 @@ type FCVolumeSource struct { } // FlexVolume represents a generic volume resource that is -// provisioned/attached using a exec based plugin. This is an alpha feature and may change in future. +// provisioned/attached using an exec based plugin. This is an alpha feature and may change in future. type FlexVolumeSource struct { // Driver is the name of the driver to use for this volume. Driver string `json:"driver"` @@ -569,7 +569,7 @@ type FlexVolumeSource struct { // Represents a Persistent Disk resource in AWS. // // An AWS EBS disk must exist before mounting to a container. The disk -// must also be in the same AWS zone as the kubelet. A AWS EBS disk +// must also be in the same AWS zone as the kubelet. An AWS EBS disk // can only be mounted as read/write once. AWS EBS volumes support // ownership management and SELinux relabeling. type AWSElasticBlockStoreVolumeSource struct { diff --git a/1.4/pkg/api/unversioned/register.go b/1.4/pkg/api/unversioned/register.go index 9af05669..907188bc 100644 --- a/1.4/pkg/api/unversioned/register.go +++ b/1.4/pkg/api/unversioned/register.go @@ -19,7 +19,7 @@ package unversioned // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = GroupVersion{Group: "", Version: ""} -// Kind takes an unqualified kind and returns back a Group qualified GroupKind +// Kind takes an unqualified kind and returns a Group qualified GroupKind func Kind(kind string) GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } diff --git a/1.4/pkg/api/v1/generated.proto b/1.4/pkg/api/v1/generated.proto index 32fb099f..9552a5d5 100644 --- a/1.4/pkg/api/v1/generated.proto +++ b/1.4/pkg/api/v1/generated.proto @@ -796,7 +796,7 @@ message ExportOptions { // Fibre Channel volumes can only be mounted as read/write once. // Fibre Channel volumes support ownership management and SELinux relabeling. message FCVolumeSource { - // Required: FC target world wide names (WWNs) + // Required: FC target worldwide names (WWNs) repeated string targetWWNs = 1; // Required: FC target lun number @@ -814,7 +814,7 @@ message FCVolumeSource { } // FlexVolume represents a generic volume resource that is -// provisioned/attached using a exec based plugin. This is an alpha feature and may change in future. +// provisioned/attached using an exec based plugin. This is an alpha feature and may change in future. message FlexVolumeSource { // Driver is the name of the driver to use for this volume. optional string driver = 1; @@ -1248,7 +1248,7 @@ message NodeAffinity { repeated PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2; } -// NodeCondition contains condition infromation for a node. +// NodeCondition contains condition information for a node. message NodeCondition { // Type of node condition. optional string type = 1; @@ -1766,7 +1766,7 @@ message PersistentVolumeSource { optional FlockerVolumeSource flocker = 11; // FlexVolume represents a generic volume resource that is - // provisioned/attached using a exec based plugin. This is an + // provisioned/attached using an exec based plugin. This is an // alpha feature and may change in future. optional FlexVolumeSource flexVolume = 12; @@ -1804,7 +1804,7 @@ message PersistentVolumeSpec { // What happens to a persistent volume when released from its claim. // Valid options are Retain (default) and Recycle. - // Recyling must be supported by the volume plugin underlying this persistent volume. + // Recycling must be supported by the volume plugin underlying this persistent volume. // More info: http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#recycling-policy optional string persistentVolumeReclaimPolicy = 5; } @@ -3029,7 +3029,7 @@ message VolumeSource { optional RBDVolumeSource rbd = 11; // FlexVolume represents a generic volume resource that is - // provisioned/attached using a exec based plugin. This is an + // provisioned/attached using an exec based plugin. This is an // alpha feature and may change in future. optional FlexVolumeSource flexVolume = 12; diff --git a/1.4/pkg/api/v1/types.go b/1.4/pkg/api/v1/types.go index 5bc232d3..64c0e3f7 100644 --- a/1.4/pkg/api/v1/types.go +++ b/1.4/pkg/api/v1/types.go @@ -258,7 +258,7 @@ type VolumeSource struct { // More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md RBD *RBDVolumeSource `json:"rbd,omitempty" protobuf:"bytes,11,opt,name=rbd"` // FlexVolume represents a generic volume resource that is - // provisioned/attached using a exec based plugin. This is an + // provisioned/attached using an exec based plugin. This is an // alpha feature and may change in future. FlexVolume *FlexVolumeSource `json:"flexVolume,omitempty" protobuf:"bytes,12,opt,name=flexVolume"` // Cinder represents a cinder volume attached and mounted on kubelets host machine @@ -337,7 +337,7 @@ type PersistentVolumeSource struct { // Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running Flocker *FlockerVolumeSource `json:"flocker,omitempty" protobuf:"bytes,11,opt,name=flocker"` // FlexVolume represents a generic volume resource that is - // provisioned/attached using a exec based plugin. This is an + // provisioned/attached using an exec based plugin. This is an // alpha feature and may change in future. FlexVolume *FlexVolumeSource `json:"flexVolume,omitempty" protobuf:"bytes,12,opt,name=flexVolume"` // AzureFile represents an Azure File Service mount on the host and bind mount to the pod. @@ -391,7 +391,7 @@ type PersistentVolumeSpec struct { ClaimRef *ObjectReference `json:"claimRef,omitempty" protobuf:"bytes,4,opt,name=claimRef"` // What happens to a persistent volume when released from its claim. // Valid options are Retain (default) and Recycle. - // Recyling must be supported by the volume plugin underlying this persistent volume. + // Recycling must be supported by the volume plugin underlying this persistent volume. // More info: http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#recycling-policy PersistentVolumeReclaimPolicy PersistentVolumeReclaimPolicy `json:"persistentVolumeReclaimPolicy,omitempty" protobuf:"bytes,5,opt,name=persistentVolumeReclaimPolicy,casttype=PersistentVolumeReclaimPolicy"` } @@ -723,7 +723,7 @@ type QuobyteVolumeSource struct { } // FlexVolume represents a generic volume resource that is -// provisioned/attached using a exec based plugin. This is an alpha feature and may change in future. +// provisioned/attached using an exec based plugin. This is an alpha feature and may change in future. type FlexVolumeSource struct { // Driver is the name of the driver to use for this volume. Driver string `json:"driver" protobuf:"bytes,1,opt,name=driver"` @@ -861,7 +861,7 @@ type ISCSIVolumeSource struct { // Fibre Channel volumes can only be mounted as read/write once. // Fibre Channel volumes support ownership management and SELinux relabeling. type FCVolumeSource struct { - // Required: FC target world wide names (WWNs) + // Required: FC target worldwide names (WWNs) TargetWWNs []string `json:"targetWWNs" protobuf:"bytes,1,rep,name=targetWWNs"` // Required: FC target lun number Lun *int32 `json:"lun" protobuf:"varint,2,opt,name=lun"` @@ -2596,7 +2596,7 @@ const ( NodeNetworkUnavailable NodeConditionType = "NetworkUnavailable" ) -// NodeCondition contains condition infromation for a node. +// NodeCondition contains condition information for a node. type NodeCondition struct { // Type of node condition. Type NodeConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=NodeConditionType"` diff --git a/1.4/pkg/api/v1/types_swagger_doc_generated.go b/1.4/pkg/api/v1/types_swagger_doc_generated.go index 886ed425..a2552bdf 100644 --- a/1.4/pkg/api/v1/types_swagger_doc_generated.go +++ b/1.4/pkg/api/v1/types_swagger_doc_generated.go @@ -505,7 +505,7 @@ func (ExportOptions) SwaggerDoc() map[string]string { var map_FCVolumeSource = map[string]string{ "": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "targetWWNs": "Required: FC target world wide names (WWNs)", + "targetWWNs": "Required: FC target worldwide names (WWNs)", "lun": "Required: FC target lun number", "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "readOnly": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", @@ -516,7 +516,7 @@ func (FCVolumeSource) SwaggerDoc() map[string]string { } var map_FlexVolumeSource = map[string]string{ - "": "FlexVolume represents a generic volume resource that is provisioned/attached using a exec based plugin. This is an alpha feature and may change in future.", + "": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", "driver": "Driver is the name of the driver to use for this volume.", "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", "secretRef": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", @@ -825,7 +825,7 @@ func (NodeAffinity) SwaggerDoc() map[string]string { } var map_NodeCondition = map[string]string{ - "": "NodeCondition contains condition infromation for a node.", + "": "NodeCondition contains condition information for a node.", "type": "Type of node condition.", "status": "Status of the condition, one of True, False, Unknown.", "lastHeartbeatTime": "Last time we got an update on a given condition.", @@ -1092,7 +1092,7 @@ var map_PersistentVolumeSource = map[string]string{ "cephfs": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", "fc": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", "flocker": "Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running", - "flexVolume": "FlexVolume represents a generic volume resource that is provisioned/attached using a exec based plugin. This is an alpha feature and may change in future.", + "flexVolume": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", "azureFile": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", "vsphereVolume": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", "quobyte": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", @@ -1108,7 +1108,7 @@ var map_PersistentVolumeSpec = map[string]string{ "capacity": "A description of the persistent volume's resources and capacity. More info: http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#capacity", "accessModes": "AccessModes contains all ways the volume can be mounted. More info: http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes", "claimRef": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#binding", - "persistentVolumeReclaimPolicy": "What happens to a persistent volume when released from its claim. Valid options are Retain (default) and Recycle. Recyling must be supported by the volume plugin underlying this persistent volume. More info: http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#recycling-policy", + "persistentVolumeReclaimPolicy": "What happens to a persistent volume when released from its claim. Valid options are Retain (default) and Recycle. Recycling must be supported by the volume plugin underlying this persistent volume. More info: http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#recycling-policy", } func (PersistentVolumeSpec) SwaggerDoc() map[string]string { @@ -1771,7 +1771,7 @@ var map_VolumeSource = map[string]string{ "glusterfs": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md", "persistentVolumeClaim": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#persistentvolumeclaims", "rbd": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md", - "flexVolume": "FlexVolume represents a generic volume resource that is provisioned/attached using a exec based plugin. This is an alpha feature and may change in future.", + "flexVolume": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", "cinder": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", "cephfs": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", "flocker": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", diff --git a/1.4/pkg/api/validation/validation.go b/1.4/pkg/api/validation/validation.go index 22bb72c2..16dd326b 100644 --- a/1.4/pkg/api/validation/validation.go +++ b/1.4/pkg/api/validation/validation.go @@ -365,7 +365,7 @@ func ValidateObjectMeta(meta *api.ObjectMeta, requiresNamespace bool, nameFn Val } // If the generated name validates, but the calculated value does not, it's a problem with generation, and we // report it here. This may confuse users, but indicates a programming bug and still must be validated. - // If there are multiple fields out of which one is required then add a or as a separator + // If there are multiple fields out of which one is required then add an or as a separator if len(meta.Name) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("name"), "name or generateName is required")) } else { @@ -624,7 +624,7 @@ func validateVolumeSource(source *api.VolumeSource, fldPath *field.Path) field.E } if source.FlexVolume != nil { if numVolumes > 0 { - allErrs = append(allErrs, field.Forbidden(fldPath.Child("flexVolume"), "may not specifiy more than 1 volume type")) + allErrs = append(allErrs, field.Forbidden(fldPath.Child("flexVolume"), "may not specify more than 1 volume type")) } else { numVolumes++ allErrs = append(allErrs, validateFlexVolumeSource(source.FlexVolume, fldPath.Child("flexVolume"))...) @@ -632,7 +632,7 @@ func validateVolumeSource(source *api.VolumeSource, fldPath *field.Path) field.E } if source.ConfigMap != nil { if numVolumes > 0 { - allErrs = append(allErrs, field.Forbidden(fldPath.Child("configMap"), "may not specifiy more than 1 volume type")) + allErrs = append(allErrs, field.Forbidden(fldPath.Child("configMap"), "may not specify more than 1 volume type")) } else { numVolumes++ allErrs = append(allErrs, validateConfigMapVolumeSource(source.ConfigMap, fldPath.Child("configMap"))...) @@ -812,11 +812,11 @@ func validateNFSVolumeSource(nfs *api.NFSVolumeSource, fldPath *field.Path) fiel func validateQuobyteVolumeSource(quobyte *api.QuobyteVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(quobyte.Registry) == 0 { - allErrs = append(allErrs, field.Required(fldPath.Child("registry"), "must be a host:port pair or multiple pairs seperated by commas")) + allErrs = append(allErrs, field.Required(fldPath.Child("registry"), "must be a host:port pair or multiple pairs separated by commas")) } else { for _, hostPortPair := range strings.Split(quobyte.Registry, ",") { if _, _, err := net.SplitHostPort(hostPortPair); err != nil { - allErrs = append(allErrs, field.Invalid(fldPath.Child("registry"), quobyte.Registry, "must be a host:port pair or multiple pairs seperated by commas")) + allErrs = append(allErrs, field.Invalid(fldPath.Child("registry"), quobyte.Registry, "must be a host:port pair or multiple pairs separated by commas")) } } } diff --git a/1.4/pkg/util/config/feature_gate.go b/1.4/pkg/util/config/feature_gate.go index 3daf48ce..fafa53bd 100644 --- a/1.4/pkg/util/config/feature_gate.go +++ b/1.4/pkg/util/config/feature_gate.go @@ -50,7 +50,7 @@ var ( knownFeatures = map[string]featureSpec{ allAlphaGate: {false, alpha}, externalTrafficLocalOnly: {false, alpha}, - appArmor: {true, alpha}, + appArmor: {true, beta}, dynamicKubeletConfig: {false, alpha}, dynamicVolumeProvisioning: {true, alpha}, } @@ -93,7 +93,7 @@ type FeatureGate interface { // MyFeature() bool // owner: @timstclair - // alpha: v1.4 + // beta: v1.4 AppArmor() bool // owner: @girishkalele diff --git a/1.4/tools/clientcmd/client_config.go b/1.4/tools/clientcmd/client_config.go index e92d38e5..d1d9bc2d 100644 --- a/1.4/tools/clientcmd/client_config.go +++ b/1.4/tools/clientcmd/client_config.go @@ -329,7 +329,7 @@ func (config *DirectClientConfig) getCluster() clientcmdapi.Cluster { clusterInfoName := config.getClusterName() var mergedClusterInfo clientcmdapi.Cluster - mergo.Merge(&mergedClusterInfo, DefaultCluster) + mergo.Merge(&mergedClusterInfo, config.overrides.ClusterDefaults) mergo.Merge(&mergedClusterInfo, EnvVarCluster) if configClusterInfo, exists := clusterInfos[clusterInfoName]; exists { mergo.Merge(&mergedClusterInfo, configClusterInfo) diff --git a/1.4/tools/clientcmd/client_config_test.go b/1.4/tools/clientcmd/client_config_test.go index 6c85d133..49f7e76c 100644 --- a/1.4/tools/clientcmd/client_config_test.go +++ b/1.4/tools/clientcmd/client_config_test.go @@ -304,11 +304,13 @@ func TestCreateCleanWithPrefix(t *testing.T) { cleanConfig.Server = tc.server config.Clusters["clean"] = cleanConfig - clientBuilder := NewNonInteractiveClientConfig(*config, "clean", &ConfigOverrides{}, nil) + clientBuilder := NewNonInteractiveClientConfig(*config, "clean", &ConfigOverrides{ + ClusterDefaults: DefaultCluster, + }, nil) clientConfig, err := clientBuilder.ClientConfig() if err != nil { - t.Errorf("Unexpected error: %v", err) + t.Fatalf("Unexpected error: %v", err) } matchStringArg(tc.host, clientConfig.Host, t) @@ -321,7 +323,7 @@ func TestCreateCleanDefault(t *testing.T) { clientConfig, err := clientBuilder.ClientConfig() if err != nil { - t.Errorf("Unexpected error: %v", err) + t.Fatalf("Unexpected error: %v", err) } matchStringArg(config.Clusters["clean"].Server, clientConfig.Host, t) @@ -329,14 +331,42 @@ func TestCreateCleanDefault(t *testing.T) { matchStringArg(config.AuthInfos["clean"].Token, clientConfig.BearerToken, t) } -func TestCreateMissingContext(t *testing.T) { +func TestCreateCleanDefaultCluster(t *testing.T) { + config := createValidTestConfig() + clientBuilder := NewDefaultClientConfig(*config, &ConfigOverrides{ + ClusterDefaults: DefaultCluster, + }) + + clientConfig, err := clientBuilder.ClientConfig() + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } + + matchStringArg(config.Clusters["clean"].Server, clientConfig.Host, t) + matchBoolArg(config.Clusters["clean"].InsecureSkipTLSVerify, clientConfig.Insecure, t) + matchStringArg(config.AuthInfos["clean"].Token, clientConfig.BearerToken, t) +} + +func TestCreateMissingContextNoDefault(t *testing.T) { const expectedErrorContains = "Context was not found for specified context" config := createValidTestConfig() clientBuilder := NewNonInteractiveClientConfig(*config, "not-present", &ConfigOverrides{}, nil) + _, err := clientBuilder.ClientConfig() + if err == nil { + t.Fatalf("Unexpected error: %v", err) + } +} +func TestCreateMissingContext(t *testing.T) { + const expectedErrorContains = "Context was not found for specified context" + config := createValidTestConfig() + clientBuilder := NewNonInteractiveClientConfig(*config, "not-present", &ConfigOverrides{ + ClusterDefaults: DefaultCluster, + }, nil) + clientConfig, err := clientBuilder.ClientConfig() if err != nil { - t.Errorf("Unexpected error: %v", err) + t.Fatalf("Unexpected error: %v", err) } expectedConfig := &rest.Config{Host: clientConfig.Host} @@ -344,7 +374,6 @@ func TestCreateMissingContext(t *testing.T) { if !reflect.DeepEqual(expectedConfig, clientConfig) { t.Errorf("Expected %#v, got %#v", expectedConfig, clientConfig) } - } func matchBoolArg(expected, got bool, t *testing.T) { diff --git a/1.4/tools/clientcmd/overrides.go b/1.4/tools/clientcmd/overrides.go index 6cbf5886..b5d88ce4 100644 --- a/1.4/tools/clientcmd/overrides.go +++ b/1.4/tools/clientcmd/overrides.go @@ -27,10 +27,12 @@ import ( // ConfigOverrides holds values that should override whatever information is pulled from the actual Config object. You can't // simply use an actual Config object, because Configs hold maps, but overrides are restricted to "at most one" type ConfigOverrides struct { - AuthInfo clientcmdapi.AuthInfo - ClusterInfo clientcmdapi.Cluster - Context clientcmdapi.Context - CurrentContext string + AuthInfo clientcmdapi.AuthInfo + // ClusterDefaults are applied before the configured cluster info is loaded. + ClusterDefaults clientcmdapi.Cluster + ClusterInfo clientcmdapi.Cluster + Context clientcmdapi.Context + CurrentContext string } // ConfigOverrideFlags holds the flag names to be used for binding command line flags. Notice that this structure tightly diff --git a/README.md b/README.md index 1600c4c0..86ebf568 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,17 @@ client-go has the same release cycle as the Kubernetes main repository. For exam ### How to get it -You can `go get` a release of client-go, e.g., `go get k8s.io/client-go/1.4/...` for the whole thing or `go get k8s.io/client-go/1.4/kubernetes` if you just need the clientset. +You can `go get` to get a release of client-go, e.g., `go get k8s.io/client-go/1.4/...` or `go get k8s.io/client-go/1.4/kubernetes`. + +### How to use it + +If your application runs in a Pod in the cluster, please refer to the in-cluster [example](examples/in-cluster/main.go), otherwise please refer to the out-of-cluster [example](examples/out-of-cluster/main.go). + +### Dependency management + +If your application depends on a package that client-go depends on, and you let the Go compiler find the dependency in `GOPATH`, you will end up with duplicated dependencies: one copy from the `GOPATH`, and one from the vendor folder of client-go. This will cause unexpected runtime error like flag redefinition, since the go compiler ends up importing both packages separately, even if they are exactly the same thing. If this happens, you can either +* run `godep restore` ([godep](https://github.com/tools/godep)) in the client-go/1.4 folder, then remove the vendor folder of client-go. Then the packages in your GOPATH will be the only copy +* or run `godep save` in your application folder to flatten all dependencies. ### Reporting bugs diff --git a/copy.sh b/copy.sh index f94629b4..d4e9ee9c 100755 --- a/copy.sh +++ b/copy.sh @@ -26,6 +26,8 @@ CLIENT_REPO_FROM_SRC="${2:-"k8s.io/client-go/${RELEASE}"}" CLIENT_REPO="${MAIN_REPO}/staging/src/${CLIENT_REPO_FROM_SRC}" CLIENT_REPO_TEMP="${CLIENT_REPO}"/_tmp +DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + # working in the ${CLIENT_REPO_TEMP} so 'godep save' won't complain about dirty working tree. echo "creating the _tmp directory" mkdir -p "${CLIENT_REPO_TEMP}" @@ -55,10 +57,10 @@ mkcp "/pkg/client/unversioned/portforward" "/pkg/client/unversioned" # remove this test because it imports the internal clientset rm "${CLIENT_REPO_TEMP}"/pkg/client/unversioned/portforward/portforward_test.go -pushd "${CLIENT_REPO_TEMP}" +pushd "${CLIENT_REPO_TEMP}" > /dev/null echo "generating vendor/" GO15VENDOREXPERIMENT=1 godep save ./... -popd +popd > /dev/null echo "move to the client repo" # clean the ${CLIENT_REPO} @@ -76,6 +78,9 @@ mv "${CLIENT_REPO}"/vendor "${CLIENT_REPO}"/_vendor # TODO: probably we should convert the README.md a doc.go find ./ -name "README.md" -delete +echo "rewriting Godeps.json" +go run "${DIR}/godeps-json-updater.go" --godeps-file="${CLIENT_REPO}/Godeps/Godeps.json" --client-go-import-path="${CLIENT_REPO_FROM_SRC}" + echo "rewriting imports" grep -Rl "\"${MAIN_REPO_FROM_SRC}" ./ | grep ".go" | grep -v "vendor/" | xargs sed -i "s|\"${MAIN_REPO_FROM_SRC}|\"${CLIENT_REPO_FROM_SRC}|g" diff --git a/examples/in-cluster/main.go b/examples/in-cluster/main.go new file mode 100644 index 00000000..d7858761 --- /dev/null +++ b/examples/in-cluster/main.go @@ -0,0 +1,47 @@ +/* +Copyright 2016 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 main + +import ( + "fmt" + "time" + + "k8s.io/client-go/1.4/kubernetes" + "k8s.io/client-go/1.4/pkg/api" + "k8s.io/client-go/1.4/rest" +) + +func main() { + // creates the in-cluster config + config, err := rest.InClusterConfig() + if err != nil { + panic(err.Error()) + } + // creates the clientset + clientset, err := kubernetes.NewForConfig(config) + if err != nil { + panic(err.Error()) + } + for { + pods, err := clientset.Core().Pods("").List(api.ListOptions{}) + if err != nil { + panic(err.Error()) + } + fmt.Printf("There are %d pods in the cluster\n", len(pods.Items)) + time.Sleep(10 * time.Second) + } +} diff --git a/examples/out-of-cluster/main.go b/examples/out-of-cluster/main.go new file mode 100644 index 00000000..50875d14 --- /dev/null +++ b/examples/out-of-cluster/main.go @@ -0,0 +1,53 @@ +/* +Copyright 2016 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 main + +import ( + "flag" + "fmt" + "time" + + "k8s.io/client-go/1.4/kubernetes" + "k8s.io/client-go/1.4/pkg/api" + "k8s.io/client-go/1.4/tools/clientcmd" +) + +var ( + kubeconfig = flag.String("kubeconfig", "./config", "absolute path to the kubeconfig file") +) + +func main() { + flag.Parse() + // uses the current context in kubeconfig + config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) + if err != nil { + panic(err.Error()) + } + // creates the clientset + clientset, err := kubernetes.NewForConfig(config) + if err != nil { + panic(err.Error()) + } + for { + pods, err := clientset.Core().Pods("").List(api.ListOptions{}) + if err != nil { + panic(err.Error()) + } + fmt.Printf("There are %d pods in the cluster\n", len(pods.Items)) + time.Sleep(10 * time.Second) + } +} diff --git a/godeps-json-updater.go b/godeps-json-updater.go new file mode 100644 index 00000000..a9a66d37 --- /dev/null +++ b/godeps-json-updater.go @@ -0,0 +1,88 @@ +/* +Copyright 2016 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 main + +import ( + "encoding/json" + "flag" + "log" + "os" + "strings" +) + +var ( + godepsFile = flag.String("godeps-file", "", "absolute path to Godeps.json") + clientRepoImportPath = flag.String("client-go-import-path", "", "import path to a version of client-go, e.g., k8s.io/client-go/1.4") +) + +type Dependency struct { + ImportPath string + Comment string `json:",omitempty"` + Rev string +} + +type Godeps struct { + ImportPath string + GoVersion string + GodepVersion string + Packages []string `json:",omitempty"` // Arguments to save, if any. + Deps []Dependency +} + +// rewrites the Godeps.ImportPath, removes the Deps whose ImportPath contains "k8s.io/kubernetes" +func main() { + flag.Parse() + var g Godeps + if len(*godepsFile) == 0 { + log.Fatalf("absolute ath to Godeps.json is required") + } + if len(*clientRepoImportPath) == 0 { + log.Fatalf("import path to a version of client-go is required") + } + f, err := os.OpenFile(*godepsFile, os.O_RDWR, 0666) + if err != nil { + log.Fatalf("cannot open file %q: %v", *godepsFile, err) + } + defer f.Close() + err = json.NewDecoder(f).Decode(&g) + if err != nil { + log.Fatalf("Unable to parse %q: %v", *godepsFile, err) + } + // rewrites the Godeps.ImportPath + g.ImportPath = *clientRepoImportPath + // removes the Deps whose ImportPath contains "k8s.io/kubernetes" + i := 0 + for _, dep := range g.Deps { + if strings.Contains(dep.ImportPath, "k8s.io/kubernetes") { + continue + } + g.Deps[i] = dep + i++ + } + g.Deps = g.Deps[:i] + b, err := json.MarshalIndent(g, "", "\t") + if err != nil { + log.Fatal(err) + } + n, err := f.WriteAt(append(b, '\n'), 0) + if err != nil { + log.Fatal(err) + } + if err := f.Truncate(int64(n)); err != nil { + log.Fatal(err) + } +}