Upgrade OpenShift and its dependencies.

OpenShift version 1.4.0-alpha.0
This commit is contained in:
Tomas Kral
2016-10-18 12:04:00 +02:00
parent 5e1a5cbb3b
commit 1f8a0e06c9
1786 changed files with 424709 additions and 33395 deletions
@@ -1,565 +0,0 @@
// +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
}
+4
View File
@@ -0,0 +1,4 @@
// +k8s:deepcopy-gen=package,register
// Package api is the internal version of the API.
package api
+7 -5
View File
@@ -6,6 +6,7 @@ import (
)
const GroupName = ""
const FutureGroupName = "deploy.openshift.io"
// SchemeGroupVersion is group version used to register these objects
var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
@@ -20,13 +21,13 @@ func Resource(resource string) unversioned.GroupResource {
return SchemeGroupVersion.WithResource(resource).GroupResource()
}
func AddToScheme(scheme *runtime.Scheme) {
// Add the API to Scheme.
addKnownTypes(scheme)
}
var (
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
AddToScheme = SchemeBuilder.AddToScheme
)
// Adds the list of known types to api.Scheme.
func addKnownTypes(scheme *runtime.Scheme) {
func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion,
&DeploymentConfig{},
&DeploymentConfigList{},
@@ -34,6 +35,7 @@ func addKnownTypes(scheme *runtime.Scheme) {
&DeploymentLog{},
&DeploymentLogOptions{},
)
return nil
}
func (obj *DeploymentConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
+4 -3
View File
@@ -132,7 +132,7 @@ func Convert_api_RollingDeploymentStrategyParams_To_v1_RollingDeploymentStrategy
return nil
}
func addConversionFuncs(scheme *runtime.Scheme) {
func addConversionFuncs(scheme *runtime.Scheme) error {
err := scheme.AddConversionFuncs(
Convert_v1_DeploymentTriggerImageChangeParams_To_api_DeploymentTriggerImageChangeParams,
Convert_api_DeploymentTriggerImageChangeParams_To_v1_DeploymentTriggerImageChangeParams,
@@ -141,12 +141,13 @@ func addConversionFuncs(scheme *runtime.Scheme) {
Convert_api_RollingDeploymentStrategyParams_To_v1_RollingDeploymentStrategyParams,
)
if err != nil {
panic(err)
return err
}
if err := scheme.AddFieldLabelConversionFunc("v1", "DeploymentConfig",
oapi.GetFieldLabelConversionFunc(newer.DeploymentConfigToSelectableFields(&newer.DeploymentConfig{}), nil),
); err != nil {
panic(err)
return err
}
return nil
}
@@ -1,544 +0,0 @@
// +build !ignore_autogenerated_openshift
// This file was autogenerated by deepcopy-gen. Do not edit it manually!
package v1
import (
api "k8s.io/kubernetes/pkg/api"
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
api_v1 "k8s.io/kubernetes/pkg/api/v1"
conversion "k8s.io/kubernetes/pkg/conversion"
intstr "k8s.io/kubernetes/pkg/util/intstr"
)
func init() {
if err := api.Scheme.AddGeneratedDeepCopyFuncs(
DeepCopy_v1_CustomDeploymentStrategyParams,
DeepCopy_v1_DeploymentCause,
DeepCopy_v1_DeploymentCauseImageTrigger,
DeepCopy_v1_DeploymentConfig,
DeepCopy_v1_DeploymentConfigList,
DeepCopy_v1_DeploymentConfigRollback,
DeepCopy_v1_DeploymentConfigRollbackSpec,
DeepCopy_v1_DeploymentConfigSpec,
DeepCopy_v1_DeploymentConfigStatus,
DeepCopy_v1_DeploymentDetails,
DeepCopy_v1_DeploymentLog,
DeepCopy_v1_DeploymentLogOptions,
DeepCopy_v1_DeploymentStrategy,
DeepCopy_v1_DeploymentTriggerImageChangeParams,
DeepCopy_v1_DeploymentTriggerPolicy,
DeepCopy_v1_ExecNewPodHook,
DeepCopy_v1_LifecycleHook,
DeepCopy_v1_RecreateDeploymentStrategyParams,
DeepCopy_v1_RollingDeploymentStrategyParams,
DeepCopy_v1_TagImageHook,
); err != nil {
// if one of the deep copy functions is malformed, detect it immediately.
panic(err)
}
}
func DeepCopy_v1_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_v1.EnvVar, len(in))
for i := range in {
if err := api_v1.DeepCopy_v1_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_v1_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_v1_DeploymentCauseImageTrigger(*in, *out, c); err != nil {
return err
}
} else {
out.ImageTrigger = nil
}
return nil
}
func DeepCopy_v1_DeploymentCauseImageTrigger(in DeploymentCauseImageTrigger, out *DeploymentCauseImageTrigger, c *conversion.Cloner) error {
if err := api_v1.DeepCopy_v1_ObjectReference(in.From, &out.From, c); err != nil {
return err
}
return nil
}
func DeepCopy_v1_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_v1.DeepCopy_v1_ObjectMeta(in.ObjectMeta, &out.ObjectMeta, c); err != nil {
return err
}
if err := DeepCopy_v1_DeploymentConfigSpec(in.Spec, &out.Spec, c); err != nil {
return err
}
if err := DeepCopy_v1_DeploymentConfigStatus(in.Status, &out.Status, c); err != nil {
return err
}
return nil
}
func DeepCopy_v1_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_v1_DeploymentConfig(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Items = nil
}
return nil
}
func DeepCopy_v1_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_v1_DeploymentConfigRollbackSpec(in.Spec, &out.Spec, c); err != nil {
return err
}
return nil
}
func DeepCopy_v1_DeploymentConfigRollbackSpec(in DeploymentConfigRollbackSpec, out *DeploymentConfigRollbackSpec, c *conversion.Cloner) error {
if err := api_v1.DeepCopy_v1_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_v1_DeploymentConfigSpec(in DeploymentConfigSpec, out *DeploymentConfigSpec, c *conversion.Cloner) error {
if err := DeepCopy_v1_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_v1_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_v1.PodTemplateSpec)
if err := api_v1.DeepCopy_v1_PodTemplateSpec(*in, *out, c); err != nil {
return err
}
} else {
out.Template = nil
}
return nil
}
func DeepCopy_v1_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_v1_DeploymentDetails(*in, *out, c); err != nil {
return err
}
} else {
out.Details = nil
}
return nil
}
func DeepCopy_v1_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_v1_DeploymentCause(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Causes = nil
}
return nil
}
func DeepCopy_v1_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_v1_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_v1_DeploymentStrategy(in DeploymentStrategy, out *DeploymentStrategy, c *conversion.Cloner) error {
out.Type = in.Type
if in.CustomParams != nil {
in, out := in.CustomParams, &out.CustomParams
*out = new(CustomDeploymentStrategyParams)
if err := DeepCopy_v1_CustomDeploymentStrategyParams(*in, *out, c); err != nil {
return err
}
} else {
out.CustomParams = nil
}
if in.RecreateParams != nil {
in, out := in.RecreateParams, &out.RecreateParams
*out = new(RecreateDeploymentStrategyParams)
if err := DeepCopy_v1_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_v1_RollingDeploymentStrategyParams(*in, *out, c); err != nil {
return err
}
} else {
out.RollingParams = nil
}
if err := api_v1.DeepCopy_v1_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_v1_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_v1.DeepCopy_v1_ObjectReference(in.From, &out.From, c); err != nil {
return err
}
out.LastTriggeredImage = in.LastTriggeredImage
return nil
}
func DeepCopy_v1_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_v1_DeploymentTriggerImageChangeParams(*in, *out, c); err != nil {
return err
}
} else {
out.ImageChangeParams = nil
}
return nil
}
func DeepCopy_v1_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_v1.EnvVar, len(in))
for i := range in {
if err := api_v1.DeepCopy_v1_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_v1_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_v1_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_v1_TagImageHook(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.TagImages = nil
}
return nil
}
func DeepCopy_v1_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_v1_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_v1_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_v1_LifecycleHook(*in, *out, c); err != nil {
return err
}
} else {
out.Post = nil
}
return nil
}
func DeepCopy_v1_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 in.MaxUnavailable != nil {
in, out := in.MaxUnavailable, &out.MaxUnavailable
*out = new(intstr.IntOrString)
if err := intstr.DeepCopy_intstr_IntOrString(*in, *out, c); err != nil {
return err
}
} else {
out.MaxUnavailable = nil
}
if in.MaxSurge != nil {
in, out := in.MaxSurge, &out.MaxSurge
*out = new(intstr.IntOrString)
if err := intstr.DeepCopy_intstr_IntOrString(*in, *out, c); err != nil {
return err
}
} else {
out.MaxSurge = nil
}
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_v1_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_v1_LifecycleHook(*in, *out, c); err != nil {
return err
}
} else {
out.Post = nil
}
return nil
}
func DeepCopy_v1_TagImageHook(in TagImageHook, out *TagImageHook, c *conversion.Cloner) error {
out.ContainerName = in.ContainerName
if err := api_v1.DeepCopy_v1_ObjectReference(in.To, &out.To, c); err != nil {
return err
}
return nil
}
+5 -7
View File
@@ -100,8 +100,9 @@ func SetDefaults_RollingDeploymentStrategyParams(obj *RollingDeploymentStrategyP
func SetDefaults_DeploymentConfig(obj *DeploymentConfig) {
for _, t := range obj.Spec.Triggers {
if t.ImageChangeParams != nil {
// Default unconditionally for transforming old data.
t.ImageChangeParams.From.Kind = "ImageStreamTag"
if len(t.ImageChangeParams.From.Kind) == 0 {
t.ImageChangeParams.From.Kind = "ImageStreamTag"
}
if len(t.ImageChangeParams.From.Namespace) == 0 {
t.ImageChangeParams.From.Namespace = obj.Namespace
}
@@ -113,15 +114,12 @@ func mkintp(i int64) *int64 {
return &i
}
func addDefaultingFuncs(scheme *runtime.Scheme) {
err := scheme.AddDefaultingFuncs(
func addDefaultingFuncs(scheme *runtime.Scheme) error {
return scheme.AddDefaultingFuncs(
SetDefaults_DeploymentConfigSpec,
SetDefaults_DeploymentStrategy,
SetDefaults_RecreateDeploymentStrategyParams,
SetDefaults_RollingDeploymentStrategyParams,
SetDefaults_DeploymentConfig,
)
if err != nil {
panic(err)
}
}
+3 -1
View File
@@ -1,3 +1,5 @@
// +k8s:deepcopy-gen=package,register
// +k8s:conversion-gen=github.com/openshift/origin/pkg/deploy/api
// Package v1 is the v1 version of the API.
// +genconversion=true
package v1
File diff suppressed because it is too large Load Diff
+11 -2
View File
@@ -112,8 +112,8 @@ message DeploymentConfigSpec {
// 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.
repeated DeploymentTriggerPolicy triggers = 2;
// DeploymentConfig with a new LatestVersion. If null, defaults to having a config change trigger.
optional DeploymentTriggerPolicies triggers = 2;
// Replicas is the number of desired replicas.
optional int32 replicas = 3;
@@ -269,6 +269,15 @@ message DeploymentTriggerImageChangeParams {
optional string lastTriggeredImage = 4;
}
// DeploymentTriggerPolicies is a list of policies where nil values and different from empty arrays.
// +protobuf.nullable=true
// +protobuf.options.(gogoproto.goproto_stringer)=false
message DeploymentTriggerPolicies {
// items, if empty, will result in an empty slice
repeated DeploymentTriggerPolicy items = 1;
}
// DeploymentTriggerPolicy describes a policy for a single trigger that results in a new deployment.
message DeploymentTriggerPolicy {
// Type of the trigger
+6 -6
View File
@@ -10,14 +10,13 @@ const GroupName = ""
// SchemeGroupVersion is group version used to register these objects
var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"}
func AddToScheme(scheme *runtime.Scheme) {
addKnownTypes(scheme)
addDefaultingFuncs(scheme)
addConversionFuncs(scheme)
}
var (
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addConversionFuncs, addDefaultingFuncs)
AddToScheme = SchemeBuilder.AddToScheme
)
// Adds the list of known types to api.Scheme.
func addKnownTypes(scheme *runtime.Scheme) {
func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion,
&DeploymentConfig{},
&DeploymentConfigList{},
@@ -25,6 +24,7 @@ func addKnownTypes(scheme *runtime.Scheme) {
&DeploymentLog{},
&DeploymentLogOptions{},
)
return nil
}
func (obj *DeploymentConfig) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
+1 -1
View File
@@ -85,7 +85,7 @@ var map_DeploymentConfigSpec = map[string]string{
"": "DeploymentConfigSpec represents the desired state of the deployment.",
"strategy": "Strategy describes how a deployment is executed.",
"minReadySeconds": "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)",
"triggers": "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": "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. If null, defaults to having a config change trigger.",
"replicas": "Replicas is the number of desired replicas.",
"revisionHistoryLimit": "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.",
"test": "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.",
+13 -2
View File
@@ -1,6 +1,8 @@
package v1
import (
"fmt"
"k8s.io/kubernetes/pkg/api/unversioned"
kapi "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/util/intstr"
@@ -252,6 +254,15 @@ type DeploymentConfig struct {
Status DeploymentConfigStatus `json:"status" protobuf:"bytes,3,opt,name=status"`
}
// DeploymentTriggerPolicies is a list of policies where nil values and different from empty arrays.
// +protobuf.nullable=true
// +protobuf.options.(gogoproto.goproto_stringer)=false
type DeploymentTriggerPolicies []DeploymentTriggerPolicy
func (t DeploymentTriggerPolicies) String() string {
return fmt.Sprintf("%v", []DeploymentTriggerPolicy(t))
}
// DeploymentConfigSpec represents the desired state of the deployment.
type DeploymentConfigSpec struct {
// Strategy describes how a deployment is executed.
@@ -264,8 +275,8 @@ type DeploymentConfigSpec struct {
// 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 `json:"triggers" protobuf:"bytes,2,rep,name=triggers"`
// DeploymentConfig with a new LatestVersion. If null, defaults to having a config change trigger.
Triggers DeploymentTriggerPolicies `json:"triggers" protobuf:"bytes,2,rep,name=triggers"`
// Replicas is the number of desired replicas.
Replicas int32 `json:"replicas" protobuf:"varint,3,opt,name=replicas"`
@@ -5,14 +5,21 @@
package v1
import (
deploy_api "github.com/openshift/origin/pkg/deploy/api"
api "k8s.io/kubernetes/pkg/api"
api "github.com/openshift/origin/pkg/deploy/api"
pkg_api "k8s.io/kubernetes/pkg/api"
api_v1 "k8s.io/kubernetes/pkg/api/v1"
conversion "k8s.io/kubernetes/pkg/conversion"
runtime "k8s.io/kubernetes/pkg/runtime"
)
func init() {
if err := api.Scheme.AddGeneratedConversionFuncs(
SchemeBuilder.Register(RegisterConversions)
}
// RegisterConversions adds conversion functions to the given scheme.
// Public to allow building arbitrary schemes.
func RegisterConversions(scheme *runtime.Scheme) error {
return scheme.AddGeneratedConversionFuncs(
Convert_v1_CustomDeploymentStrategyParams_To_api_CustomDeploymentStrategyParams,
Convert_api_CustomDeploymentStrategyParams_To_v1_CustomDeploymentStrategyParams,
Convert_v1_DeploymentCause_To_api_DeploymentCause,
@@ -53,17 +60,14 @@ func init() {
Convert_api_RollingDeploymentStrategyParams_To_v1_RollingDeploymentStrategyParams,
Convert_v1_TagImageHook_To_api_TagImageHook,
Convert_api_TagImageHook_To_v1_TagImageHook,
); err != nil {
// if one of the conversion functions is malformed, detect it immediately.
panic(err)
}
)
}
func autoConvert_v1_CustomDeploymentStrategyParams_To_api_CustomDeploymentStrategyParams(in *CustomDeploymentStrategyParams, out *deploy_api.CustomDeploymentStrategyParams, s conversion.Scope) error {
func autoConvert_v1_CustomDeploymentStrategyParams_To_api_CustomDeploymentStrategyParams(in *CustomDeploymentStrategyParams, out *api.CustomDeploymentStrategyParams, s conversion.Scope) error {
out.Image = in.Image
if in.Environment != nil {
in, out := &in.Environment, &out.Environment
*out = make([]api.EnvVar, len(*in))
*out = make([]pkg_api.EnvVar, len(*in))
for i := range *in {
if err := api_v1.Convert_v1_EnvVar_To_api_EnvVar(&(*in)[i], &(*out)[i], s); err != nil {
return err
@@ -76,11 +80,11 @@ func autoConvert_v1_CustomDeploymentStrategyParams_To_api_CustomDeploymentStrate
return nil
}
func Convert_v1_CustomDeploymentStrategyParams_To_api_CustomDeploymentStrategyParams(in *CustomDeploymentStrategyParams, out *deploy_api.CustomDeploymentStrategyParams, s conversion.Scope) error {
func Convert_v1_CustomDeploymentStrategyParams_To_api_CustomDeploymentStrategyParams(in *CustomDeploymentStrategyParams, out *api.CustomDeploymentStrategyParams, s conversion.Scope) error {
return autoConvert_v1_CustomDeploymentStrategyParams_To_api_CustomDeploymentStrategyParams(in, out, s)
}
func autoConvert_api_CustomDeploymentStrategyParams_To_v1_CustomDeploymentStrategyParams(in *deploy_api.CustomDeploymentStrategyParams, out *CustomDeploymentStrategyParams, s conversion.Scope) error {
func autoConvert_api_CustomDeploymentStrategyParams_To_v1_CustomDeploymentStrategyParams(in *api.CustomDeploymentStrategyParams, out *CustomDeploymentStrategyParams, s conversion.Scope) error {
out.Image = in.Image
if in.Environment != nil {
in, out := &in.Environment, &out.Environment
@@ -97,15 +101,15 @@ func autoConvert_api_CustomDeploymentStrategyParams_To_v1_CustomDeploymentStrate
return nil
}
func Convert_api_CustomDeploymentStrategyParams_To_v1_CustomDeploymentStrategyParams(in *deploy_api.CustomDeploymentStrategyParams, out *CustomDeploymentStrategyParams, s conversion.Scope) error {
func Convert_api_CustomDeploymentStrategyParams_To_v1_CustomDeploymentStrategyParams(in *api.CustomDeploymentStrategyParams, out *CustomDeploymentStrategyParams, s conversion.Scope) error {
return autoConvert_api_CustomDeploymentStrategyParams_To_v1_CustomDeploymentStrategyParams(in, out, s)
}
func autoConvert_v1_DeploymentCause_To_api_DeploymentCause(in *DeploymentCause, out *deploy_api.DeploymentCause, s conversion.Scope) error {
out.Type = deploy_api.DeploymentTriggerType(in.Type)
func autoConvert_v1_DeploymentCause_To_api_DeploymentCause(in *DeploymentCause, out *api.DeploymentCause, s conversion.Scope) error {
out.Type = api.DeploymentTriggerType(in.Type)
if in.ImageTrigger != nil {
in, out := &in.ImageTrigger, &out.ImageTrigger
*out = new(deploy_api.DeploymentCauseImageTrigger)
*out = new(api.DeploymentCauseImageTrigger)
if err := Convert_v1_DeploymentCauseImageTrigger_To_api_DeploymentCauseImageTrigger(*in, *out, s); err != nil {
return err
}
@@ -115,11 +119,11 @@ func autoConvert_v1_DeploymentCause_To_api_DeploymentCause(in *DeploymentCause,
return nil
}
func Convert_v1_DeploymentCause_To_api_DeploymentCause(in *DeploymentCause, out *deploy_api.DeploymentCause, s conversion.Scope) error {
func Convert_v1_DeploymentCause_To_api_DeploymentCause(in *DeploymentCause, out *api.DeploymentCause, s conversion.Scope) error {
return autoConvert_v1_DeploymentCause_To_api_DeploymentCause(in, out, s)
}
func autoConvert_api_DeploymentCause_To_v1_DeploymentCause(in *deploy_api.DeploymentCause, out *DeploymentCause, s conversion.Scope) error {
func autoConvert_api_DeploymentCause_To_v1_DeploymentCause(in *api.DeploymentCause, out *DeploymentCause, s conversion.Scope) error {
out.Type = DeploymentTriggerType(in.Type)
if in.ImageTrigger != nil {
in, out := &in.ImageTrigger, &out.ImageTrigger
@@ -133,35 +137,35 @@ func autoConvert_api_DeploymentCause_To_v1_DeploymentCause(in *deploy_api.Deploy
return nil
}
func Convert_api_DeploymentCause_To_v1_DeploymentCause(in *deploy_api.DeploymentCause, out *DeploymentCause, s conversion.Scope) error {
func Convert_api_DeploymentCause_To_v1_DeploymentCause(in *api.DeploymentCause, out *DeploymentCause, s conversion.Scope) error {
return autoConvert_api_DeploymentCause_To_v1_DeploymentCause(in, out, s)
}
func autoConvert_v1_DeploymentCauseImageTrigger_To_api_DeploymentCauseImageTrigger(in *DeploymentCauseImageTrigger, out *deploy_api.DeploymentCauseImageTrigger, s conversion.Scope) error {
func autoConvert_v1_DeploymentCauseImageTrigger_To_api_DeploymentCauseImageTrigger(in *DeploymentCauseImageTrigger, out *api.DeploymentCauseImageTrigger, s conversion.Scope) error {
if err := api_v1.Convert_v1_ObjectReference_To_api_ObjectReference(&in.From, &out.From, s); err != nil {
return err
}
return nil
}
func Convert_v1_DeploymentCauseImageTrigger_To_api_DeploymentCauseImageTrigger(in *DeploymentCauseImageTrigger, out *deploy_api.DeploymentCauseImageTrigger, s conversion.Scope) error {
func Convert_v1_DeploymentCauseImageTrigger_To_api_DeploymentCauseImageTrigger(in *DeploymentCauseImageTrigger, out *api.DeploymentCauseImageTrigger, s conversion.Scope) error {
return autoConvert_v1_DeploymentCauseImageTrigger_To_api_DeploymentCauseImageTrigger(in, out, s)
}
func autoConvert_api_DeploymentCauseImageTrigger_To_v1_DeploymentCauseImageTrigger(in *deploy_api.DeploymentCauseImageTrigger, out *DeploymentCauseImageTrigger, s conversion.Scope) error {
func autoConvert_api_DeploymentCauseImageTrigger_To_v1_DeploymentCauseImageTrigger(in *api.DeploymentCauseImageTrigger, out *DeploymentCauseImageTrigger, s conversion.Scope) error {
if err := api_v1.Convert_api_ObjectReference_To_v1_ObjectReference(&in.From, &out.From, s); err != nil {
return err
}
return nil
}
func Convert_api_DeploymentCauseImageTrigger_To_v1_DeploymentCauseImageTrigger(in *deploy_api.DeploymentCauseImageTrigger, out *DeploymentCauseImageTrigger, s conversion.Scope) error {
func Convert_api_DeploymentCauseImageTrigger_To_v1_DeploymentCauseImageTrigger(in *api.DeploymentCauseImageTrigger, out *DeploymentCauseImageTrigger, s conversion.Scope) error {
return autoConvert_api_DeploymentCauseImageTrigger_To_v1_DeploymentCauseImageTrigger(in, out, s)
}
func autoConvert_v1_DeploymentConfig_To_api_DeploymentConfig(in *DeploymentConfig, out *deploy_api.DeploymentConfig, s conversion.Scope) error {
func autoConvert_v1_DeploymentConfig_To_api_DeploymentConfig(in *DeploymentConfig, out *api.DeploymentConfig, s conversion.Scope) error {
SetDefaults_DeploymentConfig(in)
if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
return err
}
if err := api_v1.Convert_v1_ObjectMeta_To_api_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil {
@@ -176,12 +180,12 @@ func autoConvert_v1_DeploymentConfig_To_api_DeploymentConfig(in *DeploymentConfi
return nil
}
func Convert_v1_DeploymentConfig_To_api_DeploymentConfig(in *DeploymentConfig, out *deploy_api.DeploymentConfig, s conversion.Scope) error {
func Convert_v1_DeploymentConfig_To_api_DeploymentConfig(in *DeploymentConfig, out *api.DeploymentConfig, s conversion.Scope) error {
return autoConvert_v1_DeploymentConfig_To_api_DeploymentConfig(in, out, s)
}
func autoConvert_api_DeploymentConfig_To_v1_DeploymentConfig(in *deploy_api.DeploymentConfig, out *DeploymentConfig, s conversion.Scope) error {
if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
func autoConvert_api_DeploymentConfig_To_v1_DeploymentConfig(in *api.DeploymentConfig, out *DeploymentConfig, s conversion.Scope) error {
if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
return err
}
if err := api_v1.Convert_api_ObjectMeta_To_v1_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil {
@@ -196,20 +200,20 @@ func autoConvert_api_DeploymentConfig_To_v1_DeploymentConfig(in *deploy_api.Depl
return nil
}
func Convert_api_DeploymentConfig_To_v1_DeploymentConfig(in *deploy_api.DeploymentConfig, out *DeploymentConfig, s conversion.Scope) error {
func Convert_api_DeploymentConfig_To_v1_DeploymentConfig(in *api.DeploymentConfig, out *DeploymentConfig, s conversion.Scope) error {
return autoConvert_api_DeploymentConfig_To_v1_DeploymentConfig(in, out, s)
}
func autoConvert_v1_DeploymentConfigList_To_api_DeploymentConfigList(in *DeploymentConfigList, out *deploy_api.DeploymentConfigList, s conversion.Scope) error {
if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
func autoConvert_v1_DeploymentConfigList_To_api_DeploymentConfigList(in *DeploymentConfigList, out *api.DeploymentConfigList, s conversion.Scope) error {
if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
return err
}
if err := api.Convert_unversioned_ListMeta_To_unversioned_ListMeta(&in.ListMeta, &out.ListMeta, s); err != nil {
if err := pkg_api.Convert_unversioned_ListMeta_To_unversioned_ListMeta(&in.ListMeta, &out.ListMeta, s); err != nil {
return err
}
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]deploy_api.DeploymentConfig, len(*in))
*out = make([]api.DeploymentConfig, len(*in))
for i := range *in {
if err := Convert_v1_DeploymentConfig_To_api_DeploymentConfig(&(*in)[i], &(*out)[i], s); err != nil {
return err
@@ -221,15 +225,15 @@ func autoConvert_v1_DeploymentConfigList_To_api_DeploymentConfigList(in *Deploym
return nil
}
func Convert_v1_DeploymentConfigList_To_api_DeploymentConfigList(in *DeploymentConfigList, out *deploy_api.DeploymentConfigList, s conversion.Scope) error {
func Convert_v1_DeploymentConfigList_To_api_DeploymentConfigList(in *DeploymentConfigList, out *api.DeploymentConfigList, s conversion.Scope) error {
return autoConvert_v1_DeploymentConfigList_To_api_DeploymentConfigList(in, out, s)
}
func autoConvert_api_DeploymentConfigList_To_v1_DeploymentConfigList(in *deploy_api.DeploymentConfigList, out *DeploymentConfigList, s conversion.Scope) error {
if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
func autoConvert_api_DeploymentConfigList_To_v1_DeploymentConfigList(in *api.DeploymentConfigList, out *DeploymentConfigList, s conversion.Scope) error {
if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
return err
}
if err := api.Convert_unversioned_ListMeta_To_unversioned_ListMeta(&in.ListMeta, &out.ListMeta, s); err != nil {
if err := pkg_api.Convert_unversioned_ListMeta_To_unversioned_ListMeta(&in.ListMeta, &out.ListMeta, s); err != nil {
return err
}
if in.Items != nil {
@@ -246,12 +250,12 @@ func autoConvert_api_DeploymentConfigList_To_v1_DeploymentConfigList(in *deploy_
return nil
}
func Convert_api_DeploymentConfigList_To_v1_DeploymentConfigList(in *deploy_api.DeploymentConfigList, out *DeploymentConfigList, s conversion.Scope) error {
func Convert_api_DeploymentConfigList_To_v1_DeploymentConfigList(in *api.DeploymentConfigList, out *DeploymentConfigList, s conversion.Scope) error {
return autoConvert_api_DeploymentConfigList_To_v1_DeploymentConfigList(in, out, s)
}
func autoConvert_v1_DeploymentConfigRollback_To_api_DeploymentConfigRollback(in *DeploymentConfigRollback, out *deploy_api.DeploymentConfigRollback, s conversion.Scope) error {
if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
func autoConvert_v1_DeploymentConfigRollback_To_api_DeploymentConfigRollback(in *DeploymentConfigRollback, out *api.DeploymentConfigRollback, s conversion.Scope) error {
if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
return err
}
out.Name = in.Name
@@ -262,12 +266,12 @@ func autoConvert_v1_DeploymentConfigRollback_To_api_DeploymentConfigRollback(in
return nil
}
func Convert_v1_DeploymentConfigRollback_To_api_DeploymentConfigRollback(in *DeploymentConfigRollback, out *deploy_api.DeploymentConfigRollback, s conversion.Scope) error {
func Convert_v1_DeploymentConfigRollback_To_api_DeploymentConfigRollback(in *DeploymentConfigRollback, out *api.DeploymentConfigRollback, s conversion.Scope) error {
return autoConvert_v1_DeploymentConfigRollback_To_api_DeploymentConfigRollback(in, out, s)
}
func autoConvert_api_DeploymentConfigRollback_To_v1_DeploymentConfigRollback(in *deploy_api.DeploymentConfigRollback, out *DeploymentConfigRollback, s conversion.Scope) error {
if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
func autoConvert_api_DeploymentConfigRollback_To_v1_DeploymentConfigRollback(in *api.DeploymentConfigRollback, out *DeploymentConfigRollback, s conversion.Scope) error {
if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
return err
}
out.Name = in.Name
@@ -278,11 +282,11 @@ func autoConvert_api_DeploymentConfigRollback_To_v1_DeploymentConfigRollback(in
return nil
}
func Convert_api_DeploymentConfigRollback_To_v1_DeploymentConfigRollback(in *deploy_api.DeploymentConfigRollback, out *DeploymentConfigRollback, s conversion.Scope) error {
func Convert_api_DeploymentConfigRollback_To_v1_DeploymentConfigRollback(in *api.DeploymentConfigRollback, out *DeploymentConfigRollback, s conversion.Scope) error {
return autoConvert_api_DeploymentConfigRollback_To_v1_DeploymentConfigRollback(in, out, s)
}
func autoConvert_v1_DeploymentConfigRollbackSpec_To_api_DeploymentConfigRollbackSpec(in *DeploymentConfigRollbackSpec, out *deploy_api.DeploymentConfigRollbackSpec, s conversion.Scope) error {
func autoConvert_v1_DeploymentConfigRollbackSpec_To_api_DeploymentConfigRollbackSpec(in *DeploymentConfigRollbackSpec, out *api.DeploymentConfigRollbackSpec, s conversion.Scope) error {
if err := api_v1.Convert_v1_ObjectReference_To_api_ObjectReference(&in.From, &out.From, s); err != nil {
return err
}
@@ -294,11 +298,11 @@ func autoConvert_v1_DeploymentConfigRollbackSpec_To_api_DeploymentConfigRollback
return nil
}
func Convert_v1_DeploymentConfigRollbackSpec_To_api_DeploymentConfigRollbackSpec(in *DeploymentConfigRollbackSpec, out *deploy_api.DeploymentConfigRollbackSpec, s conversion.Scope) error {
func Convert_v1_DeploymentConfigRollbackSpec_To_api_DeploymentConfigRollbackSpec(in *DeploymentConfigRollbackSpec, out *api.DeploymentConfigRollbackSpec, s conversion.Scope) error {
return autoConvert_v1_DeploymentConfigRollbackSpec_To_api_DeploymentConfigRollbackSpec(in, out, s)
}
func autoConvert_api_DeploymentConfigRollbackSpec_To_v1_DeploymentConfigRollbackSpec(in *deploy_api.DeploymentConfigRollbackSpec, out *DeploymentConfigRollbackSpec, s conversion.Scope) error {
func autoConvert_api_DeploymentConfigRollbackSpec_To_v1_DeploymentConfigRollbackSpec(in *api.DeploymentConfigRollbackSpec, out *DeploymentConfigRollbackSpec, s conversion.Scope) error {
if err := api_v1.Convert_api_ObjectReference_To_v1_ObjectReference(&in.From, &out.From, s); err != nil {
return err
}
@@ -310,11 +314,11 @@ func autoConvert_api_DeploymentConfigRollbackSpec_To_v1_DeploymentConfigRollback
return nil
}
func Convert_api_DeploymentConfigRollbackSpec_To_v1_DeploymentConfigRollbackSpec(in *deploy_api.DeploymentConfigRollbackSpec, out *DeploymentConfigRollbackSpec, s conversion.Scope) error {
func Convert_api_DeploymentConfigRollbackSpec_To_v1_DeploymentConfigRollbackSpec(in *api.DeploymentConfigRollbackSpec, out *DeploymentConfigRollbackSpec, s conversion.Scope) error {
return autoConvert_api_DeploymentConfigRollbackSpec_To_v1_DeploymentConfigRollbackSpec(in, out, s)
}
func autoConvert_v1_DeploymentConfigSpec_To_api_DeploymentConfigSpec(in *DeploymentConfigSpec, out *deploy_api.DeploymentConfigSpec, s conversion.Scope) error {
func autoConvert_v1_DeploymentConfigSpec_To_api_DeploymentConfigSpec(in *DeploymentConfigSpec, out *api.DeploymentConfigSpec, s conversion.Scope) error {
SetDefaults_DeploymentConfigSpec(in)
if err := Convert_v1_DeploymentStrategy_To_api_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil {
return err
@@ -322,7 +326,7 @@ func autoConvert_v1_DeploymentConfigSpec_To_api_DeploymentConfigSpec(in *Deploym
out.MinReadySeconds = in.MinReadySeconds
if in.Triggers != nil {
in, out := &in.Triggers, &out.Triggers
*out = make([]deploy_api.DeploymentTriggerPolicy, len(*in))
*out = make([]api.DeploymentTriggerPolicy, len(*in))
for i := range *in {
if err := Convert_v1_DeploymentTriggerPolicy_To_api_DeploymentTriggerPolicy(&(*in)[i], &(*out)[i], s); err != nil {
return err
@@ -338,7 +342,7 @@ func autoConvert_v1_DeploymentConfigSpec_To_api_DeploymentConfigSpec(in *Deploym
out.Selector = in.Selector
if in.Template != nil {
in, out := &in.Template, &out.Template
*out = new(api.PodTemplateSpec)
*out = new(pkg_api.PodTemplateSpec)
if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(*in, *out, s); err != nil {
return err
}
@@ -348,18 +352,18 @@ func autoConvert_v1_DeploymentConfigSpec_To_api_DeploymentConfigSpec(in *Deploym
return nil
}
func Convert_v1_DeploymentConfigSpec_To_api_DeploymentConfigSpec(in *DeploymentConfigSpec, out *deploy_api.DeploymentConfigSpec, s conversion.Scope) error {
func Convert_v1_DeploymentConfigSpec_To_api_DeploymentConfigSpec(in *DeploymentConfigSpec, out *api.DeploymentConfigSpec, s conversion.Scope) error {
return autoConvert_v1_DeploymentConfigSpec_To_api_DeploymentConfigSpec(in, out, s)
}
func autoConvert_api_DeploymentConfigSpec_To_v1_DeploymentConfigSpec(in *deploy_api.DeploymentConfigSpec, out *DeploymentConfigSpec, s conversion.Scope) error {
func autoConvert_api_DeploymentConfigSpec_To_v1_DeploymentConfigSpec(in *api.DeploymentConfigSpec, out *DeploymentConfigSpec, s conversion.Scope) error {
if err := Convert_api_DeploymentStrategy_To_v1_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil {
return err
}
out.MinReadySeconds = in.MinReadySeconds
if in.Triggers != nil {
in, out := &in.Triggers, &out.Triggers
*out = make([]DeploymentTriggerPolicy, len(*in))
*out = make(DeploymentTriggerPolicies, len(*in))
for i := range *in {
if err := Convert_api_DeploymentTriggerPolicy_To_v1_DeploymentTriggerPolicy(&(*in)[i], &(*out)[i], s); err != nil {
return err
@@ -385,11 +389,11 @@ func autoConvert_api_DeploymentConfigSpec_To_v1_DeploymentConfigSpec(in *deploy_
return nil
}
func Convert_api_DeploymentConfigSpec_To_v1_DeploymentConfigSpec(in *deploy_api.DeploymentConfigSpec, out *DeploymentConfigSpec, s conversion.Scope) error {
func Convert_api_DeploymentConfigSpec_To_v1_DeploymentConfigSpec(in *api.DeploymentConfigSpec, out *DeploymentConfigSpec, s conversion.Scope) error {
return autoConvert_api_DeploymentConfigSpec_To_v1_DeploymentConfigSpec(in, out, s)
}
func autoConvert_v1_DeploymentConfigStatus_To_api_DeploymentConfigStatus(in *DeploymentConfigStatus, out *deploy_api.DeploymentConfigStatus, s conversion.Scope) error {
func autoConvert_v1_DeploymentConfigStatus_To_api_DeploymentConfigStatus(in *DeploymentConfigStatus, out *api.DeploymentConfigStatus, s conversion.Scope) error {
out.LatestVersion = in.LatestVersion
out.ObservedGeneration = in.ObservedGeneration
out.Replicas = in.Replicas
@@ -398,7 +402,7 @@ func autoConvert_v1_DeploymentConfigStatus_To_api_DeploymentConfigStatus(in *Dep
out.UnavailableReplicas = in.UnavailableReplicas
if in.Details != nil {
in, out := &in.Details, &out.Details
*out = new(deploy_api.DeploymentDetails)
*out = new(api.DeploymentDetails)
if err := Convert_v1_DeploymentDetails_To_api_DeploymentDetails(*in, *out, s); err != nil {
return err
}
@@ -408,11 +412,11 @@ func autoConvert_v1_DeploymentConfigStatus_To_api_DeploymentConfigStatus(in *Dep
return nil
}
func Convert_v1_DeploymentConfigStatus_To_api_DeploymentConfigStatus(in *DeploymentConfigStatus, out *deploy_api.DeploymentConfigStatus, s conversion.Scope) error {
func Convert_v1_DeploymentConfigStatus_To_api_DeploymentConfigStatus(in *DeploymentConfigStatus, out *api.DeploymentConfigStatus, s conversion.Scope) error {
return autoConvert_v1_DeploymentConfigStatus_To_api_DeploymentConfigStatus(in, out, s)
}
func autoConvert_api_DeploymentConfigStatus_To_v1_DeploymentConfigStatus(in *deploy_api.DeploymentConfigStatus, out *DeploymentConfigStatus, s conversion.Scope) error {
func autoConvert_api_DeploymentConfigStatus_To_v1_DeploymentConfigStatus(in *api.DeploymentConfigStatus, out *DeploymentConfigStatus, s conversion.Scope) error {
out.LatestVersion = in.LatestVersion
out.ObservedGeneration = in.ObservedGeneration
out.Replicas = in.Replicas
@@ -431,15 +435,15 @@ func autoConvert_api_DeploymentConfigStatus_To_v1_DeploymentConfigStatus(in *dep
return nil
}
func Convert_api_DeploymentConfigStatus_To_v1_DeploymentConfigStatus(in *deploy_api.DeploymentConfigStatus, out *DeploymentConfigStatus, s conversion.Scope) error {
func Convert_api_DeploymentConfigStatus_To_v1_DeploymentConfigStatus(in *api.DeploymentConfigStatus, out *DeploymentConfigStatus, s conversion.Scope) error {
return autoConvert_api_DeploymentConfigStatus_To_v1_DeploymentConfigStatus(in, out, s)
}
func autoConvert_v1_DeploymentDetails_To_api_DeploymentDetails(in *DeploymentDetails, out *deploy_api.DeploymentDetails, s conversion.Scope) error {
func autoConvert_v1_DeploymentDetails_To_api_DeploymentDetails(in *DeploymentDetails, out *api.DeploymentDetails, s conversion.Scope) error {
out.Message = in.Message
if in.Causes != nil {
in, out := &in.Causes, &out.Causes
*out = make([]deploy_api.DeploymentCause, len(*in))
*out = make([]api.DeploymentCause, len(*in))
for i := range *in {
if err := Convert_v1_DeploymentCause_To_api_DeploymentCause(&(*in)[i], &(*out)[i], s); err != nil {
return err
@@ -451,11 +455,11 @@ func autoConvert_v1_DeploymentDetails_To_api_DeploymentDetails(in *DeploymentDet
return nil
}
func Convert_v1_DeploymentDetails_To_api_DeploymentDetails(in *DeploymentDetails, out *deploy_api.DeploymentDetails, s conversion.Scope) error {
func Convert_v1_DeploymentDetails_To_api_DeploymentDetails(in *DeploymentDetails, out *api.DeploymentDetails, s conversion.Scope) error {
return autoConvert_v1_DeploymentDetails_To_api_DeploymentDetails(in, out, s)
}
func autoConvert_api_DeploymentDetails_To_v1_DeploymentDetails(in *deploy_api.DeploymentDetails, out *DeploymentDetails, s conversion.Scope) error {
func autoConvert_api_DeploymentDetails_To_v1_DeploymentDetails(in *api.DeploymentDetails, out *DeploymentDetails, s conversion.Scope) error {
out.Message = in.Message
if in.Causes != nil {
in, out := &in.Causes, &out.Causes
@@ -471,34 +475,34 @@ func autoConvert_api_DeploymentDetails_To_v1_DeploymentDetails(in *deploy_api.De
return nil
}
func Convert_api_DeploymentDetails_To_v1_DeploymentDetails(in *deploy_api.DeploymentDetails, out *DeploymentDetails, s conversion.Scope) error {
func Convert_api_DeploymentDetails_To_v1_DeploymentDetails(in *api.DeploymentDetails, out *DeploymentDetails, s conversion.Scope) error {
return autoConvert_api_DeploymentDetails_To_v1_DeploymentDetails(in, out, s)
}
func autoConvert_v1_DeploymentLog_To_api_DeploymentLog(in *DeploymentLog, out *deploy_api.DeploymentLog, s conversion.Scope) error {
if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
func autoConvert_v1_DeploymentLog_To_api_DeploymentLog(in *DeploymentLog, out *api.DeploymentLog, s conversion.Scope) error {
if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
return err
}
return nil
}
func Convert_v1_DeploymentLog_To_api_DeploymentLog(in *DeploymentLog, out *deploy_api.DeploymentLog, s conversion.Scope) error {
func Convert_v1_DeploymentLog_To_api_DeploymentLog(in *DeploymentLog, out *api.DeploymentLog, s conversion.Scope) error {
return autoConvert_v1_DeploymentLog_To_api_DeploymentLog(in, out, s)
}
func autoConvert_api_DeploymentLog_To_v1_DeploymentLog(in *deploy_api.DeploymentLog, out *DeploymentLog, s conversion.Scope) error {
if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
func autoConvert_api_DeploymentLog_To_v1_DeploymentLog(in *api.DeploymentLog, out *DeploymentLog, s conversion.Scope) error {
if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
return err
}
return nil
}
func Convert_api_DeploymentLog_To_v1_DeploymentLog(in *deploy_api.DeploymentLog, out *DeploymentLog, s conversion.Scope) error {
func Convert_api_DeploymentLog_To_v1_DeploymentLog(in *api.DeploymentLog, out *DeploymentLog, s conversion.Scope) error {
return autoConvert_api_DeploymentLog_To_v1_DeploymentLog(in, out, s)
}
func autoConvert_v1_DeploymentLogOptions_To_api_DeploymentLogOptions(in *DeploymentLogOptions, out *deploy_api.DeploymentLogOptions, s conversion.Scope) error {
if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
func autoConvert_v1_DeploymentLogOptions_To_api_DeploymentLogOptions(in *DeploymentLogOptions, out *api.DeploymentLogOptions, s conversion.Scope) error {
if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
return err
}
out.Container = in.Container
@@ -514,12 +518,12 @@ func autoConvert_v1_DeploymentLogOptions_To_api_DeploymentLogOptions(in *Deploym
return nil
}
func Convert_v1_DeploymentLogOptions_To_api_DeploymentLogOptions(in *DeploymentLogOptions, out *deploy_api.DeploymentLogOptions, s conversion.Scope) error {
func Convert_v1_DeploymentLogOptions_To_api_DeploymentLogOptions(in *DeploymentLogOptions, out *api.DeploymentLogOptions, s conversion.Scope) error {
return autoConvert_v1_DeploymentLogOptions_To_api_DeploymentLogOptions(in, out, s)
}
func autoConvert_api_DeploymentLogOptions_To_v1_DeploymentLogOptions(in *deploy_api.DeploymentLogOptions, out *DeploymentLogOptions, s conversion.Scope) error {
if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
func autoConvert_api_DeploymentLogOptions_To_v1_DeploymentLogOptions(in *api.DeploymentLogOptions, out *DeploymentLogOptions, s conversion.Scope) error {
if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil {
return err
}
out.Container = in.Container
@@ -535,16 +539,16 @@ func autoConvert_api_DeploymentLogOptions_To_v1_DeploymentLogOptions(in *deploy_
return nil
}
func Convert_api_DeploymentLogOptions_To_v1_DeploymentLogOptions(in *deploy_api.DeploymentLogOptions, out *DeploymentLogOptions, s conversion.Scope) error {
func Convert_api_DeploymentLogOptions_To_v1_DeploymentLogOptions(in *api.DeploymentLogOptions, out *DeploymentLogOptions, s conversion.Scope) error {
return autoConvert_api_DeploymentLogOptions_To_v1_DeploymentLogOptions(in, out, s)
}
func autoConvert_v1_DeploymentStrategy_To_api_DeploymentStrategy(in *DeploymentStrategy, out *deploy_api.DeploymentStrategy, s conversion.Scope) error {
func autoConvert_v1_DeploymentStrategy_To_api_DeploymentStrategy(in *DeploymentStrategy, out *api.DeploymentStrategy, s conversion.Scope) error {
SetDefaults_DeploymentStrategy(in)
out.Type = deploy_api.DeploymentStrategyType(in.Type)
out.Type = api.DeploymentStrategyType(in.Type)
if in.CustomParams != nil {
in, out := &in.CustomParams, &out.CustomParams
*out = new(deploy_api.CustomDeploymentStrategyParams)
*out = new(api.CustomDeploymentStrategyParams)
if err := Convert_v1_CustomDeploymentStrategyParams_To_api_CustomDeploymentStrategyParams(*in, *out, s); err != nil {
return err
}
@@ -553,7 +557,7 @@ func autoConvert_v1_DeploymentStrategy_To_api_DeploymentStrategy(in *DeploymentS
}
if in.RecreateParams != nil {
in, out := &in.RecreateParams, &out.RecreateParams
*out = new(deploy_api.RecreateDeploymentStrategyParams)
*out = new(api.RecreateDeploymentStrategyParams)
if err := Convert_v1_RecreateDeploymentStrategyParams_To_api_RecreateDeploymentStrategyParams(*in, *out, s); err != nil {
return err
}
@@ -562,7 +566,7 @@ func autoConvert_v1_DeploymentStrategy_To_api_DeploymentStrategy(in *DeploymentS
}
if in.RollingParams != nil {
in, out := &in.RollingParams, &out.RollingParams
*out = new(deploy_api.RollingDeploymentStrategyParams)
*out = new(api.RollingDeploymentStrategyParams)
if err := Convert_v1_RollingDeploymentStrategyParams_To_api_RollingDeploymentStrategyParams(*in, *out, s); err != nil {
return err
}
@@ -577,11 +581,11 @@ func autoConvert_v1_DeploymentStrategy_To_api_DeploymentStrategy(in *DeploymentS
return nil
}
func Convert_v1_DeploymentStrategy_To_api_DeploymentStrategy(in *DeploymentStrategy, out *deploy_api.DeploymentStrategy, s conversion.Scope) error {
func Convert_v1_DeploymentStrategy_To_api_DeploymentStrategy(in *DeploymentStrategy, out *api.DeploymentStrategy, s conversion.Scope) error {
return autoConvert_v1_DeploymentStrategy_To_api_DeploymentStrategy(in, out, s)
}
func autoConvert_api_DeploymentStrategy_To_v1_DeploymentStrategy(in *deploy_api.DeploymentStrategy, out *DeploymentStrategy, s conversion.Scope) error {
func autoConvert_api_DeploymentStrategy_To_v1_DeploymentStrategy(in *api.DeploymentStrategy, out *DeploymentStrategy, s conversion.Scope) error {
out.Type = DeploymentStrategyType(in.Type)
if in.RecreateParams != nil {
in, out := &in.RecreateParams, &out.RecreateParams
@@ -618,11 +622,11 @@ func autoConvert_api_DeploymentStrategy_To_v1_DeploymentStrategy(in *deploy_api.
return nil
}
func Convert_api_DeploymentStrategy_To_v1_DeploymentStrategy(in *deploy_api.DeploymentStrategy, out *DeploymentStrategy, s conversion.Scope) error {
func Convert_api_DeploymentStrategy_To_v1_DeploymentStrategy(in *api.DeploymentStrategy, out *DeploymentStrategy, s conversion.Scope) error {
return autoConvert_api_DeploymentStrategy_To_v1_DeploymentStrategy(in, out, s)
}
func autoConvert_v1_DeploymentTriggerImageChangeParams_To_api_DeploymentTriggerImageChangeParams(in *DeploymentTriggerImageChangeParams, out *deploy_api.DeploymentTriggerImageChangeParams, s conversion.Scope) error {
func autoConvert_v1_DeploymentTriggerImageChangeParams_To_api_DeploymentTriggerImageChangeParams(in *DeploymentTriggerImageChangeParams, out *api.DeploymentTriggerImageChangeParams, s conversion.Scope) error {
out.Automatic = in.Automatic
out.ContainerNames = in.ContainerNames
if err := api_v1.Convert_v1_ObjectReference_To_api_ObjectReference(&in.From, &out.From, s); err != nil {
@@ -632,7 +636,7 @@ func autoConvert_v1_DeploymentTriggerImageChangeParams_To_api_DeploymentTriggerI
return nil
}
func autoConvert_api_DeploymentTriggerImageChangeParams_To_v1_DeploymentTriggerImageChangeParams(in *deploy_api.DeploymentTriggerImageChangeParams, out *DeploymentTriggerImageChangeParams, s conversion.Scope) error {
func autoConvert_api_DeploymentTriggerImageChangeParams_To_v1_DeploymentTriggerImageChangeParams(in *api.DeploymentTriggerImageChangeParams, out *DeploymentTriggerImageChangeParams, s conversion.Scope) error {
out.Automatic = in.Automatic
out.ContainerNames = in.ContainerNames
if err := api_v1.Convert_api_ObjectReference_To_v1_ObjectReference(&in.From, &out.From, s); err != nil {
@@ -642,11 +646,11 @@ func autoConvert_api_DeploymentTriggerImageChangeParams_To_v1_DeploymentTriggerI
return nil
}
func autoConvert_v1_DeploymentTriggerPolicy_To_api_DeploymentTriggerPolicy(in *DeploymentTriggerPolicy, out *deploy_api.DeploymentTriggerPolicy, s conversion.Scope) error {
out.Type = deploy_api.DeploymentTriggerType(in.Type)
func autoConvert_v1_DeploymentTriggerPolicy_To_api_DeploymentTriggerPolicy(in *DeploymentTriggerPolicy, out *api.DeploymentTriggerPolicy, s conversion.Scope) error {
out.Type = api.DeploymentTriggerType(in.Type)
if in.ImageChangeParams != nil {
in, out := &in.ImageChangeParams, &out.ImageChangeParams
*out = new(deploy_api.DeploymentTriggerImageChangeParams)
*out = new(api.DeploymentTriggerImageChangeParams)
if err := Convert_v1_DeploymentTriggerImageChangeParams_To_api_DeploymentTriggerImageChangeParams(*in, *out, s); err != nil {
return err
}
@@ -656,11 +660,11 @@ func autoConvert_v1_DeploymentTriggerPolicy_To_api_DeploymentTriggerPolicy(in *D
return nil
}
func Convert_v1_DeploymentTriggerPolicy_To_api_DeploymentTriggerPolicy(in *DeploymentTriggerPolicy, out *deploy_api.DeploymentTriggerPolicy, s conversion.Scope) error {
func Convert_v1_DeploymentTriggerPolicy_To_api_DeploymentTriggerPolicy(in *DeploymentTriggerPolicy, out *api.DeploymentTriggerPolicy, s conversion.Scope) error {
return autoConvert_v1_DeploymentTriggerPolicy_To_api_DeploymentTriggerPolicy(in, out, s)
}
func autoConvert_api_DeploymentTriggerPolicy_To_v1_DeploymentTriggerPolicy(in *deploy_api.DeploymentTriggerPolicy, out *DeploymentTriggerPolicy, s conversion.Scope) error {
func autoConvert_api_DeploymentTriggerPolicy_To_v1_DeploymentTriggerPolicy(in *api.DeploymentTriggerPolicy, out *DeploymentTriggerPolicy, s conversion.Scope) error {
out.Type = DeploymentTriggerType(in.Type)
if in.ImageChangeParams != nil {
in, out := &in.ImageChangeParams, &out.ImageChangeParams
@@ -674,15 +678,15 @@ func autoConvert_api_DeploymentTriggerPolicy_To_v1_DeploymentTriggerPolicy(in *d
return nil
}
func Convert_api_DeploymentTriggerPolicy_To_v1_DeploymentTriggerPolicy(in *deploy_api.DeploymentTriggerPolicy, out *DeploymentTriggerPolicy, s conversion.Scope) error {
func Convert_api_DeploymentTriggerPolicy_To_v1_DeploymentTriggerPolicy(in *api.DeploymentTriggerPolicy, out *DeploymentTriggerPolicy, s conversion.Scope) error {
return autoConvert_api_DeploymentTriggerPolicy_To_v1_DeploymentTriggerPolicy(in, out, s)
}
func autoConvert_v1_ExecNewPodHook_To_api_ExecNewPodHook(in *ExecNewPodHook, out *deploy_api.ExecNewPodHook, s conversion.Scope) error {
func autoConvert_v1_ExecNewPodHook_To_api_ExecNewPodHook(in *ExecNewPodHook, out *api.ExecNewPodHook, s conversion.Scope) error {
out.Command = in.Command
if in.Env != nil {
in, out := &in.Env, &out.Env
*out = make([]api.EnvVar, len(*in))
*out = make([]pkg_api.EnvVar, len(*in))
for i := range *in {
if err := api_v1.Convert_v1_EnvVar_To_api_EnvVar(&(*in)[i], &(*out)[i], s); err != nil {
return err
@@ -696,11 +700,11 @@ func autoConvert_v1_ExecNewPodHook_To_api_ExecNewPodHook(in *ExecNewPodHook, out
return nil
}
func Convert_v1_ExecNewPodHook_To_api_ExecNewPodHook(in *ExecNewPodHook, out *deploy_api.ExecNewPodHook, s conversion.Scope) error {
func Convert_v1_ExecNewPodHook_To_api_ExecNewPodHook(in *ExecNewPodHook, out *api.ExecNewPodHook, s conversion.Scope) error {
return autoConvert_v1_ExecNewPodHook_To_api_ExecNewPodHook(in, out, s)
}
func autoConvert_api_ExecNewPodHook_To_v1_ExecNewPodHook(in *deploy_api.ExecNewPodHook, out *ExecNewPodHook, s conversion.Scope) error {
func autoConvert_api_ExecNewPodHook_To_v1_ExecNewPodHook(in *api.ExecNewPodHook, out *ExecNewPodHook, s conversion.Scope) error {
out.Command = in.Command
if in.Env != nil {
in, out := &in.Env, &out.Env
@@ -718,15 +722,15 @@ func autoConvert_api_ExecNewPodHook_To_v1_ExecNewPodHook(in *deploy_api.ExecNewP
return nil
}
func Convert_api_ExecNewPodHook_To_v1_ExecNewPodHook(in *deploy_api.ExecNewPodHook, out *ExecNewPodHook, s conversion.Scope) error {
func Convert_api_ExecNewPodHook_To_v1_ExecNewPodHook(in *api.ExecNewPodHook, out *ExecNewPodHook, s conversion.Scope) error {
return autoConvert_api_ExecNewPodHook_To_v1_ExecNewPodHook(in, out, s)
}
func autoConvert_v1_LifecycleHook_To_api_LifecycleHook(in *LifecycleHook, out *deploy_api.LifecycleHook, s conversion.Scope) error {
out.FailurePolicy = deploy_api.LifecycleHookFailurePolicy(in.FailurePolicy)
func autoConvert_v1_LifecycleHook_To_api_LifecycleHook(in *LifecycleHook, out *api.LifecycleHook, s conversion.Scope) error {
out.FailurePolicy = api.LifecycleHookFailurePolicy(in.FailurePolicy)
if in.ExecNewPod != nil {
in, out := &in.ExecNewPod, &out.ExecNewPod
*out = new(deploy_api.ExecNewPodHook)
*out = new(api.ExecNewPodHook)
if err := Convert_v1_ExecNewPodHook_To_api_ExecNewPodHook(*in, *out, s); err != nil {
return err
}
@@ -735,7 +739,7 @@ func autoConvert_v1_LifecycleHook_To_api_LifecycleHook(in *LifecycleHook, out *d
}
if in.TagImages != nil {
in, out := &in.TagImages, &out.TagImages
*out = make([]deploy_api.TagImageHook, len(*in))
*out = make([]api.TagImageHook, len(*in))
for i := range *in {
if err := Convert_v1_TagImageHook_To_api_TagImageHook(&(*in)[i], &(*out)[i], s); err != nil {
return err
@@ -747,11 +751,11 @@ func autoConvert_v1_LifecycleHook_To_api_LifecycleHook(in *LifecycleHook, out *d
return nil
}
func Convert_v1_LifecycleHook_To_api_LifecycleHook(in *LifecycleHook, out *deploy_api.LifecycleHook, s conversion.Scope) error {
func Convert_v1_LifecycleHook_To_api_LifecycleHook(in *LifecycleHook, out *api.LifecycleHook, s conversion.Scope) error {
return autoConvert_v1_LifecycleHook_To_api_LifecycleHook(in, out, s)
}
func autoConvert_api_LifecycleHook_To_v1_LifecycleHook(in *deploy_api.LifecycleHook, out *LifecycleHook, s conversion.Scope) error {
func autoConvert_api_LifecycleHook_To_v1_LifecycleHook(in *api.LifecycleHook, out *LifecycleHook, s conversion.Scope) error {
out.FailurePolicy = LifecycleHookFailurePolicy(in.FailurePolicy)
if in.ExecNewPod != nil {
in, out := &in.ExecNewPod, &out.ExecNewPod
@@ -776,16 +780,16 @@ func autoConvert_api_LifecycleHook_To_v1_LifecycleHook(in *deploy_api.LifecycleH
return nil
}
func Convert_api_LifecycleHook_To_v1_LifecycleHook(in *deploy_api.LifecycleHook, out *LifecycleHook, s conversion.Scope) error {
func Convert_api_LifecycleHook_To_v1_LifecycleHook(in *api.LifecycleHook, out *LifecycleHook, s conversion.Scope) error {
return autoConvert_api_LifecycleHook_To_v1_LifecycleHook(in, out, s)
}
func autoConvert_v1_RecreateDeploymentStrategyParams_To_api_RecreateDeploymentStrategyParams(in *RecreateDeploymentStrategyParams, out *deploy_api.RecreateDeploymentStrategyParams, s conversion.Scope) error {
func autoConvert_v1_RecreateDeploymentStrategyParams_To_api_RecreateDeploymentStrategyParams(in *RecreateDeploymentStrategyParams, out *api.RecreateDeploymentStrategyParams, s conversion.Scope) error {
SetDefaults_RecreateDeploymentStrategyParams(in)
out.TimeoutSeconds = in.TimeoutSeconds
if in.Pre != nil {
in, out := &in.Pre, &out.Pre
*out = new(deploy_api.LifecycleHook)
*out = new(api.LifecycleHook)
if err := Convert_v1_LifecycleHook_To_api_LifecycleHook(*in, *out, s); err != nil {
return err
}
@@ -794,7 +798,7 @@ func autoConvert_v1_RecreateDeploymentStrategyParams_To_api_RecreateDeploymentSt
}
if in.Mid != nil {
in, out := &in.Mid, &out.Mid
*out = new(deploy_api.LifecycleHook)
*out = new(api.LifecycleHook)
if err := Convert_v1_LifecycleHook_To_api_LifecycleHook(*in, *out, s); err != nil {
return err
}
@@ -803,7 +807,7 @@ func autoConvert_v1_RecreateDeploymentStrategyParams_To_api_RecreateDeploymentSt
}
if in.Post != nil {
in, out := &in.Post, &out.Post
*out = new(deploy_api.LifecycleHook)
*out = new(api.LifecycleHook)
if err := Convert_v1_LifecycleHook_To_api_LifecycleHook(*in, *out, s); err != nil {
return err
}
@@ -813,11 +817,11 @@ func autoConvert_v1_RecreateDeploymentStrategyParams_To_api_RecreateDeploymentSt
return nil
}
func Convert_v1_RecreateDeploymentStrategyParams_To_api_RecreateDeploymentStrategyParams(in *RecreateDeploymentStrategyParams, out *deploy_api.RecreateDeploymentStrategyParams, s conversion.Scope) error {
func Convert_v1_RecreateDeploymentStrategyParams_To_api_RecreateDeploymentStrategyParams(in *RecreateDeploymentStrategyParams, out *api.RecreateDeploymentStrategyParams, s conversion.Scope) error {
return autoConvert_v1_RecreateDeploymentStrategyParams_To_api_RecreateDeploymentStrategyParams(in, out, s)
}
func autoConvert_api_RecreateDeploymentStrategyParams_To_v1_RecreateDeploymentStrategyParams(in *deploy_api.RecreateDeploymentStrategyParams, out *RecreateDeploymentStrategyParams, s conversion.Scope) error {
func autoConvert_api_RecreateDeploymentStrategyParams_To_v1_RecreateDeploymentStrategyParams(in *api.RecreateDeploymentStrategyParams, out *RecreateDeploymentStrategyParams, s conversion.Scope) error {
out.TimeoutSeconds = in.TimeoutSeconds
if in.Pre != nil {
in, out := &in.Pre, &out.Pre
@@ -849,11 +853,11 @@ func autoConvert_api_RecreateDeploymentStrategyParams_To_v1_RecreateDeploymentSt
return nil
}
func Convert_api_RecreateDeploymentStrategyParams_To_v1_RecreateDeploymentStrategyParams(in *deploy_api.RecreateDeploymentStrategyParams, out *RecreateDeploymentStrategyParams, s conversion.Scope) error {
func Convert_api_RecreateDeploymentStrategyParams_To_v1_RecreateDeploymentStrategyParams(in *api.RecreateDeploymentStrategyParams, out *RecreateDeploymentStrategyParams, s conversion.Scope) error {
return autoConvert_api_RecreateDeploymentStrategyParams_To_v1_RecreateDeploymentStrategyParams(in, out, s)
}
func autoConvert_v1_TagImageHook_To_api_TagImageHook(in *TagImageHook, out *deploy_api.TagImageHook, s conversion.Scope) error {
func autoConvert_v1_TagImageHook_To_api_TagImageHook(in *TagImageHook, out *api.TagImageHook, s conversion.Scope) error {
out.ContainerName = in.ContainerName
if err := api_v1.Convert_v1_ObjectReference_To_api_ObjectReference(&in.To, &out.To, s); err != nil {
return err
@@ -861,11 +865,11 @@ func autoConvert_v1_TagImageHook_To_api_TagImageHook(in *TagImageHook, out *depl
return nil
}
func Convert_v1_TagImageHook_To_api_TagImageHook(in *TagImageHook, out *deploy_api.TagImageHook, s conversion.Scope) error {
func Convert_v1_TagImageHook_To_api_TagImageHook(in *TagImageHook, out *api.TagImageHook, s conversion.Scope) error {
return autoConvert_v1_TagImageHook_To_api_TagImageHook(in, out, s)
}
func autoConvert_api_TagImageHook_To_v1_TagImageHook(in *deploy_api.TagImageHook, out *TagImageHook, s conversion.Scope) error {
func autoConvert_api_TagImageHook_To_v1_TagImageHook(in *api.TagImageHook, out *TagImageHook, s conversion.Scope) error {
out.ContainerName = in.ContainerName
if err := api_v1.Convert_api_ObjectReference_To_v1_ObjectReference(&in.To, &out.To, s); err != nil {
return err
@@ -873,6 +877,6 @@ func autoConvert_api_TagImageHook_To_v1_TagImageHook(in *deploy_api.TagImageHook
return nil
}
func Convert_api_TagImageHook_To_v1_TagImageHook(in *deploy_api.TagImageHook, out *TagImageHook, s conversion.Scope) error {
func Convert_api_TagImageHook_To_v1_TagImageHook(in *api.TagImageHook, out *TagImageHook, s conversion.Scope) error {
return autoConvert_api_TagImageHook_To_v1_TagImageHook(in, out, s)
}
@@ -0,0 +1,596 @@
// +build !ignore_autogenerated_openshift
// This file was autogenerated by deepcopy-gen. Do not edit it manually!
package v1
import (
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
api_v1 "k8s.io/kubernetes/pkg/api/v1"
conversion "k8s.io/kubernetes/pkg/conversion"
runtime "k8s.io/kubernetes/pkg/runtime"
intstr "k8s.io/kubernetes/pkg/util/intstr"
reflect "reflect"
)
func init() {
SchemeBuilder.Register(RegisterDeepCopies)
}
// RegisterDeepCopies adds deep-copy functions to the given scheme. Public
// to allow building arbitrary schemes.
func RegisterDeepCopies(scheme *runtime.Scheme) error {
return scheme.AddGeneratedDeepCopyFuncs(
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_CustomDeploymentStrategyParams, InType: reflect.TypeOf(&CustomDeploymentStrategyParams{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentCause, InType: reflect.TypeOf(&DeploymentCause{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentCauseImageTrigger, InType: reflect.TypeOf(&DeploymentCauseImageTrigger{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentConfig, InType: reflect.TypeOf(&DeploymentConfig{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentConfigList, InType: reflect.TypeOf(&DeploymentConfigList{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentConfigRollback, InType: reflect.TypeOf(&DeploymentConfigRollback{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentConfigRollbackSpec, InType: reflect.TypeOf(&DeploymentConfigRollbackSpec{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentConfigSpec, InType: reflect.TypeOf(&DeploymentConfigSpec{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentConfigStatus, InType: reflect.TypeOf(&DeploymentConfigStatus{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentDetails, InType: reflect.TypeOf(&DeploymentDetails{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentLog, InType: reflect.TypeOf(&DeploymentLog{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentLogOptions, InType: reflect.TypeOf(&DeploymentLogOptions{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentStrategy, InType: reflect.TypeOf(&DeploymentStrategy{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentTriggerImageChangeParams, InType: reflect.TypeOf(&DeploymentTriggerImageChangeParams{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_DeploymentTriggerPolicy, InType: reflect.TypeOf(&DeploymentTriggerPolicy{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_ExecNewPodHook, InType: reflect.TypeOf(&ExecNewPodHook{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_LifecycleHook, InType: reflect.TypeOf(&LifecycleHook{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_RecreateDeploymentStrategyParams, InType: reflect.TypeOf(&RecreateDeploymentStrategyParams{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_RollingDeploymentStrategyParams, InType: reflect.TypeOf(&RollingDeploymentStrategyParams{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_v1_TagImageHook, InType: reflect.TypeOf(&TagImageHook{})},
)
}
func DeepCopy_v1_CustomDeploymentStrategyParams(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*CustomDeploymentStrategyParams)
out := out.(*CustomDeploymentStrategyParams)
out.Image = in.Image
if in.Environment != nil {
in, out := &in.Environment, &out.Environment
*out = make([]api_v1.EnvVar, len(*in))
for i := range *in {
if err := api_v1.DeepCopy_v1_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_v1_DeploymentCause(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentCause)
out := out.(*DeploymentCause)
out.Type = in.Type
if in.ImageTrigger != nil {
in, out := &in.ImageTrigger, &out.ImageTrigger
*out = new(DeploymentCauseImageTrigger)
**out = **in
} else {
out.ImageTrigger = nil
}
return nil
}
}
func DeepCopy_v1_DeploymentCauseImageTrigger(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentCauseImageTrigger)
out := out.(*DeploymentCauseImageTrigger)
out.From = in.From
return nil
}
}
func DeepCopy_v1_DeploymentConfig(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfig)
out := out.(*DeploymentConfig)
out.TypeMeta = in.TypeMeta
if err := api_v1.DeepCopy_v1_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, c); err != nil {
return err
}
if err := DeepCopy_v1_DeploymentConfigSpec(&in.Spec, &out.Spec, c); err != nil {
return err
}
if err := DeepCopy_v1_DeploymentConfigStatus(&in.Status, &out.Status, c); err != nil {
return err
}
return nil
}
}
func DeepCopy_v1_DeploymentConfigList(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfigList)
out := out.(*DeploymentConfigList)
out.TypeMeta = in.TypeMeta
out.ListMeta = in.ListMeta
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]DeploymentConfig, len(*in))
for i := range *in {
if err := DeepCopy_v1_DeploymentConfig(&(*in)[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Items = nil
}
return nil
}
}
func DeepCopy_v1_DeploymentConfigRollback(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfigRollback)
out := out.(*DeploymentConfigRollback)
out.TypeMeta = in.TypeMeta
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
}
out.Spec = in.Spec
return nil
}
}
func DeepCopy_v1_DeploymentConfigRollbackSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfigRollbackSpec)
out := out.(*DeploymentConfigRollbackSpec)
out.From = in.From
out.Revision = in.Revision
out.IncludeTriggers = in.IncludeTriggers
out.IncludeTemplate = in.IncludeTemplate
out.IncludeReplicationMeta = in.IncludeReplicationMeta
out.IncludeStrategy = in.IncludeStrategy
return nil
}
}
func DeepCopy_v1_DeploymentConfigSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfigSpec)
out := out.(*DeploymentConfigSpec)
if err := DeepCopy_v1_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(DeploymentTriggerPolicies, len(*in))
for i := range *in {
if err := DeepCopy_v1_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_v1.PodTemplateSpec)
if err := api_v1.DeepCopy_v1_PodTemplateSpec(*in, *out, c); err != nil {
return err
}
} else {
out.Template = nil
}
return nil
}
}
func DeepCopy_v1_DeploymentConfigStatus(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfigStatus)
out := out.(*DeploymentConfigStatus)
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_v1_DeploymentDetails(*in, *out, c); err != nil {
return err
}
} else {
out.Details = nil
}
return nil
}
}
func DeepCopy_v1_DeploymentDetails(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentDetails)
out := out.(*DeploymentDetails)
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_v1_DeploymentCause(&(*in)[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.Causes = nil
}
return nil
}
}
func DeepCopy_v1_DeploymentLog(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentLog)
out := out.(*DeploymentLog)
out.TypeMeta = in.TypeMeta
return nil
}
}
func DeepCopy_v1_DeploymentLogOptions(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentLogOptions)
out := out.(*DeploymentLogOptions)
out.TypeMeta = in.TypeMeta
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)
**out = (*in).DeepCopy()
} 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_v1_DeploymentStrategy(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentStrategy)
out := out.(*DeploymentStrategy)
out.Type = in.Type
if in.CustomParams != nil {
in, out := &in.CustomParams, &out.CustomParams
*out = new(CustomDeploymentStrategyParams)
if err := DeepCopy_v1_CustomDeploymentStrategyParams(*in, *out, c); err != nil {
return err
}
} else {
out.CustomParams = nil
}
if in.RecreateParams != nil {
in, out := &in.RecreateParams, &out.RecreateParams
*out = new(RecreateDeploymentStrategyParams)
if err := DeepCopy_v1_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_v1_RollingDeploymentStrategyParams(*in, *out, c); err != nil {
return err
}
} else {
out.RollingParams = nil
}
if err := api_v1.DeepCopy_v1_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_v1_DeploymentTriggerImageChangeParams(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentTriggerImageChangeParams)
out := out.(*DeploymentTriggerImageChangeParams)
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
}
out.From = in.From
out.LastTriggeredImage = in.LastTriggeredImage
return nil
}
}
func DeepCopy_v1_DeploymentTriggerPolicy(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentTriggerPolicy)
out := out.(*DeploymentTriggerPolicy)
out.Type = in.Type
if in.ImageChangeParams != nil {
in, out := &in.ImageChangeParams, &out.ImageChangeParams
*out = new(DeploymentTriggerImageChangeParams)
if err := DeepCopy_v1_DeploymentTriggerImageChangeParams(*in, *out, c); err != nil {
return err
}
} else {
out.ImageChangeParams = nil
}
return nil
}
}
func DeepCopy_v1_ExecNewPodHook(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*ExecNewPodHook)
out := out.(*ExecNewPodHook)
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_v1.EnvVar, len(*in))
for i := range *in {
if err := api_v1.DeepCopy_v1_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_v1_LifecycleHook(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*LifecycleHook)
out := out.(*LifecycleHook)
out.FailurePolicy = in.FailurePolicy
if in.ExecNewPod != nil {
in, out := &in.ExecNewPod, &out.ExecNewPod
*out = new(ExecNewPodHook)
if err := DeepCopy_v1_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 {
(*out)[i] = (*in)[i]
}
} else {
out.TagImages = nil
}
return nil
}
}
func DeepCopy_v1_RecreateDeploymentStrategyParams(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*RecreateDeploymentStrategyParams)
out := out.(*RecreateDeploymentStrategyParams)
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_v1_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_v1_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_v1_LifecycleHook(*in, *out, c); err != nil {
return err
}
} else {
out.Post = nil
}
return nil
}
}
func DeepCopy_v1_RollingDeploymentStrategyParams(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*RollingDeploymentStrategyParams)
out := out.(*RollingDeploymentStrategyParams)
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 in.MaxUnavailable != nil {
in, out := &in.MaxUnavailable, &out.MaxUnavailable
*out = new(intstr.IntOrString)
**out = **in
} else {
out.MaxUnavailable = nil
}
if in.MaxSurge != nil {
in, out := &in.MaxSurge, &out.MaxSurge
*out = new(intstr.IntOrString)
**out = **in
} else {
out.MaxSurge = nil
}
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_v1_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_v1_LifecycleHook(*in, *out, c); err != nil {
return err
}
} else {
out.Post = nil
}
return nil
}
}
func DeepCopy_v1_TagImageHook(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*TagImageHook)
out := out.(*TagImageHook)
out.ContainerName = in.ContainerName
out.To = in.To
return nil
}
}
@@ -0,0 +1,617 @@
// +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"
pkg_api "k8s.io/kubernetes/pkg/api"
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
conversion "k8s.io/kubernetes/pkg/conversion"
runtime "k8s.io/kubernetes/pkg/runtime"
reflect "reflect"
)
func init() {
SchemeBuilder.Register(RegisterDeepCopies)
}
// RegisterDeepCopies adds deep-copy functions to the given scheme. Public
// to allow building arbitrary schemes.
func RegisterDeepCopies(scheme *runtime.Scheme) error {
return scheme.AddGeneratedDeepCopyFuncs(
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_CustomDeploymentStrategyParams, InType: reflect.TypeOf(&CustomDeploymentStrategyParams{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentCause, InType: reflect.TypeOf(&DeploymentCause{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentCauseImageTrigger, InType: reflect.TypeOf(&DeploymentCauseImageTrigger{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentConfig, InType: reflect.TypeOf(&DeploymentConfig{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentConfigList, InType: reflect.TypeOf(&DeploymentConfigList{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentConfigRollback, InType: reflect.TypeOf(&DeploymentConfigRollback{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentConfigRollbackSpec, InType: reflect.TypeOf(&DeploymentConfigRollbackSpec{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentConfigSpec, InType: reflect.TypeOf(&DeploymentConfigSpec{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentConfigStatus, InType: reflect.TypeOf(&DeploymentConfigStatus{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentDetails, InType: reflect.TypeOf(&DeploymentDetails{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentLog, InType: reflect.TypeOf(&DeploymentLog{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentLogOptions, InType: reflect.TypeOf(&DeploymentLogOptions{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentStrategy, InType: reflect.TypeOf(&DeploymentStrategy{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentTriggerImageChangeParams, InType: reflect.TypeOf(&DeploymentTriggerImageChangeParams{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_DeploymentTriggerPolicy, InType: reflect.TypeOf(&DeploymentTriggerPolicy{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_ExecNewPodHook, InType: reflect.TypeOf(&ExecNewPodHook{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_LifecycleHook, InType: reflect.TypeOf(&LifecycleHook{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_RecreateDeploymentStrategyParams, InType: reflect.TypeOf(&RecreateDeploymentStrategyParams{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_RollingDeploymentStrategyParams, InType: reflect.TypeOf(&RollingDeploymentStrategyParams{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_TagImageHook, InType: reflect.TypeOf(&TagImageHook{})},
conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_TemplateImage, InType: reflect.TypeOf(&TemplateImage{})},
)
}
func DeepCopy_api_CustomDeploymentStrategyParams(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*CustomDeploymentStrategyParams)
out := out.(*CustomDeploymentStrategyParams)
out.Image = in.Image
if in.Environment != nil {
in, out := &in.Environment, &out.Environment
*out = make([]pkg_api.EnvVar, len(*in))
for i := range *in {
if err := pkg_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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentCause)
out := out.(*DeploymentCause)
out.Type = in.Type
if in.ImageTrigger != nil {
in, out := &in.ImageTrigger, &out.ImageTrigger
*out = new(DeploymentCauseImageTrigger)
**out = **in
} else {
out.ImageTrigger = nil
}
return nil
}
}
func DeepCopy_api_DeploymentCauseImageTrigger(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentCauseImageTrigger)
out := out.(*DeploymentCauseImageTrigger)
out.From = in.From
return nil
}
}
func DeepCopy_api_DeploymentConfig(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfig)
out := out.(*DeploymentConfig)
out.TypeMeta = in.TypeMeta
if err := pkg_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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfigList)
out := out.(*DeploymentConfigList)
out.TypeMeta = in.TypeMeta
out.ListMeta = in.ListMeta
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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfigRollback)
out := out.(*DeploymentConfigRollback)
out.TypeMeta = in.TypeMeta
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
}
out.Spec = in.Spec
return nil
}
}
func DeepCopy_api_DeploymentConfigRollbackSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfigRollbackSpec)
out := out.(*DeploymentConfigRollbackSpec)
out.From = in.From
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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfigSpec)
out := out.(*DeploymentConfigSpec)
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(pkg_api.PodTemplateSpec)
if err := pkg_api.DeepCopy_api_PodTemplateSpec(*in, *out, c); err != nil {
return err
}
} else {
out.Template = nil
}
return nil
}
}
func DeepCopy_api_DeploymentConfigStatus(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentConfigStatus)
out := out.(*DeploymentConfigStatus)
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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentDetails)
out := out.(*DeploymentDetails)
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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentLog)
out := out.(*DeploymentLog)
out.TypeMeta = in.TypeMeta
return nil
}
}
func DeepCopy_api_DeploymentLogOptions(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentLogOptions)
out := out.(*DeploymentLogOptions)
out.TypeMeta = in.TypeMeta
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)
**out = (*in).DeepCopy()
} 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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentStrategy)
out := out.(*DeploymentStrategy)
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 := pkg_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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentTriggerImageChangeParams)
out := out.(*DeploymentTriggerImageChangeParams)
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
}
out.From = in.From
out.LastTriggeredImage = in.LastTriggeredImage
return nil
}
}
func DeepCopy_api_DeploymentTriggerPolicy(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*DeploymentTriggerPolicy)
out := out.(*DeploymentTriggerPolicy)
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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*ExecNewPodHook)
out := out.(*ExecNewPodHook)
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([]pkg_api.EnvVar, len(*in))
for i := range *in {
if err := pkg_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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*LifecycleHook)
out := out.(*LifecycleHook)
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 {
(*out)[i] = (*in)[i]
}
} else {
out.TagImages = nil
}
return nil
}
}
func DeepCopy_api_RecreateDeploymentStrategyParams(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*RecreateDeploymentStrategyParams)
out := out.(*RecreateDeploymentStrategyParams)
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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*RollingDeploymentStrategyParams)
out := out.(*RollingDeploymentStrategyParams)
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
}
out.MaxUnavailable = in.MaxUnavailable
out.MaxSurge = in.MaxSurge
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 interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*TagImageHook)
out := out.(*TagImageHook)
out.ContainerName = in.ContainerName
out.To = in.To
return nil
}
}
func DeepCopy_api_TemplateImage(in interface{}, out interface{}, c *conversion.Cloner) error {
{
in := in.(*TemplateImage)
out := out.(*TemplateImage)
out.Image = in.Image
if in.Ref != nil {
in, out := &in.Ref, &out.Ref
*out = new(image_api.DockerImageReference)
**out = **in
} else {
out.Ref = nil
}
if in.From != nil {
in, out := &in.From, &out.From
*out = new(pkg_api.ObjectReference)
**out = **in
} else {
out.From = nil
}
if in.Container != nil {
in, out := &in.Container, &out.Container
*out = new(pkg_api.Container)
if err := pkg_api.DeepCopy_api_Container(*in, *out, c); err != nil {
return err
}
} else {
out.Container = nil
}
return nil
}
}
+136
View File
@@ -0,0 +1,136 @@
package cmd
import (
"time"
"github.com/golang/glog"
kapi "k8s.io/kubernetes/pkg/api"
kerrors "k8s.io/kubernetes/pkg/api/errors"
kclient "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/kubectl"
kutil "k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/wait"
"github.com/openshift/origin/pkg/client"
deployapi "github.com/openshift/origin/pkg/deploy/api"
"github.com/openshift/origin/pkg/deploy/util"
)
// NewDeploymentConfigReaper returns a new reaper for deploymentConfigs
func NewDeploymentConfigReaper(oc client.Interface, kc kclient.Interface) kubectl.Reaper {
return &DeploymentConfigReaper{oc: oc, kc: kc, pollInterval: kubectl.Interval, timeout: kubectl.Timeout}
}
// DeploymentConfigReaper implements the Reaper interface for deploymentConfigs
type DeploymentConfigReaper struct {
oc client.Interface
kc kclient.Interface
pollInterval, timeout time.Duration
}
// pause marks the deployment configuration as paused to avoid triggering new
// deployments.
func (reaper *DeploymentConfigReaper) pause(namespace, name string) (*deployapi.DeploymentConfig, error) {
return client.UpdateConfigWithRetries(reaper.oc, namespace, name, func(d *deployapi.DeploymentConfig) {
d.Spec.RevisionHistoryLimit = kutil.Int32Ptr(0)
d.Spec.Replicas = 0
d.Spec.Paused = true
})
}
// Stop scales a replication controller via its deployment configuration down to
// zero replicas, waits for all of them to get deleted and then deletes both the
// replication controller and its deployment configuration.
func (reaper *DeploymentConfigReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *kapi.DeleteOptions) error {
// Pause the deployment configuration to prevent the new deployments from
// being triggered.
config, err := reaper.pause(namespace, name)
configNotFound := kerrors.IsNotFound(err)
if err != nil && !configNotFound {
return err
}
var (
isPaused bool
legacy bool
)
// Determine if the deployment config controller noticed the pause.
if !configNotFound {
if err := wait.Poll(1*time.Second, 1*time.Minute, func() (bool, error) {
dc, err := reaper.oc.DeploymentConfigs(namespace).Get(name)
if err != nil {
return false, err
}
isPaused = dc.Spec.Paused
return dc.Status.ObservedGeneration >= config.Generation, nil
}); err != nil {
return err
}
// If we failed to pause the deployment config, it means we are talking to
// old API that does not support pausing. In that case, we delete the
// deployment config to stay backward compatible.
if !isPaused {
if err := reaper.oc.DeploymentConfigs(namespace).Delete(name); err != nil {
return err
}
// Setting this to true avoid deleting the config at the end.
legacy = true
}
}
// Clean up deployments related to the config. Even if the deployment
// configuration has been deleted, we want to sweep the existing replication
// controllers and clean them up.
options := kapi.ListOptions{LabelSelector: util.ConfigSelector(name)}
rcList, err := reaper.kc.ReplicationControllers(namespace).List(options)
if err != nil {
return err
}
rcReaper, err := kubectl.ReaperFor(kapi.Kind("ReplicationController"), reaper.kc)
if err != nil {
return err
}
// If there is neither a config nor any deployments, nor any deployer pods, we can return NotFound.
deployments := rcList.Items
if configNotFound && len(deployments) == 0 {
return kerrors.NewNotFound(kapi.Resource("deploymentconfig"), name)
}
for _, rc := range deployments {
if err = rcReaper.Stop(rc.Namespace, rc.Name, timeout, gracePeriod); err != nil {
// Better not error out here...
glog.Infof("Cannot delete ReplicationController %s/%s for deployment config %s/%s: %v", rc.Namespace, rc.Name, namespace, name, err)
}
// Only remove deployer pods when the deployment was failed. For completed
// deployment the pods should be already deleted.
if !util.IsFailedDeployment(&rc) {
continue
}
// Delete all deployer and hook pods
options = kapi.ListOptions{LabelSelector: util.DeployerPodSelector(rc.Name)}
podList, err := reaper.kc.Pods(rc.Namespace).List(options)
if err != nil {
return err
}
for _, pod := range podList.Items {
err := reaper.kc.Pods(pod.Namespace).Delete(pod.Name, gracePeriod)
if err != nil {
// Better not error out here...
glog.Infof("Cannot delete lifecycle Pod %s/%s for deployment config %s/%s: %v", pod.Namespace, pod.Name, namespace, name, err)
}
}
}
// Nothing to delete or we already deleted the deployment config because we
// failed to pause.
if configNotFound || legacy {
return nil
}
return reaper.oc.DeploymentConfigs(namespace).Delete(name)
}
+3
View File
@@ -0,0 +1,3 @@
// Package cmd contains various interface implementations for command-line tools
// associated with deploymentconfigs.
package cmd
+41
View File
@@ -0,0 +1,41 @@
package cmd
import (
"fmt"
"reflect"
kapi "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/runtime"
deployapi "github.com/openshift/origin/pkg/deploy/api"
)
var basic = kubectl.BasicReplicationController{}
type BasicDeploymentConfigController struct{}
func (BasicDeploymentConfigController) ParamNames() []kubectl.GeneratorParam {
return basic.ParamNames()
}
func (BasicDeploymentConfigController) Generate(genericParams map[string]interface{}) (runtime.Object, error) {
obj, err := basic.Generate(genericParams)
if err != nil {
return nil, err
}
switch t := obj.(type) {
case *kapi.ReplicationController:
obj = &deployapi.DeploymentConfig{
ObjectMeta: t.ObjectMeta,
Spec: deployapi.DeploymentConfigSpec{
Selector: t.Spec.Selector,
Replicas: t.Spec.Replicas,
Template: t.Spec.Template,
},
}
default:
return nil, fmt.Errorf("unrecognized object type: %v", reflect.TypeOf(t))
}
return obj, nil
}
+99
View File
@@ -0,0 +1,99 @@
package cmd
import (
"bytes"
"fmt"
"sort"
"text/tabwriter"
kapi "k8s.io/kubernetes/pkg/api"
kclient "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/kubectl"
"github.com/openshift/origin/pkg/client"
deployapi "github.com/openshift/origin/pkg/deploy/api"
deployutil "github.com/openshift/origin/pkg/deploy/util"
)
func NewDeploymentConfigHistoryViewer(oc client.Interface, kc kclient.Interface) kubectl.HistoryViewer {
return &DeploymentConfigHistoryViewer{dn: oc, rn: kc}
}
// DeploymentConfigHistoryViewer is an implementation of the kubectl HistoryViewer interface
// for deployment configs.
type DeploymentConfigHistoryViewer struct {
rn kclient.ReplicationControllersNamespacer
dn client.DeploymentConfigsNamespacer
}
var _ kubectl.HistoryViewer = &DeploymentConfigHistoryViewer{}
// ViewHistory returns a description of all the history it can find for a deployment config.
func (h *DeploymentConfigHistoryViewer) ViewHistory(namespace, name string, revision int64) (string, error) {
opts := kapi.ListOptions{LabelSelector: deployutil.ConfigSelector(name)}
deploymentList, err := h.rn.ReplicationControllers(namespace).List(opts)
if err != nil {
return "", err
}
history := deploymentList.Items
if len(deploymentList.Items) == 0 {
return "No rollout history found.", nil
}
// Print details of a specific revision
if revision > 0 {
var desired *kapi.PodTemplateSpec
// We could use a binary search here but brute-force is always faster to write
for i := range history {
rc := history[i]
if deployutil.DeploymentVersionFor(&rc) == revision {
desired = rc.Spec.Template
break
}
}
if desired == nil {
return "", fmt.Errorf("unable to find the specified revision")
}
buf := bytes.NewBuffer([]byte{})
kubectl.DescribePodTemplate(desired, buf)
return buf.String(), nil
}
sort.Sort(deployutil.ByLatestVersionAsc(history))
return tabbedString(func(out *tabwriter.Writer) error {
fmt.Fprintf(out, "REVISION\tSTATUS\tCAUSE\n")
for i := range history {
rc := history[i]
rev := deployutil.DeploymentVersionFor(&rc)
status := deployutil.DeploymentStatusFor(&rc)
cause := rc.Annotations[deployapi.DeploymentStatusReasonAnnotation]
if len(cause) == 0 {
cause = "<unknown>"
}
fmt.Fprintf(out, "%d\t%s\t%s\n", rev, status, cause)
}
return nil
})
}
// TODO: Re-use from an utility package
func tabbedString(f func(*tabwriter.Writer) error) (string, error) {
out := new(tabwriter.Writer)
buf := &bytes.Buffer{}
out.Init(buf, 0, 8, 1, '\t', 0)
err := f(out)
if err != nil {
return "", err
}
out.Flush()
str := string(buf.String())
return str, nil
}
+56
View File
@@ -0,0 +1,56 @@
package cmd
import (
"fmt"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/runtime"
"github.com/openshift/origin/pkg/client"
deployapi "github.com/openshift/origin/pkg/deploy/api"
)
func NewDeploymentConfigRollbacker(oc client.Interface) kubectl.Rollbacker {
return &DeploymentConfigRollbacker{dn: oc}
}
// DeploymentConfigRollbacker is an implementation of the kubectl Rollbacker interface
// for deployment configs.
type DeploymentConfigRollbacker struct {
dn client.DeploymentConfigsNamespacer
}
var _ kubectl.Rollbacker = &DeploymentConfigRollbacker{}
// Rollback the provided deployment config to a specific revision. If revision is zero, we will
// rollback to the previous deployment.
func (r *DeploymentConfigRollbacker) Rollback(obj runtime.Object, updatedAnnotations map[string]string, toRevision int64) (string, error) {
config, ok := obj.(*deployapi.DeploymentConfig)
if !ok {
return "", fmt.Errorf("passed object is not a deployment config: %#v", obj)
}
if config.Spec.Paused {
return "", fmt.Errorf("cannot rollback a paused config; resume it first with 'rollout resume dc/%s' and try again", config.Name)
}
rollback := &deployapi.DeploymentConfigRollback{
Name: config.Name,
UpdatedAnnotations: updatedAnnotations,
Spec: deployapi.DeploymentConfigRollbackSpec{
Revision: toRevision,
IncludeTemplate: true,
},
}
rolledback, err := r.dn.DeploymentConfigs(config.Namespace).Rollback(rollback)
if err != nil {
return "", err
}
_, err = r.dn.DeploymentConfigs(config.Namespace).Update(rolledback)
if err != nil {
return "", err
}
return "rolled back", nil
}
+98
View File
@@ -0,0 +1,98 @@
package cmd
import (
"time"
kapi "k8s.io/kubernetes/pkg/api"
kclient "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/util/wait"
"github.com/openshift/origin/pkg/client"
"github.com/openshift/origin/pkg/deploy/util"
)
// NewDeploymentConfigScaler returns a new scaler for deploymentConfigs
func NewDeploymentConfigScaler(oc client.Interface, kc kclient.Interface) kubectl.Scaler {
return &DeploymentConfigScaler{rcClient: kc, dcClient: oc, clientInterface: kc}
}
// DeploymentConfigScaler is a wrapper for the kubectl Scaler client
type DeploymentConfigScaler struct {
rcClient kclient.ReplicationControllersNamespacer
dcClient client.DeploymentConfigsNamespacer
clientInterface kclient.Interface
}
// Scale updates the DeploymentConfig with the provided namespace/name, to a
// new size, with optional precondition check (if preconditions is not nil),
// optional retries (if retry is not nil), and then optionally waits for its
// deployment replica count to reach the new value (if wait is not nil).
func (scaler *DeploymentConfigScaler) Scale(namespace, name string, newSize uint, preconditions *kubectl.ScalePrecondition, retry, waitForReplicas *kubectl.RetryParams) error {
if preconditions == nil {
preconditions = &kubectl.ScalePrecondition{Size: -1, ResourceVersion: ""}
}
if retry == nil {
// Make it try only once, immediately
retry = &kubectl.RetryParams{Interval: time.Millisecond, Timeout: time.Millisecond}
}
cond := kubectl.ScaleCondition(scaler, preconditions, namespace, name, newSize, nil)
if err := wait.Poll(retry.Interval, retry.Timeout, cond); err != nil {
return err
}
// TODO: convert to a watch and use resource version from the ScaleCondition - kubernetes/kubernetes#31051
if waitForReplicas != nil {
dc, err := scaler.dcClient.DeploymentConfigs(namespace).Get(name)
if err != nil {
return err
}
rc, err := scaler.rcClient.ReplicationControllers(namespace).Get(util.LatestDeploymentNameForConfig(dc))
if err != nil {
return err
}
return wait.Poll(waitForReplicas.Interval, waitForReplicas.Timeout, controllerHasSpecifiedReplicas(scaler.clientInterface, rc, dc.Spec.Replicas))
}
return nil
}
// ScaleSimple does a simple one-shot attempt at scaling - not useful on its
// own, but a necessary building block for Scale.
func (scaler *DeploymentConfigScaler) ScaleSimple(namespace, name string, preconditions *kubectl.ScalePrecondition, newSize uint) (string, error) {
scale, err := scaler.dcClient.DeploymentConfigs(namespace).GetScale(name)
if err != nil {
return "", err
}
scale.Spec.Replicas = int32(newSize)
updated, err := scaler.dcClient.DeploymentConfigs(namespace).UpdateScale(scale)
if err != nil {
return "", kubectl.ScaleError{FailureType: kubectl.ScaleUpdateFailure, ResourceVersion: "Unknown", ActualError: err}
}
return updated.ResourceVersion, nil
}
// controllerHasSpecifiedReplicas returns a condition that will be true if and
// only if the specified replica count for a controller's ReplicaSelector
// equals the Replicas count.
//
// This is a slightly modified version of
// unversioned.ControllerHasDesiredReplicas. This is necessary because when
// scaling an RC via a DC, the RC spec replica count is not immediately
// updated to match the owning DC.
func controllerHasSpecifiedReplicas(c kclient.Interface, controller *kapi.ReplicationController, specifiedReplicas int32) wait.ConditionFunc {
// If we're given a controller where the status lags the spec, it either means that the controller is stale,
// or that the rc manager hasn't noticed the update yet. Polling status.Replicas is not safe in the latter case.
desiredGeneration := controller.Generation
return func() (bool, error) {
ctrl, err := c.ReplicationControllers(controller.Namespace).Get(controller.Name)
if err != nil {
return false, err
}
// There's a chance a concurrent update modifies the Spec.Replicas causing this check to pass,
// or, after this check has passed, a modification causes the rc manager to create more pods.
// This will not be an issue once we've implemented graceful delete for rcs, but till then
// concurrent stop operations on the same rc might have unintended side effects.
return ctrl.Status.ObservedGeneration >= desiredGeneration && ctrl.Status.Replicas == specifiedReplicas, nil
}
}
+126
View File
@@ -0,0 +1,126 @@
package analysis
import (
"fmt"
"github.com/gonum/graph"
osgraph "github.com/openshift/origin/pkg/api/graph"
buildedges "github.com/openshift/origin/pkg/build/graph"
buildutil "github.com/openshift/origin/pkg/build/util"
deployedges "github.com/openshift/origin/pkg/deploy/graph"
deploygraph "github.com/openshift/origin/pkg/deploy/graph/nodes"
imageedges "github.com/openshift/origin/pkg/image/graph"
imagegraph "github.com/openshift/origin/pkg/image/graph/nodes"
)
const (
MissingImageStreamErr = "MissingImageStream"
MissingImageStreamTagWarning = "MissingImageStreamTag"
MissingReadinessProbeWarning = "MissingReadinessProbe"
)
// FindDeploymentConfigTriggerErrors checks for possible failures in deployment config
// image change triggers.
//
// Precedence of failures:
// 1. The image stream for the tag of interest does not exist.
// 2. The image stream tag does not exist.
func FindDeploymentConfigTriggerErrors(g osgraph.Graph, f osgraph.Namer) []osgraph.Marker {
markers := []osgraph.Marker{}
for _, uncastDcNode := range g.NodesByKind(deploygraph.DeploymentConfigNodeKind) {
dcNode := uncastDcNode.(*deploygraph.DeploymentConfigNode)
marker := ictMarker(g, f, dcNode)
if marker != nil {
markers = append(markers, *marker)
}
}
return markers
}
// ictMarker inspects the image change triggers for the provided deploymentconfig and returns
// a marker in case of the following two scenarios:
//
// 1. The image stream pointed by the dc trigger doen not exist.
// 2. The image stream tag pointed by the dc trigger does not exist and there is no build in
// flight that could push to the tag.
func ictMarker(g osgraph.Graph, f osgraph.Namer, dcNode *deploygraph.DeploymentConfigNode) *osgraph.Marker {
for _, uncastIstNode := range g.PredecessorNodesByEdgeKind(dcNode, deployedges.TriggersDeploymentEdgeKind) {
if istNode := uncastIstNode.(*imagegraph.ImageStreamTagNode); !istNode.Found() {
// The image stream for the tag of interest does not exist.
if isNode, exists := doesImageStreamExist(g, uncastIstNode); !exists {
return &osgraph.Marker{
Node: dcNode,
RelatedNodes: []graph.Node{uncastIstNode, isNode},
Severity: osgraph.ErrorSeverity,
Key: MissingImageStreamErr,
Message: fmt.Sprintf("The image trigger for %s will have no effect because %s does not exist.",
f.ResourceName(dcNode), f.ResourceName(isNode)),
// TODO: Suggest `oc create imagestream` once we have that.
}
}
for _, bcNode := range buildedges.BuildConfigsForTag(g, istNode) {
// Avoid warning for the dc image trigger in case there is a build in flight.
if latestBuild := buildedges.GetLatestBuild(g, bcNode); latestBuild != nil && !buildutil.IsBuildComplete(latestBuild.Build) {
return nil
}
}
// The image stream tag of interest does not exist.
return &osgraph.Marker{
Node: dcNode,
RelatedNodes: []graph.Node{uncastIstNode},
Severity: osgraph.WarningSeverity,
Key: MissingImageStreamTagWarning,
Message: fmt.Sprintf("The image trigger for %s will have no effect until %s is imported or created by a build.",
f.ResourceName(dcNode), f.ResourceName(istNode)),
}
}
}
return nil
}
func doesImageStreamExist(g osgraph.Graph, istag graph.Node) (graph.Node, bool) {
for _, imagestream := range g.SuccessorNodesByEdgeKind(istag, imageedges.ReferencedImageStreamGraphEdgeKind) {
return imagestream, imagestream.(*imagegraph.ImageStreamNode).Found()
}
for _, imagestream := range g.SuccessorNodesByEdgeKind(istag, imageedges.ReferencedImageStreamImageGraphEdgeKind) {
return imagestream, imagestream.(*imagegraph.ImageStreamNode).Found()
}
return nil, false
}
// FindDeploymentConfigReadinessWarnings inspects deploymentconfigs and reports those that
// don't have readiness probes set up.
func FindDeploymentConfigReadinessWarnings(g osgraph.Graph, f osgraph.Namer, setProbeCommand string) []osgraph.Marker {
markers := []osgraph.Marker{}
Node:
for _, uncastDcNode := range g.NodesByKind(deploygraph.DeploymentConfigNodeKind) {
dcNode := uncastDcNode.(*deploygraph.DeploymentConfigNode)
if t := dcNode.DeploymentConfig.Spec.Template; t != nil && len(t.Spec.Containers) > 0 {
for _, container := range t.Spec.Containers {
if container.ReadinessProbe != nil {
continue Node
}
}
// All of the containers in the deployment config lack a readiness probe
markers = append(markers, osgraph.Marker{
Node: uncastDcNode,
Severity: osgraph.WarningSeverity,
Key: MissingReadinessProbeWarning,
Message: fmt.Sprintf("%s has no readiness probe to verify pods are ready to accept traffic or ensure deployment is successful.",
f.ResourceName(dcNode)),
Suggestion: osgraph.Suggestion(fmt.Sprintf("%s %s --readiness ...", setProbeCommand, f.ResourceName(dcNode))),
})
continue Node
}
}
return markers
}
+3
View File
@@ -0,0 +1,3 @@
// Package analysis provides functions that analyse deployment configurations and setup markers
// that will be reported by oc status
package analysis
+85
View File
@@ -0,0 +1,85 @@
package graph
import (
"github.com/gonum/graph"
osgraph "github.com/openshift/origin/pkg/api/graph"
kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes"
deployapi "github.com/openshift/origin/pkg/deploy/api"
deploygraph "github.com/openshift/origin/pkg/deploy/graph/nodes"
imageapi "github.com/openshift/origin/pkg/image/api"
imagegraph "github.com/openshift/origin/pkg/image/graph/nodes"
)
const (
// TriggersDeploymentEdgeKind points from DeploymentConfigs to ImageStreamTags that trigger the deployment
TriggersDeploymentEdgeKind = "TriggersDeployment"
// UsedInDeploymentEdgeKind points from DeploymentConfigs to DockerImageReferences that are used in the deployment
UsedInDeploymentEdgeKind = "UsedInDeployment"
// DeploymentEdgeKind points from DeploymentConfigs to the ReplicationControllers that are fulfilling the deployment
DeploymentEdgeKind = "Deployment"
)
// AddTriggerEdges creates edges that point to named Docker image repositories for each image used in the deployment.
func AddTriggerEdges(g osgraph.MutableUniqueGraph, node *deploygraph.DeploymentConfigNode) *deploygraph.DeploymentConfigNode {
podTemplate := node.DeploymentConfig.Spec.Template
if podTemplate == nil {
return node
}
deployapi.EachTemplateImage(
&podTemplate.Spec,
deployapi.DeploymentConfigHasTrigger(node.DeploymentConfig),
func(image deployapi.TemplateImage, err error) {
if err != nil {
return
}
if image.From != nil {
if len(image.From.Name) == 0 {
return
}
name, tag, _ := imageapi.SplitImageStreamTag(image.From.Name)
in := imagegraph.FindOrCreateSyntheticImageStreamTagNode(g, imagegraph.MakeImageStreamTagObjectMeta(image.From.Namespace, name, tag))
g.AddEdge(in, node, TriggersDeploymentEdgeKind)
return
}
tag := image.Ref.Tag
image.Ref.Tag = ""
in := imagegraph.EnsureDockerRepositoryNode(g, image.Ref.String(), tag)
g.AddEdge(in, node, UsedInDeploymentEdgeKind)
})
return node
}
func AddAllTriggerEdges(g osgraph.MutableUniqueGraph) {
for _, node := range g.(graph.Graph).Nodes() {
if dcNode, ok := node.(*deploygraph.DeploymentConfigNode); ok {
AddTriggerEdges(g, dcNode)
}
}
}
func AddDeploymentEdges(g osgraph.MutableUniqueGraph, node *deploygraph.DeploymentConfigNode) *deploygraph.DeploymentConfigNode {
for _, n := range g.(graph.Graph).Nodes() {
if rcNode, ok := n.(*kubegraph.ReplicationControllerNode); ok {
if rcNode.ReplicationController.Namespace != node.DeploymentConfig.Namespace {
continue
}
if BelongsToDeploymentConfig(node.DeploymentConfig, rcNode.ReplicationController) {
g.AddEdge(node, rcNode, DeploymentEdgeKind)
}
}
}
return node
}
func AddAllDeploymentEdges(g osgraph.MutableUniqueGraph) {
for _, node := range g.(graph.Graph).Nodes() {
if dcNode, ok := node.(*deploygraph.DeploymentConfigNode); ok {
AddDeploymentEdges(g, dcNode)
}
}
}
+49
View File
@@ -0,0 +1,49 @@
package graph
import (
"sort"
kapi "k8s.io/kubernetes/pkg/api"
osgraph "github.com/openshift/origin/pkg/api/graph"
kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes"
deployapi "github.com/openshift/origin/pkg/deploy/api"
deploygraph "github.com/openshift/origin/pkg/deploy/graph/nodes"
deployutil "github.com/openshift/origin/pkg/deploy/util"
)
// RelevantDeployments returns the active deployment and a list of inactive deployments (in order from newest to oldest)
func RelevantDeployments(g osgraph.Graph, dcNode *deploygraph.DeploymentConfigNode) (*kubegraph.ReplicationControllerNode, []*kubegraph.ReplicationControllerNode) {
allDeployments := []*kubegraph.ReplicationControllerNode{}
uncastDeployments := g.SuccessorNodesByEdgeKind(dcNode, DeploymentEdgeKind)
if len(uncastDeployments) == 0 {
return nil, []*kubegraph.ReplicationControllerNode{}
}
for i := range uncastDeployments {
allDeployments = append(allDeployments, uncastDeployments[i].(*kubegraph.ReplicationControllerNode))
}
sort.Sort(RecentDeploymentReferences(allDeployments))
if dcNode.DeploymentConfig.Status.LatestVersion == deployutil.DeploymentVersionFor(allDeployments[0].ReplicationController) {
return allDeployments[0], allDeployments[1:]
}
return nil, allDeployments
}
func BelongsToDeploymentConfig(config *deployapi.DeploymentConfig, b *kapi.ReplicationController) bool {
if b.Annotations != nil {
return config.Name == deployutil.DeploymentConfigNameFor(b)
}
return false
}
type RecentDeploymentReferences []*kubegraph.ReplicationControllerNode
func (m RecentDeploymentReferences) Len() int { return len(m) }
func (m RecentDeploymentReferences) Swap(i, j int) { m[i], m[j] = m[j], m[i] }
func (m RecentDeploymentReferences) Less(i, j int) bool {
return deployutil.DeploymentVersionFor(m[i].ReplicationController) > deployutil.DeploymentVersionFor(m[j].ReplicationController)
}
+38
View File
@@ -0,0 +1,38 @@
package nodes
import (
"github.com/gonum/graph"
osgraph "github.com/openshift/origin/pkg/api/graph"
kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes"
depoyapi "github.com/openshift/origin/pkg/deploy/api"
)
// EnsureDeploymentConfigNode adds the provided deployment config to the graph if it does not exist
func EnsureDeploymentConfigNode(g osgraph.MutableUniqueGraph, dc *depoyapi.DeploymentConfig) *DeploymentConfigNode {
dcName := DeploymentConfigNodeName(dc)
dcNode := osgraph.EnsureUnique(
g,
dcName,
func(node osgraph.Node) graph.Node {
return &DeploymentConfigNode{Node: node, DeploymentConfig: dc, IsFound: true}
},
).(*DeploymentConfigNode)
if dc.Spec.Template != nil {
podTemplateSpecNode := kubegraph.EnsurePodTemplateSpecNode(g, dc.Spec.Template, dc.Namespace, dcName)
g.AddEdge(dcNode, podTemplateSpecNode, osgraph.ContainsEdgeKind)
}
return dcNode
}
func FindOrCreateSyntheticDeploymentConfigNode(g osgraph.MutableUniqueGraph, dc *depoyapi.DeploymentConfig) *DeploymentConfigNode {
return osgraph.EnsureUnique(
g,
DeploymentConfigNodeName(dc),
func(node osgraph.Node) graph.Node {
return &DeploymentConfigNode{Node: node, DeploymentConfig: dc, IsFound: false}
},
).(*DeploymentConfigNode)
}
+39
View File
@@ -0,0 +1,39 @@
package nodes
import (
"reflect"
osgraph "github.com/openshift/origin/pkg/api/graph"
deployapi "github.com/openshift/origin/pkg/deploy/api"
)
var (
DeploymentConfigNodeKind = reflect.TypeOf(deployapi.DeploymentConfig{}).Name()
)
func DeploymentConfigNodeName(o *deployapi.DeploymentConfig) osgraph.UniqueName {
return osgraph.GetUniqueRuntimeObjectNodeName(DeploymentConfigNodeKind, o)
}
type DeploymentConfigNode struct {
osgraph.Node
DeploymentConfig *deployapi.DeploymentConfig
IsFound bool
}
func (n DeploymentConfigNode) Found() bool {
return n.IsFound
}
func (n DeploymentConfigNode) Object() interface{} {
return n.DeploymentConfig
}
func (n DeploymentConfigNode) String() string {
return string(DeploymentConfigNodeName(n.DeploymentConfig))
}
func (*DeploymentConfigNode) Kind() string {
return DeploymentConfigNodeKind
}
+496
View File
@@ -0,0 +1,496 @@
package util
import (
"errors"
"fmt"
"sort"
"strconv"
"strings"
"time"
"k8s.io/kubernetes/pkg/api"
kdeplutil "k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/watch"
deployapi "github.com/openshift/origin/pkg/deploy/api"
"github.com/openshift/origin/pkg/util/namer"
kclient "k8s.io/kubernetes/pkg/client/unversioned"
)
// LatestDeploymentNameForConfig returns a stable identifier for config based on its version.
func LatestDeploymentNameForConfig(config *deployapi.DeploymentConfig) string {
return fmt.Sprintf("%s-%d", config.Name, config.Status.LatestVersion)
}
// LatestDeploymentInfo returns info about the latest deployment for a config,
// or nil if there is no latest deployment. The latest deployment is not
// always the same as the active deployment.
func LatestDeploymentInfo(config *deployapi.DeploymentConfig, deployments []api.ReplicationController) (bool, *api.ReplicationController) {
if config.Status.LatestVersion == 0 || len(deployments) == 0 {
return false, nil
}
sort.Sort(ByLatestVersionDesc(deployments))
candidate := &deployments[0]
return DeploymentVersionFor(candidate) == config.Status.LatestVersion, candidate
}
// ActiveDeployment returns the latest complete deployment, or nil if there is
// no such deployment. The active deployment is not always the same as the
// latest deployment.
func ActiveDeployment(config *deployapi.DeploymentConfig, input []api.ReplicationController) *api.ReplicationController {
var activeDeployment *api.ReplicationController
var lastCompleteDeploymentVersion int64 = 0
for i := range input {
deployment := &input[i]
deploymentVersion := DeploymentVersionFor(deployment)
if DeploymentStatusFor(deployment) == deployapi.DeploymentStatusComplete && deploymentVersion > lastCompleteDeploymentVersion {
activeDeployment = deployment
lastCompleteDeploymentVersion = deploymentVersion
}
}
return activeDeployment
}
// DeployerPodSuffix is the suffix added to pods created from a deployment
const DeployerPodSuffix = "deploy"
// DeployerPodNameForDeployment returns the name of a pod for a given deployment
func DeployerPodNameForDeployment(deployment string) string {
return namer.GetPodName(deployment, DeployerPodSuffix)
}
// LabelForDeployment builds a string identifier for a Deployment.
func LabelForDeployment(deployment *api.ReplicationController) string {
return fmt.Sprintf("%s/%s", deployment.Namespace, deployment.Name)
}
// LabelForDeploymentConfig builds a string identifier for a DeploymentConfig.
func LabelForDeploymentConfig(config *deployapi.DeploymentConfig) string {
return fmt.Sprintf("%s/%s", config.Namespace, config.Name)
}
// DeploymentNameForConfigVersion returns the name of the version-th deployment
// for the config that has the provided name
func DeploymentNameForConfigVersion(name string, version int64) string {
return fmt.Sprintf("%s-%d", name, version)
}
// ConfigSelector returns a label Selector which can be used to find all
// deployments for a DeploymentConfig.
//
// TODO: Using the annotation constant for now since the value is correct
// but we could consider adding a new constant to the public types.
func ConfigSelector(name string) labels.Selector {
return labels.Set{deployapi.DeploymentConfigAnnotation: name}.AsSelector()
}
// DeployerPodSelector returns a label Selector which can be used to find all
// deployer pods associated with a deployment with name.
func DeployerPodSelector(name string) labels.Selector {
return labels.Set{deployapi.DeployerPodForDeploymentLabel: name}.AsSelector()
}
// AnyDeployerPodSelector returns a label Selector which can be used to find
// all deployer pods across all deployments, including hook and custom
// deployer pods.
func AnyDeployerPodSelector() labels.Selector {
sel, _ := labels.Parse(deployapi.DeployerPodForDeploymentLabel)
return sel
}
// HasChangeTrigger returns whether the provided deployment configuration has
// a config change trigger or not
func HasChangeTrigger(config *deployapi.DeploymentConfig) bool {
for _, trigger := range config.Spec.Triggers {
if trigger.Type == deployapi.DeploymentTriggerOnConfigChange {
return true
}
}
return false
}
func DeploymentConfigDeepCopy(dc *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) {
objCopy, err := api.Scheme.DeepCopy(dc)
if err != nil {
return nil, err
}
copied, ok := objCopy.(*deployapi.DeploymentConfig)
if !ok {
return nil, fmt.Errorf("expected DeploymentConfig, got %#v", objCopy)
}
return copied, nil
}
func DeploymentDeepCopy(rc *api.ReplicationController) (*api.ReplicationController, error) {
objCopy, err := api.Scheme.DeepCopy(rc)
if err != nil {
return nil, err
}
copied, ok := objCopy.(*api.ReplicationController)
if !ok {
return nil, fmt.Errorf("expected ReplicationController, got %#v", objCopy)
}
return copied, nil
}
// DecodeDeploymentConfig decodes a DeploymentConfig from controller using codec. An error is returned
// if the controller doesn't contain an encoded config.
func DecodeDeploymentConfig(controller *api.ReplicationController, decoder runtime.Decoder) (*deployapi.DeploymentConfig, error) {
encodedConfig := []byte(EncodedDeploymentConfigFor(controller))
decoded, err := runtime.Decode(decoder, encodedConfig)
if err != nil {
return nil, fmt.Errorf("failed to decode DeploymentConfig from controller: %v", err)
}
config, ok := decoded.(*deployapi.DeploymentConfig)
if !ok {
return nil, fmt.Errorf("decoded object from controller is not a DeploymentConfig")
}
return config, nil
}
// EncodeDeploymentConfig encodes config as a string using codec.
func EncodeDeploymentConfig(config *deployapi.DeploymentConfig, codec runtime.Codec) (string, error) {
bytes, err := runtime.Encode(codec, config)
if err != nil {
return "", err
}
return string(bytes[:]), nil
}
// MakeDeployment creates a deployment represented as a ReplicationController and based on the given
// DeploymentConfig. The controller replica count will be zero.
func MakeDeployment(config *deployapi.DeploymentConfig, codec runtime.Codec) (*api.ReplicationController, error) {
var err error
var encodedConfig string
if encodedConfig, err = EncodeDeploymentConfig(config, codec); err != nil {
return nil, err
}
deploymentName := LatestDeploymentNameForConfig(config)
podSpec := api.PodSpec{}
if err := api.Scheme.Convert(&config.Spec.Template.Spec, &podSpec, nil); err != nil {
return nil, fmt.Errorf("couldn't clone podSpec: %v", err)
}
controllerLabels := make(labels.Set)
for k, v := range config.Labels {
controllerLabels[k] = v
}
// Correlate the deployment with the config.
// TODO: Using the annotation constant for now since the value is correct
// but we could consider adding a new constant to the public types.
controllerLabels[deployapi.DeploymentConfigAnnotation] = config.Name
// Ensure that pods created by this deployment controller can be safely associated back
// to the controller, and that multiple deployment controllers for the same config don't
// manipulate each others' pods.
selector := map[string]string{}
for k, v := range config.Spec.Selector {
selector[k] = v
}
selector[deployapi.DeploymentConfigLabel] = config.Name
selector[deployapi.DeploymentLabel] = deploymentName
podLabels := make(labels.Set)
for k, v := range config.Spec.Template.Labels {
podLabels[k] = v
}
podLabels[deployapi.DeploymentConfigLabel] = config.Name
podLabels[deployapi.DeploymentLabel] = deploymentName
podAnnotations := make(labels.Set)
for k, v := range config.Spec.Template.Annotations {
podAnnotations[k] = v
}
podAnnotations[deployapi.DeploymentAnnotation] = deploymentName
podAnnotations[deployapi.DeploymentConfigAnnotation] = config.Name
podAnnotations[deployapi.DeploymentVersionAnnotation] = strconv.FormatInt(config.Status.LatestVersion, 10)
deployment := &api.ReplicationController{
ObjectMeta: api.ObjectMeta{
Name: deploymentName,
Namespace: config.Namespace,
Annotations: map[string]string{
deployapi.DeploymentConfigAnnotation: config.Name,
deployapi.DeploymentStatusAnnotation: string(deployapi.DeploymentStatusNew),
deployapi.DeploymentEncodedConfigAnnotation: encodedConfig,
deployapi.DeploymentVersionAnnotation: strconv.FormatInt(config.Status.LatestVersion, 10),
// This is the target replica count for the new deployment.
deployapi.DesiredReplicasAnnotation: strconv.Itoa(int(config.Spec.Replicas)),
deployapi.DeploymentReplicasAnnotation: strconv.Itoa(0),
},
Labels: controllerLabels,
},
Spec: api.ReplicationControllerSpec{
// The deployment should be inactive initially
Replicas: 0,
Selector: selector,
Template: &api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: podLabels,
Annotations: podAnnotations,
},
Spec: podSpec,
},
},
}
if config.Status.Details != nil && len(config.Status.Details.Message) > 0 {
deployment.Annotations[deployapi.DeploymentStatusReasonAnnotation] = config.Status.Details.Message
}
if value, ok := config.Annotations[deployapi.DeploymentIgnorePodAnnotation]; ok {
deployment.Annotations[deployapi.DeploymentIgnorePodAnnotation] = value
}
return deployment, nil
}
// GetReplicaCountForDeployments returns the sum of all replicas for the
// given deployments.
func GetReplicaCountForDeployments(deployments []api.ReplicationController) int32 {
totalReplicaCount := int32(0)
for _, deployment := range deployments {
totalReplicaCount += deployment.Spec.Replicas
}
return totalReplicaCount
}
// GetStatusReplicaCountForDeployments returns the sum of the replicas reported in the
// status of the given deployments.
func GetStatusReplicaCountForDeployments(deployments []api.ReplicationController) int32 {
totalReplicaCount := int32(0)
for _, deployment := range deployments {
totalReplicaCount += deployment.Status.Replicas
}
return totalReplicaCount
}
// GetAvailablePods returns all the available pods from the provided pod list.
func GetAvailablePods(pods []*api.Pod, minReadySeconds int32) int32 {
available := int32(0)
for i := range pods {
pod := pods[i]
if kdeplutil.IsPodAvailable(pod, minReadySeconds, time.Now()) {
available++
}
}
return available
}
func DeploymentConfigNameFor(obj runtime.Object) string {
return annotationFor(obj, deployapi.DeploymentConfigAnnotation)
}
func DeploymentNameFor(obj runtime.Object) string {
return annotationFor(obj, deployapi.DeploymentAnnotation)
}
func DeployerPodNameFor(obj runtime.Object) string {
return annotationFor(obj, deployapi.DeploymentPodAnnotation)
}
func DeploymentStatusFor(obj runtime.Object) deployapi.DeploymentStatus {
return deployapi.DeploymentStatus(annotationFor(obj, deployapi.DeploymentStatusAnnotation))
}
func DeploymentStatusReasonFor(obj runtime.Object) string {
return annotationFor(obj, deployapi.DeploymentStatusReasonAnnotation)
}
func DeploymentDesiredReplicas(obj runtime.Object) (int32, bool) {
return int32AnnotationFor(obj, deployapi.DesiredReplicasAnnotation)
}
func DeploymentReplicas(obj runtime.Object) (int32, bool) {
return int32AnnotationFor(obj, deployapi.DeploymentReplicasAnnotation)
}
func EncodedDeploymentConfigFor(obj runtime.Object) string {
return annotationFor(obj, deployapi.DeploymentEncodedConfigAnnotation)
}
func DeploymentVersionFor(obj runtime.Object) int64 {
v, err := strconv.ParseInt(annotationFor(obj, deployapi.DeploymentVersionAnnotation), 10, 64)
if err != nil {
return -1
}
return v
}
func IsDeploymentCancelled(deployment *api.ReplicationController) bool {
value := annotationFor(deployment, deployapi.DeploymentCancelledAnnotation)
return strings.EqualFold(value, deployapi.DeploymentCancelledAnnotationValue)
}
func HasSynced(dc *deployapi.DeploymentConfig) bool {
return dc.Status.ObservedGeneration >= dc.Generation
}
// IsOwnedByConfig checks whether the provided replication controller is part of a
// deployment configuration.
// TODO: Switch to use owner references once we got those working.
func IsOwnedByConfig(deployment *api.ReplicationController) bool {
_, ok := deployment.Annotations[deployapi.DeploymentConfigAnnotation]
return ok
}
// IsTerminatedDeployment returns true if the passed deployment has terminated (either
// complete or failed).
func IsTerminatedDeployment(deployment *api.ReplicationController) bool {
current := DeploymentStatusFor(deployment)
return current == deployapi.DeploymentStatusComplete || current == deployapi.DeploymentStatusFailed
}
// IsFailedDeployment returns true if the passed deployment failed.
func IsFailedDeployment(deployment *api.ReplicationController) bool {
current := DeploymentStatusFor(deployment)
return current == deployapi.DeploymentStatusFailed
}
// CanTransitionPhase returns whether it is allowed to go from the current to the next phase.
func CanTransitionPhase(current, next deployapi.DeploymentStatus) bool {
switch current {
case deployapi.DeploymentStatusNew:
switch next {
case deployapi.DeploymentStatusPending,
deployapi.DeploymentStatusRunning,
deployapi.DeploymentStatusFailed,
deployapi.DeploymentStatusComplete:
return true
}
case deployapi.DeploymentStatusPending:
switch next {
case deployapi.DeploymentStatusRunning,
deployapi.DeploymentStatusFailed,
deployapi.DeploymentStatusComplete:
return true
}
case deployapi.DeploymentStatusRunning:
switch next {
case deployapi.DeploymentStatusFailed, deployapi.DeploymentStatusComplete:
return true
}
}
return false
}
// annotationFor returns the annotation with key for obj.
func annotationFor(obj runtime.Object, key string) string {
meta, err := api.ObjectMetaFor(obj)
if err != nil {
return ""
}
return meta.Annotations[key]
}
func int32AnnotationFor(obj runtime.Object, key string) (int32, bool) {
s := annotationFor(obj, key)
if len(s) == 0 {
return 0, false
}
i, err := strconv.ParseInt(s, 10, 32)
if err != nil {
return 0, false
}
return int32(i), true
}
// DeploymentsForCleanup determines which deployments for a configuration are relevant for the
// revision history limit quota
func DeploymentsForCleanup(configuration *deployapi.DeploymentConfig, deployments []api.ReplicationController) []api.ReplicationController {
// if the past deployment quota has been exceeded, we need to prune the oldest deployments
// until we are not exceeding the quota any longer, so we sort oldest first
sort.Sort(ByLatestVersionAsc(deployments))
relevantDeployments := []api.ReplicationController{}
activeDeployment := ActiveDeployment(configuration, deployments)
if activeDeployment == nil {
// if cleanup policy is set but no successful deployments have happened, there will be
// no active deployment. We can consider all of the deployments in this case except for
// the latest one
for i := range deployments {
deployment := &deployments[i]
if DeploymentVersionFor(deployment) != configuration.Status.LatestVersion {
relevantDeployments = append(relevantDeployments, *deployment)
}
}
} else {
// if there is an active deployment, we need to filter out any deployments that we don't
// care about, namely the active deployment and any newer deployments
for i := range deployments {
deployment := &deployments[i]
if deployment != activeDeployment && DeploymentVersionFor(deployment) < DeploymentVersionFor(activeDeployment) {
relevantDeployments = append(relevantDeployments, *deployment)
}
}
}
return relevantDeployments
}
// WaitForRunningDeployerPod waits a given period of time until the deployer pod
// for given replication controller is not running.
func WaitForRunningDeployerPod(podClient kclient.PodsNamespacer, rc *api.ReplicationController, timeout time.Duration) error {
podName := DeployerPodNameForDeployment(rc.Name)
canGetLogs := func(p *api.Pod) bool {
return api.PodSucceeded == p.Status.Phase || api.PodFailed == p.Status.Phase || api.PodRunning == p.Status.Phase
}
pod, err := podClient.Pods(rc.Namespace).Get(podName)
if err == nil && canGetLogs(pod) {
return nil
}
watcher, err := podClient.Pods(rc.Namespace).Watch(
api.ListOptions{
FieldSelector: fields.Set{"metadata.name": podName}.AsSelector(),
},
)
if err != nil {
return err
}
defer watcher.Stop()
if _, err := watch.Until(timeout, watcher, func(e watch.Event) (bool, error) {
if e.Type == watch.Error {
return false, fmt.Errorf("encountered error while watching for pod: %v", e.Object)
}
obj, isPod := e.Object.(*api.Pod)
if !isPod {
return false, errors.New("received unknown object while watching for pods")
}
return canGetLogs(obj), nil
}); err != nil {
return err
}
return nil
}
// ByLatestVersionAsc sorts deployments by LatestVersion ascending.
type ByLatestVersionAsc []api.ReplicationController
func (d ByLatestVersionAsc) Len() int { return len(d) }
func (d ByLatestVersionAsc) Swap(i, j int) { d[i], d[j] = d[j], d[i] }
func (d ByLatestVersionAsc) Less(i, j int) bool {
return DeploymentVersionFor(&d[i]) < DeploymentVersionFor(&d[j])
}
// ByLatestVersionDesc sorts deployments by LatestVersion descending.
type ByLatestVersionDesc []api.ReplicationController
func (d ByLatestVersionDesc) Len() int { return len(d) }
func (d ByLatestVersionDesc) Swap(i, j int) { d[i], d[j] = d[j], d[i] }
func (d ByLatestVersionDesc) Less(i, j int) bool {
return DeploymentVersionFor(&d[j]) < DeploymentVersionFor(&d[i])
}
// ByMostRecent sorts deployments by most recently created.
type ByMostRecent []*api.ReplicationController
func (s ByMostRecent) Len() int { return len(s) }
func (s ByMostRecent) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
func (s ByMostRecent) Less(i, j int) bool {
return !s[i].CreationTimestamp.Before(s[j].CreationTimestamp)
}