1
16
17 package v1
18
19 import (
20 "fmt"
21 "strconv"
22
23 appsv1 "k8s.io/api/apps/v1"
24 corev1 "k8s.io/api/core/v1"
25 "k8s.io/apimachinery/pkg/conversion"
26 "k8s.io/kubernetes/pkg/apis/apps"
27 "k8s.io/kubernetes/pkg/apis/core"
28 )
29
30
31
32 func Convert_apps_DeploymentSpec_To_v1_DeploymentSpec(in *apps.DeploymentSpec, out *appsv1.DeploymentSpec, s conversion.Scope) error {
33 if err := autoConvert_apps_DeploymentSpec_To_v1_DeploymentSpec(in, out, s); err != nil {
34 return err
35 }
36 return nil
37 }
38
39 func Convert_v1_Deployment_To_apps_Deployment(in *appsv1.Deployment, out *apps.Deployment, s conversion.Scope) error {
40 if err := autoConvert_v1_Deployment_To_apps_Deployment(in, out, s); err != nil {
41 return err
42 }
43
44
45
46 if revision := in.Annotations[appsv1.DeprecatedRollbackTo]; revision != "" {
47 if revision64, err := strconv.ParseInt(revision, 10, 64); err != nil {
48 return fmt.Errorf("failed to parse annotation[%s]=%s as int64: %v", appsv1.DeprecatedRollbackTo, revision, err)
49 } else {
50 out.Spec.RollbackTo = new(apps.RollbackConfig)
51 out.Spec.RollbackTo.Revision = revision64
52 }
53 out.Annotations = deepCopyStringMap(out.Annotations)
54 delete(out.Annotations, appsv1.DeprecatedRollbackTo)
55 } else {
56 out.Spec.RollbackTo = nil
57 }
58
59 return nil
60 }
61
62 func Convert_apps_Deployment_To_v1_Deployment(in *apps.Deployment, out *appsv1.Deployment, s conversion.Scope) error {
63 if err := autoConvert_apps_Deployment_To_v1_Deployment(in, out, s); err != nil {
64 return err
65 }
66
67 out.Annotations = deepCopyStringMap(out.Annotations)
68
69
70
71 if in.Spec.RollbackTo != nil {
72 if out.Annotations == nil {
73 out.Annotations = make(map[string]string)
74 }
75 out.Annotations[appsv1.DeprecatedRollbackTo] = strconv.FormatInt(in.Spec.RollbackTo.Revision, 10)
76 } else {
77 delete(out.Annotations, appsv1.DeprecatedRollbackTo)
78 }
79
80 return nil
81 }
82
83 func Convert_apps_DaemonSet_To_v1_DaemonSet(in *apps.DaemonSet, out *appsv1.DaemonSet, s conversion.Scope) error {
84 if err := autoConvert_apps_DaemonSet_To_v1_DaemonSet(in, out, s); err != nil {
85 return err
86 }
87
88 out.Annotations = deepCopyStringMap(out.Annotations)
89 out.Annotations[appsv1.DeprecatedTemplateGeneration] = strconv.FormatInt(in.Spec.TemplateGeneration, 10)
90 return nil
91 }
92
93
94
95 func Convert_apps_DaemonSetSpec_To_v1_DaemonSetSpec(in *apps.DaemonSetSpec, out *appsv1.DaemonSetSpec, s conversion.Scope) error {
96 if err := autoConvert_apps_DaemonSetSpec_To_v1_DaemonSetSpec(in, out, s); err != nil {
97 return err
98 }
99 return nil
100 }
101
102 func Convert_v1_DaemonSet_To_apps_DaemonSet(in *appsv1.DaemonSet, out *apps.DaemonSet, s conversion.Scope) error {
103 if err := autoConvert_v1_DaemonSet_To_apps_DaemonSet(in, out, s); err != nil {
104 return err
105 }
106 if value, ok := in.Annotations[appsv1.DeprecatedTemplateGeneration]; ok {
107 if value64, err := strconv.ParseInt(value, 10, 64); err != nil {
108 return err
109 } else {
110 out.Spec.TemplateGeneration = value64
111 out.Annotations = deepCopyStringMap(out.Annotations)
112 delete(out.Annotations, appsv1.DeprecatedTemplateGeneration)
113 }
114 }
115 return nil
116 }
117
118 func deepCopyStringMap(m map[string]string) map[string]string {
119 ret := make(map[string]string, len(m))
120 for k, v := range m {
121 ret[k] = v
122 }
123 return ret
124 }
125
126
127
128 func Convert_v1_StatefulSetSpec_To_apps_StatefulSetSpec(in *appsv1.StatefulSetSpec, out *apps.StatefulSetSpec, s conversion.Scope) error {
129 if err := autoConvert_v1_StatefulSetSpec_To_apps_StatefulSetSpec(in, out, s); err != nil {
130 return err
131 }
132
133
134 if out.VolumeClaimTemplates != nil {
135
136 templatesCopy := make([]core.PersistentVolumeClaim, len(out.VolumeClaimTemplates))
137 copy(templatesCopy, out.VolumeClaimTemplates)
138 out.VolumeClaimTemplates = templatesCopy
139 for i := range out.VolumeClaimTemplates {
140 out.VolumeClaimTemplates[i].APIVersion = ""
141 out.VolumeClaimTemplates[i].Kind = ""
142 }
143 }
144 return nil
145 }
146
147
148
149 func Convert_apps_StatefulSetSpec_To_v1_StatefulSetSpec(in *apps.StatefulSetSpec, out *appsv1.StatefulSetSpec, s conversion.Scope) error {
150 if err := autoConvert_apps_StatefulSetSpec_To_v1_StatefulSetSpec(in, out, s); err != nil {
151 return err
152 }
153
154
155 if out.VolumeClaimTemplates != nil {
156
157 templatesCopy := make([]corev1.PersistentVolumeClaim, len(out.VolumeClaimTemplates))
158 copy(templatesCopy, out.VolumeClaimTemplates)
159 out.VolumeClaimTemplates = templatesCopy
160 for i := range out.VolumeClaimTemplates {
161 out.VolumeClaimTemplates[i].APIVersion = "v1"
162 out.VolumeClaimTemplates[i].Kind = "PersistentVolumeClaim"
163 }
164 }
165 return nil
166 }
167
View as plain text