Deployment with NFD Operator
Table of contents
The Node Feature Discovery Operator automates installation, configuration and updates of NFD using a specific NodeFeatureDiscovery custom resource. This also provides good support for managing NFD as a dependency of other operators.
Deployment
Deployment using the Node Feature Discovery Operator is recommended to be done via operatorhub.io.
NOTE: The latest NFD Operator release on operatorhub.io (v0.6.0, 2023) does not work with current NFD versions. It starts nfd-worker with the
-serverflag (removed in NFD v0.17), probes nfd-master withgrpc_health_probe(not shipped since NFD v0.15), and does not install thenfd.k8s-sigs.ioNodeFeature CRDs or RBAC that current NFD requires. Its own deployment also references the sidecar imagegcr.io/kubebuilder/kube-rbac-proxy:v0.8.0, which is no longer available, so the operator pod never becomes ready. Until a new operator release is published, deploy NFD with Helm or Kustomize. With the v0.6.0 operator, setspec.operand.imageto an NFD release it supports, e.g.registry.k8s.io/nfd/node-feature-discovery:v0.12.1-minimal.
- You need to have OLM installed. If you don't, take a look at the latest release for detailed instructions.
-
Install the operator:
kubectl create -f https://operatorhub.io/install/nfd-operator.yaml -
Create
NodeFeatureDiscoveryobject (innfdnamespace here):cat << EOF | kubectl apply -f - apiVersion: v1 kind: Namespace metadata: name: nfd --- apiVersion: nfd.kubernetes.io/v1 kind: NodeFeatureDiscovery metadata: name: my-nfd-deployment namespace: nfd spec: operand: image: gcr.io/k8s-staging-nfd/node-feature-discovery:master imagePullPolicy: IfNotPresent EOF
Uninstallation
If you followed the deployment instructions above you can uninstall NFD with:
kubectl -n nfd delete NodeFeatureDiscovery my-nfd-deployment
Optionally, you can also remove the namespace:
kubectl delete ns nfd
See the node-feature-discovery-operator and OLM project documentation for instructions for uninstalling the operator and operator lifecycle manager, respectively.