diff --git a/charts/spiderpool/config b/charts/spiderpool/config index 46c6a2dbe..e23314188 100644 --- a/charts/spiderpool/config +++ b/charts/spiderpool/config @@ -4,7 +4,7 @@ export USE_OPENSOURCE_CHART=false export REPO_URL=https://spidernet-io.github.io/spiderpool export REPO_NAME=spiderpool export CHART_NAME=spiderpool -export VERSION=0.9.7 +export VERSION=1.0.0-rc2 # pr, issue, none export UPGRADE_METHOD=pr diff --git a/charts/spiderpool/custom.sh b/charts/spiderpool/custom.sh index f17bc6b3b..404cf08f1 100755 --- a/charts/spiderpool/custom.sh +++ b/charts/spiderpool/custom.sh @@ -65,6 +65,8 @@ yq -i ' .spiderpool.spiderpoolController.resources.requests.cpu=strenv(CUSTOM_SPIDERPOOL_CONTROLLER_CPU) | .spiderpool.spiderpoolController.resources.requests.memory=strenv(CUSTOM_SPIDERPOOL_CONTROLLER_MEMORY) | .spiderpool.spiderpoolController.tolerations[0].effect = "NoSchedule" | + .spiderpool.spiderpoolController.podResourceInject.enabled=true | + .spiderpool.spiderpoolController.podResourceInject.namespacesExclude= ["insight-system","mcamel-system","amamba-system","argocd","baize-system","ghippo-system","gpu-operator","dowl-system","hwameistor","insight-system","kairship-system","kangaroo-system","kant-system","kcollie-system","kcoral-system","kolm-system","kpanda-system","kubean-system","local-path-storage","metax","mspider-system","nvidia-gpu-operator","skoala-system","spidernet-system","virtnest-system","ipavo-system"] + .spiderpool.spiderpoolController.podResourceInject.namespacesExclude | .spiderpool.spiderpoolInit.image.registry="ghcr.m.daocloud.io" | .spiderpool.plugins.image.registry="ghcr.m.daocloud.io" | .spiderpool.rdma.rdmaSharedDevicePlugin.image.registry="ghcr.m.daocloud.io" diff --git a/charts/spiderpool/parent/.relok8s-images.yaml b/charts/spiderpool/parent/.relok8s-images.yaml index ac03c08d2..6482d4760 100644 --- a/charts/spiderpool/parent/.relok8s-images.yaml +++ b/charts/spiderpool/parent/.relok8s-images.yaml @@ -6,8 +6,6 @@ - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.plugins.image.repository }}:{{ .spiderpool.plugins.image.tag }}" - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.operator.repository }}:{{ .spiderpool.sriov.image.operator.tag }}" - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.sriovConfigDaemon.repository }}:{{ .spiderpool.sriov.image.sriovConfigDaemon.tag }}" -- "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.sriovCni.repository }}:{{ .spiderpool.sriov.image.sriovCni.tag }}" -- "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.ibSriovCni.repository }}:{{ .spiderpool.sriov.image.ibSriovCni.tag }}" - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.sriovDevicePlugin.repository }}:{{ .spiderpool.sriov.image.sriovDevicePlugin.tag }}" - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.resourcesInjector.repository }}:{{ .spiderpool.sriov.image.resourcesInjector.tag }}" - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.webhook.repository }}:{{ .spiderpool.sriov.image.webhook.tag }}" diff --git a/charts/spiderpool/spiderpool/.relok8s-images.yaml b/charts/spiderpool/spiderpool/.relok8s-images.yaml index ac03c08d2..6482d4760 100644 --- a/charts/spiderpool/spiderpool/.relok8s-images.yaml +++ b/charts/spiderpool/spiderpool/.relok8s-images.yaml @@ -6,8 +6,6 @@ - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.plugins.image.repository }}:{{ .spiderpool.plugins.image.tag }}" - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.operator.repository }}:{{ .spiderpool.sriov.image.operator.tag }}" - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.sriovConfigDaemon.repository }}:{{ .spiderpool.sriov.image.sriovConfigDaemon.tag }}" -- "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.sriovCni.repository }}:{{ .spiderpool.sriov.image.sriovCni.tag }}" -- "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.ibSriovCni.repository }}:{{ .spiderpool.sriov.image.ibSriovCni.tag }}" - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.sriovDevicePlugin.repository }}:{{ .spiderpool.sriov.image.sriovDevicePlugin.tag }}" - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.resourcesInjector.repository }}:{{ .spiderpool.sriov.image.resourcesInjector.tag }}" - "{{ .spiderpool.global.imageRegistryOverride }}/{{ .spiderpool.sriov.image.webhook.repository }}:{{ .spiderpool.sriov.image.webhook.tag }}" diff --git a/charts/spiderpool/spiderpool/Chart.yaml b/charts/spiderpool/spiderpool/Chart.yaml index 8cd8770d8..1a70fa8c3 100644 --- a/charts/spiderpool/spiderpool/Chart.yaml +++ b/charts/spiderpool/spiderpool/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 0.9.7 +appVersion: 1.0.0-rc2 description: underlay CNI solution for kubernetes home: https://spidernet-io.github.io/spiderpool icon: https://raw.githubusercontent.com/spidernet-io/spiderpool/main/docs/images/spider.svg @@ -16,8 +16,8 @@ name: spiderpool sources: - https://github.com/spidernet-io/spiderpool type: application -version: 0.9.7 +version: 1.0.0-rc2 dependencies: - name: spiderpool - version: "0.9.7" + version: "1.0.0-rc2" repository: "https://spidernet-io.github.io/spiderpool" diff --git a/charts/spiderpool/spiderpool/README.md b/charts/spiderpool/spiderpool/README.md index 105107e2b..1cfb0f204 100644 --- a/charts/spiderpool/spiderpool/README.md +++ b/charts/spiderpool/spiderpool/README.md @@ -127,19 +127,20 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ ### ipam parameters -| Name | Description | Value | -| ------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------ | -| `ipam.enableIPv4` | enable ipv4 | `true` | -| `ipam.enableIPv6` | enable ipv6 | `true` | -| `ipam.enableStatefulSet` | the network mode | `true` | -| `ipam.enableKubevirtStaticIP` | the feature to keep kubevirt vm pod static IP | `true` | -| `ipam.enableSpiderSubnet` | SpiderSubnet feature gate. | `true` | -| `ipam.subnetDefaultFlexibleIPNumber` | the default flexible IP number of SpiderSubnet feature auto-created IPPools | `1` | -| `ipam.gc.enabled` | enable retrieve IP in spiderippool CR | `true` | -| `ipam.gc.gcAll.intervalInSecond` | the gc all interval duration | `600` | -| `ipam.gc.statelessPod.zombieOnReadyNode` | enable reclaim IP for the stateless pod who is over deleting graceful period on a ready node | `true` | -| `ipam.gc.statelessPod.zombieOnNotReadyNode` | enable reclaim IP for the stateless pod who is over deleting graceful period on a not-ready node | `true` | -| `ipam.gc.gcDeletingTimeOutPodDelay` | the gc delay seconds after the pod times out of deleting graceful period | `0` | +| Name | Description | Value | +| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------ | +| `ipam.enableIPv4` | enable ipv4 | `true` | +| `ipam.enableIPv6` | enable ipv6 | `true` | +| `ipam.enableStatefulSet` | the network mode | `true` | +| `ipam.enableKubevirtStaticIP` | the feature to keep kubevirt vm pod static IP | `true` | +| `ipam.spiderSubnet.enable` | SpiderSubnet feature. | `true` | +| `ipam.spiderSubnet.autoPool.enable` | SpiderSubnet Auto IPPool feature. | `true` | +| `ipam.spiderSubnet.autoPool.defaultRedundantIPNumber` | the default redundant IP number of SpiderSubnet feature auto-created IPPools | `1` | +| `ipam.gc.enabled` | enable retrieve IP in spiderippool CR | `true` | +| `ipam.gc.gcAll.intervalInSecond` | the gc all interval duration | `600` | +| `ipam.gc.statelessPod.zombieOnReadyNode` | enable reclaim IP for the stateless pod who is over deleting graceful period on a ready node | `true` | +| `ipam.gc.statelessPod.zombieOnNotReadyNode` | enable reclaim IP for the stateless pod who is over deleting graceful period on a not-ready node | `true` | +| `ipam.gc.gcDeletingTimeOutPodDelay` | the gc delay seconds after the pod times out of deleting graceful period | `0` | ### grafanaDashboard parameters @@ -162,6 +163,7 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ | `coordinator.detectIPConflict` | detect IP address conflicts | `false` | | `coordinator.tunePodRoutes` | tune Pod routes | `true` | | `coordinator.hijackCIDR` | Additional subnets that need to be hijacked to the host forward, the default link-local range "169.254.0.0/16" is used for NodeLocal DNS | `["169.254.0.0/16"]` | +| `coordinator.vethLinkAddress` | configure an link-local address for veth0 device. empty means disable. default is empty. Format is like 169.254.100.1 | `""` | ### rdma parameters @@ -173,7 +175,7 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ | `rdma.rdmaSharedDevicePlugin.image.repository` | the image repository of rdma shared device plugin | `mellanox/k8s-rdma-shared-dev-plugin` | | `rdma.rdmaSharedDevicePlugin.image.pullPolicy` | the image pullPolicy of rdma shared device plugin | `IfNotPresent` | | `rdma.rdmaSharedDevicePlugin.image.digest` | the image digest of rdma shared device plugin | `""` | -| `rdma.rdmaSharedDevicePlugin.image.tag` | the image tag of rdma shared device plugin | `latest` | +| `rdma.rdmaSharedDevicePlugin.image.tag` | the image tag of rdma shared device plugin | `v1.5.1` | | `rdma.rdmaSharedDevicePlugin.image.imagePullSecrets` | the image imagePullSecrets of rdma shared device plugin | `[]` | | `rdma.rdmaSharedDevicePlugin.podAnnotations` | the additional annotations | `{}` | | `rdma.rdmaSharedDevicePlugin.podLabels` | the additional label | `{}` | @@ -182,11 +184,7 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ | `rdma.rdmaSharedDevicePlugin.resources.requests.cpu` | the cpu requests | `100m` | | `rdma.rdmaSharedDevicePlugin.resources.requests.memory` | the memory requests | `50Mi` | | `rdma.rdmaSharedDevicePlugin.deviceConfig.periodicUpdateInterval` | periodic Update Interval | `300` | -| `rdma.rdmaSharedDevicePlugin.deviceConfig.resourcePrefix` | resource prefix | `spidernet.io` | -| `rdma.rdmaSharedDevicePlugin.deviceConfig.resourceName` | resource Name | `hca_shared_devices` | -| `rdma.rdmaSharedDevicePlugin.deviceConfig.rdmaHcaMax` | rdma Hca Max | `500` | -| `rdma.rdmaSharedDevicePlugin.deviceConfig.vendors` | rdma device vendors, default to mellanox device | `15b3` | -| `rdma.rdmaSharedDevicePlugin.deviceConfig.deviceIDs` | rdma device IDs, default to mellanox device | `1017` | +| `rdma.rdmaSharedDevicePlugin.deviceConfig.configList` | configure the network card for the rdma resource | `[]` | ### multus parameters @@ -217,13 +215,14 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ | `plugins.installCNI` | install all cni plugins to each node | `false` | | `plugins.installRdmaCNI` | install rdma cni used to isolate rdma device for sriov cni | `true` | | `plugins.installOvsCNI` | install ovs cni to each node | `true` | +| `plugins.installSriovCNI` | install sriov cni to each node | `true` | | `plugins.installibSriovCNI` | install ib-sriov cni to each node | `true` | | `plugins.installIpoibCNI` | install ipoib cni to each node | `true` | | `plugins.image.registry` | the image registry of plugins | `ghcr.io` | | `plugins.image.repository` | the image repository of plugins | `spidernet-io/spiderpool/spiderpool-plugins` | | `plugins.image.pullPolicy` | the image pullPolicy of plugins | `IfNotPresent` | | `plugins.image.digest` | the image digest of plugins | `""` | -| `plugins.image.tag` | the image tag of plugins | `v0.9.2` | +| `plugins.image.tag` | the image tag of plugins | `82659d90cae0d6a5169eac2869e47c989932d775` | | `plugins.image.imagePullSecrets` | the image imagePullSecrets of plugins | `[]` | ### clusterDefaultPool parameters @@ -281,6 +280,7 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ | `spiderpoolAgent.healthChecking.readinessProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolAgent health checking | `3` | | `spiderpoolAgent.healthChecking.readinessProbe.periodSeconds` | the period seconds of startup probe for spiderpoolAgent health checking | `10` | | `spiderpoolAgent.prometheus.enabled` | enable spiderpool agent to collect metrics | `false` | +| `spiderpoolAgent.prometheus.enabledRdmaMetric` | enable spiderpool agent to collect RDMA metrics | `false` | | `spiderpoolAgent.prometheus.enabledDebugMetric` | enable spiderpool agent to collect debug level metrics | `false` | | `spiderpoolAgent.prometheus.port` | the metrics port of spiderpool agent | `5711` | | `spiderpoolAgent.prometheus.serviceMonitor.install` | install serviceMonitor for spiderpool agent. This requires the prometheus CRDs to be available | `false` | @@ -302,73 +302,77 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ ### spiderpoolController parameters -| Name | Description | Value | -| ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | -| `spiderpoolController.name` | the spiderpoolController name | `spiderpool-controller` | -| `spiderpoolController.replicas` | the replicas number of spiderpoolController pod | `1` | -| `spiderpoolController.binName` | the binName name of spiderpoolController | `/usr/bin/spiderpool-controller` | -| `spiderpoolController.hostnetwork` | enable hostnetwork mode of spiderpoolController pod. Notice, if no CNI available before spiderpool installation, must enable this | `true` | -| `spiderpoolController.image.registry` | the image registry of spiderpoolController | `ghcr.io` | -| `spiderpoolController.image.repository` | the image repository of spiderpoolController | `spidernet-io/spiderpool/spiderpool-controller` | -| `spiderpoolController.image.pullPolicy` | the image pullPolicy of spiderpoolController | `IfNotPresent` | -| `spiderpoolController.image.digest` | the image digest of spiderpoolController, which takes preference over tag | `""` | -| `spiderpoolController.image.tag` | the image tag of spiderpoolController, overrides the image tag whose default is the chart appVersion. | `""` | -| `spiderpoolController.image.imagePullSecrets` | the image imagePullSecrets of spiderpoolController | `[]` | -| `spiderpoolController.serviceAccount.create` | create the service account for the spiderpoolController | `true` | -| `spiderpoolController.serviceAccount.annotations` | the annotations of spiderpoolController service account | `{}` | -| `spiderpoolController.service.annotations` | the annotations for spiderpoolController service | `{}` | -| `spiderpoolController.service.type` | the type for spiderpoolController service | `ClusterIP` | -| `spiderpoolController.priorityClassName` | the priority Class Name for spiderpoolController | `system-node-critical` | -| `spiderpoolController.affinity` | the affinity of spiderpoolController | `{}` | -| `spiderpoolController.extraArgs` | the additional arguments of spiderpoolController container | `[]` | -| `spiderpoolController.extraEnv` | the additional environment variables of spiderpoolController container | `[]` | -| `spiderpoolController.extraVolumes` | the additional volumes of spiderpoolController container | `[]` | -| `spiderpoolController.extraVolumeMounts` | the additional hostPath mounts of spiderpoolController container | `[]` | -| `spiderpoolController.podAnnotations` | the additional annotations of spiderpoolController pod | `{}` | -| `spiderpoolController.podLabels` | the additional label of spiderpoolController pod | `{}` | -| `spiderpoolController.securityContext` | the security Context of spiderpoolController pod | `{}` | -| `spiderpoolController.resources.limits.cpu` | the cpu limit of spiderpoolController pod | `500m` | -| `spiderpoolController.resources.limits.memory` | the memory limit of spiderpoolController pod | `1024Mi` | -| `spiderpoolController.resources.requests.cpu` | the cpu requests of spiderpoolController pod | `100m` | -| `spiderpoolController.resources.requests.memory` | the memory requests of spiderpoolController pod | `128Mi` | -| `spiderpoolController.podDisruptionBudget.enabled` | enable podDisruptionBudget for spiderpoolController pod | `false` | -| `spiderpoolController.podDisruptionBudget.minAvailable` | minimum number/percentage of pods that should remain scheduled. | `1` | -| `spiderpoolController.httpPort` | the http Port for spiderpoolController, for health checking and http service | `5720` | -| `spiderpoolController.healthChecking.startupProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `30` | -| `spiderpoolController.healthChecking.startupProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `2` | -| `spiderpoolController.healthChecking.livenessProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `6` | -| `spiderpoolController.healthChecking.livenessProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `10` | -| `spiderpoolController.healthChecking.readinessProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `3` | -| `spiderpoolController.healthChecking.readinessProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `10` | -| `spiderpoolController.webhookPort` | the http port for spiderpoolController webhook | `5722` | -| `spiderpoolController.prometheus.enabled` | enable spiderpool Controller to collect metrics | `false` | -| `spiderpoolController.prometheus.enabledDebugMetric` | enable spiderpool Controller to collect debug level metrics | `false` | -| `spiderpoolController.prometheus.port` | the metrics port of spiderpool Controller | `5721` | -| `spiderpoolController.prometheus.serviceMonitor.install` | install serviceMonitor for spiderpool agent. This requires the prometheus CRDs to be available | `false` | -| `spiderpoolController.prometheus.serviceMonitor.namespace` | the serviceMonitor namespace. Default to the namespace of helm instance | `""` | -| `spiderpoolController.prometheus.serviceMonitor.annotations` | the additional annotations of spiderpoolController serviceMonitor | `{}` | -| `spiderpoolController.prometheus.serviceMonitor.labels` | the additional label of spiderpoolController serviceMonitor | `{}` | -| `spiderpoolController.prometheus.serviceMonitor.interval` | represents the interval of spiderpoolController serviceMonitor's scraping action | `10s` | -| `spiderpoolController.prometheus.prometheusRule.install` | install prometheusRule for spiderpool agent. This requires the prometheus CRDs to be available | `false` | -| `spiderpoolController.prometheus.prometheusRule.namespace` | the prometheusRule namespace. Default to the namespace of helm instance | `""` | -| `spiderpoolController.prometheus.prometheusRule.annotations` | the additional annotations of spiderpoolController prometheusRule | `{}` | -| `spiderpoolController.prometheus.prometheusRule.labels` | the additional label of spiderpoolController prometheusRule | `{}` | -| `spiderpoolController.prometheus.prometheusRule.enableWarningIPGCFailureCounts` | the additional rule of spiderpoolController prometheusRule | `true` | -| `spiderpoolController.debug.logLevel` | the log level of spiderpool Controller [debug, info, warn, error, fatal, panic] | `info` | -| `spiderpoolController.debug.gopsPort` | the gops port of spiderpool Controller | `5724` | -| `spiderpoolController.tls.method` | the method for generating TLS certificates. [ provided , certmanager , auto] | `auto` | -| `spiderpoolController.tls.secretName` | the secret name for storing TLS certificates | `spiderpool-controller-server-certs` | -| `spiderpoolController.tls.certmanager.certValidityDuration` | generated certificates validity duration in days for 'certmanager' method | `365` | -| `spiderpoolController.tls.certmanager.issuerName` | issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. | `""` | -| `spiderpoolController.tls.certmanager.extraDnsNames` | extra DNS names added to certificate when it's auto generated | `[]` | -| `spiderpoolController.tls.certmanager.extraIPAddresses` | extra IP addresses added to certificate when it's auto generated | `[]` | -| `spiderpoolController.tls.provided.tlsCert` | encoded tls certificate for provided method | `""` | -| `spiderpoolController.tls.provided.tlsKey` | encoded tls key for provided method | `""` | -| `spiderpoolController.tls.provided.tlsCa` | encoded tls CA for provided method | `""` | -| `spiderpoolController.tls.auto.caExpiration` | ca expiration for auto method | `73000` | -| `spiderpoolController.tls.auto.certExpiration` | server cert expiration for auto method | `73000` | -| `spiderpoolController.tls.auto.extraIpAddresses` | extra IP addresses of server certificate for auto method | `[]` | -| `spiderpoolController.tls.auto.extraDnsNames` | extra DNS names of server cert for auto method | `[]` | +| Name | Description | Value | +| ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | +| `spiderpoolController.name` | the spiderpoolController name | `spiderpool-controller` | +| `spiderpoolController.replicas` | the replicas number of spiderpoolController pod | `1` | +| `spiderpoolController.binName` | the binName name of spiderpoolController | `/usr/bin/spiderpool-controller` | +| `spiderpoolController.hostnetwork` | enable hostnetwork mode of spiderpoolController pod. Notice, if no CNI available before spiderpool installation, must enable this | `true` | +| `spiderpoolController.image.registry` | the image registry of spiderpoolController | `ghcr.io` | +| `spiderpoolController.image.repository` | the image repository of spiderpoolController | `spidernet-io/spiderpool/spiderpool-controller` | +| `spiderpoolController.image.pullPolicy` | the image pullPolicy of spiderpoolController | `IfNotPresent` | +| `spiderpoolController.image.digest` | the image digest of spiderpoolController, which takes preference over tag | `""` | +| `spiderpoolController.image.tag` | the image tag of spiderpoolController, overrides the image tag whose default is the chart appVersion. | `""` | +| `spiderpoolController.image.imagePullSecrets` | the image imagePullSecrets of spiderpoolController | `[]` | +| `spiderpoolController.serviceAccount.create` | create the service account for the spiderpoolController | `true` | +| `spiderpoolController.serviceAccount.annotations` | the annotations of spiderpoolController service account | `{}` | +| `spiderpoolController.service.annotations` | the annotations for spiderpoolController service | `{}` | +| `spiderpoolController.service.type` | the type for spiderpoolController service | `ClusterIP` | +| `spiderpoolController.priorityClassName` | the priority Class Name for spiderpoolController | `system-node-critical` | +| `spiderpoolController.affinity` | the affinity of spiderpoolController | `{}` | +| `spiderpoolController.extraArgs` | the additional arguments of spiderpoolController container | `[]` | +| `spiderpoolController.extraEnv` | the additional environment variables of spiderpoolController container | `[]` | +| `spiderpoolController.extraVolumes` | the additional volumes of spiderpoolController container | `[]` | +| `spiderpoolController.extraVolumeMounts` | the additional hostPath mounts of spiderpoolController container | `[]` | +| `spiderpoolController.podAnnotations` | the additional annotations of spiderpoolController pod | `{}` | +| `spiderpoolController.podLabels` | the additional label of spiderpoolController pod | `{}` | +| `spiderpoolController.securityContext` | the security Context of spiderpoolController pod | `{}` | +| `spiderpoolController.resources.limits.cpu` | the cpu limit of spiderpoolController pod | `500m` | +| `spiderpoolController.resources.limits.memory` | the memory limit of spiderpoolController pod | `1024Mi` | +| `spiderpoolController.resources.requests.cpu` | the cpu requests of spiderpoolController pod | `100m` | +| `spiderpoolController.resources.requests.memory` | the memory requests of spiderpoolController pod | `128Mi` | +| `spiderpoolController.podDisruptionBudget.enabled` | enable podDisruptionBudget for spiderpoolController pod | `false` | +| `spiderpoolController.podDisruptionBudget.minAvailable` | minimum number/percentage of pods that should remain scheduled. | `1` | +| `spiderpoolController.httpPort` | the http Port for spiderpoolController, for health checking and http service | `5720` | +| `spiderpoolController.healthChecking.startupProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `30` | +| `spiderpoolController.healthChecking.startupProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `2` | +| `spiderpoolController.healthChecking.livenessProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `6` | +| `spiderpoolController.healthChecking.livenessProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `10` | +| `spiderpoolController.healthChecking.readinessProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `3` | +| `spiderpoolController.healthChecking.readinessProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `10` | +| `spiderpoolController.webhookPort` | the http port for spiderpoolController webhook | `5722` | +| `spiderpoolController.podResourceInject.enabled` | enable pod resource inject | `false` | +| `spiderpoolController.podResourceInject.namespacesExclude` | exclude the namespaces of the pod resource inject | `["kube-system","spiderpool","metallb-system","istio-system"]` | +| `spiderpoolController.podResourceInject.namespacesInclude` | include the namespaces of the pod resource inject, empty means all namespaces but exclude the namespaces in namespacesExclude, not empty means only include the namespaces in namespacesInclude | `[]` | +| `spiderpoolController.prometheus.enabled` | enable spiderpool Controller to collect metrics | `false` | +| `spiderpoolController.prometheus.enabledDebugMetric` | enable spiderpool Controller to collect debug level metrics | `false` | +| `spiderpoolController.prometheus.port` | the metrics port of spiderpool Controller | `5721` | +| `spiderpoolController.prometheus.serviceMonitor.install` | install serviceMonitor for spiderpool agent. This requires the prometheus CRDs to be available | `false` | +| `spiderpoolController.prometheus.serviceMonitor.namespace` | the serviceMonitor namespace. Default to the namespace of helm instance | `""` | +| `spiderpoolController.prometheus.serviceMonitor.annotations` | the additional annotations of spiderpoolController serviceMonitor | `{}` | +| `spiderpoolController.prometheus.serviceMonitor.labels` | the additional label of spiderpoolController serviceMonitor | `{}` | +| `spiderpoolController.prometheus.serviceMonitor.interval` | represents the interval of spiderpoolController serviceMonitor's scraping action | `10s` | +| `spiderpoolController.prometheus.prometheusRule.install` | install prometheusRule for spiderpool agent. This requires the prometheus CRDs to be available | `false` | +| `spiderpoolController.prometheus.prometheusRule.namespace` | the prometheusRule namespace. Default to the namespace of helm instance | `""` | +| `spiderpoolController.prometheus.prometheusRule.annotations` | the additional annotations of spiderpoolController prometheusRule | `{}` | +| `spiderpoolController.prometheus.prometheusRule.labels` | the additional label of spiderpoolController prometheusRule | `{}` | +| `spiderpoolController.prometheus.prometheusRule.enableWarningIPGCFailureCounts` | the additional rule of spiderpoolController prometheusRule | `true` | +| `spiderpoolController.debug.logLevel` | the log level of spiderpool Controller [debug, info, warn, error, fatal, panic] | `info` | +| `spiderpoolController.debug.gopsPort` | the gops port of spiderpool Controller | `5724` | +| `spiderpoolController.tls.method` | the method for generating TLS certificates. [ provided , certmanager , auto] | `auto` | +| `spiderpoolController.tls.secretName` | the secret name for storing TLS certificates | `spiderpool-controller-server-certs` | +| `spiderpoolController.tls.certmanager.certValidityDuration` | generated certificates validity duration in days for 'certmanager' method | `36500` | +| `spiderpoolController.tls.certmanager.issuerName` | issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. | `""` | +| `spiderpoolController.tls.certmanager.extraDnsNames` | extra DNS names added to certificate when it's auto generated | `[]` | +| `spiderpoolController.tls.certmanager.extraIPAddresses` | extra IP addresses added to certificate when it's auto generated | `[]` | +| `spiderpoolController.tls.provided.tlsCert` | encoded tls certificate for provided method | `""` | +| `spiderpoolController.tls.provided.tlsKey` | encoded tls key for provided method | `""` | +| `spiderpoolController.tls.provided.tlsCa` | encoded tls CA for provided method | `""` | +| `spiderpoolController.tls.auto.caExpiration` | ca expiration for auto method | `73000` | +| `spiderpoolController.tls.auto.certExpiration` | server cert expiration for auto method | `73000` | +| `spiderpoolController.tls.auto.extraIpAddresses` | extra IP addresses of server certificate for auto method | `[]` | +| `spiderpoolController.tls.auto.extraDnsNames` | extra DNS names of server cert for auto method | `[]` | +| `spiderpoolController.cleanup.enable` | clean up resources when helm uninstall | `true` | ### spiderpoolInit parameters @@ -389,34 +393,62 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ ### sriov network operator parameters -| Name | Description | Value | -| ------------------------------------------ | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | -| `sriov.install` | install sriov network operator | `false` | -| `sriov.name` | the name of sriov network operator | `spiderpool-sriov-operator` | -| `sriov.affinity` | the affinity | `{}` | -| `sriov.hostnetwork` | enable hostnetwork mode. Notice, if no CNI available before spiderpool installation, must enable this | `true` | -| `sriov.replicas` | the replicas number | `1` | -| `sriov.resourcePrefix` | the resource prefix | `spidernet.io` | -| `sriov.priorityClassName` | the priority Class Name | `system-node-critical` | -| `sriov.enableAdmissionController` | enable Admission Controller | `false` | -| `sriov.resources.limits.cpu` | the cpu limit | `300m` | -| `sriov.resources.limits.memory` | the memory limit | `300Mi` | -| `sriov.resources.requests.cpu` | the cpu requests | `100m` | -| `sriov.resources.requests.memory` | the memory requests | `128Mi` | -| `sriov.image.registry` | registry for all images | `ghcr.io` | -| `sriov.image.pullPolicy` | the image pullPolicy for all images | `IfNotPresent` | -| `sriov.image.imagePullSecrets` | the image imagePullSecrets for all images | `[]` | -| `sriov.image.operator.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-operator` | -| `sriov.image.operator.tag` | the image tag | `v1.2.0` | -| `sriov.image.sriovConfigDaemon.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-operator-config-daemon` | -| `sriov.image.sriovConfigDaemon.tag` | the image tag | `v1.2.0` | -| `sriov.image.sriovCni.repository` | the image repository | `k8snetworkplumbingwg/sriov-cni` | -| `sriov.image.sriovCni.tag` | the image tag | `v2.7.0` | -| `sriov.image.ibSriovCni.repository` | the image repository | `k8snetworkplumbingwg/ib-sriov-cni` | -| `sriov.image.ibSriovCni.tag` | the image tag | `v1.0.2` | -| `sriov.image.sriovDevicePlugin.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-device-plugin` | -| `sriov.image.sriovDevicePlugin.tag` | the image tag | `v3.5.1` | -| `sriov.image.resourcesInjector.repository` | the image repository | `k8snetworkplumbingwg/network-resources-injector` | -| `sriov.image.resourcesInjector.tag` | the image tag | `v1.5` | -| `sriov.image.webhook.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-operator-webhook` | -| `sriov.image.webhook.tag` | the image tag | `v1.2.0` | +| Name | Description | Value | +| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | +| `sriov.install` | install sriov network operator | `false` | +| `sriov.name` | the name of sriov network operator | `spiderpool-sriov-operator` | +| `sriov.affinity` | the affinity | `{}` | +| `sriov.hostnetwork` | enable hostnetwork mode. Notice, if no CNI available before spiderpool installation, must enable this | `true` | +| `sriov.replicas` | the replicas number | `1` | +| `sriov.resourcePrefix` | the resource prefix | `spidernet.io` | +| `sriov.priorityClassName` | the priority Class Name | `system-node-critical` | +| `sriov.resources.limits.cpu` | the cpu limit | `300m` | +| `sriov.resources.limits.memory` | the memory limit | `300Mi` | +| `sriov.resources.requests.cpu` | the cpu requests | `100m` | +| `sriov.resources.requests.memory` | the memory requests | `128Mi` | +| `sriov.operatorConfig.enableInjector` | Flag to control whether the network resource injector webhook shall be deployed | `false` | +| `sriov.operatorConfig.enableOperatorWebhook` | Flag to control whether the operator admission controller webhook shall be deployed | `true` | +| `sriov.operatorConfig.logLevel` | Flag to control the log verbose level of the operator | `2` | +| `sriov.operatorConfig.disableDrain` | Flag to disable nodes drain during debugging | `true` | +| `sriov.operatorConfig.configurationMode` | Flag to enable the sriov-network-config-daemon to use a systemd service to configure SR-IOV devices on boot | `daemon` | +| `sriov.image.registry` | registry for all images | `ghcr.io` | +| `sriov.image.pullPolicy` | the image pullPolicy for all images | `IfNotPresent` | +| `sriov.image.imagePullSecrets` | the image imagePullSecrets for all images | `[]` | +| `sriov.image.operator.repository` | the image repository | `spidernet-io/sriov-network-operator` | +| `sriov.image.operator.tag` | the image tag | `v1.3.0` | +| `sriov.image.sriovConfigDaemon.repository` | the image repository | `spidernet-io/sriov-network-operator-config-daemon` | +| `sriov.image.sriovConfigDaemon.tag` | the image tag | `v1.3.0` | +| `sriov.image.sriovDevicePlugin.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-device-plugin` | +| `sriov.image.sriovDevicePlugin.tag` | the image tag | `v3.7.0` | +| `sriov.image.resourcesInjector.repository` | the image repository | `k8snetworkplumbingwg/network-resources-injector` | +| `sriov.image.resourcesInjector.tag` | the image tag | `v1.6.0` | +| `sriov.image.webhook.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-operator-webhook` | +| `sriov.image.webhook.tag` | the image tag | `v1.3.0` | +| `sriov.webhooktls.method` | the method for generating TLS certificates. [ provided , certmanager , auto] | `auto` | +| `sriov.webhooktls.secretName` | the secret name for storing TLS certificates | `sriov-operator-webhook` | +| `sriov.webhooktls.serviceName` | the service name of webhook. Do not modify this !!! | `operator-webhook-service` | +| `sriov.webhooktls.certmanager.certValidityDuration` | generated certificates validity duration in days for 'certmanager' method | `365` | +| `sriov.webhooktls.certmanager.issuerName` | issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. | `""` | +| `sriov.webhooktls.certmanager.extraDnsNames` | extra DNS names added to certificate when it's auto generated | `[]` | +| `sriov.webhooktls.certmanager.extraIPAddresses` | extra IP addresses added to certificate when it's auto generated | `[]` | +| `sriov.webhooktls.provided.tlsCert` | encoded tls certificate for provided method | `""` | +| `sriov.webhooktls.provided.tlsKey` | encoded tls key for provided method | `""` | +| `sriov.webhooktls.provided.tlsCa` | encoded tls CA for provided method | `""` | +| `sriov.webhooktls.auto.caExpiration` | ca expiration for auto method | `73000` | +| `sriov.webhooktls.auto.certExpiration` | server cert expiration for auto method | `73000` | +| `sriov.webhooktls.auto.extraIpAddresses` | extra IP addresses of server certificate for auto method | `[]` | +| `sriov.webhooktls.auto.extraDnsNames` | extra DNS names of server cert for auto method | `[]` | +| `sriov.injectortls.method` | the method for generating TLS certificates. [ provided , certmanager , auto] | `auto` | +| `sriov.injectortls.secretName` | the secret name for storing TLS certificates | `sriov-injector` | +| `sriov.injectortls.serviceName` | the service name of webhook. Do not modify this !!! | `network-resources-injector-service` | +| `sriov.injectortls.certmanager.certValidityDuration` | generated certificates validity duration in days for 'certmanager' method | `36500` | +| `sriov.injectortls.certmanager.issuerName` | issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. | `""` | +| `sriov.injectortls.certmanager.extraDnsNames` | extra DNS names added to certificate when it's auto generated | `[]` | +| `sriov.injectortls.certmanager.extraIPAddresses` | extra IP addresses added to certificate when it's auto generated | `[]` | +| `sriov.injectortls.provided.tlsCert` | encoded tls certificate for provided method | `""` | +| `sriov.injectortls.provided.tlsKey` | encoded tls key for provided method | `""` | +| `sriov.injectortls.provided.tlsCa` | encoded tls CA for provided method | `""` | +| `sriov.injectortls.auto.caExpiration` | ca expiration for auto method | `73000` | +| `sriov.injectortls.auto.certExpiration` | server cert expiration for auto method | `73000` | +| `sriov.injectortls.auto.extraIpAddresses` | extra IP addresses of server certificate for auto method | `[]` | +| `sriov.injectortls.auto.extraDnsNames` | extra DNS names of server cert for auto method | `[]` | diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/Chart.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/Chart.yaml index 5a3608f13..977a81038 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/Chart.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 0.9.7 +appVersion: 1.0.0-rc2 description: underlay CNI solution for kubernetes home: https://spidernet-io.github.io/spiderpool icon: https://raw.githubusercontent.com/spidernet-io/spiderpool/main/docs/images/spider.svg @@ -16,4 +16,4 @@ name: spiderpool sources: - https://github.com/spidernet-io/spiderpool type: application -version: 0.9.7 +version: 1.0.0-rc2 diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/README.md b/charts/spiderpool/spiderpool/charts/spiderpool/README.md index 105107e2b..1cfb0f204 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/README.md +++ b/charts/spiderpool/spiderpool/charts/spiderpool/README.md @@ -127,19 +127,20 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ ### ipam parameters -| Name | Description | Value | -| ------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------ | -| `ipam.enableIPv4` | enable ipv4 | `true` | -| `ipam.enableIPv6` | enable ipv6 | `true` | -| `ipam.enableStatefulSet` | the network mode | `true` | -| `ipam.enableKubevirtStaticIP` | the feature to keep kubevirt vm pod static IP | `true` | -| `ipam.enableSpiderSubnet` | SpiderSubnet feature gate. | `true` | -| `ipam.subnetDefaultFlexibleIPNumber` | the default flexible IP number of SpiderSubnet feature auto-created IPPools | `1` | -| `ipam.gc.enabled` | enable retrieve IP in spiderippool CR | `true` | -| `ipam.gc.gcAll.intervalInSecond` | the gc all interval duration | `600` | -| `ipam.gc.statelessPod.zombieOnReadyNode` | enable reclaim IP for the stateless pod who is over deleting graceful period on a ready node | `true` | -| `ipam.gc.statelessPod.zombieOnNotReadyNode` | enable reclaim IP for the stateless pod who is over deleting graceful period on a not-ready node | `true` | -| `ipam.gc.gcDeletingTimeOutPodDelay` | the gc delay seconds after the pod times out of deleting graceful period | `0` | +| Name | Description | Value | +| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------ | +| `ipam.enableIPv4` | enable ipv4 | `true` | +| `ipam.enableIPv6` | enable ipv6 | `true` | +| `ipam.enableStatefulSet` | the network mode | `true` | +| `ipam.enableKubevirtStaticIP` | the feature to keep kubevirt vm pod static IP | `true` | +| `ipam.spiderSubnet.enable` | SpiderSubnet feature. | `true` | +| `ipam.spiderSubnet.autoPool.enable` | SpiderSubnet Auto IPPool feature. | `true` | +| `ipam.spiderSubnet.autoPool.defaultRedundantIPNumber` | the default redundant IP number of SpiderSubnet feature auto-created IPPools | `1` | +| `ipam.gc.enabled` | enable retrieve IP in spiderippool CR | `true` | +| `ipam.gc.gcAll.intervalInSecond` | the gc all interval duration | `600` | +| `ipam.gc.statelessPod.zombieOnReadyNode` | enable reclaim IP for the stateless pod who is over deleting graceful period on a ready node | `true` | +| `ipam.gc.statelessPod.zombieOnNotReadyNode` | enable reclaim IP for the stateless pod who is over deleting graceful period on a not-ready node | `true` | +| `ipam.gc.gcDeletingTimeOutPodDelay` | the gc delay seconds after the pod times out of deleting graceful period | `0` | ### grafanaDashboard parameters @@ -162,6 +163,7 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ | `coordinator.detectIPConflict` | detect IP address conflicts | `false` | | `coordinator.tunePodRoutes` | tune Pod routes | `true` | | `coordinator.hijackCIDR` | Additional subnets that need to be hijacked to the host forward, the default link-local range "169.254.0.0/16" is used for NodeLocal DNS | `["169.254.0.0/16"]` | +| `coordinator.vethLinkAddress` | configure an link-local address for veth0 device. empty means disable. default is empty. Format is like 169.254.100.1 | `""` | ### rdma parameters @@ -173,7 +175,7 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ | `rdma.rdmaSharedDevicePlugin.image.repository` | the image repository of rdma shared device plugin | `mellanox/k8s-rdma-shared-dev-plugin` | | `rdma.rdmaSharedDevicePlugin.image.pullPolicy` | the image pullPolicy of rdma shared device plugin | `IfNotPresent` | | `rdma.rdmaSharedDevicePlugin.image.digest` | the image digest of rdma shared device plugin | `""` | -| `rdma.rdmaSharedDevicePlugin.image.tag` | the image tag of rdma shared device plugin | `latest` | +| `rdma.rdmaSharedDevicePlugin.image.tag` | the image tag of rdma shared device plugin | `v1.5.1` | | `rdma.rdmaSharedDevicePlugin.image.imagePullSecrets` | the image imagePullSecrets of rdma shared device plugin | `[]` | | `rdma.rdmaSharedDevicePlugin.podAnnotations` | the additional annotations | `{}` | | `rdma.rdmaSharedDevicePlugin.podLabels` | the additional label | `{}` | @@ -182,11 +184,7 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ | `rdma.rdmaSharedDevicePlugin.resources.requests.cpu` | the cpu requests | `100m` | | `rdma.rdmaSharedDevicePlugin.resources.requests.memory` | the memory requests | `50Mi` | | `rdma.rdmaSharedDevicePlugin.deviceConfig.periodicUpdateInterval` | periodic Update Interval | `300` | -| `rdma.rdmaSharedDevicePlugin.deviceConfig.resourcePrefix` | resource prefix | `spidernet.io` | -| `rdma.rdmaSharedDevicePlugin.deviceConfig.resourceName` | resource Name | `hca_shared_devices` | -| `rdma.rdmaSharedDevicePlugin.deviceConfig.rdmaHcaMax` | rdma Hca Max | `500` | -| `rdma.rdmaSharedDevicePlugin.deviceConfig.vendors` | rdma device vendors, default to mellanox device | `15b3` | -| `rdma.rdmaSharedDevicePlugin.deviceConfig.deviceIDs` | rdma device IDs, default to mellanox device | `1017` | +| `rdma.rdmaSharedDevicePlugin.deviceConfig.configList` | configure the network card for the rdma resource | `[]` | ### multus parameters @@ -217,13 +215,14 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ | `plugins.installCNI` | install all cni plugins to each node | `false` | | `plugins.installRdmaCNI` | install rdma cni used to isolate rdma device for sriov cni | `true` | | `plugins.installOvsCNI` | install ovs cni to each node | `true` | +| `plugins.installSriovCNI` | install sriov cni to each node | `true` | | `plugins.installibSriovCNI` | install ib-sriov cni to each node | `true` | | `plugins.installIpoibCNI` | install ipoib cni to each node | `true` | | `plugins.image.registry` | the image registry of plugins | `ghcr.io` | | `plugins.image.repository` | the image repository of plugins | `spidernet-io/spiderpool/spiderpool-plugins` | | `plugins.image.pullPolicy` | the image pullPolicy of plugins | `IfNotPresent` | | `plugins.image.digest` | the image digest of plugins | `""` | -| `plugins.image.tag` | the image tag of plugins | `v0.9.2` | +| `plugins.image.tag` | the image tag of plugins | `82659d90cae0d6a5169eac2869e47c989932d775` | | `plugins.image.imagePullSecrets` | the image imagePullSecrets of plugins | `[]` | ### clusterDefaultPool parameters @@ -281,6 +280,7 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ | `spiderpoolAgent.healthChecking.readinessProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolAgent health checking | `3` | | `spiderpoolAgent.healthChecking.readinessProbe.periodSeconds` | the period seconds of startup probe for spiderpoolAgent health checking | `10` | | `spiderpoolAgent.prometheus.enabled` | enable spiderpool agent to collect metrics | `false` | +| `spiderpoolAgent.prometheus.enabledRdmaMetric` | enable spiderpool agent to collect RDMA metrics | `false` | | `spiderpoolAgent.prometheus.enabledDebugMetric` | enable spiderpool agent to collect debug level metrics | `false` | | `spiderpoolAgent.prometheus.port` | the metrics port of spiderpool agent | `5711` | | `spiderpoolAgent.prometheus.serviceMonitor.install` | install serviceMonitor for spiderpool agent. This requires the prometheus CRDs to be available | `false` | @@ -302,73 +302,77 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ ### spiderpoolController parameters -| Name | Description | Value | -| ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | -| `spiderpoolController.name` | the spiderpoolController name | `spiderpool-controller` | -| `spiderpoolController.replicas` | the replicas number of spiderpoolController pod | `1` | -| `spiderpoolController.binName` | the binName name of spiderpoolController | `/usr/bin/spiderpool-controller` | -| `spiderpoolController.hostnetwork` | enable hostnetwork mode of spiderpoolController pod. Notice, if no CNI available before spiderpool installation, must enable this | `true` | -| `spiderpoolController.image.registry` | the image registry of spiderpoolController | `ghcr.io` | -| `spiderpoolController.image.repository` | the image repository of spiderpoolController | `spidernet-io/spiderpool/spiderpool-controller` | -| `spiderpoolController.image.pullPolicy` | the image pullPolicy of spiderpoolController | `IfNotPresent` | -| `spiderpoolController.image.digest` | the image digest of spiderpoolController, which takes preference over tag | `""` | -| `spiderpoolController.image.tag` | the image tag of spiderpoolController, overrides the image tag whose default is the chart appVersion. | `""` | -| `spiderpoolController.image.imagePullSecrets` | the image imagePullSecrets of spiderpoolController | `[]` | -| `spiderpoolController.serviceAccount.create` | create the service account for the spiderpoolController | `true` | -| `spiderpoolController.serviceAccount.annotations` | the annotations of spiderpoolController service account | `{}` | -| `spiderpoolController.service.annotations` | the annotations for spiderpoolController service | `{}` | -| `spiderpoolController.service.type` | the type for spiderpoolController service | `ClusterIP` | -| `spiderpoolController.priorityClassName` | the priority Class Name for spiderpoolController | `system-node-critical` | -| `spiderpoolController.affinity` | the affinity of spiderpoolController | `{}` | -| `spiderpoolController.extraArgs` | the additional arguments of spiderpoolController container | `[]` | -| `spiderpoolController.extraEnv` | the additional environment variables of spiderpoolController container | `[]` | -| `spiderpoolController.extraVolumes` | the additional volumes of spiderpoolController container | `[]` | -| `spiderpoolController.extraVolumeMounts` | the additional hostPath mounts of spiderpoolController container | `[]` | -| `spiderpoolController.podAnnotations` | the additional annotations of spiderpoolController pod | `{}` | -| `spiderpoolController.podLabels` | the additional label of spiderpoolController pod | `{}` | -| `spiderpoolController.securityContext` | the security Context of spiderpoolController pod | `{}` | -| `spiderpoolController.resources.limits.cpu` | the cpu limit of spiderpoolController pod | `500m` | -| `spiderpoolController.resources.limits.memory` | the memory limit of spiderpoolController pod | `1024Mi` | -| `spiderpoolController.resources.requests.cpu` | the cpu requests of spiderpoolController pod | `100m` | -| `spiderpoolController.resources.requests.memory` | the memory requests of spiderpoolController pod | `128Mi` | -| `spiderpoolController.podDisruptionBudget.enabled` | enable podDisruptionBudget for spiderpoolController pod | `false` | -| `spiderpoolController.podDisruptionBudget.minAvailable` | minimum number/percentage of pods that should remain scheduled. | `1` | -| `spiderpoolController.httpPort` | the http Port for spiderpoolController, for health checking and http service | `5720` | -| `spiderpoolController.healthChecking.startupProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `30` | -| `spiderpoolController.healthChecking.startupProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `2` | -| `spiderpoolController.healthChecking.livenessProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `6` | -| `spiderpoolController.healthChecking.livenessProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `10` | -| `spiderpoolController.healthChecking.readinessProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `3` | -| `spiderpoolController.healthChecking.readinessProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `10` | -| `spiderpoolController.webhookPort` | the http port for spiderpoolController webhook | `5722` | -| `spiderpoolController.prometheus.enabled` | enable spiderpool Controller to collect metrics | `false` | -| `spiderpoolController.prometheus.enabledDebugMetric` | enable spiderpool Controller to collect debug level metrics | `false` | -| `spiderpoolController.prometheus.port` | the metrics port of spiderpool Controller | `5721` | -| `spiderpoolController.prometheus.serviceMonitor.install` | install serviceMonitor for spiderpool agent. This requires the prometheus CRDs to be available | `false` | -| `spiderpoolController.prometheus.serviceMonitor.namespace` | the serviceMonitor namespace. Default to the namespace of helm instance | `""` | -| `spiderpoolController.prometheus.serviceMonitor.annotations` | the additional annotations of spiderpoolController serviceMonitor | `{}` | -| `spiderpoolController.prometheus.serviceMonitor.labels` | the additional label of spiderpoolController serviceMonitor | `{}` | -| `spiderpoolController.prometheus.serviceMonitor.interval` | represents the interval of spiderpoolController serviceMonitor's scraping action | `10s` | -| `spiderpoolController.prometheus.prometheusRule.install` | install prometheusRule for spiderpool agent. This requires the prometheus CRDs to be available | `false` | -| `spiderpoolController.prometheus.prometheusRule.namespace` | the prometheusRule namespace. Default to the namespace of helm instance | `""` | -| `spiderpoolController.prometheus.prometheusRule.annotations` | the additional annotations of spiderpoolController prometheusRule | `{}` | -| `spiderpoolController.prometheus.prometheusRule.labels` | the additional label of spiderpoolController prometheusRule | `{}` | -| `spiderpoolController.prometheus.prometheusRule.enableWarningIPGCFailureCounts` | the additional rule of spiderpoolController prometheusRule | `true` | -| `spiderpoolController.debug.logLevel` | the log level of spiderpool Controller [debug, info, warn, error, fatal, panic] | `info` | -| `spiderpoolController.debug.gopsPort` | the gops port of spiderpool Controller | `5724` | -| `spiderpoolController.tls.method` | the method for generating TLS certificates. [ provided , certmanager , auto] | `auto` | -| `spiderpoolController.tls.secretName` | the secret name for storing TLS certificates | `spiderpool-controller-server-certs` | -| `spiderpoolController.tls.certmanager.certValidityDuration` | generated certificates validity duration in days for 'certmanager' method | `365` | -| `spiderpoolController.tls.certmanager.issuerName` | issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. | `""` | -| `spiderpoolController.tls.certmanager.extraDnsNames` | extra DNS names added to certificate when it's auto generated | `[]` | -| `spiderpoolController.tls.certmanager.extraIPAddresses` | extra IP addresses added to certificate when it's auto generated | `[]` | -| `spiderpoolController.tls.provided.tlsCert` | encoded tls certificate for provided method | `""` | -| `spiderpoolController.tls.provided.tlsKey` | encoded tls key for provided method | `""` | -| `spiderpoolController.tls.provided.tlsCa` | encoded tls CA for provided method | `""` | -| `spiderpoolController.tls.auto.caExpiration` | ca expiration for auto method | `73000` | -| `spiderpoolController.tls.auto.certExpiration` | server cert expiration for auto method | `73000` | -| `spiderpoolController.tls.auto.extraIpAddresses` | extra IP addresses of server certificate for auto method | `[]` | -| `spiderpoolController.tls.auto.extraDnsNames` | extra DNS names of server cert for auto method | `[]` | +| Name | Description | Value | +| ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | +| `spiderpoolController.name` | the spiderpoolController name | `spiderpool-controller` | +| `spiderpoolController.replicas` | the replicas number of spiderpoolController pod | `1` | +| `spiderpoolController.binName` | the binName name of spiderpoolController | `/usr/bin/spiderpool-controller` | +| `spiderpoolController.hostnetwork` | enable hostnetwork mode of spiderpoolController pod. Notice, if no CNI available before spiderpool installation, must enable this | `true` | +| `spiderpoolController.image.registry` | the image registry of spiderpoolController | `ghcr.io` | +| `spiderpoolController.image.repository` | the image repository of spiderpoolController | `spidernet-io/spiderpool/spiderpool-controller` | +| `spiderpoolController.image.pullPolicy` | the image pullPolicy of spiderpoolController | `IfNotPresent` | +| `spiderpoolController.image.digest` | the image digest of spiderpoolController, which takes preference over tag | `""` | +| `spiderpoolController.image.tag` | the image tag of spiderpoolController, overrides the image tag whose default is the chart appVersion. | `""` | +| `spiderpoolController.image.imagePullSecrets` | the image imagePullSecrets of spiderpoolController | `[]` | +| `spiderpoolController.serviceAccount.create` | create the service account for the spiderpoolController | `true` | +| `spiderpoolController.serviceAccount.annotations` | the annotations of spiderpoolController service account | `{}` | +| `spiderpoolController.service.annotations` | the annotations for spiderpoolController service | `{}` | +| `spiderpoolController.service.type` | the type for spiderpoolController service | `ClusterIP` | +| `spiderpoolController.priorityClassName` | the priority Class Name for spiderpoolController | `system-node-critical` | +| `spiderpoolController.affinity` | the affinity of spiderpoolController | `{}` | +| `spiderpoolController.extraArgs` | the additional arguments of spiderpoolController container | `[]` | +| `spiderpoolController.extraEnv` | the additional environment variables of spiderpoolController container | `[]` | +| `spiderpoolController.extraVolumes` | the additional volumes of spiderpoolController container | `[]` | +| `spiderpoolController.extraVolumeMounts` | the additional hostPath mounts of spiderpoolController container | `[]` | +| `spiderpoolController.podAnnotations` | the additional annotations of spiderpoolController pod | `{}` | +| `spiderpoolController.podLabels` | the additional label of spiderpoolController pod | `{}` | +| `spiderpoolController.securityContext` | the security Context of spiderpoolController pod | `{}` | +| `spiderpoolController.resources.limits.cpu` | the cpu limit of spiderpoolController pod | `500m` | +| `spiderpoolController.resources.limits.memory` | the memory limit of spiderpoolController pod | `1024Mi` | +| `spiderpoolController.resources.requests.cpu` | the cpu requests of spiderpoolController pod | `100m` | +| `spiderpoolController.resources.requests.memory` | the memory requests of spiderpoolController pod | `128Mi` | +| `spiderpoolController.podDisruptionBudget.enabled` | enable podDisruptionBudget for spiderpoolController pod | `false` | +| `spiderpoolController.podDisruptionBudget.minAvailable` | minimum number/percentage of pods that should remain scheduled. | `1` | +| `spiderpoolController.httpPort` | the http Port for spiderpoolController, for health checking and http service | `5720` | +| `spiderpoolController.healthChecking.startupProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `30` | +| `spiderpoolController.healthChecking.startupProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `2` | +| `spiderpoolController.healthChecking.livenessProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `6` | +| `spiderpoolController.healthChecking.livenessProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `10` | +| `spiderpoolController.healthChecking.readinessProbe.failureThreshold` | the failure threshold of startup probe for spiderpoolController health checking | `3` | +| `spiderpoolController.healthChecking.readinessProbe.periodSeconds` | the period seconds of startup probe for spiderpoolController health checking | `10` | +| `spiderpoolController.webhookPort` | the http port for spiderpoolController webhook | `5722` | +| `spiderpoolController.podResourceInject.enabled` | enable pod resource inject | `false` | +| `spiderpoolController.podResourceInject.namespacesExclude` | exclude the namespaces of the pod resource inject | `["kube-system","spiderpool","metallb-system","istio-system"]` | +| `spiderpoolController.podResourceInject.namespacesInclude` | include the namespaces of the pod resource inject, empty means all namespaces but exclude the namespaces in namespacesExclude, not empty means only include the namespaces in namespacesInclude | `[]` | +| `spiderpoolController.prometheus.enabled` | enable spiderpool Controller to collect metrics | `false` | +| `spiderpoolController.prometheus.enabledDebugMetric` | enable spiderpool Controller to collect debug level metrics | `false` | +| `spiderpoolController.prometheus.port` | the metrics port of spiderpool Controller | `5721` | +| `spiderpoolController.prometheus.serviceMonitor.install` | install serviceMonitor for spiderpool agent. This requires the prometheus CRDs to be available | `false` | +| `spiderpoolController.prometheus.serviceMonitor.namespace` | the serviceMonitor namespace. Default to the namespace of helm instance | `""` | +| `spiderpoolController.prometheus.serviceMonitor.annotations` | the additional annotations of spiderpoolController serviceMonitor | `{}` | +| `spiderpoolController.prometheus.serviceMonitor.labels` | the additional label of spiderpoolController serviceMonitor | `{}` | +| `spiderpoolController.prometheus.serviceMonitor.interval` | represents the interval of spiderpoolController serviceMonitor's scraping action | `10s` | +| `spiderpoolController.prometheus.prometheusRule.install` | install prometheusRule for spiderpool agent. This requires the prometheus CRDs to be available | `false` | +| `spiderpoolController.prometheus.prometheusRule.namespace` | the prometheusRule namespace. Default to the namespace of helm instance | `""` | +| `spiderpoolController.prometheus.prometheusRule.annotations` | the additional annotations of spiderpoolController prometheusRule | `{}` | +| `spiderpoolController.prometheus.prometheusRule.labels` | the additional label of spiderpoolController prometheusRule | `{}` | +| `spiderpoolController.prometheus.prometheusRule.enableWarningIPGCFailureCounts` | the additional rule of spiderpoolController prometheusRule | `true` | +| `spiderpoolController.debug.logLevel` | the log level of spiderpool Controller [debug, info, warn, error, fatal, panic] | `info` | +| `spiderpoolController.debug.gopsPort` | the gops port of spiderpool Controller | `5724` | +| `spiderpoolController.tls.method` | the method for generating TLS certificates. [ provided , certmanager , auto] | `auto` | +| `spiderpoolController.tls.secretName` | the secret name for storing TLS certificates | `spiderpool-controller-server-certs` | +| `spiderpoolController.tls.certmanager.certValidityDuration` | generated certificates validity duration in days for 'certmanager' method | `36500` | +| `spiderpoolController.tls.certmanager.issuerName` | issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. | `""` | +| `spiderpoolController.tls.certmanager.extraDnsNames` | extra DNS names added to certificate when it's auto generated | `[]` | +| `spiderpoolController.tls.certmanager.extraIPAddresses` | extra IP addresses added to certificate when it's auto generated | `[]` | +| `spiderpoolController.tls.provided.tlsCert` | encoded tls certificate for provided method | `""` | +| `spiderpoolController.tls.provided.tlsKey` | encoded tls key for provided method | `""` | +| `spiderpoolController.tls.provided.tlsCa` | encoded tls CA for provided method | `""` | +| `spiderpoolController.tls.auto.caExpiration` | ca expiration for auto method | `73000` | +| `spiderpoolController.tls.auto.certExpiration` | server cert expiration for auto method | `73000` | +| `spiderpoolController.tls.auto.extraIpAddresses` | extra IP addresses of server certificate for auto method | `[]` | +| `spiderpoolController.tls.auto.extraDnsNames` | extra DNS names of server cert for auto method | `[]` | +| `spiderpoolController.cleanup.enable` | clean up resources when helm uninstall | `true` | ### spiderpoolInit parameters @@ -389,34 +393,62 @@ helm install spiderpool spiderpool/spiderpool --wait --namespace kube-system \ ### sriov network operator parameters -| Name | Description | Value | -| ------------------------------------------ | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | -| `sriov.install` | install sriov network operator | `false` | -| `sriov.name` | the name of sriov network operator | `spiderpool-sriov-operator` | -| `sriov.affinity` | the affinity | `{}` | -| `sriov.hostnetwork` | enable hostnetwork mode. Notice, if no CNI available before spiderpool installation, must enable this | `true` | -| `sriov.replicas` | the replicas number | `1` | -| `sriov.resourcePrefix` | the resource prefix | `spidernet.io` | -| `sriov.priorityClassName` | the priority Class Name | `system-node-critical` | -| `sriov.enableAdmissionController` | enable Admission Controller | `false` | -| `sriov.resources.limits.cpu` | the cpu limit | `300m` | -| `sriov.resources.limits.memory` | the memory limit | `300Mi` | -| `sriov.resources.requests.cpu` | the cpu requests | `100m` | -| `sriov.resources.requests.memory` | the memory requests | `128Mi` | -| `sriov.image.registry` | registry for all images | `ghcr.io` | -| `sriov.image.pullPolicy` | the image pullPolicy for all images | `IfNotPresent` | -| `sriov.image.imagePullSecrets` | the image imagePullSecrets for all images | `[]` | -| `sriov.image.operator.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-operator` | -| `sriov.image.operator.tag` | the image tag | `v1.2.0` | -| `sriov.image.sriovConfigDaemon.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-operator-config-daemon` | -| `sriov.image.sriovConfigDaemon.tag` | the image tag | `v1.2.0` | -| `sriov.image.sriovCni.repository` | the image repository | `k8snetworkplumbingwg/sriov-cni` | -| `sriov.image.sriovCni.tag` | the image tag | `v2.7.0` | -| `sriov.image.ibSriovCni.repository` | the image repository | `k8snetworkplumbingwg/ib-sriov-cni` | -| `sriov.image.ibSriovCni.tag` | the image tag | `v1.0.2` | -| `sriov.image.sriovDevicePlugin.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-device-plugin` | -| `sriov.image.sriovDevicePlugin.tag` | the image tag | `v3.5.1` | -| `sriov.image.resourcesInjector.repository` | the image repository | `k8snetworkplumbingwg/network-resources-injector` | -| `sriov.image.resourcesInjector.tag` | the image tag | `v1.5` | -| `sriov.image.webhook.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-operator-webhook` | -| `sriov.image.webhook.tag` | the image tag | `v1.2.0` | +| Name | Description | Value | +| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | +| `sriov.install` | install sriov network operator | `false` | +| `sriov.name` | the name of sriov network operator | `spiderpool-sriov-operator` | +| `sriov.affinity` | the affinity | `{}` | +| `sriov.hostnetwork` | enable hostnetwork mode. Notice, if no CNI available before spiderpool installation, must enable this | `true` | +| `sriov.replicas` | the replicas number | `1` | +| `sriov.resourcePrefix` | the resource prefix | `spidernet.io` | +| `sriov.priorityClassName` | the priority Class Name | `system-node-critical` | +| `sriov.resources.limits.cpu` | the cpu limit | `300m` | +| `sriov.resources.limits.memory` | the memory limit | `300Mi` | +| `sriov.resources.requests.cpu` | the cpu requests | `100m` | +| `sriov.resources.requests.memory` | the memory requests | `128Mi` | +| `sriov.operatorConfig.enableInjector` | Flag to control whether the network resource injector webhook shall be deployed | `false` | +| `sriov.operatorConfig.enableOperatorWebhook` | Flag to control whether the operator admission controller webhook shall be deployed | `true` | +| `sriov.operatorConfig.logLevel` | Flag to control the log verbose level of the operator | `2` | +| `sriov.operatorConfig.disableDrain` | Flag to disable nodes drain during debugging | `true` | +| `sriov.operatorConfig.configurationMode` | Flag to enable the sriov-network-config-daemon to use a systemd service to configure SR-IOV devices on boot | `daemon` | +| `sriov.image.registry` | registry for all images | `ghcr.io` | +| `sriov.image.pullPolicy` | the image pullPolicy for all images | `IfNotPresent` | +| `sriov.image.imagePullSecrets` | the image imagePullSecrets for all images | `[]` | +| `sriov.image.operator.repository` | the image repository | `spidernet-io/sriov-network-operator` | +| `sriov.image.operator.tag` | the image tag | `v1.3.0` | +| `sriov.image.sriovConfigDaemon.repository` | the image repository | `spidernet-io/sriov-network-operator-config-daemon` | +| `sriov.image.sriovConfigDaemon.tag` | the image tag | `v1.3.0` | +| `sriov.image.sriovDevicePlugin.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-device-plugin` | +| `sriov.image.sriovDevicePlugin.tag` | the image tag | `v3.7.0` | +| `sriov.image.resourcesInjector.repository` | the image repository | `k8snetworkplumbingwg/network-resources-injector` | +| `sriov.image.resourcesInjector.tag` | the image tag | `v1.6.0` | +| `sriov.image.webhook.repository` | the image repository | `k8snetworkplumbingwg/sriov-network-operator-webhook` | +| `sriov.image.webhook.tag` | the image tag | `v1.3.0` | +| `sriov.webhooktls.method` | the method for generating TLS certificates. [ provided , certmanager , auto] | `auto` | +| `sriov.webhooktls.secretName` | the secret name for storing TLS certificates | `sriov-operator-webhook` | +| `sriov.webhooktls.serviceName` | the service name of webhook. Do not modify this !!! | `operator-webhook-service` | +| `sriov.webhooktls.certmanager.certValidityDuration` | generated certificates validity duration in days for 'certmanager' method | `365` | +| `sriov.webhooktls.certmanager.issuerName` | issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. | `""` | +| `sriov.webhooktls.certmanager.extraDnsNames` | extra DNS names added to certificate when it's auto generated | `[]` | +| `sriov.webhooktls.certmanager.extraIPAddresses` | extra IP addresses added to certificate when it's auto generated | `[]` | +| `sriov.webhooktls.provided.tlsCert` | encoded tls certificate for provided method | `""` | +| `sriov.webhooktls.provided.tlsKey` | encoded tls key for provided method | `""` | +| `sriov.webhooktls.provided.tlsCa` | encoded tls CA for provided method | `""` | +| `sriov.webhooktls.auto.caExpiration` | ca expiration for auto method | `73000` | +| `sriov.webhooktls.auto.certExpiration` | server cert expiration for auto method | `73000` | +| `sriov.webhooktls.auto.extraIpAddresses` | extra IP addresses of server certificate for auto method | `[]` | +| `sriov.webhooktls.auto.extraDnsNames` | extra DNS names of server cert for auto method | `[]` | +| `sriov.injectortls.method` | the method for generating TLS certificates. [ provided , certmanager , auto] | `auto` | +| `sriov.injectortls.secretName` | the secret name for storing TLS certificates | `sriov-injector` | +| `sriov.injectortls.serviceName` | the service name of webhook. Do not modify this !!! | `network-resources-injector-service` | +| `sriov.injectortls.certmanager.certValidityDuration` | generated certificates validity duration in days for 'certmanager' method | `36500` | +| `sriov.injectortls.certmanager.issuerName` | issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. | `""` | +| `sriov.injectortls.certmanager.extraDnsNames` | extra DNS names added to certificate when it's auto generated | `[]` | +| `sriov.injectortls.certmanager.extraIPAddresses` | extra IP addresses added to certificate when it's auto generated | `[]` | +| `sriov.injectortls.provided.tlsCert` | encoded tls certificate for provided method | `""` | +| `sriov.injectortls.provided.tlsKey` | encoded tls key for provided method | `""` | +| `sriov.injectortls.provided.tlsCa` | encoded tls CA for provided method | `""` | +| `sriov.injectortls.auto.caExpiration` | ca expiration for auto method | `73000` | +| `sriov.injectortls.auto.certExpiration` | server cert expiration for auto method | `73000` | +| `sriov.injectortls.auto.extraIpAddresses` | extra IP addresses of server certificate for auto method | `[]` | +| `sriov.injectortls.auto.extraDnsNames` | extra DNS names of server cert for auto method | `[]` | diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/k8s.cni.cncf.io_networkattachmentdefinitions_crd.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/k8s.cni.cncf.io_networkattachmentdefinitions_crd.yaml index 8319ebae9..5916055f0 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/crds/k8s.cni.cncf.io_networkattachmentdefinitions_crd.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/k8s.cni.cncf.io_networkattachmentdefinitions_crd.yaml @@ -1,3 +1,16 @@ +# Copyright 2020 NVIDIA +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: @@ -10,7 +23,7 @@ spec: singular: network-attachment-definition kind: NetworkAttachmentDefinition shortNames: - - net-attach-def + - net-attach-def versions: - name: v1 served: true diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spiderclaimparameters.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spiderclaimparameters.yaml new file mode 100644 index 000000000..124c355f8 --- /dev/null +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spiderclaimparameters.yaml @@ -0,0 +1,92 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: (unknown) + name: spiderclaimparameters.spiderpool.spidernet.io +spec: + group: spiderpool.spidernet.io + names: + categories: + - spiderpool + kind: SpiderClaimParameter + listKind: SpiderClaimParameterList + plural: spiderclaimparameters + shortNames: + - scp + singular: spiderclaimparameter + scope: Namespaced + versions: + - name: v2beta1 + schema: + openAPIV3Schema: + description: SpiderClaimParameter is the Schema for the spiderclaimparameters + API. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: ClaimParameterSpec defines the desired state of SpiderClaimParameter. + properties: + defaultNic: + description: DefaultNic aSpecify which SpiderMultusConfig is to be + used as the default NIC for the pod. + properties: + defaultRoute: + description: DefaultRoute indicated whether this nic is the default + route nic for the pod + type: boolean + multusName: + description: MultusName the name of the SpiderMultusConfig instance + type: string + namespace: + description: Namespace the namespace of the SpiderMultusConfig + instance + type: string + required: + - multusName + - namespace + type: object + enableRdma: + default: false + description: EnableRDMA If it is true, then all SpiderMultusConfig + references in this SpiderClaimParameter must be enabled. + type: boolean + secondaryNics: + description: SecondaryNics a list of SpiderMultusConfig references + that are to be used as secondary NICs for the pod. + items: + properties: + defaultRoute: + description: DefaultRoute indicated whether this nic is the + default route nic for the pod + type: boolean + multusName: + description: MultusName the name of the SpiderMultusConfig instance + type: string + namespace: + description: Namespace the namespace of the SpiderMultusConfig + instance + type: string + required: + - multusName + - namespace + type: object + type: array + required: + - enableRdma + type: object + type: object + served: true + storage: true diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spidercoordinators.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spidercoordinators.yaml index 72e1dacd9..00dc8d923 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spidercoordinators.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spidercoordinators.yaml @@ -120,6 +120,11 @@ spec: is a positive integer the default value is 0, which means leaving it as it is. type: integer + vethLinkAddress: + description: VethLinkAddress configure a ipv4 link-local address for + veth0 device. empty means disable. default is empty. Format is like + 169.254.100.1 + type: string type: object status: description: CoordinationStatus defines the observed state of SpiderCoordinator. diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spiderippools.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spiderippools.yaml index cedcdd05f..4753a3b4d 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spiderippools.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spiderippools.yaml @@ -137,11 +137,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -189,11 +191,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -241,11 +245,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spidermultusconfigs.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spidermultusconfigs.yaml index 514d455a3..461d27a56 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spidermultusconfigs.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/spiderpool.spidernet.io_spidermultusconfigs.yaml @@ -141,6 +141,11 @@ spec: is a positive integer the default value is 0, which means leaving it as it is. type: integer + vethLinkAddress: + description: VethLinkAddress configure a ipv4 link-local address + for veth0 device. empty means disable. default is empty. Format + is like 169.254.100.1 + type: string type: object customCNI: description: OtherCniTypeConfig only used for CniType custom, valid @@ -224,6 +229,10 @@ spec: - mode - name type: object + enableRdma: + default: false + description: enable share rdma for ipvlan + type: boolean ippools: description: SpiderpoolPools could specify the IPAM spiderpool CNI configuration default IPv4&IPv6 pools. @@ -241,6 +250,11 @@ spec: items: type: string type: array + rdmaResourceName: + description: Resource name of the rdma device-plugin, If it's + empty and enableRdma is true, the value will be auto set by + operator. and the user can also set this value manually. + type: string vlanID: format: int32 maximum: 4094 @@ -266,6 +280,10 @@ spec: - mode - name type: object + enableRdma: + default: false + description: enable share rdma for macvlan + type: boolean ippools: description: SpiderpoolPools could specify the IPAM spiderpool CNI configuration default IPv4&IPv6 pools. @@ -283,6 +301,11 @@ spec: items: type: string type: array + rdmaResourceName: + description: Resource name of the rdma device-plugin, If it's + empty and enableRdma is true, the value will be auto set by + operator. and the user can also set this value manually. + type: string vlanID: format: int32 maximum: 4094 diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_ovsnetworks.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_ovsnetworks.yaml new file mode 100644 index 000000000..8c4f8f967 --- /dev/null +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_ovsnetworks.yaml @@ -0,0 +1,105 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: ovsnetworks.sriovnetwork.openshift.io +spec: + group: sriovnetwork.openshift.io + names: + kind: OVSNetwork + listKind: OVSNetworkList + plural: ovsnetworks + singular: ovsnetwork + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: OVSNetwork is the Schema for the ovsnetworks API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: OVSNetworkSpec defines the desired state of OVSNetwork + properties: + bridge: + description: |- + name of the OVS bridge, if not set OVS will automatically select bridge + based on VF PCI address + type: string + capabilities: + description: |- + Capabilities to be configured for this network. + Capabilities supported: (mac|ips), e.g. '{"mac": true}' + type: string + interfaceType: + description: The type of interface on ovs. + type: string + ipam: + description: IPAM configuration to be used for this network. + type: string + metaPlugins: + description: MetaPluginsConfig configuration to be used in order to + chain metaplugins + type: string + mtu: + description: Mtu for the OVS port + type: integer + networkNamespace: + description: Namespace of the NetworkAttachmentDefinition custom resource + type: string + resourceName: + description: OVS Network device plugin endpoint resource name + type: string + trunk: + description: Trunk configuration for the OVS port + items: + description: TrunkConfig contains configuration for bridge trunk + properties: + id: + maximum: 4095 + minimum: 0 + type: integer + maxID: + maximum: 4095 + minimum: 0 + type: integer + minID: + maximum: 4095 + minimum: 0 + type: integer + type: object + type: array + vlan: + description: Vlan to assign for the OVS port + maximum: 4095 + minimum: 0 + type: integer + required: + - resourceName + type: object + status: + description: OVSNetworkStatus defines the observed state of OVSNetwork + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovibnetworks.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovibnetworks.yaml index e44e19564..4b4b44d92 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovibnetworks.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovibnetworks.yaml @@ -1,9 +1,9 @@ +--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.0 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: sriovibnetworks.sriovnetwork.openshift.io spec: group: sriovnetwork.openshift.io @@ -20,14 +20,19 @@ spec: description: SriovIBNetwork is the Schema for the sriovibnetworks API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -35,8 +40,9 @@ spec: description: SriovIBNetworkSpec defines the desired state of SriovIBNetwork properties: capabilities: - description: 'Capabilities to be configured for this network. Capabilities - supported: (infinibandGUID), e.g. ''{"infinibandGUID": true}''' + description: |- + Capabilities to be configured for this network. + Capabilities supported: (infinibandGUID), e.g. '{"infinibandGUID": true}' type: string ipam: description: IPAM configuration to be used for this network. @@ -49,8 +55,9 @@ spec: - disable type: string metaPlugins: - description: MetaPluginsConfig configuration to be used in order to - chain metaplugins to the sriov interface returned by the operator. + description: |- + MetaPluginsConfig configuration to be used in order to chain metaplugins to the sriov interface returned + by the operator. type: string networkNamespace: description: Namespace of the NetworkAttachmentDefinition custom resource diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworknodepolicies.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworknodepolicies.yaml index 1b8db4db8..36c1050ea 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworknodepolicies.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworknodepolicies.yaml @@ -1,9 +1,9 @@ +--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.0 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: sriovnetworknodepolicies.sriovnetwork.openshift.io spec: group: sriovnetwork.openshift.io @@ -21,21 +21,88 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: SriovNetworkNodePolicySpec defines the desired state of SriovNetworkNodePolicy properties: + bridge: + description: |- + contains bridge configuration for matching PFs, + valid only for eSwitchMode==switchdev + properties: + ovs: + description: contains configuration for the OVS bridge, + properties: + bridge: + description: contains bridge level settings + properties: + datapathType: + description: configure datapath_type field in the Bridge + table in OVSDB + type: string + externalIDs: + additionalProperties: + type: string + description: IDs to inject to external_ids field in the + Bridge table in OVSDB + type: object + otherConfig: + additionalProperties: + type: string + description: additional options to inject to other_config + field in the bridge table in OVSDB + type: object + type: object + uplink: + description: contains settings for uplink (PF) + properties: + interface: + description: contains settings for PF interface in the + OVS bridge + properties: + externalIDs: + additionalProperties: + type: string + description: external_ids field in the Interface table + in OVSDB + type: object + options: + additionalProperties: + type: string + description: options field in the Interface table + in OVSDB + type: object + otherConfig: + additionalProperties: + type: string + description: other_config field in the Interface table + in OVSDB + type: object + type: + description: type field in the Interface table in + OVSDB + type: string + type: object + type: object + type: object + type: object deviceType: + default: netdevice description: The driver type for configured VFs. Allowed value "netdevice", "vfio-pci". Defaults to netdevice. enum: @@ -52,6 +119,10 @@ spec: description: Exclude device's NUMA node when advertising this resource by SRIOV network device plugin. Default to false. type: boolean + externallyManaged: + description: don't create the virtual function only allocated them + to the device plugin. Defaults to false. + type: boolean isRdma: description: RDMA mode. Defaults to false. type: boolean diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworknodestates.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworknodestates.yaml index 61ff0409a..c5bf230c3 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworknodestates.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworknodestates.yaml @@ -1,9 +1,9 @@ +--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.0 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: sriovnetworknodestates.sriovnetwork.openshift.io spec: group: sriovnetwork.openshift.io @@ -18,6 +18,12 @@ spec: - jsonPath: .status.syncStatus name: Sync Status type: string + - jsonPath: .metadata.annotations.sriovnetwork\.openshift\.io/desired-state + name: Desired Sync State + type: string + - jsonPath: .metadata.annotations.sriovnetwork\.openshift\.io/current-state + name: Current Sync State + type: string - jsonPath: .metadata.creationTimestamp name: Age type: date @@ -28,27 +34,113 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: SriovNetworkNodeStateSpec defines the desired state of SriovNetworkNodeState properties: - dpConfigVersion: - type: string + bridges: + description: Bridges contains list of bridges + properties: + ovs: + items: + description: OVSConfigExt contains configuration for the concrete + OVS bridge + properties: + bridge: + description: bridge-level configuration for the bridge + properties: + datapathType: + description: configure datapath_type field in the Bridge + table in OVSDB + type: string + externalIDs: + additionalProperties: + type: string + description: IDs to inject to external_ids field in + the Bridge table in OVSDB + type: object + otherConfig: + additionalProperties: + type: string + description: additional options to inject to other_config + field in the bridge table in OVSDB + type: object + type: object + name: + description: name of the bridge + type: string + uplinks: + description: |- + uplink-level bridge configuration for each uplink(PF). + currently must contain only one element + items: + description: OVSUplinkConfigExt contains configuration + for the concrete OVS uplink(PF) + properties: + interface: + description: configuration from the Interface OVS + table for the PF + properties: + externalIDs: + additionalProperties: + type: string + description: external_ids field in the Interface + table in OVSDB + type: object + options: + additionalProperties: + type: string + description: options field in the Interface table + in OVSDB + type: object + otherConfig: + additionalProperties: + type: string + description: other_config field in the Interface + table in OVSDB + type: object + type: + description: type field in the Interface table + in OVSDB + type: string + type: object + name: + description: name of the PF interface + type: string + pciAddress: + description: pci address of the PF + type: string + required: + - pciAddress + type: object + type: array + required: + - name + type: object + type: array + type: object interfaces: items: properties: eSwitchMode: type: string + externallyManaged: + type: boolean linkType: type: string mtu: @@ -87,6 +179,87 @@ spec: description: SriovNetworkNodeStateStatus defines the observed state of SriovNetworkNodeState properties: + bridges: + description: Bridges contains list of bridges + properties: + ovs: + items: + description: OVSConfigExt contains configuration for the concrete + OVS bridge + properties: + bridge: + description: bridge-level configuration for the bridge + properties: + datapathType: + description: configure datapath_type field in the Bridge + table in OVSDB + type: string + externalIDs: + additionalProperties: + type: string + description: IDs to inject to external_ids field in + the Bridge table in OVSDB + type: object + otherConfig: + additionalProperties: + type: string + description: additional options to inject to other_config + field in the bridge table in OVSDB + type: object + type: object + name: + description: name of the bridge + type: string + uplinks: + description: |- + uplink-level bridge configuration for each uplink(PF). + currently must contain only one element + items: + description: OVSUplinkConfigExt contains configuration + for the concrete OVS uplink(PF) + properties: + interface: + description: configuration from the Interface OVS + table for the PF + properties: + externalIDs: + additionalProperties: + type: string + description: external_ids field in the Interface + table in OVSDB + type: object + options: + additionalProperties: + type: string + description: options field in the Interface table + in OVSDB + type: object + otherConfig: + additionalProperties: + type: string + description: other_config field in the Interface + table in OVSDB + type: object + type: + description: type field in the Interface table + in OVSDB + type: string + type: object + name: + description: name of the PF interface + type: string + pciAddress: + description: pci address of the PF + type: string + required: + - pciAddress + type: object + type: array + required: + - name + type: object + type: array + type: object interfaces: items: properties: @@ -101,6 +274,8 @@ spec: type: string driver: type: string + guid: + type: string mac: type: string mtu: @@ -109,6 +284,10 @@ spec: type: string pciAddress: type: string + representorName: + type: string + vdpaType: + type: string vendor: type: string vfID: @@ -124,6 +303,10 @@ spec: type: string eSwitchMode: type: string + externallyManaged: + type: boolean + linkAdminState: + type: string linkSpeed: type: string linkType: diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworkpoolconfigs.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworkpoolconfigs.yaml index 59d0e7b71..2cb2ece31 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworkpoolconfigs.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworkpoolconfigs.yaml @@ -1,9 +1,9 @@ +--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.0 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: sriovnetworkpoolconfigs.sriovnetwork.openshift.io spec: group: sriovnetwork.openshift.io @@ -21,29 +21,94 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: SriovNetworkPoolConfigSpec defines the desired state of SriovNetworkPoolConfig properties: + maxUnavailable: + anyOf: + - type: integer + - type: string + description: |- + maxUnavailable defines either an integer number or percentage + of nodes in the pool that can go Unavailable during an update. + + + A value larger than 1 will mean multiple nodes going unavailable during + the update, which may affect your workload stress on the remaining nodes. + Drain will respect Pod Disruption Budgets (PDBs) such as etcd quorum guards, + even if maxUnavailable is greater than one. + x-kubernetes-int-or-string: true + nodeSelector: + description: nodeSelector specifies a label selector for Nodes + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic ovsHardwareOffloadConfig: description: OvsHardwareOffloadConfig describes the OVS HWOL configuration for selected Nodes properties: name: - description: 'Name is mandatory and must be unique. On Kubernetes: - Name is the name of OvsHardwareOffloadConfig On OpenShift: Name - is the name of MachineConfigPool to be enabled with OVS hardware - offload' + description: |- + Name is mandatory and must be unique. + On Kubernetes: + Name is the name of OvsHardwareOffloadConfig + On OpenShift: + Name is the name of MachineConfigPool to be enabled with OVS hardware offload type: string type: object type: object diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworks.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworks.yaml index 7c03ad275..e33b9a3ed 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworks.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovnetworks.yaml @@ -1,9 +1,9 @@ +--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.0 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: sriovnetworks.sriovnetwork.openshift.io spec: group: sriovnetwork.openshift.io @@ -20,14 +20,19 @@ spec: description: SriovNetwork is the Schema for the sriovnetworks API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -35,8 +40,9 @@ spec: description: SriovNetworkSpec defines the desired state of SriovNetwork properties: capabilities: - description: 'Capabilities to be configured for this network. Capabilities - supported: (mac|ips), e.g. ''{"mac": true}''' + description: |- + Capabilities to be configured for this network. + Capabilities supported: (mac|ips), e.g. '{"mac": true}' type: string ipam: description: IPAM configuration to be used for this network. @@ -48,14 +54,33 @@ spec: - enable - disable type: string + logFile: + description: |- + LogFile sets the log file of the SRIOV CNI plugin logs. If unset (default), this will log to stderr and thus + to multus and container runtime logs. + type: string + logLevel: + default: info + description: |- + LogLevel sets the log level of the SRIOV CNI plugin - either of panic, error, warning, info, debug. Defaults + to info if left blank. + enum: + - panic + - error + - warning + - info + - debug + - "" + type: string maxTxRate: description: Maximum tx rate, in Mbps, for the VF. Defaults to 0 (no rate limiting) minimum: 0 type: integer metaPlugins: - description: MetaPluginsConfig configuration to be used in order to - chain metaplugins to the sriov interface returned by the operator. + description: |- + MetaPluginsConfig configuration to be used in order to chain metaplugins to the sriov interface returned + by the operator. type: string minTxRate: description: Minimum tx rate, in Mbps, for the VF. Defaults to 0 (no @@ -85,6 +110,14 @@ spec: maximum: 4096 minimum: 0 type: integer + vlanProto: + description: VLAN proto to assign for the VF. Defaults to 802.1q. + enum: + - 802.1q + - 802.1Q + - 802.1ad + - 802.1AD + type: string vlanQoS: description: VLAN QoS ID to assign for the VF. Defaults to 0. maximum: 7 diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovoperatorconfigs.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovoperatorconfigs.yaml index fb1e76df6..5d944910d 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovoperatorconfigs.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/crds/sriovnetwork.openshift.io_sriovoperatorconfigs.yaml @@ -1,9 +1,9 @@ +--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.0 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: sriovoperatorconfigs.sriovnetwork.openshift.io spec: group: sriovnetwork.openshift.io @@ -21,14 +21,19 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -41,9 +46,9 @@ spec: description: NodeSelector selects the nodes to be configured type: object configurationMode: - description: 'Flag to enable the sriov-network-config-daemon to use - a systemd service to configure SR-IOV devices on boot Default mode: - daemon' + description: |- + Flag to enable the sriov-network-config-daemon to use a systemd service to configure SR-IOV devices on boot + Default mode: daemon enum: - daemon - systemd @@ -51,6 +56,15 @@ spec: disableDrain: description: Flag to disable nodes drain during debugging type: boolean + disablePlugins: + description: DisablePlugins is a list of sriov-network-config-daemon + plugins to disable + items: + description: PluginNameValue defines the plugin name + enum: + - mellanox + type: string + type: array enableInjector: description: Flag to control whether the network resource injector webhook shall be deployed @@ -64,6 +78,11 @@ spec: provision switchdev-configuration.service and enable OpenvSwitch hw-offload on nodes. type: boolean + featureGates: + additionalProperties: + type: boolean + description: FeatureGates to enable experimental features + type: object logLevel: description: Flag to control the log verbose level of the operator. Set to '0' to show only the basic logs. And set to '2' to show all @@ -71,6 +90,10 @@ spec: maximum: 2 minimum: 0 type: integer + useCDI: + description: Flag to enable Container Device Interface mode for SR-IOV + Network Device Plugin + type: boolean type: object status: description: SriovOperatorConfigStatus defines the observed state of SriovOperatorConfig diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/files/grafana-rdma-cluster.json b/charts/spiderpool/spiderpool/charts/spiderpool/files/grafana-rdma-cluster.json new file mode 100644 index 000000000..f786ea619 --- /dev/null +++ b/charts/spiderpool/spiderpool/charts/spiderpool/files/grafana-rdma-cluster.json @@ -0,0 +1,496 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 4, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "husBV6iNz" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 2, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "husBV6iNz" + }, + "editorMode": "code", + "expr": "count(count(rdma_tx_vport_rdma_unicast_bytes_total{pod_name!=\"\"}) by (pod_name))", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "RDMA Pod Count", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 3 + }, + "id": 7, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum by (node_name) (rate(rdma_rx_vport_rdma_unicast_bytes_total{}[5m]))", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Bandwidth | Read", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 3 + }, + "id": 8, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum by (node_name) (rate(rdma_tx_vport_rdma_unicast_bytes_total{}[5m]))", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Bandwidth | Write", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 11 + }, + "id": 4, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum by (node_name) (\n rate(rdma_rx_vport_rdma_unicast_bytes_total{}[3m])\n)\n/ sum by (node_name) (rdma_vport_speed_mbps_total{is_root=\"true\"} * 1000000 / 8) * 100", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Bandwidth rate | Write", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 11 + }, + "id": 5, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum by (node_name) (\n rate(rdma_rx_vport_rdma_unicast_bytes_total{}[3m])\n)\n/ sum by (node_name) (rdma_vport_speed_mbps_total{is_root=\"true\"} * 1000000 / 8) * 100", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Bandwidth rate | Write", + "type": "timeseries" + } + ], + "schemaVersion": 37, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "Prometheus" + }, + "hide": 2, + "includeAll": false, + "label": "Data source", + "multi": false, + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Spiderpool RDMA Dashboard | Cluster", + "uid": "2ZOHs2ZHk", + "version": 16, + "weekStart": "" +} \ No newline at end of file diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/files/grafana-rdma-node.json b/charts/spiderpool/spiderpool/charts/spiderpool/files/grafana-rdma-node.json new file mode 100644 index 000000000..aeda6315a --- /dev/null +++ b/charts/spiderpool/spiderpool/charts/spiderpool/files/grafana-rdma-node.json @@ -0,0 +1,945 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 5, + "links": [], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 11, + "panels": [], + "title": "Summary", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 23, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum by (rdma_parent_name) (rate(rdma_rx_vport_rdma_unicast_bytes_total{node_name=~\"$node\"}[1m]))", + "legendFormat": "{{net_dev_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Node bandwidth | Read", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 1 + }, + "id": 21, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum by (rdma_parent_name) (rate(rdma_tx_vport_rdma_unicast_bytes_total{node_name=~\"$node\"}[1m]))", + "legendFormat": "{{net_dev_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Node bandwidth | Write", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 9 + }, + "id": 24, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum by (rdma_parent_name) (\n rate(rdma_rx_vport_rdma_unicast_bytes_total{node_name=~\"$node\"}[1m])\n)\n/ sum by (rdma_parent_name) (rdma_vport_speed_mbps_total{node_name=~\"$node\", is_root=\"true\"} * 1000000 / 8) * 100", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Bandwidth rate | Read", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 9 + }, + "id": 25, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum by (rdma_parent_name) (\n rate(rdma_tx_vport_rdma_unicast_bytes_total{node_name=~\"$node\"}[1m])\n)\n/ sum by (rdma_parent_name) (rdma_vport_speed_mbps_total{node_name=~\"$node\", is_root=\"true\"} * 1000000 / 8) * 100", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Bandwidth rate | Write", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 17 + }, + "id": 13, + "panels": [], + "title": "Host RDMA Device", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "ibp13s0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 18 + }, + "id": 15, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "rate(rdma_tx_vport_rdma_unicast_bytes_total{pod_name=\"\", node_name=~\"$node\"}[$__rate_interval])", + "legendFormat": "{{net_dev_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Host RDMA Devices | Write", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "ibp13s0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 18 + }, + "id": 28, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "rate(rdma_tx_vport_rdma_unicast_bytes_total{pod_name=\"\", node_name=~\"$node\"}[$__rate_interval])", + "legendFormat": "{{net_dev_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Host RDMA Devices | Write", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 26 + }, + "id": 27, + "panels": [], + "title": "Pod RDMA Device", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "ibp13s0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 27 + }, + "id": 17, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "rate(rdma_rx_vport_rdma_unicast_bytes_total{pod_name!=\"\", node_name=~\"$node\"}[$__rate_interval])", + "legendFormat": "{{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "Pod RDMA Devices | Read", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "ibp13s0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 27 + }, + "id": 29, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "rate(rdma_tx_vport_rdma_unicast_bytes_total{pod_name!=\"\", node_name=~\"$node\"}[$__rate_interval])", + "legendFormat": "{{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "Host RDMA Devices | Write", + "type": "timeseries" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "Prometheus" + }, + "hide": 2, + "includeAll": false, + "label": "Data source", + "multi": false, + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": { + "selected": false, + "text": "10-20-1-50", + "value": "10-20-1-50" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(rdma_tx_vport_rdma_unicast_bytes_total{}, node_name)", + "hide": 0, + "includeAll": false, + "multi": false, + "name": "node", + "options": [], + "query": { + "query": "label_values(rdma_tx_vport_rdma_unicast_bytes_total{}, node_name)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Spiderpool RDMA Dashboard | Node", + "uid": "A0T4f2ZNz", + "version": 2, + "weekStart": "" +} \ No newline at end of file diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/files/grafana-rdma-pod.json b/charts/spiderpool/spiderpool/charts/spiderpool/files/grafana-rdma-pod.json new file mode 100644 index 000000000..d7ba00e22 --- /dev/null +++ b/charts/spiderpool/spiderpool/charts/spiderpool/files/grafana-rdma-pod.json @@ -0,0 +1,4009 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 1, + "links": [], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 47, + "panels": [], + "title": "Pod Level", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 40, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rx_vport_rdma_unicast_bytes_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "Throughput | Read", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 1 + }, + "id": 38, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_tx_vport_rdma_unicast_bytes_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "Throughput | Write", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 9 + }, + "id": 62, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rx_vport_rdma_unicast_bytes_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])/(rdma_vport_speed_mbps_total{pod_name!=\"\"}*1000000/8)", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "Bandwidth rate | Read", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 9 + }, + "id": 63, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_tx_vport_rdma_unicast_bytes_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])/(rdma_vport_speed_mbps_total{pod_name!=\"\"}*1000000/8)", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "Bandwidth rate | Write", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 17 + }, + "id": 42, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rx_vport_rdma_unicast_packets_total{pod_name!=\"\", pod_namespace!=\"\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_read_unicast_packets", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 17 + }, + "id": 37, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rx_vport_rdma_multicast_packets_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_read_multicast_packets", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 17 + }, + "id": 39, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rx_vport_rdma_multicast_bytes_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "read_rdma_multicast_bytes", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 17 + }, + "id": 8, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rx_read_requests_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_rx_read_requests", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 25 + }, + "id": 45, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_tx_vport_rdma_unicast_packets_total{pod_name!=\"\", pod_namespace!=\"\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_write_unicast_packets", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 25 + }, + "id": 44, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "irate(rdma_tx_vport_rdma_multicast_packets_total{pod_namespace!=\"\"}[1m])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_write_multicast_packets", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "Mbits" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 25 + }, + "id": 41, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.14", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_tx_vport_rdma_multicast_bytes_total{pod_name!=\"\"}[1m]) * 8 / 1000000", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "write_rdma_multicast", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Number of received WRITE requests for the associated Queue Pairs", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 25 + }, + "id": 6, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rx_write_requests_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_rx_write_requests", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "husBV6iNz" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 33 + }, + "id": 4, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "husBV6iNz" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_req_cqe_error_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "req cqe error", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "husBV6iNz" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 33 + }, + "id": 43, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "husBV6iNz" + }, + "editorMode": "code", + "exemplar": false, + "expr": "irate(rdma_duplicate_request_total{pod_namespace!=\"\"}[1m])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "duplicate request", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 33 + }, + "id": 20, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_resp_remote_access_errors_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_resp_remote_access_errors", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 33 + }, + "id": 25, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_req_remote_access_errors_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_req_remote_access_errors", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 41 + }, + "id": 9, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rx_dct_connect_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_rx_dct_connect", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 41 + }, + "id": 10, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rx_atomic_requests_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_rx_atomic_requests", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 41 + }, + "id": 23, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_req_remote_invalid_request_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_req_remote_invalid_request", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 41 + }, + "id": 33, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rdma_duplicate_request_total{pod_namespace!=\"\"}", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_duplicate_request", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 49 + }, + "id": 11, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rx_atomic_requests_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_rx_atomic_requests", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 49 + }, + "id": 24, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_resp_cqe_flush_error_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_resp_cqe_flush_error", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 49 + }, + "id": 22, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_req_cqe_flush_error_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_req_cqe_flush_error", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 49 + }, + "id": 29, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_resp_cqe_error_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_resp_cqe_error", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 57 + }, + "id": 21, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rnr_nak_retry_err_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_rnr_nak_retry_err", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 57 + }, + "id": 28, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_out_of_sequence_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_out_of_sequence", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 57 + }, + "id": 27, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_packet_seq_err_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_packet_seq_err", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 57 + }, + "id": 19, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_resp_local_length_error_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_resp_local_length_error", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 65 + }, + "id": 36, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_implied_nak_seq_err_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_implied_nak_seq_err", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 65 + }, + "id": 35, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_local_ack_timeout_err_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_local_ack_timeout_err", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 65 + }, + "id": 32, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_out_of_buffer_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_out_of_buffer", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 65 + }, + "id": 26, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_req_cqe_error_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_req_cqe_error", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 73 + }, + "id": 34, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_np_cnp_sent_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_np_cnp_sent", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 73 + }, + "id": 18, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_roce_adp_retrans_to_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_roce_adp_retrans_to", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 73 + }, + "id": 16, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_roce_slow_restart_cnps_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{ifname}} - {{pod_namespace}}/{{pod_name}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_roce_slow_restart_cnps", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 73 + }, + "id": 31, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_np_ecn_marked_roce_packets_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_np_ecn_marked_roce_packets", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 81 + }, + "id": 13, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rp_cnp_handled_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_rp_cnp_handled", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 81 + }, + "id": 14, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_roce_slow_restart_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{ifname}} - {{pod_namespace}}/{{pod_name}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_roce_slow_restart", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 81 + }, + "id": 12, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rp_cnp_ignored_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{net_dev_name}} - {{ifname}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_rp_cnp_ignored", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 81 + }, + "id": 17, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_roce_adp_retrans_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{ifname}} - {{pod_namespace}}/{{pod_name}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_roce_adp_retrans", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 89 + }, + "id": 15, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(rdma_rp_cnp_handled_total{pod_name!=\"\", pod_namespace=~\"$namespace\", pod_name=~\"$pod\"}[$__rate_interval])", + "format": "time_series", + "instant": false, + "interval": "", + "legendFormat": "{{ifname}} - {{pod_namespace}}/{{pod_name}}", + "range": true, + "refId": "A" + } + ], + "title": "rdma_rp_cnp_handled", + "type": "timeseries" + } + ], + "refresh": "5s", + "schemaVersion": 37, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "Prometheus" + }, + "hide": 2, + "includeAll": false, + "label": "Data source", + "multi": false, + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "allValue": ".+", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(rdma_tx_vport_rdma_unicast_bytes_total{pod_namespace=~\"$namespace\"}, pod_namespace)", + "hide": 0, + "includeAll": true, + "multi": false, + "name": "namespace", + "options": [], + "query": { + "query": "label_values(rdma_tx_vport_rdma_unicast_bytes_total{pod_namespace=~\"$namespace\"}, pod_namespace)", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": { + "selected": false, + "text": "rdma-test-gpu-tool-8zrh6", + "value": "rdma-test-gpu-tool-8zrh6" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(rdma_tx_vport_rdma_unicast_bytes_total{pod_namespace=~\"$namespace\"}, pod_name)", + "hide": 0, + "includeAll": false, + "label": "pod", + "multi": false, + "name": "pod", + "options": [], + "query": { + "query": "label_values(rdma_tx_vport_rdma_unicast_bytes_total{pod_namespace=~\"$namespace\"}, pod_name)", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "type": "query" + }, + { + "current": { + "selected": false, + "text": "10-20-1-50", + "value": "10-20-1-50" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(rdma_tx_vport_rdma_unicast_bytes_total{}, node_name)", + "hide": 0, + "includeAll": false, + "multi": false, + "name": "node", + "options": [], + "query": { + "query": "label_values(rdma_tx_vport_rdma_unicast_bytes_total{}, node_name)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Spiderpool RDMA Dashboard | Pod", + "uid": "DenUibiNk", + "version": 158, + "weekStart": "" +} \ No newline at end of file diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/_helpers.tpl b/charts/spiderpool/spiderpool/charts/spiderpool/templates/_helpers.tpl index a5c639c44..906cb1203 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/_helpers.tpl +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/_helpers.tpl @@ -351,7 +351,6 @@ return the sriov network operator image {{- end -}} {{- end -}} - {{/* return the sriov cni image */}} @@ -372,7 +371,6 @@ return the sriov cni image {{- end -}} {{- end -}} - {{/* return the sriov ibSriovCni image */}} @@ -413,7 +411,6 @@ return the sriov sriovDevicePlugin image {{- end -}} {{- end -}} - {{/* return the sriov resourcesInjector image */}} diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/configmap.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/configmap.yaml index 4e47fb054..2202605c5 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/configmap.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/configmap.yaml @@ -19,13 +19,18 @@ data: enableIPv6: {{ .Values.ipam.enableIPv6 }} enableStatefulSet: {{ .Values.ipam.enableStatefulSet }} enableKubevirtStaticIP: {{ .Values.ipam.enableKubevirtStaticIP }} - enableSpiderSubnet: {{ .Values.ipam.enableSpiderSubnet }} - {{- if .Values.ipam.enableSpiderSubnet }} - clusterSubnetDefaultFlexibleIPNumber: {{ .Values.ipam.subnetDefaultFlexibleIPNumber }} + enableSpiderSubnet: {{ .Values.ipam.spiderSubnet.enable }} + enableAutoPoolForApplication: {{ .Values.ipam.spiderSubnet.autoPool.enable }} + {{- if and .Values.ipam.spiderSubnet.enable .Values.ipam.spiderSubnet.autoPool.enable }} + clusterSubnetDefaultFlexibleIPNumber: {{ .Values.ipam.spiderSubnet.autoPool.defaultRedundantIPNumber }} {{- else}} clusterSubnetDefaultFlexibleIPNumber: 0 {{- end }} tuneSysctlConfig: {{ .Values.spiderpoolAgent.tuneSysctlConfig }} + podResourceInject: + enabled: {{ .Values.spiderpoolController.podResourceInject.enabled }} + namespacesExclude: {{ toJson .Values.spiderpoolController.podResourceInject.namespacesExclude }} + namespacesInclude: {{ toJson .Values.spiderpoolController.podResourceInject.namespacesInclude }} {{- if .Values.multus.multusCNI.install }} --- kind: ConfigMap diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/daemonset.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/daemonset.yaml index 2d9d9d8a5..3b2469f65 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/daemonset.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/daemonset.yaml @@ -85,16 +85,18 @@ spec: image: {{ include "plugins.image" . | quote }} imagePullPolicy: {{ .Values.plugins.image.pullPolicy }} env: - - name: INSTALL_CNI_PLUGINS - value: {{ .Values.plugins.installCNI | quote }} - - name: INSTALL_OVS_PLUGIN - value: {{ .Values.plugins.installOvsCNI | quote }} - - name: INSTALL_RDMA_PLUGIN - value: {{ .Values.plugins.installRdmaCNI | quote }} - - name: INSTALL_IB_SRIOV_PLUGIN - value: {{ .Values.plugins.installibSriovCNI | quote }} - - name: INSTALL_IPOIB_PLUGIN - value: {{ .Values.plugins.installIpoibCNI | quote }} + - name: INSTALL_CNI_PLUGINS + value: {{ .Values.plugins.installCNI | quote }} + - name: INSTALL_OVS_PLUGIN + value: {{ .Values.plugins.installOvsCNI | quote }} + - name: INSTALL_RDMA_PLUGIN + value: {{ .Values.plugins.installRdmaCNI | quote }} + - name: INSTALL_SRIOV_PLUGIN + value: {{ .Values.plugins.installSriovCNI | quote }} + - name: INSTALL_IB_SRIOV_PLUGIN + value: {{ .Values.plugins.installibSriovCNI | quote }} + - name: INSTALL_IPOIB_PLUGIN + value: {{ .Values.plugins.installIpoibCNI | quote }} command: - "/bin/sh" - "entrypoint.sh" @@ -105,197 +107,206 @@ spec: mountPath: /host/opt/cni/bin {{- end }} containers: - - name: {{ .Values.spiderpoolAgent.name | trunc 63 | trimSuffix "-" }} - image: {{ include "spiderpool.spiderpoolAgent.image" . | quote }} - imagePullPolicy: {{ .Values.spiderpoolAgent.image.pullPolicy }} - command: - - {{ .Values.spiderpoolAgent.binName }} - args: - - daemon - - --config-path=/tmp/spiderpool/config-map/conf.yml + - name: {{ .Values.spiderpoolAgent.name | trunc 63 | trimSuffix "-" }} + image: {{ include "spiderpool.spiderpoolAgent.image" . | quote }} + imagePullPolicy: {{ .Values.spiderpoolAgent.image.pullPolicy }} + command: + - {{ .Values.spiderpoolAgent.binName }} + args: + - daemon + - --config-path=/tmp/spiderpool/config-map/conf.yml {{- with .Values.spiderpoolAgent.extraArgs }} {{- toYaml . | trim | nindent 8 }} {{- end }} {{- if .Values.spiderpoolAgent.prometheus.enabled }} - ports: - - name: metrics - containerPort: {{ .Values.spiderpoolAgent.prometheus.port }} - protocol: TCP + ports: + - name: metrics + containerPort: {{ .Values.spiderpoolAgent.prometheus.port }} + protocol: TCP {{- end }} {{- if semverCompare ">=1.20-0" .Capabilities.KubeVersion.Version }} - startupProbe: - httpGet: - host: {{ .Values.ipam.enableIPv4 | ternary "127.0.0.1" "::1" | quote }} - path: /v1/runtime/startup - port: {{ .Values.spiderpoolAgent.httpPort }} - scheme: HTTP - failureThreshold: {{ .Values.spiderpoolAgent.healthChecking.startupProbe.failureThreshold }} - periodSeconds: {{ .Values.spiderpoolAgent.healthChecking.startupProbe.periodSeconds }} - successThreshold: 1 + startupProbe: + httpGet: + host: {{ .Values.ipam.enableIPv4 | ternary "127.0.0.1" "::1" | quote }} + path: /v1/runtime/startup + port: {{ .Values.spiderpoolAgent.httpPort }} + scheme: HTTP + failureThreshold: {{ .Values.spiderpoolAgent.healthChecking.startupProbe.failureThreshold }} + periodSeconds: {{ .Values.spiderpoolAgent.healthChecking.startupProbe.periodSeconds }} + successThreshold: 1 {{- end }} - livenessProbe: - httpGet: - host: {{ .Values.ipam.enableIPv4 | ternary "127.0.0.1" "::1" | quote }} - path: /v1/runtime/liveness - port: {{ .Values.spiderpoolAgent.httpPort }} - scheme: HTTP - initialDelaySeconds: 10 - periodSeconds: {{ .Values.spiderpoolAgent.healthChecking.livenessProbe.periodSeconds }} - successThreshold: 1 - failureThreshold: {{ .Values.spiderpoolAgent.healthChecking.livenessProbe.failureThreshold }} - timeoutSeconds: 1 - readinessProbe: - httpGet: - host: {{ .Values.ipam.enableIPv4 | ternary "127.0.0.1" "::1" | quote }} - path: /v1/runtime/readiness - port: {{ .Values.spiderpoolAgent.httpPort }} - scheme: HTTP - periodSeconds: {{ .Values.spiderpoolAgent.healthChecking.readinessProbe.periodSeconds }} - successThreshold: 1 - failureThreshold: {{ .Values.spiderpoolAgent.healthChecking.readinessProbe.failureThreshold }} - timeoutSeconds: 1 + livenessProbe: + httpGet: + host: {{ .Values.ipam.enableIPv4 | ternary "127.0.0.1" "::1" | quote }} + path: /v1/runtime/liveness + port: {{ .Values.spiderpoolAgent.httpPort }} + scheme: HTTP + initialDelaySeconds: 10 + periodSeconds: {{ .Values.spiderpoolAgent.healthChecking.livenessProbe.periodSeconds }} + successThreshold: 1 + failureThreshold: {{ .Values.spiderpoolAgent.healthChecking.livenessProbe.failureThreshold }} + timeoutSeconds: 1 + readinessProbe: + httpGet: + host: {{ .Values.ipam.enableIPv4 | ternary "127.0.0.1" "::1" | quote }} + path: /v1/runtime/readiness + port: {{ .Values.spiderpoolAgent.httpPort }} + scheme: HTTP + periodSeconds: {{ .Values.spiderpoolAgent.healthChecking.readinessProbe.periodSeconds }} + successThreshold: 1 + failureThreshold: {{ .Values.spiderpoolAgent.healthChecking.readinessProbe.failureThreshold }} + timeoutSeconds: 1 {{- with .Values.spiderpoolAgent.resources }} - resources: - {{- toYaml . | trim | nindent 10 }} + resources: + {{- toYaml . | trim | nindent 12 }} {{- end }} - lifecycle: - postStart: - # Move an eventual old existing binary out of the way, we can't delete it as it might be in use right now - exec: - command: - - "/bin/sh" - - "-c" - - | - BIN_LIST="spiderpool coordinator ifacer" - for ITEM in ${BIN_LIST} ; do - rm -f /host/opt/cni/bin/${ITEM}.old || true - ( [ -f "/host/opt/cni/bin/${ITEM}" ] && mv /host/opt/cni/bin/${ITEM} /host/opt/cni/bin/${ITEM}.old ) || true - cp /usr/bin/${ITEM} /host/opt/cni/bin/${ITEM} - rm -f /host/opt/cni/bin/${ITEM}.old &>/dev/null || true - done - env: - - name: SPIDERPOOL_POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: SPIDERPOOL_POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: SPIDERPOOL_LOG_LEVEL - value: {{ .Values.spiderpoolAgent.debug.logLevel | quote }} - - name: SPIDERPOOL_ENABLED_METRIC - value: {{ .Values.spiderpoolAgent.prometheus.enabled | quote }} - - name: SPIDERPOOL_ENABLED_DEBUG_METRIC - value: {{ .Values.spiderpoolAgent.prometheus.enabledDebugMetric | quote }} - - name: SPIDERPOOL_METRIC_HTTP_PORT - value: {{ .Values.spiderpoolAgent.prometheus.port | quote }} - - name: SPIDERPOOL_HEALTH_PORT - value: {{ .Values.spiderpoolAgent.httpPort | quote }} - - name: SPIDERPOOL_GOPS_LISTEN_PORT - value: {{ .Values.spiderpoolAgent.debug.gopsPort | quote }} + lifecycle: + postStart: + # Move an eventual old existing binary out of the way, we can't delete it as it might be in use right now + exec: + command: + - "/bin/sh" + - "-c" + - | + BIN_LIST="spiderpool coordinator ifacer" + for ITEM in ${BIN_LIST} ; do + rm -f /host/opt/cni/bin/${ITEM}.old || true + ( [ -f "/host/opt/cni/bin/${ITEM}" ] && mv /host/opt/cni/bin/${ITEM} /host/opt/cni/bin/${ITEM}.old ) || true + cp /usr/bin/${ITEM} /host/opt/cni/bin/${ITEM} + rm -f /host/opt/cni/bin/${ITEM}.old &>/dev/null || true + done + env: + - name: SPIDERPOOL_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: SPIDERPOOL_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: SPIDERPOOL_LOG_LEVEL + value: {{ .Values.spiderpoolAgent.debug.logLevel | quote }} + - name: SPIDERPOOL_ENABLED_METRIC + value: {{ .Values.spiderpoolAgent.prometheus.enabled | quote }} + - name: SPIDERPOOL_ENABLED_DEBUG_METRIC + value: {{ .Values.spiderpoolAgent.prometheus.enabledDebugMetric | quote }} + - name: SPIDERPOOL_ENABLED_RDMA_METRIC + value: {{ .Values.spiderpoolAgent.prometheus.enabledRdmaMetric | quote }} + - name: SPIDERPOOL_METRIC_HTTP_PORT + value: {{ .Values.spiderpoolAgent.prometheus.port | quote }} + - name: SPIDERPOOL_HEALTH_PORT + value: {{ .Values.spiderpoolAgent.httpPort | quote }} + - name: SPIDERPOOL_GOPS_LISTEN_PORT + value: {{ .Values.spiderpoolAgent.debug.gopsPort | quote }} {{- if .Values.multus.multusCNI.defaultCniCRName }} - - name: MULTUS_CLUSTER_NETWORK - value: {{ .Release.Namespace }}/{{ .Values.multus.multusCNI.defaultCniCRName }} + - name: MULTUS_CLUSTER_NETWORK + value: {{ .Release.Namespace }}/{{ .Values.multus.multusCNI.defaultCniCRName }} {{ end }} {{- with .Values.spiderpoolAgent.extraEnv }} {{- toYaml . | nindent 8 }} {{- end }} {{- if or .Values.spiderpoolAgent.tuneSysctlConfig .Values.spiderpoolAgent.securityContext }} - securityContext: - {{- if .Values.spiderpoolAgent.tuneSysctlConfig }} - privileged: true - {{- end }} - {{- with .Values.spiderpoolAgent.securityContext }} - {{- toYaml . | nindent 10 }} - {{- end }} + securityContext: + privileged: true + {{- with .Values.spiderpoolAgent.securityContext }} + {{- toYaml . | nindent 8 }} {{- end }} - volumeMounts: - - name: config-path - mountPath: /tmp/spiderpool/config-map - readOnly: true - - name: cni-bin-path - mountPath: /host{{ .Values.global.cniBinHostPath }} - - name: ipam-unix-socket-dir - mountPath: {{ dir .Values.global.ipamUNIXSocketHostPath }} + {{- end }} + volumeMounts: + {{- if .Values.spiderpoolAgent.prometheus.enabledRdmaMetric }} + - name: host-ns + mountPath: /var/run/netns + {{- end }} + - name: config-path + mountPath: /tmp/spiderpool/config-map + readOnly: true + - name: cni-bin-path + mountPath: /host{{ .Values.global.cniBinHostPath }} + - name: ipam-unix-socket-dir + mountPath: {{ dir .Values.global.ipamUNIXSocketHostPath }} {{- if .Values.multus.multusCNI.uninstall }} - - name: cni - mountPath: /host/etc/cni/net.d + - name: cni + mountPath: /host/etc/cni/net.d {{- end }} {{- if .Values.spiderpoolAgent.extraVolumes }} {{- include "tplvalues.render" ( dict "value" .Values.spiderpoolAgent.extraVolumeMounts "context" $ ) | nindent 8 }} {{- end }} {{- if .Values.multus.multusCNI.install }} - - name: multus-cni - imagePullPolicy: {{ .Values.multus.multusCNI.image.pullPolicy }} - image: {{ include "spiderpool.multus.image" . | quote }} - command: - - "/bin/sh" - - "-c" - - | - ITEM="multus" - rm -f /host/opt/cni/bin/${ITEM}.old || true - ( [ -f "/host/opt/cni/bin/${ITEM}" ] && mv /host/opt/cni/bin/${ITEM} /host/opt/cni/bin/${ITEM}.old ) || true - cp /usr/src/multus-cni/bin/${ITEM} /host/opt/cni/bin/${ITEM} - rm -f /host/opt/cni/bin/${ITEM}.old &>/dev/null || true - ./entrypoint.sh --multus-conf-file=/tmp/multus-conf/00-multus.conf \ - --cni-version=0.3.1 - securityContext: - privileged: true - {{- if .Values.multus.multusCNI.uninstall }} - lifecycle: - preStop: - exec: - command: - - "/bin/sh" - - "-c" - - | - rm -f /host/opt/cni/bin/multus || true - rm -rf /host/etc/cni/net.d/multus.d || true - rm -f /host/etc/cni/net.d/00-multus.conf || true + - name: multus-cni + imagePullPolicy: {{ .Values.multus.multusCNI.image.pullPolicy }} + image: {{ include "spiderpool.multus.image" . | quote }} + command: + - "/bin/sh" + - "-c" + - | + ITEM="multus" + rm -f /host/opt/cni/bin/${ITEM}.old || true + ( [ -f "/host/opt/cni/bin/${ITEM}" ] && mv /host/opt/cni/bin/${ITEM} /host/opt/cni/bin/${ITEM}.old ) || true + cp /usr/src/multus-cni/bin/${ITEM} /host/opt/cni/bin/${ITEM} + rm -f /host/opt/cni/bin/${ITEM}.old &>/dev/null || true + ./entrypoint.sh --multus-conf-file=/tmp/multus-conf/00-multus.conf \ + --cni-version=0.3.1 + securityContext: + privileged: true + {{- if .Values.multus.multusCNI.uninstall }} + lifecycle: + preStop: + exec: + command: + - "/bin/sh" + - "-c" + - | + rm -f /host/opt/cni/bin/multus || true + rm -rf /host/etc/cni/net.d/multus.d || true + rm -f /host/etc/cni/net.d/00-multus.conf || true {{- end }} - volumeMounts: - - name: cni - mountPath: /host/etc/cni/net.d - - name: cni-bin-path - mountPath: /host/opt/cni/bin - mountPropagation: Bidirectional - - name: multus-cfg - mountPath: /tmp/multus-conf + volumeMounts: + - name: cni + mountPath: /host/etc/cni/net.d + - name: cni-bin-path + mountPath: /host/opt/cni/bin + mountPropagation: Bidirectional + - name: multus-cfg + mountPath: /tmp/multus-conf {{- if .Values.multus.multusCNI.extraVolumes }} {{- include "tplvalues.render" ( dict "value" .Values.multus.multusCNI.extraVolumeMounts "context" $ ) | nindent 12 }} {{- end }} {{- end }} volumes: # To read the configuration from the config map - - name: config-path - configMap: - defaultMode: 0400 - name: {{ .Values.global.configName }} - - name: cni-bin-path - hostPath: - path: {{ .Values.global.cniBinHostPath }} - type: DirectoryOrCreate - # To create unix socket dir in the host - - name: ipam-unix-socket-dir - hostPath: - path: {{ dir .Values.global.ipamUNIXSocketHostPath }} - type: DirectoryOrCreate - # multus + - name: config-path + configMap: + defaultMode: 0400 + name: {{ .Values.global.configName }} + - name: cni-bin-path + hostPath: + path: {{ .Values.global.cniBinHostPath }} + type: DirectoryOrCreate + # To create unix socket dir in the host + - name: ipam-unix-socket-dir + hostPath: + path: {{ dir .Values.global.ipamUNIXSocketHostPath }} + type: DirectoryOrCreate + # multus + {{- if .Values.spiderpoolAgent.prometheus.enabledRdmaMetric }} + - name: host-ns + hostPath: + path: /var/run/netns + {{- end }} {{- if .Values.multus.multusCNI.install }} - - name: cni - hostPath: - path: /etc/cni/net.d - - name: multus-cfg - configMap: - name: {{ .Values.multus.multusCNI.name | trunc 63 | trimSuffix "-" }} - items: - - key: cni-conf.json - path: 00-multus.conf + - name: cni + hostPath: + path: /etc/cni/net.d + - name: multus-cfg + configMap: + name: {{ .Values.multus.multusCNI.name | trunc 63 | trimSuffix "-" }} + items: + - key: cni-conf.json + path: 00-multus.conf {{- end }} {{- if .Values.spiderpoolAgent.extraVolumeMounts }} {{- include "tplvalues.render" ( dict "value" .Values.spiderpoolAgent.extraVolumeMounts "context" $ ) | nindent 6 }} {{- end }} {{- if .Values.multus.multusCNI.extraVolumeMounts }} {{- include "tplvalues.render" ( dict "value" .Values.multus.multusCNI.extraVolumeMounts "context" $ ) | nindent 8 }} - {{- end }} + {{- end }} \ No newline at end of file diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/deleteHook.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/deleteHook.yaml new file mode 100644 index 000000000..ef6a0b924 --- /dev/null +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/deleteHook.yaml @@ -0,0 +1,39 @@ +{{- if .Values.spiderpoolController.cleanup.enable }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ .Values.spiderpoolController.name | trunc 48 | trimSuffix "-" }}-hook-pre-delete + annotations: + "helm.sh/hook": pre-delete + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + template: + spec: + hostNetwork: true + serviceAccountName: {{ .Values.spiderpoolController.name | trunc 63 | trimSuffix "-" }} + containers: + - name: pre-delete + image: {{ include "spiderpool.spiderpoolController.image" . | quote }} + command: + - {{ .Values.spiderpoolController.binName }} + - clean + - --validate + - {{ .Values.spiderpoolController.name | trunc 63 | trimSuffix "-" }} + - --mutating + - {{ .Values.spiderpoolController.name | trunc 63 | trimSuffix "-" }} + env: + - name: SPIDERPOOL_POD_NAMESPACE + value: {{ .Release.Namespace | quote }} + - name: SPIDERPOOL_INIT_NAME + value: {{ .Values.spiderpoolInit.name | trunc 63 | trimSuffix "-" | quote }} + - name: SPIDERPOOL_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: SPIDERPOOL_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + restartPolicy: Never + backoffLimit: 2 +{{- end }} diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/deployment.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/deployment.yaml index d78ce1b08..45cbc4be2 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/deployment.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/deployment.yaml @@ -187,6 +187,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace + - name: SPIDERPOOL_CONTROLLER_DEPLOYMENT_NAME + value: {{ .Values.spiderpoolController.name | quote }} {{- with .Values.spiderpoolController.extraEnv }} {{- toYaml . | nindent 8 }} {{- end }} diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/grafanaDashboardRdmaCluster.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/grafanaDashboardRdmaCluster.yaml new file mode 100644 index 000000000..f07c839bd --- /dev/null +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/grafanaDashboardRdmaCluster.yaml @@ -0,0 +1,26 @@ +{{- if .Values.grafanaDashboard.install -}} +apiVersion: integreatly.org/v1alpha1 +kind: GrafanaDashboard +metadata: + name: {{ default "spiderpool" .Values.global.nameOverride }}-rdma-cluster + namespace: {{ default .Release.Namespace .Values.grafanaDashboard.namespace }} + labels: + {{- if .Values.global.commonLabels }} + {{- include "tplvalues.render" ( dict "value" .Values.global.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.grafanaDashboard.labels }} + {{- include "tplvalues.render" ( dict "value" .Values.grafanaDashboard.labels "context" $ ) | nindent 4 }} + {{- end }} + {{- if or .Values.global.commonAnnotations .Values.grafanaDashboard.annotations }} + annotations: + {{- if .Values.global.commonAnnotations }} + {{- include "tplvalues.render" ( dict "value" .Values.global.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.grafanaDashboard.annotations }} + {{- include "tplvalues.render" ( dict "value" .Values.grafanaDashboard.annotations "context" $ ) | nindent 4 }} + {{- end }} + {{- end }} +spec: + json: |- + {{ .Files.Get "files/grafana-rdma-cluster.json" | toJson | indent 4 }} +{{- end }} \ No newline at end of file diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/grafanaDashboardRdmaNode.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/grafanaDashboardRdmaNode.yaml new file mode 100644 index 000000000..85ae18ec3 --- /dev/null +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/grafanaDashboardRdmaNode.yaml @@ -0,0 +1,26 @@ +{{- if .Values.grafanaDashboard.install -}} +apiVersion: integreatly.org/v1alpha1 +kind: GrafanaDashboard +metadata: + name: {{ default "spiderpool" .Values.global.nameOverride }}-rdma-node + namespace: {{ default .Release.Namespace .Values.grafanaDashboard.namespace }} + labels: + {{- if .Values.global.commonLabels }} + {{- include "tplvalues.render" ( dict "value" .Values.global.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.grafanaDashboard.labels }} + {{- include "tplvalues.render" ( dict "value" .Values.grafanaDashboard.labels "context" $ ) | nindent 4 }} + {{- end }} + {{- if or .Values.global.commonAnnotations .Values.grafanaDashboard.annotations }} + annotations: + {{- if .Values.global.commonAnnotations }} + {{- include "tplvalues.render" ( dict "value" .Values.global.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.grafanaDashboard.annotations }} + {{- include "tplvalues.render" ( dict "value" .Values.grafanaDashboard.annotations "context" $ ) | nindent 4 }} + {{- end }} + {{- end }} +spec: + json: |- + {{ .Files.Get "files/grafana-rdma-node.json" | toJson | indent 4 }} +{{- end }} diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/grafanaDashboardRdmaPod.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/grafanaDashboardRdmaPod.yaml new file mode 100644 index 000000000..5efceaa69 --- /dev/null +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/grafanaDashboardRdmaPod.yaml @@ -0,0 +1,26 @@ +{{- if .Values.grafanaDashboard.install -}} +apiVersion: integreatly.org/v1alpha1 +kind: GrafanaDashboard +metadata: + name: {{ default "spiderpool" .Values.global.nameOverride }}-rdma-pod + namespace: {{ default .Release.Namespace .Values.grafanaDashboard.namespace }} + labels: + {{- if .Values.global.commonLabels }} + {{- include "tplvalues.render" ( dict "value" .Values.global.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.grafanaDashboard.labels }} + {{- include "tplvalues.render" ( dict "value" .Values.grafanaDashboard.labels "context" $ ) | nindent 4 }} + {{- end }} + {{- if or .Values.global.commonAnnotations .Values.grafanaDashboard.annotations }} + annotations: + {{- if .Values.global.commonAnnotations }} + {{- include "tplvalues.render" ( dict "value" .Values.global.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.grafanaDashboard.annotations }} + {{- include "tplvalues.render" ( dict "value" .Values.grafanaDashboard.annotations "context" $ ) | nindent 4 }} + {{- end }} + {{- end }} +spec: + json: |- + {{ .Files.Get "files/grafana-rdma-pod.json" | toJson | indent 4 }} +{{- end }} diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/pod.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/pod.yaml index b39034cab..5e178ea69 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/pod.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/pod.yaml @@ -47,6 +47,8 @@ spec: value: {{ .Values.coordinator.tunePodRoutes | quote }} - name: SPIDERPOOL_INIT_DEFAULT_COORDINATOR_HIJACK_CIDR value: {{ toJson .Values.coordinator.hijackCIDR | quote }} + - name: SPIDERPOOL_INIT_DEFAULT_COORDINATOR_VETH_LINK_ADDRESS + value: {{ .Values.coordinator.vethLinkAddress | quote }} {{- end }} {{- if and .Values.clusterDefaultPool.installIPv4IPPool .Values.ipam.enableIPv4 }} - name: SPIDERPOOL_INIT_DEFAULT_IPV4_IPPOOL_NAME @@ -57,7 +59,7 @@ spec: value: {{ toJson .Values.clusterDefaultPool.ipv4IPRanges | quote }} - name: SPIDERPOOL_INIT_DEFAULT_IPV4_IPPOOL_GATEWAY value: {{ .Values.clusterDefaultPool.ipv4Gateway | quote }} - {{- if .Values.ipam.enableSpiderSubnet }} + {{- if .Values.ipam.spiderSubnet.enable }} - name: SPIDERPOOL_INIT_DEFAULT_IPV4_SUBNET_NAME value: {{ .Values.clusterDefaultPool.ipv4SubnetName | quote }} {{- end }} @@ -71,7 +73,7 @@ spec: value: {{ toJson .Values.clusterDefaultPool.ipv6IPRanges | quote }} - name: SPIDERPOOL_INIT_DEFAULT_IPV6_IPPOOL_GATEWAY value: {{ .Values.clusterDefaultPool.ipv6Gateway | quote }} - {{- if .Values.ipam.enableSpiderSubnet }} + {{- if .Values.ipam.spiderSubnet.enable }} - name: SPIDERPOOL_INIT_DEFAULT_IPV6_SUBNET_NAME value: {{ .Values.clusterDefaultPool.ipv6SubnetName | quote }} {{- end }} diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/rdma-shared-dp/rdma-shared-dp.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/rdma-shared-dp/rdma-shared-dp.yaml index 52958e7df..01ababb10 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/rdma-shared-dp/rdma-shared-dp.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/rdma-shared-dp/rdma-shared-dp.yaml @@ -16,15 +16,14 @@ data: config.json: | { "periodicUpdateInterval": {{ .Values.rdma.rdmaSharedDevicePlugin.deviceConfig.periodicUpdateInterval }}, - "configList": [{ - "resourcePrefix": {{ .Values.rdma.rdmaSharedDevicePlugin.deviceConfig.resourcePrefix | quote }}, - "resourceName": {{ .Values.rdma.rdmaSharedDevicePlugin.deviceConfig.resourceName | quote }}, - "rdmaHcaMax": {{ .Values.rdma.rdmaSharedDevicePlugin.deviceConfig.rdmaHcaMax }}, - "selectors": { - "vendors": [{{ .Values.rdma.rdmaSharedDevicePlugin.deviceConfig.vendors | quote }}], - "deviceIDs": [{{ .Values.rdma.rdmaSharedDevicePlugin.deviceConfig.deviceIDs | quote }}] - } - }] + {{- if .Values.rdma.rdmaSharedDevicePlugin.deviceConfig.configList }} + {{- with .Values.rdma.rdmaSharedDevicePlugin.deviceConfig.configList }} + configList: + {{- toPrettyJson . | trim | nindent 10 }} + {{- end }} + {{- else }} + configList: [] + {{- end }} } --- apiVersion: apps/v1 diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/role.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/role.yaml index 3aea975e0..031b9240a 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/role.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/role.yaml @@ -10,7 +10,6 @@ rules: - configmaps - endpoints - namespaces - - nodes - pods - pods/status verbs: @@ -34,93 +33,96 @@ rules: - update - watch - apiGroups: - - '*' + - "" resources: - - '*' + - nodes verbs: - get - list - watch - apiGroups: - - apps + - admissionregistration.k8s.io resources: - - daemonsets - - deployments - - replicasets - - statefulsets + - mutatingwebhookconfigurations + - validatingwebhookconfigurations verbs: + - delete - get - list - update - watch - apiGroups: - - batch + - apiextensions.k8s.io resources: - - cronjobs - - jobs + - customresourcedefinitions verbs: + - create + - delete - get - list + - patch - update - watch - apiGroups: - - coordination.k8s.io + - apps resources: - - leases + - daemonsets + - deployments + - replicasets + - statefulsets verbs: - - create - get + - list - update + - watch - apiGroups: - - k8s.cni.cncf.io + - apps.kruise.io resources: - - network-attachment-definitions + - clonesets + - statefulsets verbs: - - create - - delete - get - list - - patch - - update - watch - apiGroups: - - kubevirt.io + - batch resources: - - virtualmachineinstances + - cronjobs + - jobs verbs: + - delete - get - list + - update + - watch - apiGroups: - - kubevirt.io + - cilium.io resources: - - virtualmachines + - ciliumpodippools verbs: - get - list + - watch - apiGroups: - - spiderpool.spidernet.io + - coordination.k8s.io resources: - - spidercoordinators + - leases verbs: - create - - delete - get - - list - - patch - update - - watch - apiGroups: - - spiderpool.spidernet.io + - crd.projectcalico.org resources: - - spidercoordinators/status + - ippools verbs: - get - - patch - - update + - list + - watch - apiGroups: - - spiderpool.spidernet.io + - k8s.cni.cncf.io resources: - - spiderendpoints + - network-attachment-definitions verbs: - create - delete @@ -130,30 +132,44 @@ rules: - update - watch - apiGroups: - - spiderpool.spidernet.io + - kubevirt.io resources: - - spiderippools + - virtualmachineinstances + - virtualmachines + verbs: + - get + - list +- apiGroups: + - networking.k8s.io + resources: + - servicecidrs verbs: - - create - - delete - - deletecollection - get - list - - patch - - update - watch - apiGroups: - - spiderpool.spidernet.io + - resource.k8s.io resources: - - spiderippools/status + - podschedulingcontexts + - podschedulingcontexts/status + - resourceclaims + - resourceclaims/status + - resourceclaimtemplates + - resourceclasses verbs: - get + - list - patch - update + - watch - apiGroups: - spiderpool.spidernet.io resources: + - spiderclaimparameters + - spiderendpoints - spidermultusconfigs + - spiderreservedips + - spidersubnets verbs: - create - delete @@ -165,7 +181,7 @@ rules: - apiGroups: - spiderpool.spidernet.io resources: - - spiderreservedips + - spidercoordinators verbs: - create - delete @@ -177,20 +193,23 @@ rules: - apiGroups: - spiderpool.spidernet.io resources: - - spidersubnets + - spidercoordinators/status + - spiderippools/status + - spidersubnets/status verbs: - - create - - delete - get - - list - patch - update - - watch - apiGroups: - spiderpool.spidernet.io resources: - - spidersubnets/status + - spiderippools verbs: + - create + - delete + - deletecollection - get + - list - patch - update + - watch diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/clusterrole.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/clusterrole.yaml index b523b0e3d..0d13a3113 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/clusterrole.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/clusterrole.yaml @@ -19,6 +19,9 @@ rules: - apiGroups: [""] resources: ["pods"] verbs: ["*"] + - apiGroups: [""] + resources: ["pods/eviction"] + verbs: ["create"] - apiGroups: ["apps"] resources: ["daemonsets"] verbs: ["get"] @@ -29,7 +32,7 @@ rules: resources: ["network-attachment-definitions"] verbs: ["*"] - apiGroups: ["rbac.authorization.k8s.io"] - resources: ["clusterroles", "clusterrolebindings"] + resources: [clusterroles, clusterrolebindings] verbs: ["*"] - apiGroups: ["admissionregistration.k8s.io"] resources: ["mutatingwebhookconfigurations", "validatingwebhookconfigurations"] @@ -67,9 +70,6 @@ rules: - apiGroups: ["apps"] resources: ["daemonsets"] verbs: ["get"] - - apiGroups: [""] - resources: ["pods/eviction"] - verbs: ["create"] - apiGroups: [ "config.openshift.io" ] resources: [ "infrastructures" ] verbs: [ "get", "list", "watch" ] diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/configmap.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/configmap.yaml index 424aadac4..19421a6b2 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/configmap.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/configmap.yaml @@ -18,6 +18,7 @@ data: Intel_i40e_25G_SFP28: "8086 158b 154c" Intel_i40e_10G_X710_SFP: "8086 1572 154c" Intel_ixgbe_10G_X550: "8086 1563 1565" + Intel_ixgbe_82576: "8086 10c9 10ca" Intel_i40e_X710_X557_AT_10G: "8086 1589 154c" Intel_i40e_10G_X710_BACKPLANE: "8086 1581 154c" Intel_i40e_10G_X710_BASE_T: "8086 15ff 154c" @@ -27,6 +28,7 @@ data: Intel_ice_Columbiaville_E810-XXVDA4: "8086 1593 1889" Intel_ice_Columbiaville_E810-XXVDA2: "8086 159b 1889" Intel_ice_Columbiaville_E810: "8086 1591 1889" + Intel_ice_Columbiapark_E823C: "8086 188a 1889" Nvidia_mlx5_ConnectX-4: "15b3 1013 1014" Nvidia_mlx5_ConnectX-4LX: "15b3 1015 1016" Nvidia_mlx5_ConnectX-5: "15b3 1017 1018" @@ -41,9 +43,13 @@ data: Broadcom_bnxt_BCM75508_2x100G: "14e4 1750 1806" Qlogic_qede_QL45000_50G: "1077 1654 1664" Red_Hat_Virtio_network_device: "1af4 1000 1000" + Red_Hat_Virtio_1_0_network_device: "1af4 1041 1041" Marvell_OCTEON_TX2_CN96XX: "177d b200 b203" Marvell_OCTEON_TX2_CN98XX: "177d b100 b103" Marvell_OCTEON_Fusion_CNF95XX: "177d b600 b603" Marvell_OCTEON10_CN10XXX: "177d b900 b903" Marvell_OCTEON_Fusion_CNF105XX: "177d ba00 ba03" + {{- range .Values.supportedExtraNICs }} + {{ . }} + {{- end }} {{- end }} \ No newline at end of file diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/operator.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/operator.yaml index 0093be1b4..b99409600 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/operator.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/operator.yaml @@ -1,4 +1,5 @@ {{- if .Values.sriov.install -}} +{{- $_ := include "generate-ca-certs" . }} apiVersion: apps/v1 kind: Deployment metadata: @@ -64,23 +65,23 @@ spec: fieldRef: fieldPath: metadata.namespace - name: SRIOV_CNI_IMAGE - value: {{ include "sriov.sriovCni.image" . | quote }} + value: - name: SRIOV_INFINIBAND_CNI_IMAGE - value: {{ include "sriov.ibSriovCni.image" . | quote }} + value: + - name: OVS_CNI_IMAGE + value: - name: SRIOV_DEVICE_PLUGIN_IMAGE value: {{ include "sriov.sriovDevicePlugin.image" . | quote }} - name: NETWORK_RESOURCES_INJECTOR_IMAGE value: {{ include "sriov.resourcesInjector.image" . | quote }} + - name: OPERATOR_NAME + value: {{ .Values.sriov.name | trunc 63 | trimSuffix "-" }} - name: SRIOV_NETWORK_CONFIG_DAEMON_IMAGE value: {{ include "sriov.sriovConfigDaemon.image" . | quote }} - name: SRIOV_NETWORK_WEBHOOK_IMAGE value: {{ include "sriov.webhook.image" . | quote }} - name: RESOURCE_PREFIX value: {{ .Values.sriov.resourcePrefix }} - - name: OPERATOR_NAME - value: {{ .Values.sriov.name | trunc 63 | trimSuffix "-" }} - - name: ENABLE_ADMISSION_CONTROLLER - value: {{ .Values.sriov.enableAdmissionController | quote }} - name: IMAGE_PULL_SECRETS value: {{ .Values.sriov.image.pullPolicy | quote }} - name: NAMESPACE @@ -95,8 +96,158 @@ spec: valueFrom: fieldRef: fieldPath: spec.nodeName + - name: RELEASE_VERSION + value: {{ .Release.AppVersion }} - name: SRIOV_CNI_BIN_PATH value: {{ .Values.global.cniBinHostPath }} - name: CLUSTER_TYPE value: kubernetes + {{- if .Values.sriov.operatorConfig.enableOperatorWebhook }} + - name: ADMISSION_CONTROLLERS_CERTIFICATES_OPERATOR_SECRET_NAME + value: {{ .Values.sriov.webhooktls.secretName | trunc 63 | trimSuffix "-" }} + - name: ADMISSION_CONTROLLERS_CERTIFICATES_OPERATOR_CA_CRT + value: {{ .ca.Cert | b64enc }} + {{- end }} + {{- if .Values.sriov.operatorConfig.enableInjector }} + - name: ADMISSION_CONTROLLERS_CERTIFICATES_INJECTOR_SECRET_NAME + value: {{ .Values.sriov.injectortls.secretName | trunc 63 | trimSuffix "-" }} + - name: ADMISSION_CONTROLLERS_CERTIFICATES_INJECTOR_CA_CRT + value: {{ .ca.Cert | b64enc }} + {{- end }} + {{- if and ( eq .Values.sriov.webhooktls.method "certmanager") ( or .Values.sriov.operatorConfig.enableOperatorWebhook .Values.sriov.operatorConfig.enableInjector ) }} + - name: ADMISSION_CONTROLLERS_CERTIFICATES_CERT_MANAGER_ENABLED + value: "true" + {{- end }} +{{- if .Values.sriov.operatorConfig.enableInjector -}} +{{- if eq .Values.sriov.injectortls.method "certmanager" -}} +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: {{ .Values.sriov.name | trunc 63 | trimSuffix "-" }}-injector-server-certs + namespace: {{ .Release.Namespace }} +spec: + issuerRef: + name: {{ .Values.sriov.injectortls.certmanager.issuerName | trunc 63 | trimSuffix "-" }} + secretName: {{ .Values.sriov.injectortls.secretName | trunc 63 | trimSuffix "-" }} + commonName: {{ .Values.sriov.name | trunc 63 | trimSuffix "-" }}.{{ .Release.Namespace }}.svc + dnsNames: + - {{ .Values.sriov.injectortls.serviceName | trunc 63 | trimSuffix "-" }} + - {{ .Values.sriov.injectortls.serviceName | trunc 63 | trimSuffix "-" }}.{{ .Release.Namespace }} + - {{ .Values.sriov.injectortls.serviceName | trunc 63 | trimSuffix "-" }}.{{ .Release.Namespace }}.svc + - {{ .Values.sriov.injectortls.serviceName | trunc 63 | trimSuffix "-" }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDnsDomain }} + {{- range $dns := .Values.sriov.injectortls.certmanager.extraDnsNames }} + - {{ $dns | quote }} + {{- end }} + {{- if .Values.sriov.injectortls.certmanager.extraIPAddresses }} + ipAddresses: + {{- range $ip := .Values.sriov.injectortls.certmanager.extraIPAddresses }} + - {{ $ip | quote }} + {{- end }} + {{- end }} + duration: {{ printf "%dh" (mul .Values.sriov.injectortls.certmanager.certValidityDuration 24) }} + {{- end }} + {{- if (eq .Values.sriov.injectortls.method "provided") }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Values.sriov.injectortls.secretName | trunc 63 | trimSuffix "-" }} + namespace: {{ .Release.Namespace }} +type: kubernetes.io/tls +data: + ca.crt: {{ .Values.sriov.injectortls.provided.tlsCa | required "missing sriov.injectortls.provided.tlsCa" }} + tls.crt: {{ .Values.sriov.injectortls.provided.tlsCert | required "missing sriov.injectortls.provided.tlsCert" }} + tls.key: {{ .Values.sriov.injectortls.provided.tlsKey | required "missing sriov.injectortls.provided.tlsKey" }} + {{- end }} + {{- if eq .Values.sriov.injectortls.method "auto" }} +--- +{{- $cn := printf .Values.sriov.name }} +{{- $ip := .Values.sriov.injectortls.auto.extraIpAddresses }} +{{- $dns1 := printf "%s.%s" .Values.sriov.injectortls.serviceName .Release.Namespace }} +{{- $dns2 := printf "%s.%s.svc" .Values.sriov.injectortls.serviceName .Release.Namespace }} +{{- $dns3 := printf "%s.%s.svc.%s" .Values.sriov.injectortls.serviceName .Release.Namespace .Values.global.clusterDnsDomain }} +{{- $dns := prepend .Values.sriov.injectortls.auto.extraDnsNames $dns1 }} +{{- $dns = prepend $dns $dns2 }} +{{- $dns = prepend $dns $dns3 }} +{{- $dns = prepend $dns $cn }} +{{- $cert := genSignedCert $cn $ip $dns (.Values.sriov.injectortls.auto.certExpiration | int) .ca }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Values.sriov.injectortls.secretName | trunc 63 | trimSuffix "-" }} + namespace: {{ .Release.Namespace }} +type: kubernetes.io/tls +data: + ca.crt: {{ .ca.Cert | b64enc }} + tls.crt: {{ $cert.Cert | b64enc }} + tls.key: {{ $cert.Key | b64enc }} +{{- end }} +{{- end }} +{{- if .Values.sriov.operatorConfig.enableOperatorWebhook -}} +{{- if eq .Values.sriov.webhooktls.method "certmanager" -}} +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: {{ .Values.sriov.name | trunc 63 | trimSuffix "-" }}-webhook-server-certs + namespace: {{ .Release.Namespace }} +spec: + issuerRef: + name: {{ .Values.sriov.webhooktls.certmanager.issuerName | trunc 63 | trimSuffix "-" }} + secretName: {{ .Values.sriov.webhooktls.secretName | trunc 63 | trimSuffix "-" }} + commonName: {{ .Values.sriov.name | trunc 63 | trimSuffix "-" }}.{{ .Release.Namespace }}.svc + dnsNames: + - {{ .Values.sriov.webhooktls.serviceName | trunc 63 | trimSuffix "-" }} + - {{ .Values.sriov.webhooktls.serviceName | trunc 63 | trimSuffix "-" }}.{{ .Release.Namespace }} + - {{ .Values.sriov.webhooktls.serviceName | trunc 63 | trimSuffix "-" }}.{{ .Release.Namespace }}.svc + - {{ .Values.sriov.webhooktls.serviceName | trunc 63 | trimSuffix "-" }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDnsDomain }} + {{- range $dns := .Values.sriov.webhooktls.certmanager.extraDnsNames }} + - {{ $dns | quote }} + {{- end }} + {{- if .Values.sriov.webhooktls.certmanager.extraIPAddresses }} + ipAddresses: + {{- range $ip := .Values.sriov.webhooktls.certmanager.extraIPAddresses }} + - {{ $ip | quote }} + {{- end }} + {{- end }} + duration: {{ printf "%dh" (mul .Values.sriov.webhooktls.certmanager.certValidityDuration 24) }} + {{- end }} + {{- if (eq .Values.sriov.webhooktls.method "provided") }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Values.sriov.webhooktls.secretName | trunc 63 | trimSuffix "-" }} + namespace: {{ .Release.Namespace }} +type: kubernetes.io/tls +data: + ca.crt: {{ .Values.sriov.webhooktls.provided.tlsCa | required "missing sriov.webhooktls.provided.tlsCa" }} + tls.crt: {{ .Values.sriov.webhooktls.provided.tlsCert | required "missing sriov.webhooktls.provided.tlsCert" }} + tls.key: {{ .Values.sriov.webhooktls.provided.tlsKey | required "missing sriov.webhooktls.provided.tlsKey" }} +{{- end }} +{{- if eq .Values.sriov.webhooktls.method "auto" }} +--- +{{- $cn := printf .Values.sriov.name }} +{{- $ip := .Values.sriov.webhooktls.auto.extraIpAddresses }} +{{- $dns1 := printf "%s.%s" .Values.sriov.webhooktls.serviceName .Release.Namespace }} +{{- $dns2 := printf "%s.%s.svc" .Values.sriov.webhooktls.serviceName .Release.Namespace }} +{{- $dns3 := printf "%s.%s.svc.%s" .Values.sriov.webhooktls.serviceName .Release.Namespace .Values.global.clusterDnsDomain }} +{{- $dns := prepend .Values.sriov.webhooktls.auto.extraDnsNames $dns1 }} +{{- $dns = prepend $dns $dns2 }} +{{- $dns = prepend $dns $dns3 }} +{{- $dns = prepend $dns $cn }} +{{- $cert := genSignedCert $cn $ip $dns (.Values.sriov.webhooktls.auto.certExpiration | int) .ca }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Values.sriov.webhooktls.secretName | trunc 63 | trimSuffix "-" }} + namespace: {{ .Release.Namespace }} +type: kubernetes.io/tls +data: + ca.crt: {{ .ca.Cert | b64enc }} + tls.crt: {{ $cert.Cert | b64enc }} + tls.key: {{ $cert.Key | b64enc }} +{{- end }} +{{- end }} {{- end }} \ No newline at end of file diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/role.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/role.yaml index ede720604..9cfeb5b59 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/role.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/role.yaml @@ -67,6 +67,12 @@ rules: - get - list - watch + - apiGroups: + - 'coordination.k8s.io' + resources: + - 'leases' + verbs: + - '*' --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role @@ -123,6 +129,13 @@ rules: - 'leases' verbs: - '*' + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/sriovoperatorconfig.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/sriovoperatorconfig.yaml new file mode 100644 index 000000000..58aab9ae2 --- /dev/null +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/sriov-network-operator/sriovoperatorconfig.yaml @@ -0,0 +1,30 @@ +{{- if .Values.sriov.install -}} +apiVersion: sriovnetwork.openshift.io/v1 +kind: SriovOperatorConfig +metadata: + name: default + namespace: {{ .Release.Namespace }} + labels: + {{- include "sriov.operator.labels" . | nindent 4 }} + {{- if .Values.global.commonLabels }} + {{- include "tplvalues.render" ( dict "value" .Values.global.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.global.commonAnnotations }} + annotations: + {{- include "tplvalues.render" ( dict "value" .Values.global.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + enableInjector: {{ .Values.sriov.operatorConfig.enableInjector }} + enableOperatorWebhook: {{ .Values.sriov.operatorConfig.enableOperatorWebhook }} + {{- with .Values.sriov.operatorConfig.configDaemonNodeSelector }} + configDaemonNodeSelector: + {{- range $k, $v := .}}{{printf "%s: \"%s\"" $k $v | nindent 4 }}{{ end }} + {{- end }} + logLevel: {{ .Values.sriov.operatorConfig.logLevel }} + disableDrain: {{ .Values.sriov.operatorConfig.disableDrain }} + configurationMode: {{ .Values.sriov.operatorConfig.configurationMode }} + featureGates: + metricsExporter: false + resourceInjectorMatchCondition: true + parallelNicConfig: true +{{- end }} \ No newline at end of file diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/templates/tls.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/templates/tls.yaml index 3dce19003..940d4274b 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/templates/tls.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/templates/tls.yaml @@ -289,7 +289,6 @@ webhooks: - spidermultusconfigs sideEffects: None {{- end }} - {{- if eq .Values.spiderpoolController.tls.method "certmanager" -}} --- apiVersion: cert-manager.io/v1 diff --git a/charts/spiderpool/spiderpool/charts/spiderpool/values.yaml b/charts/spiderpool/spiderpool/charts/spiderpool/values.yaml index 08ddfb4a3..65160f989 100644 --- a/charts/spiderpool/spiderpool/charts/spiderpool/values.yaml +++ b/charts/spiderpool/spiderpool/charts/spiderpool/values.yaml @@ -53,11 +53,16 @@ ipam: ## @param ipam.enableKubevirtStaticIP the feature to keep kubevirt vm pod static IP enableKubevirtStaticIP: true - ## @param ipam.enableSpiderSubnet SpiderSubnet feature gate. - enableSpiderSubnet: true + spiderSubnet: + ## @param ipam.spiderSubnet.enable SpiderSubnet feature. + enable: true - ## @param ipam.subnetDefaultFlexibleIPNumber the default flexible IP number of SpiderSubnet feature auto-created IPPools - subnetDefaultFlexibleIPNumber: 1 + autoPool: + ## @param ipam.spiderSubnet.autoPool.enable SpiderSubnet Auto IPPool feature. + enable: true + + ## @param ipam.spiderSubnet.autoPool.defaultRedundantIPNumber the default redundant IP number of SpiderSubnet feature auto-created IPPools + defaultRedundantIPNumber: 1 gc: ## @param ipam.gc.enabled enable retrieve IP in spiderippool CR @@ -119,6 +124,9 @@ coordinator: ## @param coordinator.hijackCIDR Additional subnets that need to be hijacked to the host forward, the default link-local range "169.254.0.0/16" is used for NodeLocal DNS hijackCIDR: ["169.254.0.0/16"] + ## @param coordinator.vethLinkAddress configure an link-local address for veth0 device. empty means disable. default is empty. Format is like 169.254.100.1 + vethLinkAddress: "" + ## @section rdma parameters ## rdma: @@ -143,7 +151,7 @@ rdma: digest: "" ## @param rdma.rdmaSharedDevicePlugin.image.tag the image tag of rdma shared device plugin - tag: latest + tag: v1.5.1 ## @param rdma.rdmaSharedDevicePlugin.image.imagePullSecrets the image imagePullSecrets of rdma shared device plugin imagePullSecrets: [] @@ -182,20 +190,18 @@ rdma: ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.periodicUpdateInterval periodic Update Interval periodicUpdateInterval: 300 - ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.resourcePrefix resource prefix - resourcePrefix: "spidernet.io" - - ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.resourceName resource Name - resourceName: "hca_shared_devices" - - ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.rdmaHcaMax rdma Hca Max - rdmaHcaMax: 500 - - ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.vendors rdma device vendors, default to mellanox device - vendors: "15b3" - - ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.deviceIDs rdma device IDs, default to mellanox device - deviceIDs: "1017" + ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.configList configure the network card for the rdma resource + configList: [] + # [{ + # resourcePrefix: "spidernet.io", + # resourceName: "hca_shared_devices", + # rdmaHcaMax: 500, + # selectors: { + # "vendors": "15b3", + # "deviceIDs": "1017", + # "ifNames": ["enp11s0f0np0"] + # } + # }] ## @section multus parameters ## @@ -273,6 +279,9 @@ plugins: ## @param plugins.installOvsCNI install ovs cni to each node installOvsCNI: true + ## @param plugins.installSriovCNI install sriov cni to each node + installSriovCNI: true + ## @param plugins.installibSriovCNI install ib-sriov cni to each node installibSriovCNI: true @@ -293,7 +302,7 @@ plugins: digest: "" ## @param plugins.image.tag the image tag of plugins - tag: v0.9.2 + tag: 82659d90cae0d6a5169eac2869e47c989932d775 ## @param plugins.image.imagePullSecrets the image imagePullSecrets of plugins imagePullSecrets: [] @@ -360,7 +369,7 @@ spiderpoolAgent: digest: "" ## @param spiderpoolAgent.image.tag the image tag of spiderpoolAgent, overrides the image tag whose default is the chart appVersion. - tag: v0.9.7 + tag: v1.0.0-rc2 ## @param spiderpoolAgent.image.imagePullSecrets the image imagePullSecrets of spiderpoolAgent imagePullSecrets: [] @@ -462,6 +471,9 @@ spiderpoolAgent: ## @param spiderpoolAgent.prometheus.enabled enable spiderpool agent to collect metrics enabled: false + ## @param spiderpoolAgent.prometheus.enabledRdmaMetric enable spiderpool agent to collect RDMA metrics + enabledRdmaMetric: false + ## @param spiderpoolAgent.prometheus.enabledDebugMetric enable spiderpool agent to collect debug level metrics enabledDebugMetric: false @@ -547,7 +559,7 @@ spiderpoolController: digest: "" ## @param spiderpoolController.image.tag the image tag of spiderpoolController, overrides the image tag whose default is the chart appVersion. - tag: v0.9.7 + tag: v1.0.0-rc2 ## @param spiderpoolController.image.imagePullSecrets the image imagePullSecrets of spiderpoolController imagePullSecrets: [] @@ -653,6 +665,20 @@ spiderpoolController: ## @param spiderpoolController.webhookPort the http port for spiderpoolController webhook webhookPort: 5722 + podResourceInject: + ## @param spiderpoolController.podResourceInject.enabled enable pod resource inject + enabled: false + + ## @param spiderpoolController.podResourceInject.namespacesExclude exclude the namespaces of the pod resource inject + namespacesExclude: + - kube-system + - spiderpool + - metallb-system + - istio-system + + ## @param spiderpoolController.podResourceInject.namespacesInclude include the namespaces of the pod resource inject, empty means all namespaces but exclude the namespaces in namespacesExclude, not empty means only include the namespaces in namespacesInclude + namespacesInclude: [] + prometheus: ## @param spiderpoolController.prometheus.enabled enable spiderpool Controller to collect metrics enabled: false @@ -716,7 +742,7 @@ spiderpoolController: ## for certmanager method certmanager: ## @param spiderpoolController.tls.certmanager.certValidityDuration generated certificates validity duration in days for 'certmanager' method - certValidityDuration: 365 + certValidityDuration: 36500 ## @param spiderpoolController.tls.certmanager.issuerName issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. issuerName: "" @@ -752,6 +778,10 @@ spiderpoolController: ## @param spiderpoolController.tls.auto.extraDnsNames extra DNS names of server cert for auto method extraDnsNames: [] + cleanup: + ## @param spiderpoolController.cleanup.enable clean up resources when helm uninstall + enable: true + ## @section spiderpoolInit parameters ## spiderpoolInit: @@ -775,7 +805,7 @@ spiderpoolInit: digest: "" ## @param spiderpoolInit.image.tag the image tag of spiderpoolInit, overrides the image tag whose default is the chart appVersion. - tag: v0.9.7 + tag: v1.0.0-rc2 ## @param spiderpoolInit.image.imagePullSecrets the image imagePullSecrets of spiderpoolInit imagePullSecrets: [] @@ -827,9 +857,6 @@ sriov: ## @param sriov.priorityClassName the priority Class Name priorityClassName: "system-node-critical" - ## @param sriov.enableAdmissionController enable Admission Controller - enableAdmissionController: false - resources: limits: ## @param sriov.resources.limits.cpu the cpu limit @@ -842,6 +869,27 @@ sriov: ## @param sriov.resources.requests.memory the memory requests memory: 128Mi + operatorConfig: + ## @param sriov.operatorConfig.enableInjector Flag to control whether the network resource injector webhook shall be deployed + enableInjector: false + + ## @param sriov.operatorConfig.enableOperatorWebhook Flag to control whether the operator admission controller webhook shall be deployed + enableOperatorWebhook: true + + configDaemonNodeSelector: + ## @skip sriov.operatorConfig.configDaemonNodeSelector.configDaemonNodeSelector.kubernetes.io/os + ## @skip sriov.operatorConfig.configDaemonNodeSelector.kubernetes.io/os + kubernetes.io/os: "linux" + + ## @param sriov.operatorConfig.logLevel Flag to control the log verbose level of the operator + logLevel: 2 + + ## @param sriov.operatorConfig.disableDrain Flag to disable nodes drain during debugging + disableDrain: true + + ## @param sriov.operatorConfig.configurationMode Flag to enable the sriov-network-config-daemon to use a systemd service to configure SR-IOV devices on boot + configurationMode: daemon + image: ## @param sriov.image.registry registry for all images registry: ghcr.io @@ -855,49 +903,141 @@ sriov: operator: ## @param sriov.image.operator.repository the image repository - repository: k8snetworkplumbingwg/sriov-network-operator + repository: spidernet-io/sriov-network-operator ## @param sriov.image.operator.tag the image tag - tag: v1.2.0 + tag: v1.3.0 sriovConfigDaemon: ## @param sriov.image.sriovConfigDaemon.repository the image repository - repository: k8snetworkplumbingwg/sriov-network-operator-config-daemon + repository: spidernet-io/sriov-network-operator-config-daemon ## @param sriov.image.sriovConfigDaemon.tag the image tag - tag: v1.2.0 - - sriovCni: - ## @param sriov.image.sriovCni.repository the image repository - repository: k8snetworkplumbingwg/sriov-cni - - ## @param sriov.image.sriovCni.tag the image tag - tag: v2.7.0 - - ibSriovCni: - ## @param sriov.image.ibSriovCni.repository the image repository - repository: k8snetworkplumbingwg/ib-sriov-cni - - ## @param sriov.image.ibSriovCni.tag the image tag - tag: v1.0.2 + tag: v1.3.0 sriovDevicePlugin: ## @param sriov.image.sriovDevicePlugin.repository the image repository repository: k8snetworkplumbingwg/sriov-network-device-plugin ## @param sriov.image.sriovDevicePlugin.tag the image tag - tag: v3.5.1 + tag: v3.7.0 resourcesInjector: ## @param sriov.image.resourcesInjector.repository the image repository repository: k8snetworkplumbingwg/network-resources-injector ## @param sriov.image.resourcesInjector.tag the image tag - tag: v1.5 + tag: v1.6.0 webhook: ## @param sriov.image.webhook.repository the image repository repository: k8snetworkplumbingwg/sriov-network-operator-webhook ## @param sriov.image.webhook.tag the image tag - tag: v1.2.0 + tag: v1.3.0 + + ## TLS configuration for operator webhook + webhooktls: + ## @param sriov.webhooktls.method the method for generating TLS certificates. [ provided , certmanager , auto] + ## - provided: provide all certificates by helm options + ## - certmanager: This method use cert-manager to generate & rotate certificates. + ## - auto: Auto generate cert. + method: auto + + ## @param sriov.webhooktls.secretName the secret name for storing TLS certificates + secretName: "sriov-operator-webhook" + + ## @param sriov.webhooktls.serviceName the service name of webhook. Do not modify this !!! + serviceName: "operator-webhook-service" + + ## for certmanager method + certmanager: + ## @param sriov.webhooktls.certmanager.certValidityDuration generated certificates validity duration in days for 'certmanager' method + certValidityDuration: 365 + + ## @param sriov.webhooktls.certmanager.issuerName issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. + issuerName: "" + + ## @param sriov.webhooktls.certmanager.extraDnsNames extra DNS names added to certificate when it's auto generated + extraDnsNames: [] + + ## @param sriov.webhooktls.certmanager.extraIPAddresses extra IP addresses added to certificate when it's auto generated + extraIPAddresses: [] + + ## for provided method + provided: + ## @param sriov.webhooktls.provided.tlsCert encoded tls certificate for provided method + ## @param sriov.webhooktls.provided.tlsKey encoded tls key for provided method + ## @param sriov.webhooktls.provided.tlsCa encoded tls CA for provided method + tlsCert: "" + tlsKey: "" + tlsCa: "" + + ## for auto method + auto: + ## @param sriov.webhooktls.auto.caExpiration ca expiration for auto method + # in day , default 200 years + caExpiration: '73000' + + ## @param sriov.webhooktls.auto.certExpiration server cert expiration for auto method + # in day, default 200 years + certExpiration: '73000' + + ## @param sriov.webhooktls.auto.extraIpAddresses extra IP addresses of server certificate for auto method + extraIpAddresses: [] + + ## @param sriov.webhooktls.auto.extraDnsNames extra DNS names of server cert for auto method + extraDnsNames: [] + + ## TLS configuration for injector webhook + injectortls: + ## @param sriov.injectortls.method the method for generating TLS certificates. [ provided , certmanager , auto] + ## - provided: provide all certificates by helm options + ## - certmanager: This method use cert-manager to generate & rotate certificates. + ## - auto: Auto generate cert. + method: auto + + ## @param sriov.injectortls.secretName the secret name for storing TLS certificates + secretName: "sriov-injector" + + ## @param sriov.injectortls.serviceName the service name of webhook. Do not modify this !!! + serviceName: "network-resources-injector-service" + + ## for certmanager method + certmanager: + ## @param sriov.injectortls.certmanager.certValidityDuration generated certificates validity duration in days for 'certmanager' method + certValidityDuration: 36500 + + ## @param sriov.injectortls.certmanager.issuerName issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. + issuerName: "" + + ## @param sriov.injectortls.certmanager.extraDnsNames extra DNS names added to certificate when it's auto generated + extraDnsNames: [] + + ## @param sriov.injectortls.certmanager.extraIPAddresses extra IP addresses added to certificate when it's auto generated + extraIPAddresses: [] + + ## for provided method + provided: + ## @param sriov.injectortls.provided.tlsCert encoded tls certificate for provided method + ## @param sriov.injectortls.provided.tlsKey encoded tls key for provided method + ## @param sriov.injectortls.provided.tlsCa encoded tls CA for provided method + tlsCert: "" + tlsKey: "" + tlsCa: "" + + ## for auto method + auto: + ## @param sriov.injectortls.auto.caExpiration ca expiration for auto method + # in day , default 200 years + caExpiration: '73000' + + ## @param sriov.injectortls.auto.certExpiration server cert expiration for auto method + # in day, default 200 years + certExpiration: '73000' + + ## @param sriov.injectortls.auto.extraIpAddresses extra IP addresses of server certificate for auto method + extraIpAddresses: [] + + ## @param sriov.injectortls.auto.extraDnsNames extra DNS names of server cert for auto method + extraDnsNames: [] diff --git a/charts/spiderpool/spiderpool/values.yaml b/charts/spiderpool/spiderpool/values.yaml index b34e28f61..7560c89ce 100644 --- a/charts/spiderpool/spiderpool/values.yaml +++ b/charts/spiderpool/spiderpool/values.yaml @@ -42,10 +42,14 @@ spiderpool: enableStatefulSet: true ## @param ipam.enableKubevirtStaticIP the feature to keep kubevirt vm pod static IP enableKubevirtStaticIP: true - ## @param ipam.enableSpiderSubnet SpiderSubnet feature gate. - enableSpiderSubnet: true - ## @param ipam.subnetDefaultFlexibleIPNumber the default flexible IP number of SpiderSubnet feature auto-created IPPools - subnetDefaultFlexibleIPNumber: 1 + spiderSubnet: + ## @param ipam.spiderSubnet.enable SpiderSubnet feature. + enable: true + autoPool: + ## @param ipam.spiderSubnet.autoPool.enable SpiderSubnet Auto IPPool feature. + enable: true + ## @param ipam.spiderSubnet.autoPool.defaultRedundantIPNumber the default redundant IP number of SpiderSubnet feature auto-created IPPools + defaultRedundantIPNumber: 1 gc: ## @param ipam.gc.enabled enable retrieve IP in spiderippool CR enabled: true @@ -89,6 +93,8 @@ spiderpool: tunePodRoutes: true ## @param coordinator.hijackCIDR Additional subnets that need to be hijacked to the host forward, the default link-local range "169.254.0.0/16" is used for NodeLocal DNS hijackCIDR: ["169.254.0.0/16"] + ## @param coordinator.vethLinkAddress configure an link-local address for veth0 device. empty means disable. default is empty. Format is like 169.254.100.1 + vethLinkAddress: "" ## @section rdma parameters ## rdma: @@ -107,7 +113,7 @@ spiderpool: ## @param rdma.rdmaSharedDevicePlugin.image.digest the image digest of rdma shared device plugin digest: "" ## @param rdma.rdmaSharedDevicePlugin.image.tag the image tag of rdma shared device plugin - tag: latest + tag: v1.5.1 ## @param rdma.rdmaSharedDevicePlugin.image.imagePullSecrets the image imagePullSecrets of rdma shared device plugin imagePullSecrets: [] # - name: "image-pull-secret" @@ -138,16 +144,18 @@ spiderpool: deviceConfig: ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.periodicUpdateInterval periodic Update Interval periodicUpdateInterval: 300 - ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.resourcePrefix resource prefix - resourcePrefix: "spidernet.io" - ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.resourceName resource Name - resourceName: "hca_shared_devices" - ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.rdmaHcaMax rdma Hca Max - rdmaHcaMax: 500 - ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.vendors rdma device vendors, default to mellanox device - vendors: "15b3" - ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.deviceIDs rdma device IDs, default to mellanox device - deviceIDs: "1017" + ## @param rdma.rdmaSharedDevicePlugin.deviceConfig.configList configure the network card for the rdma resource + configList: [] + # [{ + # resourcePrefix: "spidernet.io", + # resourceName: "hca_shared_devices", + # rdmaHcaMax: 500, + # selectors: { + # "vendors": "15b3", + # "deviceIDs": "1017", + # "ifNames": ["enp11s0f0np0"] + # } + # }] ## @section multus parameters ## multus: @@ -207,6 +215,8 @@ spiderpool: installRdmaCNI: true ## @param plugins.installOvsCNI install ovs cni to each node installOvsCNI: true + ## @param plugins.installSriovCNI install sriov cni to each node + installSriovCNI: true ## @param plugins.installibSriovCNI install ib-sriov cni to each node installibSriovCNI: true ## @param plugins.installIpoibCNI install ipoib cni to each node @@ -221,7 +231,7 @@ spiderpool: ## @param plugins.image.digest the image digest of plugins digest: "" ## @param plugins.image.tag the image tag of plugins - tag: v0.9.2 + tag: 82659d90cae0d6a5169eac2869e47c989932d775 ## @param plugins.image.imagePullSecrets the image imagePullSecrets of plugins imagePullSecrets: [] ## @section clusterDefaultPool parameters @@ -270,7 +280,7 @@ spiderpool: ## @param spiderpoolAgent.image.digest the image digest of spiderpoolAgent, which takes preference over tag digest: "" ## @param spiderpoolAgent.image.tag the image tag of spiderpoolAgent, overrides the image tag whose default is the chart appVersion. - tag: v0.9.7 + tag: v1.0.0-rc2 ## @param spiderpoolAgent.image.imagePullSecrets the image imagePullSecrets of spiderpoolAgent imagePullSecrets: [] # - name: "image-pull-secret" @@ -350,6 +360,8 @@ spiderpool: prometheus: ## @param spiderpoolAgent.prometheus.enabled enable spiderpool agent to collect metrics enabled: false + ## @param spiderpoolAgent.prometheus.enabledRdmaMetric enable spiderpool agent to collect RDMA metrics + enabledRdmaMetric: false ## @param spiderpoolAgent.prometheus.enabledDebugMetric enable spiderpool agent to collect debug level metrics enabledDebugMetric: false ## @param spiderpoolAgent.prometheus.port the metrics port of spiderpool agent @@ -410,7 +422,7 @@ spiderpool: ## @param spiderpoolController.image.digest the image digest of spiderpoolController, which takes preference over tag digest: "" ## @param spiderpoolController.image.tag the image tag of spiderpoolController, overrides the image tag whose default is the chart appVersion. - tag: v0.9.7 + tag: v1.0.0-rc2 ## @param spiderpoolController.image.imagePullSecrets the image imagePullSecrets of spiderpoolController imagePullSecrets: [] # - name: "image-pull-secret" @@ -495,6 +507,43 @@ spiderpool: periodSeconds: 10 ## @param spiderpoolController.webhookPort the http port for spiderpoolController webhook webhookPort: 5722 + podResourceInject: + ## @param spiderpoolController.podResourceInject.enabled enable pod resource inject + enabled: true + ## @param spiderpoolController.podResourceInject.namespacesExclude exclude the namespaces of the pod resource inject + namespacesExclude: + - insight-system + - mcamel-system + - amamba-system + - argocd + - baize-system + - ghippo-system + - gpu-operator + - dowl-system + - hwameistor + - insight-system + - kairship-system + - kangaroo-system + - kant-system + - kcollie-system + - kcoral-system + - kolm-system + - kpanda-system + - kubean-system + - local-path-storage + - metax + - mspider-system + - nvidia-gpu-operator + - skoala-system + - spidernet-system + - virtnest-system + - ipavo-system + - kube-system + - spiderpool + - metallb-system + - istio-system + ## @param spiderpoolController.podResourceInject.namespacesInclude include the namespaces of the pod resource inject, empty means all namespaces but exclude the namespaces in namespacesExclude, not empty means only include the namespaces in namespacesInclude + namespacesInclude: [] prometheus: ## @param spiderpoolController.prometheus.enabled enable spiderpool Controller to collect metrics enabled: false @@ -541,7 +590,7 @@ spiderpool: ## for certmanager method certmanager: ## @param spiderpoolController.tls.certmanager.certValidityDuration generated certificates validity duration in days for 'certmanager' method - certValidityDuration: 365 + certValidityDuration: 36500 ## @param spiderpoolController.tls.certmanager.issuerName issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. issuerName: "" ## @param spiderpoolController.tls.certmanager.extraDnsNames extra DNS names added to certificate when it's auto generated @@ -568,6 +617,9 @@ spiderpool: extraIpAddresses: [] ## @param spiderpoolController.tls.auto.extraDnsNames extra DNS names of server cert for auto method extraDnsNames: [] + cleanup: + ## @param spiderpoolController.cleanup.enable clean up resources when helm uninstall + enable: true ## @section spiderpoolInit parameters ## spiderpoolInit: @@ -585,7 +637,7 @@ spiderpool: ## @param spiderpoolInit.image.digest the image digest of spiderpoolInit, which takes preference over tag digest: "" ## @param spiderpoolInit.image.tag the image tag of spiderpoolInit, overrides the image tag whose default is the chart appVersion. - tag: v0.9.7 + tag: v1.0.0-rc2 ## @param spiderpoolInit.image.imagePullSecrets the image imagePullSecrets of spiderpoolInit imagePullSecrets: [] # - name: "image-pull-secret" @@ -623,8 +675,6 @@ spiderpool: resourcePrefix: "spidernet.io" ## @param sriov.priorityClassName the priority Class Name priorityClassName: "system-node-critical" - ## @param sriov.enableAdmissionController enable Admission Controller - enableAdmissionController: false resources: limits: ## @param sriov.resources.limits.cpu the cpu limit @@ -636,6 +686,21 @@ spiderpool: cpu: 100m ## @param sriov.resources.requests.memory the memory requests memory: 128Mi + operatorConfig: + ## @param sriov.operatorConfig.enableInjector Flag to control whether the network resource injector webhook shall be deployed + enableInjector: false + ## @param sriov.operatorConfig.enableOperatorWebhook Flag to control whether the operator admission controller webhook shall be deployed + enableOperatorWebhook: true + configDaemonNodeSelector: + ## @skip sriov.operatorConfig.configDaemonNodeSelector.configDaemonNodeSelector.kubernetes.io/os + ## @skip sriov.operatorConfig.configDaemonNodeSelector.kubernetes.io/os + kubernetes.io/os: "linux" + ## @param sriov.operatorConfig.logLevel Flag to control the log verbose level of the operator + logLevel: 2 + ## @param sriov.operatorConfig.disableDrain Flag to disable nodes drain during debugging + disableDrain: true + ## @param sriov.operatorConfig.configurationMode Flag to enable the sriov-network-config-daemon to use a systemd service to configure SR-IOV devices on boot + configurationMode: daemon image: ## @param sriov.image.registry registry for all images registry: ghcr.io @@ -647,36 +712,108 @@ spiderpool: operator: ## @param sriov.image.operator.repository the image repository - repository: k8snetworkplumbingwg/sriov-network-operator + repository: spidernet-io/sriov-network-operator ## @param sriov.image.operator.tag the image tag - tag: v1.2.0 + tag: v1.3.0 sriovConfigDaemon: ## @param sriov.image.sriovConfigDaemon.repository the image repository - repository: k8snetworkplumbingwg/sriov-network-operator-config-daemon + repository: spidernet-io/sriov-network-operator-config-daemon ## @param sriov.image.sriovConfigDaemon.tag the image tag - tag: v1.2.0 - sriovCni: - ## @param sriov.image.sriovCni.repository the image repository - repository: k8snetworkplumbingwg/sriov-cni - ## @param sriov.image.sriovCni.tag the image tag - tag: v2.7.0 - ibSriovCni: - ## @param sriov.image.ibSriovCni.repository the image repository - repository: k8snetworkplumbingwg/ib-sriov-cni - ## @param sriov.image.ibSriovCni.tag the image tag - tag: v1.0.2 + tag: v1.3.0 sriovDevicePlugin: ## @param sriov.image.sriovDevicePlugin.repository the image repository repository: k8snetworkplumbingwg/sriov-network-device-plugin ## @param sriov.image.sriovDevicePlugin.tag the image tag - tag: v3.5.1 + tag: v3.7.0 resourcesInjector: ## @param sriov.image.resourcesInjector.repository the image repository repository: k8snetworkplumbingwg/network-resources-injector ## @param sriov.image.resourcesInjector.tag the image tag - tag: v1.5 + tag: v1.6.0 webhook: ## @param sriov.image.webhook.repository the image repository repository: k8snetworkplumbingwg/sriov-network-operator-webhook ## @param sriov.image.webhook.tag the image tag - tag: v1.2.0 + tag: v1.3.0 + ## TLS configuration for operator webhook + webhooktls: + ## @param sriov.webhooktls.method the method for generating TLS certificates. [ provided , certmanager , auto] + ## - provided: provide all certificates by helm options + ## - certmanager: This method use cert-manager to generate & rotate certificates. + ## - auto: Auto generate cert. + method: auto + ## @param sriov.webhooktls.secretName the secret name for storing TLS certificates + secretName: "sriov-operator-webhook" + ## @param sriov.webhooktls.serviceName the service name of webhook. Do not modify this !!! + serviceName: "operator-webhook-service" + ## for certmanager method + certmanager: + ## @param sriov.webhooktls.certmanager.certValidityDuration generated certificates validity duration in days for 'certmanager' method + certValidityDuration: 365 + ## @param sriov.webhooktls.certmanager.issuerName issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. + issuerName: "" + ## @param sriov.webhooktls.certmanager.extraDnsNames extra DNS names added to certificate when it's auto generated + extraDnsNames: [] + ## @param sriov.webhooktls.certmanager.extraIPAddresses extra IP addresses added to certificate when it's auto generated + extraIPAddresses: [] + ## for provided method + provided: + ## @param sriov.webhooktls.provided.tlsCert encoded tls certificate for provided method + ## @param sriov.webhooktls.provided.tlsKey encoded tls key for provided method + ## @param sriov.webhooktls.provided.tlsCa encoded tls CA for provided method + tlsCert: "" + tlsKey: "" + tlsCa: "" + ## for auto method + auto: + ## @param sriov.webhooktls.auto.caExpiration ca expiration for auto method + # in day , default 200 years + caExpiration: '73000' + ## @param sriov.webhooktls.auto.certExpiration server cert expiration for auto method + # in day, default 200 years + certExpiration: '73000' + ## @param sriov.webhooktls.auto.extraIpAddresses extra IP addresses of server certificate for auto method + extraIpAddresses: [] + ## @param sriov.webhooktls.auto.extraDnsNames extra DNS names of server cert for auto method + extraDnsNames: [] + ## TLS configuration for injector webhook + injectortls: + ## @param sriov.injectortls.method the method for generating TLS certificates. [ provided , certmanager , auto] + ## - provided: provide all certificates by helm options + ## - certmanager: This method use cert-manager to generate & rotate certificates. + ## - auto: Auto generate cert. + method: auto + ## @param sriov.injectortls.secretName the secret name for storing TLS certificates + secretName: "sriov-injector" + ## @param sriov.injectortls.serviceName the service name of webhook. Do not modify this !!! + serviceName: "network-resources-injector-service" + ## for certmanager method + certmanager: + ## @param sriov.injectortls.certmanager.certValidityDuration generated certificates validity duration in days for 'certmanager' method + certValidityDuration: 36500 + ## @param sriov.injectortls.certmanager.issuerName issuer name of cert manager 'certmanager'. If not specified, a CA issuer will be created. + issuerName: "" + ## @param sriov.injectortls.certmanager.extraDnsNames extra DNS names added to certificate when it's auto generated + extraDnsNames: [] + ## @param sriov.injectortls.certmanager.extraIPAddresses extra IP addresses added to certificate when it's auto generated + extraIPAddresses: [] + ## for provided method + provided: + ## @param sriov.injectortls.provided.tlsCert encoded tls certificate for provided method + ## @param sriov.injectortls.provided.tlsKey encoded tls key for provided method + ## @param sriov.injectortls.provided.tlsCa encoded tls CA for provided method + tlsCert: "" + tlsKey: "" + tlsCa: "" + ## for auto method + auto: + ## @param sriov.injectortls.auto.caExpiration ca expiration for auto method + # in day , default 200 years + caExpiration: '73000' + ## @param sriov.injectortls.auto.certExpiration server cert expiration for auto method + # in day, default 200 years + certExpiration: '73000' + ## @param sriov.injectortls.auto.extraIpAddresses extra IP addresses of server certificate for auto method + extraIpAddresses: [] + ## @param sriov.injectortls.auto.extraDnsNames extra DNS names of server cert for auto method + extraDnsNames: []