Merge pull request #59793 from nikhita/staging-repos-boilerplate

Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

staging: add boilerplate header

Follow up of https://github.com/kubernetes/kubernetes/pull/57656.

Adds boilerplate in the relevant staging repos so that they don't need to depend on code-generator's boilerplate.

**Release note**:

```release-note
NONE
```

/cc sttts fisherxu

Kubernetes-commit: 1a1643bb5df07d94330e1b16d182cee660533f91
This commit is contained in:
Kubernetes Publisher 2018-02-22 20:38:30 -08:00
commit a101c83a5e
33 changed files with 5357 additions and 1326 deletions

374
Godeps/Godeps.json generated
View File

@ -152,751 +152,751 @@
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1alpha1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/apps/v1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/apps/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/apps/v1beta2",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/authentication/v1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/authentication/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/authorization/v1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/authorization/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/autoscaling/v1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/autoscaling/v2beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/batch/v1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/batch/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/batch/v2alpha1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/certificates/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/core/v1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/events/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/extensions/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/networking/v1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/policy/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/rbac/v1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/rbac/v1alpha1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/rbac/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/scheduling/v1alpha1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/settings/v1alpha1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/storage/v1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/storage/v1alpha1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/api/storage/v1beta1",
"Rev": "60e7a221fedd1b4a1e0cbf50cf3d2f259f2f9cd6"
"Rev": "c4b8804aa02d17a4a0ef92e7cb86260a6ba58de7"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/fields",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/labels",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/selection",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/types",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/version",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/watch",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
"Rev": "5d3b627f6c0413ebaf4d825444dbb947cf9fcac2"
"Rev": "30b53f19cfbba6e1a971adfd8edd674b6e0f3ead"
},
{
"ImportPath": "k8s.io/client-go/discovery",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/discovery/fake",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/admissionregistration",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/apps",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/apps/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/apps/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/apps/v1beta2",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/autoscaling",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/autoscaling/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/batch",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/batch/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/batch/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/batch/v2alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/certificates",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/certificates/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/core",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/core/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/events",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/events/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/extensions",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/extensions/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/internalinterfaces",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/networking",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/networking/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/policy",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/policy/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/rbac",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/rbac/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/rbac/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/scheduling",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/settings",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/settings/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/storage",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/storage/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/storage/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/informers/storage/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/scheme",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/apps/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/apps/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/apps/v1beta2",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/autoscaling/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/batch/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/batch/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/batch/v2alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/certificates/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/core/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/events/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/extensions/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/networking/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/policy/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/rbac/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/rbac/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/settings/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/storage/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/storage/v1alpha1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/listers/storage/v1beta1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/pkg/version",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/rest",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/rest/watch",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/testing",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/tools/auth",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/tools/cache",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/tools/clientcmd",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/tools/clientcmd/api",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/tools/metrics",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/tools/pager",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/tools/record",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/tools/reference",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/transport",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/util/buffer",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/util/cert",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/util/flowcontrol",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/util/homedir",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/util/integer",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/util/retry",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/client-go/util/workqueue",
"Rev": "d3e282295fcf4cd8df62d48c6dcc184337f17f3d"
"Rev": "8b0c96689ac641f27b80e24be05940baecb056ae"
},
{
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto",

16
hack/boilerplate.go.txt Normal file
View File

@ -0,0 +1,16 @@
/*
Copyright YEAR 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.
*/

View File

@ -28,7 +28,8 @@ CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-ge
${CODEGEN_PKG}/generate-groups.sh "deepcopy,client,informer,lister" \
k8s.io/sample-controller/pkg/client k8s.io/sample-controller/pkg/apis \
samplecontroller:v1alpha1 \
--output-base "$(dirname ${BASH_SOURCE})/../../.."
--output-base "$(dirname ${BASH_SOURCE})/../../.." \
--go-header-file ${SCRIPT_ROOT}/hack/boilerplate.go.txt
# To use your own boilerplate text append:
# To use your own boilerplate text use:
# --go-header-file ${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt

File diff suppressed because it is too large Load Diff

View File

@ -170,7 +170,7 @@ message Binding {
optional ObjectReference target = 2;
}
// Represents storage that is managed by an external CSI volume driver
// Represents storage that is managed by an external CSI volume driver (Beta feature)
message CSIPersistentVolumeSource {
// Driver is the name of the driver to use for this volume.
// Required.
@ -2528,7 +2528,7 @@ message PersistentVolumeSource {
// +optional
optional StorageOSPersistentVolumeSource storageos = 21;
// CSI represents storage that handled by an external CSI driver
// CSI represents storage that handled by an external CSI driver (Beta feature).
// +optional
optional CSIPersistentVolumeSource csi = 22;
}
@ -2578,6 +2578,11 @@ message PersistentVolumeSpec {
// This is an alpha feature and may change in the future.
// +optional
optional string volumeMode = 8;
// NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
// This field influences the scheduling of pods that use this volume.
// +optional
optional VolumeNodeAffinity nodeAffinity = 9;
}
// PersistentVolumeStatus is the current status of a persistent volume.
@ -3078,6 +3083,16 @@ message PodSpec {
// +optional
optional bool hostIPC = 13;
// Share a single process namespace between all of the containers in a pod.
// When this is set containers will be able to view and signal processes from other containers
// in the same pod, and the first process in each container will not be assigned PID 1.
// HostPID and ShareProcessNamespace cannot both be set.
// Optional: Default to false.
// This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature.
// +k8s:conversion-gen=false
// +optional
optional bool shareProcessNamespace = 27;
// SecurityContext holds pod-level security attributes and common container settings.
// Optional: Defaults to empty. See type description for default values of each field.
// +optional
@ -4457,6 +4472,12 @@ message VolumeMount {
optional string mountPropagation = 5;
}
// VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.
message VolumeNodeAffinity {
// Required specifies hard node constraints that must be met.
optional NodeSelector required = 1;
}
// Projection that may be projected along with other supported volume types
message VolumeProjection {
// information about the secret data to project

25
vendor/k8s.io/api/core/v1/types.go generated vendored
View File

@ -446,7 +446,7 @@ type PersistentVolumeSource struct {
// More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
// +optional
StorageOS *StorageOSPersistentVolumeSource `json:"storageos,omitempty" protobuf:"bytes,21,opt,name=storageos"`
// CSI represents storage that handled by an external CSI driver
// CSI represents storage that handled by an external CSI driver (Beta feature).
// +optional
CSI *CSIPersistentVolumeSource `json:"csi,omitempty" protobuf:"bytes,22,opt,name=csi"`
}
@ -530,6 +530,16 @@ type PersistentVolumeSpec struct {
// This is an alpha feature and may change in the future.
// +optional
VolumeMode *PersistentVolumeMode `json:"volumeMode,omitempty" protobuf:"bytes,8,opt,name=volumeMode,casttype=PersistentVolumeMode"`
// NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
// This field influences the scheduling of pods that use this volume.
// +optional
NodeAffinity *VolumeNodeAffinity `json:"nodeAffinity,omitempty" protobuf:"bytes,9,opt,name=nodeAffinity"`
}
// VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.
type VolumeNodeAffinity struct {
// Required specifies hard node constraints that must be met.
Required *NodeSelector `json:"required,omitempty" protobuf:"bytes,1,opt,name=required"`
}
// PersistentVolumeReclaimPolicy describes a policy for end-of-life maintenance of persistent volumes.
@ -1717,7 +1727,7 @@ type LocalVolumeSource struct {
Path string `json:"path" protobuf:"bytes,1,opt,name=path"`
}
// Represents storage that is managed by an external CSI volume driver
// Represents storage that is managed by an external CSI volume driver (Beta feature)
type CSIPersistentVolumeSource struct {
// Driver is the name of the driver to use for this volume.
// Required.
@ -2851,6 +2861,15 @@ type PodSpec struct {
// +k8s:conversion-gen=false
// +optional
HostIPC bool `json:"hostIPC,omitempty" protobuf:"varint,13,opt,name=hostIPC"`
// Share a single process namespace between all of the containers in a pod.
// When this is set containers will be able to view and signal processes from other containers
// in the same pod, and the first process in each container will not be assigned PID 1.
// HostPID and ShareProcessNamespace cannot both be set.
// Optional: Default to false.
// This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature.
// +k8s:conversion-gen=false
// +optional
ShareProcessNamespace *bool `json:"shareProcessNamespace,omitempty" protobuf:"varint,27,opt,name=shareProcessNamespace"`
// SecurityContext holds pod-level security attributes and common container settings.
// Optional: Defaults to empty. See type description for default values of each field.
// +optional
@ -4735,6 +4754,8 @@ const (
// HugePages request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
// As burst is not supported for HugePages, we would only quota its request, and ignore the limit.
ResourceRequestsHugePagesPrefix = "requests.hugepages-"
// Default resource requests prefix
DefaultResourceRequestsPrefix = "requests."
)
// A ResourceQuotaScope defines a filter that must match each object tracked by a quota

View File

@ -117,7 +117,7 @@ func (Binding) SwaggerDoc() map[string]string {
}
var map_CSIPersistentVolumeSource = map[string]string{
"": "Represents storage that is managed by an external CSI volume driver",
"": "Represents storage that is managed by an external CSI volume driver (Beta feature)",
"driver": "Driver is the name of the driver to use for this volume. Required.",
"volumeHandle": "VolumeHandle is the unique volume name returned by the CSI volume plugins CreateVolume to refer to the volume on all subsequent calls. Required.",
"readOnly": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).",
@ -1276,7 +1276,7 @@ var map_PersistentVolumeSource = map[string]string{
"scaleIO": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.",
"local": "Local represents directly-attached storage with node affinity",
"storageos": "StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md",
"csi": "CSI represents storage that handled by an external CSI driver",
"csi": "CSI represents storage that handled by an external CSI driver (Beta feature).",
}
func (PersistentVolumeSource) SwaggerDoc() map[string]string {
@ -1292,6 +1292,7 @@ var map_PersistentVolumeSpec = map[string]string{
"storageClassName": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.",
"mountOptions": "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options",
"volumeMode": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. This is an alpha feature and may change in the future.",
"nodeAffinity": "NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume.",
}
func (PersistentVolumeSpec) SwaggerDoc() map[string]string {
@ -1505,6 +1506,7 @@ var map_PodSpec = map[string]string{
"hostNetwork": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.",
"hostPID": "Use the host's pid namespace. Optional: Default to false.",
"hostIPC": "Use the host's ipc namespace. Optional: Default to false.",
"shareProcessNamespace": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature.",
"securityContext": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
"imagePullSecrets": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
"hostname": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
@ -2176,6 +2178,15 @@ func (VolumeMount) SwaggerDoc() map[string]string {
return map_VolumeMount
}
var map_VolumeNodeAffinity = map[string]string{
"": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.",
"required": "Required specifies hard node constraints that must be met.",
}
func (VolumeNodeAffinity) SwaggerDoc() map[string]string {
return map_VolumeNodeAffinity
}
var map_VolumeProjection = map[string]string{
"": "Projection that may be projected along with other supported volume types",
"secret": "information about the secret data to project",

View File

@ -3355,6 +3355,15 @@ func (in *PersistentVolumeSpec) DeepCopyInto(out *PersistentVolumeSpec) {
**out = **in
}
}
if in.NodeAffinity != nil {
in, out := &in.NodeAffinity, &out.NodeAffinity
if *in == nil {
*out = nil
} else {
*out = new(VolumeNodeAffinity)
(*in).DeepCopyInto(*out)
}
}
return
}
@ -3945,6 +3954,15 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) {
**out = **in
}
}
if in.ShareProcessNamespace != nil {
in, out := &in.ShareProcessNamespace, &out.ShareProcessNamespace
if *in == nil {
*out = nil
} else {
*out = new(bool)
**out = **in
}
}
if in.SecurityContext != nil {
in, out := &in.SecurityContext, &out.SecurityContext
if *in == nil {
@ -5572,6 +5590,31 @@ func (in *VolumeMount) DeepCopy() *VolumeMount {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VolumeNodeAffinity) DeepCopyInto(out *VolumeNodeAffinity) {
*out = *in
if in.Required != nil {
in, out := &in.Required, &out.Required
if *in == nil {
*out = nil
} else {
*out = new(NodeSelector)
(*in).DeepCopyInto(*out)
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeNodeAffinity.
func (in *VolumeNodeAffinity) DeepCopy() *VolumeNodeAffinity {
if in == nil {
return nil
}
out := new(VolumeNodeAffinity)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VolumeProjection) DeepCopyInto(out *VolumeProjection) {
*out = *in

View File

@ -19,6 +19,7 @@ go_library(
deps = [
"//vendor/github.com/gogo/protobuf/proto:go_default_library",
"//vendor/github.com/gogo/protobuf/sortkeys:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,25 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto";
// Package-wide variables from generator "generated".
option go_package = "v1beta1";
// AllowedFlexVolume represents a single Flexvolume that is allowed to be used.
message AllowedFlexVolume {
// Driver is the name of the Flexvolume driver.
optional string driver = 1;
}
// defines the host volume conditions that will be enabled by a policy
// for pods to use. It requires the path prefix to be defined.
message AllowedHostPath {
// is the path prefix that the host volume must match.
// It does not support `*`.
// Trailing slashes are trimmed when validating the path prefix with a host path.
//
// Examples:
// `/foo` would allow `/foo`, `/foo/` and `/foo/bar`
// `/foo` would not allow `/food` or `/etc/foo`
optional string pathPrefix = 1;
}
// Eviction evicts a pod from its node subject to certain policies and safety constraints.
// This is a subresource of Pod. A request to cause such an eviction is
// created by POSTing to .../pods/<pod name>/evictions.
@ -41,6 +60,37 @@ message Eviction {
optional k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions deleteOptions = 2;
}
// FSGroupStrategyOptions defines the strategy type and options used to create the strategy.
message FSGroupStrategyOptions {
// Rule is the strategy that will dictate what FSGroup is used in the SecurityContext.
// +optional
optional string rule = 1;
// Ranges are the allowed ranges of fs groups. If you would like to force a single
// fs group then supply a single range with the same start and end.
// +optional
repeated IDRange ranges = 2;
}
// Host Port Range defines a range of host ports that will be enabled by a policy
// for pods to use. It requires both the start and end to be defined.
message HostPortRange {
// min is the start of the range, inclusive.
optional int32 min = 1;
// max is the end of the range, inclusive.
optional int32 max = 2;
}
// ID Range provides a min/max of an allowed range of IDs.
message IDRange {
// Min is the start of the range, inclusive.
optional int64 min = 1;
// Max is the end of the range, inclusive.
optional int64 max = 2;
}
// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods
message PodDisruptionBudget {
optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
@ -112,3 +162,146 @@ message PodDisruptionBudgetStatus {
optional int32 expectedPods = 6;
}
// Pod Security Policy governs the ability to make requests that affect the Security Context
// that will be applied to a pod and container.
message PodSecurityPolicy {
// Standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
// +optional
optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
// spec defines the policy enforced.
// +optional
optional PodSecurityPolicySpec spec = 2;
}
// Pod Security Policy List is a list of PodSecurityPolicy objects.
message PodSecurityPolicyList {
// Standard list metadata.
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
// +optional
optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
// Items is a list of schema objects.
repeated PodSecurityPolicy items = 2;
}
// Pod Security Policy Spec defines the policy enforced.
message PodSecurityPolicySpec {
// privileged determines if a pod can request to be run as privileged.
// +optional
optional bool privileged = 1;
// DefaultAddCapabilities is the default set of capabilities that will be added to the container
// unless the pod spec specifically drops the capability. You may not list a capability in both
// DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly
// allowed, and need not be included in the AllowedCapabilities list.
// +optional
repeated string defaultAddCapabilities = 2;
// RequiredDropCapabilities are the capabilities that will be dropped from the container. These
// are required to be dropped and cannot be added.
// +optional
repeated string requiredDropCapabilities = 3;
// AllowedCapabilities is a list of capabilities that can be requested to add to the container.
// Capabilities in this field may be added at the pod author's discretion.
// You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities.
// +optional
repeated string allowedCapabilities = 4;
// volumes is a white list of allowed volume plugins. Empty indicates that all plugins
// may be used.
// +optional
repeated string volumes = 5;
// hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.
// +optional
optional bool hostNetwork = 6;
// hostPorts determines which host port ranges are allowed to be exposed.
// +optional
repeated HostPortRange hostPorts = 7;
// hostPID determines if the policy allows the use of HostPID in the pod spec.
// +optional
optional bool hostPID = 8;
// hostIPC determines if the policy allows the use of HostIPC in the pod spec.
// +optional
optional bool hostIPC = 9;
// seLinux is the strategy that will dictate the allowable labels that may be set.
optional SELinuxStrategyOptions seLinux = 10;
// runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.
optional RunAsUserStrategyOptions runAsUser = 11;
// SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.
optional SupplementalGroupsStrategyOptions supplementalGroups = 12;
// FSGroup is the strategy that will dictate what fs group is used by the SecurityContext.
optional FSGroupStrategyOptions fsGroup = 13;
// ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file
// system. If the container specifically requests to run with a non-read only root file system
// the PSP should deny the pod.
// If set to false the container may run with a read only root file system if it wishes but it
// will not be forced to.
// +optional
optional bool readOnlyRootFilesystem = 14;
// DefaultAllowPrivilegeEscalation controls the default setting for whether a
// process can gain more privileges than its parent process.
// +optional
optional bool defaultAllowPrivilegeEscalation = 15;
// AllowPrivilegeEscalation determines if a pod can request to allow
// privilege escalation. If unspecified, defaults to true.
// +optional
optional bool allowPrivilegeEscalation = 16;
// is a white list of allowed host paths. Empty indicates that all host paths may be used.
// +optional
repeated AllowedHostPath allowedHostPaths = 17;
// AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all
// Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes
// is allowed in the "Volumes" field.
// +optional
repeated AllowedFlexVolume allowedFlexVolumes = 18;
}
// Run A sUser Strategy Options defines the strategy type and any options used to create the strategy.
message RunAsUserStrategyOptions {
// Rule is the strategy that will dictate the allowable RunAsUser values that may be set.
optional string rule = 1;
// Ranges are the allowed ranges of uids that may be used.
// +optional
repeated IDRange ranges = 2;
}
// SELinux Strategy Options defines the strategy type and any options used to create the strategy.
message SELinuxStrategyOptions {
// type is the strategy that will dictate the allowable labels that may be set.
optional string rule = 1;
// seLinuxOptions required to run as; required for MustRunAs
// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
// +optional
optional k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 2;
}
// SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.
message SupplementalGroupsStrategyOptions {
// Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.
// +optional
optional string rule = 1;
// Ranges are the allowed ranges of supplemental groups. If you would like to force a single
// supplemental group then supply a single range with the same start and end.
// +optional
repeated IDRange ranges = 2;
}

View File

@ -46,6 +46,8 @@ func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion,
&PodDisruptionBudget{},
&PodDisruptionBudgetList{},
&PodSecurityPolicy{},
&PodSecurityPolicyList{},
&Eviction{},
)
// Add the watch version that applies

View File

@ -17,6 +17,7 @@ limitations under the License.
package v1beta1
import (
"k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
)
@ -113,3 +114,255 @@ type Eviction struct {
// DeleteOptions may be provided
DeleteOptions *metav1.DeleteOptions `json:"deleteOptions,omitempty" protobuf:"bytes,2,opt,name=deleteOptions"`
}
// +genclient
// +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// Pod Security Policy governs the ability to make requests that affect the Security Context
// that will be applied to a pod and container.
type PodSecurityPolicy struct {
metav1.TypeMeta `json:",inline"`
// Standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
// spec defines the policy enforced.
// +optional
Spec PodSecurityPolicySpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`
}
// Pod Security Policy Spec defines the policy enforced.
type PodSecurityPolicySpec struct {
// privileged determines if a pod can request to be run as privileged.
// +optional
Privileged bool `json:"privileged,omitempty" protobuf:"varint,1,opt,name=privileged"`
// DefaultAddCapabilities is the default set of capabilities that will be added to the container
// unless the pod spec specifically drops the capability. You may not list a capability in both
// DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly
// allowed, and need not be included in the AllowedCapabilities list.
// +optional
DefaultAddCapabilities []v1.Capability `json:"defaultAddCapabilities,omitempty" protobuf:"bytes,2,rep,name=defaultAddCapabilities,casttype=k8s.io/api/core/v1.Capability"`
// RequiredDropCapabilities are the capabilities that will be dropped from the container. These
// are required to be dropped and cannot be added.
// +optional
RequiredDropCapabilities []v1.Capability `json:"requiredDropCapabilities,omitempty" protobuf:"bytes,3,rep,name=requiredDropCapabilities,casttype=k8s.io/api/core/v1.Capability"`
// AllowedCapabilities is a list of capabilities that can be requested to add to the container.
// Capabilities in this field may be added at the pod author's discretion.
// You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities.
// +optional
AllowedCapabilities []v1.Capability `json:"allowedCapabilities,omitempty" protobuf:"bytes,4,rep,name=allowedCapabilities,casttype=k8s.io/api/core/v1.Capability"`
// volumes is a white list of allowed volume plugins. Empty indicates that all plugins
// may be used.
// +optional
Volumes []FSType `json:"volumes,omitempty" protobuf:"bytes,5,rep,name=volumes,casttype=FSType"`
// hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.
// +optional
HostNetwork bool `json:"hostNetwork,omitempty" protobuf:"varint,6,opt,name=hostNetwork"`
// hostPorts determines which host port ranges are allowed to be exposed.
// +optional
HostPorts []HostPortRange `json:"hostPorts,omitempty" protobuf:"bytes,7,rep,name=hostPorts"`
// hostPID determines if the policy allows the use of HostPID in the pod spec.
// +optional
HostPID bool `json:"hostPID,omitempty" protobuf:"varint,8,opt,name=hostPID"`
// hostIPC determines if the policy allows the use of HostIPC in the pod spec.
// +optional
HostIPC bool `json:"hostIPC,omitempty" protobuf:"varint,9,opt,name=hostIPC"`
// seLinux is the strategy that will dictate the allowable labels that may be set.
SELinux SELinuxStrategyOptions `json:"seLinux" protobuf:"bytes,10,opt,name=seLinux"`
// runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.
RunAsUser RunAsUserStrategyOptions `json:"runAsUser" protobuf:"bytes,11,opt,name=runAsUser"`
// SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.
SupplementalGroups SupplementalGroupsStrategyOptions `json:"supplementalGroups" protobuf:"bytes,12,opt,name=supplementalGroups"`
// FSGroup is the strategy that will dictate what fs group is used by the SecurityContext.
FSGroup FSGroupStrategyOptions `json:"fsGroup" protobuf:"bytes,13,opt,name=fsGroup"`
// ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file
// system. If the container specifically requests to run with a non-read only root file system
// the PSP should deny the pod.
// If set to false the container may run with a read only root file system if it wishes but it
// will not be forced to.
// +optional
ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty" protobuf:"varint,14,opt,name=readOnlyRootFilesystem"`
// DefaultAllowPrivilegeEscalation controls the default setting for whether a
// process can gain more privileges than its parent process.
// +optional
DefaultAllowPrivilegeEscalation *bool `json:"defaultAllowPrivilegeEscalation,omitempty" protobuf:"varint,15,opt,name=defaultAllowPrivilegeEscalation"`
// AllowPrivilegeEscalation determines if a pod can request to allow
// privilege escalation. If unspecified, defaults to true.
// +optional
AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty" protobuf:"varint,16,opt,name=allowPrivilegeEscalation"`
// is a white list of allowed host paths. Empty indicates that all host paths may be used.
// +optional
AllowedHostPaths []AllowedHostPath `json:"allowedHostPaths,omitempty" protobuf:"bytes,17,rep,name=allowedHostPaths"`
// AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all
// Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes
// is allowed in the "Volumes" field.
// +optional
AllowedFlexVolumes []AllowedFlexVolume `json:"allowedFlexVolumes,omitempty" protobuf:"bytes,18,rep,name=allowedFlexVolumes"`
}
// defines the host volume conditions that will be enabled by a policy
// for pods to use. It requires the path prefix to be defined.
type AllowedHostPath struct {
// is the path prefix that the host volume must match.
// It does not support `*`.
// Trailing slashes are trimmed when validating the path prefix with a host path.
//
// Examples:
// `/foo` would allow `/foo`, `/foo/` and `/foo/bar`
// `/foo` would not allow `/food` or `/etc/foo`
PathPrefix string `json:"pathPrefix,omitempty" protobuf:"bytes,1,rep,name=pathPrefix"`
}
// FS Type gives strong typing to different file systems that are used by volumes.
type FSType string
var (
AzureFile FSType = "azureFile"
Flocker FSType = "flocker"
FlexVolume FSType = "flexVolume"
HostPath FSType = "hostPath"
EmptyDir FSType = "emptyDir"
GCEPersistentDisk FSType = "gcePersistentDisk"
AWSElasticBlockStore FSType = "awsElasticBlockStore"
GitRepo FSType = "gitRepo"
Secret FSType = "secret"
NFS FSType = "nfs"
ISCSI FSType = "iscsi"
Glusterfs FSType = "glusterfs"
PersistentVolumeClaim FSType = "persistentVolumeClaim"
RBD FSType = "rbd"
Cinder FSType = "cinder"
CephFS FSType = "cephFS"
DownwardAPI FSType = "downwardAPI"
FC FSType = "fc"
ConfigMap FSType = "configMap"
Quobyte FSType = "quobyte"
AzureDisk FSType = "azureDisk"
All FSType = "*"
)
// AllowedFlexVolume represents a single Flexvolume that is allowed to be used.
type AllowedFlexVolume struct {
// Driver is the name of the Flexvolume driver.
Driver string `json:"driver" protobuf:"bytes,1,opt,name=driver"`
}
// Host Port Range defines a range of host ports that will be enabled by a policy
// for pods to use. It requires both the start and end to be defined.
type HostPortRange struct {
// min is the start of the range, inclusive.
Min int32 `json:"min" protobuf:"varint,1,opt,name=min"`
// max is the end of the range, inclusive.
Max int32 `json:"max" protobuf:"varint,2,opt,name=max"`
}
// SELinux Strategy Options defines the strategy type and any options used to create the strategy.
type SELinuxStrategyOptions struct {
// type is the strategy that will dictate the allowable labels that may be set.
Rule SELinuxStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=SELinuxStrategy"`
// seLinuxOptions required to run as; required for MustRunAs
// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
// +optional
SELinuxOptions *v1.SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,2,opt,name=seLinuxOptions"`
}
// SELinuxStrategy denotes strategy types for generating SELinux options for a
// Security Context.
type SELinuxStrategy string
const (
// container must have SELinux labels of X applied.
SELinuxStrategyMustRunAs SELinuxStrategy = "MustRunAs"
// container may make requests for any SELinux context labels.
SELinuxStrategyRunAsAny SELinuxStrategy = "RunAsAny"
)
// Run A sUser Strategy Options defines the strategy type and any options used to create the strategy.
type RunAsUserStrategyOptions struct {
// Rule is the strategy that will dictate the allowable RunAsUser values that may be set.
Rule RunAsUserStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=RunAsUserStrategy"`
// Ranges are the allowed ranges of uids that may be used.
// +optional
Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"`
}
// ID Range provides a min/max of an allowed range of IDs.
type IDRange struct {
// Min is the start of the range, inclusive.
Min int64 `json:"min" protobuf:"varint,1,opt,name=min"`
// Max is the end of the range, inclusive.
Max int64 `json:"max" protobuf:"varint,2,opt,name=max"`
}
// RunAsUserStrategy denotes strategy types for generating RunAsUser values for a
// Security Context.
type RunAsUserStrategy string
const (
// container must run as a particular uid.
RunAsUserStrategyMustRunAs RunAsUserStrategy = "MustRunAs"
// container must run as a non-root uid
RunAsUserStrategyMustRunAsNonRoot RunAsUserStrategy = "MustRunAsNonRoot"
// container may make requests for any uid.
RunAsUserStrategyRunAsAny RunAsUserStrategy = "RunAsAny"
)
// FSGroupStrategyOptions defines the strategy type and options used to create the strategy.
type FSGroupStrategyOptions struct {
// Rule is the strategy that will dictate what FSGroup is used in the SecurityContext.
// +optional
Rule FSGroupStrategyType `json:"rule,omitempty" protobuf:"bytes,1,opt,name=rule,casttype=FSGroupStrategyType"`
// Ranges are the allowed ranges of fs groups. If you would like to force a single
// fs group then supply a single range with the same start and end.
// +optional
Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"`
}
// FSGroupStrategyType denotes strategy types for generating FSGroup values for a
// SecurityContext
type FSGroupStrategyType string
const (
// container must have FSGroup of X applied.
FSGroupStrategyMustRunAs FSGroupStrategyType = "MustRunAs"
// container may make requests for any FSGroup labels.
FSGroupStrategyRunAsAny FSGroupStrategyType = "RunAsAny"
)
// SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.
type SupplementalGroupsStrategyOptions struct {
// Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.
// +optional
Rule SupplementalGroupsStrategyType `json:"rule,omitempty" protobuf:"bytes,1,opt,name=rule,casttype=SupplementalGroupsStrategyType"`
// Ranges are the allowed ranges of supplemental groups. If you would like to force a single
// supplemental group then supply a single range with the same start and end.
// +optional
Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"`
}
// SupplementalGroupsStrategyType denotes strategy types for determining valid supplemental
// groups for a SecurityContext.
type SupplementalGroupsStrategyType string
const (
// container must run as a particular gid.
SupplementalGroupsStrategyMustRunAs SupplementalGroupsStrategyType = "MustRunAs"
// container may make requests for any gid.
SupplementalGroupsStrategyRunAsAny SupplementalGroupsStrategyType = "RunAsAny"
)
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// Pod Security Policy List is a list of PodSecurityPolicy objects.
type PodSecurityPolicyList struct {
metav1.TypeMeta `json:",inline"`
// Standard list metadata.
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
// Items is a list of schema objects.
Items []PodSecurityPolicy `json:"items" protobuf:"bytes,2,rep,name=items"`
}

View File

@ -27,6 +27,24 @@ package v1beta1
// Those methods can be generated by using hack/update-generated-swagger-docs.sh
// AUTO-GENERATED FUNCTIONS START HERE
var map_AllowedFlexVolume = map[string]string{
"": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.",
"driver": "Driver is the name of the Flexvolume driver.",
}
func (AllowedFlexVolume) SwaggerDoc() map[string]string {
return map_AllowedFlexVolume
}
var map_AllowedHostPath = map[string]string{
"": "defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.",
"pathPrefix": "is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`",
}
func (AllowedHostPath) SwaggerDoc() map[string]string {
return map_AllowedHostPath
}
var map_Eviction = map[string]string{
"": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions.",
"metadata": "ObjectMeta describes the pod that is being evicted.",
@ -37,6 +55,36 @@ func (Eviction) SwaggerDoc() map[string]string {
return map_Eviction
}
var map_FSGroupStrategyOptions = map[string]string{
"": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.",
"rule": "Rule is the strategy that will dictate what FSGroup is used in the SecurityContext.",
"ranges": "Ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end.",
}
func (FSGroupStrategyOptions) SwaggerDoc() map[string]string {
return map_FSGroupStrategyOptions
}
var map_HostPortRange = map[string]string{
"": "Host Port Range defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.",
"min": "min is the start of the range, inclusive.",
"max": "max is the end of the range, inclusive.",
}
func (HostPortRange) SwaggerDoc() map[string]string {
return map_HostPortRange
}
var map_IDRange = map[string]string{
"": "ID Range provides a min/max of an allowed range of IDs.",
"min": "Min is the start of the range, inclusive.",
"max": "Max is the end of the range, inclusive.",
}
func (IDRange) SwaggerDoc() map[string]string {
return map_IDRange
}
var map_PodDisruptionBudget = map[string]string{
"": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods",
"spec": "Specification of the desired behavior of the PodDisruptionBudget.",
@ -80,4 +128,80 @@ func (PodDisruptionBudgetStatus) SwaggerDoc() map[string]string {
return map_PodDisruptionBudgetStatus
}
var map_PodSecurityPolicy = map[string]string{
"": "Pod Security Policy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.",
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata",
"spec": "spec defines the policy enforced.",
}
func (PodSecurityPolicy) SwaggerDoc() map[string]string {
return map_PodSecurityPolicy
}
var map_PodSecurityPolicyList = map[string]string{
"": "Pod Security Policy List is a list of PodSecurityPolicy objects.",
"metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata",
"items": "Items is a list of schema objects.",
}
func (PodSecurityPolicyList) SwaggerDoc() map[string]string {
return map_PodSecurityPolicyList
}
var map_PodSecurityPolicySpec = map[string]string{
"": "Pod Security Policy Spec defines the policy enforced.",
"privileged": "privileged determines if a pod can request to be run as privileged.",
"defaultAddCapabilities": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the AllowedCapabilities list.",
"requiredDropCapabilities": "RequiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.",
"allowedCapabilities": "AllowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities.",
"volumes": "volumes is a white list of allowed volume plugins. Empty indicates that all plugins may be used.",
"hostNetwork": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.",
"hostPorts": "hostPorts determines which host port ranges are allowed to be exposed.",
"hostPID": "hostPID determines if the policy allows the use of HostPID in the pod spec.",
"hostIPC": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.",
"seLinux": "seLinux is the strategy that will dictate the allowable labels that may be set.",
"runAsUser": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.",
"supplementalGroups": "SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.",
"fsGroup": "FSGroup is the strategy that will dictate what fs group is used by the SecurityContext.",
"readOnlyRootFilesystem": "ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.",
"defaultAllowPrivilegeEscalation": "DefaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.",
"allowPrivilegeEscalation": "AllowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.",
"allowedHostPaths": "is a white list of allowed host paths. Empty indicates that all host paths may be used.",
"allowedFlexVolumes": "AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"Volumes\" field.",
}
func (PodSecurityPolicySpec) SwaggerDoc() map[string]string {
return map_PodSecurityPolicySpec
}
var map_RunAsUserStrategyOptions = map[string]string{
"": "Run A sUser Strategy Options defines the strategy type and any options used to create the strategy.",
"rule": "Rule is the strategy that will dictate the allowable RunAsUser values that may be set.",
"ranges": "Ranges are the allowed ranges of uids that may be used.",
}
func (RunAsUserStrategyOptions) SwaggerDoc() map[string]string {
return map_RunAsUserStrategyOptions
}
var map_SELinuxStrategyOptions = map[string]string{
"": "SELinux Strategy Options defines the strategy type and any options used to create the strategy.",
"rule": "type is the strategy that will dictate the allowable labels that may be set.",
"seLinuxOptions": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
}
func (SELinuxStrategyOptions) SwaggerDoc() map[string]string {
return map_SELinuxStrategyOptions
}
var map_SupplementalGroupsStrategyOptions = map[string]string{
"": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.",
"rule": "Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.",
"ranges": "Ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end.",
}
func (SupplementalGroupsStrategyOptions) SwaggerDoc() map[string]string {
return map_SupplementalGroupsStrategyOptions
}
// AUTO-GENERATED FUNCTIONS END HERE

View File

@ -21,11 +21,44 @@ limitations under the License.
package v1beta1
import (
core_v1 "k8s.io/api/core/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
intstr "k8s.io/apimachinery/pkg/util/intstr"
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AllowedFlexVolume) DeepCopyInto(out *AllowedFlexVolume) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedFlexVolume.
func (in *AllowedFlexVolume) DeepCopy() *AllowedFlexVolume {
if in == nil {
return nil
}
out := new(AllowedFlexVolume)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AllowedHostPath) DeepCopyInto(out *AllowedHostPath) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedHostPath.
func (in *AllowedHostPath) DeepCopy() *AllowedHostPath {
if in == nil {
return nil
}
out := new(AllowedHostPath)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Eviction) DeepCopyInto(out *Eviction) {
*out = *in
@ -62,6 +95,59 @@ func (in *Eviction) DeepCopyObject() runtime.Object {
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FSGroupStrategyOptions) DeepCopyInto(out *FSGroupStrategyOptions) {
*out = *in
if in.Ranges != nil {
in, out := &in.Ranges, &out.Ranges
*out = make([]IDRange, len(*in))
copy(*out, *in)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FSGroupStrategyOptions.
func (in *FSGroupStrategyOptions) DeepCopy() *FSGroupStrategyOptions {
if in == nil {
return nil
}
out := new(FSGroupStrategyOptions)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HostPortRange) DeepCopyInto(out *HostPortRange) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPortRange.
func (in *HostPortRange) DeepCopy() *HostPortRange {
if in == nil {
return nil
}
out := new(HostPortRange)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *IDRange) DeepCopyInto(out *IDRange) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IDRange.
func (in *IDRange) DeepCopy() *IDRange {
if in == nil {
return nil
}
out := new(IDRange)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodDisruptionBudget) DeepCopyInto(out *PodDisruptionBudget) {
*out = *in
@ -190,3 +276,205 @@ func (in *PodDisruptionBudgetStatus) DeepCopy() *PodDisruptionBudgetStatus {
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodSecurityPolicy) DeepCopyInto(out *PodSecurityPolicy) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
in.Spec.DeepCopyInto(&out.Spec)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicy.
func (in *PodSecurityPolicy) DeepCopy() *PodSecurityPolicy {
if in == nil {
return nil
}
out := new(PodSecurityPolicy)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *PodSecurityPolicy) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodSecurityPolicyList) DeepCopyInto(out *PodSecurityPolicyList) {
*out = *in
out.TypeMeta = in.TypeMeta
out.ListMeta = in.ListMeta
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]PodSecurityPolicy, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicyList.
func (in *PodSecurityPolicyList) DeepCopy() *PodSecurityPolicyList {
if in == nil {
return nil
}
out := new(PodSecurityPolicyList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *PodSecurityPolicyList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) {
*out = *in
if in.DefaultAddCapabilities != nil {
in, out := &in.DefaultAddCapabilities, &out.DefaultAddCapabilities
*out = make([]core_v1.Capability, len(*in))
copy(*out, *in)
}
if in.RequiredDropCapabilities != nil {
in, out := &in.RequiredDropCapabilities, &out.RequiredDropCapabilities
*out = make([]core_v1.Capability, len(*in))
copy(*out, *in)
}
if in.AllowedCapabilities != nil {
in, out := &in.AllowedCapabilities, &out.AllowedCapabilities
*out = make([]core_v1.Capability, len(*in))
copy(*out, *in)
}
if in.Volumes != nil {
in, out := &in.Volumes, &out.Volumes
*out = make([]FSType, len(*in))
copy(*out, *in)
}
if in.HostPorts != nil {
in, out := &in.HostPorts, &out.HostPorts
*out = make([]HostPortRange, len(*in))
copy(*out, *in)
}
in.SELinux.DeepCopyInto(&out.SELinux)
in.RunAsUser.DeepCopyInto(&out.RunAsUser)
in.SupplementalGroups.DeepCopyInto(&out.SupplementalGroups)
in.FSGroup.DeepCopyInto(&out.FSGroup)
if in.DefaultAllowPrivilegeEscalation != nil {
in, out := &in.DefaultAllowPrivilegeEscalation, &out.DefaultAllowPrivilegeEscalation
if *in == nil {
*out = nil
} else {
*out = new(bool)
**out = **in
}
}
if in.AllowPrivilegeEscalation != nil {
in, out := &in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation
if *in == nil {
*out = nil
} else {
*out = new(bool)
**out = **in
}
}
if in.AllowedHostPaths != nil {
in, out := &in.AllowedHostPaths, &out.AllowedHostPaths
*out = make([]AllowedHostPath, len(*in))
copy(*out, *in)
}
if in.AllowedFlexVolumes != nil {
in, out := &in.AllowedFlexVolumes, &out.AllowedFlexVolumes
*out = make([]AllowedFlexVolume, len(*in))
copy(*out, *in)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicySpec.
func (in *PodSecurityPolicySpec) DeepCopy() *PodSecurityPolicySpec {
if in == nil {
return nil
}
out := new(PodSecurityPolicySpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RunAsUserStrategyOptions) DeepCopyInto(out *RunAsUserStrategyOptions) {
*out = *in
if in.Ranges != nil {
in, out := &in.Ranges, &out.Ranges
*out = make([]IDRange, len(*in))
copy(*out, *in)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunAsUserStrategyOptions.
func (in *RunAsUserStrategyOptions) DeepCopy() *RunAsUserStrategyOptions {
if in == nil {
return nil
}
out := new(RunAsUserStrategyOptions)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SELinuxStrategyOptions) DeepCopyInto(out *SELinuxStrategyOptions) {
*out = *in
if in.SELinuxOptions != nil {
in, out := &in.SELinuxOptions, &out.SELinuxOptions
if *in == nil {
*out = nil
} else {
*out = new(core_v1.SELinuxOptions)
**out = **in
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SELinuxStrategyOptions.
func (in *SELinuxStrategyOptions) DeepCopy() *SELinuxStrategyOptions {
if in == nil {
return nil
}
out := new(SELinuxStrategyOptions)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SupplementalGroupsStrategyOptions) DeepCopyInto(out *SupplementalGroupsStrategyOptions) {
*out = *in
if in.Ranges != nil {
in, out := &in.Ranges, &out.Ranges
*out = make([]IDRange, len(*in))
copy(*out, *in)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupplementalGroupsStrategyOptions.
func (in *SupplementalGroupsStrategyOptions) DeepCopy() *SupplementalGroupsStrategyOptions {
if in == nil {
return nil
}
out := new(SupplementalGroupsStrategyOptions)
in.DeepCopyInto(out)
return out
}

View File

@ -43,6 +43,9 @@ message PriorityClass {
// globalDefault specifies whether this PriorityClass should be considered as
// the default priority for pods that do not have any priority class.
// Only one PriorityClass can be marked as `globalDefault`. However, if more than
// one PriorityClasses exists with their `globalDefault` field set to true,
// the smallest value of such global default PriorityClasses will be used as the default priority.
// +optional
optional bool globalDefault = 3;

View File

@ -39,6 +39,9 @@ type PriorityClass struct {
// globalDefault specifies whether this PriorityClass should be considered as
// the default priority for pods that do not have any priority class.
// Only one PriorityClass can be marked as `globalDefault`. However, if more than
// one PriorityClasses exists with their `globalDefault` field set to true,
// the smallest value of such global default PriorityClasses will be used as the default priority.
// +optional
GlobalDefault bool `json:"globalDefault,omitempty" protobuf:"bytes,3,opt,name=globalDefault"`

View File

@ -31,7 +31,7 @@ var map_PriorityClass = map[string]string{
"": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.",
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata",
"value": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.",
"globalDefault": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class.",
"globalDefault": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.",
"description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.",
}

View File

@ -431,6 +431,7 @@ func (s *Scheme) Convert(in, out interface{}, context interface{}) error {
return err
}
unstructuredOut.SetUnstructuredContent(content)
unstructuredOut.GetObjectKind().SetGroupVersionKind(gvk)
return nil
}

View File

@ -198,6 +198,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource
// Group=policy, Version=v1beta1
case policy_v1beta1.SchemeGroupVersion.WithResource("poddisruptionbudgets"):
return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodDisruptionBudgets().Informer()}, nil
case policy_v1beta1.SchemeGroupVersion.WithResource("podsecuritypolicies"):
return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodSecurityPolicies().Informer()}, nil
// Group=rbac.authorization.k8s.io, Version=v1
case rbac_v1.SchemeGroupVersion.WithResource("clusterroles"):

View File

@ -10,6 +10,7 @@ go_library(
srcs = [
"interface.go",
"poddisruptionbudget.go",
"podsecuritypolicy.go",
],
importpath = "k8s.io/client-go/informers/policy/v1beta1",
deps = [

View File

@ -26,6 +26,8 @@ import (
type Interface interface {
// PodDisruptionBudgets returns a PodDisruptionBudgetInformer.
PodDisruptionBudgets() PodDisruptionBudgetInformer
// PodSecurityPolicies returns a PodSecurityPolicyInformer.
PodSecurityPolicies() PodSecurityPolicyInformer
}
type version struct {
@ -43,3 +45,8 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList
func (v *version) PodDisruptionBudgets() PodDisruptionBudgetInformer {
return &podDisruptionBudgetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}
// PodSecurityPolicies returns a PodSecurityPolicyInformer.
func (v *version) PodSecurityPolicies() PodSecurityPolicyInformer {
return &podSecurityPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
}

View File

@ -0,0 +1,88 @@
/*
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.
*/
// This file was automatically generated by informer-gen
package v1beta1
import (
time "time"
policy_v1beta1 "k8s.io/api/policy/v1beta1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
internalinterfaces "k8s.io/client-go/informers/internalinterfaces"
kubernetes "k8s.io/client-go/kubernetes"
v1beta1 "k8s.io/client-go/listers/policy/v1beta1"
cache "k8s.io/client-go/tools/cache"
)
// PodSecurityPolicyInformer provides access to a shared informer and lister for
// PodSecurityPolicies.
type PodSecurityPolicyInformer interface {
Informer() cache.SharedIndexInformer
Lister() v1beta1.PodSecurityPolicyLister
}
type podSecurityPolicyInformer struct {
factory internalinterfaces.SharedInformerFactory
tweakListOptions internalinterfaces.TweakListOptionsFunc
}
// NewPodSecurityPolicyInformer constructs a new informer for PodSecurityPolicy type.
// Always prefer using an informer factory to get a shared informer instead of getting an independent
// one. This reduces memory footprint and number of connections to the server.
func NewPodSecurityPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
return NewFilteredPodSecurityPolicyInformer(client, resyncPeriod, indexers, nil)
}
// NewFilteredPodSecurityPolicyInformer constructs a new informer for PodSecurityPolicy type.
// Always prefer using an informer factory to get a shared informer instead of getting an independent
// one. This reduces memory footprint and number of connections to the server.
func NewFilteredPodSecurityPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
return cache.NewSharedIndexInformer(
&cache.ListWatch{
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
if tweakListOptions != nil {
tweakListOptions(&options)
}
return client.PolicyV1beta1().PodSecurityPolicies().List(options)
},
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
if tweakListOptions != nil {
tweakListOptions(&options)
}
return client.PolicyV1beta1().PodSecurityPolicies().Watch(options)
},
},
&policy_v1beta1.PodSecurityPolicy{},
resyncPeriod,
indexers,
)
}
func (f *podSecurityPolicyInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
return NewFilteredPodSecurityPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
}
func (f *podSecurityPolicyInformer) Informer() cache.SharedIndexInformer {
return f.factory.InformerFor(&policy_v1beta1.PodSecurityPolicy{}, f.defaultInformer)
}
func (f *podSecurityPolicyInformer) Lister() v1beta1.PodSecurityPolicyLister {
return v1beta1.NewPodSecurityPolicyLister(f.Informer().GetIndexer())
}

View File

@ -32,9 +32,11 @@ go_library(
"service.go",
"service_expansion.go",
"serviceaccount.go",
"serviceaccount_expansion.go",
],
importpath = "k8s.io/client-go/kubernetes/typed/core/v1",
deps = [
"//vendor/k8s.io/api/authentication/v1:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/api/extensions/v1beta1:go_default_library",
"//vendor/k8s.io/api/policy/v1beta1:go_default_library",

View File

@ -35,5 +35,3 @@ type ReplicationControllerExpansion interface{}
type ResourceQuotaExpansion interface{}
type SecretExpansion interface{}
type ServiceAccountExpansion interface{}

View File

@ -0,0 +1,41 @@
/*
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 (
authenticationv1 "k8s.io/api/authentication/v1"
)
// The ServiceAccountExpansion interface allows manually adding extra methods
// to the ServiceAccountInterface.
type ServiceAccountExpansion interface {
CreateToken(name string, tr *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error)
}
// CreateToken creates a new token for a serviceaccount.
func (c *serviceAccounts) CreateToken(name string, tr *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) {
result := &authenticationv1.TokenRequest{}
err := c.client.Post().
Namespace(c.ns).
Resource("serviceaccounts").
SubResource("token").
Name(name).
Body(tr).
Do().
Into(result)
return result, err
}

View File

@ -13,6 +13,7 @@ go_library(
"eviction_expansion.go",
"generated_expansion.go",
"poddisruptionbudget.go",
"podsecuritypolicy.go",
"policy_client.go",
],
importpath = "k8s.io/client-go/kubernetes/typed/policy/v1beta1",

View File

@ -17,3 +17,5 @@ limitations under the License.
package v1beta1
type PodDisruptionBudgetExpansion interface{}
type PodSecurityPolicyExpansion interface{}

View File

@ -0,0 +1,145 @@
/*
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 v1beta1
import (
v1beta1 "k8s.io/api/policy/v1beta1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
watch "k8s.io/apimachinery/pkg/watch"
scheme "k8s.io/client-go/kubernetes/scheme"
rest "k8s.io/client-go/rest"
)
// PodSecurityPoliciesGetter has a method to return a PodSecurityPolicyInterface.
// A group's client should implement this interface.
type PodSecurityPoliciesGetter interface {
PodSecurityPolicies() PodSecurityPolicyInterface
}
// PodSecurityPolicyInterface has methods to work with PodSecurityPolicy resources.
type PodSecurityPolicyInterface interface {
Create(*v1beta1.PodSecurityPolicy) (*v1beta1.PodSecurityPolicy, error)
Update(*v1beta1.PodSecurityPolicy) (*v1beta1.PodSecurityPolicy, error)
Delete(name string, options *v1.DeleteOptions) error
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
Get(name string, options v1.GetOptions) (*v1beta1.PodSecurityPolicy, error)
List(opts v1.ListOptions) (*v1beta1.PodSecurityPolicyList, error)
Watch(opts v1.ListOptions) (watch.Interface, error)
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error)
PodSecurityPolicyExpansion
}
// podSecurityPolicies implements PodSecurityPolicyInterface
type podSecurityPolicies struct {
client rest.Interface
}
// newPodSecurityPolicies returns a PodSecurityPolicies
func newPodSecurityPolicies(c *PolicyV1beta1Client) *podSecurityPolicies {
return &podSecurityPolicies{
client: c.RESTClient(),
}
}
// Get takes name of the podSecurityPolicy, and returns the corresponding podSecurityPolicy object, and an error if there is any.
func (c *podSecurityPolicies) Get(name string, options v1.GetOptions) (result *v1beta1.PodSecurityPolicy, err error) {
result = &v1beta1.PodSecurityPolicy{}
err = c.client.Get().
Resource("podsecuritypolicies").
Name(name).
VersionedParams(&options, scheme.ParameterCodec).
Do().
Into(result)
return
}
// List takes label and field selectors, and returns the list of PodSecurityPolicies that match those selectors.
func (c *podSecurityPolicies) List(opts v1.ListOptions) (result *v1beta1.PodSecurityPolicyList, err error) {
result = &v1beta1.PodSecurityPolicyList{}
err = c.client.Get().
Resource("podsecuritypolicies").
VersionedParams(&opts, scheme.ParameterCodec).
Do().
Into(result)
return
}
// Watch returns a watch.Interface that watches the requested podSecurityPolicies.
func (c *podSecurityPolicies) Watch(opts v1.ListOptions) (watch.Interface, error) {
opts.Watch = true
return c.client.Get().
Resource("podsecuritypolicies").
VersionedParams(&opts, scheme.ParameterCodec).
Watch()
}
// Create takes the representation of a podSecurityPolicy and creates it. Returns the server's representation of the podSecurityPolicy, and an error, if there is any.
func (c *podSecurityPolicies) Create(podSecurityPolicy *v1beta1.PodSecurityPolicy) (result *v1beta1.PodSecurityPolicy, err error) {
result = &v1beta1.PodSecurityPolicy{}
err = c.client.Post().
Resource("podsecuritypolicies").
Body(podSecurityPolicy).
Do().
Into(result)
return
}
// Update takes the representation of a podSecurityPolicy and updates it. Returns the server's representation of the podSecurityPolicy, and an error, if there is any.
func (c *podSecurityPolicies) Update(podSecurityPolicy *v1beta1.PodSecurityPolicy) (result *v1beta1.PodSecurityPolicy, err error) {
result = &v1beta1.PodSecurityPolicy{}
err = c.client.Put().
Resource("podsecuritypolicies").
Name(podSecurityPolicy.Name).
Body(podSecurityPolicy).
Do().
Into(result)
return
}
// Delete takes name of the podSecurityPolicy and deletes it. Returns an error if one occurs.
func (c *podSecurityPolicies) Delete(name string, options *v1.DeleteOptions) error {
return c.client.Delete().
Resource("podsecuritypolicies").
Name(name).
Body(options).
Do().
Error()
}
// DeleteCollection deletes a collection of objects.
func (c *podSecurityPolicies) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
return c.client.Delete().
Resource("podsecuritypolicies").
VersionedParams(&listOptions, scheme.ParameterCodec).
Body(options).
Do().
Error()
}
// Patch applies the patch and returns the patched podSecurityPolicy.
func (c *podSecurityPolicies) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error) {
result = &v1beta1.PodSecurityPolicy{}
err = c.client.Patch(pt).
Resource("podsecuritypolicies").
SubResource(subresources...).
Name(name).
Body(data).
Do().
Into(result)
return
}

View File

@ -27,6 +27,7 @@ type PolicyV1beta1Interface interface {
RESTClient() rest.Interface
EvictionsGetter
PodDisruptionBudgetsGetter
PodSecurityPoliciesGetter
}
// PolicyV1beta1Client is used to interact with features provided by the policy group.
@ -42,6 +43,10 @@ func (c *PolicyV1beta1Client) PodDisruptionBudgets(namespace string) PodDisrupti
return newPodDisruptionBudgets(c, namespace)
}
func (c *PolicyV1beta1Client) PodSecurityPolicies() PodSecurityPolicyInterface {
return newPodSecurityPolicies(c)
}
// NewForConfig creates a new PolicyV1beta1Client for the given config.
func NewForConfig(c *rest.Config) (*PolicyV1beta1Client, error) {
config := *c

View File

@ -12,6 +12,7 @@ go_library(
"expansion_generated.go",
"poddisruptionbudget.go",
"poddisruptionbudget_expansion.go",
"podsecuritypolicy.go",
],
importpath = "k8s.io/client-go/listers/policy/v1beta1",
deps = [

View File

@ -25,3 +25,7 @@ type EvictionListerExpansion interface{}
// EvictionNamespaceListerExpansion allows custom methods to be added to
// EvictionNamespaceLister.
type EvictionNamespaceListerExpansion interface{}
// PodSecurityPolicyListerExpansion allows custom methods to be added to
// PodSecurityPolicyLister.
type PodSecurityPolicyListerExpansion interface{}

View File

@ -0,0 +1,65 @@
/*
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.
*/
// This file was automatically generated by lister-gen
package v1beta1
import (
v1beta1 "k8s.io/api/policy/v1beta1"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/tools/cache"
)
// PodSecurityPolicyLister helps list PodSecurityPolicies.
type PodSecurityPolicyLister interface {
// List lists all PodSecurityPolicies in the indexer.
List(selector labels.Selector) (ret []*v1beta1.PodSecurityPolicy, err error)
// Get retrieves the PodSecurityPolicy from the index for a given name.
Get(name string) (*v1beta1.PodSecurityPolicy, error)
PodSecurityPolicyListerExpansion
}
// podSecurityPolicyLister implements the PodSecurityPolicyLister interface.
type podSecurityPolicyLister struct {
indexer cache.Indexer
}
// NewPodSecurityPolicyLister returns a new PodSecurityPolicyLister.
func NewPodSecurityPolicyLister(indexer cache.Indexer) PodSecurityPolicyLister {
return &podSecurityPolicyLister{indexer: indexer}
}
// List lists all PodSecurityPolicies in the indexer.
func (s *podSecurityPolicyLister) List(selector labels.Selector) (ret []*v1beta1.PodSecurityPolicy, err error) {
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
ret = append(ret, m.(*v1beta1.PodSecurityPolicy))
})
return ret, err
}
// Get retrieves the PodSecurityPolicy from the index for a given name.
func (s *podSecurityPolicyLister) Get(name string) (*v1beta1.PodSecurityPolicy, error) {
obj, exists, err := s.indexer.GetByKey(name)
if err != nil {
return nil, err
}
if !exists {
return nil, errors.NewNotFound(v1beta1.Resource("podsecuritypolicy"), name)
}
return obj.(*v1beta1.PodSecurityPolicy), nil
}