@@ -23,13 +23,22 @@ class Plan(NamespacedResource):
2323 type (str, optional): Migration type. Valid values: "cold", "warm", "live", "conversion".
2424 pvc_name_template_use_generate_name (bool, optional): Whether to use generateName for PVC name templates.
2525 pvc_name_template (str, optional): Template for generating PVC names.
26+ volume_name_template (str, optional): Template for generating volume interface names in the target VM.
27+ network_name_template (str, optional): Template for generating network interface names in the target VM.
2628 skip_guest_conversion (bool, optional): Whether to skip guest conversion.
2729 target_power_state (str, optional): Specifies the desired power state of the target VM after migration.
2830 - "on": Target VM will be powered on after migration
2931 - "off": Target VM will be powered off after migration
3032 - "auto" or None (default): Target VM will match the source VM's power state
3133 use_compatibility_mode (bool, optional): Whether to use compatibility mode.
3234 migrate_shared_disks (bool, optional): Whether to migrate shared disks.
35+ preserve_static_ips (bool, optional): Whether to preserve static IPs during migration.
36+ target_node_selector (dict, optional): Node selector for the target VM. Specifies which node labels
37+ should be used for NodeSelector parameter of VMI resource.
38+ target_labels (dict, optional): Labels to be applied to the target VM. Specifies which labels
39+ should be added to the target VM resource.
40+ target_affinity (dict, optional): Affinity rules for the target VM. Specifies which affinity
41+ rules should be applied to the target VM resource.
3342 """
3443
3544 api_group = NamespacedResource .ApiGroup .FORKLIFT_KONVEYOR_IO
@@ -54,10 +63,16 @@ def __init__(
5463 type : str | None = None ,
5564 pvc_name_template_use_generate_name : bool | None = None ,
5665 pvc_name_template : str | None = None ,
66+ volume_name_template : str | None = None ,
67+ network_name_template : str | None = None ,
5768 skip_guest_conversion : bool | None = None ,
5869 target_power_state : str | None = None ,
5970 use_compatibility_mode : bool | None = None ,
6071 migrate_shared_disks : bool | None = None ,
72+ preserve_static_ips : bool | None = None ,
73+ target_node_selector : dict [str , str ] | None = None ,
74+ target_labels : dict [str , str ] | None = None ,
75+ target_affinity : dict [str , Any ] | None = None ,
6176 ** kwargs : Any ,
6277 ) -> None :
6378 super ().__init__ (** kwargs )
@@ -80,10 +95,16 @@ def __init__(
8095 self .type = type
8196 self .pvc_name_template_use_generate_name = pvc_name_template_use_generate_name
8297 self .pvc_name_template = pvc_name_template
98+ self .volume_name_template = volume_name_template
99+ self .network_name_template = network_name_template
83100 self .skip_guest_conversion = skip_guest_conversion
84101 self .target_power_state = target_power_state
85102 self .use_compatibility_mode = use_compatibility_mode
86103 self .migrate_shared_disks = migrate_shared_disks
104+ self .preserve_static_ips = preserve_static_ips
105+ self .target_node_selector = target_node_selector
106+ self .target_labels = target_labels
107+ self .target_affinity = target_affinity
87108
88109 if self .pre_hook_name and self .pre_hook_namespace :
89110 self .hooks_array .append (
@@ -150,6 +171,12 @@ def to_dict(self) -> None:
150171 if self .pvc_name_template is not None :
151172 spec ["pvcNameTemplate" ] = self .pvc_name_template
152173
174+ if self .volume_name_template is not None :
175+ spec ["volumeNameTemplate" ] = self .volume_name_template
176+
177+ if self .network_name_template is not None :
178+ spec ["networkNameTemplate" ] = self .network_name_template
179+
153180 if self .skip_guest_conversion is not None :
154181 spec ["skipGuestConversion" ] = self .skip_guest_conversion
155182
@@ -162,6 +189,18 @@ def to_dict(self) -> None:
162189 if self .migrate_shared_disks is not None :
163190 spec ["migrateSharedDisks" ] = self .migrate_shared_disks
164191
192+ if self .preserve_static_ips is not None :
193+ spec ["preserveStaticIPs" ] = self .preserve_static_ips
194+
195+ if self .target_node_selector is not None :
196+ spec ["targetNodeSelector" ] = self .target_node_selector
197+
198+ if self .target_labels is not None :
199+ spec ["targetLabels" ] = self .target_labels
200+
201+ if self .target_affinity is not None :
202+ spec ["targetAffinity" ] = self .target_affinity
203+
165204 def _generate_hook_spec (self , hook_name : str , hook_namespace : str , hook_type : str ) -> dict [str , Any ]:
166205 return {
167206 "hook" : {
0 commit comments