forked from LaconicNetwork/kompose
update vendor with openshift
This commit is contained in:
+565
@@ -0,0 +1,565 @@
|
||||
// +build !ignore_autogenerated_openshift
|
||||
|
||||
// This file was autogenerated by deepcopy-gen. Do not edit it manually!
|
||||
|
||||
package api
|
||||
|
||||
import (
|
||||
image_api "github.com/openshift/origin/pkg/image/api"
|
||||
api "k8s.io/kubernetes/pkg/api"
|
||||
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
|
||||
conversion "k8s.io/kubernetes/pkg/conversion"
|
||||
intstr "k8s.io/kubernetes/pkg/util/intstr"
|
||||
)
|
||||
|
||||
func init() {
|
||||
if err := api.Scheme.AddGeneratedDeepCopyFuncs(
|
||||
DeepCopy_api_CustomDeploymentStrategyParams,
|
||||
DeepCopy_api_DeploymentCause,
|
||||
DeepCopy_api_DeploymentCauseImageTrigger,
|
||||
DeepCopy_api_DeploymentConfig,
|
||||
DeepCopy_api_DeploymentConfigList,
|
||||
DeepCopy_api_DeploymentConfigRollback,
|
||||
DeepCopy_api_DeploymentConfigRollbackSpec,
|
||||
DeepCopy_api_DeploymentConfigSpec,
|
||||
DeepCopy_api_DeploymentConfigStatus,
|
||||
DeepCopy_api_DeploymentDetails,
|
||||
DeepCopy_api_DeploymentLog,
|
||||
DeepCopy_api_DeploymentLogOptions,
|
||||
DeepCopy_api_DeploymentStrategy,
|
||||
DeepCopy_api_DeploymentTriggerImageChangeParams,
|
||||
DeepCopy_api_DeploymentTriggerPolicy,
|
||||
DeepCopy_api_ExecNewPodHook,
|
||||
DeepCopy_api_LifecycleHook,
|
||||
DeepCopy_api_RecreateDeploymentStrategyParams,
|
||||
DeepCopy_api_RollingDeploymentStrategyParams,
|
||||
DeepCopy_api_TagImageHook,
|
||||
DeepCopy_api_TemplateImage,
|
||||
); err != nil {
|
||||
// if one of the deep copy functions is malformed, detect it immediately.
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func DeepCopy_api_CustomDeploymentStrategyParams(in CustomDeploymentStrategyParams, out *CustomDeploymentStrategyParams, c *conversion.Cloner) error {
|
||||
out.Image = in.Image
|
||||
if in.Environment != nil {
|
||||
in, out := in.Environment, &out.Environment
|
||||
*out = make([]api.EnvVar, len(in))
|
||||
for i := range in {
|
||||
if err := api.DeepCopy_api_EnvVar(in[i], &(*out)[i], c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.Environment = nil
|
||||
}
|
||||
if in.Command != nil {
|
||||
in, out := in.Command, &out.Command
|
||||
*out = make([]string, len(in))
|
||||
copy(*out, in)
|
||||
} else {
|
||||
out.Command = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentCause(in DeploymentCause, out *DeploymentCause, c *conversion.Cloner) error {
|
||||
out.Type = in.Type
|
||||
if in.ImageTrigger != nil {
|
||||
in, out := in.ImageTrigger, &out.ImageTrigger
|
||||
*out = new(DeploymentCauseImageTrigger)
|
||||
if err := DeepCopy_api_DeploymentCauseImageTrigger(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.ImageTrigger = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentCauseImageTrigger(in DeploymentCauseImageTrigger, out *DeploymentCauseImageTrigger, c *conversion.Cloner) error {
|
||||
if err := api.DeepCopy_api_ObjectReference(in.From, &out.From, c); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentConfig(in DeploymentConfig, out *DeploymentConfig, 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_DeploymentConfigSpec(in.Spec, &out.Spec, c); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := DeepCopy_api_DeploymentConfigStatus(in.Status, &out.Status, c); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentConfigList(in DeploymentConfigList, out *DeploymentConfigList, 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([]DeploymentConfig, len(in))
|
||||
for i := range in {
|
||||
if err := DeepCopy_api_DeploymentConfig(in[i], &(*out)[i], c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.Items = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentConfigRollback(in DeploymentConfigRollback, out *DeploymentConfigRollback, c *conversion.Cloner) error {
|
||||
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
|
||||
return err
|
||||
}
|
||||
out.Name = in.Name
|
||||
if in.UpdatedAnnotations != nil {
|
||||
in, out := in.UpdatedAnnotations, &out.UpdatedAnnotations
|
||||
*out = make(map[string]string)
|
||||
for key, val := range in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
} else {
|
||||
out.UpdatedAnnotations = nil
|
||||
}
|
||||
if err := DeepCopy_api_DeploymentConfigRollbackSpec(in.Spec, &out.Spec, c); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentConfigRollbackSpec(in DeploymentConfigRollbackSpec, out *DeploymentConfigRollbackSpec, c *conversion.Cloner) error {
|
||||
if err := api.DeepCopy_api_ObjectReference(in.From, &out.From, c); err != nil {
|
||||
return err
|
||||
}
|
||||
out.Revision = in.Revision
|
||||
out.IncludeTriggers = in.IncludeTriggers
|
||||
out.IncludeTemplate = in.IncludeTemplate
|
||||
out.IncludeReplicationMeta = in.IncludeReplicationMeta
|
||||
out.IncludeStrategy = in.IncludeStrategy
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentConfigSpec(in DeploymentConfigSpec, out *DeploymentConfigSpec, c *conversion.Cloner) error {
|
||||
if err := DeepCopy_api_DeploymentStrategy(in.Strategy, &out.Strategy, c); err != nil {
|
||||
return err
|
||||
}
|
||||
out.MinReadySeconds = in.MinReadySeconds
|
||||
if in.Triggers != nil {
|
||||
in, out := in.Triggers, &out.Triggers
|
||||
*out = make([]DeploymentTriggerPolicy, len(in))
|
||||
for i := range in {
|
||||
if err := DeepCopy_api_DeploymentTriggerPolicy(in[i], &(*out)[i], c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.Triggers = nil
|
||||
}
|
||||
out.Replicas = in.Replicas
|
||||
if in.RevisionHistoryLimit != nil {
|
||||
in, out := in.RevisionHistoryLimit, &out.RevisionHistoryLimit
|
||||
*out = new(int32)
|
||||
**out = *in
|
||||
} else {
|
||||
out.RevisionHistoryLimit = nil
|
||||
}
|
||||
out.Test = in.Test
|
||||
out.Paused = in.Paused
|
||||
if in.Selector != nil {
|
||||
in, out := in.Selector, &out.Selector
|
||||
*out = make(map[string]string)
|
||||
for key, val := range in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
} else {
|
||||
out.Selector = nil
|
||||
}
|
||||
if in.Template != nil {
|
||||
in, out := in.Template, &out.Template
|
||||
*out = new(api.PodTemplateSpec)
|
||||
if err := api.DeepCopy_api_PodTemplateSpec(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Template = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentConfigStatus(in DeploymentConfigStatus, out *DeploymentConfigStatus, c *conversion.Cloner) error {
|
||||
out.LatestVersion = in.LatestVersion
|
||||
out.ObservedGeneration = in.ObservedGeneration
|
||||
out.Replicas = in.Replicas
|
||||
out.UpdatedReplicas = in.UpdatedReplicas
|
||||
out.AvailableReplicas = in.AvailableReplicas
|
||||
out.UnavailableReplicas = in.UnavailableReplicas
|
||||
if in.Details != nil {
|
||||
in, out := in.Details, &out.Details
|
||||
*out = new(DeploymentDetails)
|
||||
if err := DeepCopy_api_DeploymentDetails(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Details = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentDetails(in DeploymentDetails, out *DeploymentDetails, c *conversion.Cloner) error {
|
||||
out.Message = in.Message
|
||||
if in.Causes != nil {
|
||||
in, out := in.Causes, &out.Causes
|
||||
*out = make([]DeploymentCause, len(in))
|
||||
for i := range in {
|
||||
if err := DeepCopy_api_DeploymentCause(in[i], &(*out)[i], c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.Causes = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentLog(in DeploymentLog, out *DeploymentLog, c *conversion.Cloner) error {
|
||||
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentLogOptions(in DeploymentLogOptions, out *DeploymentLogOptions, c *conversion.Cloner) error {
|
||||
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
|
||||
return err
|
||||
}
|
||||
out.Container = in.Container
|
||||
out.Follow = in.Follow
|
||||
out.Previous = in.Previous
|
||||
if in.SinceSeconds != nil {
|
||||
in, out := in.SinceSeconds, &out.SinceSeconds
|
||||
*out = new(int64)
|
||||
**out = *in
|
||||
} else {
|
||||
out.SinceSeconds = nil
|
||||
}
|
||||
if in.SinceTime != nil {
|
||||
in, out := in.SinceTime, &out.SinceTime
|
||||
*out = new(unversioned.Time)
|
||||
if err := unversioned.DeepCopy_unversioned_Time(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.SinceTime = nil
|
||||
}
|
||||
out.Timestamps = in.Timestamps
|
||||
if in.TailLines != nil {
|
||||
in, out := in.TailLines, &out.TailLines
|
||||
*out = new(int64)
|
||||
**out = *in
|
||||
} else {
|
||||
out.TailLines = nil
|
||||
}
|
||||
if in.LimitBytes != nil {
|
||||
in, out := in.LimitBytes, &out.LimitBytes
|
||||
*out = new(int64)
|
||||
**out = *in
|
||||
} else {
|
||||
out.LimitBytes = nil
|
||||
}
|
||||
out.NoWait = in.NoWait
|
||||
if in.Version != nil {
|
||||
in, out := in.Version, &out.Version
|
||||
*out = new(int64)
|
||||
**out = *in
|
||||
} else {
|
||||
out.Version = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentStrategy(in DeploymentStrategy, out *DeploymentStrategy, c *conversion.Cloner) error {
|
||||
out.Type = in.Type
|
||||
if in.RecreateParams != nil {
|
||||
in, out := in.RecreateParams, &out.RecreateParams
|
||||
*out = new(RecreateDeploymentStrategyParams)
|
||||
if err := DeepCopy_api_RecreateDeploymentStrategyParams(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.RecreateParams = nil
|
||||
}
|
||||
if in.RollingParams != nil {
|
||||
in, out := in.RollingParams, &out.RollingParams
|
||||
*out = new(RollingDeploymentStrategyParams)
|
||||
if err := DeepCopy_api_RollingDeploymentStrategyParams(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.RollingParams = nil
|
||||
}
|
||||
if in.CustomParams != nil {
|
||||
in, out := in.CustomParams, &out.CustomParams
|
||||
*out = new(CustomDeploymentStrategyParams)
|
||||
if err := DeepCopy_api_CustomDeploymentStrategyParams(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.CustomParams = nil
|
||||
}
|
||||
if err := api.DeepCopy_api_ResourceRequirements(in.Resources, &out.Resources, c); err != nil {
|
||||
return err
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentTriggerImageChangeParams(in DeploymentTriggerImageChangeParams, out *DeploymentTriggerImageChangeParams, c *conversion.Cloner) error {
|
||||
out.Automatic = in.Automatic
|
||||
if in.ContainerNames != nil {
|
||||
in, out := in.ContainerNames, &out.ContainerNames
|
||||
*out = make([]string, len(in))
|
||||
copy(*out, in)
|
||||
} else {
|
||||
out.ContainerNames = nil
|
||||
}
|
||||
if err := api.DeepCopy_api_ObjectReference(in.From, &out.From, c); err != nil {
|
||||
return err
|
||||
}
|
||||
out.LastTriggeredImage = in.LastTriggeredImage
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_DeploymentTriggerPolicy(in DeploymentTriggerPolicy, out *DeploymentTriggerPolicy, c *conversion.Cloner) error {
|
||||
out.Type = in.Type
|
||||
if in.ImageChangeParams != nil {
|
||||
in, out := in.ImageChangeParams, &out.ImageChangeParams
|
||||
*out = new(DeploymentTriggerImageChangeParams)
|
||||
if err := DeepCopy_api_DeploymentTriggerImageChangeParams(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.ImageChangeParams = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_ExecNewPodHook(in ExecNewPodHook, out *ExecNewPodHook, c *conversion.Cloner) error {
|
||||
if in.Command != nil {
|
||||
in, out := in.Command, &out.Command
|
||||
*out = make([]string, len(in))
|
||||
copy(*out, in)
|
||||
} else {
|
||||
out.Command = nil
|
||||
}
|
||||
if in.Env != nil {
|
||||
in, out := in.Env, &out.Env
|
||||
*out = make([]api.EnvVar, len(in))
|
||||
for i := range in {
|
||||
if err := api.DeepCopy_api_EnvVar(in[i], &(*out)[i], c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.Env = nil
|
||||
}
|
||||
out.ContainerName = in.ContainerName
|
||||
if in.Volumes != nil {
|
||||
in, out := in.Volumes, &out.Volumes
|
||||
*out = make([]string, len(in))
|
||||
copy(*out, in)
|
||||
} else {
|
||||
out.Volumes = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_LifecycleHook(in LifecycleHook, out *LifecycleHook, c *conversion.Cloner) error {
|
||||
out.FailurePolicy = in.FailurePolicy
|
||||
if in.ExecNewPod != nil {
|
||||
in, out := in.ExecNewPod, &out.ExecNewPod
|
||||
*out = new(ExecNewPodHook)
|
||||
if err := DeepCopy_api_ExecNewPodHook(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.ExecNewPod = nil
|
||||
}
|
||||
if in.TagImages != nil {
|
||||
in, out := in.TagImages, &out.TagImages
|
||||
*out = make([]TagImageHook, len(in))
|
||||
for i := range in {
|
||||
if err := DeepCopy_api_TagImageHook(in[i], &(*out)[i], c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.TagImages = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_RecreateDeploymentStrategyParams(in RecreateDeploymentStrategyParams, out *RecreateDeploymentStrategyParams, c *conversion.Cloner) error {
|
||||
if in.TimeoutSeconds != nil {
|
||||
in, out := in.TimeoutSeconds, &out.TimeoutSeconds
|
||||
*out = new(int64)
|
||||
**out = *in
|
||||
} else {
|
||||
out.TimeoutSeconds = nil
|
||||
}
|
||||
if in.Pre != nil {
|
||||
in, out := in.Pre, &out.Pre
|
||||
*out = new(LifecycleHook)
|
||||
if err := DeepCopy_api_LifecycleHook(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Pre = nil
|
||||
}
|
||||
if in.Mid != nil {
|
||||
in, out := in.Mid, &out.Mid
|
||||
*out = new(LifecycleHook)
|
||||
if err := DeepCopy_api_LifecycleHook(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Mid = nil
|
||||
}
|
||||
if in.Post != nil {
|
||||
in, out := in.Post, &out.Post
|
||||
*out = new(LifecycleHook)
|
||||
if err := DeepCopy_api_LifecycleHook(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Post = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_RollingDeploymentStrategyParams(in RollingDeploymentStrategyParams, out *RollingDeploymentStrategyParams, c *conversion.Cloner) error {
|
||||
if in.UpdatePeriodSeconds != nil {
|
||||
in, out := in.UpdatePeriodSeconds, &out.UpdatePeriodSeconds
|
||||
*out = new(int64)
|
||||
**out = *in
|
||||
} else {
|
||||
out.UpdatePeriodSeconds = nil
|
||||
}
|
||||
if in.IntervalSeconds != nil {
|
||||
in, out := in.IntervalSeconds, &out.IntervalSeconds
|
||||
*out = new(int64)
|
||||
**out = *in
|
||||
} else {
|
||||
out.IntervalSeconds = nil
|
||||
}
|
||||
if in.TimeoutSeconds != nil {
|
||||
in, out := in.TimeoutSeconds, &out.TimeoutSeconds
|
||||
*out = new(int64)
|
||||
**out = *in
|
||||
} else {
|
||||
out.TimeoutSeconds = nil
|
||||
}
|
||||
if err := intstr.DeepCopy_intstr_IntOrString(in.MaxUnavailable, &out.MaxUnavailable, c); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := intstr.DeepCopy_intstr_IntOrString(in.MaxSurge, &out.MaxSurge, c); err != nil {
|
||||
return err
|
||||
}
|
||||
if in.UpdatePercent != nil {
|
||||
in, out := in.UpdatePercent, &out.UpdatePercent
|
||||
*out = new(int32)
|
||||
**out = *in
|
||||
} else {
|
||||
out.UpdatePercent = nil
|
||||
}
|
||||
if in.Pre != nil {
|
||||
in, out := in.Pre, &out.Pre
|
||||
*out = new(LifecycleHook)
|
||||
if err := DeepCopy_api_LifecycleHook(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Pre = nil
|
||||
}
|
||||
if in.Post != nil {
|
||||
in, out := in.Post, &out.Post
|
||||
*out = new(LifecycleHook)
|
||||
if err := DeepCopy_api_LifecycleHook(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Post = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_TagImageHook(in TagImageHook, out *TagImageHook, c *conversion.Cloner) error {
|
||||
out.ContainerName = in.ContainerName
|
||||
if err := api.DeepCopy_api_ObjectReference(in.To, &out.To, c); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_TemplateImage(in TemplateImage, out *TemplateImage, c *conversion.Cloner) error {
|
||||
out.Image = in.Image
|
||||
if in.Ref != nil {
|
||||
in, out := in.Ref, &out.Ref
|
||||
*out = new(image_api.DockerImageReference)
|
||||
if err := image_api.DeepCopy_api_DockerImageReference(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Ref = 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
|
||||
}
|
||||
if in.Container != nil {
|
||||
in, out := in.Container, &out.Container
|
||||
*out = new(api.Container)
|
||||
if err := api.DeepCopy_api_Container(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Container = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package api
|
||||
|
||||
import "k8s.io/kubernetes/pkg/fields"
|
||||
|
||||
// DeploymentConfigToSelectableFields returns a label set that represents the object
|
||||
func DeploymentConfigToSelectableFields(deploymentConfig *DeploymentConfig) fields.Set {
|
||||
return fields.Set{
|
||||
"metadata.name": deploymentConfig.Name,
|
||||
"metadata.namespace": deploymentConfig.Namespace,
|
||||
}
|
||||
}
|
||||
+141
@@ -0,0 +1,141 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
kapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
|
||||
imageapi "github.com/openshift/origin/pkg/image/api"
|
||||
)
|
||||
|
||||
// DeploymentToPodLogOptions builds a PodLogOptions object out of a DeploymentLogOptions.
|
||||
// Currently DeploymentLogOptions.Container and DeploymentLogOptions.Previous aren't used
|
||||
// so they won't be copied to PodLogOptions.
|
||||
//
|
||||
// Note that Previous for PodLogOptions is different from Previous for DeploymentLogOptions
|
||||
// so it shouldn't be included here.
|
||||
func DeploymentToPodLogOptions(opts *DeploymentLogOptions) *kapi.PodLogOptions {
|
||||
return &kapi.PodLogOptions{
|
||||
Follow: opts.Follow,
|
||||
SinceSeconds: opts.SinceSeconds,
|
||||
SinceTime: opts.SinceTime,
|
||||
Timestamps: opts.Timestamps,
|
||||
TailLines: opts.TailLines,
|
||||
LimitBytes: opts.LimitBytes,
|
||||
}
|
||||
}
|
||||
|
||||
// ScaleFromConfig builds a scale resource out of a deployment config.
|
||||
func ScaleFromConfig(dc *DeploymentConfig) *extensions.Scale {
|
||||
return &extensions.Scale{
|
||||
ObjectMeta: kapi.ObjectMeta{
|
||||
Name: dc.Name,
|
||||
Namespace: dc.Namespace,
|
||||
UID: dc.UID,
|
||||
ResourceVersion: dc.ResourceVersion,
|
||||
CreationTimestamp: dc.CreationTimestamp,
|
||||
},
|
||||
Spec: extensions.ScaleSpec{
|
||||
Replicas: dc.Spec.Replicas,
|
||||
},
|
||||
Status: extensions.ScaleStatus{
|
||||
Replicas: dc.Status.Replicas,
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: dc.Spec.Selector,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// TemplateImage is a structure for helping a caller iterate over a PodSpec
|
||||
type TemplateImage struct {
|
||||
Image string
|
||||
|
||||
Ref *imageapi.DockerImageReference
|
||||
|
||||
From *kapi.ObjectReference
|
||||
|
||||
Container *kapi.Container
|
||||
}
|
||||
|
||||
// TemplateImageForContainer locates the requested container in a pod spec, returning information about the
|
||||
// trigger (if it exists), or an error.
|
||||
func TemplateImageForContainer(pod *kapi.PodSpec, triggerFn TriggeredByFunc, containerName string) (TemplateImage, error) {
|
||||
for i := range pod.Containers {
|
||||
container := &pod.Containers[i]
|
||||
if container.Name != containerName {
|
||||
continue
|
||||
}
|
||||
var ref imageapi.DockerImageReference
|
||||
if trigger, ok := triggerFn(container); ok {
|
||||
trigger.Image = container.Image
|
||||
trigger.Container = container
|
||||
return trigger, nil
|
||||
}
|
||||
ref, err := imageapi.ParseDockerImageReference(container.Image)
|
||||
if err != nil {
|
||||
return TemplateImage{Image: container.Image, Container: container}, err
|
||||
}
|
||||
return TemplateImage{Image: container.Image, Ref: &ref, Container: container}, nil
|
||||
}
|
||||
return TemplateImage{}, fmt.Errorf("no container %q found", containerName)
|
||||
}
|
||||
|
||||
// EachTemplateImage iterates a pod spec, looking for triggers that match each container and invoking
|
||||
// fn with each located image.
|
||||
func EachTemplateImage(pod *kapi.PodSpec, triggerFn TriggeredByFunc, fn func(TemplateImage, error)) {
|
||||
for i := range pod.Containers {
|
||||
container := &pod.Containers[i]
|
||||
var ref imageapi.DockerImageReference
|
||||
if trigger, ok := triggerFn(container); ok {
|
||||
trigger.Image = container.Image
|
||||
trigger.Container = container
|
||||
fn(trigger, nil)
|
||||
continue
|
||||
}
|
||||
ref, err := imageapi.ParseDockerImageReference(container.Image)
|
||||
if err != nil {
|
||||
fn(TemplateImage{Image: container.Image, Container: container}, err)
|
||||
continue
|
||||
}
|
||||
fn(TemplateImage{Image: container.Image, Ref: &ref, Container: container}, nil)
|
||||
}
|
||||
}
|
||||
|
||||
// TriggeredByFunc returns a TemplateImage or error from the provided container
|
||||
type TriggeredByFunc func(container *kapi.Container) (TemplateImage, bool)
|
||||
|
||||
// IgnoreTriggers ignores the triggers
|
||||
func IgnoreTriggers(container *kapi.Container) (TemplateImage, bool) {
|
||||
return TemplateImage{}, false
|
||||
}
|
||||
|
||||
// DeploymentConfigHasTrigger returns a function that can identify the image for each container.
|
||||
func DeploymentConfigHasTrigger(config *DeploymentConfig) TriggeredByFunc {
|
||||
return func(container *kapi.Container) (TemplateImage, bool) {
|
||||
for _, trigger := range config.Spec.Triggers {
|
||||
params := trigger.ImageChangeParams
|
||||
if params == nil {
|
||||
continue
|
||||
}
|
||||
for _, name := range params.ContainerNames {
|
||||
if container.Name == name {
|
||||
if len(params.From.Name) == 0 {
|
||||
continue
|
||||
}
|
||||
from := params.From
|
||||
if len(from.Namespace) == 0 {
|
||||
from.Namespace = config.Namespace
|
||||
}
|
||||
return TemplateImage{
|
||||
Image: container.Image,
|
||||
From: &from,
|
||||
}, true
|
||||
}
|
||||
}
|
||||
}
|
||||
return TemplateImage{}, false
|
||||
}
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
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,
|
||||
&DeploymentConfig{},
|
||||
&DeploymentConfigList{},
|
||||
&DeploymentConfigRollback{},
|
||||
&DeploymentLog{},
|
||||
&DeploymentLogOptions{},
|
||||
)
|
||||
}
|
||||
|
||||
func (obj *DeploymentConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
||||
func (obj *DeploymentConfigList) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
||||
func (obj *DeploymentConfigRollback) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
||||
func (obj *DeploymentLog) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
||||
func (obj *DeploymentLogOptions) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
||||
+496
@@ -0,0 +1,496 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
kapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/util/intstr"
|
||||
)
|
||||
|
||||
// DeploymentStatus describes the possible states a deployment can be in.
|
||||
type DeploymentStatus string
|
||||
|
||||
const (
|
||||
// DeploymentStatusNew means the deployment has been accepted but not yet acted upon.
|
||||
DeploymentStatusNew DeploymentStatus = "New"
|
||||
// DeploymentStatusPending means the deployment been handed over to a deployment strategy,
|
||||
// but the strategy has not yet declared the deployment to be running.
|
||||
DeploymentStatusPending DeploymentStatus = "Pending"
|
||||
// DeploymentStatusRunning means the deployment strategy has reported the deployment as
|
||||
// being in-progress.
|
||||
DeploymentStatusRunning DeploymentStatus = "Running"
|
||||
// DeploymentStatusComplete means the deployment finished without an error.
|
||||
DeploymentStatusComplete DeploymentStatus = "Complete"
|
||||
// DeploymentStatusFailed means the deployment finished with an error.
|
||||
DeploymentStatusFailed DeploymentStatus = "Failed"
|
||||
)
|
||||
|
||||
// DeploymentStrategy describes how to perform a deployment.
|
||||
type DeploymentStrategy struct {
|
||||
// Type is the name of a deployment strategy.
|
||||
Type DeploymentStrategyType
|
||||
|
||||
// RecreateParams are the input to the Recreate deployment strategy.
|
||||
RecreateParams *RecreateDeploymentStrategyParams
|
||||
// RollingParams are the input to the Rolling deployment strategy.
|
||||
RollingParams *RollingDeploymentStrategyParams
|
||||
|
||||
// CustomParams are the input to the Custom deployment strategy, and may also
|
||||
// be specified for the Recreate and Rolling strategies to customize the execution
|
||||
// process that runs the deployment.
|
||||
CustomParams *CustomDeploymentStrategyParams
|
||||
|
||||
// Resources contains resource requirements to execute the deployment
|
||||
Resources kapi.ResourceRequirements
|
||||
// Labels is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods.
|
||||
Labels map[string]string
|
||||
// Annotations is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods.
|
||||
Annotations map[string]string
|
||||
}
|
||||
|
||||
// DeploymentStrategyType refers to a specific DeploymentStrategy implementation.
|
||||
type DeploymentStrategyType string
|
||||
|
||||
const (
|
||||
// DeploymentStrategyTypeRecreate is a simple strategy suitable as a default.
|
||||
DeploymentStrategyTypeRecreate DeploymentStrategyType = "Recreate"
|
||||
// DeploymentStrategyTypeCustom is a user defined strategy. It is optional to set.
|
||||
DeploymentStrategyTypeCustom DeploymentStrategyType = "Custom"
|
||||
// DeploymentStrategyTypeRolling uses the Kubernetes RollingUpdater.
|
||||
DeploymentStrategyTypeRolling DeploymentStrategyType = "Rolling"
|
||||
)
|
||||
|
||||
// CustomDeploymentStrategyParams are the input to the Custom deployment strategy.
|
||||
type CustomDeploymentStrategyParams struct {
|
||||
// Image specifies a Docker image which can carry out a deployment.
|
||||
Image string
|
||||
// Environment holds the environment which will be given to the container for Image.
|
||||
Environment []kapi.EnvVar
|
||||
// Command is optional and overrides CMD in the container Image.
|
||||
Command []string
|
||||
}
|
||||
|
||||
// RecreateDeploymentStrategyParams are the input to the Recreate deployment
|
||||
// strategy.
|
||||
type RecreateDeploymentStrategyParams struct {
|
||||
// TimeoutSeconds is the time to wait for updates before giving up. If the
|
||||
// value is nil, a default will be used.
|
||||
TimeoutSeconds *int64
|
||||
// Pre is a lifecycle hook which is executed before the strategy manipulates
|
||||
// the deployment. All LifecycleHookFailurePolicy values are supported.
|
||||
Pre *LifecycleHook
|
||||
// Mid is a lifecycle hook which is executed while the deployment is scaled down to zero before the first new
|
||||
// pod is created. All LifecycleHookFailurePolicy values are supported.
|
||||
Mid *LifecycleHook
|
||||
// Post is a lifecycle hook which is executed after the strategy has
|
||||
// finished all deployment logic.
|
||||
Post *LifecycleHook
|
||||
}
|
||||
|
||||
// LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.
|
||||
type LifecycleHook struct {
|
||||
// FailurePolicy specifies what action to take if the hook fails.
|
||||
FailurePolicy LifecycleHookFailurePolicy
|
||||
|
||||
// ExecNewPod specifies the options for a lifecycle hook backed by a pod.
|
||||
ExecNewPod *ExecNewPodHook
|
||||
|
||||
// TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag if the deployment succeeds.
|
||||
TagImages []TagImageHook
|
||||
}
|
||||
|
||||
// LifecycleHookFailurePolicy describes possibles actions to take if a hook fails.
|
||||
type LifecycleHookFailurePolicy string
|
||||
|
||||
const (
|
||||
// LifecycleHookFailurePolicyRetry means retry the hook until it succeeds.
|
||||
LifecycleHookFailurePolicyRetry LifecycleHookFailurePolicy = "Retry"
|
||||
// LifecycleHookFailurePolicyAbort means abort the deployment (if possible).
|
||||
LifecycleHookFailurePolicyAbort LifecycleHookFailurePolicy = "Abort"
|
||||
// LifecycleHookFailurePolicyIgnore means ignore failure and continue the deployment.
|
||||
LifecycleHookFailurePolicyIgnore LifecycleHookFailurePolicy = "Ignore"
|
||||
)
|
||||
|
||||
// ExecNewPodHook is a hook implementation which runs a command in a new pod
|
||||
// based on the specified container which is assumed to be part of the
|
||||
// deployment template.
|
||||
type ExecNewPodHook struct {
|
||||
// Command is the action command and its arguments.
|
||||
Command []string
|
||||
// Env is a set of environment variables to supply to the hook pod's container.
|
||||
Env []kapi.EnvVar
|
||||
// ContainerName is the name of a container in the deployment pod template
|
||||
// whose Docker image will be used for the hook pod's container.
|
||||
ContainerName string
|
||||
// Volumes is a list of named volumes from the pod template which should be
|
||||
// copied to the hook pod.
|
||||
Volumes []string
|
||||
}
|
||||
|
||||
// TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.
|
||||
type TagImageHook struct {
|
||||
// ContainerName is the name of a container in the deployment config whose image value will be used as the source of the tag
|
||||
ContainerName string
|
||||
// To is the target ImageStreamTag to set the image of
|
||||
To kapi.ObjectReference
|
||||
}
|
||||
|
||||
// RollingDeploymentStrategyParams are the input to the Rolling deployment
|
||||
// strategy.
|
||||
type RollingDeploymentStrategyParams struct {
|
||||
// UpdatePeriodSeconds is the time to wait between individual pod updates.
|
||||
// If the value is nil, a default will be used.
|
||||
UpdatePeriodSeconds *int64
|
||||
// IntervalSeconds is the time to wait between polling deployment status
|
||||
// after update. If the value is nil, a default will be used.
|
||||
IntervalSeconds *int64
|
||||
// TimeoutSeconds is the time to wait for updates before giving up. If the
|
||||
// value is nil, a default will be used.
|
||||
TimeoutSeconds *int64
|
||||
// The maximum number of pods that can be unavailable during the update.
|
||||
// Value can be an absolute number (ex: 5) or a percentage of total pods at the start of update (ex: 10%).
|
||||
// Absolute number is calculated from percentage by rounding up.
|
||||
// This can not be 0 if MaxSurge is 0.
|
||||
// By default, a fixed value of 1 is used.
|
||||
// Example: when this is set to 30%, the old RC can be scaled down by 30%
|
||||
// immediately when the rolling update starts. Once new pods are ready, old RC
|
||||
// can be scaled down further, followed by scaling up the new RC, ensuring
|
||||
// that at least 70% of original number of pods are available at all times
|
||||
// during the update.
|
||||
MaxUnavailable intstr.IntOrString
|
||||
// The maximum number of pods that can be scheduled above the original number of
|
||||
// pods.
|
||||
// Value can be an absolute number (ex: 5) or a percentage of total pods at
|
||||
// the start of the update (ex: 10%). This can not be 0 if MaxUnavailable is 0.
|
||||
// Absolute number is calculated from percentage by rounding up.
|
||||
// By default, a value of 1 is used.
|
||||
// Example: when this is set to 30%, the new RC can be scaled up by 30%
|
||||
// immediately when the rolling update starts. Once old pods have been killed,
|
||||
// new RC can be scaled up further, ensuring that total number of pods running
|
||||
// at any time during the update is atmost 130% of original pods.
|
||||
MaxSurge intstr.IntOrString
|
||||
// UpdatePercent is the percentage of replicas to scale up or down each
|
||||
// interval. If nil, one replica will be scaled up and down each interval.
|
||||
// If negative, the scale order will be down/up instead of up/down.
|
||||
// DEPRECATED: Use MaxUnavailable/MaxSurge instead.
|
||||
UpdatePercent *int32
|
||||
// Pre is a lifecycle hook which is executed before the deployment process
|
||||
// begins. All LifecycleHookFailurePolicy values are supported.
|
||||
Pre *LifecycleHook
|
||||
// Post is a lifecycle hook which is executed after the strategy has
|
||||
// finished all deployment logic.
|
||||
Post *LifecycleHook
|
||||
}
|
||||
|
||||
const (
|
||||
// DefaultRollingTimeoutSeconds is the default TimeoutSeconds for RollingDeploymentStrategyParams.
|
||||
DefaultRollingTimeoutSeconds int64 = 10 * 60
|
||||
// DefaultRollingIntervalSeconds is the default IntervalSeconds for RollingDeploymentStrategyParams.
|
||||
DefaultRollingIntervalSeconds int64 = 1
|
||||
// DefaultRollingUpdatePeriodSeconds is the default PeriodSeconds for RollingDeploymentStrategyParams.
|
||||
DefaultRollingUpdatePeriodSeconds int64 = 1
|
||||
)
|
||||
|
||||
// These constants represent keys used for correlating objects related to deployments.
|
||||
const (
|
||||
// DeploymentConfigAnnotation is an annotation name used to correlate a deployment with the
|
||||
// DeploymentConfig on which the deployment is based.
|
||||
DeploymentConfigAnnotation = "openshift.io/deployment-config.name"
|
||||
// DeploymentAnnotation is an annotation on a deployer Pod. The annotation value is the name
|
||||
// of the deployment (a ReplicationController) on which the deployer Pod acts.
|
||||
DeploymentAnnotation = "openshift.io/deployment.name"
|
||||
// DeploymentPodAnnotation is an annotation on a deployment (a ReplicationController). The
|
||||
// annotation value is the name of the deployer Pod which will act upon the ReplicationController
|
||||
// to implement the deployment behavior.
|
||||
DeploymentPodAnnotation = "openshift.io/deployer-pod.name"
|
||||
// DeploymentIgnorePodAnnotation is an annotation on a deployment config that will bypass creating
|
||||
// a deployment pod with the deployment. The caller is responsible for setting the deployment
|
||||
// status and running the deployment process.
|
||||
DeploymentIgnorePodAnnotation = "deploy.openshift.io/deployer-pod.ignore"
|
||||
// DeploymentPodTypeLabel is a label with which contains a type of deployment pod.
|
||||
DeploymentPodTypeLabel = "openshift.io/deployer-pod.type"
|
||||
// DeployerPodForDeploymentLabel is a label which groups pods related to a
|
||||
// deployment. The value is a deployment name. The deployer pod and hook pods
|
||||
// created by the internal strategies will have this label. Custom
|
||||
// strategies can apply this label to any pods they create, enabling
|
||||
// platform-provided cancellation and garbage collection support.
|
||||
DeployerPodForDeploymentLabel = "openshift.io/deployer-pod-for.name"
|
||||
// DeploymentStatusAnnotation is an annotation name used to retrieve the DeploymentPhase of
|
||||
// a deployment.
|
||||
DeploymentStatusAnnotation = "openshift.io/deployment.phase"
|
||||
// DeploymentEncodedConfigAnnotation is an annotation name used to retrieve specific encoded
|
||||
// DeploymentConfig on which a given deployment is based.
|
||||
DeploymentEncodedConfigAnnotation = "openshift.io/encoded-deployment-config"
|
||||
// DeploymentVersionAnnotation is an annotation on a deployment (a ReplicationController). The
|
||||
// annotation value is the LatestVersion value of the DeploymentConfig which was the basis for
|
||||
// the deployment.
|
||||
DeploymentVersionAnnotation = "openshift.io/deployment-config.latest-version"
|
||||
// DeploymentLabel is the name of a label used to correlate a deployment with the Pod created
|
||||
// to execute the deployment logic.
|
||||
// TODO: This is a workaround for upstream's lack of annotation support on PodTemplate. Once
|
||||
// annotations are available on PodTemplate, audit this constant with the goal of removing it.
|
||||
DeploymentLabel = "deployment"
|
||||
// DeploymentConfigLabel is the name of a label used to correlate a deployment with the
|
||||
// DeploymentConfigs on which the deployment is based.
|
||||
DeploymentConfigLabel = "deploymentconfig"
|
||||
// DesiredReplicasAnnotation represents the desired number of replicas for a
|
||||
// new deployment.
|
||||
// TODO: This should be made public upstream.
|
||||
DesiredReplicasAnnotation = "kubectl.kubernetes.io/desired-replicas"
|
||||
// DeploymentStatusReasonAnnotation represents the reason for deployment being in a given state
|
||||
// Used for specifying the reason for cancellation or failure of a deployment
|
||||
DeploymentStatusReasonAnnotation = "openshift.io/deployment.status-reason"
|
||||
// DeploymentCancelledAnnotation indicates that the deployment has been cancelled
|
||||
// The annotation value does not matter and its mere presence indicates cancellation
|
||||
DeploymentCancelledAnnotation = "openshift.io/deployment.cancelled"
|
||||
// DeploymentReplicasAnnotation is for internal use only and is for
|
||||
// detecting external modifications to deployment replica counts.
|
||||
DeploymentReplicasAnnotation = "openshift.io/deployment.replicas"
|
||||
// PostHookPodSuffix is the suffix added to all pre hook pods
|
||||
PreHookPodSuffix = "hook-pre"
|
||||
// PostHookPodSuffix is the suffix added to all mid hook pods
|
||||
MidHookPodSuffix = "hook-mid"
|
||||
// PostHookPodSuffix is the suffix added to all post hook pods
|
||||
PostHookPodSuffix = "hook-post"
|
||||
)
|
||||
|
||||
// These constants represent the various reasons for cancelling a deployment
|
||||
// or for a deployment being placed in a failed state
|
||||
const (
|
||||
DeploymentCancelledByUser = "cancelled by the user"
|
||||
DeploymentCancelledNewerDeploymentExists = "newer deployment was found running"
|
||||
DeploymentFailedUnrelatedDeploymentExists = "unrelated pod with the same name as this deployment is already running"
|
||||
DeploymentFailedDeployerPodNoLongerExists = "deployer pod no longer exists"
|
||||
)
|
||||
|
||||
// MaxDeploymentDurationSeconds represents the maximum duration that a deployment is allowed to run
|
||||
// This is set as the default value for ActiveDeadlineSeconds for the deployer pod
|
||||
// Currently set to 6 hours
|
||||
const MaxDeploymentDurationSeconds int64 = 21600
|
||||
|
||||
// DeploymentCancelledAnnotationValue represents the value for the DeploymentCancelledAnnotation
|
||||
// annotation that signifies that the deployment should be cancelled
|
||||
const DeploymentCancelledAnnotationValue = "true"
|
||||
|
||||
// DeploymentInstantiatedAnnotationValue represents the value for the DeploymentInstantiatedAnnotation
|
||||
// annotation that signifies that the deployment should be instantiated.
|
||||
const DeploymentInstantiatedAnnotationValue = "true"
|
||||
|
||||
// +genclient=true
|
||||
|
||||
// DeploymentConfig represents a configuration for a single deployment (represented as a
|
||||
// ReplicationController). It also contains details about changes which resulted in the current
|
||||
// state of the DeploymentConfig. Each change to the DeploymentConfig which should result in
|
||||
// a new deployment results in an increment of LatestVersion.
|
||||
type DeploymentConfig struct {
|
||||
unversioned.TypeMeta
|
||||
kapi.ObjectMeta
|
||||
|
||||
// Spec represents a desired deployment state and how to deploy to it.
|
||||
Spec DeploymentConfigSpec
|
||||
|
||||
// Status represents the current deployment state.
|
||||
Status DeploymentConfigStatus
|
||||
}
|
||||
|
||||
// DeploymentConfigSpec represents the desired state of the deployment.
|
||||
type DeploymentConfigSpec struct {
|
||||
// Strategy describes how a deployment is executed.
|
||||
Strategy DeploymentStrategy
|
||||
|
||||
// MinReadySeconds is the minimum number of seconds for which a newly created pod should
|
||||
// be ready without any of its container crashing, for it to be considered available.
|
||||
// Defaults to 0 (pod will be considered available as soon as it is ready)
|
||||
MinReadySeconds int32
|
||||
|
||||
// Triggers determine how updates to a DeploymentConfig result in new deployments. If no triggers
|
||||
// are defined, a new deployment can only occur as a result of an explicit client update to the
|
||||
// DeploymentConfig with a new LatestVersion.
|
||||
Triggers []DeploymentTriggerPolicy
|
||||
|
||||
// Replicas is the number of desired replicas.
|
||||
Replicas int32
|
||||
|
||||
// RevisionHistoryLimit is the number of old ReplicationControllers to retain to allow for rollbacks.
|
||||
// This field is a pointer to allow for differentiation between an explicit zero and not specified.
|
||||
RevisionHistoryLimit *int32
|
||||
|
||||
// Test ensures that this deployment config will have zero replicas except while a deployment is running. This allows the
|
||||
// deployment config to be used as a continuous deployment test - triggering on images, running the deployment, and then succeeding
|
||||
// or failing. Post strategy hooks and After actions can be used to integrate successful deployment with an action.
|
||||
Test bool
|
||||
|
||||
// Paused indicates that the deployment config is paused resulting in no new deployments on template
|
||||
// changes or changes in the template caused by other triggers.
|
||||
Paused bool
|
||||
|
||||
// Selector is a label query over pods that should match the Replicas count.
|
||||
Selector map[string]string
|
||||
|
||||
// Template is the object that describes the pod that will be created if
|
||||
// insufficient replicas are detected.
|
||||
Template *kapi.PodTemplateSpec
|
||||
}
|
||||
|
||||
// DeploymentConfigStatus represents the current deployment state.
|
||||
type DeploymentConfigStatus struct {
|
||||
// LatestVersion is used to determine whether the current deployment associated with a deployment
|
||||
// config is out of sync.
|
||||
LatestVersion int64
|
||||
// ObservedGeneration is the most recent generation observed by the deployment config controller.
|
||||
ObservedGeneration int64
|
||||
// Replicas is the total number of pods targeted by this deployment config.
|
||||
Replicas int32
|
||||
// UpdatedReplicas is the total number of non-terminated pods targeted by this deployment config
|
||||
// that have the desired template spec.
|
||||
UpdatedReplicas int32
|
||||
// AvailableReplicas is the total number of available pods targeted by this deployment config.
|
||||
AvailableReplicas int32
|
||||
// UnavailableReplicas is the total number of unavailable pods targeted by this deployment config.
|
||||
UnavailableReplicas int32
|
||||
// Details are the reasons for the update to this deployment config.
|
||||
// This could be based on a change made by the user or caused by an automatic trigger
|
||||
Details *DeploymentDetails
|
||||
}
|
||||
|
||||
// DeploymentTriggerPolicy describes a policy for a single trigger that results in a new deployment.
|
||||
type DeploymentTriggerPolicy struct {
|
||||
// Type of the trigger
|
||||
Type DeploymentTriggerType
|
||||
// ImageChangeParams represents the parameters for the ImageChange trigger.
|
||||
ImageChangeParams *DeploymentTriggerImageChangeParams
|
||||
}
|
||||
|
||||
// DeploymentTriggerType refers to a specific DeploymentTriggerPolicy implementation.
|
||||
type DeploymentTriggerType string
|
||||
|
||||
const (
|
||||
// DeploymentTriggerManual is a placeholder implementation which does nothing.
|
||||
DeploymentTriggerManual DeploymentTriggerType = "Manual"
|
||||
// DeploymentTriggerOnImageChange will create new deployments in response to updated tags from
|
||||
// a Docker image repository.
|
||||
DeploymentTriggerOnImageChange DeploymentTriggerType = "ImageChange"
|
||||
// DeploymentTriggerOnConfigChange will create new deployments in response to changes to
|
||||
// the ControllerTemplate of a DeploymentConfig.
|
||||
DeploymentTriggerOnConfigChange DeploymentTriggerType = "ConfigChange"
|
||||
)
|
||||
|
||||
// DeploymentTriggerImageChangeParams represents the parameters to the ImageChange trigger.
|
||||
type DeploymentTriggerImageChangeParams struct {
|
||||
// Automatic means that the detection of a new tag value should result in an image update
|
||||
// inside the pod template. Deployment configs that haven't been deployed yet will always
|
||||
// have their images updated. Deployment configs that have been deployed at least once, will
|
||||
// have their images updated only if this is set to true.
|
||||
Automatic bool
|
||||
// ContainerNames is used to restrict tag updates to the specified set of container names in a pod.
|
||||
ContainerNames []string
|
||||
// From is a reference to an image stream tag to watch for changes. From.Name is the only
|
||||
// required subfield - if From.Namespace is blank, the namespace of the current deployment
|
||||
// trigger will be used.
|
||||
From kapi.ObjectReference
|
||||
// LastTriggeredImage is the last image to be triggered.
|
||||
LastTriggeredImage string
|
||||
}
|
||||
|
||||
// DeploymentDetails captures information about the causes of a deployment.
|
||||
type DeploymentDetails struct {
|
||||
// Message is the user specified change message, if this deployment was triggered manually by the user
|
||||
Message string
|
||||
// Causes are extended data associated with all the causes for creating a new deployment
|
||||
Causes []DeploymentCause
|
||||
}
|
||||
|
||||
// DeploymentCause captures information about a particular cause of a deployment.
|
||||
type DeploymentCause struct {
|
||||
// Type is the type of the trigger that resulted in the creation of a new deployment
|
||||
Type DeploymentTriggerType
|
||||
// ImageTrigger contains the image trigger details, if this trigger was fired based on an image change
|
||||
ImageTrigger *DeploymentCauseImageTrigger
|
||||
}
|
||||
|
||||
// DeploymentCauseImageTrigger contains information about a deployment caused by an image trigger
|
||||
type DeploymentCauseImageTrigger struct {
|
||||
// From is a reference to the changed object which triggered a deployment. The field may have
|
||||
// the kinds DockerImage, ImageStreamTag, or ImageStreamImage.
|
||||
From kapi.ObjectReference
|
||||
}
|
||||
|
||||
// DeploymentConfigList is a collection of deployment configs.
|
||||
type DeploymentConfigList struct {
|
||||
unversioned.TypeMeta
|
||||
unversioned.ListMeta
|
||||
|
||||
// Items is a list of deployment configs
|
||||
Items []DeploymentConfig
|
||||
}
|
||||
|
||||
// DeploymentConfigRollback provides the input to rollback generation.
|
||||
type DeploymentConfigRollback struct {
|
||||
unversioned.TypeMeta
|
||||
// Name of the deployment config that will be rolled back.
|
||||
Name string
|
||||
// UpdatedAnnotations is a set of new annotations that will be added in the deployment config.
|
||||
UpdatedAnnotations map[string]string
|
||||
// Spec defines the options to rollback generation.
|
||||
Spec DeploymentConfigRollbackSpec
|
||||
}
|
||||
|
||||
// DeploymentConfigRollbackSpec represents the options for rollback generation.
|
||||
type DeploymentConfigRollbackSpec struct {
|
||||
// From points to a ReplicationController which is a deployment.
|
||||
From kapi.ObjectReference
|
||||
// Revision to rollback to. If set to 0, rollback to the last revision.
|
||||
Revision int64
|
||||
// IncludeTriggers specifies whether to include config Triggers.
|
||||
IncludeTriggers bool
|
||||
// IncludeTemplate specifies whether to include the PodTemplateSpec.
|
||||
IncludeTemplate bool
|
||||
// IncludeReplicationMeta specifies whether to include the replica count and selector.
|
||||
IncludeReplicationMeta bool
|
||||
// IncludeStrategy specifies whether to include the deployment Strategy.
|
||||
IncludeStrategy bool
|
||||
}
|
||||
|
||||
// DeploymentLog represents the logs for a deployment
|
||||
type DeploymentLog struct {
|
||||
unversioned.TypeMeta
|
||||
}
|
||||
|
||||
// DeploymentLogOptions is the REST options for a deployment log
|
||||
type DeploymentLogOptions struct {
|
||||
unversioned.TypeMeta
|
||||
|
||||
// Container for which to return logs
|
||||
Container string
|
||||
// Follow if true indicates that the deployment log should be streamed until
|
||||
// the deployment terminates.
|
||||
Follow bool
|
||||
// If true, return previous deployment logs
|
||||
Previous bool
|
||||
// A relative time in seconds before the current time from which to show logs. If this value
|
||||
// precedes the time a pod was started, only logs since the pod start will be returned.
|
||||
// If this value is in the future, no logs will be returned.
|
||||
// Only one of sinceSeconds or sinceTime may be specified.
|
||||
SinceSeconds *int64
|
||||
// An RFC3339 timestamp from which to show logs. If this value
|
||||
// precedes the time a pod was started, only logs since the pod start will be returned.
|
||||
// If this value is in the future, no logs will be returned.
|
||||
// Only one of sinceSeconds or sinceTime may be specified.
|
||||
SinceTime *unversioned.Time
|
||||
// If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
|
||||
// of log output.
|
||||
Timestamps bool
|
||||
// If set, the number of lines from the end of the logs to show. If not specified,
|
||||
// logs are shown from the creation of the container or sinceSeconds or sinceTime
|
||||
TailLines *int64
|
||||
// If set, the number of bytes to read from the server before terminating the
|
||||
// log output. This may not display a complete final line of logging, and may return
|
||||
// slightly more or slightly less than the specified limit.
|
||||
LimitBytes *int64
|
||||
|
||||
// NoWait if true causes the call to return immediately even if the deployment
|
||||
// is not available yet. Otherwise the server will wait until the deployment has started.
|
||||
NoWait bool
|
||||
|
||||
// Version of the deployment for which to view logs.
|
||||
Version *int64
|
||||
}
|
||||
Reference in New Issue
Block a user