@@ -10,6 +10,45 @@ import (
1010 clusterv1alpha1 "sigs.k8s.io/cluster-api/pkg/apis/cluster/v1alpha1"
1111)
1212
13+ type machineDeploymentWithProviderSpecAndProviderConfig struct {
14+ metav1.TypeMeta `json:",inline"`
15+ metav1.ObjectMeta `json:"metadata,omitempty"`
16+
17+ Spec machineDeploymentSpecWithProviderSpecAndProviderConfig `json:"spec,omitempty"`
18+ Status clusterv1alpha1.MachineDeploymentStatus `json:"status,omitempty"`
19+ }
20+
21+ type machineDeploymentSpecWithProviderSpecAndProviderConfig struct {
22+ Replicas * int32 `json:"replicas,omitempty"`
23+ Selector metav1.LabelSelector `json:"selector"`
24+ Template machineTemplateSpecWithProviderSpecAndProviderConfig `json:"template"`
25+ Strategy * clusterv1alpha1.MachineDeploymentStrategy `json:"strategy,omitempty"`
26+ MinReadySeconds * int32 `json:"minReadySeconds,omitempty"`
27+ RevisionHistoryLimit * int32 `json:"revisionHistoryLimit,omitempty"`
28+ Paused bool `json:"paused,omitempty"`
29+ ProgressDeadlineSeconds * int32 `json:"progressDeadlineSeconds,omitempty"`
30+ }
31+
32+ type machineSetWithProviderSpecAndProviderConfig struct {
33+ metav1.TypeMeta `json:",inline"`
34+ metav1.ObjectMeta `json:"metadata,omitempty"`
35+
36+ Spec machineSetSpecWithProviderSpecAndProviderConfig `json:"spec,omitempty"`
37+ Status clusterv1alpha1.MachineSetStatus `json:"status,omitempty"`
38+ }
39+
40+ type machineSetSpecWithProviderSpecAndProviderConfig struct {
41+ Replicas * int32 `json:"replicas,omitempty"`
42+ MinReadySeconds int32 `json:"minReadySeconds,omitempty"`
43+ Selector metav1.LabelSelector `json:"selector"`
44+ Template machineTemplateSpecWithProviderSpecAndProviderConfig `json:"template,omitempty"`
45+ }
46+
47+ type machineTemplateSpecWithProviderSpecAndProviderConfig struct {
48+ metav1.ObjectMeta `json:"metadata,omitempty"`
49+ Spec machineSpecWithProviderSpecAndProviderConfig `json:"spec,omitempty"`
50+ }
51+
1352type machineWithProviderSpecAndProviderConfig struct {
1453 metav1.TypeMeta `json:",inline"`
1554 metav1.ObjectMeta `json:"metadata,omitempty"`
@@ -27,7 +66,59 @@ type machineSpecWithProviderSpecAndProviderConfig struct {
2766 ConfigSource * corev1.NodeConfigSource `json:"configSource,omitempty"`
2867}
2968
30- func Convert_ProviderConfig_To_ProviderSpec (in []byte ) (* clusterv1alpha1.Machine , bool , error ) {
69+ func Convert_MachineDeployment_ProviderConfig_To_ProviderSpec (in []byte ) (* clusterv1alpha1.MachineDeployment , bool , error ) {
70+ var wasConverted bool
71+ superMachineDeployment := & machineDeploymentWithProviderSpecAndProviderConfig {}
72+ if err := json .Unmarshal (in , superMachineDeployment ); err != nil {
73+ return nil , wasConverted , fmt .Errorf ("error unmarshalling machineDeployment object: %v" , err )
74+ }
75+ if superMachineDeployment .Spec .Template .Spec .ProviderConfig != nil && superMachineDeployment .Spec .Template .Spec .ProviderSpec != nil {
76+ return nil , wasConverted , fmt .Errorf ("both .spec.template.spec.providerConfig and .spec.template.spec.providerSpec were non-nil for machineDeployment %s" , superMachineDeployment .Name )
77+ }
78+ if superMachineDeployment .Spec .Template .Spec .ProviderConfig != nil {
79+ superMachineDeployment .Spec .Template .Spec .ProviderSpec = superMachineDeployment .Spec .Template .Spec .ProviderConfig
80+ superMachineDeployment .Spec .Template .Spec .ProviderConfig = nil
81+ wasConverted = true
82+ }
83+
84+ machineDeployment := & clusterv1alpha1.MachineDeployment {}
85+ superMachineDeploymentBytes , err := json .Marshal (superMachineDeployment )
86+ if err != nil {
87+ return nil , wasConverted , fmt .Errorf ("failed to marshal superMachineDeployment object for machineDeployment %s: %v" , superMachineDeployment .Name , err )
88+ }
89+ if err := json .Unmarshal (superMachineDeploymentBytes , machineDeployment ); err != nil {
90+ return nil , wasConverted , fmt .Errorf ("failed to unmarshal superMachineDeployment object for machineDeployment %s back into machineDeployment object: %v" , superMachineDeployment .Name , err )
91+ }
92+ return machineDeployment , wasConverted , nil
93+ }
94+
95+ func Convert_MachineSet_ProviderConfig_To_ProviderSpec (in []byte ) (* clusterv1alpha1.MachineSet , bool , error ) {
96+ var wasConverted bool
97+ superMachineSet := & machineSetWithProviderSpecAndProviderConfig {}
98+ if err := json .Unmarshal (in , superMachineSet ); err != nil {
99+ return nil , wasConverted , fmt .Errorf ("error unmarshalling machineSet object: %v" , err )
100+ }
101+ if superMachineSet .Spec .Template .Spec .ProviderConfig != nil && superMachineSet .Spec .Template .Spec .ProviderSpec != nil {
102+ return nil , wasConverted , fmt .Errorf ("both .spec.template.spec.providerConfig and .spec.template.spec.providerSpec were non-nil for machineSet %s" , superMachineSet .Name )
103+ }
104+ if superMachineSet .Spec .Template .Spec .ProviderConfig != nil {
105+ superMachineSet .Spec .Template .Spec .ProviderSpec = superMachineSet .Spec .Template .Spec .ProviderConfig
106+ superMachineSet .Spec .Template .Spec .ProviderConfig = nil
107+ wasConverted = true
108+ }
109+
110+ machineSet := & clusterv1alpha1.MachineSet {}
111+ superMachineSetBytes , err := json .Marshal (superMachineSet )
112+ if err != nil {
113+ return nil , wasConverted , fmt .Errorf ("failed to marshal superMachineSet object for machineSet %s: %v" , superMachineSet .Name , err )
114+ }
115+ if err := json .Unmarshal (superMachineSetBytes , machineSet ); err != nil {
116+ return nil , wasConverted , fmt .Errorf ("failed to unmarshal superMachineSet object for machineSet %s back into machineSet object: %v" , superMachineSet .Name , err )
117+ }
118+ return machineSet , wasConverted , nil
119+ }
120+
121+ func Convert_Machine_ProviderConfig_To_ProviderSpec (in []byte ) (* clusterv1alpha1.Machine , bool , error ) {
31122 var wasConverted bool
32123
33124 superMachine := & machineWithProviderSpecAndProviderConfig {}
0 commit comments