[KubeVirt] Add ipv6 subnet to k8s net

Related-PROD: KUBV-394
Change-Id: I39537fc576f1681aac1c57d4f64a847f35be5bce
diff --git a/hco/fragments/VMInstance.yaml b/hco/fragments/VMInstance.yaml
index b0eb789..53e0660 100644
--- a/hco/fragments/VMInstance.yaml
+++ b/hco/fragments/VMInstance.yaml
@@ -6,6 +6,8 @@
     type: string
   k8s_subnet_id:
     type: string
+  k8s_subnet_ipv6_id:
+    type: string
   public_net_id:
     type: string
   data_network:
@@ -38,6 +40,7 @@
       port_security_enabled: false
       fixed_ips:
         - subnet: { get_param: k8s_subnet_id }
+        - subnet: { get_param: k8s_subnet_ipv6_id }
 
   floating_ip_k8s_net:
     type: OS::Neutron::FloatingIP
diff --git a/hco/fragments/VMInstanceCeph.yaml b/hco/fragments/VMInstanceCeph.yaml
index 5304d5e..ad54722 100644
--- a/hco/fragments/VMInstanceCeph.yaml
+++ b/hco/fragments/VMInstanceCeph.yaml
@@ -6,6 +6,8 @@
     type: string
   k8s_subnet_id:
     type: string
+  k8s_subnet_ipv6_id:
+    type: string
   public_net_id:
     type: string
   data_network:
@@ -55,6 +57,7 @@
       port_security_enabled: false
       fixed_ips:
         - subnet: { get_param: k8s_subnet_id }
+        - subnet: { get_param: k8s_subnet_ipv6_id }
 
   floating_ip_k8s_net:
     type: OS::Neutron::FloatingIP
diff --git a/hco/top.yaml b/hco/top.yaml
index e8c4929..06bdb5b 100644
--- a/hco/top.yaml
+++ b/hco/top.yaml
@@ -32,6 +32,10 @@
     type: string
     description: The CIDR of k8s network
     default: '10.10.0.0/24'
+  k8s_network_ipv6_cidr:
+    type: string
+    description: The CIDR of k8s network IPV6
+    default: 'fd12:3456:789a:0a0a::/64'
   data_network_cidr:
     type: string
     description: The CIDR of k8s network
@@ -81,6 +85,13 @@
       enable_dhcp: false
       cidr: { get_param: k8s_network_cidr }
       dns_nameservers: { get_param: dns_nameservers }
+  k8s_subnet_ipv6:
+    type: OS::Neutron::Subnet
+    properties:
+      ip_version: 6
+      network: { get_resource: k8s_network }
+      enable_dhcp: false
+      cidr: { get_param: k8s_network_ipv6_cidr }
   router:
     type: OS::Neutron::Router
     properties:
@@ -135,6 +146,7 @@
         properties:
           k8s_network: { get_resource: k8s_network }
           k8s_subnet_id: { get_resource: k8s_subnet }
+          k8s_subnet_ipv6_id: { get_resource: k8s_subnet_ipv6 }
           public_net_id: { get_param: public_net_id }
           storage_frontend_network: { get_resource: storage_frontend_network }
           data_network: { get_resource: data_network }
@@ -157,6 +169,7 @@
         properties:
           k8s_network: { get_resource: k8s_network }
           k8s_subnet_id: { get_resource: k8s_subnet }
+          k8s_subnet_ipv6_id: { get_resource: k8s_subnet_ipv6 }
           public_net_id: { get_param: public_net_id }
           storage_frontend_network: { get_resource: storage_frontend_network }
           storage_backend_network: { get_resource: storage_backend_network }