diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 07d6110b2..e87d0de05 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -644,1095 +644,1099 @@ }, { "ImportPath": "k8s.io/apimachinery/pkg/api/equality", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/errors", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/meta", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/validation", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/validation/path", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/validation", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/cache", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/clock", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/diff", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/framer", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/naming", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/proxy", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/rand", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/uuid", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/waitgroup", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/version", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "cd53e6e3b3a5f792de51f8d95fb17f46f0627abf" + "Rev": "d128f427fda3db9a4d1ebbf3d54b4949a3356662" }, { "ImportPath": "k8s.io/apiserver/pkg/admission", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/configuration", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/initializer", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/metrics", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/initialization", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/config", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/errors", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/generic", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/mutating", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/namespace", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/request", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/rules", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/validating", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver/install", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver/v1alpha1", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/audit", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/audit/install", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/apis/audit/v1", + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/audit/v1alpha1", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/audit/v1beta1", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/audit/validation", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/audit", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/audit/policy", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/authenticator", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/authenticatorfactory", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/group", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/anonymous", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/bearertoken", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/headerrequest", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/union", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/websocket", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/x509", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/serviceaccount", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/token/tokenfile", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/user", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authorization/authorizer", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authorization/authorizerfactory", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/authorization/union", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/discovery", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/filters", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers/negotiation", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers/responsewriters", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/metrics", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/openapi", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/request", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/features", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/registry/generic", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/registry/generic/registry", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/registry/rest", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/server", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/server/filters", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/server/healthz", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/server/httplog", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/server/mux", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/server/options", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/server/resourceconfig", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/server/routes", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/server/routes/data/swagger", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/server/storage", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/cacher", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/errors", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/etcd", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/etcd/metrics", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/etcd/util", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/etcd3", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/names", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/storagebackend", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/storagebackend/factory", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/value", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/util/dryrun", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/util/feature", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/util/flag", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/util/flushwriter", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/util/logs", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/util/openapi", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/util/proxy", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/util/trace", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/util/webhook", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/pkg/util/wsstream", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/plugin/pkg/audit/buffered", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/plugin/pkg/audit/log", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/plugin/pkg/audit/truncate", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/plugin/pkg/audit/webhook", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/plugin/pkg/authenticator/token/webhook", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/apiserver/plugin/pkg/authorizer/webhook", - "Rev": "fa33d434286df192673ef90f374136f1315a8995" + "Rev": "db69d648bf1a20a8923eeb3c4c1be7fde5dbc08f" }, { "ImportPath": "k8s.io/client-go/discovery", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/discovery/fake", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/apps", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1beta2", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/batch", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/batch/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/batch/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/batch/v2alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/certificates", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/certificates/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/coordination", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/coordination/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/core", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/core/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/events", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/events/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/extensions", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/extensions/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/internalinterfaces", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/networking", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/networking/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/policy", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/policy/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/rbac", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/scheduling", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/scheduling/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/settings", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/settings/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/storage", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/scheme", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/coordination/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1beta2", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/autoscaling/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/batch/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/batch/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/batch/v2alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/certificates/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/coordination/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/core/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/events/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/extensions/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/networking/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/policy/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/scheduling/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/settings/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/pkg/apis/clientauthentication", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/pkg/version", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/plugin/pkg/client/auth/exec", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/rest", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/rest/watch", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/testing", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/tools/auth", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/tools/cache", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/tools/metrics", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/tools/pager", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/tools/reference", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/transport", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/util/buffer", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/util/cert", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/util/connrotation", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/util/flowcontrol", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/util/homedir", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/util/integer", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/util/retry", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/client-go/util/workqueue", - "Rev": "02384dbe123ff097a279965297f327a72ebefb72" + "Rev": "bdfc4cfc125f556bfe46fff68207767a605b64ed" }, { "ImportPath": "k8s.io/kube-openapi/pkg/aggregator", diff --git a/vendor/k8s.io/apimachinery/pkg/labels/selector.go b/vendor/k8s.io/apimachinery/pkg/labels/selector.go index b301b4284..374d2ef13 100644 --- a/vendor/k8s.io/apimachinery/pkg/labels/selector.go +++ b/vendor/k8s.io/apimachinery/pkg/labels/selector.go @@ -166,7 +166,6 @@ func NewRequirement(key string, op selection.Operator, vals []string) (*Requirem return nil, err } } - sort.Strings(vals) return &Requirement{key: key, operator: op, strValues: vals}, nil } @@ -299,7 +298,9 @@ func (r *Requirement) String() string { if len(r.strValues) == 1 { buffer.WriteString(r.strValues[0]) } else { // only > 1 since == 0 prohibited by NewRequirement - buffer.WriteString(strings.Join(r.strValues, ",")) + // normalizes value order on output, without mutating the in-memory selector representation + // also avoids normalization when it is not required, and ensures we do not mutate shared data + buffer.WriteString(strings.Join(safeSort(r.strValues), ",")) } switch r.operator { @@ -309,6 +310,17 @@ func (r *Requirement) String() string { return buffer.String() } +// safeSort sort input strings without modification +func safeSort(in []string) []string { + if sort.StringsAreSorted(in) { + return in + } + out := make([]string, len(in)) + copy(out, in) + sort.Strings(out) + return out +} + // Add adds requirements to the selector. It copies the current selector returning a new one func (lsel internalSelector) Add(reqs ...Requirement) Selector { var sel internalSelector diff --git a/vendor/k8s.io/apiserver/pkg/admission/attributes.go b/vendor/k8s.io/apiserver/pkg/admission/attributes.go index 7272e888b..c8973cc62 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/attributes.go +++ b/vendor/k8s.io/apiserver/pkg/admission/attributes.go @@ -34,6 +34,7 @@ type attributesRecord struct { resource schema.GroupVersionResource subresource string operation Operation + dryRun bool object runtime.Object oldObject runtime.Object userInfo user.Info @@ -44,7 +45,7 @@ type attributesRecord struct { annotationsLock sync.RWMutex } -func NewAttributesRecord(object runtime.Object, oldObject runtime.Object, kind schema.GroupVersionKind, namespace, name string, resource schema.GroupVersionResource, subresource string, operation Operation, userInfo user.Info) Attributes { +func NewAttributesRecord(object runtime.Object, oldObject runtime.Object, kind schema.GroupVersionKind, namespace, name string, resource schema.GroupVersionResource, subresource string, operation Operation, dryRun bool, userInfo user.Info) Attributes { return &attributesRecord{ kind: kind, namespace: namespace, @@ -52,6 +53,7 @@ func NewAttributesRecord(object runtime.Object, oldObject runtime.Object, kind s resource: resource, subresource: subresource, operation: operation, + dryRun: dryRun, object: object, oldObject: oldObject, userInfo: userInfo, @@ -82,6 +84,10 @@ func (record *attributesRecord) GetOperation() Operation { return record.operation } +func (record *attributesRecord) IsDryRun() bool { + return record.dryRun +} + func (record *attributesRecord) GetObject() runtime.Object { return record.object } diff --git a/vendor/k8s.io/apiserver/pkg/admission/interfaces.go b/vendor/k8s.io/apiserver/pkg/admission/interfaces.go index 68ef558da..a17c28990 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/interfaces.go +++ b/vendor/k8s.io/apiserver/pkg/admission/interfaces.go @@ -41,6 +41,11 @@ type Attributes interface { GetSubresource() string // GetOperation is the operation being performed GetOperation() Operation + // IsDryRun indicates that modifications will definitely not be persisted for this request. This is to prevent + // admission controllers with side effects and a method of reconciliation from being overwhelmed. + // However, a value of false for this does not mean that the modification will be persisted, because it + // could still be rejected by a subsequent validation step. + IsDryRun() bool // GetObject is the object from the incoming request prior to default values being applied GetObject() runtime.Object // GetOldObject is the existing object. Only populated for UPDATE requests. diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror.go index f37dec017..df38afdcb 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror.go @@ -45,3 +45,9 @@ func ToStatusErr(webhookName string, result *metav1.Status) *apierrors.StatusErr ErrStatus: *result, } } + +// NewDryRunUnsupportedErr returns a StatusError with information about the webhook plugin +func NewDryRunUnsupportedErr(webhookName string) *apierrors.StatusError { + reason := fmt.Sprintf("admission webhook %q does not support dry run", webhookName) + return apierrors.NewBadRequest(reason) +} diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go index 88e23c25d..64e6851f8 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go @@ -82,6 +82,11 @@ func (a *mutatingDispatcher) Dispatch(ctx context.Context, attr *generic.Version // note that callAttrMutatingHook updates attr func (a *mutatingDispatcher) callAttrMutatingHook(ctx context.Context, h *v1beta1.Webhook, attr *generic.VersionedAttributes) error { + if attr.IsDryRun() { + // TODO: support this + webhookerrors.NewDryRunUnsupportedErr(h.Name) + } + // Make the webhook request request := request.CreateAdmissionReview(attr) client, err := a.cm.HookClient(h) diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/dispatcher.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/dispatcher.go index 528d79a87..74fd18680 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/dispatcher.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/dispatcher.go @@ -97,6 +97,11 @@ func (d *validatingDispatcher) Dispatch(ctx context.Context, attr *generic.Versi } func (d *validatingDispatcher) callHook(ctx context.Context, h *v1beta1.Webhook, attr *generic.VersionedAttributes) error { + if attr.IsDryRun() { + // TODO: support this + webhookerrors.NewDryRunUnsupportedErr(h.Name) + } + // Make the webhook request request := request.CreateAdmissionReview(attr) client, err := d.cm.HookClient(h) diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/install/install.go b/vendor/k8s.io/apiserver/pkg/apis/audit/install/install.go index 026f82225..6e7d5bc82 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/audit/install/install.go +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/install/install.go @@ -22,6 +22,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apiserver/pkg/apis/audit" + "k8s.io/apiserver/pkg/apis/audit/v1" "k8s.io/apiserver/pkg/apis/audit/v1alpha1" "k8s.io/apiserver/pkg/apis/audit/v1beta1" ) @@ -29,7 +30,8 @@ import ( // Install registers the API group and adds types to a scheme func Install(scheme *runtime.Scheme) { utilruntime.Must(audit.AddToScheme(scheme)) + utilruntime.Must(v1.AddToScheme(scheme)) utilruntime.Must(v1beta1.AddToScheme(scheme)) utilruntime.Must(v1alpha1.AddToScheme(scheme)) - utilruntime.Must(scheme.SetVersionPriority(v1beta1.SchemeGroupVersion, v1alpha1.SchemeGroupVersion)) + utilruntime.Must(scheme.SetVersionPriority(v1.SchemeGroupVersion, v1beta1.SchemeGroupVersion, v1alpha1.SchemeGroupVersion)) } diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1/doc.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/doc.go new file mode 100644 index 000000000..f25596153 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/doc.go @@ -0,0 +1,23 @@ +/* +Copyright 2018 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. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/audit +// +k8s:openapi-gen=true +// +k8s:defaulter-gen=TypeMeta + +// +groupName=audit.k8s.io +package v1 diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go new file mode 100644 index 000000000..c58e6ba8c --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go @@ -0,0 +1,2854 @@ +/* +Copyright 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. +*/ + +// Code generated by protoc-gen-gogo. +// source: k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.proto +// DO NOT EDIT! + +/* + Package v1 is a generated protocol buffer package. + + It is generated from these files: + k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.proto + + It has these top-level messages: + Event + EventList + GroupResources + ObjectReference + Policy + PolicyList + PolicyRule +*/ +package v1 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import k8s_io_api_authentication_v1 "k8s.io/api/authentication/v1" +import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +import k8s_io_apimachinery_pkg_runtime "k8s.io/apimachinery/pkg/runtime" + +import k8s_io_apimachinery_pkg_types "k8s.io/apimachinery/pkg/types" + +import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *Event) Reset() { *m = Event{} } +func (*Event) ProtoMessage() {} +func (*Event) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + +func (m *EventList) Reset() { *m = EventList{} } +func (*EventList) ProtoMessage() {} +func (*EventList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func (m *GroupResources) Reset() { *m = GroupResources{} } +func (*GroupResources) ProtoMessage() {} +func (*GroupResources) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func (m *ObjectReference) Reset() { *m = ObjectReference{} } +func (*ObjectReference) ProtoMessage() {} +func (*ObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } + +func (m *Policy) Reset() { *m = Policy{} } +func (*Policy) ProtoMessage() {} +func (*Policy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } + +func (m *PolicyList) Reset() { *m = PolicyList{} } +func (*PolicyList) ProtoMessage() {} +func (*PolicyList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } + +func (m *PolicyRule) Reset() { *m = PolicyRule{} } +func (*PolicyRule) ProtoMessage() {} +func (*PolicyRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } + +func init() { + proto.RegisterType((*Event)(nil), "k8s.io.apiserver.pkg.apis.audit.v1.Event") + proto.RegisterType((*EventList)(nil), "k8s.io.apiserver.pkg.apis.audit.v1.EventList") + proto.RegisterType((*GroupResources)(nil), "k8s.io.apiserver.pkg.apis.audit.v1.GroupResources") + proto.RegisterType((*ObjectReference)(nil), "k8s.io.apiserver.pkg.apis.audit.v1.ObjectReference") + proto.RegisterType((*Policy)(nil), "k8s.io.apiserver.pkg.apis.audit.v1.Policy") + proto.RegisterType((*PolicyList)(nil), "k8s.io.apiserver.pkg.apis.audit.v1.PolicyList") + proto.RegisterType((*PolicyRule)(nil), "k8s.io.apiserver.pkg.apis.audit.v1.PolicyRule") +} +func (m *Event) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Event) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Level))) + i += copy(dAtA[i:], m.Level) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.AuditID))) + i += copy(dAtA[i:], m.AuditID) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Stage))) + i += copy(dAtA[i:], m.Stage) + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RequestURI))) + i += copy(dAtA[i:], m.RequestURI) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Verb))) + i += copy(dAtA[i:], m.Verb) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.User.Size())) + n1, err := m.User.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + if m.ImpersonatedUser != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ImpersonatedUser.Size())) + n2, err := m.ImpersonatedUser.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if len(m.SourceIPs) > 0 { + for _, s := range m.SourceIPs { + dAtA[i] = 0x42 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if m.ObjectRef != nil { + dAtA[i] = 0x4a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectRef.Size())) + n3, err := m.ObjectRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if m.ResponseStatus != nil { + dAtA[i] = 0x52 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ResponseStatus.Size())) + n4, err := m.ResponseStatus.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + if m.RequestObject != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RequestObject.Size())) + n5, err := m.RequestObject.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + } + if m.ResponseObject != nil { + dAtA[i] = 0x62 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ResponseObject.Size())) + n6, err := m.ResponseObject.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } + dAtA[i] = 0x6a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RequestReceivedTimestamp.Size())) + n7, err := m.RequestReceivedTimestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + dAtA[i] = 0x72 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.StageTimestamp.Size())) + n8, err := m.StageTimestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + if len(m.Annotations) > 0 { + keysForAnnotations := make([]string, 0, len(m.Annotations)) + for k := range m.Annotations { + keysForAnnotations = append(keysForAnnotations, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) + for _, k := range keysForAnnotations { + dAtA[i] = 0x7a + i++ + v := m.Annotations[string(k)] + mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + dAtA[i] = 0x82 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UserAgent))) + i += copy(dAtA[i:], m.UserAgent) + return i, nil +} + +func (m *EventList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n9, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *GroupResources) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GroupResources) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Group))) + i += copy(dAtA[i:], m.Group) + if len(m.Resources) > 0 { + for _, s := range m.Resources { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.ResourceNames) > 0 { + for _, s := range m.ResourceNames { + dAtA[i] = 0x1a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func (m *ObjectReference) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ObjectReference) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource))) + i += copy(dAtA[i:], m.Resource) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) + i += copy(dAtA[i:], m.Namespace) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UID))) + i += copy(dAtA[i:], m.UID) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup))) + i += copy(dAtA[i:], m.APIGroup) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion))) + i += copy(dAtA[i:], m.APIVersion) + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion))) + i += copy(dAtA[i:], m.ResourceVersion) + dAtA[i] = 0x42 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Subresource))) + i += copy(dAtA[i:], m.Subresource) + return i, nil +} + +func (m *Policy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Policy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n10, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + if len(m.Rules) > 0 { + for _, msg := range m.Rules { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.OmitStages) > 0 { + for _, s := range m.OmitStages { + dAtA[i] = 0x1a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func (m *PolicyList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PolicyList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n11, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *PolicyRule) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PolicyRule) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Level))) + i += copy(dAtA[i:], m.Level) + if len(m.Users) > 0 { + for _, s := range m.Users { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.UserGroups) > 0 { + for _, s := range m.UserGroups { + dAtA[i] = 0x1a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.Verbs) > 0 { + for _, s := range m.Verbs { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.Resources) > 0 { + for _, msg := range m.Resources { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Namespaces) > 0 { + for _, s := range m.Namespaces { + dAtA[i] = 0x32 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.NonResourceURLs) > 0 { + for _, s := range m.NonResourceURLs { + dAtA[i] = 0x3a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.OmitStages) > 0 { + for _, s := range m.OmitStages { + dAtA[i] = 0x42 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Event) Size() (n int) { + var l int + _ = l + l = len(m.Level) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.AuditID) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Stage) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.RequestURI) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Verb) + n += 1 + l + sovGenerated(uint64(l)) + l = m.User.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.ImpersonatedUser != nil { + l = m.ImpersonatedUser.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.SourceIPs) > 0 { + for _, s := range m.SourceIPs { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.ObjectRef != nil { + l = m.ObjectRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ResponseStatus != nil { + l = m.ResponseStatus.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.RequestObject != nil { + l = m.RequestObject.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ResponseObject != nil { + l = m.ResponseObject.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.RequestReceivedTimestamp.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.StageTimestamp.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Annotations) > 0 { + for k, v := range m.Annotations { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + l = len(m.UserAgent) + n += 2 + l + sovGenerated(uint64(l)) + return n +} + +func (m *EventList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *GroupResources) Size() (n int) { + var l int + _ = l + l = len(m.Group) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Resources) > 0 { + for _, s := range m.Resources { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.ResourceNames) > 0 { + for _, s := range m.ResourceNames { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ObjectReference) Size() (n int) { + var l int + _ = l + l = len(m.Resource) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Namespace) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.UID) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.APIGroup) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.APIVersion) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.ResourceVersion) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Subresource) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Policy) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Rules) > 0 { + for _, e := range m.Rules { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.OmitStages) > 0 { + for _, s := range m.OmitStages { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PolicyList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PolicyRule) Size() (n int) { + var l int + _ = l + l = len(m.Level) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Users) > 0 { + for _, s := range m.Users { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.UserGroups) > 0 { + for _, s := range m.UserGroups { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Verbs) > 0 { + for _, s := range m.Verbs { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Resources) > 0 { + for _, e := range m.Resources { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Namespaces) > 0 { + for _, s := range m.Namespaces { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.NonResourceURLs) > 0 { + for _, s := range m.NonResourceURLs { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.OmitStages) > 0 { + for _, s := range m.OmitStages { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func sovGenerated(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Event) String() string { + if this == nil { + return "nil" + } + keysForAnnotations := make([]string, 0, len(this.Annotations)) + for k := range this.Annotations { + keysForAnnotations = append(keysForAnnotations, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) + mapStringForAnnotations := "map[string]string{" + for _, k := range keysForAnnotations { + mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k]) + } + mapStringForAnnotations += "}" + s := strings.Join([]string{`&Event{`, + `Level:` + fmt.Sprintf("%v", this.Level) + `,`, + `AuditID:` + fmt.Sprintf("%v", this.AuditID) + `,`, + `Stage:` + fmt.Sprintf("%v", this.Stage) + `,`, + `RequestURI:` + fmt.Sprintf("%v", this.RequestURI) + `,`, + `Verb:` + fmt.Sprintf("%v", this.Verb) + `,`, + `User:` + strings.Replace(strings.Replace(this.User.String(), "UserInfo", "k8s_io_api_authentication_v1.UserInfo", 1), `&`, ``, 1) + `,`, + `ImpersonatedUser:` + strings.Replace(fmt.Sprintf("%v", this.ImpersonatedUser), "UserInfo", "k8s_io_api_authentication_v1.UserInfo", 1) + `,`, + `SourceIPs:` + fmt.Sprintf("%v", this.SourceIPs) + `,`, + `ObjectRef:` + strings.Replace(fmt.Sprintf("%v", this.ObjectRef), "ObjectReference", "ObjectReference", 1) + `,`, + `ResponseStatus:` + strings.Replace(fmt.Sprintf("%v", this.ResponseStatus), "Status", "k8s_io_apimachinery_pkg_apis_meta_v1.Status", 1) + `,`, + `RequestObject:` + strings.Replace(fmt.Sprintf("%v", this.RequestObject), "Unknown", "k8s_io_apimachinery_pkg_runtime.Unknown", 1) + `,`, + `ResponseObject:` + strings.Replace(fmt.Sprintf("%v", this.ResponseObject), "Unknown", "k8s_io_apimachinery_pkg_runtime.Unknown", 1) + `,`, + `RequestReceivedTimestamp:` + strings.Replace(strings.Replace(this.RequestReceivedTimestamp.String(), "MicroTime", "k8s_io_apimachinery_pkg_apis_meta_v1.MicroTime", 1), `&`, ``, 1) + `,`, + `StageTimestamp:` + strings.Replace(strings.Replace(this.StageTimestamp.String(), "MicroTime", "k8s_io_apimachinery_pkg_apis_meta_v1.MicroTime", 1), `&`, ``, 1) + `,`, + `Annotations:` + mapStringForAnnotations + `,`, + `UserAgent:` + fmt.Sprintf("%v", this.UserAgent) + `,`, + `}`, + }, "") + return s +} +func (this *EventList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&EventList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "Event", "Event", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *GroupResources) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&GroupResources{`, + `Group:` + fmt.Sprintf("%v", this.Group) + `,`, + `Resources:` + fmt.Sprintf("%v", this.Resources) + `,`, + `ResourceNames:` + fmt.Sprintf("%v", this.ResourceNames) + `,`, + `}`, + }, "") + return s +} +func (this *ObjectReference) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ObjectReference{`, + `Resource:` + fmt.Sprintf("%v", this.Resource) + `,`, + `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `UID:` + fmt.Sprintf("%v", this.UID) + `,`, + `APIGroup:` + fmt.Sprintf("%v", this.APIGroup) + `,`, + `APIVersion:` + fmt.Sprintf("%v", this.APIVersion) + `,`, + `ResourceVersion:` + fmt.Sprintf("%v", this.ResourceVersion) + `,`, + `Subresource:` + fmt.Sprintf("%v", this.Subresource) + `,`, + `}`, + }, "") + return s +} +func (this *Policy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Policy{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "PolicyRule", "PolicyRule", 1), `&`, ``, 1) + `,`, + `OmitStages:` + fmt.Sprintf("%v", this.OmitStages) + `,`, + `}`, + }, "") + return s +} +func (this *PolicyList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PolicyList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "Policy", "Policy", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PolicyRule) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PolicyRule{`, + `Level:` + fmt.Sprintf("%v", this.Level) + `,`, + `Users:` + fmt.Sprintf("%v", this.Users) + `,`, + `UserGroups:` + fmt.Sprintf("%v", this.UserGroups) + `,`, + `Verbs:` + fmt.Sprintf("%v", this.Verbs) + `,`, + `Resources:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Resources), "GroupResources", "GroupResources", 1), `&`, ``, 1) + `,`, + `Namespaces:` + fmt.Sprintf("%v", this.Namespaces) + `,`, + `NonResourceURLs:` + fmt.Sprintf("%v", this.NonResourceURLs) + `,`, + `OmitStages:` + fmt.Sprintf("%v", this.OmitStages) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Event) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Event: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Level", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Level = Level(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuditID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AuditID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Stage = Stage(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RequestURI", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RequestURI = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Verb", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Verb = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImpersonatedUser", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImpersonatedUser == nil { + m.ImpersonatedUser = &k8s_io_api_authentication_v1.UserInfo{} + } + if err := m.ImpersonatedUser.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SourceIPs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SourceIPs = append(m.SourceIPs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ObjectRef == nil { + m.ObjectRef = &ObjectReference{} + } + if err := m.ObjectRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResponseStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ResponseStatus == nil { + m.ResponseStatus = &k8s_io_apimachinery_pkg_apis_meta_v1.Status{} + } + if err := m.ResponseStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RequestObject", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RequestObject == nil { + m.RequestObject = &k8s_io_apimachinery_pkg_runtime.Unknown{} + } + if err := m.RequestObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResponseObject", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ResponseObject == nil { + m.ResponseObject = &k8s_io_apimachinery_pkg_runtime.Unknown{} + } + if err := m.ResponseObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RequestReceivedTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RequestReceivedTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StageTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.StageTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Annotations == nil { + m.Annotations = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Annotations[mapkey] = mapvalue + } else { + var mapvalue string + m.Annotations[mapkey] = mapvalue + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserAgent", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UserAgent = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Event{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GroupResources) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GroupResources: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GroupResources: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Group", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Group = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceNames", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ObjectReference) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ObjectReference: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ObjectReference: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Resource = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIGroup", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.APIGroup = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.APIVersion = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResourceVersion = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Subresource", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Subresource = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Policy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Policy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Policy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rules = append(m.Rules, PolicyRule{}) + if err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OmitStages", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OmitStages = append(m.OmitStages, Stage(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PolicyList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PolicyList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PolicyList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Policy{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PolicyRule) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PolicyRule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PolicyRule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Level", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Level = Level(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Users", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Users = append(m.Users, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserGroups", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UserGroups = append(m.UserGroups, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Verbs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Resources = append(m.Resources, GroupResources{}) + if err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NonResourceURLs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OmitStages", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OmitStages = append(m.OmitStages, Stage(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipGenerated(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") +) + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.proto", fileDescriptorGenerated) +} + +var fileDescriptorGenerated = []byte{ + // 1267 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcf, 0x8e, 0x1a, 0xc7, + 0x13, 0xde, 0x59, 0x16, 0x2f, 0x34, 0x5e, 0x16, 0xb7, 0xad, 0x9f, 0x47, 0x7b, 0x00, 0x7e, 0x44, + 0x8a, 0x48, 0xb2, 0x99, 0xf1, 0xae, 0x9d, 0xd8, 0xb2, 0x94, 0x48, 0x20, 0x5b, 0x09, 0x8a, 0xbd, + 0x5e, 0x35, 0xc1, 0x87, 0x28, 0x07, 0x0f, 0x43, 0x19, 0x26, 0x40, 0xcf, 0xb8, 0xbb, 0x87, 0x68, + 0x6f, 0x79, 0x81, 0x48, 0xb9, 0xe7, 0x2d, 0x72, 0xb3, 0xf2, 0x02, 0x3e, 0xfa, 0xe8, 0x13, 0x8a, + 0x49, 0x1e, 0x22, 0xf2, 0x29, 0xea, 0x9e, 0x9e, 0x3f, 0x80, 0x91, 0x71, 0x0e, 0xb9, 0x75, 0x57, + 0x7d, 0xdf, 0x57, 0xd5, 0x35, 0x5d, 0xd5, 0x83, 0xbe, 0x19, 0xdf, 0xe1, 0x96, 0xe7, 0xdb, 0xe3, + 0xb0, 0x0f, 0x8c, 0x82, 0x00, 0x6e, 0xcf, 0x80, 0x0e, 0x7c, 0x66, 0x6b, 0x87, 0x13, 0x78, 0x1c, + 0xd8, 0x0c, 0x98, 0x1d, 0x8c, 0x87, 0x6a, 0x67, 0x3b, 0xe1, 0xc0, 0x13, 0xf6, 0xec, 0xc4, 0x1e, + 0x02, 0x05, 0xe6, 0x08, 0x18, 0x58, 0x01, 0xf3, 0x85, 0x8f, 0x1b, 0x11, 0xc7, 0x4a, 0x38, 0x56, + 0x30, 0x1e, 0xaa, 0x9d, 0xa5, 0x38, 0xd6, 0xec, 0xe4, 0xe8, 0xd3, 0xa1, 0x27, 0x46, 0x61, 0xdf, + 0x72, 0xfd, 0xa9, 0x3d, 0xf4, 0x87, 0xbe, 0xad, 0xa8, 0xfd, 0xf0, 0xa9, 0xda, 0xa9, 0x8d, 0x5a, + 0x45, 0x92, 0x47, 0xc7, 0x69, 0x1a, 0xb6, 0x13, 0x8a, 0x11, 0x50, 0xe1, 0xb9, 0x8e, 0xf0, 0x7c, + 0xfa, 0x96, 0x04, 0x8e, 0x6e, 0xa5, 0xe8, 0xa9, 0xe3, 0x8e, 0x3c, 0x0a, 0xec, 0x22, 0xcd, 0x7b, + 0x0a, 0xc2, 0x79, 0x1b, 0xcb, 0xde, 0xc4, 0x62, 0x21, 0x15, 0xde, 0x14, 0xd6, 0x08, 0x9f, 0xbf, + 0x8b, 0xc0, 0xdd, 0x11, 0x4c, 0x9d, 0x35, 0xde, 0xcd, 0x4d, 0xbc, 0x50, 0x78, 0x13, 0xdb, 0xa3, + 0x82, 0x0b, 0xb6, 0x46, 0xba, 0xf3, 0xee, 0x0f, 0xe1, 0x4c, 0x82, 0x91, 0xb3, 0x76, 0xae, 0xc6, + 0x5f, 0x08, 0xe5, 0xef, 0xcf, 0x80, 0x0a, 0x7c, 0x8c, 0xf2, 0x13, 0x98, 0xc1, 0xc4, 0x34, 0xea, + 0x46, 0xb3, 0xd8, 0xfe, 0xdf, 0x8b, 0x79, 0x6d, 0x67, 0x31, 0xaf, 0xe5, 0x1f, 0x48, 0xe3, 0x9b, + 0x78, 0x41, 0x22, 0x10, 0x3e, 0x43, 0xfb, 0x4a, 0xb9, 0x73, 0xcf, 0xdc, 0x55, 0xf8, 0x5b, 0x1a, + 0xbf, 0xdf, 0x8a, 0xcc, 0x6f, 0xe6, 0xb5, 0xff, 0x6f, 0x3a, 0x8a, 0xb8, 0x08, 0x80, 0x5b, 0xbd, + 0xce, 0x3d, 0x12, 0x8b, 0xc8, 0xe8, 0x5c, 0x38, 0x43, 0x30, 0x73, 0xcb, 0xd1, 0xbb, 0xd2, 0xf8, + 0x26, 0x5e, 0x90, 0x08, 0x84, 0x4f, 0x11, 0x62, 0xf0, 0x2c, 0x04, 0x2e, 0x7a, 0xa4, 0x63, 0xee, + 0x29, 0x0a, 0xd6, 0x14, 0x44, 0x12, 0x0f, 0xc9, 0xa0, 0x70, 0x1d, 0xed, 0xcd, 0x80, 0xf5, 0xcd, + 0xbc, 0x42, 0x5f, 0xd6, 0xe8, 0xbd, 0xc7, 0xc0, 0xfa, 0x44, 0x79, 0xf0, 0xd7, 0x68, 0x2f, 0xe4, + 0xc0, 0xcc, 0x4b, 0x75, 0xa3, 0x59, 0x3a, 0xfd, 0xd0, 0x4a, 0x6f, 0xaa, 0xb5, 0x7c, 0xad, 0xac, + 0xd9, 0x89, 0xd5, 0xe3, 0xc0, 0x3a, 0xf4, 0xa9, 0x9f, 0x2a, 0x49, 0x0b, 0x51, 0x0a, 0x78, 0x84, + 0x2a, 0xde, 0x34, 0x00, 0xc6, 0x7d, 0x2a, 0x6b, 0x2d, 0x3d, 0xe6, 0xfe, 0x7b, 0xa9, 0x5e, 0x5b, + 0xcc, 0x6b, 0x95, 0xce, 0x8a, 0x06, 0x59, 0x53, 0xc5, 0x9f, 0xa0, 0x22, 0xf7, 0x43, 0xe6, 0x42, + 0xe7, 0x9c, 0x9b, 0x85, 0x7a, 0xae, 0x59, 0x6c, 0x1f, 0x2c, 0xe6, 0xb5, 0x62, 0x37, 0x36, 0x92, + 0xd4, 0x8f, 0x9f, 0xa0, 0xa2, 0xdf, 0xff, 0x01, 0x5c, 0x41, 0xe0, 0xa9, 0x59, 0x54, 0xf9, 0xdc, + 0xb4, 0xde, 0xdd, 0x8f, 0xd6, 0xa3, 0x98, 0x04, 0x0c, 0xa8, 0x0b, 0x51, 0x84, 0xc4, 0x48, 0x52, + 0x51, 0x3c, 0x42, 0x65, 0x06, 0x3c, 0xf0, 0x29, 0x87, 0xae, 0x70, 0x44, 0xc8, 0x4d, 0xa4, 0xc2, + 0x1c, 0x67, 0xc2, 0x24, 0x77, 0x21, 0x8d, 0x24, 0xbb, 0x4e, 0x06, 0x8a, 0x38, 0x6d, 0xbc, 0x98, + 0xd7, 0xca, 0x64, 0x49, 0x87, 0xac, 0xe8, 0x62, 0x07, 0x1d, 0xe8, 0x8f, 0x1b, 0x25, 0x62, 0x96, + 0x54, 0xa0, 0xe6, 0xc6, 0x40, 0xba, 0xef, 0xac, 0x1e, 0x1d, 0x53, 0xff, 0x47, 0xda, 0xbe, 0xb2, + 0x98, 0xd7, 0x0e, 0x48, 0x56, 0x82, 0x2c, 0x2b, 0xe2, 0x41, 0x7a, 0x18, 0x1d, 0xe3, 0xf2, 0x7b, + 0xc6, 0x58, 0x3a, 0x88, 0x0e, 0xb2, 0xa2, 0x89, 0x7f, 0x36, 0x90, 0xa9, 0xe3, 0x12, 0x70, 0xc1, + 0x9b, 0xc1, 0xe0, 0x5b, 0x6f, 0x0a, 0x5c, 0x38, 0xd3, 0xc0, 0x3c, 0x50, 0x01, 0xed, 0xed, 0xaa, + 0xf7, 0xd0, 0x73, 0x99, 0x2f, 0xb9, 0xed, 0xba, 0xbe, 0x93, 0x26, 0xd9, 0x20, 0x4c, 0x36, 0x86, + 0xc4, 0x3e, 0x2a, 0xab, 0x26, 0x4b, 0x93, 0x28, 0xff, 0xbb, 0x24, 0xe2, 0x1e, 0x2e, 0x77, 0x97, + 0xe4, 0xc8, 0x8a, 0x3c, 0x7e, 0x86, 0x4a, 0x0e, 0xa5, 0xbe, 0x50, 0x4d, 0xc0, 0xcd, 0xc3, 0x7a, + 0xae, 0x59, 0x3a, 0xbd, 0xbb, 0xcd, 0xbd, 0x54, 0x83, 0xcb, 0x6a, 0xa5, 0xe4, 0xfb, 0x54, 0xb0, + 0x8b, 0xf6, 0x55, 0x1d, 0xb8, 0x94, 0xf1, 0x90, 0x6c, 0x0c, 0x6c, 0xa3, 0xa2, 0xec, 0xd3, 0xd6, + 0x10, 0xa8, 0x30, 0x2b, 0x6a, 0x20, 0x5c, 0xd1, 0xa4, 0x62, 0x2f, 0x76, 0x90, 0x14, 0x73, 0xf4, + 0x25, 0xaa, 0xac, 0x86, 0xc1, 0x15, 0x94, 0x1b, 0xc3, 0x45, 0x34, 0x2e, 0x89, 0x5c, 0xe2, 0x6b, + 0x28, 0x3f, 0x73, 0x26, 0x21, 0x44, 0x23, 0x91, 0x44, 0x9b, 0xbb, 0xbb, 0x77, 0x8c, 0xc6, 0x73, + 0x03, 0x15, 0x55, 0xb6, 0x0f, 0x3c, 0x2e, 0xf0, 0xf7, 0xa8, 0x20, 0xcb, 0x35, 0x70, 0x84, 0xa3, + 0xe8, 0xa5, 0x53, 0x6b, 0xbb, 0xe2, 0x4a, 0xf6, 0x43, 0x10, 0x4e, 0xbb, 0xa2, 0xb3, 0x2d, 0xc4, + 0x16, 0x92, 0x28, 0xe2, 0x33, 0x94, 0xf7, 0x04, 0x4c, 0xb9, 0xb9, 0xab, 0x2a, 0xf9, 0xd1, 0xd6, + 0x95, 0x6c, 0x1f, 0xc4, 0x53, 0xb7, 0x23, 0xf9, 0x24, 0x92, 0x69, 0xfc, 0x6a, 0xa0, 0xf2, 0x57, + 0xcc, 0x0f, 0x03, 0x02, 0xd1, 0x28, 0xe1, 0xf8, 0x03, 0x94, 0x1f, 0x4a, 0x8b, 0x7e, 0x2b, 0x12, + 0x5e, 0x04, 0x8b, 0x7c, 0x72, 0x34, 0xb1, 0x98, 0xa1, 0x72, 0xd1, 0xa3, 0x29, 0x91, 0x21, 0xa9, + 0x1f, 0xdf, 0x96, 0xed, 0x1c, 0x6d, 0xce, 0x9c, 0x29, 0x70, 0x33, 0xa7, 0x08, 0xba, 0x49, 0x33, + 0x0e, 0xb2, 0x8c, 0x6b, 0xfc, 0x96, 0x43, 0x87, 0x2b, 0xf3, 0x09, 0x1f, 0xa3, 0x42, 0x0c, 0xd2, + 0x19, 0x26, 0xf5, 0x8a, 0xb5, 0x48, 0x82, 0x90, 0x97, 0x81, 0x4a, 0xa9, 0xc0, 0x71, 0xf5, 0x97, + 0x4b, 0x2f, 0xc3, 0x59, 0xec, 0x20, 0x29, 0x46, 0xbe, 0x24, 0x72, 0xa3, 0x9f, 0xaa, 0x64, 0xfe, + 0x4b, 0x2c, 0x51, 0x1e, 0xdc, 0x46, 0xb9, 0xd0, 0x1b, 0xe8, 0x87, 0xe9, 0x86, 0x06, 0xe4, 0x7a, + 0xdb, 0xbe, 0x8a, 0x92, 0x2c, 0x0f, 0xe1, 0x04, 0x9e, 0xaa, 0xa8, 0x7e, 0xb3, 0x92, 0x43, 0xb4, + 0xce, 0x3b, 0x51, 0xa5, 0x13, 0x84, 0x7c, 0x11, 0x9d, 0xc0, 0x7b, 0x0c, 0x8c, 0x7b, 0x3e, 0x55, + 0x2f, 0x58, 0xe6, 0x45, 0x6c, 0x9d, 0x77, 0xb4, 0x87, 0x64, 0x50, 0xb8, 0x85, 0x0e, 0xe3, 0x22, + 0xc4, 0xc4, 0x7d, 0x45, 0xbc, 0xae, 0x89, 0x87, 0x64, 0xd9, 0x4d, 0x56, 0xf1, 0xf8, 0x33, 0x54, + 0xe2, 0x61, 0x3f, 0x29, 0x76, 0x41, 0xd1, 0x93, 0xfe, 0xeb, 0xa6, 0x2e, 0x92, 0xc5, 0x35, 0xfe, + 0x36, 0xd0, 0xa5, 0x73, 0x7f, 0xe2, 0xb9, 0x17, 0xf8, 0xc9, 0x5a, 0x2f, 0xdc, 0xd8, 0xae, 0x17, + 0xa2, 0x8f, 0xae, 0xba, 0x21, 0x39, 0x68, 0x6a, 0xcb, 0xf4, 0x43, 0x17, 0xe5, 0x59, 0x38, 0x81, + 0xb8, 0x1f, 0xac, 0x6d, 0xfa, 0x21, 0x4a, 0x8e, 0x84, 0x13, 0x48, 0x2f, 0xb7, 0xdc, 0x71, 0x12, + 0x69, 0xe1, 0xdb, 0x08, 0xf9, 0x53, 0x4f, 0xa8, 0xd1, 0x16, 0x5f, 0xd6, 0xeb, 0x2a, 0x85, 0xc4, + 0x9a, 0xfe, 0xb5, 0x64, 0xa0, 0x8d, 0xdf, 0x0d, 0x84, 0x22, 0xf5, 0xff, 0x60, 0x14, 0x3c, 0x5a, + 0x1e, 0x05, 0x1f, 0x6f, 0x7f, 0xf4, 0x0d, 0xb3, 0xe0, 0x79, 0x2e, 0xce, 0x5e, 0x56, 0xe3, 0x3d, + 0xff, 0x19, 0x6b, 0x28, 0x2f, 0x27, 0x6a, 0x3c, 0x0c, 0x8a, 0x12, 0x29, 0xa7, 0x2d, 0x27, 0x91, + 0x1d, 0x5b, 0x08, 0xc9, 0x85, 0xba, 0xd1, 0x71, 0x51, 0xcb, 0xb2, 0xa8, 0xbd, 0xc4, 0x4a, 0x32, + 0x08, 0x29, 0x28, 0x7f, 0xdc, 0xb8, 0xb9, 0x97, 0x0a, 0xca, 0xff, 0x39, 0x4e, 0x22, 0x3b, 0x76, + 0xb3, 0x23, 0x28, 0xaf, 0x6a, 0x70, 0xba, 0x4d, 0x0d, 0x96, 0xc7, 0x5d, 0x3a, 0x0e, 0xde, 0x3a, + 0xba, 0x2c, 0x84, 0x92, 0xd9, 0xc0, 0xcd, 0x4b, 0x69, 0xd6, 0xc9, 0xf0, 0xe0, 0x24, 0x83, 0xc0, + 0x5f, 0xa0, 0x43, 0xea, 0xd3, 0x58, 0xaa, 0x47, 0x1e, 0x70, 0x73, 0x5f, 0x91, 0xae, 0xca, 0x96, + 0x3b, 0x5b, 0x76, 0x91, 0x55, 0xec, 0xca, 0xcd, 0x2b, 0x6c, 0x7d, 0xf3, 0xda, 0xcd, 0x17, 0xaf, + 0xab, 0x3b, 0x2f, 0x5f, 0x57, 0x77, 0x5e, 0xbd, 0xae, 0xee, 0xfc, 0xb4, 0xa8, 0x1a, 0x2f, 0x16, + 0x55, 0xe3, 0xe5, 0xa2, 0x6a, 0xbc, 0x5a, 0x54, 0x8d, 0x3f, 0x16, 0x55, 0xe3, 0x97, 0x3f, 0xab, + 0x3b, 0xdf, 0xed, 0xce, 0x4e, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, 0xe9, 0x18, 0x1a, 0xf5, 0xf1, + 0x0d, 0x00, 0x00, +} diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.proto b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.proto new file mode 100644 index 000000000..8fbb1e50e --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.proto @@ -0,0 +1,250 @@ +/* +Copyright 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. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = 'proto2'; + +package k8s.io.apiserver.pkg.apis.audit.v1; + +import "k8s.io/api/authentication/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; +import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; +import "k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1"; + +// Event captures all the information that can be included in an API audit log. +message Event { + // AuditLevel at which event was generated + optional string level = 1; + + // Unique audit ID, generated for each request. + optional string auditID = 2; + + // Stage of the request handling when this event instance was generated. + optional string stage = 3; + + // RequestURI is the request URI as sent by the client to a server. + optional string requestURI = 4; + + // Verb is the kubernetes verb associated with the request. + // For non-resource requests, this is the lower-cased HTTP method. + optional string verb = 5; + + // Authenticated user information. + optional k8s.io.api.authentication.v1.UserInfo user = 6; + + // Impersonated user information. + // +optional + optional k8s.io.api.authentication.v1.UserInfo impersonatedUser = 7; + + // Source IPs, from where the request originated and intermediate proxies. + // +optional + repeated string sourceIPs = 8; + + // UserAgent records the user agent string reported by the client. + // Note that the UserAgent is provided by the client, and must not be trusted. + // +optional + optional string userAgent = 16; + + // Object reference this request is targeted at. + // Does not apply for List-type requests, or non-resource requests. + // +optional + optional ObjectReference objectRef = 9; + + // The response status, populated even when the ResponseObject is not a Status type. + // For successful responses, this will only include the Code and StatusSuccess. + // For non-status type error responses, this will be auto-populated with the error Message. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Status responseStatus = 10; + + // API object from the request, in JSON format. The RequestObject is recorded as-is in the request + // (possibly re-encoded as JSON), prior to version conversion, defaulting, admission or + // merging. It is an external versioned object type, and may not be a valid object on its own. + // Omitted for non-resource requests. Only logged at Request Level and higher. + // +optional + optional k8s.io.apimachinery.pkg.runtime.Unknown requestObject = 11; + + // API object returned in the response, in JSON. The ResponseObject is recorded after conversion + // to the external type, and serialized as JSON. Omitted for non-resource requests. Only logged + // at Response Level. + // +optional + optional k8s.io.apimachinery.pkg.runtime.Unknown responseObject = 12; + + // Time the request reached the apiserver. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime requestReceivedTimestamp = 13; + + // Time the request reached current audit stage. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime stageTimestamp = 14; + + // Annotations is an unstructured key value map stored with an audit event that may be set by + // plugins invoked in the request serving chain, including authentication, authorization and + // admission plugins. Keys should uniquely identify the informing component to avoid name + // collisions (e.g. podsecuritypolicy.admission.k8s.io/policy). Values should be short. Annotations + // are included in the Metadata level. + // +optional + map annotations = 15; +} + +// EventList is a list of audit Events. +message EventList { + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + repeated Event items = 2; +} + +// GroupResources represents resource kinds in an API group. +message GroupResources { + // Group is the name of the API group that contains the resources. + // The empty string represents the core API group. + // +optional + optional string group = 1; + + // Resources is a list of resources this rule applies to. + // + // For example: + // 'pods' matches pods. + // 'pods/log' matches the log subresource of pods. + // '*' matches all resources and their subresources. + // 'pods/*' matches all subresources of pods. + // '*/scale' matches all scale subresources. + // + // If wildcard is present, the validation rule will ensure resources do not + // overlap with each other. + // + // An empty list implies all resources and subresources in this API groups apply. + // +optional + repeated string resources = 2; + + // ResourceNames is a list of resource instance names that the policy matches. + // Using this field requires Resources to be specified. + // An empty list implies that every instance of the resource is matched. + // +optional + repeated string resourceNames = 3; +} + +// ObjectReference contains enough information to let you inspect or modify the referred object. +message ObjectReference { + // +optional + optional string resource = 1; + + // +optional + optional string namespace = 2; + + // +optional + optional string name = 3; + + // +optional + optional string uid = 4; + + // APIGroup is the name of the API group that contains the referred object. + // The empty string represents the core API group. + // +optional + optional string apiGroup = 5; + + // APIVersion is the version of the API group that contains the referred object. + // +optional + optional string apiVersion = 6; + + // +optional + optional string resourceVersion = 7; + + // +optional + optional string subresource = 8; +} + +// Policy defines the configuration of audit logging, and the rules for how different request +// categories are logged. +message Policy { + // ObjectMeta is included for interoperability with API infrastructure. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Rules specify the audit Level a request should be recorded at. + // A request may match multiple rules, in which case the FIRST matching rule is used. + // The default audit level is None, but can be overridden by a catch-all rule at the end of the list. + // PolicyRules are strictly ordered. + repeated PolicyRule rules = 2; + + // OmitStages is a list of stages for which no events are created. Note that this can also + // be specified per rule in which case the union of both are omitted. + // +optional + repeated string omitStages = 3; +} + +// PolicyList is a list of audit Policies. +message PolicyList { + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + repeated Policy items = 2; +} + +// PolicyRule maps requests based off metadata to an audit Level. +// Requests must match the rules of every field (an intersection of rules). +message PolicyRule { + // The Level that requests matching this rule are recorded at. + optional string level = 1; + + // The users (by authenticated user name) this rule applies to. + // An empty list implies every user. + // +optional + repeated string users = 2; + + // The user groups this rule applies to. A user is considered matching + // if it is a member of any of the UserGroups. + // An empty list implies every user group. + // +optional + repeated string userGroups = 3; + + // The verbs that match this rule. + // An empty list implies every verb. + // +optional + repeated string verbs = 4; + + // Resources that this rule matches. An empty list implies all kinds in all API groups. + // +optional + repeated GroupResources resources = 5; + + // Namespaces that this rule matches. + // The empty string "" matches non-namespaced resources. + // An empty list implies every namespace. + // +optional + repeated string namespaces = 6; + + // NonResourceURLs is a set of URL paths that should be audited. + // *s are allowed, but only as the full, final step in the path. + // Examples: + // "/metrics" - Log requests for apiserver metrics + // "/healthz*" - Log all health checks + // +optional + repeated string nonResourceURLs = 7; + + // OmitStages is a list of stages for which no events are created. Note that this can also + // be specified policy wide in which case the union of both are omitted. + // An empty list means no restrictions will apply. + // +optional + repeated string omitStages = 8; +} + diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1/register.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/register.go new file mode 100644 index 000000000..46e3e47bc --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/register.go @@ -0,0 +1,58 @@ +/* +Copyright 2018 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 v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "audit.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder runtime.SchemeBuilder + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addKnownTypes) +} + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &Event{}, + &EventList{}, + &Policy{}, + &PolicyList{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1/types.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/types.go new file mode 100644 index 000000000..4b14129c9 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/types.go @@ -0,0 +1,279 @@ +/* +Copyright 2018 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 v1 + +import ( + authnv1 "k8s.io/api/authentication/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" +) + +// Header keys used by the audit system. +const ( + // Header to hold the audit ID as the request is propagated through the serving hierarchy. The + // Audit-ID header should be set by the first server to receive the request (e.g. the federation + // server or kube-aggregator). + HeaderAuditID = "Audit-ID" +) + +// Level defines the amount of information logged during auditing +type Level string + +// Valid audit levels +const ( + // LevelNone disables auditing + LevelNone Level = "None" + // LevelMetadata provides the basic level of auditing. + LevelMetadata Level = "Metadata" + // LevelRequest provides Metadata level of auditing, and additionally + // logs the request object (does not apply for non-resource requests). + LevelRequest Level = "Request" + // LevelRequestResponse provides Request level of auditing, and additionally + // logs the response object (does not apply for non-resource requests). + LevelRequestResponse Level = "RequestResponse" +) + +// Stage defines the stages in request handling that audit events may be generated. +type Stage string + +// Valid audit stages. +const ( + // The stage for events generated as soon as the audit handler receives the request, and before it + // is delegated down the handler chain. + StageRequestReceived = "RequestReceived" + // The stage for events generated once the response headers are sent, but before the response body + // is sent. This stage is only generated for long-running requests (e.g. watch). + StageResponseStarted = "ResponseStarted" + // The stage for events generated once the response body has been completed, and no more bytes + // will be sent. + StageResponseComplete = "ResponseComplete" + // The stage for events generated when a panic occurred. + StagePanic = "Panic" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Event captures all the information that can be included in an API audit log. +type Event struct { + metav1.TypeMeta `json:",inline"` + + // AuditLevel at which event was generated + Level Level `json:"level" protobuf:"bytes,1,opt,name=level,casttype=Level"` + + // Unique audit ID, generated for each request. + AuditID types.UID `json:"auditID" protobuf:"bytes,2,opt,name=auditID,casttype=k8s.io/apimachinery/pkg/types.UID"` + // Stage of the request handling when this event instance was generated. + Stage Stage `json:"stage" protobuf:"bytes,3,opt,name=stage,casttype=Stage"` + + // RequestURI is the request URI as sent by the client to a server. + RequestURI string `json:"requestURI" protobuf:"bytes,4,opt,name=requestURI"` + // Verb is the kubernetes verb associated with the request. + // For non-resource requests, this is the lower-cased HTTP method. + Verb string `json:"verb" protobuf:"bytes,5,opt,name=verb"` + // Authenticated user information. + User authnv1.UserInfo `json:"user" protobuf:"bytes,6,opt,name=user"` + // Impersonated user information. + // +optional + ImpersonatedUser *authnv1.UserInfo `json:"impersonatedUser,omitempty" protobuf:"bytes,7,opt,name=impersonatedUser"` + // Source IPs, from where the request originated and intermediate proxies. + // +optional + SourceIPs []string `json:"sourceIPs,omitempty" protobuf:"bytes,8,rep,name=sourceIPs"` + // UserAgent records the user agent string reported by the client. + // Note that the UserAgent is provided by the client, and must not be trusted. + // +optional + UserAgent string `json:"userAgent,omitempty" protobuf:"bytes,16,opt,name=userAgent"` + // Object reference this request is targeted at. + // Does not apply for List-type requests, or non-resource requests. + // +optional + ObjectRef *ObjectReference `json:"objectRef,omitempty" protobuf:"bytes,9,opt,name=objectRef"` + // The response status, populated even when the ResponseObject is not a Status type. + // For successful responses, this will only include the Code and StatusSuccess. + // For non-status type error responses, this will be auto-populated with the error Message. + // +optional + ResponseStatus *metav1.Status `json:"responseStatus,omitempty" protobuf:"bytes,10,opt,name=responseStatus"` + + // API object from the request, in JSON format. The RequestObject is recorded as-is in the request + // (possibly re-encoded as JSON), prior to version conversion, defaulting, admission or + // merging. It is an external versioned object type, and may not be a valid object on its own. + // Omitted for non-resource requests. Only logged at Request Level and higher. + // +optional + RequestObject *runtime.Unknown `json:"requestObject,omitempty" protobuf:"bytes,11,opt,name=requestObject"` + // API object returned in the response, in JSON. The ResponseObject is recorded after conversion + // to the external type, and serialized as JSON. Omitted for non-resource requests. Only logged + // at Response Level. + // +optional + ResponseObject *runtime.Unknown `json:"responseObject,omitempty" protobuf:"bytes,12,opt,name=responseObject"` + // Time the request reached the apiserver. + // +optional + RequestReceivedTimestamp metav1.MicroTime `json:"requestReceivedTimestamp" protobuf:"bytes,13,opt,name=requestReceivedTimestamp"` + // Time the request reached current audit stage. + // +optional + StageTimestamp metav1.MicroTime `json:"stageTimestamp" protobuf:"bytes,14,opt,name=stageTimestamp"` + + // Annotations is an unstructured key value map stored with an audit event that may be set by + // plugins invoked in the request serving chain, including authentication, authorization and + // admission plugins. Keys should uniquely identify the informing component to avoid name + // collisions (e.g. podsecuritypolicy.admission.k8s.io/policy). Values should be short. Annotations + // are included in the Metadata level. + // +optional + Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,15,rep,name=annotations"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// EventList is a list of audit Events. +type EventList struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + Items []Event `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Policy defines the configuration of audit logging, and the rules for how different request +// categories are logged. +type Policy struct { + metav1.TypeMeta `json:",inline"` + // ObjectMeta is included for interoperability with API infrastructure. + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Rules specify the audit Level a request should be recorded at. + // A request may match multiple rules, in which case the FIRST matching rule is used. + // The default audit level is None, but can be overridden by a catch-all rule at the end of the list. + // PolicyRules are strictly ordered. + Rules []PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` + + // OmitStages is a list of stages for which no events are created. Note that this can also + // be specified per rule in which case the union of both are omitted. + // +optional + OmitStages []Stage `json:"omitStages,omitempty" protobuf:"bytes,3,rep,name=omitStages"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// PolicyList is a list of audit Policies. +type PolicyList struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + Items []Policy `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// PolicyRule maps requests based off metadata to an audit Level. +// Requests must match the rules of every field (an intersection of rules). +type PolicyRule struct { + // The Level that requests matching this rule are recorded at. + Level Level `json:"level" protobuf:"bytes,1,opt,name=level,casttype=Level"` + + // The users (by authenticated user name) this rule applies to. + // An empty list implies every user. + // +optional + Users []string `json:"users,omitempty" protobuf:"bytes,2,rep,name=users"` + // The user groups this rule applies to. A user is considered matching + // if it is a member of any of the UserGroups. + // An empty list implies every user group. + // +optional + UserGroups []string `json:"userGroups,omitempty" protobuf:"bytes,3,rep,name=userGroups"` + + // The verbs that match this rule. + // An empty list implies every verb. + // +optional + Verbs []string `json:"verbs,omitempty" protobuf:"bytes,4,rep,name=verbs"` + + // Rules can apply to API resources (such as "pods" or "secrets"), + // non-resource URL paths (such as "/api"), or neither, but not both. + // If neither is specified, the rule is treated as a default for all URLs. + + // Resources that this rule matches. An empty list implies all kinds in all API groups. + // +optional + Resources []GroupResources `json:"resources,omitempty" protobuf:"bytes,5,rep,name=resources"` + // Namespaces that this rule matches. + // The empty string "" matches non-namespaced resources. + // An empty list implies every namespace. + // +optional + Namespaces []string `json:"namespaces,omitempty" protobuf:"bytes,6,rep,name=namespaces"` + + // NonResourceURLs is a set of URL paths that should be audited. + // *s are allowed, but only as the full, final step in the path. + // Examples: + // "/metrics" - Log requests for apiserver metrics + // "/healthz*" - Log all health checks + // +optional + NonResourceURLs []string `json:"nonResourceURLs,omitempty" protobuf:"bytes,7,rep,name=nonResourceURLs"` + + // OmitStages is a list of stages for which no events are created. Note that this can also + // be specified policy wide in which case the union of both are omitted. + // An empty list means no restrictions will apply. + // +optional + OmitStages []Stage `json:"omitStages,omitempty" protobuf:"bytes,8,rep,name=omitStages"` +} + +// GroupResources represents resource kinds in an API group. +type GroupResources struct { + // Group is the name of the API group that contains the resources. + // The empty string represents the core API group. + // +optional + Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"` + // Resources is a list of resources this rule applies to. + // + // For example: + // 'pods' matches pods. + // 'pods/log' matches the log subresource of pods. + // '*' matches all resources and their subresources. + // 'pods/*' matches all subresources of pods. + // '*/scale' matches all scale subresources. + // + // If wildcard is present, the validation rule will ensure resources do not + // overlap with each other. + // + // An empty list implies all resources and subresources in this API groups apply. + // +optional + Resources []string `json:"resources,omitempty" protobuf:"bytes,2,rep,name=resources"` + // ResourceNames is a list of resource instance names that the policy matches. + // Using this field requires Resources to be specified. + // An empty list implies that every instance of the resource is matched. + // +optional + ResourceNames []string `json:"resourceNames,omitempty" protobuf:"bytes,3,rep,name=resourceNames"` +} + +// ObjectReference contains enough information to let you inspect or modify the referred object. +type ObjectReference struct { + // +optional + Resource string `json:"resource,omitempty" protobuf:"bytes,1,opt,name=resource"` + // +optional + Namespace string `json:"namespace,omitempty" protobuf:"bytes,2,opt,name=namespace"` + // +optional + Name string `json:"name,omitempty" protobuf:"bytes,3,opt,name=name"` + // +optional + UID types.UID `json:"uid,omitempty" protobuf:"bytes,4,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID"` + // APIGroup is the name of the API group that contains the referred object. + // The empty string represents the core API group. + // +optional + APIGroup string `json:"apiGroup,omitempty" protobuf:"bytes,5,opt,name=apiGroup"` + // APIVersion is the version of the API group that contains the referred object. + // +optional + APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,6,opt,name=apiVersion"` + // +optional + ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,7,opt,name=resourceVersion"` + // +optional + Subresource string `json:"subresource,omitempty" protobuf:"bytes,8,opt,name=subresource"` +} diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.conversion.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.conversion.go new file mode 100644 index 000000000..0e99ab453 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.conversion.go @@ -0,0 +1,328 @@ +// +build !ignore_autogenerated + +/* +Copyright 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. +*/ + +// Code generated by conversion-gen. DO NOT EDIT. + +package v1 + +import ( + unsafe "unsafe" + + authenticationv1 "k8s.io/api/authentication/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + types "k8s.io/apimachinery/pkg/types" + audit "k8s.io/apiserver/pkg/apis/audit" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*Event)(nil), (*audit.Event)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_Event_To_audit_Event(a.(*Event), b.(*audit.Event), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*audit.Event)(nil), (*Event)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_audit_Event_To_v1_Event(a.(*audit.Event), b.(*Event), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*EventList)(nil), (*audit.EventList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_EventList_To_audit_EventList(a.(*EventList), b.(*audit.EventList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*audit.EventList)(nil), (*EventList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_audit_EventList_To_v1_EventList(a.(*audit.EventList), b.(*EventList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*GroupResources)(nil), (*audit.GroupResources)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_GroupResources_To_audit_GroupResources(a.(*GroupResources), b.(*audit.GroupResources), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*audit.GroupResources)(nil), (*GroupResources)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_audit_GroupResources_To_v1_GroupResources(a.(*audit.GroupResources), b.(*GroupResources), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ObjectReference)(nil), (*audit.ObjectReference)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_ObjectReference_To_audit_ObjectReference(a.(*ObjectReference), b.(*audit.ObjectReference), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*audit.ObjectReference)(nil), (*ObjectReference)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_audit_ObjectReference_To_v1_ObjectReference(a.(*audit.ObjectReference), b.(*ObjectReference), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*Policy)(nil), (*audit.Policy)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_Policy_To_audit_Policy(a.(*Policy), b.(*audit.Policy), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*audit.Policy)(nil), (*Policy)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_audit_Policy_To_v1_Policy(a.(*audit.Policy), b.(*Policy), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*PolicyList)(nil), (*audit.PolicyList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_PolicyList_To_audit_PolicyList(a.(*PolicyList), b.(*audit.PolicyList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*audit.PolicyList)(nil), (*PolicyList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_audit_PolicyList_To_v1_PolicyList(a.(*audit.PolicyList), b.(*PolicyList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*PolicyRule)(nil), (*audit.PolicyRule)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_PolicyRule_To_audit_PolicyRule(a.(*PolicyRule), b.(*audit.PolicyRule), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*audit.PolicyRule)(nil), (*PolicyRule)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_audit_PolicyRule_To_v1_PolicyRule(a.(*audit.PolicyRule), b.(*PolicyRule), scope) + }); err != nil { + return err + } + return nil +} + +func autoConvert_v1_Event_To_audit_Event(in *Event, out *audit.Event, s conversion.Scope) error { + out.Level = audit.Level(in.Level) + out.AuditID = types.UID(in.AuditID) + out.Stage = audit.Stage(in.Stage) + out.RequestURI = in.RequestURI + out.Verb = in.Verb + // TODO: Inefficient conversion - can we improve it? + if err := s.Convert(&in.User, &out.User, 0); err != nil { + return err + } + out.ImpersonatedUser = (*audit.UserInfo)(unsafe.Pointer(in.ImpersonatedUser)) + out.SourceIPs = *(*[]string)(unsafe.Pointer(&in.SourceIPs)) + out.UserAgent = in.UserAgent + out.ObjectRef = (*audit.ObjectReference)(unsafe.Pointer(in.ObjectRef)) + out.ResponseStatus = (*metav1.Status)(unsafe.Pointer(in.ResponseStatus)) + out.RequestObject = (*runtime.Unknown)(unsafe.Pointer(in.RequestObject)) + out.ResponseObject = (*runtime.Unknown)(unsafe.Pointer(in.ResponseObject)) + out.RequestReceivedTimestamp = in.RequestReceivedTimestamp + out.StageTimestamp = in.StageTimestamp + out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) + return nil +} + +// Convert_v1_Event_To_audit_Event is an autogenerated conversion function. +func Convert_v1_Event_To_audit_Event(in *Event, out *audit.Event, s conversion.Scope) error { + return autoConvert_v1_Event_To_audit_Event(in, out, s) +} + +func autoConvert_audit_Event_To_v1_Event(in *audit.Event, out *Event, s conversion.Scope) error { + out.Level = Level(in.Level) + out.AuditID = types.UID(in.AuditID) + out.Stage = Stage(in.Stage) + out.RequestURI = in.RequestURI + out.Verb = in.Verb + // TODO: Inefficient conversion - can we improve it? + if err := s.Convert(&in.User, &out.User, 0); err != nil { + return err + } + out.ImpersonatedUser = (*authenticationv1.UserInfo)(unsafe.Pointer(in.ImpersonatedUser)) + out.SourceIPs = *(*[]string)(unsafe.Pointer(&in.SourceIPs)) + out.UserAgent = in.UserAgent + out.ObjectRef = (*ObjectReference)(unsafe.Pointer(in.ObjectRef)) + out.ResponseStatus = (*metav1.Status)(unsafe.Pointer(in.ResponseStatus)) + out.RequestObject = (*runtime.Unknown)(unsafe.Pointer(in.RequestObject)) + out.ResponseObject = (*runtime.Unknown)(unsafe.Pointer(in.ResponseObject)) + out.RequestReceivedTimestamp = in.RequestReceivedTimestamp + out.StageTimestamp = in.StageTimestamp + out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) + return nil +} + +// Convert_audit_Event_To_v1_Event is an autogenerated conversion function. +func Convert_audit_Event_To_v1_Event(in *audit.Event, out *Event, s conversion.Scope) error { + return autoConvert_audit_Event_To_v1_Event(in, out, s) +} + +func autoConvert_v1_EventList_To_audit_EventList(in *EventList, out *audit.EventList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]audit.Event)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_EventList_To_audit_EventList is an autogenerated conversion function. +func Convert_v1_EventList_To_audit_EventList(in *EventList, out *audit.EventList, s conversion.Scope) error { + return autoConvert_v1_EventList_To_audit_EventList(in, out, s) +} + +func autoConvert_audit_EventList_To_v1_EventList(in *audit.EventList, out *EventList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]Event)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_audit_EventList_To_v1_EventList is an autogenerated conversion function. +func Convert_audit_EventList_To_v1_EventList(in *audit.EventList, out *EventList, s conversion.Scope) error { + return autoConvert_audit_EventList_To_v1_EventList(in, out, s) +} + +func autoConvert_v1_GroupResources_To_audit_GroupResources(in *GroupResources, out *audit.GroupResources, s conversion.Scope) error { + out.Group = in.Group + out.Resources = *(*[]string)(unsafe.Pointer(&in.Resources)) + out.ResourceNames = *(*[]string)(unsafe.Pointer(&in.ResourceNames)) + return nil +} + +// Convert_v1_GroupResources_To_audit_GroupResources is an autogenerated conversion function. +func Convert_v1_GroupResources_To_audit_GroupResources(in *GroupResources, out *audit.GroupResources, s conversion.Scope) error { + return autoConvert_v1_GroupResources_To_audit_GroupResources(in, out, s) +} + +func autoConvert_audit_GroupResources_To_v1_GroupResources(in *audit.GroupResources, out *GroupResources, s conversion.Scope) error { + out.Group = in.Group + out.Resources = *(*[]string)(unsafe.Pointer(&in.Resources)) + out.ResourceNames = *(*[]string)(unsafe.Pointer(&in.ResourceNames)) + return nil +} + +// Convert_audit_GroupResources_To_v1_GroupResources is an autogenerated conversion function. +func Convert_audit_GroupResources_To_v1_GroupResources(in *audit.GroupResources, out *GroupResources, s conversion.Scope) error { + return autoConvert_audit_GroupResources_To_v1_GroupResources(in, out, s) +} + +func autoConvert_v1_ObjectReference_To_audit_ObjectReference(in *ObjectReference, out *audit.ObjectReference, s conversion.Scope) error { + out.Resource = in.Resource + out.Namespace = in.Namespace + out.Name = in.Name + out.UID = types.UID(in.UID) + out.APIGroup = in.APIGroup + out.APIVersion = in.APIVersion + out.ResourceVersion = in.ResourceVersion + out.Subresource = in.Subresource + return nil +} + +// Convert_v1_ObjectReference_To_audit_ObjectReference is an autogenerated conversion function. +func Convert_v1_ObjectReference_To_audit_ObjectReference(in *ObjectReference, out *audit.ObjectReference, s conversion.Scope) error { + return autoConvert_v1_ObjectReference_To_audit_ObjectReference(in, out, s) +} + +func autoConvert_audit_ObjectReference_To_v1_ObjectReference(in *audit.ObjectReference, out *ObjectReference, s conversion.Scope) error { + out.Resource = in.Resource + out.Namespace = in.Namespace + out.Name = in.Name + out.UID = types.UID(in.UID) + out.APIGroup = in.APIGroup + out.APIVersion = in.APIVersion + out.ResourceVersion = in.ResourceVersion + out.Subresource = in.Subresource + return nil +} + +// Convert_audit_ObjectReference_To_v1_ObjectReference is an autogenerated conversion function. +func Convert_audit_ObjectReference_To_v1_ObjectReference(in *audit.ObjectReference, out *ObjectReference, s conversion.Scope) error { + return autoConvert_audit_ObjectReference_To_v1_ObjectReference(in, out, s) +} + +func autoConvert_v1_Policy_To_audit_Policy(in *Policy, out *audit.Policy, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Rules = *(*[]audit.PolicyRule)(unsafe.Pointer(&in.Rules)) + out.OmitStages = *(*[]audit.Stage)(unsafe.Pointer(&in.OmitStages)) + return nil +} + +// Convert_v1_Policy_To_audit_Policy is an autogenerated conversion function. +func Convert_v1_Policy_To_audit_Policy(in *Policy, out *audit.Policy, s conversion.Scope) error { + return autoConvert_v1_Policy_To_audit_Policy(in, out, s) +} + +func autoConvert_audit_Policy_To_v1_Policy(in *audit.Policy, out *Policy, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Rules = *(*[]PolicyRule)(unsafe.Pointer(&in.Rules)) + out.OmitStages = *(*[]Stage)(unsafe.Pointer(&in.OmitStages)) + return nil +} + +// Convert_audit_Policy_To_v1_Policy is an autogenerated conversion function. +func Convert_audit_Policy_To_v1_Policy(in *audit.Policy, out *Policy, s conversion.Scope) error { + return autoConvert_audit_Policy_To_v1_Policy(in, out, s) +} + +func autoConvert_v1_PolicyList_To_audit_PolicyList(in *PolicyList, out *audit.PolicyList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]audit.Policy)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_PolicyList_To_audit_PolicyList is an autogenerated conversion function. +func Convert_v1_PolicyList_To_audit_PolicyList(in *PolicyList, out *audit.PolicyList, s conversion.Scope) error { + return autoConvert_v1_PolicyList_To_audit_PolicyList(in, out, s) +} + +func autoConvert_audit_PolicyList_To_v1_PolicyList(in *audit.PolicyList, out *PolicyList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]Policy)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_audit_PolicyList_To_v1_PolicyList is an autogenerated conversion function. +func Convert_audit_PolicyList_To_v1_PolicyList(in *audit.PolicyList, out *PolicyList, s conversion.Scope) error { + return autoConvert_audit_PolicyList_To_v1_PolicyList(in, out, s) +} + +func autoConvert_v1_PolicyRule_To_audit_PolicyRule(in *PolicyRule, out *audit.PolicyRule, s conversion.Scope) error { + out.Level = audit.Level(in.Level) + out.Users = *(*[]string)(unsafe.Pointer(&in.Users)) + out.UserGroups = *(*[]string)(unsafe.Pointer(&in.UserGroups)) + out.Verbs = *(*[]string)(unsafe.Pointer(&in.Verbs)) + out.Resources = *(*[]audit.GroupResources)(unsafe.Pointer(&in.Resources)) + out.Namespaces = *(*[]string)(unsafe.Pointer(&in.Namespaces)) + out.NonResourceURLs = *(*[]string)(unsafe.Pointer(&in.NonResourceURLs)) + out.OmitStages = *(*[]audit.Stage)(unsafe.Pointer(&in.OmitStages)) + return nil +} + +// Convert_v1_PolicyRule_To_audit_PolicyRule is an autogenerated conversion function. +func Convert_v1_PolicyRule_To_audit_PolicyRule(in *PolicyRule, out *audit.PolicyRule, s conversion.Scope) error { + return autoConvert_v1_PolicyRule_To_audit_PolicyRule(in, out, s) +} + +func autoConvert_audit_PolicyRule_To_v1_PolicyRule(in *audit.PolicyRule, out *PolicyRule, s conversion.Scope) error { + out.Level = Level(in.Level) + out.Users = *(*[]string)(unsafe.Pointer(&in.Users)) + out.UserGroups = *(*[]string)(unsafe.Pointer(&in.UserGroups)) + out.Verbs = *(*[]string)(unsafe.Pointer(&in.Verbs)) + out.Resources = *(*[]GroupResources)(unsafe.Pointer(&in.Resources)) + out.Namespaces = *(*[]string)(unsafe.Pointer(&in.Namespaces)) + out.NonResourceURLs = *(*[]string)(unsafe.Pointer(&in.NonResourceURLs)) + out.OmitStages = *(*[]Stage)(unsafe.Pointer(&in.OmitStages)) + return nil +} + +// Convert_audit_PolicyRule_To_v1_PolicyRule is an autogenerated conversion function. +func Convert_audit_PolicyRule_To_v1_PolicyRule(in *audit.PolicyRule, out *PolicyRule, s conversion.Scope) error { + return autoConvert_audit_PolicyRule_To_v1_PolicyRule(in, out, s) +} diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.deepcopy.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.deepcopy.go new file mode 100644 index 000000000..ec2eb26ad --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.deepcopy.go @@ -0,0 +1,291 @@ +// +build !ignore_autogenerated + +/* +Copyright 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. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1 + +import ( + authenticationv1 "k8s.io/api/authentication/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Event) DeepCopyInto(out *Event) { + *out = *in + out.TypeMeta = in.TypeMeta + in.User.DeepCopyInto(&out.User) + if in.ImpersonatedUser != nil { + in, out := &in.ImpersonatedUser, &out.ImpersonatedUser + *out = new(authenticationv1.UserInfo) + (*in).DeepCopyInto(*out) + } + if in.SourceIPs != nil { + in, out := &in.SourceIPs, &out.SourceIPs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ObjectRef != nil { + in, out := &in.ObjectRef, &out.ObjectRef + *out = new(ObjectReference) + **out = **in + } + if in.ResponseStatus != nil { + in, out := &in.ResponseStatus, &out.ResponseStatus + *out = new(metav1.Status) + (*in).DeepCopyInto(*out) + } + if in.RequestObject != nil { + in, out := &in.RequestObject, &out.RequestObject + *out = new(runtime.Unknown) + (*in).DeepCopyInto(*out) + } + if in.ResponseObject != nil { + in, out := &in.ResponseObject, &out.ResponseObject + *out = new(runtime.Unknown) + (*in).DeepCopyInto(*out) + } + in.RequestReceivedTimestamp.DeepCopyInto(&out.RequestReceivedTimestamp) + in.StageTimestamp.DeepCopyInto(&out.StageTimestamp) + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event. +func (in *Event) DeepCopy() *Event { + if in == nil { + return nil + } + out := new(Event) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Event) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventList) DeepCopyInto(out *EventList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Event, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventList. +func (in *EventList) DeepCopy() *EventList { + if in == nil { + return nil + } + out := new(EventList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EventList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupResources) DeepCopyInto(out *GroupResources) { + *out = *in + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ResourceNames != nil { + in, out := &in.ResourceNames, &out.ResourceNames + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResources. +func (in *GroupResources) DeepCopy() *GroupResources { + if in == nil { + return nil + } + out := new(GroupResources) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObjectReference) DeepCopyInto(out *ObjectReference) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference. +func (in *ObjectReference) DeepCopy() *ObjectReference { + if in == nil { + return nil + } + out := new(ObjectReference) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Policy) DeepCopyInto(out *Policy) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]PolicyRule, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.OmitStages != nil { + in, out := &in.OmitStages, &out.OmitStages + *out = make([]Stage, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Policy. +func (in *Policy) DeepCopy() *Policy { + if in == nil { + return nil + } + out := new(Policy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Policy) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyList) DeepCopyInto(out *PolicyList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Policy, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyList. +func (in *PolicyList) DeepCopy() *PolicyList { + if in == nil { + return nil + } + out := new(PolicyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PolicyList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyRule) DeepCopyInto(out *PolicyRule) { + *out = *in + if in.Users != nil { + in, out := &in.Users, &out.Users + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.UserGroups != nil { + in, out := &in.UserGroups, &out.UserGroups + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Verbs != nil { + in, out := &in.Verbs, &out.Verbs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make([]GroupResources, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Namespaces != nil { + in, out := &in.Namespaces, &out.Namespaces + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NonResourceURLs != nil { + in, out := &in.NonResourceURLs, &out.NonResourceURLs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OmitStages != nil { + in, out := &in.OmitStages, &out.OmitStages + *out = make([]Stage, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRule. +func (in *PolicyRule) DeepCopy() *PolicyRule { + if in == nil { + return nil + } + out := new(PolicyRule) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.defaults.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.defaults.go new file mode 100644 index 000000000..cce2e603a --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.defaults.go @@ -0,0 +1,32 @@ +// +build !ignore_autogenerated + +/* +Copyright 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. +*/ + +// Code generated by defaulter-gen. DO NOT EDIT. + +package v1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + return nil +} diff --git a/vendor/k8s.io/apiserver/pkg/audit/policy/reader.go b/vendor/k8s.io/apiserver/pkg/audit/policy/reader.go index 1d02e1a3f..d582cda88 100644 --- a/vendor/k8s.io/apiserver/pkg/audit/policy/reader.go +++ b/vendor/k8s.io/apiserver/pkg/audit/policy/reader.go @@ -22,6 +22,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" auditinternal "k8s.io/apiserver/pkg/apis/audit" + auditv1 "k8s.io/apiserver/pkg/apis/audit/v1" auditv1alpha1 "k8s.io/apiserver/pkg/apis/audit/v1alpha1" auditv1beta1 "k8s.io/apiserver/pkg/apis/audit/v1beta1" "k8s.io/apiserver/pkg/apis/audit/validation" @@ -34,6 +35,7 @@ var ( apiGroupVersions = []schema.GroupVersion{ auditv1beta1.SchemeGroupVersion, auditv1alpha1.SchemeGroupVersion, + auditv1.SchemeGroupVersion, } apiGroupVersionSet = map[schema.GroupVersion]bool{} ) diff --git a/vendor/k8s.io/apiserver/pkg/audit/scheme.go b/vendor/k8s.io/apiserver/pkg/audit/scheme.go index 330b8a7f1..d72e394ec 100644 --- a/vendor/k8s.io/apiserver/pkg/audit/scheme.go +++ b/vendor/k8s.io/apiserver/pkg/audit/scheme.go @@ -18,11 +18,12 @@ limitations under the License. package audit import ( - "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apiserver/pkg/apis/audit/v1" "k8s.io/apiserver/pkg/apis/audit/v1alpha1" "k8s.io/apiserver/pkg/apis/audit/v1beta1" ) @@ -31,7 +32,8 @@ var Scheme = runtime.NewScheme() var Codecs = serializer.NewCodecFactory(Scheme) func init() { - v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) + metav1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) + utilruntime.Must(v1.AddToScheme(Scheme)) utilruntime.Must(v1alpha1.AddToScheme(Scheme)) utilruntime.Must(v1beta1.AddToScheme(Scheme)) } diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go index c838546a7..69006c5bb 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go @@ -34,6 +34,7 @@ import ( "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/util/dryrun" utiltrace "k8s.io/apiserver/pkg/util/trace" ) @@ -116,7 +117,7 @@ func createHandler(r rest.NamedCreater, scope RequestScope, admit admission.Inte audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) userInfo, _ := request.UserFrom(ctx) - admissionAttributes := admission.NewAttributesRecord(obj, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Create, userInfo) + admissionAttributes := admission.NewAttributesRecord(obj, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Create, dryrun.IsDryRun(options.DryRun), userInfo) if mutatingAdmission, ok := admit.(admission.MutationInterface); ok && mutatingAdmission.Handles(admission.Create) { err = mutatingAdmission.Admit(admissionAttributes) if err != nil { diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go index fc37e71b2..b753b83b5 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go @@ -32,6 +32,7 @@ import ( "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/util/dryrun" utiltrace "k8s.io/apiserver/pkg/util/trace" ) @@ -108,7 +109,7 @@ func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope RequestSco trace.Step("About to check admission control") if admit != nil && admit.Handles(admission.Delete) { userInfo, _ := request.UserFrom(ctx) - attrs := admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Delete, userInfo) + attrs := admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Delete, dryrun.IsDryRun(options.DryRun), userInfo) if mutatingAdmission, ok := admit.(admission.MutationInterface); ok { if err := mutatingAdmission.Admit(attrs); err != nil { scope.err(err, w, req) @@ -196,27 +197,6 @@ func DeleteCollection(r rest.CollectionDeleter, checkBody bool, scope RequestSco ctx := req.Context() ctx = request.WithNamespace(ctx, namespace) ae := request.AuditEventFrom(ctx) - admit = admission.WithAudit(admit, ae) - - if admit != nil && admit.Handles(admission.Delete) { - userInfo, _ := request.UserFrom(ctx) - attrs := admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, "", scope.Resource, scope.Subresource, admission.Delete, userInfo) - if mutatingAdmission, ok := admit.(admission.MutationInterface); ok { - err = mutatingAdmission.Admit(attrs) - if err != nil { - scope.err(err, w, req) - return - } - } - - if validatingAdmission, ok := admit.(admission.ValidationInterface); ok { - err = validatingAdmission.Validate(attrs) - if err != nil { - scope.err(err, w, req) - return - } - } - } listOptions := metainternalversion.ListOptions{} if err := metainternalversion.ParameterCodec.DecodeParameters(req.URL.Query(), scope.MetaGroupVersion, &listOptions); err != nil { @@ -279,6 +259,27 @@ func DeleteCollection(r rest.CollectionDeleter, checkBody bool, scope RequestSco return } + admit = admission.WithAudit(admit, ae) + if admit != nil && admit.Handles(admission.Delete) { + userInfo, _ := request.UserFrom(ctx) + attrs := admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, "", scope.Resource, scope.Subresource, admission.Delete, dryrun.IsDryRun(options.DryRun), userInfo) + if mutatingAdmission, ok := admit.(admission.MutationInterface); ok { + err = mutatingAdmission.Admit(attrs) + if err != nil { + scope.err(err, w, req) + return + } + } + + if validatingAdmission, ok := admit.(admission.ValidationInterface); ok { + err = validatingAdmission.Validate(attrs) + if err != nil { + scope.err(err, w, req) + return + } + } + } + result, err := finishRequest(timeout, func() (runtime.Object, error) { return r.DeleteCollection(ctx, options, &listOptions) }) diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go index 65588638b..95e7ab5f6 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go @@ -41,6 +41,7 @@ import ( "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/util/dryrun" utiltrace "k8s.io/apiserver/pkg/util/trace" ) @@ -130,6 +131,7 @@ func PatchResource(r rest.Patcher, scope RequestScope, admit admission.Interface scope.Resource, scope.Subresource, admission.Update, + dryrun.IsDryRun(options.DryRun), userInfo, ) admissionCheck := func(updatedObject runtime.Object, currentObject runtime.Object) error { @@ -144,6 +146,7 @@ func PatchResource(r rest.Patcher, scope RequestScope, admit admission.Interface scope.Resource, scope.Subresource, admission.Update, + dryrun.IsDryRun(options.DryRun), userInfo, )) } diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go index 3f1b42327..8b3ca9d62 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go @@ -98,6 +98,11 @@ func (scope *RequestScope) AllowsStreamSchema(s string) bool { // ConnectResource returns a function that handles a connect request on a rest.Storage object. func ConnectResource(connecter rest.Connecter, scope RequestScope, admit admission.Interface, restPath string, isSubresource bool) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { + if isDryRun(req.URL) { + scope.err(errors.NewBadRequest("dryRun is not supported"), w, req) + return + } + namespace, name, err := scope.Namer.Name(req) if err != nil { scope.err(err, w, req) @@ -115,22 +120,17 @@ func ConnectResource(connecter rest.Connecter, scope RequestScope, admit admissi return } if admit != nil && admit.Handles(admission.Connect) { - connectRequest := &rest.ConnectRequest{ - Name: name, - Options: opts, - ResourcePath: restPath, - } userInfo, _ := request.UserFrom(ctx) // TODO: remove the mutating admission here as soon as we have ported all plugin that handle CONNECT if mutatingAdmission, ok := admit.(admission.MutationInterface); ok { - err = mutatingAdmission.Admit(admission.NewAttributesRecord(connectRequest, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Connect, userInfo)) + err = mutatingAdmission.Admit(admission.NewAttributesRecord(opts, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Connect, false, userInfo)) if err != nil { scope.err(err, w, req) return } } if validatingAdmission, ok := admit.(admission.ValidationInterface); ok { - err = validatingAdmission.Validate(admission.NewAttributesRecord(connectRequest, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Connect, userInfo)) + err = validatingAdmission.Validate(admission.NewAttributesRecord(opts, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Connect, false, userInfo)) if err != nil { scope.err(err, w, req) return diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go index a164ca203..dafe8c767 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go @@ -35,6 +35,7 @@ import ( "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/apiserver/pkg/util/dryrun" utiltrace "k8s.io/apiserver/pkg/util/trace" ) @@ -119,11 +120,11 @@ func UpdateResource(r rest.Updater, scope RequestScope, admit admission.Interfac return nil, fmt.Errorf("unexpected error when extracting UID from oldObj: %v", err.Error()) } else if !isNotZeroObject { if mutatingAdmission.Handles(admission.Create) { - return newObj, mutatingAdmission.Admit(admission.NewAttributesRecord(newObj, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Create, userInfo)) + return newObj, mutatingAdmission.Admit(admission.NewAttributesRecord(newObj, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Create, dryrun.IsDryRun(options.DryRun), userInfo)) } } else { if mutatingAdmission.Handles(admission.Update) { - return newObj, mutatingAdmission.Admit(admission.NewAttributesRecord(newObj, oldObj, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo)) + return newObj, mutatingAdmission.Admit(admission.NewAttributesRecord(newObj, oldObj, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, dryrun.IsDryRun(options.DryRun), userInfo)) } } return newObj, nil @@ -153,11 +154,11 @@ func UpdateResource(r rest.Updater, scope RequestScope, admit admission.Interfac rest.DefaultUpdatedObjectInfo(obj, transformers...), withAuthorization(rest.AdmissionToValidateObjectFunc( admit, - admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Create, userInfo)), + admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Create, dryrun.IsDryRun(options.DryRun), userInfo)), scope.Authorizer, createAuthorizerAttributes), rest.AdmissionToValidateObjectUpdateFunc( admit, - admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo)), + admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, dryrun.IsDryRun(options.DryRun), userInfo)), false, options, ) diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/installer.go b/vendor/k8s.io/apiserver/pkg/endpoints/installer.go index 4a3c49867..47aac69c6 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/installer.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/installer.go @@ -41,6 +41,8 @@ import ( genericfilters "k8s.io/apiserver/pkg/server/filters" utilopenapi "k8s.io/apiserver/pkg/util/openapi" openapibuilder "k8s.io/kube-openapi/pkg/builder" + openapiutil "k8s.io/kube-openapi/pkg/util" + openapiproto "k8s.io/kube-openapi/pkg/util/proto" ) const ( @@ -382,7 +384,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag actions = appendIf(actions, action{"LIST", resourcePath, resourceParams, namer, false}, isLister) actions = appendIf(actions, action{"POST", resourcePath, resourceParams, namer, false}, isCreater) actions = appendIf(actions, action{"DELETECOLLECTION", resourcePath, resourceParams, namer, false}, isCollectionDeleter) - // DEPRECATED + // DEPRECATED in 1.11 actions = appendIf(actions, action{"WATCHLIST", "watch/" + resourcePath, resourceParams, namer, false}, allowWatchList) // Add actions at the item path: /api/apiVersion/resource/{name} @@ -393,6 +395,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag actions = appendIf(actions, action{"PUT", itemPath, nameParams, namer, false}, isUpdater) actions = appendIf(actions, action{"PATCH", itemPath, nameParams, namer, false}, isPatcher) actions = appendIf(actions, action{"DELETE", itemPath, nameParams, namer, false}, isGracefulDeleter) + // DEPRECATED in 1.11 actions = appendIf(actions, action{"WATCH", "watch/" + itemPath, nameParams, namer, false}, isWatcher) actions = appendIf(actions, action{"CONNECT", itemPath, nameParams, namer, false}, isConnecter) actions = appendIf(actions, action{"CONNECT", itemPath + "/{path:*}", proxyParams, namer, false}, isConnecter && connectSubpath) @@ -429,7 +432,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag actions = appendIf(actions, action{"LIST", resourcePath, resourceParams, namer, false}, isLister) actions = appendIf(actions, action{"POST", resourcePath, resourceParams, namer, false}, isCreater) actions = appendIf(actions, action{"DELETECOLLECTION", resourcePath, resourceParams, namer, false}, isCollectionDeleter) - // DEPRECATED + // DEPRECATED in 1.11 actions = appendIf(actions, action{"WATCHLIST", "watch/" + resourcePath, resourceParams, namer, false}, allowWatchList) actions = appendIf(actions, action{"GET", itemPath, nameParams, namer, false}, isGetter) @@ -439,6 +442,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag actions = appendIf(actions, action{"PUT", itemPath, nameParams, namer, false}, isUpdater) actions = appendIf(actions, action{"PATCH", itemPath, nameParams, namer, false}, isPatcher) actions = appendIf(actions, action{"DELETE", itemPath, nameParams, namer, false}, isGracefulDeleter) + // DEPRECATED in 1.11 actions = appendIf(actions, action{"WATCH", "watch/" + itemPath, nameParams, namer, false}, isWatcher) actions = appendIf(actions, action{"CONNECT", itemPath, nameParams, namer, false}, isConnecter) actions = appendIf(actions, action{"CONNECT", itemPath + "/{path:*}", proxyParams, namer, false}, isConnecter && connectSubpath) @@ -448,6 +452,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag // TODO: more strongly type whether a resource allows these actions on "all namespaces" (bulk delete) if !isSubresource { actions = appendIf(actions, action{"LIST", resource, params, namer, true}, isLister) + // DEPRECATED in 1.11 actions = appendIf(actions, action{"WATCHLIST", "watch/" + resource, params, namer, true}, allowWatchList) } break @@ -498,15 +503,9 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag if a.group.MetaGroupVersion != nil { reqScope.MetaGroupVersion = *a.group.MetaGroupVersion } - if a.group.OpenAPIConfig != nil { - openAPIDefinitions, err := openapibuilder.BuildOpenAPIDefinitionsForResource(defaultVersionedObject, a.group.OpenAPIConfig) - if err != nil { - return nil, fmt.Errorf("unable to build openapi definitions for %v: %v", fqKindToRegister, err) - } - reqScope.OpenAPISchema, err = utilopenapi.ToProtoSchema(openAPIDefinitions, fqKindToRegister) - if err != nil { - return nil, fmt.Errorf("unable to get openapi schema for %v: %v", fqKindToRegister, err) - } + reqScope.OpenAPISchema, err = a.getOpenAPISchema(ws.RootPath(), resource, fqKindToRegister, defaultVersionedObject) + if err != nil { + return nil, fmt.Errorf("unable to get openapi schema for %v: %v", fqKindToRegister, err) } for _, action := range actions { producedObject := storageMeta.ProducesObject(action.Verb) @@ -744,12 +743,13 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag } addParams(route, action.Params) routes = append(routes, route) - // TODO: deprecated + // deprecated in 1.11 case "WATCH": // Watch a resource. doc := "watch changes to an object of kind " + kind if isSubresource { doc = "watch changes to " + subresource + " of an object of kind " + kind } + doc += ". deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter." handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulListResource(lister, watcher, reqScope, true, a.minRequestTimeout)) route := ws.GET(action.Path).To(handler). Doc(doc). @@ -763,12 +763,13 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag } addParams(route, action.Params) routes = append(routes, route) - // TODO: deprecated + // deprecated in 1.11 case "WATCHLIST": // Watch all resources of a kind. doc := "watch individual changes to a list of " + kind if isSubresource { doc = "watch individual changes to a list of " + subresource + " of " + kind } + doc += ". deprecated: use the 'watch' parameter with a list operation instead." handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulListResource(lister, watcher, reqScope, true, a.minRequestTimeout)) route := ws.GET(action.Path).To(handler). Doc(doc). @@ -852,6 +853,24 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag return &apiResource, nil } +// getOpenAPISchema builds the openapi schema for a single resource model to be given to each handler. It will +// return nil if the apiserver doesn't have openapi enabled, or if the specific path should be ignored by openapi. +func (a *APIInstaller) getOpenAPISchema(rootPath, resource string, kind schema.GroupVersionKind, sampleObject interface{}) (openapiproto.Schema, error) { + path := gpath.Join(rootPath, resource) + if a.group.OpenAPIConfig == nil { + return nil, nil + } + pathsToIgnore := openapiutil.NewTrie(a.group.OpenAPIConfig.IgnorePrefixes) + if pathsToIgnore.HasPrefix(path) { + return nil, nil + } + openAPIDefinitions, err := openapibuilder.BuildOpenAPIDefinitionsForResource(sampleObject, a.group.OpenAPIConfig) + if err != nil { + return nil, err + } + return utilopenapi.ToProtoSchema(openAPIDefinitions, kind) +} + // indirectArbitraryPointer returns *ptrToObject for an arbitrary pointer func indirectArbitraryPointer(ptrToObject interface{}) interface{} { return reflect.Indirect(reflect.ValueOf(ptrToObject)).Interface() diff --git a/vendor/k8s.io/apiserver/pkg/registry/rest/create.go b/vendor/k8s.io/apiserver/pkg/registry/rest/create.go index f399ebdc2..619acc3e0 100644 --- a/vendor/k8s.io/apiserver/pkg/registry/rest/create.go +++ b/vendor/k8s.io/apiserver/pkg/registry/rest/create.go @@ -170,6 +170,7 @@ func AdmissionToValidateObjectFunc(admit admission.Interface, staticAttributes a staticAttributes.GetResource(), staticAttributes.GetSubresource(), staticAttributes.GetOperation(), + staticAttributes.IsDryRun(), staticAttributes.GetUserInfo(), ) if !validatingAdmission.Handles(finalAttributes.GetOperation()) { diff --git a/vendor/k8s.io/apiserver/pkg/registry/rest/rest.go b/vendor/k8s.io/apiserver/pkg/registry/rest/rest.go index d3d1b2f8b..0c67ce3e3 100644 --- a/vendor/k8s.io/apiserver/pkg/registry/rest/rest.go +++ b/vendor/k8s.io/apiserver/pkg/registry/rest/rest.go @@ -334,19 +334,3 @@ type StorageMetadata interface { // it is not nil. Only the type of the return object matters, the value will be ignored. ProducesObject(verb string) interface{} } - -// +k8s:deepcopy-gen=true -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// ConnectRequest is an object passed to admission control for Connect operations -type ConnectRequest struct { - // Name is the name of the object on which the connect request was made - Name string - - // Options is the options object passed to the connect request. See the NewConnectOptions method on Connecter - Options runtime.Object - - // ResourcePath is the path for the resource in the REST server (ie. "pods/proxy") - ResourcePath string -} - -func (obj *ConnectRequest) GetObjectKind() schema.ObjectKind { return schema.EmptyObjectKind } diff --git a/vendor/k8s.io/apiserver/pkg/registry/rest/update.go b/vendor/k8s.io/apiserver/pkg/registry/rest/update.go index b08dd1479..24e918604 100644 --- a/vendor/k8s.io/apiserver/pkg/registry/rest/update.go +++ b/vendor/k8s.io/apiserver/pkg/registry/rest/update.go @@ -263,6 +263,7 @@ func AdmissionToValidateObjectUpdateFunc(admit admission.Interface, staticAttrib staticAttributes.GetResource(), staticAttributes.GetSubresource(), staticAttributes.GetOperation(), + staticAttributes.IsDryRun(), staticAttributes.GetUserInfo(), ) if !validatingAdmission.Handles(finalAttributes.GetOperation()) { diff --git a/vendor/k8s.io/apiserver/pkg/registry/rest/zz_generated.deepcopy.go b/vendor/k8s.io/apiserver/pkg/registry/rest/zz_generated.deepcopy.go deleted file mode 100644 index ef8c371ba..000000000 --- a/vendor/k8s.io/apiserver/pkg/registry/rest/zz_generated.deepcopy.go +++ /dev/null @@ -1,52 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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. -*/ - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package rest - -import ( - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConnectRequest) DeepCopyInto(out *ConnectRequest) { - *out = *in - if in.Options != nil { - out.Options = in.Options.DeepCopyObject() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectRequest. -func (in *ConnectRequest) DeepCopy() *ConnectRequest { - if in == nil { - return nil - } - out := new(ConnectRequest) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ConnectRequest) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/vendor/k8s.io/apiserver/pkg/server/options/audit.go b/vendor/k8s.io/apiserver/pkg/server/options/audit.go index ad4d65b11..d06fffe40 100644 --- a/vendor/k8s.io/apiserver/pkg/server/options/audit.go +++ b/vendor/k8s.io/apiserver/pkg/server/options/audit.go @@ -28,6 +28,7 @@ import ( "gopkg.in/natefinch/lumberjack.v2" "k8s.io/apimachinery/pkg/runtime/schema" + auditv1 "k8s.io/apiserver/pkg/apis/audit/v1" auditv1alpha1 "k8s.io/apiserver/pkg/apis/audit/v1alpha1" auditv1beta1 "k8s.io/apiserver/pkg/apis/audit/v1beta1" "k8s.io/apiserver/pkg/audit" @@ -138,7 +139,8 @@ func NewAuditOptions() *AuditOptions { Mode: ModeBatch, BatchConfig: pluginbuffered.NewDefaultBatchConfig(), }, - TruncateOptions: NewAuditTruncateOptions(), + TruncateOptions: NewAuditTruncateOptions(), + // TODO(audit): use v1 API in release 1.13 GroupVersionString: "audit.k8s.io/v1beta1", }, LogOptions: AuditLogOptions{ @@ -147,7 +149,8 @@ func NewAuditOptions() *AuditOptions { Mode: ModeBlocking, BatchConfig: defaultLogBatchConfig, }, - TruncateOptions: NewAuditTruncateOptions(), + TruncateOptions: NewAuditTruncateOptions(), + // TODO(audit): use v1 API in release 1.13 GroupVersionString: "audit.k8s.io/v1beta1", }, } @@ -222,6 +225,7 @@ func validateBackendBatchOptions(pluginName string, options AuditBatchOptions) e var knownGroupVersions = []schema.GroupVersion{ auditv1alpha1.SchemeGroupVersion, auditv1beta1.SchemeGroupVersion, + auditv1.SchemeGroupVersion, } func validateGroupVersionString(groupVersion string) error { diff --git a/vendor/k8s.io/apiserver/pkg/server/routes/profiling.go b/vendor/k8s.io/apiserver/pkg/server/routes/profiling.go index f09a96695..b57d590f5 100644 --- a/vendor/k8s.io/apiserver/pkg/server/routes/profiling.go +++ b/vendor/k8s.io/apiserver/pkg/server/routes/profiling.go @@ -28,9 +28,16 @@ type Profiling struct{} // Install adds the Profiling webservice to the given mux. func (d Profiling) Install(c *mux.PathRecorderMux) { - c.UnlistedHandle("/debug/pprof", http.HandlerFunc(pprof.Index)) + c.UnlistedHandleFunc("/debug/pprof", redirectTo("/debug/pprof/")) c.UnlistedHandlePrefix("/debug/pprof/", http.HandlerFunc(pprof.Index)) c.UnlistedHandleFunc("/debug/pprof/profile", pprof.Profile) c.UnlistedHandleFunc("/debug/pprof/symbol", pprof.Symbol) c.UnlistedHandleFunc("/debug/pprof/trace", pprof.Trace) } + +// redirectTo redirects request to a certain destination. +func redirectTo(to string) func(http.ResponseWriter, *http.Request) { + return func(rw http.ResponseWriter, req *http.Request) { + http.Redirect(rw, req, to, http.StatusFound) + } +} diff --git a/vendor/k8s.io/client-go/discovery/round_tripper.go b/vendor/k8s.io/client-go/discovery/round_tripper.go index a195d2a2a..75b7f5209 100644 --- a/vendor/k8s.io/client-go/discovery/round_tripper.go +++ b/vendor/k8s.io/client-go/discovery/round_tripper.go @@ -20,6 +20,7 @@ import ( "net/http" "path/filepath" + "github.com/golang/glog" "github.com/gregjones/httpcache" "github.com/gregjones/httpcache/diskcache" "github.com/peterbourgon/diskv" @@ -47,4 +48,15 @@ func (rt *cacheRoundTripper) RoundTrip(req *http.Request) (*http.Response, error return rt.rt.RoundTrip(req) } +func (rt *cacheRoundTripper) CancelRequest(req *http.Request) { + type canceler interface { + CancelRequest(*http.Request) + } + if cr, ok := rt.rt.Transport.(canceler); ok { + cr.CancelRequest(req) + } else { + glog.Errorf("CancelRequest not implemented by %T", rt.rt.Transport) + } +} + func (rt *cacheRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.rt.Transport }