diff --git a/cluster/defaults.go b/cluster/defaults.go index 256eec9b..640662ac 100644 --- a/cluster/defaults.go +++ b/cluster/defaults.go @@ -72,59 +72,63 @@ 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" - DefaultAciDurationWaitForNetwork = "210" - DefaultAciUseClusterRole = "true" - DefaultAciDisableWaitForNetwork = "false" - DefaultAciApicSubscriptionDelay = "0" - DefaultAciApicRefreshTickerAdjust = "0" - DefaultAciDisablePeriodicSnatGlobalInfoSync = "false" - DefaultAciOpflexDeviceDeleteTimeout = "0" - DefaultAciMTUHeadRoom = "0" - DefaultAciNodePodIfEnable = "false" - DefaultAciSriovEnable = "false" - DefaultAciMultusDisable = "true" - DefaultAciNoWaitForServiceEpReadiness = "false" - DefaultAciAddExternalSubnetsToRdconfig = "false" - DefaultAciServiceGraphEndpointAddDelay = "0" - DefaultAciHppOptimization = "false" - DefaultAciSleepTimeSnatGlobalInfoSync = "0" - DefaultAciOpflexAgentOpflexAsyncjsonEnabled = "false" - DefaultAciOpflexAgentOvsAsyncjsonEnabled = "false" - DefaultAciOpflexAgentPolicyRetryDelayTimer = "10" - DefaultAciAciMultipod = "false" - DefaultAciAciMultipodUbuntu = "false" - DefaultAciDhcpRenewMaxRetryCount = "0" - DefaultAciDhcpDelay = "0" - + DefaultAciApicRefreshTime = "1200" + DefaultAciOVSMemoryLimit = "1Gi" + DefaultAciOVSMemoryRequest = "128Mi" + 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" + DefaultAciNoWaitForServiceEpReadiness = "false" + DefaultAciAddExternalSubnetsToRdconfig = "false" + DefaultAciServiceGraphEndpointAddDelay = "0" + DefaultAciHppOptimization = "false" + DefaultAciSleepTimeSnatGlobalInfoSync = "0" + DefaultAciOpflexAgentOpflexAsyncjsonEnabled = "false" + DefaultAciOpflexAgentOvsAsyncjsonEnabled = "false" + DefaultAciOpflexAgentPolicyRetryDelayTimer = "10" + DefaultAciOpflexDeviceReconnectWaitTimeout = "5" + DefaultAciAciMultipod = "false" + DefaultAciAciMultipodUbuntu = "false" + DefaultAciDhcpRenewMaxRetryCount = "0" + DefaultAciDhcpDelay = "0" + DefaultAciUseSystemNodePriorityClass = "false" + DefaultAciAciContainersMemoryLimit = "3Gi" + DefaultAciAciContainersMemoryRequest = "128Mi" KubeAPIArgAdmissionControlConfigFile = "admission-control-config-file" DefaultKubeAPIArgAdmissionControlConfigFileValue = "/etc/kubernetes/admission.yaml" @@ -646,6 +650,7 @@ func (c *Cluster) setClusterNetworkDefaults() { case AciNetworkPlugin: networkPluginConfigDefaultsMap = map[string]string{ AciOVSMemoryLimit: DefaultAciOVSMemoryLimit, + AciOVSMemoryRequest: DefaultAciOVSMemoryRequest, AciImagePullPolicy: DefaultAciImagePullPolicy, AciPBRTrackingNonSnat: DefaultAciPBRTrackingNonSnat, AciInstallIstio: DefaultAciInstallIstio, @@ -694,9 +699,13 @@ func (c *Cluster) setClusterNetworkDefaults() { AciOpflexAgentOvsAsyncjsonEnabled: DefaultAciOpflexAgentOvsAsyncjsonEnabled, AciOpflexAgentPolicyRetryDelayTimer: DefaultAciOpflexAgentPolicyRetryDelayTimer, AciAciMultipod: DefaultAciAciMultipod, + AciOpflexDeviceReconnectWaitTimeout: DefaultAciOpflexDeviceReconnectWaitTimeout, AciAciMultipodUbuntu: DefaultAciAciMultipodUbuntu, AciDhcpRenewMaxRetryCount: DefaultAciDhcpRenewMaxRetryCount, AciDhcpDelay: DefaultAciDhcpDelay, + AciUseSystemNodePriorityClass: DefaultAciUseSystemNodePriorityClass, + AciContainersMemoryRequest: DefaultAciAciContainersMemoryRequest, + AciContainersMemoryLimit: DefaultAciAciContainersMemoryLimit, } } if c.Network.CalicoNetworkProvider != nil { @@ -715,6 +724,7 @@ func (c *Cluster) setClusterNetworkDefaults() { } if c.Network.AciNetworkProvider != nil { setDefaultIfEmpty(&c.Network.AciNetworkProvider.OVSMemoryLimit, DefaultAciOVSMemoryLimit) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.OVSMemoryRequest, DefaultAciOVSMemoryRequest) setDefaultIfEmpty(&c.Network.AciNetworkProvider.ImagePullPolicy, DefaultAciImagePullPolicy) setDefaultIfEmpty(&c.Network.AciNetworkProvider.PBRTrackingNonSnat, DefaultAciPBRTrackingNonSnat) setDefaultIfEmpty(&c.Network.AciNetworkProvider.InstallIstio, DefaultAciInstallIstio) @@ -762,10 +772,15 @@ func (c *Cluster) setClusterNetworkDefaults() { setDefaultIfEmpty(&c.Network.AciNetworkProvider.OpflexAgentOvsAsyncjsonEnabled, DefaultAciOpflexAgentOvsAsyncjsonEnabled) setDefaultIfEmpty(&c.Network.AciNetworkProvider.OpflexAgentPolicyRetryDelayTimer, DefaultAciOpflexAgentPolicyRetryDelayTimer) setDefaultIfEmpty(&c.Network.AciNetworkProvider.AciMultipod, DefaultAciAciMultipod) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.OpflexDeviceReconnectWaitTimeout, DefaultAciOpflexDeviceReconnectWaitTimeout) setDefaultIfEmpty(&c.Network.AciNetworkProvider.AciMultipodUbuntu, DefaultAciAciMultipodUbuntu) setDefaultIfEmpty(&c.Network.AciNetworkProvider.DhcpRenewMaxRetryCount, DefaultAciDhcpRenewMaxRetryCount) setDefaultIfEmpty(&c.Network.AciNetworkProvider.DhcpDelay, DefaultAciDhcpDelay) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.UseSystemNodePriorityClass, DefaultAciUseSystemNodePriorityClass) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.AciContainersMemoryLimit, DefaultAciAciContainersMemoryLimit) + setDefaultIfEmpty(&c.Network.AciNetworkProvider.AciContainersMemoryRequest, DefaultAciAciContainersMemoryRequest) networkPluginConfigDefaultsMap[AciOVSMemoryLimit] = c.Network.AciNetworkProvider.OVSMemoryLimit + networkPluginConfigDefaultsMap[AciOVSMemoryRequest] = c.Network.AciNetworkProvider.OVSMemoryRequest networkPluginConfigDefaultsMap[AciImagePullPolicy] = c.Network.AciNetworkProvider.ImagePullPolicy networkPluginConfigDefaultsMap[AciPBRTrackingNonSnat] = c.Network.AciNetworkProvider.PBRTrackingNonSnat networkPluginConfigDefaultsMap[AciInstallIstio] = c.Network.AciNetworkProvider.InstallIstio @@ -815,6 +830,7 @@ func (c *Cluster) setClusterNetworkDefaults() { networkPluginConfigDefaultsMap[AciDhcpRenewMaxRetryCount] = c.Network.AciNetworkProvider.DhcpRenewMaxRetryCount networkPluginConfigDefaultsMap[AciDhcpDelay] = c.Network.AciNetworkProvider.DhcpDelay networkPluginConfigDefaultsMap[AciAciMultipod] = c.Network.AciNetworkProvider.AciMultipod + networkPluginConfigDefaultsMap[AciOpflexDeviceReconnectWaitTimeout] = c.Network.AciNetworkProvider.OpflexDeviceReconnectWaitTimeout networkPluginConfigDefaultsMap[AciAciMultipodUbuntu] = c.Network.AciNetworkProvider.AciMultipodUbuntu networkPluginConfigDefaultsMap[AciSystemIdentifier] = c.Network.AciNetworkProvider.SystemIdentifier networkPluginConfigDefaultsMap[AciToken] = c.Network.AciNetworkProvider.Token @@ -849,6 +865,21 @@ func (c *Cluster) setClusterNetworkDefaults() { networkPluginConfigDefaultsMap[AciOverlayVRFName] = c.Network.AciNetworkProvider.OverlayVRFName networkPluginConfigDefaultsMap[AciGbpPodSubnet] = c.Network.AciNetworkProvider.GbpPodSubnet networkPluginConfigDefaultsMap[AciOpflexServerPort] = c.Network.AciNetworkProvider.OpflexServerPort + networkPluginConfigDefaultsMap[AciUseSystemNodePriorityClass] = c.Network.AciNetworkProvider.UseSystemNodePriorityClass + networkPluginConfigDefaultsMap[AciAccProvisionOperatorMemoryRequest] = c.Network.AciNetworkProvider.AccProvisionOperatorMemoryRequest + networkPluginConfigDefaultsMap[AciAccProvisionOperatorMemoryLimit] = c.Network.AciNetworkProvider.AccProvisionOperatorMemoryLimit + networkPluginConfigDefaultsMap[AciAciContainersControllerMemoryRequest] = c.Network.AciNetworkProvider.AciContainersControllerMemoryRequest + networkPluginConfigDefaultsMap[AciAciContainersControllerMemoryLimit] = c.Network.AciNetworkProvider.AciContainersControllerMemoryLimit + networkPluginConfigDefaultsMap[AciAciContainersHostMemoryRequest] = c.Network.AciNetworkProvider.AciContainersHostMemoryRequest + networkPluginConfigDefaultsMap[AciAciContainersHostMemoryLimit] = c.Network.AciNetworkProvider.AciContainersHostMemoryLimit + networkPluginConfigDefaultsMap[AciAciContainersOperatorMemoryRequest] = c.Network.AciNetworkProvider.AciContainersOperatorMemoryRequest + networkPluginConfigDefaultsMap[AciAciContainersOperatorMemoryLimit] = c.Network.AciNetworkProvider.AciContainersOperatorMemoryLimit + networkPluginConfigDefaultsMap[AciMcastDaemonMemoryRequest] = c.Network.AciNetworkProvider.McastDaemonMemoryRequest + networkPluginConfigDefaultsMap[AciMcastDaemonMemoryLimit] = c.Network.AciNetworkProvider.McastDaemonMemoryLimit + networkPluginConfigDefaultsMap[AciOpflexAgentMemoryRequest] = c.Network.AciNetworkProvider.OpflexAgentMemoryRequest + networkPluginConfigDefaultsMap[AciOpflexAgentMemoryLimit] = c.Network.AciNetworkProvider.OpflexAgentMemoryLimit + networkPluginConfigDefaultsMap[AciAciContainersMemoryRequest] = c.Network.AciNetworkProvider.AciContainersMemoryRequest + networkPluginConfigDefaultsMap[AciAciContainersMemoryLimit] = c.Network.AciNetworkProvider.AciContainersMemoryLimit } for k, v := range networkPluginConfigDefaultsMap { setDefaultIfEmptyMapValue(c.Network.Options, k, v) diff --git a/cluster/network.go b/cluster/network.go index ff8d61af..7f43f6d6 100644 --- a/cluster/network.go +++ b/cluster/network.go @@ -75,90 +75,107 @@ 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" - 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" - AciNoWaitForServiceEpReadiness = "aci_no_wait_for_service_ep_readiness" - AciAddExternalSubnetsToRdconfig = "aci_add_external_subnets_to_rdconfig" - AciServiceGraphEndpointAddDelay = "aci_service_graph_endpoint_add_delay" - AciHppOptimization = "aci_hpp_optimization" - AciSleepTimeSnatGlobalInfoSync = "aci_sleep_time_snat_global_info_sync" - AciOpflexAgentOpflexAsyncjsonEnabled = "aci_opflex_agent_opflex_asyncjson_enabled" - AciOpflexAgentOvsAsyncjsonEnabled = "aci_opflex_agent_ovs_asyncjson_enabled" - AciOpflexAgentPolicyRetryDelayTimer = "aci_opflex_agent_policy_retry_delay_timer" - AciAciMultipod = "aci_aci_multipod" - AciAciMultipodUbuntu = "aci_aci_multipod_ubuntu" - AciDhcpRenewMaxRetryCount = "aci_dhcp_renew_max_retry_count" - AciDhcpDelay = "aci_dhcp_delay" + AciNetworkPlugin = "aci" + AciOVSMemoryLimit = "aci_ovs_memory_limit" + AciOVSMemoryRequest = "aci_ovs_memory_request" + 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" + AciNoWaitForServiceEpReadiness = "aci_no_wait_for_service_ep_readiness" + AciAddExternalSubnetsToRdconfig = "aci_add_external_subnets_to_rdconfig" + AciServiceGraphEndpointAddDelay = "aci_service_graph_endpoint_add_delay" + AciHppOptimization = "aci_hpp_optimization" + AciSleepTimeSnatGlobalInfoSync = "aci_sleep_time_snat_global_info_sync" + AciOpflexAgentOpflexAsyncjsonEnabled = "aci_opflex_agent_opflex_asyncjson_enabled" + AciOpflexAgentOvsAsyncjsonEnabled = "aci_opflex_agent_ovs_asyncjson_enabled" + AciOpflexAgentPolicyRetryDelayTimer = "aci_opflex_agent_policy_retry_delay_timer" + AciAciMultipod = "aci_aci_multipod" + AciOpflexDeviceReconnectWaitTimeout = "aci_opflex_device_reconnect_wait_timeout" + AciAciMultipodUbuntu = "aci_aci_multipod_ubuntu" + AciDhcpRenewMaxRetryCount = "aci_dhcp_renew_max_retry_count" + AciDhcpDelay = "aci_dhcp_delay" + AciUseSystemNodePriorityClass = "aci_use_system_node_priority_class" + AciAccProvisionOperatorMemoryRequest = "aci_acc_provision_operator_memory_request" + AciAccProvisionOperatorMemoryLimit = "aci_acc_provision_operator_memory_limit" + AciAciContainersControllerMemoryRequest = "aci_aci_containers_controller_memory_request" + AciAciContainersControllerMemoryLimit = "aci_aci_containers_controller_memory_limit" + AciAciContainersHostMemoryRequest = "aci_aci_containers_host_memory_request" + AciAciContainersHostMemoryLimit = "aci_aci_containers_host_memory_limit" + AciAciContainersOperatorMemoryRequest = "aci_aci_containers_operator_memory_request" + AciAciContainersOperatorMemoryLimit = "aci_aci_containers_operator_memory_limit" + AciMcastDaemonMemoryRequest = "aci_mcast_daemon_memory_request" + AciMcastDaemonMemoryLimit = "aci_mcast_daemon_memory_limit" + AciOpflexAgentMemoryRequest = "aci_opflex_agent_memory_request" + AciOpflexAgentMemoryLimit = "aci_opflex_agent_memory_limit" + AciAciContainersMemoryRequest = "aci_aci_containers_memory_request" + AciAciContainersMemoryLimit = "aci_aci_containers_memory_limit" // List of map keys to be used with network templates // EtcdEndpoints is the server address for Etcd, used by calico @@ -303,14 +320,31 @@ const ( OpflexAgentOvsAsyncjsonEnabled = "OpflexAgentOvsAsyncjsonEnabled" OpflexAgentPolicyRetryDelayTimer = "OpflexAgentPolicyRetryDelayTimer" AciMultipod = "AciMultipod" + OpflexDeviceReconnectWaitTimeout = "OpflexDeviceReconnectWaitTimeout" AciMultipodUbuntu = "AciMultipodUbuntu" DhcpRenewMaxRetryCount = "DhcpRenewMaxRetryCount" DhcpDelay = "DhcpDelay" OVSMemoryLimit = "OVSMemoryLimit" + OVSMemoryRequest = "OVSMemoryRequest" NodeSubnet = "NodeSubnet" NodeSelector = "NodeSelector" UpdateStrategy = "UpdateStrategy" Tolerations = "Tolerations" + UseSystemNodePriorityClass = "UseSystemNodePriorityClass" + AccProvisionOperatorMemoryRequest = "AccProvisionOperatorMemoryRequest" + AccProvisionOperatorMemoryLimit = "AccProvisionOperatorMemoryLimit" + AciContainersControllerMemoryRequest = "AciContainersControllerMemoryRequest" + AciContainersControllerMemoryLimit = "AciContainersControllerMemoryLimit" + AciContainersHostMemoryRequest = "AciContainersHostMemoryRequest" + AciContainersHostMemoryLimit = "AciContainersHostMemoryLimit" + AciContainersOperatorMemoryRequest = "AciContainersOperatorMemoryRequest" + AciContainersOperatorMemoryLimit = "AciContainersOperatorMemoryLimit" + McastDaemonMemoryRequest = "McastDaemonMemoryRequest" + McastDaemonMemoryLimit = "McastDaemonMemoryLimit" + OpflexAgentMemoryRequest = "OpflexAgentMemoryRequest" + OpflexAgentMemoryLimit = "OpflexAgentMemoryLimit" + AciContainersMemoryRequest = "AciContainersMemoryRequest" + AciContainersMemoryLimit = "AciContainersMemoryLimit" ) type IPPool struct { @@ -562,110 +596,127 @@ 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: nodeSubnets, - 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: dynamicExtern, - StaticExternalSubnet: staticExtern, - 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, - PodNetwork: podNetwork, - PodIPPool: podIPPool, - StaticServiceIPPool: staticServiceIPPool, - ServiceIPPool: serviceIPPool, - PodSubnet: podSubnet, - NodeServiceIPStart: cidr.Inc(cidr.Inc(nodeServiceIPStart)), - NodeServiceIPEnd: cidr.Dec(nodeServiceIPEnd), - 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], - NoWaitForServiceEpReadiness: c.Network.Options[AciNoWaitForServiceEpReadiness], - AddExternalSubnetsToRdconfig: c.Network.Options[AciAddExternalSubnetsToRdconfig], - ServiceGraphEndpointAddDelay: c.Network.Options[AciServiceGraphEndpointAddDelay], - ServiceGraphEndpointAddServices: c.Network.AciNetworkProvider.ServiceGraphEndpointAddServices, - HppOptimization: c.Network.Options[AciHppOptimization], - SleepTimeSnatGlobalInfoSync: c.Network.Options[AciSleepTimeSnatGlobalInfoSync], - OpflexAgentOpflexAsyncjsonEnabled: c.Network.Options[AciOpflexAgentOpflexAsyncjsonEnabled], - OpflexAgentOvsAsyncjsonEnabled: c.Network.Options[AciOpflexAgentOvsAsyncjsonEnabled], - OpflexAgentPolicyRetryDelayTimer: c.Network.Options[AciOpflexAgentPolicyRetryDelayTimer], - AciMultipod: c.Network.Options[AciAciMultipod], - AciMultipodUbuntu: c.Network.Options[AciAciMultipodUbuntu], - DhcpRenewMaxRetryCount: c.Network.Options[AciDhcpRenewMaxRetryCount], - DhcpDelay: c.Network.Options[AciDhcpDelay], - 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: nodeSubnets, + 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: dynamicExtern, + StaticExternalSubnet: staticExtern, + 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], + OVSMemoryRequest: c.Network.Options[AciOVSMemoryRequest], + ClusterCIDR: c.ClusterCIDR, + PodNetwork: podNetwork, + PodIPPool: podIPPool, + StaticServiceIPPool: staticServiceIPPool, + ServiceIPPool: serviceIPPool, + PodSubnet: podSubnet, + NodeServiceIPStart: cidr.Inc(cidr.Inc(nodeServiceIPStart)), + NodeServiceIPEnd: cidr.Dec(nodeServiceIPEnd), + 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], + NoWaitForServiceEpReadiness: c.Network.Options[AciNoWaitForServiceEpReadiness], + AddExternalSubnetsToRdconfig: c.Network.Options[AciAddExternalSubnetsToRdconfig], + ServiceGraphEndpointAddDelay: c.Network.Options[AciServiceGraphEndpointAddDelay], + ServiceGraphEndpointAddServices: c.Network.AciNetworkProvider.ServiceGraphEndpointAddServices, + HppOptimization: c.Network.Options[AciHppOptimization], + SleepTimeSnatGlobalInfoSync: c.Network.Options[AciSleepTimeSnatGlobalInfoSync], + OpflexAgentOpflexAsyncjsonEnabled: c.Network.Options[AciOpflexAgentOpflexAsyncjsonEnabled], + OpflexAgentOvsAsyncjsonEnabled: c.Network.Options[AciOpflexAgentOvsAsyncjsonEnabled], + OpflexAgentPolicyRetryDelayTimer: c.Network.Options[AciOpflexAgentPolicyRetryDelayTimer], + AciMultipod: c.Network.Options[AciAciMultipod], + OpflexDeviceReconnectWaitTimeout: c.Network.Options[AciOpflexDeviceReconnectWaitTimeout], + AciMultipodUbuntu: c.Network.Options[AciAciMultipodUbuntu], + DhcpRenewMaxRetryCount: c.Network.Options[AciDhcpRenewMaxRetryCount], + DhcpDelay: c.Network.Options[AciDhcpDelay], + UseSystemNodePriorityClass: c.Network.Options[AciUseSystemNodePriorityClass], + AccProvisionOperatorMemoryRequest: c.Network.Options[AciAccProvisionOperatorMemoryRequest], + AccProvisionOperatorMemoryLimit: c.Network.Options[AciAccProvisionOperatorMemoryLimit], + AciContainersControllerMemoryRequest: c.Network.Options[AciAciContainersControllerMemoryRequest], + AciContainersControllerMemoryLimit: c.Network.Options[AciAciContainersControllerMemoryLimit], + AciContainersHostMemoryRequest: c.Network.Options[AciAciContainersHostMemoryRequest], + AciContainersHostMemoryLimit: c.Network.Options[AciAciContainersHostMemoryLimit], + AciContainersOperatorMemoryRequest: c.Network.Options[AciAciContainersOperatorMemoryRequest], + AciContainersOperatorMemoryLimit: c.Network.Options[AciAciContainersOperatorMemoryLimit], + McastDaemonMemoryRequest: c.Network.Options[AciMcastDaemonMemoryRequest], + McastDaemonMemoryLimit: c.Network.Options[AciMcastDaemonMemoryLimit], + OpflexAgentMemoryRequest: c.Network.Options[AciOpflexAgentMemoryRequest], + OpflexAgentMemoryLimit: c.Network.Options[AciOpflexAgentMemoryLimit], + AciContainersMemoryRequest: c.Network.Options[AciAciContainersMemoryRequest], + AciContainersMemoryLimit: c.Network.Options[AciAciContainersMemoryLimit], + 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 002abd92..f2df8303 100644 --- a/types/rke_types.go +++ b/types/rke_types.go @@ -589,93 +589,110 @@ 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"` - 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"` - NoWaitForServiceEpReadiness string `yaml:"no_wait_for_service_ep_readiness,omitempty" json:"noWaitForServiceEpReadiness,omitempty"` - AddExternalSubnetsToRdconfig string `yaml:"add_external_subnets_to_rdconfig,omitempty" json:"addExternalSubnetsToRdconfig,omitempty"` - ServiceGraphEndpointAddDelay string `yaml:"service_graph_endpoint_add_delay,omitempty" json:"serviceGraphEndpointAddDelay,omitempty"` - ServiceGraphEndpointAddServices []map[string]string `yaml:"service_graph_endpoint_add_services,omitempty" json:"serviceGraphEndpointAddServices,omitempty"` - HppOptimization string `yaml:"hpp_optimization,omitempty" json:"hppOptimization,omitempty"` - SleepTimeSnatGlobalInfoSync string `yaml:"sleep_time_snat_global_info_sync,omitempty" json:"sleepTimeSnatGlobalInfoSync,omitempty"` - OpflexAgentOpflexAsyncjsonEnabled string `yaml:"opflex_agent_opflex_asyncjson_enabled,omitempty" json:"opflexAgentOpflexAsyncjsonEnabled,omitempty"` - OpflexAgentOvsAsyncjsonEnabled string `yaml:"opflex_agent_ovs_asyncjson_enabled,omitempty" json:"opflexAgentOvsAsyncjsonEnabled,omitempty"` - OpflexAgentPolicyRetryDelayTimer string `yaml:"opflex_agent_policy_retry_delay_timer,omitempty" json:"opflexAgentPolicyRetryDelayTimer,omitempty"` - AciMultipod string `yaml:"aci_multipod,omitempty" json:"aciMultipod,omitempty"` - AciMultipodUbuntu string `yaml:"aci_multipod_ubuntu,omitempty" json:"aciMultipodUbuntu,omitempty"` - DhcpRenewMaxRetryCount string `yaml:"dhcp_renew_max_retry_count,omitempty" json:"dhcpRenewMaxRetryCount,omitempty"` - DhcpDelay string `yaml:"dhcp_delay,omitempty" json:"dhcpDelay,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"` + OVSMemoryRequest string `yaml:"ovs_memory_request,omitempty" json:"ovsMemoryRequest,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"` + NoWaitForServiceEpReadiness string `yaml:"no_wait_for_service_ep_readiness,omitempty" json:"noWaitForServiceEpReadiness,omitempty"` + AddExternalSubnetsToRdconfig string `yaml:"add_external_subnets_to_rdconfig,omitempty" json:"addExternalSubnetsToRdconfig,omitempty"` + ServiceGraphEndpointAddDelay string `yaml:"service_graph_endpoint_add_delay,omitempty" json:"serviceGraphEndpointAddDelay,omitempty"` + ServiceGraphEndpointAddServices []map[string]string `yaml:"service_graph_endpoint_add_services,omitempty" json:"serviceGraphEndpointAddServices,omitempty"` + HppOptimization string `yaml:"hpp_optimization,omitempty" json:"hppOptimization,omitempty"` + SleepTimeSnatGlobalInfoSync string `yaml:"sleep_time_snat_global_info_sync,omitempty" json:"sleepTimeSnatGlobalInfoSync,omitempty"` + OpflexAgentOpflexAsyncjsonEnabled string `yaml:"opflex_agent_opflex_asyncjson_enabled,omitempty" json:"opflexAgentOpflexAsyncjsonEnabled,omitempty"` + OpflexAgentOvsAsyncjsonEnabled string `yaml:"opflex_agent_ovs_asyncjson_enabled,omitempty" json:"opflexAgentOvsAsyncjsonEnabled,omitempty"` + OpflexAgentPolicyRetryDelayTimer string `yaml:"opflex_agent_policy_retry_delay_timer,omitempty" json:"opflexAgentPolicyRetryDelayTimer,omitempty"` + AciMultipod string `yaml:"aci_multipod,omitempty" json:"aciMultipod,omitempty"` + OpflexDeviceReconnectWaitTimeout string `yaml:"opflex_device_reconnect_wait_timeout,omitempty" json:"opflexDeviceReconnectWaitTimeout,omitempty"` + AciMultipodUbuntu string `yaml:"aci_multipod_ubuntu,omitempty" json:"aciMultipodUbuntu,omitempty"` + DhcpRenewMaxRetryCount string `yaml:"dhcp_renew_max_retry_count,omitempty" json:"dhcpRenewMaxRetryCount,omitempty"` + DhcpDelay string `yaml:"dhcp_delay,omitempty" json:"dhcpDelay,omitempty"` + UseSystemNodePriorityClass string `yaml:"use_system_node_priority_class,omitempty" json:"useSystemNodePriorityClass,omitempty"` + AccProvisionOperatorMemoryRequest string `yaml:"acc_provision_operator_memory_request,omitempty" json:"accProvisionOperatorMemoryRequest,omitempty"` + AccProvisionOperatorMemoryLimit string `yaml:"acc_provision_operator_memory_limit,omitempty" json:"accProvisionOperatorMemoryLimit,omitempty"` + AciContainersControllerMemoryRequest string `yaml:"aci_containers_controller_memory_request,omitempty" json:"aciContainersControllerMemoryRequest,omitempty"` + AciContainersControllerMemoryLimit string `yaml:"aci_containers_controller_memory_limit,omitempty" json:"aciContainersControllerMemoryLimit,omitempty"` + AciContainersHostMemoryRequest string `yaml:"aci_containers_host_memory_request,omitempty" json:"aciContainersHostMemoryRequest,omitempty"` + AciContainersHostMemoryLimit string `yaml:"aci_containers_host_memory_limit,omitempty" json:"aciContainersHostMemoryLimit,omitempty"` + AciContainersOperatorMemoryRequest string `yaml:"aci_containers_operator_memory_request,omitempty" json:"aciContainersOperatorMemoryRequest,omitempty"` + AciContainersOperatorMemoryLimit string `yaml:"aci_containers_operator_memory_limit,omitempty" json:"aciContainersOperatorMemoryLimit,omitempty"` + McastDaemonMemoryRequest string `yaml:"mcast_daemon_memory_request,omitempty" json:"mcastDaemonMemoryRequest,omitempty"` + McastDaemonMemoryLimit string `yaml:"mcast_daemon_memory_limit,omitempty" json:"mcastDaemonMemoryLimit,omitempty"` + OpflexAgentMemoryRequest string `yaml:"opflex_agent_memory_request,omitempty" json:"opflexAgentMemoryRequest,omitempty"` + OpflexAgentMemoryLimit string `yaml:"opflex_agent_memory_limit,omitempty" json:"opflexAgentMemoryLimit,omitempty"` + AciContainersMemoryRequest string `yaml:"aci_containers_memory_request,omitempty" json:"aciContainersMemoryRequest,omitempty"` + AciContainersMemoryLimit string `yaml:"aci_containers_memory_limit,omitempty" json:"aciContainersMemoryLimit,omitempty"` } type KubernetesServicesOptions struct {