-
Notifications
You must be signed in to change notification settings - Fork 1
/
runconfiguration_conversion.go
65 lines (54 loc) · 2.47 KB
/
runconfiguration_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
64
65
package v1alpha4
import (
"github.com/sky-uk/kfp-operator/apis/pipelines"
hub "github.com/sky-uk/kfp-operator/apis/pipelines/v1alpha5"
"sigs.k8s.io/controller-runtime/pkg/conversion"
)
func (src *RunConfiguration) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*hub.RunConfiguration)
v1alpha5remainder := hub.RunConfigurationConversionRemainder{}
if err := pipelines.RetrieveAndUnsetConversionAnnotations(src, &v1alpha5remainder); err != nil {
return err
}
dst.ObjectMeta = src.ObjectMeta
dst.Spec.Run.RuntimeParameters = hub.MergeRuntimeParameters(src.Spec.RuntimeParameters, v1alpha5remainder.ValueFromParameters)
dst.Spec.Run.Pipeline = hub.PipelineIdentifier{Name: src.Spec.Pipeline.Name, Version: src.Spec.Pipeline.Version}
dst.Spec.Triggers = v1alpha5remainder.Triggers
if src.Spec.Schedule != "" {
dst.Spec.Triggers.Schedules = append([]string{src.Spec.Schedule}, dst.Spec.Triggers.Schedules...)
}
dst.Spec.Run.Artifacts = v1alpha5remainder.Artifacts
dst.Spec.Run.ExperimentName = src.Spec.ExperimentName
dst.Status = hub.RunConfigurationStatus{
ObservedPipelineVersion: src.Status.ObservedPipelineVersion,
SynchronizationState: src.Status.SynchronizationState,
Provider: src.Status.ProviderId.Provider,
ObservedGeneration: src.Status.ObservedGeneration,
}
return nil
}
func (dst *RunConfiguration) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*hub.RunConfiguration)
v1alpha5remainder := hub.RunConfigurationConversionRemainder{}
dst.ObjectMeta = src.ObjectMeta
dst.Spec.RuntimeParameters, v1alpha5remainder.ValueFromParameters = hub.SplitRunTimeParameters(src.Spec.Run.RuntimeParameters)
dst.Spec.Pipeline = PipelineIdentifier{Name: src.Spec.Run.Pipeline.Name, Version: src.Spec.Run.Pipeline.Version}
v1alpha5remainder.Triggers = src.Spec.Triggers
if len(src.Spec.Triggers.Schedules) > 0 {
dst.Spec.Schedule = v1alpha5remainder.Triggers.Schedules[0]
v1alpha5remainder.Triggers.Schedules = v1alpha5remainder.Triggers.Schedules[1:]
}
v1alpha5remainder.Artifacts = src.Spec.Run.Artifacts
dst.Spec.ExperimentName = src.Spec.Run.ExperimentName
dst.Status = RunConfigurationStatus{
ObservedPipelineVersion: src.Status.ObservedPipelineVersion,
Status: Status{
SynchronizationState: src.Status.SynchronizationState,
ProviderId: ProviderAndId{
Provider: src.Status.Provider,
},
ObservedGeneration: src.Status.ObservedGeneration,
},
}
return pipelines.SetConversionAnnotations(dst, &v1alpha5remainder)
}