Network Operator API reference v1alpha1

Packages:

mellanox.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the mellanox.com v1alpha1 API group

Resource Types:

AppliedState

(Appears on: HostDeviceNetworkStatus, NicClusterPolicyStatus)

AppliedState defines a finer-grained view of the observed state of NicClusterPolicy

Field

Description

name string

Name of the deployed component this state refers to

state State

The state of the deployed component. (“ready”, “notReady”, “ignore”, “error”)

message string

Message is a human readable message indicating details about why the state is in this condition

ConfigMapNameReference

(Appears on: OFEDDriverSpec)

ConfigMapNameReference references a config map in a specific namespace. The namespace must be specified at the point of use.

Field

Description

name string

Name of the ConfigMap

DOCATelemetryServiceConfig

(Appears on: DOCATelemetryServiceSpec)

DOCATelemetryServiceConfig contains configuration for the DOCATelemetryService.

Field

Description

fromConfigMap string

(Optional) FromConfigMap sets the configMap the DOCATelemetryService gets its configuration from. The ConfigMap must be in the same namespace as the NICClusterPolicy.

DOCATelemetryServiceSpec

(Appears on: NicClusterPolicySpec)

DOCATelemetryServiceSpec is the configuration for DOCA Telemetry Service.

Field

Description

ImageSpec ImageSpec

Image information for DOCA Telemetry Service

config DOCATelemetryServiceConfig

(Optional) Config contains custom config for the DOCATelemetryService. If set no default config will be deployed.

DevicePluginSpec

(Appears on: NicClusterPolicySpec)

DevicePluginSpec describes configuration options for device plugin 1. Image information for device plugin 2. Device plugin configuration

Field

Description

ImageSpecWithConfig ImageSpecWithConfig

Image information for the device plugin and optional configuration

useCdi bool

Enables use of container device interface (CDI) NOTE: NVIDIA Network Operator does not configure container runtime to enable CDI.

DrainSpec

(Appears on: DriverUpgradePolicySpec)

DrainSpec describes configuration for node drain during automatic upgrade

Field

Description

enable bool

(Optional) Enable indicates if node draining is allowed during upgrade

force bool

(Optional) Force indicates if force draining is allowed

podSelector string

(Optional) PodSelector specifies a label selector to filter pods on the node that need to be drained For more details on label selectors, see: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

timeoutSeconds int

(Optional) TimeoutSecond specifies the length of time in seconds to wait before giving up drain, zero means infinite

deleteEmptyDir bool

(Optional) DeleteEmptyDir indicates if should continue even if there are pods using emptyDir (local data that will be deleted when the node is drained)

DriverUpgradePolicySpec

(Appears on: OFEDDriverSpec)

DriverUpgradePolicySpec describes policy configuration for automatic upgrades

Field

Description

autoUpgrade bool

(Optional) AutoUpgrade is a global switch for automatic upgrade feature if set to false all other options are ignored

maxParallelUpgrades int

(Optional) MaxParallelUpgrades indicates how many nodes can be upgraded in parallel 0 means no limit, all nodes will be upgraded in parallel

waitForCompletion WaitForCompletionSpec

The configuration for waiting on pods completions

drain DrainSpec

The configuration for node drain during automatic upgrade

safeLoad bool

(Optional) SafeLoad turn on safe driver loading (cordon and drain the node before loading the driver)

HostDeviceNetwork

HostDeviceNetwork is the Schema for the hostdevicenetworks API

Field

Description

metadata Kubernetes meta/v1.Object Meta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec HostDeviceNetworkSpec

Defines the desired state of HostDeviceNetwork

status HostDeviceNetworkStatus

Defines the observed state of HostDeviceNetwork

HostDeviceNetworkSpec

(Appears on: HostDeviceNetwork)

HostDeviceNetworkSpec defines the desired state of HostDeviceNetwork

Field

Description

networkNamespace string

Namespace of the NetworkAttachmentDefinition custom resource

resourceName string

Host device resource pool name

ipam string

IPAM configuration to be used for this network

HostDeviceNetworkStatus

(Appears on: HostDeviceNetwork)

HostDeviceNetworkStatus defines the observed state of HostDeviceNetwork

Field

Description

state State

Reflects the state of the HostDeviceNetwork

hostDeviceNetworkAttachmentDef string

Network attachment definition generated from HostDeviceNetworkSpec

reason string

Informative string in case the observed state is error

appliedStates []AppliedState

AppliedStates provide a finer view of the observed state

IBKubernetesSpec

(Appears on: NicClusterPolicySpec)

IBKubernetesSpec describes configuration options for ib-kubernetes

Field

Description

ImageSpec ImageSpec

Image information for ib-kubernetes

periodicUpdateSeconds int

(Optional) Interval of updates in seconds

pKeyGUIDPoolRangeStart string

The first guid in the pool

pKeyGUIDPoolRangeEnd string

The last guid in the pool

ufmSecret string

Secret containing credentials to UFM service

IPoIBNetwork

IPoIBNetwork is the Schema for the ipoibnetworks API

Field

Description

metadata Kubernetes meta/v1.Object Meta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec IPoIBNetworkSpec

Defines the desired state of IPoIBNetwork

status IPoIBNetworkStatus

Defines the observed state of IPoIBNetwork

IPoIBNetworkSpec

(Appears on: IPoIBNetwork)

IPoIBNetworkSpec defines the desired state of IPoIBNetwork

Field

Description

networkNamespace string

Namespace of the NetworkAttachmentDefinition custom resource

master string

Name of the host interface to enslave. Defaults to default route interface

ipam string

IPAM configuration to be used for this network.

IPoIBNetworkStatus

(Appears on: IPoIBNetwork)

IPoIBNetworkStatus defines the observed state of IPoIBNetwork

Field

Description

state State

Reflects the state of the IPoIBNetwork

ipoibNetworkAttachmentDef string

Network attachment definition generated from IPoIBNetworkSpec

reason string

Informative string in case the observed state is error

ImageSpec

(Appears on: DOCATelemetryServiceSpec, IBKubernetesSpec, ImageSpecWithConfig, NICFeatureDiscoverySpec, NVIPAMSpec, OFEDDriverSpec, SecondaryNetworkSpec)

ImageSpec Contains container image specifications

Field

Description

image string

Name of the image

repository string

Address of the registry that stores the image

version string

Version of the image to use

imagePullSecrets []string

(Optional) ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling the image

containerResources []ResourceRequirements

ResourceRequirements describes the compute resource requirements

ImageSpecWithConfig

(Appears on: DevicePluginSpec, MultusSpec)

ImageSpecWithConfig Contains ImageSpec and optional configuration

Field

Description

ImageSpec ImageSpec

Image information for the component

config string

Configuration for the component as a string

MacvlanNetwork

MacvlanNetwork is the Schema for the macvlannetworks API

Field

Description

metadata Kubernetes meta/v1.Object Meta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec MacvlanNetworkSpec

Defines the desired state of MacvlanNetworkSpec

status MacvlanNetworkStatus

Defines the observed state of MacvlanNetwork

MacvlanNetworkSpec

(Appears on: MacvlanNetwork)

MacvlanNetworkSpec defines the desired state of MacvlanNetwork

Field

Description

networkNamespace string

Namespace of the NetworkAttachmentDefinition custom resource

master string

Name of the host interface to enslave. Defaults to default route interface

mode string

Mode of interface one of “bridge”, “private”, “vepa”, “passthru”

mtu int

MTU of interface to the specified value. 0 for master’s MTU

ipam string

IPAM configuration to be used for this network.

MacvlanNetworkStatus

(Appears on: MacvlanNetwork)

MacvlanNetworkStatus defines the observed state of MacvlanNetwork

Field

Description

state State

Reflects the state of the MacvlanNetwork

macvlanNetworkAttachmentDef string

Network attachment definition generated from MacvlanNetworkSpec

reason string

Informative string in case the observed state is error

MultusSpec

(Appears on: SecondaryNetworkSpec)

MultusSpec describes configuration options for Multus CNI 1. Image information for Multus CNI 2. Multus CNI config if config is missing or empty then multus config will be automatically generated from the CNI configuration file of the master plugin (the first file in lexicographical order in cni-conf-dir)

Field

Description

ImageSpecWithConfig ImageSpecWithConfig

Image information for Multus and optional configuration

NICFeatureDiscoverySpec

(Appears on: NicClusterPolicySpec)

NICFeatureDiscoverySpec describes configuration options for nic-feature-discovery

Field

Description

ImageSpec ImageSpec

Image information for nic-feature-discovery

NVIPAMSpec

(Appears on: NicClusterPolicySpec)

NVIPAMSpec describes configuration options for nv-ipam 1. Image information for nv-ipam 2. Configuration for nv-ipam

Field

Description

enableWebhook bool

Enable deployment of the validation webhook

ImageSpec ImageSpec

Image information for nv-ipam

NicClusterPolicy

NicClusterPolicy is the Schema for the nicclusterpolicies API

Field

Description

metadata Kubernetes meta/v1.Object Meta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec NicClusterPolicySpec

Defines the desired state of NicClusterPolicy

status NicClusterPolicyStatus

Defines the observed state of NicClusterPolicy

NicClusterPolicySpec

(Appears on: NicClusterPolicy)

NicClusterPolicySpec defines the desired state of NicClusterPolicy

Field

Description

ofedDriver OFEDDriverSpec

OFEDDriver is a specialized driver for NVIDIA NICs which can replace the inbox driver that comes with an OS. See https://network.nvidia.com/support/mlnx-ofed-matrix/

rdmaSharedDevicePlugin DevicePluginSpec

RdmaSharedDevicePlugin manages support IB and RoCE HCAs through the Kubernetes device plugin framework. The config field is a json representation of the RDMA shared device plugin configuration. See https://github.com/Mellanox/k8s-rdma-shared-dev-plugin

sriovDevicePlugin DevicePluginSpec

SriovDevicePlugin manages SRIOV through the Kubernetes device plugin framework. The config field is a json representation of the RDMA shared device plugin configuration. See https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin

ibKubernetes IBKubernetesSpec

IBKubernetes provides a daemon that works in conjunction with the SR-IOV Network Device Plugin. It acts on Kubernetes pod object changes and reads the pod’s network annotation. From there it fetches the corresponding network CRD and reads the PKey. This is done in order to add the newly generated GUID or the predefined GUID in the GUID field of the CRD. This is then passed in cni-args to that PKey for pods with mellanox.infiniband.app annotation. See: https://github.com/Mellanox/ib-kubernetes

secondaryNetwork SecondaryNetworkSpec

SecondaryNetwork Specifies components to deploy in order to facilitate a secondary network in Kubernetes. It consists of the following optionally deployed components: - Multus-CNI: Delegate CNI plugin to support secondary networks in Kubernetes - CNI plugins: Currently only containernetworking-plugins is supported - IPAM CNI: Currently only Whereabout IPAM CNI is supported as a part of the secondaryNetwork section. - IPoIB CNI: Allows the user to create IPoIB child link and move it to the pod

nvIpam NVIPAMSpec

NvIpam is an IPAM provider that dynamically assigns IP addresses with speed and performance in mind. Note: NvIPam requires certificate management e.g. cert-manager or OpenShift cert management. See https://github.com/Mellanox/nvidia-k8s-ipam

nicFeatureDiscovery NICFeatureDiscoverySpec

NicFeatureDiscovery works with NodeFeatureDiscovery to expose information about NVIDIA NICs. https://github.com/Mellanox/nic-feature-discovery

docaTelemetryService DOCATelemetryServiceSpec

DOCATelemetryService exposes telemetry from NVIDIA networking components to prometheus. See: https://docs.nvidia.com/doca/sdk/nvidia+doca+telemetry+service+guide/index.html

nodeAffinity Kubernetes core/v1.NodeAffinity

NodeAffinity rules to inject to the DaemonSets objects that are managed by the operator

tolerations []Kubernetes core/v1.Toleration

Tolerations to inject to the DaemonSets objects that are managed by the operator

NicClusterPolicyStatus

(Appears on: NicClusterPolicy)

NicClusterPolicyStatus defines the observed state of NicClusterPolicy

Field

Description

state State

Reflects the current state of the cluster policy

reason string

Informative string in case the observed state is error

appliedStates []AppliedState

AppliedStates provide a finer view of the observed state

OFEDDriverSpec

(Appears on: NicClusterPolicySpec)

OFEDDriverSpec describes configuration options for OFED driver

Field

Description

ImageSpec ImageSpec

Image information for ofed driver container

startupProbe PodProbeSpec

Pod startup probe settings

livenessProbe PodProbeSpec

Pod liveness probe settings

readinessProbe PodProbeSpec

Pod readiness probe settings

env []Kubernetes core/v1.EnvVar

List of environment variables to set in the OFED container.

upgradePolicy DriverUpgradePolicySpec

Ofed auto-upgrade settings

certConfig ConfigMapNameReference

Optional: Custom TLS certificates configuration for driver container

repoConfig ConfigMapNameReference

Optional: Custom package repository configuration for OFED container

terminationGracePeriodSeconds int64

(Optional) TerminationGracePeriodSeconds specifies the length of time in seconds to wait before killing the OFED pod on termination

forcePrecompiled bool

(Optional) ForcePrecompiled specifies if only MOFED precompiled images are allowed If set to false and precompiled image does not exists, MOFED drivers will be compiled on Nodes If set to true and precompiled image does not exists, OFED state will be Error.

PodProbeSpec

(Appears on: OFEDDriverSpec)

PodProbeSpec describes a pod probe.

Field

Description

initialDelaySeconds int

Number of seconds after the container has started before the probe is initiated

periodSeconds int

How often (in seconds) to perform the probe

ResourceRequirements

(Appears on: ImageSpec)

ResourceRequirements describes the compute resource requirements.

Field

Description

name string

Name of the container the requirements are set for

limits Kubernetes core/v1.ResourceList

(Optional) Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requests Kubernetes core/v1.ResourceList

(Optional) Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

SecondaryNetworkSpec

(Appears on: NicClusterPolicySpec)

SecondaryNetworkSpec describes configuration options for secondary network

Field

Description

multus MultusSpec

Image and configuration information for multus

cniPlugins ImageSpec

Image information for CNI plugins

ipoib ImageSpec

Image information for IPoIB CNI

ipamPlugin ImageSpec

Image information for IPAM plugin

State (string alias)

(Appears on: AppliedState, HostDeviceNetworkStatus, IPoIBNetworkStatus, MacvlanNetworkStatus, NicClusterPolicyStatus)

State represents reconcile state of the system.

WaitForCompletionSpec

(Appears on: DriverUpgradePolicySpec)

WaitForCompletionSpec describes the configuration for waiting on pods completions

Field

Description

podSelector string

(Optional) PodSelector specifies a label selector for the pods to wait for completion For more details on label selectors, see: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

timeoutSeconds int

(Optional) TimeoutSecond specifies the length of time in seconds to wait before giving up on pod termination, zero means infinite