/
keptnapp_conversion.go
63 lines (47 loc) · 1.59 KB
/
keptnapp_conversion.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package v1alpha3
import (
"fmt"
v1 "github.com/keptn/lifecycle-toolkit/lifecycle-operator/apis/lifecycle/v1"
"github.com/keptn/lifecycle-toolkit/lifecycle-operator/apis/lifecycle/v1alpha3/common"
"sigs.k8s.io/controller-runtime/pkg/conversion"
)
// ConvertTo converts the src v1alpha3.KeptnApp to the hub version (v1.KeptnApp)
func (src *KeptnApp) ConvertTo(dstRaw conversion.Hub) error {
dst, ok := dstRaw.(*v1.KeptnApp)
if !ok {
return fmt.Errorf("type %T %w", dstRaw, common.ErrCannotCastKeptnApp)
}
// Copy equal stuff to new object
// DO NOT COPY TypeMeta
dst.ObjectMeta = src.ObjectMeta
dst.Spec.Version = src.Spec.Version
for _, srcWl := range src.Spec.Workloads {
dst.Spec.Workloads = append(dst.Spec.Workloads, v1.KeptnWorkloadRef{
Name: srcWl.Name,
Version: srcWl.Version,
})
}
dst.Status.CurrentVersion = src.Status.CurrentVersion
dst.Spec.Revision = src.Spec.Revision
return nil
}
// ConvertFrom converts from the hub version (v1.KeptnApp) to this version (v1alpha3.KeptnApp)
func (dst *KeptnApp) ConvertFrom(srcRaw conversion.Hub) error {
src, ok := srcRaw.(*v1.KeptnApp)
if !ok {
return fmt.Errorf("type %T %w", srcRaw, common.ErrCannotCastKeptnApp)
}
// Copy equal stuff to new object
// DO NOT COPY TypeMeta
dst.ObjectMeta = src.ObjectMeta
dst.Spec.Version = src.Spec.Version
for _, srcWl := range src.Spec.Workloads {
dst.Spec.Workloads = append(dst.Spec.Workloads, KeptnWorkloadRef{
Name: srcWl.Name,
Version: srcWl.Version,
})
}
dst.Status.CurrentVersion = src.Status.CurrentVersion
dst.Spec.Revision = src.Spec.Revision
return nil
}