update vendor with openshift

This commit is contained in:
Tomas Kral
2016-07-21 20:35:15 +02:00
parent 713aadff8f
commit c2a07f764d
357 changed files with 121771 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
package api
import (
"github.com/fsouza/go-dockerclient"
kapi "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/conversion"
)
func init() {
err := kapi.Scheme.AddConversionFuncs(
// Convert docker client object to internal object
func(in *docker.Image, out *DockerImage, s conversion.Scope) error {
if err := s.Convert(&in.Config, &out.Config, conversion.AllowDifferentFieldTypeNames); err != nil {
return err
}
if err := s.Convert(&in.ContainerConfig, &out.ContainerConfig, conversion.AllowDifferentFieldTypeNames); err != nil {
return err
}
out.ID = in.ID
out.Parent = in.Parent
out.Comment = in.Comment
out.Created = unversioned.NewTime(in.Created)
out.Container = in.Container
out.DockerVersion = in.DockerVersion
out.Author = in.Author
out.Architecture = in.Architecture
out.Size = in.Size
return nil
},
func(in *DockerImage, out *docker.Image, s conversion.Scope) error {
if err := s.Convert(&in.Config, &out.Config, conversion.AllowDifferentFieldTypeNames); err != nil {
return err
}
if err := s.Convert(&in.ContainerConfig, &out.ContainerConfig, conversion.AllowDifferentFieldTypeNames); err != nil {
return err
}
out.ID = in.ID
out.Parent = in.Parent
out.Comment = in.Comment
out.Created = in.Created.Time
out.Container = in.Container
out.DockerVersion = in.DockerVersion
out.Author = in.Author
out.Architecture = in.Architecture
out.Size = in.Size
return nil
},
)
if err != nil {
// If one of the conversion functions is malformed, detect it immediately.
panic(err)
}
}
+942
View File
@@ -0,0 +1,942 @@
// +build !ignore_autogenerated_openshift
// This file was autogenerated by deepcopy-gen. Do not edit it manually!
package api
import (
api "k8s.io/kubernetes/pkg/api"
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
conversion "k8s.io/kubernetes/pkg/conversion"
)
func init() {
if err := api.Scheme.AddGeneratedDeepCopyFuncs(
DeepCopy_api_Descriptor,
DeepCopy_api_DockerConfig,
DeepCopy_api_DockerConfigHistory,
DeepCopy_api_DockerConfigRootFS,
DeepCopy_api_DockerFSLayer,
DeepCopy_api_DockerHistory,
DeepCopy_api_DockerImage,
DeepCopy_api_DockerImageConfig,
DeepCopy_api_DockerImageManifest,
DeepCopy_api_DockerImageReference,
DeepCopy_api_DockerV1CompatibilityImage,
DeepCopy_api_DockerV1CompatibilityImageSize,
DeepCopy_api_Image,
DeepCopy_api_ImageImportSpec,
DeepCopy_api_ImageImportStatus,
DeepCopy_api_ImageLayer,
DeepCopy_api_ImageList,
DeepCopy_api_ImageSignature,
DeepCopy_api_ImageStream,
DeepCopy_api_ImageStreamImage,
DeepCopy_api_ImageStreamImport,
DeepCopy_api_ImageStreamImportSpec,
DeepCopy_api_ImageStreamImportStatus,
DeepCopy_api_ImageStreamList,
DeepCopy_api_ImageStreamMapping,
DeepCopy_api_ImageStreamSpec,
DeepCopy_api_ImageStreamStatus,
DeepCopy_api_ImageStreamTag,
DeepCopy_api_ImageStreamTagList,
DeepCopy_api_RepositoryImportSpec,
DeepCopy_api_RepositoryImportStatus,
DeepCopy_api_SignatureCondition,
DeepCopy_api_SignatureGenericEntity,
DeepCopy_api_SignatureIssuer,
DeepCopy_api_SignatureSubject,
DeepCopy_api_TagEvent,
DeepCopy_api_TagEventCondition,
DeepCopy_api_TagEventList,
DeepCopy_api_TagImportPolicy,
DeepCopy_api_TagReference,
); err != nil {
// if one of the deep copy functions is malformed, detect it immediately.
panic(err)
}
}
func DeepCopy_api_Descriptor(in Descriptor, out *Descriptor, c *conversion.Cloner) error {
out.MediaType = in.MediaType
out.Size = in.Size
out.Digest = in.Digest
return nil
}
func DeepCopy_api_DockerConfig(in DockerConfig, out *DockerConfig, c *conversion.Cloner) error {
out.Hostname = in.Hostname
out.Domainname = in.Domainname
out.User = in.User
out.Memory = in.Memory
out.MemorySwap = in.MemorySwap
out.CPUShares = in.CPUShares
out.CPUSet = in.CPUSet
out.AttachStdin = in.AttachStdin
out.AttachStdout = in.AttachStdout
out.AttachStderr = in.AttachStderr
if in.PortSpecs != nil {
in, out := in.PortSpecs, &out.PortSpecs
*out = make([]string, len(in))
copy(*out, in)
} else {
out.PortSpecs = nil
}
if in.ExposedPorts != nil {
in, out := in.ExposedPorts, &out.ExposedPorts
*out = make(map[string]struct{})
for key, val := range in {
if newVal, err := c.DeepCopy(val); err != nil {
return err
} else {
(*out)[key] = newVal.(struct{})
}
}
} else {
out.ExposedPorts = nil
}
out.Tty = in.Tty
out.OpenStdin = in.OpenStdin
out.StdinOnce = in.StdinOnce
if in.Env != nil {
in, out := in.Env, &out.Env
*out = make([]string, len(in))
copy(*out, in)
} else {
out.Env = nil
}
if in.Cmd != nil {
in, out := in.Cmd, &out.Cmd
*out = make([]string, len(in))
copy(*out, in)
} else {
out.Cmd = nil
}
if in.DNS != nil {
in, out := in.DNS, &out.DNS
*out = make([]string, len(in))
copy(*out, in)
} else {
out.DNS = nil
}
out.Image = in.Image
if in.Volumes != nil {
in, out := in.Volumes, &out.Volumes
*out = make(map[string]struct{})
for key, val := range in {
if newVal, err := c.DeepCopy(val); err != nil {
return err
} else {
(*out)[key] = newVal.(struct{})
}
}
} else {
out.Volumes = nil
}
out.VolumesFrom = in.VolumesFrom
out.WorkingDir = in.WorkingDir
if in.Entrypoint != nil {
in, out := in.Entrypoint, &out.Entrypoint
*out = make([]string, len(in))
copy(*out, in)
} else {
out.Entrypoint = nil
}
out.NetworkDisabled = in.NetworkDisabled
if in.SecurityOpts != nil {
in, out := in.SecurityOpts, &out.SecurityOpts
*out = make([]string, len(in))
copy(*out, in)
} else {
out.SecurityOpts = nil
}
if in.OnBuild != nil {
in, out := in.OnBuild, &out.OnBuild
*out = make([]string, len(in))
copy(*out, in)
} else {
out.OnBuild = nil
}
if in.Labels != nil {
in, out := in.Labels, &out.Labels
*out = make(map[string]string)
for key, val := range in {
(*out)[key] = val
}
} else {
out.Labels = nil
}
return nil
}
func DeepCopy_api_DockerConfigHistory(in DockerConfigHistory, out *DockerConfigHistory, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_Time(in.Created, &out.Created, c); err != nil {
return err
}
out.Author = in.Author
out.CreatedBy = in.CreatedBy
out.Comment = in.Comment
out.EmptyLayer = in.EmptyLayer
return nil
}
func DeepCopy_api_DockerConfigRootFS(in DockerConfigRootFS, out *DockerConfigRootFS, c *conversion.Cloner) error {
out.Type = in.Type
if in.DiffIDs != nil {
in, out := in.DiffIDs, &out.DiffIDs
*out = make([]string, len(in))
copy(*out, in)
} else {
out.DiffIDs = nil
}
return nil
}
func DeepCopy_api_DockerFSLayer(in DockerFSLayer, out *DockerFSLayer, c *conversion.Cloner) error {
out.DockerBlobSum = in.DockerBlobSum
return nil
}
func DeepCopy_api_DockerHistory(in DockerHistory, out *DockerHistory, c *conversion.Cloner) error {
out.DockerV1Compatibility = in.DockerV1Compatibility
return nil
}
func DeepCopy_api_DockerImage(in DockerImage, out *DockerImage, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
out.ID = in.ID
out.Parent = in.Parent
out.Comment = in.Comment
if err := unversioned.DeepCopy_unversioned_Time(in.Created, &out.Created, c); err != nil {
return err
}
out.Container = in.Container
if err := DeepCopy_api_DockerConfig(in.ContainerConfig, &out.ContainerConfig, c); err != nil {
return err
}
out.DockerVersion = in.DockerVersion
out.Author = in.Author
if in.Config != nil {
in, out := in.Config, &out.Config
*out = new(DockerConfig)
if err := DeepCopy_api_DockerConfig(*in, *out, c); err != nil {
return err
}
} else {
out.Config = nil
}
out.Architecture = in.Architecture
out.Size = in.Size
return nil
}
func DeepCopy_api_DockerImageConfig(in DockerImageConfig, out *DockerImageConfig, c *conversion.Cloner) error {
out.ID = in.ID
out.Parent = in.Parent
out.Comment = in.Comment
if err := unversioned.DeepCopy_unversioned_Time(in.Created, &out.Created, c); err != nil {
return err
}
out.Container = in.Container
if err := DeepCopy_api_DockerConfig(in.ContainerConfig, &out.ContainerConfig, c); err != nil {
return err
}
out.DockerVersion = in.DockerVersion
out.Author = in.Author
if in.Config != nil {
in, out := in.Config, &out.Config
*out = new(DockerConfig)
if err := DeepCopy_api_DockerConfig(*in, *out, c); err != nil {
return err
}
} else {
out.Config = nil
}
out.Architecture = in.Architecture
out.Size = in.Size
if in.RootFS != nil {
in, out := in.RootFS, &out.RootFS
*out = new(DockerConfigRootFS)
if err := DeepCopy_api_DockerConfigRootFS(*in, *out, c); err != nil {
return err
}
} else {
out.RootFS = nil
}
if in.History != nil {
in, out := in.History, &out.History
*out = make([]DockerConfigHistory, len(in))
for i := range in {
if err := DeepCopy_api_DockerConfigHistory(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.History = nil
}
out.OSVersion = in.OSVersion
if in.OSFeatures != nil {
in, out := in.OSFeatures, &out.OSFeatures
*out = make([]string, len(in))
copy(*out, in)
} else {
out.OSFeatures = nil
}
return nil
}
func DeepCopy_api_DockerImageManifest(in DockerImageManifest, out *DockerImageManifest, c *conversion.Cloner) error {
out.SchemaVersion = in.SchemaVersion
out.MediaType = in.MediaType
out.Name = in.Name
out.Tag = in.Tag
out.Architecture = in.Architecture
if in.FSLayers != nil {
in, out := in.FSLayers, &out.FSLayers
*out = make([]DockerFSLayer, len(in))
for i := range in {
if err := DeepCopy_api_DockerFSLayer(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.FSLayers = nil
}
if in.History != nil {
in, out := in.History, &out.History
*out = make([]DockerHistory, len(in))
for i := range in {
if err := DeepCopy_api_DockerHistory(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.History = nil
}
if in.Layers != nil {
in, out := in.Layers, &out.Layers
*out = make([]Descriptor, len(in))
for i := range in {
if err := DeepCopy_api_Descriptor(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Layers = nil
}
if err := DeepCopy_api_Descriptor(in.Config, &out.Config, c); err != nil {
return err
}
return nil
}
func DeepCopy_api_DockerImageReference(in DockerImageReference, out *DockerImageReference, c *conversion.Cloner) error {
out.Registry = in.Registry
out.Namespace = in.Namespace
out.Name = in.Name
out.Tag = in.Tag
out.ID = in.ID
return nil
}
func DeepCopy_api_DockerV1CompatibilityImage(in DockerV1CompatibilityImage, out *DockerV1CompatibilityImage, c *conversion.Cloner) error {
out.ID = in.ID
out.Parent = in.Parent
out.Comment = in.Comment
if err := unversioned.DeepCopy_unversioned_Time(in.Created, &out.Created, c); err != nil {
return err
}
out.Container = in.Container
if err := DeepCopy_api_DockerConfig(in.ContainerConfig, &out.ContainerConfig, c); err != nil {
return err
}
out.DockerVersion = in.DockerVersion
out.Author = in.Author
if in.Config != nil {
in, out := in.Config, &out.Config
*out = new(DockerConfig)
if err := DeepCopy_api_DockerConfig(*in, *out, c); err != nil {
return err
}
} else {
out.Config = nil
}
out.Architecture = in.Architecture
out.Size = in.Size
return nil
}
func DeepCopy_api_DockerV1CompatibilityImageSize(in DockerV1CompatibilityImageSize, out *DockerV1CompatibilityImageSize, c *conversion.Cloner) error {
out.Size = in.Size
return nil
}
func DeepCopy_api_Image(in Image, out *Image, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
if err := api.DeepCopy_api_ObjectMeta(in.ObjectMeta, &out.ObjectMeta, c); err != nil {
return err
}
out.DockerImageReference = in.DockerImageReference
if err := DeepCopy_api_DockerImage(in.DockerImageMetadata, &out.DockerImageMetadata, c); err != nil {
return err
}
out.DockerImageMetadataVersion = in.DockerImageMetadataVersion
out.DockerImageManifest = in.DockerImageManifest
if in.DockerImageLayers != nil {
in, out := in.DockerImageLayers, &out.DockerImageLayers
*out = make([]ImageLayer, len(in))
for i := range in {
if err := DeepCopy_api_ImageLayer(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.DockerImageLayers = nil
}
if in.Signatures != nil {
in, out := in.Signatures, &out.Signatures
*out = make([]ImageSignature, len(in))
for i := range in {
if err := DeepCopy_api_ImageSignature(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Signatures = nil
}
if in.DockerImageSignatures != nil {
in, out := in.DockerImageSignatures, &out.DockerImageSignatures
*out = make([][]byte, len(in))
for i := range in {
if newVal, err := c.DeepCopy(in[i]); err != nil {
return err
} else {
(*out)[i] = newVal.([]byte)
}
}
} else {
out.DockerImageSignatures = nil
}
out.DockerImageManifestMediaType = in.DockerImageManifestMediaType
out.DockerImageConfig = in.DockerImageConfig
return nil
}
func DeepCopy_api_ImageImportSpec(in ImageImportSpec, out *ImageImportSpec, c *conversion.Cloner) error {
if err := api.DeepCopy_api_ObjectReference(in.From, &out.From, c); err != nil {
return err
}
if in.To != nil {
in, out := in.To, &out.To
*out = new(api.LocalObjectReference)
if err := api.DeepCopy_api_LocalObjectReference(*in, *out, c); err != nil {
return err
}
} else {
out.To = nil
}
if err := DeepCopy_api_TagImportPolicy(in.ImportPolicy, &out.ImportPolicy, c); err != nil {
return err
}
out.IncludeManifest = in.IncludeManifest
return nil
}
func DeepCopy_api_ImageImportStatus(in ImageImportStatus, out *ImageImportStatus, c *conversion.Cloner) error {
out.Tag = in.Tag
if err := unversioned.DeepCopy_unversioned_Status(in.Status, &out.Status, c); err != nil {
return err
}
if in.Image != nil {
in, out := in.Image, &out.Image
*out = new(Image)
if err := DeepCopy_api_Image(*in, *out, c); err != nil {
return err
}
} else {
out.Image = nil
}
return nil
}
func DeepCopy_api_ImageLayer(in ImageLayer, out *ImageLayer, c *conversion.Cloner) error {
out.Name = in.Name
out.LayerSize = in.LayerSize
out.MediaType = in.MediaType
return nil
}
func DeepCopy_api_ImageList(in ImageList, out *ImageList, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
if err := unversioned.DeepCopy_unversioned_ListMeta(in.ListMeta, &out.ListMeta, c); err != nil {
return err
}
if in.Items != nil {
in, out := in.Items, &out.Items
*out = make([]Image, len(in))
for i := range in {
if err := DeepCopy_api_Image(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Items = nil
}
return nil
}
func DeepCopy_api_ImageSignature(in ImageSignature, out *ImageSignature, c *conversion.Cloner) error {
out.Type = in.Type
if in.Content != nil {
in, out := in.Content, &out.Content
*out = make([]byte, len(in))
copy(*out, in)
} else {
out.Content = nil
}
if in.Conditions != nil {
in, out := in.Conditions, &out.Conditions
*out = make([]SignatureCondition, len(in))
for i := range in {
if err := DeepCopy_api_SignatureCondition(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Conditions = nil
}
out.ImageIdentity = in.ImageIdentity
if in.SignedClaims != nil {
in, out := in.SignedClaims, &out.SignedClaims
*out = make(map[string]string)
for key, val := range in {
(*out)[key] = val
}
} else {
out.SignedClaims = nil
}
if in.Created != nil {
in, out := in.Created, &out.Created
*out = new(unversioned.Time)
if err := unversioned.DeepCopy_unversioned_Time(*in, *out, c); err != nil {
return err
}
} else {
out.Created = nil
}
if in.IssuedBy != nil {
in, out := in.IssuedBy, &out.IssuedBy
*out = new(SignatureIssuer)
if err := DeepCopy_api_SignatureIssuer(*in, *out, c); err != nil {
return err
}
} else {
out.IssuedBy = nil
}
if in.IssuedTo != nil {
in, out := in.IssuedTo, &out.IssuedTo
*out = new(SignatureSubject)
if err := DeepCopy_api_SignatureSubject(*in, *out, c); err != nil {
return err
}
} else {
out.IssuedTo = nil
}
return nil
}
func DeepCopy_api_ImageStream(in ImageStream, out *ImageStream, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
if err := api.DeepCopy_api_ObjectMeta(in.ObjectMeta, &out.ObjectMeta, c); err != nil {
return err
}
if err := DeepCopy_api_ImageStreamSpec(in.Spec, &out.Spec, c); err != nil {
return err
}
if err := DeepCopy_api_ImageStreamStatus(in.Status, &out.Status, c); err != nil {
return err
}
return nil
}
func DeepCopy_api_ImageStreamImage(in ImageStreamImage, out *ImageStreamImage, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
if err := api.DeepCopy_api_ObjectMeta(in.ObjectMeta, &out.ObjectMeta, c); err != nil {
return err
}
if err := DeepCopy_api_Image(in.Image, &out.Image, c); err != nil {
return err
}
return nil
}
func DeepCopy_api_ImageStreamImport(in ImageStreamImport, out *ImageStreamImport, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
if err := api.DeepCopy_api_ObjectMeta(in.ObjectMeta, &out.ObjectMeta, c); err != nil {
return err
}
if err := DeepCopy_api_ImageStreamImportSpec(in.Spec, &out.Spec, c); err != nil {
return err
}
if err := DeepCopy_api_ImageStreamImportStatus(in.Status, &out.Status, c); err != nil {
return err
}
return nil
}
func DeepCopy_api_ImageStreamImportSpec(in ImageStreamImportSpec, out *ImageStreamImportSpec, c *conversion.Cloner) error {
out.Import = in.Import
if in.Repository != nil {
in, out := in.Repository, &out.Repository
*out = new(RepositoryImportSpec)
if err := DeepCopy_api_RepositoryImportSpec(*in, *out, c); err != nil {
return err
}
} else {
out.Repository = nil
}
if in.Images != nil {
in, out := in.Images, &out.Images
*out = make([]ImageImportSpec, len(in))
for i := range in {
if err := DeepCopy_api_ImageImportSpec(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Images = nil
}
return nil
}
func DeepCopy_api_ImageStreamImportStatus(in ImageStreamImportStatus, out *ImageStreamImportStatus, c *conversion.Cloner) error {
if in.Import != nil {
in, out := in.Import, &out.Import
*out = new(ImageStream)
if err := DeepCopy_api_ImageStream(*in, *out, c); err != nil {
return err
}
} else {
out.Import = nil
}
if in.Repository != nil {
in, out := in.Repository, &out.Repository
*out = new(RepositoryImportStatus)
if err := DeepCopy_api_RepositoryImportStatus(*in, *out, c); err != nil {
return err
}
} else {
out.Repository = nil
}
if in.Images != nil {
in, out := in.Images, &out.Images
*out = make([]ImageImportStatus, len(in))
for i := range in {
if err := DeepCopy_api_ImageImportStatus(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Images = nil
}
return nil
}
func DeepCopy_api_ImageStreamList(in ImageStreamList, out *ImageStreamList, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
if err := unversioned.DeepCopy_unversioned_ListMeta(in.ListMeta, &out.ListMeta, c); err != nil {
return err
}
if in.Items != nil {
in, out := in.Items, &out.Items
*out = make([]ImageStream, len(in))
for i := range in {
if err := DeepCopy_api_ImageStream(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Items = nil
}
return nil
}
func DeepCopy_api_ImageStreamMapping(in ImageStreamMapping, out *ImageStreamMapping, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
if err := api.DeepCopy_api_ObjectMeta(in.ObjectMeta, &out.ObjectMeta, c); err != nil {
return err
}
out.DockerImageRepository = in.DockerImageRepository
if err := DeepCopy_api_Image(in.Image, &out.Image, c); err != nil {
return err
}
out.Tag = in.Tag
return nil
}
func DeepCopy_api_ImageStreamSpec(in ImageStreamSpec, out *ImageStreamSpec, c *conversion.Cloner) error {
out.DockerImageRepository = in.DockerImageRepository
if in.Tags != nil {
in, out := in.Tags, &out.Tags
*out = make(map[string]TagReference)
for key, val := range in {
newVal := new(TagReference)
if err := DeepCopy_api_TagReference(val, newVal, c); err != nil {
return err
}
(*out)[key] = *newVal
}
} else {
out.Tags = nil
}
return nil
}
func DeepCopy_api_ImageStreamStatus(in ImageStreamStatus, out *ImageStreamStatus, c *conversion.Cloner) error {
out.DockerImageRepository = in.DockerImageRepository
if in.Tags != nil {
in, out := in.Tags, &out.Tags
*out = make(map[string]TagEventList)
for key, val := range in {
newVal := new(TagEventList)
if err := DeepCopy_api_TagEventList(val, newVal, c); err != nil {
return err
}
(*out)[key] = *newVal
}
} else {
out.Tags = nil
}
return nil
}
func DeepCopy_api_ImageStreamTag(in ImageStreamTag, out *ImageStreamTag, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
if err := api.DeepCopy_api_ObjectMeta(in.ObjectMeta, &out.ObjectMeta, c); err != nil {
return err
}
if in.Tag != nil {
in, out := in.Tag, &out.Tag
*out = new(TagReference)
if err := DeepCopy_api_TagReference(*in, *out, c); err != nil {
return err
}
} else {
out.Tag = nil
}
out.Generation = in.Generation
if in.Conditions != nil {
in, out := in.Conditions, &out.Conditions
*out = make([]TagEventCondition, len(in))
for i := range in {
if err := DeepCopy_api_TagEventCondition(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Conditions = nil
}
if err := DeepCopy_api_Image(in.Image, &out.Image, c); err != nil {
return err
}
return nil
}
func DeepCopy_api_ImageStreamTagList(in ImageStreamTagList, out *ImageStreamTagList, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
if err := unversioned.DeepCopy_unversioned_ListMeta(in.ListMeta, &out.ListMeta, c); err != nil {
return err
}
if in.Items != nil {
in, out := in.Items, &out.Items
*out = make([]ImageStreamTag, len(in))
for i := range in {
if err := DeepCopy_api_ImageStreamTag(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Items = nil
}
return nil
}
func DeepCopy_api_RepositoryImportSpec(in RepositoryImportSpec, out *RepositoryImportSpec, c *conversion.Cloner) error {
if err := api.DeepCopy_api_ObjectReference(in.From, &out.From, c); err != nil {
return err
}
if err := DeepCopy_api_TagImportPolicy(in.ImportPolicy, &out.ImportPolicy, c); err != nil {
return err
}
out.IncludeManifest = in.IncludeManifest
return nil
}
func DeepCopy_api_RepositoryImportStatus(in RepositoryImportStatus, out *RepositoryImportStatus, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_Status(in.Status, &out.Status, c); err != nil {
return err
}
if in.Images != nil {
in, out := in.Images, &out.Images
*out = make([]ImageImportStatus, len(in))
for i := range in {
if err := DeepCopy_api_ImageImportStatus(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Images = nil
}
if in.AdditionalTags != nil {
in, out := in.AdditionalTags, &out.AdditionalTags
*out = make([]string, len(in))
copy(*out, in)
} else {
out.AdditionalTags = nil
}
return nil
}
func DeepCopy_api_SignatureCondition(in SignatureCondition, out *SignatureCondition, c *conversion.Cloner) error {
out.Type = in.Type
out.Status = in.Status
if err := unversioned.DeepCopy_unversioned_Time(in.LastProbeTime, &out.LastProbeTime, c); err != nil {
return err
}
if err := unversioned.DeepCopy_unversioned_Time(in.LastTransitionTime, &out.LastTransitionTime, c); err != nil {
return err
}
out.Reason = in.Reason
out.Message = in.Message
return nil
}
func DeepCopy_api_SignatureGenericEntity(in SignatureGenericEntity, out *SignatureGenericEntity, c *conversion.Cloner) error {
out.Organization = in.Organization
out.CommonName = in.CommonName
return nil
}
func DeepCopy_api_SignatureIssuer(in SignatureIssuer, out *SignatureIssuer, c *conversion.Cloner) error {
if err := DeepCopy_api_SignatureGenericEntity(in.SignatureGenericEntity, &out.SignatureGenericEntity, c); err != nil {
return err
}
return nil
}
func DeepCopy_api_SignatureSubject(in SignatureSubject, out *SignatureSubject, c *conversion.Cloner) error {
if err := DeepCopy_api_SignatureGenericEntity(in.SignatureGenericEntity, &out.SignatureGenericEntity, c); err != nil {
return err
}
out.PublicKeyID = in.PublicKeyID
return nil
}
func DeepCopy_api_TagEvent(in TagEvent, out *TagEvent, c *conversion.Cloner) error {
if err := unversioned.DeepCopy_unversioned_Time(in.Created, &out.Created, c); err != nil {
return err
}
out.DockerImageReference = in.DockerImageReference
out.Image = in.Image
out.Generation = in.Generation
return nil
}
func DeepCopy_api_TagEventCondition(in TagEventCondition, out *TagEventCondition, c *conversion.Cloner) error {
out.Type = in.Type
out.Status = in.Status
if err := unversioned.DeepCopy_unversioned_Time(in.LastTransitionTime, &out.LastTransitionTime, c); err != nil {
return err
}
out.Reason = in.Reason
out.Message = in.Message
out.Generation = in.Generation
return nil
}
func DeepCopy_api_TagEventList(in TagEventList, out *TagEventList, c *conversion.Cloner) error {
if in.Items != nil {
in, out := in.Items, &out.Items
*out = make([]TagEvent, len(in))
for i := range in {
if err := DeepCopy_api_TagEvent(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Items = nil
}
if in.Conditions != nil {
in, out := in.Conditions, &out.Conditions
*out = make([]TagEventCondition, len(in))
for i := range in {
if err := DeepCopy_api_TagEventCondition(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Conditions = nil
}
return nil
}
func DeepCopy_api_TagImportPolicy(in TagImportPolicy, out *TagImportPolicy, c *conversion.Cloner) error {
out.Insecure = in.Insecure
out.Scheduled = in.Scheduled
return nil
}
func DeepCopy_api_TagReference(in TagReference, out *TagReference, c *conversion.Cloner) error {
out.Name = in.Name
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
}
if in.From != nil {
in, out := in.From, &out.From
*out = new(api.ObjectReference)
if err := api.DeepCopy_api_ObjectReference(*in, *out, c); err != nil {
return err
}
} else {
out.From = nil
}
out.Reference = in.Reference
if in.Generation != nil {
in, out := in.Generation, &out.Generation
*out = new(int64)
**out = *in
} else {
out.Generation = nil
}
if err := DeepCopy_api_TagImportPolicy(in.ImportPolicy, &out.ImportPolicy, c); err != nil {
return err
}
return nil
}
+157
View File
@@ -0,0 +1,157 @@
package api
import (
"k8s.io/kubernetes/pkg/api/unversioned"
)
// DockerImage is the type representing a docker image and its various properties when
// retrieved from the Docker client API.
type DockerImage struct {
unversioned.TypeMeta `json:",inline"`
ID string `json:"Id"`
Parent string `json:"Parent,omitempty"`
Comment string `json:"Comment,omitempty"`
Created unversioned.Time `json:"Created,omitempty"`
Container string `json:"Container,omitempty"`
ContainerConfig DockerConfig `json:"ContainerConfig,omitempty"`
DockerVersion string `json:"DockerVersion,omitempty"`
Author string `json:"Author,omitempty"`
Config *DockerConfig `json:"Config,omitempty"`
Architecture string `json:"Architecture,omitempty"`
Size int64 `json:"Size,omitempty"`
}
// DockerConfig is the list of configuration options used when creating a container.
type DockerConfig struct {
Hostname string `json:"Hostname,omitempty"`
Domainname string `json:"Domainname,omitempty"`
User string `json:"User,omitempty"`
Memory int64 `json:"Memory,omitempty"`
MemorySwap int64 `json:"MemorySwap,omitempty"`
CPUShares int64 `json:"CpuShares,omitempty"`
CPUSet string `json:"Cpuset,omitempty"`
AttachStdin bool `json:"AttachStdin,omitempty"`
AttachStdout bool `json:"AttachStdout,omitempty"`
AttachStderr bool `json:"AttachStderr,omitempty"`
PortSpecs []string `json:"PortSpecs,omitempty"`
ExposedPorts map[string]struct{} `json:"ExposedPorts,omitempty"`
Tty bool `json:"Tty,omitempty"`
OpenStdin bool `json:"OpenStdin,omitempty"`
StdinOnce bool `json:"StdinOnce,omitempty"`
Env []string `json:"Env,omitempty"`
Cmd []string `json:"Cmd,omitempty"`
DNS []string `json:"Dns,omitempty"` // For Docker API v1.9 and below only
Image string `json:"Image,omitempty"`
Volumes map[string]struct{} `json:"Volumes,omitempty"`
VolumesFrom string `json:"VolumesFrom,omitempty"`
WorkingDir string `json:"WorkingDir,omitempty"`
Entrypoint []string `json:"Entrypoint,omitempty"`
NetworkDisabled bool `json:"NetworkDisabled,omitempty"`
SecurityOpts []string `json:"SecurityOpts,omitempty"`
OnBuild []string `json:"OnBuild,omitempty"`
Labels map[string]string `json:"Labels,omitempty"`
}
// Descriptor describes targeted content. Used in conjunction with a blob
// store, a descriptor can be used to fetch, store and target any kind of
// blob. The struct also describes the wire protocol format. Fields should
// only be added but never changed.
type Descriptor struct {
// MediaType describe the type of the content. All text based formats are
// encoded as utf-8.
MediaType string `json:"mediaType,omitempty"`
// Size in bytes of content.
Size int64 `json:"size,omitempty"`
// Digest uniquely identifies the content. A byte stream can be verified
// against against this digest.
Digest string `json:"digest,omitempty"`
}
// DockerImageManifest represents the Docker v2 image format.
type DockerImageManifest struct {
SchemaVersion int `json:"schemaVersion"`
MediaType string `json:"mediaType,omitempty"`
// schema1
Name string `json:"name"`
Tag string `json:"tag"`
Architecture string `json:"architecture"`
FSLayers []DockerFSLayer `json:"fsLayers"`
History []DockerHistory `json:"history"`
// schema2
Layers []Descriptor `json:"layers"`
Config Descriptor `json:"config"`
}
// DockerFSLayer is a container struct for BlobSums defined in an image manifest
type DockerFSLayer struct {
// DockerBlobSum is the tarsum of the referenced filesystem image layer
// TODO make this digest.Digest once docker/distribution is in Godeps
DockerBlobSum string `json:"blobSum"`
}
// DockerHistory stores unstructured v1 compatibility information
type DockerHistory struct {
// DockerV1Compatibility is the raw v1 compatibility information
DockerV1Compatibility string `json:"v1Compatibility"`
}
// DockerV1CompatibilityImage represents the structured v1
// compatibility information.
type DockerV1CompatibilityImage struct {
ID string `json:"id"`
Parent string `json:"parent,omitempty"`
Comment string `json:"comment,omitempty"`
Created unversioned.Time `json:"created"`
Container string `json:"container,omitempty"`
ContainerConfig DockerConfig `json:"container_config,omitempty"`
DockerVersion string `json:"docker_version,omitempty"`
Author string `json:"author,omitempty"`
Config *DockerConfig `json:"config,omitempty"`
Architecture string `json:"architecture,omitempty"`
Size int64 `json:"size,omitempty"`
}
// DockerV1CompatibilityImageSize represents the structured v1
// compatibility information for size
type DockerV1CompatibilityImageSize struct {
Size int64 `json:"size,omitempty"`
}
// DockerImageConfig stores the image configuration
type DockerImageConfig struct {
ID string `json:"id"`
Parent string `json:"parent,omitempty"`
Comment string `json:"comment,omitempty"`
Created unversioned.Time `json:"created"`
Container string `json:"container,omitempty"`
ContainerConfig DockerConfig `json:"container_config,omitempty"`
DockerVersion string `json:"docker_version,omitempty"`
Author string `json:"author,omitempty"`
Config *DockerConfig `json:"config,omitempty"`
Architecture string `json:"architecture,omitempty"`
Size int64 `json:"size,omitempty"`
RootFS *DockerConfigRootFS `json:"rootfs,omitempty"`
History []DockerConfigHistory `json:"history,omitempty"`
OSVersion string `json:"os.version,omitempty"`
OSFeatures []string `json:"os.features,omitempty"`
}
// DockerConfigHistory stores build commands that were used to create an image
type DockerConfigHistory struct {
Created unversioned.Time `json:"created"`
Author string `json:"author,omitempty"`
CreatedBy string `json:"created_by,omitempty"`
Comment string `json:"comment,omitempty"`
EmptyLayer bool `json:"empty_layer,omitempty"`
}
// DockerConfigRootFS describes images root filesystem
type DockerConfigRootFS struct {
Type string `json:"type"`
DiffIDs []string `json:"diff_ids,omitempty"`
}
+21
View File
@@ -0,0 +1,21 @@
package api
import "k8s.io/kubernetes/pkg/fields"
// ImageToSelectableFields returns a label set that represents the object.
func ImageToSelectableFields(image *Image) fields.Set {
return fields.Set{
"metadata.name": image.Name,
"metadata.namespace": image.Namespace,
}
}
// ImageStreamToSelectableFields returns a label set that represents the object.
func ImageStreamToSelectableFields(ir *ImageStream) fields.Set {
return fields.Set{
"metadata.name": ir.Name,
"metadata.namespace": ir.Namespace,
"spec.dockerImageRepository": ir.Spec.DockerImageRepository,
"status.dockerImageRepository": ir.Status.DockerImageRepository,
}
}
File diff suppressed because it is too large Load Diff
+53
View File
@@ -0,0 +1,53 @@
package api
import (
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/runtime"
)
const GroupName = ""
// 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()
}
func AddToScheme(scheme *runtime.Scheme) {
// Add the API to Scheme.
addKnownTypes(scheme)
}
// Adds the list of known types to api.Scheme.
func addKnownTypes(scheme *runtime.Scheme) {
scheme.AddKnownTypes(SchemeGroupVersion,
&Image{},
&ImageList{},
&DockerImage{},
&ImageStream{},
&ImageStreamList{},
&ImageStreamMapping{},
&ImageStreamTag{},
&ImageStreamTagList{},
&ImageStreamImage{},
&ImageStreamImport{},
)
}
func (obj *Image) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
func (obj *ImageList) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
func (obj *DockerImage) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
func (obj *ImageStream) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
func (obj *ImageStreamList) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
func (obj *ImageStreamMapping) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
func (obj *ImageStreamTag) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
func (obj *ImageStreamTagList) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
func (obj *ImageStreamImage) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
func (obj *ImageStreamImport) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
+49
View File
@@ -0,0 +1,49 @@
package api
import (
"sort"
"k8s.io/kubernetes/pkg/api/unversioned"
)
type tag struct {
Name string
Created unversioned.Time
}
type byCreationTimestamp []tag
func (t byCreationTimestamp) Len() int {
return len(t)
}
func (t byCreationTimestamp) Less(i, j int) bool {
return t[i].Created.Time.After(t[j].Created.Time)
}
func (t byCreationTimestamp) Swap(i, j int) {
t[i], t[j] = t[j], t[i]
}
// SortStatusTags sorts the status tags of an image stream based on
// the latest created
func SortStatusTags(tags map[string]TagEventList) []string {
tagSlice := make([]tag, len(tags))
index := 0
for tag, list := range tags {
tagSlice[index].Name = tag
if len(list.Items) > 0 {
tagSlice[index].Created = list.Items[0].Created
}
index++
}
sort.Sort(byCreationTimestamp(tagSlice))
actual := make([]string, len(tagSlice))
for i, tag := range tagSlice {
actual[i] = tag.Name
}
return actual
}
+434
View File
@@ -0,0 +1,434 @@
package api
import (
kapi "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/unversioned"
)
// ImageList is a list of Image objects.
type ImageList struct {
unversioned.TypeMeta
unversioned.ListMeta
Items []Image
}
const (
// ManagedByOpenShiftAnnotation indicates that an image is managed by OpenShift's registry.
ManagedByOpenShiftAnnotation = "openshift.io/image.managed"
// DockerImageRepositoryCheckAnnotation indicates that OpenShift has
// attempted to import tag and image information from an external Docker
// image repository.
DockerImageRepositoryCheckAnnotation = "openshift.io/image.dockerRepositoryCheck"
// InsecureRepositoryAnnotation may be set true on an image stream to allow insecure access to pull content.
InsecureRepositoryAnnotation = "openshift.io/image.insecureRepository"
// ExcludeImageSecretAnnotation indicates that a secret should not be returned by imagestream/secrets.
ExcludeImageSecretAnnotation = "openshift.io/image.excludeSecret"
// DefaultImageTag is used when an image tag is needed and the configuration does not specify a tag to use.
DefaultImageTag = "latest"
// ResourceImageStreams represents a number of image streams in a project.
ResourceImageStreams kapi.ResourceName = "openshift.io/imagestreams"
// ResourceImageStreamImages represents a number of unique references to images in all image stream
// statuses of a project.
ResourceImageStreamImages kapi.ResourceName = "openshift.io/images"
// ResourceImageStreamTags represents a number of unique references to images in all image stream specs
// of a project.
ResourceImageStreamTags kapi.ResourceName = "openshift.io/image-tags"
// Limit that applies to images. Used with a max["storage"] LimitRangeItem to set
// the maximum size of an image.
LimitTypeImage kapi.LimitType = "openshift.io/Image"
// Limit that applies to image streams. Used with a max[resource] LimitRangeItem to set the maximum number
// of resource. Where the resource is one of "openshift.io/images" and "openshift.io/image-tags".
LimitTypeImageStream kapi.LimitType = "openshift.io/ImageStream"
)
// +genclient=true
// Image is an immutable representation of a Docker image and metadata at a point in time.
type Image struct {
unversioned.TypeMeta
kapi.ObjectMeta
// The string that can be used to pull this image.
DockerImageReference string
// Metadata about this image
DockerImageMetadata DockerImage
// This attribute conveys the version of docker metadata the JSON should be stored in, which if empty defaults to "1.0"
DockerImageMetadataVersion string
// The raw JSON of the manifest
DockerImageManifest string
// DockerImageLayers represents the layers in the image. May not be set if the image does not define that data.
DockerImageLayers []ImageLayer
// Signatures holds all signatures of the image.
Signatures []ImageSignature
// DockerImageSignatures provides the signatures as opaque blobs. This is a part of manifest schema v1.
DockerImageSignatures [][]byte
// DockerImageManifestMediaType specifies the mediaType of manifest. This is a part of manifest schema v2.
DockerImageManifestMediaType string
// DockerImageConfig is a JSON blob that the runtime uses to set up the container. This is a part of manifest schema v2.
DockerImageConfig string
}
// ImageLayer represents a single layer of the image. Some images may have multiple layers. Some may have none.
type ImageLayer struct {
// Name of the layer as defined by the underlying store.
Name string
// LayerSize of the layer as defined by the underlying store.
LayerSize int64
// MediaType of the referenced object.
MediaType string
}
const (
// The supported type of image signature.
ImageSignatureTypeAtomicImageV1 string = "AtomicImageV1"
)
// ImageSignature holds a signature of an image. It allows to verify image identity and possibly other claims
// as long as the signature is trusted. Based on this information it is possible to restrict runnable images
// to those matching cluster-wide policy.
// There are two mandatory fields provided by client: Type and Content. They should be parsed by clients doing
// image verification. The others are parsed from signature's content by the server. They serve just an
// informative purpose.
type ImageSignature struct {
// Required: Describes a type of stored blob.
Type string
// Required: An opaque binary string which is an image's signature.
Content []byte
// Conditions represent the latest available observations of a signature's current state.
Conditions []SignatureCondition
// Following metadata fields will be set by server if the signature content is successfully parsed and
// the information available.
// A human readable string representing image's identity. It could be a product name and version, or an
// image pull spec (e.g. "registry.access.redhat.com/rhel7/rhel:7.2").
ImageIdentity string
// Contains claims from the signature.
SignedClaims map[string]string
// If specified, it is the time of signature's creation.
Created *unversioned.Time
// If specified, it holds information about an issuer of signing certificate or key (a person or entity
// who signed the signing certificate or key).
IssuedBy *SignatureIssuer
// If specified, it holds information about a subject of signing certificate or key (a person or entity
// who signed the image).
IssuedTo *SignatureSubject
}
// These are valid conditions of an image signature.
const (
// SignatureTrusted means the signing key or certificate was valid and the signature matched the image at
// the probe time.
SignatureTrusted = "Trusted"
// SignatureForImage means the signature matches image object containing it.
SignatureForImage = "ForImage"
// SignatureExpired means the signature or its signing key or certificate had been expired at the probe
// time.
SignatureExpired = "Expired"
// SignatureRevoked means the signature or its signing key or certificate has been revoked.
SignatureRevoked = "Revoked"
)
/// SignatureConditionType is a type of image signature condition.
type SignatureConditionType string
// SignatureCondition describes an image signature condition of particular kind at particular probe time.
type SignatureCondition struct {
// Type of job condition, Complete or Failed.
Type SignatureConditionType
// Status of the condition, one of True, False, Unknown.
Status kapi.ConditionStatus
// Last time the condition was checked.
LastProbeTime unversioned.Time
// Last time the condition transit from one status to another.
LastTransitionTime unversioned.Time
// (brief) reason for the condition's last transition.
Reason string
// Human readable message indicating details about last transition.
Message string
}
// SignatureGenericEntity holds a generic information about a person or entity who is an issuer or a subject
// of signing certificate or key.
type SignatureGenericEntity struct {
// Organization name.
Organization string
// Common name (e.g. openshift-signing-service).
CommonName string
}
// SignatureIssuer holds information about an issuer of signing certificate or key.
type SignatureIssuer struct {
SignatureGenericEntity
}
// SignatureSubject holds information about a person or entity who created the signature.
type SignatureSubject struct {
SignatureGenericEntity
// If present, it is a human readable key id of public key belonging to the subject used to verify image
// signature. It should contain at least 64 lowest bits of public key's fingerprint (e.g.
// 0x685ebe62bf278440).
PublicKeyID string
}
// ImageStreamList is a list of ImageStream objects.
type ImageStreamList struct {
unversioned.TypeMeta
unversioned.ListMeta
Items []ImageStream
}
// ImageStream stores a mapping of tags to images, metadata overrides that are applied
// when images are tagged in a stream, and an optional reference to a Docker image
// repository on a registry.
type ImageStream struct {
unversioned.TypeMeta
kapi.ObjectMeta
// Spec describes the desired state of this stream
Spec ImageStreamSpec
// Status describes the current state of this stream
Status ImageStreamStatus
}
// ImageStreamSpec represents options for ImageStreams.
type ImageStreamSpec struct {
// Optional, if specified this stream is backed by a Docker repository on this server
DockerImageRepository string
// Tags map arbitrary string values to specific image locators
Tags map[string]TagReference
}
// TagReference specifies optional annotations for images using this tag and an optional reference to
// an ImageStreamTag, ImageStreamImage, or DockerImage this tag should track.
type TagReference struct {
// Name of the tag
Name string
// Optional; if specified, annotations that are applied to images retrieved via ImageStreamTags.
Annotations map[string]string
// Optional; if specified, a reference to another image that this tag should point to. Valid values
// are ImageStreamTag, ImageStreamImage, and DockerImage.
From *kapi.ObjectReference
// Reference states if the tag will be imported. Default value is false, which means the tag will
// be imported.
Reference bool
// Generation is a counter that tracks mutations to the spec tag (user intent). When a tag reference
// is changed the generation is set to match the current stream generation (which is incremented every
// time spec is changed). Other processes in the system like the image importer observe that the
// generation of spec tag is newer than the generation recorded in the status and use that as a trigger
// to import the newest remote tag. To trigger a new import, clients may set this value to zero which
// will reset the generation to the latest stream generation. Legacy clients will send this value as
// nil which will be merged with the current tag generation.
Generation *int64
// ImportPolicy is information that controls how images may be imported by the server.
ImportPolicy TagImportPolicy
}
type TagImportPolicy struct {
// Insecure is true if the server may bypass certificate verification or connect directly over HTTP during image import.
Insecure bool
// Scheduled indicates to the server that this tag should be periodically checked to ensure it is up to date, and imported
Scheduled bool
}
// ImageStreamStatus contains information about the state of this image stream.
type ImageStreamStatus struct {
// DockerImageRepository represents the effective location this stream may be accessed at. May be empty until the server
// determines where the repository is located
DockerImageRepository string
// A historical record of images associated with each tag. The first entry in the TagEvent array is
// the currently tagged image.
Tags map[string]TagEventList
}
// TagEventList contains a historical record of images associated with a tag.
type TagEventList struct {
Items []TagEvent
// Conditions is an array of conditions that apply to the tag event list.
Conditions []TagEventCondition
}
// TagEvent is used by ImageRepositoryStatus to keep a historical record of images associated with a tag.
type TagEvent struct {
// When the TagEvent was created
Created unversioned.Time
// The string that can be used to pull this image
DockerImageReference string
// The image
Image string
// Generation is the spec tag generation that resulted in this tag being updated
Generation int64
}
type TagEventConditionType string
// These are valid conditions of TagEvents.
const (
// ImportSuccess with status False means the import of the specific tag failed
ImportSuccess TagEventConditionType = "ImportSuccess"
)
// TagEventCondition contains condition information for a tag event.
type TagEventCondition struct {
// Type of tag event condition, currently only ImportSuccess
Type TagEventConditionType
// Status of the condition, one of True, False, Unknown.
Status kapi.ConditionStatus
// LastTransitionTIme is the time the condition transitioned from one status to another.
LastTransitionTime unversioned.Time
// Reason is a brief machine readable explanation for the condition's last transition.
Reason string
// Message is a human readable description of the details about last transition, complementing reason.
Message string
// Generation is the spec tag generation that this status corresponds to. If this value is
// older than the spec tag generation, the user has requested this status tag be updated.
// This value is set to zero for older versions of streams, which means that no generation
// was recorded.
Generation int64
}
// ImageStreamMapping represents a mapping from a single tag to a Docker image as
// well as the reference to the Docker image repository the image came from.
type ImageStreamMapping struct {
unversioned.TypeMeta
kapi.ObjectMeta
// The Docker image repository the specified image is located in
// DEPRECATED: remove once v1beta1 support is dropped
DockerImageRepository string
// A Docker image.
Image Image
// A string value this image can be located with inside the repository.
Tag string
}
// ImageStreamTag has a .Name in the format <stream name>:<tag>.
type ImageStreamTag struct {
unversioned.TypeMeta
kapi.ObjectMeta
// Tag is the spec tag associated with this image stream tag, and it may be null
// if only pushes have occurred to this image stream.
Tag *TagReference
// Generation is the current generation of the tagged image - if tag is provided
// and this value is not equal to the tag generation, a user has requested an
// import that has not completed, or Conditions will be filled out indicating any
// error.
Generation int64
// Conditions is an array of conditions that apply to the image stream tag.
Conditions []TagEventCondition
// The Image associated with the ImageStream and tag.
Image Image
}
// ImageStreamTagList is a list of ImageStreamTag objects.
type ImageStreamTagList struct {
unversioned.TypeMeta
unversioned.ListMeta
Items []ImageStreamTag
}
// ImageStreamImage represents an Image that is retrieved by image name from an ImageStream.
type ImageStreamImage struct {
unversioned.TypeMeta
kapi.ObjectMeta
// The Image associated with the ImageStream and image name.
Image Image
}
// DockerImageReference points to a Docker image.
type DockerImageReference struct {
Registry string
Namespace string
Name string
Tag string
ID string
}
// ImageStreamImport allows a caller to request information about a set of images for possible
// import into an image stream, or actually tag the images into the image stream.
type ImageStreamImport struct {
unversioned.TypeMeta
// ObjectMeta must identify the name of the image stream to create or update. If resourceVersion
// or UID are set, they must match the image stream that will be loaded from the server.
kapi.ObjectMeta
// Spec is the set of items desired to be imported
Spec ImageStreamImportSpec
// Status is the result of the import
Status ImageStreamImportStatus
}
// ImageStreamImportSpec defines what images should be imported.
type ImageStreamImportSpec struct {
// Import indicates whether to perform an import - if so, the specified tags are set on the spec
// and status of the image stream defined by the type meta.
Import bool
// Repository is an optional import of an entire Docker image repository. A maximum limit on the
// number of tags imported this way is imposed by the server.
Repository *RepositoryImportSpec
// Images are a list of individual images to import.
Images []ImageImportSpec
}
// ImageStreamImportStatus contains information about the status of an image stream import.
type ImageStreamImportStatus struct {
// Import is the image stream that was successfully updated or created when 'to' was set.
Import *ImageStream
// Repository is set if spec.repository was set to the outcome of the import
Repository *RepositoryImportStatus
// Images is set with the result of importing spec.images
Images []ImageImportStatus
}
// RepositoryImport indicates to load a set of tags from a given Docker image repository
type RepositoryImportSpec struct {
// The source of the import, only kind DockerImage is supported
From kapi.ObjectReference
ImportPolicy TagImportPolicy
IncludeManifest bool
}
// RepositoryImportStatus describes the outcome of the repository import
type RepositoryImportStatus struct {
// Status reflects whether any failure occurred during import
Status unversioned.Status
// Images is the list of imported images
Images []ImageImportStatus
// AdditionalTags are tags that exist in the repository but were not imported because
// a maximum limit of automatic imports was applied.
AdditionalTags []string
}
// ImageImportSpec defines how an image is imported.
type ImageImportSpec struct {
From kapi.ObjectReference
To *kapi.LocalObjectReference
ImportPolicy TagImportPolicy
IncludeManifest bool
}
// ImageImportStatus describes the result of an image import.
type ImageImportStatus struct {
Tag string
Status unversioned.Status
Image *Image
}