mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 12:18:16 +00:00 
			
		
		
		
	Merge pull request #30241 from Q-Lee/webhook
Automatic merge from submit-queue Adding types file for image admission controller. <!-- Checklist for submitting a Pull Request Please remove this comment block before submitting. 1. Please read our [contributor guidelines](https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md). 2. See our [developer guide](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md). 3. If you want this PR to automatically close an issue when it is merged, add `fixes #<issue number>` or `fixes #<issue number>, fixes #<issue number>` to close multiple issues (see: https://github.com/blog/1506-closing-issues-via-pull-requests). 4. Follow the instructions for [labeling and writing a release note for this PR](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes) in the block below. --> ```release-note Adding container image verification webhook API. ```
This commit is contained in:
		@@ -77,6 +77,7 @@ func New() *Generator {
 | 
				
			|||||||
			`k8s.io/kubernetes/pkg/apis/rbac/v1alpha1`,
 | 
								`k8s.io/kubernetes/pkg/apis/rbac/v1alpha1`,
 | 
				
			||||||
			`k8s.io/kubernetes/federation/apis/federation/v1beta1`,
 | 
								`k8s.io/kubernetes/federation/apis/federation/v1beta1`,
 | 
				
			||||||
			`k8s.io/kubernetes/pkg/apis/certificates/v1alpha1`,
 | 
								`k8s.io/kubernetes/pkg/apis/certificates/v1alpha1`,
 | 
				
			||||||
 | 
								`k8s.io/kubernetes/pkg/apis/imagepolicy/v1alpha1`,
 | 
				
			||||||
		}, ","),
 | 
							}, ","),
 | 
				
			||||||
		DropEmbeddedFields: "k8s.io/kubernetes/pkg/api/unversioned.TypeMeta",
 | 
							DropEmbeddedFields: "k8s.io/kubernetes/pkg/api/unversioned.TypeMeta",
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,6 +70,7 @@ pkg/apis/extensions/install
 | 
				
			|||||||
pkg/apis/extensions/v1beta1
 | 
					pkg/apis/extensions/v1beta1
 | 
				
			||||||
pkg/apis/policy/install
 | 
					pkg/apis/policy/install
 | 
				
			||||||
pkg/apis/rbac/install
 | 
					pkg/apis/rbac/install
 | 
				
			||||||
 | 
					pkg/apis/imagepolicy/install
 | 
				
			||||||
pkg/api/v1
 | 
					pkg/api/v1
 | 
				
			||||||
pkg/auth/authenticator
 | 
					pkg/auth/authenticator
 | 
				
			||||||
pkg/auth/authorizer/union
 | 
					pkg/auth/authorizer/union
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -66,7 +66,7 @@ KUBE_GOVERALLS_BIN=${KUBE_GOVERALLS_BIN:-}
 | 
				
			|||||||
# "v1,compute/v1alpha1,experimental/v1alpha2;v1,compute/v2,experimental/v1alpha3"
 | 
					# "v1,compute/v1alpha1,experimental/v1alpha2;v1,compute/v2,experimental/v1alpha3"
 | 
				
			||||||
# FIXME: due to current implementation of a test client (see: pkg/api/testapi/testapi.go)
 | 
					# FIXME: due to current implementation of a test client (see: pkg/api/testapi/testapi.go)
 | 
				
			||||||
# ONLY the last version is tested in each group.
 | 
					# ONLY the last version is tested in each group.
 | 
				
			||||||
KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1,apps/v1alpha1,authentication.k8s.io/v1beta1,authorization.k8s.io/v1beta1,autoscaling/v1,batch/v1,batch/v2alpha1,certificates/v1alpha1,extensions/v1beta1,federation/v1beta1,policy/v1alpha1,rbac.authorization.k8s.io/v1alpha1"}
 | 
					KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1,apps/v1alpha1,authentication.k8s.io/v1beta1,authorization.k8s.io/v1beta1,autoscaling/v1,batch/v1,batch/v2alpha1,certificates/v1alpha1,extensions/v1beta1,federation/v1beta1,policy/v1alpha1,rbac.authorization.k8s.io/v1alpha1,imagepolicy.k8s.io/v1alpha1"}
 | 
				
			||||||
# once we have multiple group supports
 | 
					# once we have multiple group supports
 | 
				
			||||||
# Create a junit-style XML test report in this directory if set.
 | 
					# Create a junit-style XML test report in this directory if set.
 | 
				
			||||||
KUBE_JUNIT_REPORT_DIR=${KUBE_JUNIT_REPORT_DIR:-}
 | 
					KUBE_JUNIT_REPORT_DIR=${KUBE_JUNIT_REPORT_DIR:-}
 | 
				
			||||||
@@ -156,6 +156,8 @@ junitFilenamePrefix() {
 | 
				
			|||||||
  fi
 | 
					  fi
 | 
				
			||||||
  mkdir -p "${KUBE_JUNIT_REPORT_DIR}"
 | 
					  mkdir -p "${KUBE_JUNIT_REPORT_DIR}"
 | 
				
			||||||
  local KUBE_TEST_API_NO_SLASH="${KUBE_TEST_API//\//-}"
 | 
					  local KUBE_TEST_API_NO_SLASH="${KUBE_TEST_API//\//-}"
 | 
				
			||||||
 | 
					  # This file name isn't parsed by anything, and tee needs a shorter file name.
 | 
				
			||||||
 | 
					  KUBE_TEST_API_NO_SLASH="${KUBE_TEST_API_NO_SLASH//k8s.io-/}"
 | 
				
			||||||
  echo "${KUBE_JUNIT_REPORT_DIR}/junit_${KUBE_TEST_API_NO_SLASH}_$(kube::util::sortable_date)"
 | 
					  echo "${KUBE_JUNIT_REPORT_DIR}/junit_${KUBE_TEST_API_NO_SLASH}_$(kube::util::sortable_date)"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,6 +34,7 @@ import (
 | 
				
			|||||||
	"k8s.io/kubernetes/pkg/apis/batch"
 | 
						"k8s.io/kubernetes/pkg/apis/batch"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apis/certificates"
 | 
						"k8s.io/kubernetes/pkg/apis/certificates"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apis/extensions"
 | 
						"k8s.io/kubernetes/pkg/apis/extensions"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/apis/imagepolicy"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apis/policy"
 | 
						"k8s.io/kubernetes/pkg/apis/policy"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apis/rbac"
 | 
						"k8s.io/kubernetes/pkg/apis/rbac"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
						"k8s.io/kubernetes/pkg/runtime"
 | 
				
			||||||
@@ -49,6 +50,7 @@ import (
 | 
				
			|||||||
	_ "k8s.io/kubernetes/pkg/apis/certificates/install"
 | 
						_ "k8s.io/kubernetes/pkg/apis/certificates/install"
 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/apis/componentconfig/install"
 | 
						_ "k8s.io/kubernetes/pkg/apis/componentconfig/install"
 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/apis/extensions/install"
 | 
						_ "k8s.io/kubernetes/pkg/apis/extensions/install"
 | 
				
			||||||
 | 
						_ "k8s.io/kubernetes/pkg/apis/imagepolicy/install"
 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/apis/policy/install"
 | 
						_ "k8s.io/kubernetes/pkg/apis/policy/install"
 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/apis/rbac/install"
 | 
						_ "k8s.io/kubernetes/pkg/apis/rbac/install"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -64,6 +66,7 @@ var (
 | 
				
			|||||||
	Federation   TestGroup
 | 
						Federation   TestGroup
 | 
				
			||||||
	Rbac         TestGroup
 | 
						Rbac         TestGroup
 | 
				
			||||||
	Certificates TestGroup
 | 
						Certificates TestGroup
 | 
				
			||||||
 | 
						ImagePolicy  TestGroup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	serializer        runtime.SerializerInfo
 | 
						serializer        runtime.SerializerInfo
 | 
				
			||||||
	storageSerializer runtime.SerializerInfo
 | 
						storageSerializer runtime.SerializerInfo
 | 
				
			||||||
@@ -225,6 +228,16 @@ func init() {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if _, ok := Groups[imagepolicy.GroupName]; !ok {
 | 
				
			||||||
 | 
							externalGroupVersion := unversioned.GroupVersion{Group: imagepolicy.GroupName, Version: registered.GroupOrDie(imagepolicy.GroupName).GroupVersion.Version}
 | 
				
			||||||
 | 
							Groups[imagepolicy.GroupName] = TestGroup{
 | 
				
			||||||
 | 
								externalGroupVersion: externalGroupVersion,
 | 
				
			||||||
 | 
								internalGroupVersion: imagepolicy.SchemeGroupVersion,
 | 
				
			||||||
 | 
								internalTypes:        api.Scheme.KnownTypes(imagepolicy.SchemeGroupVersion),
 | 
				
			||||||
 | 
								externalTypes:        api.Scheme.KnownTypes(externalGroupVersion),
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Default = Groups[api.GroupName]
 | 
						Default = Groups[api.GroupName]
 | 
				
			||||||
	Autoscaling = Groups[autoscaling.GroupName]
 | 
						Autoscaling = Groups[autoscaling.GroupName]
 | 
				
			||||||
	Batch = Groups[batch.GroupName]
 | 
						Batch = Groups[batch.GroupName]
 | 
				
			||||||
@@ -234,6 +247,7 @@ func init() {
 | 
				
			|||||||
	Extensions = Groups[extensions.GroupName]
 | 
						Extensions = Groups[extensions.GroupName]
 | 
				
			||||||
	Federation = Groups[federation.GroupName]
 | 
						Federation = Groups[federation.GroupName]
 | 
				
			||||||
	Rbac = Groups[rbac.GroupName]
 | 
						Rbac = Groups[rbac.GroupName]
 | 
				
			||||||
 | 
						ImagePolicy = Groups[imagepolicy.GroupName]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (g TestGroup) ContentConfig() (string, *unversioned.GroupVersion, runtime.Codec) {
 | 
					func (g TestGroup) ContentConfig() (string, *unversioned.GroupVersion, runtime.Codec) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										20
									
								
								pkg/apis/imagepolicy/doc.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								pkg/apis/imagepolicy/doc.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// +k8s:deepcopy-gen=package,register
 | 
				
			||||||
 | 
					// +groupName=imagepolicy.k8s.io
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package imagepolicy // import "k8s.io/kubernetes/pkg/apis/imagepolicy"
 | 
				
			||||||
							
								
								
									
										123
									
								
								pkg/apis/imagepolicy/install/install.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								pkg/apis/imagepolicy/install/install.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,123 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Package install installs the experimental API group, making it available as
 | 
				
			||||||
 | 
					// an option to all of the API encoding/decoding machinery.
 | 
				
			||||||
 | 
					package install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/golang/glog"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api/meta"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api/unversioned"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/apimachinery"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/apimachinery/registered"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/apis/imagepolicy"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/apis/imagepolicy/v1alpha1"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/runtime"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/util/sets"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const importPrefix = "k8s.io/kubernetes/pkg/apis/imagepolicy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var accessor = meta.NewAccessor()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// availableVersions lists all known external versions for this group from most preferred to least preferred
 | 
				
			||||||
 | 
					var availableVersions = []unversioned.GroupVersion{v1alpha1.SchemeGroupVersion}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func init() {
 | 
				
			||||||
 | 
						registered.RegisterVersions(availableVersions)
 | 
				
			||||||
 | 
						externalVersions := []unversioned.GroupVersion{}
 | 
				
			||||||
 | 
						for _, v := range availableVersions {
 | 
				
			||||||
 | 
							if registered.IsAllowedVersion(v) {
 | 
				
			||||||
 | 
								externalVersions = append(externalVersions, v)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if len(externalVersions) == 0 {
 | 
				
			||||||
 | 
							glog.V(4).Infof("No version is registered for group %v", imagepolicy.GroupName)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := registered.EnableVersions(externalVersions...); err != nil {
 | 
				
			||||||
 | 
							glog.V(4).Infof("%v", err)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err := enableVersions(externalVersions); err != nil {
 | 
				
			||||||
 | 
							glog.V(4).Infof("%v", err)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// TODO: enableVersions should be centralized rather than spread in each API
 | 
				
			||||||
 | 
					// group.
 | 
				
			||||||
 | 
					// We can combine registered.RegisterVersions, registered.EnableVersions and
 | 
				
			||||||
 | 
					// registered.RegisterGroup once we have moved enableVersions there.
 | 
				
			||||||
 | 
					func enableVersions(externalVersions []unversioned.GroupVersion) error {
 | 
				
			||||||
 | 
						addVersionsToScheme(externalVersions...)
 | 
				
			||||||
 | 
						preferredExternalVersion := externalVersions[0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						groupMeta := apimachinery.GroupMeta{
 | 
				
			||||||
 | 
							GroupVersion:  preferredExternalVersion,
 | 
				
			||||||
 | 
							GroupVersions: externalVersions,
 | 
				
			||||||
 | 
							RESTMapper:    newRESTMapper(externalVersions),
 | 
				
			||||||
 | 
							SelfLinker:    runtime.SelfLinker(accessor),
 | 
				
			||||||
 | 
							InterfacesFor: interfacesFor,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := registered.RegisterGroup(groupMeta); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						api.RegisterRESTMapper(groupMeta.RESTMapper)
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func addVersionsToScheme(externalVersions ...unversioned.GroupVersion) {
 | 
				
			||||||
 | 
						// add the internal version to Scheme
 | 
				
			||||||
 | 
						imagepolicy.AddToScheme(api.Scheme)
 | 
				
			||||||
 | 
						// add the enabled external versions to Scheme
 | 
				
			||||||
 | 
						for _, v := range externalVersions {
 | 
				
			||||||
 | 
							if !registered.IsEnabledVersion(v) {
 | 
				
			||||||
 | 
								glog.Errorf("Version %s is not enabled, so it will not be added to the Scheme.", v)
 | 
				
			||||||
 | 
								continue
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							switch v {
 | 
				
			||||||
 | 
							case v1alpha1.SchemeGroupVersion:
 | 
				
			||||||
 | 
								v1alpha1.AddToScheme(api.Scheme)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func newRESTMapper(externalVersions []unversioned.GroupVersion) meta.RESTMapper {
 | 
				
			||||||
 | 
						rootScoped := sets.NewString("ImageReview")
 | 
				
			||||||
 | 
						ignoredKinds := sets.NewString()
 | 
				
			||||||
 | 
						return api.NewDefaultRESTMapper(externalVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, error) {
 | 
				
			||||||
 | 
						switch version {
 | 
				
			||||||
 | 
						case v1alpha1.SchemeGroupVersion:
 | 
				
			||||||
 | 
							return &meta.VersionInterfaces{
 | 
				
			||||||
 | 
								ObjectConvertor:  api.Scheme,
 | 
				
			||||||
 | 
								MetadataAccessor: accessor,
 | 
				
			||||||
 | 
							}, nil
 | 
				
			||||||
 | 
						default:
 | 
				
			||||||
 | 
							g, _ := registered.Group(imagepolicy.GroupName)
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("unsupported storage version: %s (valid: %v)", version, g.GroupVersions)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										56
									
								
								pkg/apis/imagepolicy/register.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								pkg/apis/imagepolicy/register.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package imagepolicy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api/unversioned"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/runtime"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GroupName is the group name use in this package
 | 
				
			||||||
 | 
					const GroupName = "imagepolicy.k8s.io"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SchemeGroupVersion is group version used to register these objects
 | 
				
			||||||
 | 
					var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Kind takes an unqualified kind and returns back a Group qualified GroupKind
 | 
				
			||||||
 | 
					func Kind(kind string) unversioned.GroupKind {
 | 
				
			||||||
 | 
						return SchemeGroupVersion.WithKind(kind).GroupKind()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Resource takes an unqualified resource and returns back a Group qualified GroupResource
 | 
				
			||||||
 | 
					func Resource(resource string) unversioned.GroupResource {
 | 
				
			||||||
 | 
						return SchemeGroupVersion.WithResource(resource).GroupResource()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var (
 | 
				
			||||||
 | 
						SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
 | 
				
			||||||
 | 
						AddToScheme   = SchemeBuilder.AddToScheme
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func addKnownTypes(scheme *runtime.Scheme) error {
 | 
				
			||||||
 | 
						scheme.AddKnownTypes(SchemeGroupVersion,
 | 
				
			||||||
 | 
							&api.ListOptions{},
 | 
				
			||||||
 | 
							&api.DeleteOptions{},
 | 
				
			||||||
 | 
							&api.ExportOptions{},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&ImageReview{},
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
						//	versioned.AddToGroupVersion(scheme, SchemeGroupVersion)
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2146
									
								
								pkg/apis/imagepolicy/types.generated.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2146
									
								
								pkg/apis/imagepolicy/types.generated.go
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										67
									
								
								pkg/apis/imagepolicy/types.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								pkg/apis/imagepolicy/types.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package imagepolicy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api/unversioned"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// +genclient=true
 | 
				
			||||||
 | 
					// +nonNamespaced=true
 | 
				
			||||||
 | 
					// +noMethods=true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReview checks if the set of images in a pod are allowed.
 | 
				
			||||||
 | 
					type ImageReview struct {
 | 
				
			||||||
 | 
						unversioned.TypeMeta
 | 
				
			||||||
 | 
						api.ObjectMeta
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Spec holds information about the pod being evaluated
 | 
				
			||||||
 | 
						Spec ImageReviewSpec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Status is filled in by the backend and indicates whether the pod should be allowed.
 | 
				
			||||||
 | 
						Status ImageReviewStatus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReviewSpec is a description of the pod creation request.
 | 
				
			||||||
 | 
					type ImageReviewSpec struct {
 | 
				
			||||||
 | 
						// Containers is a list of a subset of the information in each container of the Pod being created.
 | 
				
			||||||
 | 
						Containers []ImageReviewContainerSpec
 | 
				
			||||||
 | 
						// Annotations is a list of key-value pairs extracted from the Pod's annotations.
 | 
				
			||||||
 | 
						// It only includes keys which match the pattern `*.image-policy.k8s.io/*`.
 | 
				
			||||||
 | 
						// It is up to each webhook backend to determine how to interpret these annotations, if at all.
 | 
				
			||||||
 | 
						Annotations map[string]string
 | 
				
			||||||
 | 
						// Namespace is the namespace the pod is being created in.
 | 
				
			||||||
 | 
						Namespace string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReviewContainerSpec is a description of a container within the pod creation request.
 | 
				
			||||||
 | 
					type ImageReviewContainerSpec struct {
 | 
				
			||||||
 | 
						// This can be in the form image:tag or image@SHA:012345679abcdef.
 | 
				
			||||||
 | 
						Image string
 | 
				
			||||||
 | 
						// In future, we may add command line overrides, exec health check command lines, and so on.
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReviewStatus is the result of the token authentication request.
 | 
				
			||||||
 | 
					type ImageReviewStatus struct {
 | 
				
			||||||
 | 
						// Allowed indicates that all images were allowed to be run.
 | 
				
			||||||
 | 
						Allowed bool
 | 
				
			||||||
 | 
						// Reason should be empty unless Allowed is false in which case it
 | 
				
			||||||
 | 
						// may contain a short description of what is wrong.  Kubernetes
 | 
				
			||||||
 | 
						// may truncate excessively long errors when displaying to the user.
 | 
				
			||||||
 | 
						Reason string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										21
									
								
								pkg/apis/imagepolicy/v1alpha1/doc.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								pkg/apis/imagepolicy/v1alpha1/doc.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// +groupName=imagepolicy.k8s.io
 | 
				
			||||||
 | 
					// +k8s:deepcopy-gen=package,register
 | 
				
			||||||
 | 
					// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/imagepolicy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package v1alpha1 // import "k8s.io/kubernetes/pkg/apis/imagepolicy/v1alpha1"
 | 
				
			||||||
							
								
								
									
										1059
									
								
								pkg/apis/imagepolicy/v1alpha1/generated.pb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1059
									
								
								pkg/apis/imagepolicy/v1alpha1/generated.pb.go
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										74
									
								
								pkg/apis/imagepolicy/v1alpha1/generated.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								pkg/apis/imagepolicy/v1alpha1/generated.proto
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,74 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// This file was autogenerated by go-to-protobuf. Do not edit it manually!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					syntax = 'proto2';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package k8s.io.kubernetes.pkg.apis.imagepolicy.v1alpha1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "k8s.io/kubernetes/pkg/api/resource/generated.proto";
 | 
				
			||||||
 | 
					import "k8s.io/kubernetes/pkg/api/unversioned/generated.proto";
 | 
				
			||||||
 | 
					import "k8s.io/kubernetes/pkg/api/v1/generated.proto";
 | 
				
			||||||
 | 
					import "k8s.io/kubernetes/pkg/runtime/generated.proto";
 | 
				
			||||||
 | 
					import "k8s.io/kubernetes/pkg/util/intstr/generated.proto";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Package-wide variables from generator "generated".
 | 
				
			||||||
 | 
					option go_package = "v1alpha1";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReview checks if the set of images in a pod are allowed.
 | 
				
			||||||
 | 
					message ImageReview {
 | 
				
			||||||
 | 
					  optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Spec holds information about the pod being evaluated
 | 
				
			||||||
 | 
					  optional ImageReviewSpec spec = 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Status is filled in by the backend and indicates whether the pod should be allowed.
 | 
				
			||||||
 | 
					  optional ImageReviewStatus status = 3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReviewContainerSpec is a description of a container within the pod creation request.
 | 
				
			||||||
 | 
					message ImageReviewContainerSpec {
 | 
				
			||||||
 | 
					  // This can be in the form image:tag or image@SHA:012345679abcdef.
 | 
				
			||||||
 | 
					  optional string image = 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReviewSpec is a description of the pod creation request.
 | 
				
			||||||
 | 
					message ImageReviewSpec {
 | 
				
			||||||
 | 
					  // Containers is a list of a subset of the information in each container of the Pod being created.
 | 
				
			||||||
 | 
					  repeated ImageReviewContainerSpec containers = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Annotations is a list of key-value pairs extracted from the Pod's annotations.
 | 
				
			||||||
 | 
					  // It only includes keys which match the pattern `*.image-policy.k8s.io/*`.
 | 
				
			||||||
 | 
					  // It is up to each webhook backend to determine how to interpret these annotations, if at all.
 | 
				
			||||||
 | 
					  map<string, string> annotations = 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Namespace is the namespace the pod is being created in.
 | 
				
			||||||
 | 
					  optional string namespace = 3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReviewStatus is the result of the token authentication request.
 | 
				
			||||||
 | 
					message ImageReviewStatus {
 | 
				
			||||||
 | 
					  // Allowed indicates that all images were allowed to be run.
 | 
				
			||||||
 | 
					  optional bool allowed = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Reason should be empty unless Allowed is false in which case it
 | 
				
			||||||
 | 
					  // may contain a short description of what is wrong.  Kubernetes
 | 
				
			||||||
 | 
					  // may truncate excessively long errors when displaying to the user.
 | 
				
			||||||
 | 
					  optional string reason = 2;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										46
									
								
								pkg/apis/imagepolicy/v1alpha1/register.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								pkg/apis/imagepolicy/v1alpha1/register.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package v1alpha1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api/unversioned"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api/v1"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/runtime"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GroupName is the group name for this API.
 | 
				
			||||||
 | 
					const GroupName = "imagepolicy.k8s.io"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SchemeGroupVersion is group version used to register these objects
 | 
				
			||||||
 | 
					var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1alpha1"}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var (
 | 
				
			||||||
 | 
						SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
 | 
				
			||||||
 | 
						AddToScheme   = SchemeBuilder.AddToScheme
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Adds the list of known types to api.Scheme.
 | 
				
			||||||
 | 
					func addKnownTypes(scheme *runtime.Scheme) error {
 | 
				
			||||||
 | 
						scheme.AddKnownTypes(SchemeGroupVersion,
 | 
				
			||||||
 | 
							&v1.ListOptions{},
 | 
				
			||||||
 | 
							&v1.DeleteOptions{},
 | 
				
			||||||
 | 
							&v1.ExportOptions{},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&ImageReview{},
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										1208
									
								
								pkg/apis/imagepolicy/v1alpha1/types.generated.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1208
									
								
								pkg/apis/imagepolicy/v1alpha1/types.generated.go
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										67
									
								
								pkg/apis/imagepolicy/v1alpha1/types.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								pkg/apis/imagepolicy/v1alpha1/types.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package v1alpha1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api/unversioned"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api/v1"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// +genclient=true
 | 
				
			||||||
 | 
					// +nonNamespaced=true
 | 
				
			||||||
 | 
					// +noMethods=true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReview checks if the set of images in a pod are allowed.
 | 
				
			||||||
 | 
					type ImageReview struct {
 | 
				
			||||||
 | 
						unversioned.TypeMeta `json:",inline"`
 | 
				
			||||||
 | 
						v1.ObjectMeta        `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Spec holds information about the pod being evaluated
 | 
				
			||||||
 | 
						Spec ImageReviewSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Status is filled in by the backend and indicates whether the pod should be allowed.
 | 
				
			||||||
 | 
						Status ImageReviewStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReviewSpec is a description of the pod creation request.
 | 
				
			||||||
 | 
					type ImageReviewSpec struct {
 | 
				
			||||||
 | 
						// Containers is a list of a subset of the information in each container of the Pod being created.
 | 
				
			||||||
 | 
						Containers []ImageReviewContainerSpec `json:"containers,omitempty" protobuf:"bytes,1,rep,name=containers"`
 | 
				
			||||||
 | 
						// Annotations is a list of key-value pairs extracted from the Pod's annotations.
 | 
				
			||||||
 | 
						// It only includes keys which match the pattern `*.image-policy.k8s.io/*`.
 | 
				
			||||||
 | 
						// It is up to each webhook backend to determine how to interpret these annotations, if at all.
 | 
				
			||||||
 | 
						Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,2,rep,name=annotations"`
 | 
				
			||||||
 | 
						// Namespace is the namespace the pod is being created in.
 | 
				
			||||||
 | 
						Namespace string `json:"namespace,omitempty" protobuf:"bytes,3,opt,name=namespace"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReviewContainerSpec is a description of a container within the pod creation request.
 | 
				
			||||||
 | 
					type ImageReviewContainerSpec struct {
 | 
				
			||||||
 | 
						// This can be in the form image:tag or image@SHA:012345679abcdef.
 | 
				
			||||||
 | 
						Image string `json:"image,omitempty" protobuf:"bytes,1,opt,name=image"`
 | 
				
			||||||
 | 
						// In future, we may add command line overrides, exec health check command lines, and so on.
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageReviewStatus is the result of the token authentication request.
 | 
				
			||||||
 | 
					type ImageReviewStatus struct {
 | 
				
			||||||
 | 
						// Allowed indicates that all images were allowed to be run.
 | 
				
			||||||
 | 
						Allowed bool `json:"allowed" protobuf:"varint,1,opt,name=allowed"`
 | 
				
			||||||
 | 
						// Reason should be empty unless Allowed is false in which case it
 | 
				
			||||||
 | 
						// may contain a short description of what is wrong.  Kubernetes
 | 
				
			||||||
 | 
						// may truncate excessively long errors when displaying to the user.
 | 
				
			||||||
 | 
						Reason string `json:"reason,omitempty" protobuf:"bytes,2,opt,name=reason"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										169
									
								
								pkg/apis/imagepolicy/v1alpha1/zz_generated.conversion.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								pkg/apis/imagepolicy/v1alpha1/zz_generated.conversion.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,169 @@
 | 
				
			|||||||
 | 
					// +build !ignore_autogenerated
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// This file was autogenerated by conversion-gen. Do not edit it manually!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package v1alpha1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						api "k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
 | 
						imagepolicy "k8s.io/kubernetes/pkg/apis/imagepolicy"
 | 
				
			||||||
 | 
						conversion "k8s.io/kubernetes/pkg/conversion"
 | 
				
			||||||
 | 
						runtime "k8s.io/kubernetes/pkg/runtime"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func init() {
 | 
				
			||||||
 | 
						SchemeBuilder.Register(RegisterConversions)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// RegisterConversions adds conversion functions to the given scheme.
 | 
				
			||||||
 | 
					// Public to allow building arbitrary schemes.
 | 
				
			||||||
 | 
					func RegisterConversions(scheme *runtime.Scheme) error {
 | 
				
			||||||
 | 
						return scheme.AddGeneratedConversionFuncs(
 | 
				
			||||||
 | 
							Convert_v1alpha1_ImageReview_To_imagepolicy_ImageReview,
 | 
				
			||||||
 | 
							Convert_imagepolicy_ImageReview_To_v1alpha1_ImageReview,
 | 
				
			||||||
 | 
							Convert_v1alpha1_ImageReviewContainerSpec_To_imagepolicy_ImageReviewContainerSpec,
 | 
				
			||||||
 | 
							Convert_imagepolicy_ImageReviewContainerSpec_To_v1alpha1_ImageReviewContainerSpec,
 | 
				
			||||||
 | 
							Convert_v1alpha1_ImageReviewSpec_To_imagepolicy_ImageReviewSpec,
 | 
				
			||||||
 | 
							Convert_imagepolicy_ImageReviewSpec_To_v1alpha1_ImageReviewSpec,
 | 
				
			||||||
 | 
							Convert_v1alpha1_ImageReviewStatus_To_imagepolicy_ImageReviewStatus,
 | 
				
			||||||
 | 
							Convert_imagepolicy_ImageReviewStatus_To_v1alpha1_ImageReviewStatus,
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func autoConvert_v1alpha1_ImageReview_To_imagepolicy_ImageReview(in *ImageReview, out *imagepolicy.ImageReview, s conversion.Scope) error {
 | 
				
			||||||
 | 
						if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						// TODO: Inefficient conversion - can we improve it?
 | 
				
			||||||
 | 
						if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err := Convert_v1alpha1_ImageReviewSpec_To_imagepolicy_ImageReviewSpec(&in.Spec, &out.Spec, s); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err := Convert_v1alpha1_ImageReviewStatus_To_imagepolicy_ImageReviewStatus(&in.Status, &out.Status, s); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Convert_v1alpha1_ImageReview_To_imagepolicy_ImageReview(in *ImageReview, out *imagepolicy.ImageReview, s conversion.Scope) error {
 | 
				
			||||||
 | 
						return autoConvert_v1alpha1_ImageReview_To_imagepolicy_ImageReview(in, out, s)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func autoConvert_imagepolicy_ImageReview_To_v1alpha1_ImageReview(in *imagepolicy.ImageReview, out *ImageReview, s conversion.Scope) error {
 | 
				
			||||||
 | 
						if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						// TODO: Inefficient conversion - can we improve it?
 | 
				
			||||||
 | 
						if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err := Convert_imagepolicy_ImageReviewSpec_To_v1alpha1_ImageReviewSpec(&in.Spec, &out.Spec, s); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err := Convert_imagepolicy_ImageReviewStatus_To_v1alpha1_ImageReviewStatus(&in.Status, &out.Status, s); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Convert_imagepolicy_ImageReview_To_v1alpha1_ImageReview(in *imagepolicy.ImageReview, out *ImageReview, s conversion.Scope) error {
 | 
				
			||||||
 | 
						return autoConvert_imagepolicy_ImageReview_To_v1alpha1_ImageReview(in, out, s)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func autoConvert_v1alpha1_ImageReviewContainerSpec_To_imagepolicy_ImageReviewContainerSpec(in *ImageReviewContainerSpec, out *imagepolicy.ImageReviewContainerSpec, s conversion.Scope) error {
 | 
				
			||||||
 | 
						out.Image = in.Image
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Convert_v1alpha1_ImageReviewContainerSpec_To_imagepolicy_ImageReviewContainerSpec(in *ImageReviewContainerSpec, out *imagepolicy.ImageReviewContainerSpec, s conversion.Scope) error {
 | 
				
			||||||
 | 
						return autoConvert_v1alpha1_ImageReviewContainerSpec_To_imagepolicy_ImageReviewContainerSpec(in, out, s)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func autoConvert_imagepolicy_ImageReviewContainerSpec_To_v1alpha1_ImageReviewContainerSpec(in *imagepolicy.ImageReviewContainerSpec, out *ImageReviewContainerSpec, s conversion.Scope) error {
 | 
				
			||||||
 | 
						out.Image = in.Image
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Convert_imagepolicy_ImageReviewContainerSpec_To_v1alpha1_ImageReviewContainerSpec(in *imagepolicy.ImageReviewContainerSpec, out *ImageReviewContainerSpec, s conversion.Scope) error {
 | 
				
			||||||
 | 
						return autoConvert_imagepolicy_ImageReviewContainerSpec_To_v1alpha1_ImageReviewContainerSpec(in, out, s)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func autoConvert_v1alpha1_ImageReviewSpec_To_imagepolicy_ImageReviewSpec(in *ImageReviewSpec, out *imagepolicy.ImageReviewSpec, s conversion.Scope) error {
 | 
				
			||||||
 | 
						if in.Containers != nil {
 | 
				
			||||||
 | 
							in, out := &in.Containers, &out.Containers
 | 
				
			||||||
 | 
							*out = make([]imagepolicy.ImageReviewContainerSpec, len(*in))
 | 
				
			||||||
 | 
							for i := range *in {
 | 
				
			||||||
 | 
								if err := Convert_v1alpha1_ImageReviewContainerSpec_To_imagepolicy_ImageReviewContainerSpec(&(*in)[i], &(*out)[i], s); err != nil {
 | 
				
			||||||
 | 
									return err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							out.Containers = nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						out.Annotations = in.Annotations
 | 
				
			||||||
 | 
						out.Namespace = in.Namespace
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Convert_v1alpha1_ImageReviewSpec_To_imagepolicy_ImageReviewSpec(in *ImageReviewSpec, out *imagepolicy.ImageReviewSpec, s conversion.Scope) error {
 | 
				
			||||||
 | 
						return autoConvert_v1alpha1_ImageReviewSpec_To_imagepolicy_ImageReviewSpec(in, out, s)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func autoConvert_imagepolicy_ImageReviewSpec_To_v1alpha1_ImageReviewSpec(in *imagepolicy.ImageReviewSpec, out *ImageReviewSpec, s conversion.Scope) error {
 | 
				
			||||||
 | 
						if in.Containers != nil {
 | 
				
			||||||
 | 
							in, out := &in.Containers, &out.Containers
 | 
				
			||||||
 | 
							*out = make([]ImageReviewContainerSpec, len(*in))
 | 
				
			||||||
 | 
							for i := range *in {
 | 
				
			||||||
 | 
								if err := Convert_imagepolicy_ImageReviewContainerSpec_To_v1alpha1_ImageReviewContainerSpec(&(*in)[i], &(*out)[i], s); err != nil {
 | 
				
			||||||
 | 
									return err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							out.Containers = nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						out.Annotations = in.Annotations
 | 
				
			||||||
 | 
						out.Namespace = in.Namespace
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Convert_imagepolicy_ImageReviewSpec_To_v1alpha1_ImageReviewSpec(in *imagepolicy.ImageReviewSpec, out *ImageReviewSpec, s conversion.Scope) error {
 | 
				
			||||||
 | 
						return autoConvert_imagepolicy_ImageReviewSpec_To_v1alpha1_ImageReviewSpec(in, out, s)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func autoConvert_v1alpha1_ImageReviewStatus_To_imagepolicy_ImageReviewStatus(in *ImageReviewStatus, out *imagepolicy.ImageReviewStatus, s conversion.Scope) error {
 | 
				
			||||||
 | 
						out.Allowed = in.Allowed
 | 
				
			||||||
 | 
						out.Reason = in.Reason
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Convert_v1alpha1_ImageReviewStatus_To_imagepolicy_ImageReviewStatus(in *ImageReviewStatus, out *imagepolicy.ImageReviewStatus, s conversion.Scope) error {
 | 
				
			||||||
 | 
						return autoConvert_v1alpha1_ImageReviewStatus_To_imagepolicy_ImageReviewStatus(in, out, s)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func autoConvert_imagepolicy_ImageReviewStatus_To_v1alpha1_ImageReviewStatus(in *imagepolicy.ImageReviewStatus, out *ImageReviewStatus, s conversion.Scope) error {
 | 
				
			||||||
 | 
						out.Allowed = in.Allowed
 | 
				
			||||||
 | 
						out.Reason = in.Reason
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Convert_imagepolicy_ImageReviewStatus_To_v1alpha1_ImageReviewStatus(in *imagepolicy.ImageReviewStatus, out *ImageReviewStatus, s conversion.Scope) error {
 | 
				
			||||||
 | 
						return autoConvert_imagepolicy_ImageReviewStatus_To_v1alpha1_ImageReviewStatus(in, out, s)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										105
									
								
								pkg/apis/imagepolicy/v1alpha1/zz_generated.deepcopy.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								pkg/apis/imagepolicy/v1alpha1/zz_generated.deepcopy.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,105 @@
 | 
				
			|||||||
 | 
					// +build !ignore_autogenerated
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// This file was autogenerated by deepcopy-gen. Do not edit it manually!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package v1alpha1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						v1 "k8s.io/kubernetes/pkg/api/v1"
 | 
				
			||||||
 | 
						conversion "k8s.io/kubernetes/pkg/conversion"
 | 
				
			||||||
 | 
						runtime "k8s.io/kubernetes/pkg/runtime"
 | 
				
			||||||
 | 
						reflect "reflect"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func init() {
 | 
				
			||||||
 | 
						SchemeBuilder.Register(RegisterDeepCopies)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// RegisterDeepCopies adds deep-copy functions to the given scheme. Public
 | 
				
			||||||
 | 
					// to allow building arbitrary schemes.
 | 
				
			||||||
 | 
					func RegisterDeepCopies(scheme *runtime.Scheme) error {
 | 
				
			||||||
 | 
						return scheme.AddGeneratedDeepCopyFuncs(
 | 
				
			||||||
 | 
							conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_ImageReview, InType: reflect.TypeOf(&ImageReview{})},
 | 
				
			||||||
 | 
							conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_ImageReviewContainerSpec, InType: reflect.TypeOf(&ImageReviewContainerSpec{})},
 | 
				
			||||||
 | 
							conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_ImageReviewSpec, InType: reflect.TypeOf(&ImageReviewSpec{})},
 | 
				
			||||||
 | 
							conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1alpha1_ImageReviewStatus, InType: reflect.TypeOf(&ImageReviewStatus{})},
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func DeepCopy_v1alpha1_ImageReview(in interface{}, out interface{}, c *conversion.Cloner) error {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							in := in.(*ImageReview)
 | 
				
			||||||
 | 
							out := out.(*ImageReview)
 | 
				
			||||||
 | 
							out.TypeMeta = in.TypeMeta
 | 
				
			||||||
 | 
							if err := v1.DeepCopy_v1_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, c); err != nil {
 | 
				
			||||||
 | 
								return err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if err := DeepCopy_v1alpha1_ImageReviewSpec(&in.Spec, &out.Spec, c); err != nil {
 | 
				
			||||||
 | 
								return err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							out.Status = in.Status
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func DeepCopy_v1alpha1_ImageReviewContainerSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							in := in.(*ImageReviewContainerSpec)
 | 
				
			||||||
 | 
							out := out.(*ImageReviewContainerSpec)
 | 
				
			||||||
 | 
							out.Image = in.Image
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func DeepCopy_v1alpha1_ImageReviewSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							in := in.(*ImageReviewSpec)
 | 
				
			||||||
 | 
							out := out.(*ImageReviewSpec)
 | 
				
			||||||
 | 
							if in.Containers != nil {
 | 
				
			||||||
 | 
								in, out := &in.Containers, &out.Containers
 | 
				
			||||||
 | 
								*out = make([]ImageReviewContainerSpec, len(*in))
 | 
				
			||||||
 | 
								for i := range *in {
 | 
				
			||||||
 | 
									(*out)[i] = (*in)[i]
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								out.Containers = nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if in.Annotations != nil {
 | 
				
			||||||
 | 
								in, out := &in.Annotations, &out.Annotations
 | 
				
			||||||
 | 
								*out = make(map[string]string)
 | 
				
			||||||
 | 
								for key, val := range *in {
 | 
				
			||||||
 | 
									(*out)[key] = val
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								out.Annotations = nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							out.Namespace = in.Namespace
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func DeepCopy_v1alpha1_ImageReviewStatus(in interface{}, out interface{}, c *conversion.Cloner) error {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							in := in.(*ImageReviewStatus)
 | 
				
			||||||
 | 
							out := out.(*ImageReviewStatus)
 | 
				
			||||||
 | 
							out.Allowed = in.Allowed
 | 
				
			||||||
 | 
							out.Reason = in.Reason
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										105
									
								
								pkg/apis/imagepolicy/zz_generated.deepcopy.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								pkg/apis/imagepolicy/zz_generated.deepcopy.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,105 @@
 | 
				
			|||||||
 | 
					// +build !ignore_autogenerated
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// This file was autogenerated by deepcopy-gen. Do not edit it manually!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package imagepolicy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						api "k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
 | 
						conversion "k8s.io/kubernetes/pkg/conversion"
 | 
				
			||||||
 | 
						runtime "k8s.io/kubernetes/pkg/runtime"
 | 
				
			||||||
 | 
						reflect "reflect"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func init() {
 | 
				
			||||||
 | 
						SchemeBuilder.Register(RegisterDeepCopies)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// RegisterDeepCopies adds deep-copy functions to the given scheme. Public
 | 
				
			||||||
 | 
					// to allow building arbitrary schemes.
 | 
				
			||||||
 | 
					func RegisterDeepCopies(scheme *runtime.Scheme) error {
 | 
				
			||||||
 | 
						return scheme.AddGeneratedDeepCopyFuncs(
 | 
				
			||||||
 | 
							conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_imagepolicy_ImageReview, InType: reflect.TypeOf(&ImageReview{})},
 | 
				
			||||||
 | 
							conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_imagepolicy_ImageReviewContainerSpec, InType: reflect.TypeOf(&ImageReviewContainerSpec{})},
 | 
				
			||||||
 | 
							conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_imagepolicy_ImageReviewSpec, InType: reflect.TypeOf(&ImageReviewSpec{})},
 | 
				
			||||||
 | 
							conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_imagepolicy_ImageReviewStatus, InType: reflect.TypeOf(&ImageReviewStatus{})},
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func DeepCopy_imagepolicy_ImageReview(in interface{}, out interface{}, c *conversion.Cloner) error {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							in := in.(*ImageReview)
 | 
				
			||||||
 | 
							out := out.(*ImageReview)
 | 
				
			||||||
 | 
							out.TypeMeta = in.TypeMeta
 | 
				
			||||||
 | 
							if err := api.DeepCopy_api_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, c); err != nil {
 | 
				
			||||||
 | 
								return err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if err := DeepCopy_imagepolicy_ImageReviewSpec(&in.Spec, &out.Spec, c); err != nil {
 | 
				
			||||||
 | 
								return err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							out.Status = in.Status
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func DeepCopy_imagepolicy_ImageReviewContainerSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							in := in.(*ImageReviewContainerSpec)
 | 
				
			||||||
 | 
							out := out.(*ImageReviewContainerSpec)
 | 
				
			||||||
 | 
							out.Image = in.Image
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func DeepCopy_imagepolicy_ImageReviewSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							in := in.(*ImageReviewSpec)
 | 
				
			||||||
 | 
							out := out.(*ImageReviewSpec)
 | 
				
			||||||
 | 
							if in.Containers != nil {
 | 
				
			||||||
 | 
								in, out := &in.Containers, &out.Containers
 | 
				
			||||||
 | 
								*out = make([]ImageReviewContainerSpec, len(*in))
 | 
				
			||||||
 | 
								for i := range *in {
 | 
				
			||||||
 | 
									(*out)[i] = (*in)[i]
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								out.Containers = nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if in.Annotations != nil {
 | 
				
			||||||
 | 
								in, out := &in.Annotations, &out.Annotations
 | 
				
			||||||
 | 
								*out = make(map[string]string)
 | 
				
			||||||
 | 
								for key, val := range *in {
 | 
				
			||||||
 | 
									(*out)[key] = val
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								out.Annotations = nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							out.Namespace = in.Namespace
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func DeepCopy_imagepolicy_ImageReviewStatus(in interface{}, out interface{}, c *conversion.Cloner) error {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							in := in.(*ImageReviewStatus)
 | 
				
			||||||
 | 
							out := out.(*ImageReviewStatus)
 | 
				
			||||||
 | 
							out.Allowed = in.Allowed
 | 
				
			||||||
 | 
							out.Reason = in.Reason
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user