From 49977444ef6dbca80e05bb1282e7330ae7dc9b90 Mon Sep 17 00:00:00 2001 From: siva-muni Date: Mon, 4 Jul 2022 18:42:21 +0530 Subject: [PATCH] Added new variables --- cluster/defaults.go | 160 ++++++++++++++-------- cluster/network.go | 319 ++++++++++++++++++++++++-------------------- types/rke_types.go | 137 ++++++++++--------- 3 files changed, 352 insertions(+), 264 deletions(-) diff --git a/cluster/defaults.go b/cluster/defaults.go index a6317fab..4a087a9c 100644 --- a/cluster/defaults.go +++ b/cluster/defaults.go @@ -72,35 +72,46 @@ const ( DefaultCanalFlexVolPluginDirectory = "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent~uds" - DefaultAciApicRefreshTime = "1200" - DefaultAciOVSMemoryLimit = "1Gi" - DefaultAciImagePullPolicy = "Always" - DefaultAciServiceMonitorInterval = "5" - DefaultAciPBRTrackingNonSnat = "false" - DefaultAciInstallIstio = "false" - DefaultAciIstioProfile = "demo" - DefaultAciDropLogEnable = "true" - DefaultAciControllerLogLevel = "info" - DefaultAciHostAgentLogLevel = "info" - DefaultAciOpflexAgentLogLevel = "info" - DefaultAciUseAciCniPriorityClass = "false" - DefaultAciNoPriorityClass = "false" - DefaultAciMaxNodesSvcGraph = "32" - DefaultAciSnatContractScope = "global" - DefaultAciSnatNamespace = "aci-containers-system" - DefaultAciCApic = "false" - DefaultAciPodSubnetChunkSize = "32" - DefaultAciSnatPortRangeStart = "5000" - DefaultAciSnatPortRangeEnd = "65000" - DefaultAciSnatPortsPerNode = "3000" - DefaultAciUseHostNetnsVolume = "false" - DefaultAciRunGbpContainer = "false" - DefaultAciRunOpflexServerContainer = "false" - DefaultAciUseAciAnywhereCRD = "false" - DefaultAciEnableEndpointSlice = "false" - DefaultAciOpflexClientSSL = "true" - DefaultAciUsePrivilegedContainer = "false" - DefaultAciUseOpflexServerVolume = "false" + DefaultAciApicRefreshTime = "1200" + DefaultAciOVSMemoryLimit = "1Gi" + DefaultAciImagePullPolicy = "Always" + DefaultAciServiceMonitorInterval = "5" + DefaultAciPBRTrackingNonSnat = "false" + DefaultAciInstallIstio = "false" + DefaultAciIstioProfile = "demo" + DefaultAciDropLogEnable = "true" + DefaultAciControllerLogLevel = "info" + DefaultAciHostAgentLogLevel = "info" + DefaultAciOpflexAgentLogLevel = "info" + DefaultAciUseAciCniPriorityClass = "false" + DefaultAciNoPriorityClass = "false" + DefaultAciMaxNodesSvcGraph = "32" + DefaultAciSnatContractScope = "global" + DefaultAciSnatNamespace = "aci-containers-system" + DefaultAciCApic = "false" + DefaultAciPodSubnetChunkSize = "32" + DefaultAciSnatPortRangeStart = "5000" + DefaultAciSnatPortRangeEnd = "65000" + DefaultAciSnatPortsPerNode = "3000" + DefaultAciUseHostNetnsVolume = "false" + DefaultAciRunGbpContainer = "false" + DefaultAciRunOpflexServerContainer = "false" + DefaultAciUseAciAnywhereCRD = "false" + DefaultAciEnableEndpointSlice = "false" + DefaultAciOpflexClientSSL = "true" + DefaultAciUsePrivilegedContainer = "false" + DefaultAciUseOpflexServerVolume = "false" + DefaultAciDurationWaitForNetwork = "210" + DefaultAciUseClusterRole = "true" + DefaultAciDisableWaitForNetwork = "false" + DefaultAciApicSubscriptionDelay = "0" + DefaultAciApicRefreshTickerAdjust = "0" + DefaultAciDisablePeriodicSnatGlobalInfoSync = "false" + DefaultAciOpflexDeviceDeleteTimeout = "0" + DefaultAciMTUHeadRoom = "0" + DefaultAciNodePodIfEnable = "false" + DefaultAciSriovEnable = "false" + DefaultAciMultusDisable = "true" KubeAPIArgAdmissionControlConfigFile = "admission-control-config-file" DefaultKubeAPIArgAdmissionControlConfigFileValue = "/etc/kubernetes/admission.yaml" @@ -617,35 +628,46 @@ func (c *Cluster) setClusterNetworkDefaults() { } case AciNetworkPlugin: networkPluginConfigDefaultsMap = map[string]string{ - AciOVSMemoryLimit: DefaultAciOVSMemoryLimit, - AciImagePullPolicy: DefaultAciImagePullPolicy, - AciPBRTrackingNonSnat: DefaultAciPBRTrackingNonSnat, - AciInstallIstio: DefaultAciInstallIstio, - AciIstioProfile: DefaultAciIstioProfile, - AciDropLogEnable: DefaultAciDropLogEnable, - AciControllerLogLevel: DefaultAciControllerLogLevel, - AciHostAgentLogLevel: DefaultAciHostAgentLogLevel, - AciOpflexAgentLogLevel: DefaultAciOpflexAgentLogLevel, - AciApicRefreshTime: DefaultAciApicRefreshTime, - AciServiceMonitorInterval: DefaultAciServiceMonitorInterval, - AciUseAciCniPriorityClass: DefaultAciUseAciCniPriorityClass, - AciNoPriorityClass: DefaultAciNoPriorityClass, - AciMaxNodesSvcGraph: DefaultAciMaxNodesSvcGraph, - AciSnatContractScope: DefaultAciSnatContractScope, - AciPodSubnetChunkSize: DefaultAciPodSubnetChunkSize, - AciEnableEndpointSlice: DefaultAciEnableEndpointSlice, - AciSnatNamespace: DefaultAciSnatNamespace, - AciSnatPortRangeStart: DefaultAciSnatPortRangeStart, - AciSnatPortRangeEnd: DefaultAciSnatPortRangeEnd, - AciSnatPortsPerNode: DefaultAciSnatPortsPerNode, - AciOpflexClientSSL: DefaultAciOpflexClientSSL, - AciUsePrivilegedContainer: DefaultAciUsePrivilegedContainer, - AciUseOpflexServerVolume: DefaultAciUseOpflexServerVolume, - AciUseHostNetnsVolume: DefaultAciUseHostNetnsVolume, - AciCApic: DefaultAciCApic, - AciUseAciAnywhereCRD: DefaultAciUseAciAnywhereCRD, - AciRunGbpContainer: DefaultAciRunGbpContainer, - AciRunOpflexServerContainer: DefaultAciRunOpflexServerContainer, + AciOVSMemoryLimit: DefaultAciOVSMemoryLimit, + AciImagePullPolicy: DefaultAciImagePullPolicy, + AciPBRTrackingNonSnat: DefaultAciPBRTrackingNonSnat, + AciInstallIstio: DefaultAciInstallIstio, + AciIstioProfile: DefaultAciIstioProfile, + AciDropLogEnable: DefaultAciDropLogEnable, + AciControllerLogLevel: DefaultAciControllerLogLevel, + AciHostAgentLogLevel: DefaultAciHostAgentLogLevel, + AciOpflexAgentLogLevel: DefaultAciOpflexAgentLogLevel, + AciApicRefreshTime: DefaultAciApicRefreshTime, + AciServiceMonitorInterval: DefaultAciServiceMonitorInterval, + AciUseAciCniPriorityClass: DefaultAciUseAciCniPriorityClass, + AciNoPriorityClass: DefaultAciNoPriorityClass, + AciMaxNodesSvcGraph: DefaultAciMaxNodesSvcGraph, + AciSnatContractScope: DefaultAciSnatContractScope, + AciPodSubnetChunkSize: DefaultAciPodSubnetChunkSize, + AciEnableEndpointSlice: DefaultAciEnableEndpointSlice, + AciSnatNamespace: DefaultAciSnatNamespace, + AciSnatPortRangeStart: DefaultAciSnatPortRangeStart, + AciSnatPortRangeEnd: DefaultAciSnatPortRangeEnd, + AciSnatPortsPerNode: DefaultAciSnatPortsPerNode, + AciOpflexClientSSL: DefaultAciOpflexClientSSL, + AciUsePrivilegedContainer: DefaultAciUsePrivilegedContainer, + AciUseOpflexServerVolume: DefaultAciUseOpflexServerVolume, + AciUseHostNetnsVolume: DefaultAciUseHostNetnsVolume, + AciCApic: DefaultAciCApic, + AciUseAciAnywhereCRD: DefaultAciUseAciAnywhereCRD, + AciRunGbpContainer: DefaultAciRunGbpContainer, + AciRunOpflexServerContainer: DefaultAciRunOpflexServerContainer, + AciDurationWaitForNetwork: DefaultAciDurationWaitForNetwork, + AciUseClusterRole: DefaultAciUseClusterRole, + AciDisableWaitForNetwork: DefaultAciDisableWaitForNetwork, + AciApicSubscriptionDelay: DefaultAciApicSubscriptionDelay, + AciApicRefreshTickerAdjust: DefaultAciApicRefreshTickerAdjust, + AciDisablePeriodicSnatGlobalInfoSync: DefaultAciDisablePeriodicSnatGlobalInfoSync, + AciOpflexDeviceDeleteTimeout: DefaultAciOpflexDeviceDeleteTimeout, + AciMTUHeadRoom: DefaultAciMTUHeadRoom, + AciNodePodIfEnable: DefaultAciNodePodIfEnable, + AciSriovEnable: DefaultAciSriovEnable, + AciMultusDisable: DefaultAciMultusDisable, } } if c.Network.CalicoNetworkProvider != nil { @@ -691,6 +713,17 @@ func (c *Cluster) setClusterNetworkDefaults() { setDefaultIfEmpty(&c.Network.AciNetworkProvider.UseAciAnywhereCRD, DefaultAciUseAciAnywhereCRD) setDefaultIfEmpty(&c.Network.AciNetworkProvider.RunGbpContainer, DefaultAciRunGbpContainer) setDefaultIfEmpty(&c.Network.AciNetworkProvider.RunOpflexServerContainer, DefaultAciRunOpflexServerContainer) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.SriovEnable, DefaultAciSriovEnable) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.NodePodIfEnable, DefaultAciNodePodIfEnable) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.MultusDisable, DefaultAciMultusDisable) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.DisablePeriodicSnatGlobalInfoSync, DefaultAciDisablePeriodicSnatGlobalInfoSync) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.ApicSubscriptionDelay, DefaultAciApicSubscriptionDelay) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.ApicRefreshTickerAdjust, DefaultAciApicRefreshTickerAdjust) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.OpflexDeviceDeleteTimeout, DefaultAciOpflexDeviceDeleteTimeout) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.MTUHeadRoom, DefaultAciMTUHeadRoom) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.DurationWaitForNetwork, DefaultAciDurationWaitForNetwork) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.DisableWaitForNetwork, DefaultAciDisableWaitForNetwork) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.UseClusterRole, DefaultAciUseClusterRole) networkPluginConfigDefaultsMap[AciOVSMemoryLimit] = c.Network.AciNetworkProvider.OVSMemoryLimit networkPluginConfigDefaultsMap[AciImagePullPolicy] = c.Network.AciNetworkProvider.ImagePullPolicy networkPluginConfigDefaultsMap[AciPBRTrackingNonSnat] = c.Network.AciNetworkProvider.PBRTrackingNonSnat @@ -719,6 +752,17 @@ func (c *Cluster) setClusterNetworkDefaults() { networkPluginConfigDefaultsMap[AciUseAciAnywhereCRD] = c.Network.AciNetworkProvider.UseAciAnywhereCRD networkPluginConfigDefaultsMap[AciRunGbpContainer] = c.Network.AciNetworkProvider.RunGbpContainer networkPluginConfigDefaultsMap[AciRunOpflexServerContainer] = c.Network.AciNetworkProvider.RunOpflexServerContainer + networkPluginConfigDefaultsMap[AciDurationWaitForNetwork] = c.Network.AciNetworkProvider.DurationWaitForNetwork + networkPluginConfigDefaultsMap[AciDisableWaitForNetwork] = c.Network.AciNetworkProvider.DisableWaitForNetwork + networkPluginConfigDefaultsMap[AciUseClusterRole] = c.Network.AciNetworkProvider.UseClusterRole + networkPluginConfigDefaultsMap[AciApicSubscriptionDelay] = c.Network.AciNetworkProvider.ApicSubscriptionDelay + networkPluginConfigDefaultsMap[AciApicRefreshTickerAdjust] = c.Network.AciNetworkProvider.ApicRefreshTickerAdjust + networkPluginConfigDefaultsMap[AciDisablePeriodicSnatGlobalInfoSync] = c.Network.AciNetworkProvider.DisablePeriodicSnatGlobalInfoSync + networkPluginConfigDefaultsMap[AciOpflexDeviceDeleteTimeout] = c.Network.AciNetworkProvider.OpflexDeviceDeleteTimeout + networkPluginConfigDefaultsMap[AciMTUHeadRoom] = c.Network.AciNetworkProvider.MTUHeadRoom + networkPluginConfigDefaultsMap[AciNodePodIfEnable] = c.Network.AciNetworkProvider.NodePodIfEnable + networkPluginConfigDefaultsMap[AciSriovEnable] = c.Network.AciNetworkProvider.SriovEnable + networkPluginConfigDefaultsMap[AciMultusDisable] = c.Network.AciNetworkProvider.MultusDisable networkPluginConfigDefaultsMap[AciSystemIdentifier] = c.Network.AciNetworkProvider.SystemIdentifier networkPluginConfigDefaultsMap[AciToken] = c.Network.AciNetworkProvider.Token networkPluginConfigDefaultsMap[AciApicUserName] = c.Network.AciNetworkProvider.ApicUserName diff --git a/cluster/network.go b/cluster/network.go index af307cbb..66ad4d9e 100644 --- a/cluster/network.go +++ b/cluster/network.go @@ -75,67 +75,78 @@ const ( WeaveNetworkAppName = "weave-net" WeaveNetPriorityClassNameKeyName = "weave_net_priority_class_name" - AciNetworkPlugin = "aci" - AciOVSMemoryLimit = "aci_ovs_memory_limit" - AciImagePullPolicy = "aci_image_pull_policy" - AciPBRTrackingNonSnat = "aci_pbr_tracking_non_snat" - AciInstallIstio = "aci_install_istio" - AciIstioProfile = "aci_istio_profile" - AciDropLogEnable = "aci_drop_log_enable" - AciControllerLogLevel = "aci_controller_log_level" - AciHostAgentLogLevel = "aci_host_agent_log_level" - AciOpflexAgentLogLevel = "aci_opflex_agent_log_level" - AciApicRefreshTime = "aci_apic_refresh_time" - AciServiceMonitorInterval = "aci_server_monitor_interval" - AciSystemIdentifier = "aci_system_identifier" - AciToken = "aci_token" - AciApicUserName = "aci_apic_user_name" - AciApicUserKey = "aci_apic_user_key" - AciApicUserCrt = "aci_apic_user_crt" - AciVmmDomain = "aci_vmm_domain" - AciVmmController = "aci_vmm_controller" - AciEncapType = "aci_encap_type" - AciAEP = "aci_aep" - AciVRFName = "aci_vrf_name" - AciVRFTenant = "aci_vrf_tenant" - AciL3Out = "aci_l3out" - AciDynamicExternalSubnet = "aci_dynamic_external_subnet" - AciStaticExternalSubnet = "aci_static_external_subnet" - AciServiceGraphSubnet = "aci_service_graph_subnet" - AciKubeAPIVlan = "aci_kubeapi_vlan" - AciServiceVlan = "aci_service_vlan" - AciInfraVlan = "aci_infra_vlan" - AciImagePullSecret = "aci_image_pull_secret" - AciTenant = "aci_tenant" - AciNodeSubnet = "aci_node_subnet" - AciMcastRangeStart = "aci_mcast_range_start" - AciMcastRangeEnd = "aci_mcast_range_end" - AciUseAciCniPriorityClass = "aci_use_aci_cni_priority_class" - AciNoPriorityClass = "aci_no_priority_class" - AciMaxNodesSvcGraph = "aci_max_nodes_svc_graph" - AciSnatContractScope = "aci_snat_contract_scope" - AciPodSubnetChunkSize = "aci_pod_subnet_chunk_size" - AciEnableEndpointSlice = "aci_enable_endpoint_slice" - AciSnatNamespace = "aci_snat_namespace" - AciEpRegistry = "aci_ep_registry" - AciOpflexMode = "aci_opflex_mode" - AciSnatPortRangeStart = "aci_snat_port_range_start" - AciSnatPortRangeEnd = "aci_snat_port_range_end" - AciSnatPortsPerNode = "aci_snat_ports_per_node" - AciOpflexClientSSL = "aci_opflex_client_ssl" - AciUsePrivilegedContainer = "aci_use_privileged_container" - AciUseHostNetnsVolume = "aci_use_host_netns_volume" - AciUseOpflexServerVolume = "aci_use_opflex_server_volume" - AciKafkaClientCrt = "aci_kafka_client_crt" - AciKafkaClientKey = "aci_kafka_client_key" - AciSubnetDomainName = "aci_subnet_domain_name" - AciCApic = "aci_capic" - AciUseAciAnywhereCRD = "aci_use_aci_anywhere_crd" - AciOverlayVRFName = "aci_overlay_vrf_name" - AciGbpPodSubnet = "aci_gbp_pod_subnet" - AciRunGbpContainer = "aci_run_gbp_container" - AciRunOpflexServerContainer = "aci_run_opflex_server_container" - AciOpflexServerPort = "aci_opflex_server_port" + AciNetworkPlugin = "aci" + AciOVSMemoryLimit = "aci_ovs_memory_limit" + AciImagePullPolicy = "aci_image_pull_policy" + AciPBRTrackingNonSnat = "aci_pbr_tracking_non_snat" + AciInstallIstio = "aci_install_istio" + AciIstioProfile = "aci_istio_profile" + AciDropLogEnable = "aci_drop_log_enable" + AciControllerLogLevel = "aci_controller_log_level" + AciHostAgentLogLevel = "aci_host_agent_log_level" + AciOpflexAgentLogLevel = "aci_opflex_agent_log_level" + AciApicRefreshTime = "aci_apic_refresh_time" + AciServiceMonitorInterval = "aci_server_monitor_interval" + AciSystemIdentifier = "aci_system_identifier" + AciToken = "aci_token" + AciApicUserName = "aci_apic_user_name" + AciApicUserKey = "aci_apic_user_key" + AciApicUserCrt = "aci_apic_user_crt" + AciVmmDomain = "aci_vmm_domain" + AciVmmController = "aci_vmm_controller" + AciEncapType = "aci_encap_type" + AciAEP = "aci_aep" + AciVRFName = "aci_vrf_name" + AciVRFTenant = "aci_vrf_tenant" + AciL3Out = "aci_l3out" + AciDynamicExternalSubnet = "aci_dynamic_external_subnet" + AciStaticExternalSubnet = "aci_static_external_subnet" + AciServiceGraphSubnet = "aci_service_graph_subnet" + AciKubeAPIVlan = "aci_kubeapi_vlan" + AciServiceVlan = "aci_service_vlan" + AciInfraVlan = "aci_infra_vlan" + AciImagePullSecret = "aci_image_pull_secret" + AciTenant = "aci_tenant" + AciNodeSubnet = "aci_node_subnet" + AciMcastRangeStart = "aci_mcast_range_start" + AciMcastRangeEnd = "aci_mcast_range_end" + AciUseAciCniPriorityClass = "aci_use_aci_cni_priority_class" + AciNoPriorityClass = "aci_no_priority_class" + AciMaxNodesSvcGraph = "aci_max_nodes_svc_graph" + AciSnatContractScope = "aci_snat_contract_scope" + AciPodSubnetChunkSize = "aci_pod_subnet_chunk_size" + AciEnableEndpointSlice = "aci_enable_endpoint_slice" + AciSnatNamespace = "aci_snat_namespace" + AciEpRegistry = "aci_ep_registry" + AciOpflexMode = "aci_opflex_mode" + AciSnatPortRangeStart = "aci_snat_port_range_start" + AciSnatPortRangeEnd = "aci_snat_port_range_end" + AciSnatPortsPerNode = "aci_snat_ports_per_node" + AciOpflexClientSSL = "aci_opflex_client_ssl" + AciUsePrivilegedContainer = "aci_use_privileged_container" + AciUseHostNetnsVolume = "aci_use_host_netns_volume" + AciUseOpflexServerVolume = "aci_use_opflex_server_volume" + AciKafkaClientCrt = "aci_kafka_client_crt" + AciKafkaClientKey = "aci_kafka_client_key" + AciSubnetDomainName = "aci_subnet_domain_name" + AciCApic = "aci_capic" + AciUseAciAnywhereCRD = "aci_use_aci_anywhere_crd" + AciOverlayVRFName = "aci_overlay_vrf_name" + AciGbpPodSubnet = "aci_gbp_pod_subnet" + AciRunGbpContainer = "aci_run_gbp_container" + AciRunOpflexServerContainer = "aci_run_opflex_server_container" + AciOpflexServerPort = "aci_opflex_server_port" + AciDurationWaitForNetwork = "aci_duration_wait_for_network" + AciDisableWaitForNetwork = "aci_disable_wait_for_network" + AciUseClusterRole = "aci_use_cluster_role" + AciApicSubscriptionDelay = "aci_apic_subscription_delay" + AciApicRefreshTickerAdjust = "aci_apic_refresh_ticker_adjust" + AciDisablePeriodicSnatGlobalInfoSync = "aci_disable_periodic_snat_global_info_sync" + AciOpflexDeviceDeleteTimeout = "aci_opflex_device_delete_timeout" + AciMTUHeadRoom = "aci_mtu_head_room" + AciNodePodIfEnable = "aci_node_pod_if_enable" + AciSriovEnable = "aci_sriov_enable" + AciMultusDisable = "aci_multus_disable" // List of map keys to be used with network templates // EtcdEndpoints is the server address for Etcd, used by calico @@ -261,6 +272,17 @@ const ( RunGbpContainer = "RunGbpContainer" RunOpflexServerContainer = "RunOpflexServerContainer" OpflexServerPort = "OpflexServerPort" + DurationWaitForNetwork = "DurationWaitForNetwork" + DisableWaitForNetwork = "DisableWaitForNetwork" + UseClusterRole = "UseClusterRole" + ApicSubscriptionDelay = "ApicSubscriptionDelay" + ApicRefreshTickerAdjust = "ApicRefreshTickerAdjust" + DisablePeriodicSnatGlobalInfoSync = "DisablePeriodicSnatGlobalInfoSync" + OpflexDeviceDeleteTimeout = "OpflexDeviceDeleteTimeout" + MTUHeadRoom = "MTUHeadRoom" + NodePodIfEnable = "NodePodIfEnable" + SriovEnable = "SriovEnable" + MultusDisable = "MultusDisable" OVSMemoryLimit = "OVSMemoryLimit" NodeSubnet = "NodeSubnet" NodeSelector = "NodeSelector" @@ -473,88 +495,99 @@ func (c *Cluster) doAciDeploy(ctx context.Context, data map[string]interface{}) } AciConfig := map[string]interface{}{ - SystemIdentifier: c.Network.Options[AciSystemIdentifier], - ApicHosts: c.Network.AciNetworkProvider.ApicHosts, - Token: c.Network.Options[AciToken], - ApicUserName: c.Network.Options[AciApicUserName], - ApicUserKey: c.Network.Options[AciApicUserKey], - ApicUserCrt: c.Network.Options[AciApicUserCrt], - ApicRefreshTime: c.Network.Options[AciApicRefreshTime], - VmmDomain: c.Network.Options[AciVmmDomain], - VmmController: c.Network.Options[AciVmmController], - EncapType: c.Network.Options[AciEncapType], - McastRangeStart: c.Network.Options[AciMcastRangeStart], - McastRangeEnd: c.Network.Options[AciMcastRangeEnd], - NodeSubnet: c.Network.Options[AciNodeSubnet], - AEP: c.Network.Options[AciAEP], - VRFName: c.Network.Options[AciVRFName], - VRFTenant: c.Network.Options[AciVRFTenant], - L3Out: c.Network.Options[AciL3Out], - L3OutExternalNetworks: c.Network.AciNetworkProvider.L3OutExternalNetworks, - DynamicExternalSubnet: c.Network.Options[AciDynamicExternalSubnet], - StaticExternalSubnet: c.Network.Options[AciStaticExternalSubnet], - ServiceGraphSubnet: c.Network.Options[AciServiceGraphSubnet], - KubeAPIVlan: c.Network.Options[AciKubeAPIVlan], - ServiceVlan: c.Network.Options[AciServiceVlan], - InfraVlan: c.Network.Options[AciInfraVlan], - ImagePullPolicy: c.Network.Options[AciImagePullPolicy], - ImagePullSecret: c.Network.Options[AciImagePullSecret], - Tenant: c.Network.Options[AciTenant], - ServiceMonitorInterval: c.Network.Options[AciServiceMonitorInterval], - PBRTrackingNonSnat: c.Network.Options[AciPBRTrackingNonSnat], - InstallIstio: c.Network.Options[AciInstallIstio], - IstioProfile: c.Network.Options[AciIstioProfile], - DropLogEnable: c.Network.Options[AciDropLogEnable], - ControllerLogLevel: c.Network.Options[AciControllerLogLevel], - HostAgentLogLevel: c.Network.Options[AciHostAgentLogLevel], - OpflexAgentLogLevel: c.Network.Options[AciOpflexAgentLogLevel], - OVSMemoryLimit: c.Network.Options[AciOVSMemoryLimit], - ClusterCIDR: c.ClusterCIDR, - StaticServiceIPStart: cidr.Inc(cidr.Inc(staticServiceIPStart)), - StaticServiceIPEnd: cidr.Dec(staticServiceIPEnd), - PodGateway: cidr.Inc(podIPStart), - PodIPStart: cidr.Inc(cidr.Inc(podIPStart)), - PodIPEnd: cidr.Dec(podIPEnd), - NodeServiceIPStart: cidr.Inc(cidr.Inc(nodeServiceIPStart)), - NodeServiceIPEnd: cidr.Dec(nodeServiceIPEnd), - ServiceIPStart: cidr.Inc(cidr.Inc(serviceIPStart)), - ServiceIPEnd: cidr.Dec(serviceIPEnd), - UseAciCniPriorityClass: c.Network.Options[AciUseAciCniPriorityClass], - NoPriorityClass: c.Network.Options[AciNoPriorityClass], - MaxNodesSvcGraph: c.Network.Options[AciMaxNodesSvcGraph], - SnatContractScope: c.Network.Options[AciSnatContractScope], - PodSubnetChunkSize: c.Network.Options[AciPodSubnetChunkSize], - EnableEndpointSlice: c.Network.Options[AciEnableEndpointSlice], - SnatNamespace: c.Network.Options[AciSnatNamespace], - EpRegistry: c.Network.Options[AciEpRegistry], - OpflexMode: c.Network.Options[AciOpflexMode], - SnatPortRangeStart: c.Network.Options[AciSnatPortRangeStart], - SnatPortRangeEnd: c.Network.Options[AciSnatPortRangeEnd], - SnatPortsPerNode: c.Network.Options[AciSnatPortsPerNode], - OpflexClientSSL: c.Network.Options[AciOpflexClientSSL], - UsePrivilegedContainer: c.Network.Options[AciUsePrivilegedContainer], - UseHostNetnsVolume: c.Network.Options[AciUseHostNetnsVolume], - UseOpflexServerVolume: c.Network.Options[AciUseOpflexServerVolume], - KafkaBrokers: c.Network.AciNetworkProvider.KafkaBrokers, - KafkaClientCrt: c.Network.Options[AciKafkaClientCrt], - KafkaClientKey: c.Network.Options[AciKafkaClientKey], - SubnetDomainName: c.Network.Options[AciSubnetDomainName], - CApic: c.Network.Options[AciCApic], - UseAciAnywhereCRD: c.Network.Options[AciUseAciAnywhereCRD], - OverlayVRFName: c.Network.Options[AciOverlayVRFName], - GbpPodSubnet: c.Network.Options[AciGbpPodSubnet], - RunGbpContainer: c.Network.Options[AciRunGbpContainer], - RunOpflexServerContainer: c.Network.Options[AciRunOpflexServerContainer], - OpflexServerPort: c.Network.Options[AciOpflexServerPort], - AciCniDeployContainer: c.SystemImages.AciCniDeployContainer, - AciHostContainer: c.SystemImages.AciHostContainer, - AciOpflexContainer: c.SystemImages.AciOpflexContainer, - AciMcastContainer: c.SystemImages.AciMcastContainer, - AciOpenvSwitchContainer: c.SystemImages.AciOpenvSwitchContainer, - AciControllerContainer: c.SystemImages.AciControllerContainer, - AciGbpServerContainer: c.SystemImages.AciGbpServerContainer, - AciOpflexServerContainer: c.SystemImages.AciOpflexServerContainer, - MTU: c.Network.MTU, + SystemIdentifier: c.Network.Options[AciSystemIdentifier], + ApicHosts: c.Network.AciNetworkProvider.ApicHosts, + Token: c.Network.Options[AciToken], + ApicUserName: c.Network.Options[AciApicUserName], + ApicUserKey: c.Network.Options[AciApicUserKey], + ApicUserCrt: c.Network.Options[AciApicUserCrt], + ApicRefreshTime: c.Network.Options[AciApicRefreshTime], + VmmDomain: c.Network.Options[AciVmmDomain], + VmmController: c.Network.Options[AciVmmController], + EncapType: c.Network.Options[AciEncapType], + McastRangeStart: c.Network.Options[AciMcastRangeStart], + McastRangeEnd: c.Network.Options[AciMcastRangeEnd], + NodeSubnet: c.Network.Options[AciNodeSubnet], + AEP: c.Network.Options[AciAEP], + VRFName: c.Network.Options[AciVRFName], + VRFTenant: c.Network.Options[AciVRFTenant], + L3Out: c.Network.Options[AciL3Out], + L3OutExternalNetworks: c.Network.AciNetworkProvider.L3OutExternalNetworks, + DynamicExternalSubnet: c.Network.Options[AciDynamicExternalSubnet], + StaticExternalSubnet: c.Network.Options[AciStaticExternalSubnet], + ServiceGraphSubnet: c.Network.Options[AciServiceGraphSubnet], + KubeAPIVlan: c.Network.Options[AciKubeAPIVlan], + ServiceVlan: c.Network.Options[AciServiceVlan], + InfraVlan: c.Network.Options[AciInfraVlan], + ImagePullPolicy: c.Network.Options[AciImagePullPolicy], + ImagePullSecret: c.Network.Options[AciImagePullSecret], + Tenant: c.Network.Options[AciTenant], + ServiceMonitorInterval: c.Network.Options[AciServiceMonitorInterval], + PBRTrackingNonSnat: c.Network.Options[AciPBRTrackingNonSnat], + InstallIstio: c.Network.Options[AciInstallIstio], + IstioProfile: c.Network.Options[AciIstioProfile], + DropLogEnable: c.Network.Options[AciDropLogEnable], + ControllerLogLevel: c.Network.Options[AciControllerLogLevel], + HostAgentLogLevel: c.Network.Options[AciHostAgentLogLevel], + OpflexAgentLogLevel: c.Network.Options[AciOpflexAgentLogLevel], + OVSMemoryLimit: c.Network.Options[AciOVSMemoryLimit], + ClusterCIDR: c.ClusterCIDR, + StaticServiceIPStart: cidr.Inc(cidr.Inc(staticServiceIPStart)), + StaticServiceIPEnd: cidr.Dec(staticServiceIPEnd), + PodGateway: cidr.Inc(podIPStart), + PodIPStart: cidr.Inc(cidr.Inc(podIPStart)), + PodIPEnd: cidr.Dec(podIPEnd), + NodeServiceIPStart: cidr.Inc(cidr.Inc(nodeServiceIPStart)), + NodeServiceIPEnd: cidr.Dec(nodeServiceIPEnd), + ServiceIPStart: cidr.Inc(cidr.Inc(serviceIPStart)), + ServiceIPEnd: cidr.Dec(serviceIPEnd), + UseAciCniPriorityClass: c.Network.Options[AciUseAciCniPriorityClass], + NoPriorityClass: c.Network.Options[AciNoPriorityClass], + MaxNodesSvcGraph: c.Network.Options[AciMaxNodesSvcGraph], + SnatContractScope: c.Network.Options[AciSnatContractScope], + PodSubnetChunkSize: c.Network.Options[AciPodSubnetChunkSize], + EnableEndpointSlice: c.Network.Options[AciEnableEndpointSlice], + SnatNamespace: c.Network.Options[AciSnatNamespace], + EpRegistry: c.Network.Options[AciEpRegistry], + OpflexMode: c.Network.Options[AciOpflexMode], + SnatPortRangeStart: c.Network.Options[AciSnatPortRangeStart], + SnatPortRangeEnd: c.Network.Options[AciSnatPortRangeEnd], + SnatPortsPerNode: c.Network.Options[AciSnatPortsPerNode], + OpflexClientSSL: c.Network.Options[AciOpflexClientSSL], + UsePrivilegedContainer: c.Network.Options[AciUsePrivilegedContainer], + UseHostNetnsVolume: c.Network.Options[AciUseHostNetnsVolume], + UseOpflexServerVolume: c.Network.Options[AciUseOpflexServerVolume], + KafkaBrokers: c.Network.AciNetworkProvider.KafkaBrokers, + KafkaClientCrt: c.Network.Options[AciKafkaClientCrt], + KafkaClientKey: c.Network.Options[AciKafkaClientKey], + SubnetDomainName: c.Network.Options[AciSubnetDomainName], + CApic: c.Network.Options[AciCApic], + UseAciAnywhereCRD: c.Network.Options[AciUseAciAnywhereCRD], + OverlayVRFName: c.Network.Options[AciOverlayVRFName], + GbpPodSubnet: c.Network.Options[AciGbpPodSubnet], + RunGbpContainer: c.Network.Options[AciRunGbpContainer], + RunOpflexServerContainer: c.Network.Options[AciRunOpflexServerContainer], + OpflexServerPort: c.Network.Options[AciOpflexServerPort], + DurationWaitForNetwork: c.Network.Options[AciDurationWaitForNetwork], + DisableWaitForNetwork: c.Network.Options[AciDisableWaitForNetwork], + UseClusterRole: c.Network.Options[AciUseClusterRole], + ApicSubscriptionDelay: c.Network.Options[AciApicSubscriptionDelay], + ApicRefreshTickerAdjust: c.Network.Options[AciApicRefreshTickerAdjust], + DisablePeriodicSnatGlobalInfoSync: c.Network.Options[AciDisablePeriodicSnatGlobalInfoSync], + OpflexDeviceDeleteTimeout: c.Network.Options[AciOpflexDeviceDeleteTimeout], + MTUHeadRoom: c.Network.Options[AciMTUHeadRoom], + NodePodIfEnable: c.Network.Options[AciNodePodIfEnable], + SriovEnable: c.Network.Options[AciSriovEnable], + MultusDisable: c.Network.Options[AciMultusDisable], + AciCniDeployContainer: c.SystemImages.AciCniDeployContainer, + AciHostContainer: c.SystemImages.AciHostContainer, + AciOpflexContainer: c.SystemImages.AciOpflexContainer, + AciMcastContainer: c.SystemImages.AciMcastContainer, + AciOpenvSwitchContainer: c.SystemImages.AciOpenvSwitchContainer, + AciControllerContainer: c.SystemImages.AciControllerContainer, + AciGbpServerContainer: c.SystemImages.AciGbpServerContainer, + AciOpflexServerContainer: c.SystemImages.AciOpflexServerContainer, + MTU: c.Network.MTU, } pluginYaml, err := c.getNetworkPluginManifest(AciConfig, data) diff --git a/types/rke_types.go b/types/rke_types.go index 6c88b765..daad15d9 100644 --- a/types/rke_types.go +++ b/types/rke_types.go @@ -587,69 +587,80 @@ type WeaveNetworkProvider struct { } type AciNetworkProvider struct { - SystemIdentifier string `yaml:"system_id,omitempty" json:"systemId,omitempty"` - ApicHosts []string `yaml:"apic_hosts" json:"apicHosts,omitempty"` - Token string `yaml:"token,omitempty" json:"token,omitempty"` - ApicUserName string `yaml:"apic_user_name,omitempty" json:"apicUserName,omitempty"` - ApicUserKey string `yaml:"apic_user_key,omitempty" json:"apicUserKey,omitempty"` - ApicUserCrt string `yaml:"apic_user_crt,omitempty" json:"apicUserCrt,omitempty"` - ApicRefreshTime string `yaml:"apic_refresh_time,omitempty" json:"apicRefreshTime,omitempty" norman:"default=1200"` - VmmDomain string `yaml:"vmm_domain,omitempty" json:"vmmDomain,omitempty"` - VmmController string `yaml:"vmm_controller,omitempty" json:"vmmController,omitempty"` - EncapType string `yaml:"encap_type,omitempty" json:"encapType,omitempty"` - NodeSubnet string `yaml:"node_subnet,omitempty" json:"nodeSubnet,omitempty"` - McastRangeStart string `yaml:"mcast_range_start,omitempty" json:"mcastRangeStart,omitempty"` - McastRangeEnd string `yaml:"mcast_range_end,omitempty" json:"mcastRangeEnd,omitempty"` - AEP string `yaml:"aep,omitempty" json:"aep,omitempty"` - VRFName string `yaml:"vrf_name,omitempty" json:"vrfName,omitempty"` - VRFTenant string `yaml:"vrf_tenant,omitempty" json:"vrfTenant,omitempty"` - L3Out string `yaml:"l3out,omitempty" json:"l3out,omitempty"` - L3OutExternalNetworks []string `yaml:"l3out_external_networks" json:"l3outExternalNetworks,omitempty"` - DynamicExternalSubnet string `yaml:"extern_dynamic,omitempty" json:"externDynamic,omitempty"` - StaticExternalSubnet string `yaml:"extern_static,omitempty" json:"externStatic,omitempty"` - ServiceGraphSubnet string `yaml:"node_svc_subnet,omitempty" json:"nodeSvcSubnet,omitempty"` - KubeAPIVlan string `yaml:"kube_api_vlan,omitempty" json:"kubeApiVlan,omitempty"` - ServiceVlan string `yaml:"service_vlan,omitempty" json:"serviceVlan,omitempty"` - InfraVlan string `yaml:"infra_vlan,omitempty" json:"infraVlan,omitempty"` - Tenant string `yaml:"tenant,omitempty" json:"tenant,omitempty"` - OVSMemoryLimit string `yaml:"ovs_memory_limit,omitempty" json:"ovsMemoryLimit,omitempty"` - ImagePullPolicy string `yaml:"image_pull_policy,omitempty" json:"imagePullPolicy,omitempty"` - ImagePullSecret string `yaml:"image_pull_secret,omitempty" json:"imagePullSecret,omitempty"` - ServiceMonitorInterval string `yaml:"service_monitor_interval,omitempty" json:"serviceMonitorInterval,omitempty"` - PBRTrackingNonSnat string `yaml:"pbr_tracking_non_snat,omitempty" json:"pbrTrackingNonSnat,omitempty"` - InstallIstio string `yaml:"install_istio,omitempty" json:"installIstio,omitempty"` - IstioProfile string `yaml:"istio_profile,omitempty" json:"istioProfile,omitempty"` - DropLogEnable string `yaml:"drop_log_enable,omitempty" json:"dropLogEnable,omitempty"` - ControllerLogLevel string `yaml:"controller_log_level,omitempty" json:"controllerLogLevel,omitempty"` - HostAgentLogLevel string `yaml:"host_agent_log_level,omitempty" json:"hostAgentLogLevel,omitempty"` - OpflexAgentLogLevel string `yaml:"opflex_log_level,omitempty" json:"opflexLogLevel,omitempty"` - UseAciCniPriorityClass string `yaml:"use_aci_cni_priority_class,omitempty" json:"useAciCniPriorityClass,omitempty"` - NoPriorityClass string `yaml:"no_priority_class,omitempty" json:"noPriorityClass,omitempty"` - MaxNodesSvcGraph string `yaml:"max_nodes_svc_graph,omitempty" json:"maxNodesSvcGraph,omitempty"` - SnatContractScope string `yaml:"snat_contract_scope,omitempty" json:"snatContractScope,omitempty"` - PodSubnetChunkSize string `yaml:"pod_subnet_chunk_size,omitempty" json:"podSubnetChunkSize,omitempty"` - EnableEndpointSlice string `yaml:"enable_endpoint_slice,omitempty" json:"enableEndpointSlice,omitempty"` - SnatNamespace string `yaml:"snat_namespace,omitempty" json:"snatNamespace,omitempty"` - EpRegistry string `yaml:"ep_registry,omitempty" json:"epRegistry,omitempty"` - OpflexMode string `yaml:"opflex_mode,omitempty" json:"opflexMode,omitempty"` - SnatPortRangeStart string `yaml:"snat_port_range_start,omitempty" json:"snatPortRangeStart,omitempty"` - SnatPortRangeEnd string `yaml:"snat_port_range_end,omitempty" json:"snatPortRangeEnd,omitempty"` - SnatPortsPerNode string `yaml:"snat_ports_per_node,omitempty" json:"snatPortsPerNode,omitempty"` - OpflexClientSSL string `yaml:"opflex_client_ssl,omitempty" json:"opflexClientSsl,omitempty"` - UsePrivilegedContainer string `yaml:"use_privileged_container,omitempty" json:"usePrivilegedContainer,omitempty"` - UseHostNetnsVolume string `yaml:"use_host_netns_volume,omitempty" json:"useHostNetnsVolume,omitempty"` - UseOpflexServerVolume string `yaml:"use_opflex_server_volume,omitempty" json:"useOpflexServerVolume,omitempty"` - SubnetDomainName string `yaml:"subnet_domain_name,omitempty" json:"subnetDomainName,omitempty"` - KafkaBrokers []string `yaml:"kafka_brokers,omitempty" json:"kafkaBrokers,omitempty"` - KafkaClientCrt string `yaml:"kafka_client_crt,omitempty" json:"kafkaClientCrt,omitempty"` - KafkaClientKey string `yaml:"kafka_client_key,omitempty" json:"kafkaClientKey,omitempty"` - CApic string `yaml:"capic,omitempty" json:"capic,omitempty"` - UseAciAnywhereCRD string `yaml:"use_aci_anywhere_crd,omitempty" json:"useAciAnywhereCrd,omitempty"` - OverlayVRFName string `yaml:"overlay_vrf_name,omitempty" json:"overlayVrfName,omitempty"` - GbpPodSubnet string `yaml:"gbp_pod_subnet,omitempty" json:"gbpPodSubnet,omitempty"` - RunGbpContainer string `yaml:"run_gbp_container,omitempty" json:"runGbpContainer,omitempty"` - RunOpflexServerContainer string `yaml:"run_opflex_server_container,omitempty" json:"runOpflexServerContainer,omitempty"` - OpflexServerPort string `yaml:"opflex_server_port,omitempty" json:"opflexServerPort,omitempty"` + SystemIdentifier string `yaml:"system_id,omitempty" json:"systemId,omitempty"` + ApicHosts []string `yaml:"apic_hosts" json:"apicHosts,omitempty"` + Token string `yaml:"token,omitempty" json:"token,omitempty"` + ApicUserName string `yaml:"apic_user_name,omitempty" json:"apicUserName,omitempty"` + ApicUserKey string `yaml:"apic_user_key,omitempty" json:"apicUserKey,omitempty"` + ApicUserCrt string `yaml:"apic_user_crt,omitempty" json:"apicUserCrt,omitempty"` + ApicRefreshTime string `yaml:"apic_refresh_time,omitempty" json:"apicRefreshTime,omitempty" norman:"default=1200"` + VmmDomain string `yaml:"vmm_domain,omitempty" json:"vmmDomain,omitempty"` + VmmController string `yaml:"vmm_controller,omitempty" json:"vmmController,omitempty"` + EncapType string `yaml:"encap_type,omitempty" json:"encapType,omitempty"` + NodeSubnet string `yaml:"node_subnet,omitempty" json:"nodeSubnet,omitempty"` + McastRangeStart string `yaml:"mcast_range_start,omitempty" json:"mcastRangeStart,omitempty"` + McastRangeEnd string `yaml:"mcast_range_end,omitempty" json:"mcastRangeEnd,omitempty"` + AEP string `yaml:"aep,omitempty" json:"aep,omitempty"` + VRFName string `yaml:"vrf_name,omitempty" json:"vrfName,omitempty"` + VRFTenant string `yaml:"vrf_tenant,omitempty" json:"vrfTenant,omitempty"` + L3Out string `yaml:"l3out,omitempty" json:"l3out,omitempty"` + L3OutExternalNetworks []string `yaml:"l3out_external_networks" json:"l3outExternalNetworks,omitempty"` + DynamicExternalSubnet string `yaml:"extern_dynamic,omitempty" json:"externDynamic,omitempty"` + StaticExternalSubnet string `yaml:"extern_static,omitempty" json:"externStatic,omitempty"` + ServiceGraphSubnet string `yaml:"node_svc_subnet,omitempty" json:"nodeSvcSubnet,omitempty"` + KubeAPIVlan string `yaml:"kube_api_vlan,omitempty" json:"kubeApiVlan,omitempty"` + ServiceVlan string `yaml:"service_vlan,omitempty" json:"serviceVlan,omitempty"` + InfraVlan string `yaml:"infra_vlan,omitempty" json:"infraVlan,omitempty"` + Tenant string `yaml:"tenant,omitempty" json:"tenant,omitempty"` + OVSMemoryLimit string `yaml:"ovs_memory_limit,omitempty" json:"ovsMemoryLimit,omitempty"` + ImagePullPolicy string `yaml:"image_pull_policy,omitempty" json:"imagePullPolicy,omitempty"` + ImagePullSecret string `yaml:"image_pull_secret,omitempty" json:"imagePullSecret,omitempty"` + ServiceMonitorInterval string `yaml:"service_monitor_interval,omitempty" json:"serviceMonitorInterval,omitempty"` + PBRTrackingNonSnat string `yaml:"pbr_tracking_non_snat,omitempty" json:"pbrTrackingNonSnat,omitempty"` + InstallIstio string `yaml:"install_istio,omitempty" json:"installIstio,omitempty"` + IstioProfile string `yaml:"istio_profile,omitempty" json:"istioProfile,omitempty"` + DropLogEnable string `yaml:"drop_log_enable,omitempty" json:"dropLogEnable,omitempty"` + ControllerLogLevel string `yaml:"controller_log_level,omitempty" json:"controllerLogLevel,omitempty"` + HostAgentLogLevel string `yaml:"host_agent_log_level,omitempty" json:"hostAgentLogLevel,omitempty"` + OpflexAgentLogLevel string `yaml:"opflex_log_level,omitempty" json:"opflexLogLevel,omitempty"` + UseAciCniPriorityClass string `yaml:"use_aci_cni_priority_class,omitempty" json:"useAciCniPriorityClass,omitempty"` + NoPriorityClass string `yaml:"no_priority_class,omitempty" json:"noPriorityClass,omitempty"` + MaxNodesSvcGraph string `yaml:"max_nodes_svc_graph,omitempty" json:"maxNodesSvcGraph,omitempty"` + SnatContractScope string `yaml:"snat_contract_scope,omitempty" json:"snatContractScope,omitempty"` + PodSubnetChunkSize string `yaml:"pod_subnet_chunk_size,omitempty" json:"podSubnetChunkSize,omitempty"` + EnableEndpointSlice string `yaml:"enable_endpoint_slice,omitempty" json:"enableEndpointSlice,omitempty"` + SnatNamespace string `yaml:"snat_namespace,omitempty" json:"snatNamespace,omitempty"` + EpRegistry string `yaml:"ep_registry,omitempty" json:"epRegistry,omitempty"` + OpflexMode string `yaml:"opflex_mode,omitempty" json:"opflexMode,omitempty"` + SnatPortRangeStart string `yaml:"snat_port_range_start,omitempty" json:"snatPortRangeStart,omitempty"` + SnatPortRangeEnd string `yaml:"snat_port_range_end,omitempty" json:"snatPortRangeEnd,omitempty"` + SnatPortsPerNode string `yaml:"snat_ports_per_node,omitempty" json:"snatPortsPerNode,omitempty"` + OpflexClientSSL string `yaml:"opflex_client_ssl,omitempty" json:"opflexClientSsl,omitempty"` + UsePrivilegedContainer string `yaml:"use_privileged_container,omitempty" json:"usePrivilegedContainer,omitempty"` + UseHostNetnsVolume string `yaml:"use_host_netns_volume,omitempty" json:"useHostNetnsVolume,omitempty"` + UseOpflexServerVolume string `yaml:"use_opflex_server_volume,omitempty" json:"useOpflexServerVolume,omitempty"` + SubnetDomainName string `yaml:"subnet_domain_name,omitempty" json:"subnetDomainName,omitempty"` + KafkaBrokers []string `yaml:"kafka_brokers,omitempty" json:"kafkaBrokers,omitempty"` + KafkaClientCrt string `yaml:"kafka_client_crt,omitempty" json:"kafkaClientCrt,omitempty"` + KafkaClientKey string `yaml:"kafka_client_key,omitempty" json:"kafkaClientKey,omitempty"` + CApic string `yaml:"capic,omitempty" json:"capic,omitempty"` + UseAciAnywhereCRD string `yaml:"use_aci_anywhere_crd,omitempty" json:"useAciAnywhereCrd,omitempty"` + OverlayVRFName string `yaml:"overlay_vrf_name,omitempty" json:"overlayVrfName,omitempty"` + GbpPodSubnet string `yaml:"gbp_pod_subnet,omitempty" json:"gbpPodSubnet,omitempty"` + RunGbpContainer string `yaml:"run_gbp_container,omitempty" json:"runGbpContainer,omitempty"` + RunOpflexServerContainer string `yaml:"run_opflex_server_container,omitempty" json:"runOpflexServerContainer,omitempty"` + OpflexServerPort string `yaml:"opflex_server_port,omitempty" json:"opflexServerPort,omitempty"` + DurationWaitForNetwork string `yaml:"duration_wait_for_network,omitempty" json:"durationWaitForNetwork,omitempty"` + DisableWaitForNetwork string `yaml:"disable_wait_for_network,omitempty" json:"disableWaitForNetwork,omitempty"` + ApicSubscriptionDelay string `yaml:"apic_subscription_delay,omitempty" json:"apicSubscriptionDelay,omitempty"` + ApicRefreshTickerAdjust string `yaml:"apic_refresh_ticker_adjust,omitempty" json:"apicRefreshTickerAdjust,omitempty"` + DisablePeriodicSnatGlobalInfoSync string `yaml:"disable_periodic_snat_global_info_sync,omitempty" json:"disablePeriodicSnatGlobalInfoSync,omitempty"` + OpflexDeviceDeleteTimeout string `yaml:"opflex_device_delete_timeout,omitempty" json:"opflexDeviceDeleteTimeout,omitempty"` + MTUHeadRoom string `yaml:"mtu_head_room,omitempty" json:"mtuHeadRoom,omitempty"` + NodePodIfEnable string `yaml:"node_pod_if_enable,omitempty" json:"nodePodIfEnable,omitempty"` + SriovEnable string `yaml:"sriov_enable,omitempty" json:"sriovEnable,omitempty"` + MultusDisable string `yaml:"multus_disable,omitempty" json:"multusDisable,omitempty"` + UseClusterRole string `yaml:"use_cluster_role,omitempty" json:"useClusterRole,omitempty"` } type KubernetesServicesOptions struct {