Node Feature Discovery up version. (r8, dsr8).

Added the following pages for the NFD up version installation.
1. Install Node Feature Discovery (NFD) StarlingX Application
2. Uninstall Node Feature Discovery (NFD) StarlingX Application
3. Removed the page "Run the node feature discovery helm chart" from the repo and index as well.

Change-Id: I9beda664b01a0d8644cd7683f5045d6f275cf5cb
Signed-off-by: Dinesh Neelapu <dinesh.neelapu@windriver.com>
This commit is contained in:
Dinesh Neelapu 2023-08-07 06:49:51 +00:00
parent 5a35c349cf
commit 46dace05d5
5 changed files with 135 additions and 88 deletions

View File

@ -364,13 +364,14 @@ Host hardware management
-----------------------------------------
Run the node feature discovery helm chart
Node Feature Discovery |prod| Application
-----------------------------------------
.. toctree::
:maxdepth: 1
running-the-node-feature-discovery-helm-chart
install-node-feature-discovery-nfd-starlingx-application-70f6f940bb4a
uninstall-node-feature-discovery-nfd-starlingx-application-a582bfdadfb8
-------------
Provision BMC

View File

@ -0,0 +1,101 @@
.. _install-node-feature-discovery-nfd-starlingx-application-70f6f940bb4a:
======================================================================
Install Node Feature Discovery (NFD) |prod| Application
======================================================================
Node Feature Discovery (NFD) detects hardware features available on each node
in a kubernetes cluster and advertises those features using Kubernetes node
labels. This procedure walks you through the process of installing the |NFD|
|prod| Application.
.. rubric:: |prereq|
Before attempting to install the |NFD| |prod| application, ensure that your
system meets the following requirements:
#. Ensure that you have Kubernetes version v1.24.4 installed. If not, follow
the steps to upgrade the Kubernetes components. For detailed instructions on
how to upgrade, see :ref:`manual-kubernetes-components-upgrade`.
#. If you have previously installed the |NFD| Helm Chart, you need to uninstall
it before proceeding with the new installation. To uninstall, use the
following command:
.. code-block:: none
helm uninstall node-feature-discovery -n <namespace>
Replace <namespace> with the namespace where you have the |NFD| Helm Chart
installed.
.. rubric:: |proc|
Follow these steps to install the |NFD| |prod| Application:
#. Locate the |NFD| |prod| App tarball in the
``/usr/local/share/applications/helm`` directory.
For example:
.. code-block:: none
/usr/local/share/applications/helm/node-feature-discovery-<version>.tgz
Replace <version> with the latest version number.
#. Upload the application using the following command.
.. code-block:: none
~(keystone_admin)]$ system application-upload /usr/local/share/applications/helm/node-feature-discovery-<version>.tgz
Replace <version> with the latest version number.
#. Verify that the |NFD| |prod| application has been uploaded successfully.
.. code-block:: none
~(keystone_admin)]$ system application-list
#. Apply the application using the following command.
.. code-block:: none
~(keystone_admin)]$ system application-apply node-feature-discovery
#. Monitor the status of the installation using one of the following commands.
.. code-block:: none
~(keystone_admin)]$ watch system application-list
OR
~(keystone_admin)]$ watch kubectl get pods -n node-feature-discovery
.. rubric:: |result|
After a successful installation, the |NFD| |prod| deploys as the follows:
- A worker pod is created for each node in the Kubernetes cluster. These worker
pods gather information about node features periodically and update the
labels associated with the nodes based on the detected features.
- Additionally, there is one master pod that gathers all the updated data from
worker pods and reporting it to Kubernetes for efficient feature management.
The |NFD| |prod| application is now installed on your system, and the hardware
features available on each node in the Kubernetes cluster will be detected and
advertised using Kubernetes node labels. You can check the labels using the
following command for any configuration:
.. code-block:: none
kubectl label node/<node's name> --list | grep "feature.node.kubernetes.io"
Replace <node's name> with the specific node name such as controller-0,
controller-1, and so on.

View File

@ -1,86 +0,0 @@
.. dea1561393939185
.. _running-the-node-feature-discovery-helm-chart:
=========================================
Run the Node Feature Discovery Helm Chart
=========================================
Node feature discovery detects hardware features available on each node in a
Kubernetes cluster, and advertises those features using Kubernetes node
labels.
An **stx-platform** helm repository containing platform related charts,
including the **node-feature-discovery** helm chart, is created
automatically once the system has been installed.
.. rubric:: |proc|
#. Confirm that the **stx-platform** is available.
.. code-block:: none
~(keystone_admin)$ helm repo list
NAME URL
stable https://kubernetes-charts.storage.googleapis.com
local http://127.0.0.1:8879/charts
starlingx http://127.0.0.1:8080/helm_charts/starlingx
stx-platform http://127.0.0.1:8080/helm_charts/stx-platform
The repository is created automatically after system installation has
completed. There may be a delay of a few minutes after a new install
before it is available.
#. Create a helm override file to specify custom values for any of the
following:
.. table::
:widths: auto
+--------------------+--------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
| Override Name | Description | Default |
+====================+====================================================================================================================+======================================================================================================================+
| image: | The docker image to use for the pods. | k8s.gcr.io/nfd/node-feature-discovery |
| repository: | | |
+--------------------+--------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
| worker: | The Kubernetes nodeSelector to use for the worker pods. | All nodes. |
| nodeSelector: | This is a key/value pair to match against node labels and select which nodes should run the node feature discovery.| Changing the {} to {foo: bar} will result in the worker pods only running on Kubernetes nodes labelled with foo:bar. |
| {} | | |
+--------------------+--------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
| fullnameOverride: | The base name to use for the Kubernetes resources (pods, daemonsets, etc.). | A blank entry here will result in the base name being "node-feature-discovery". |
+--------------------+--------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
For example, to set the base name to "nfd" and to run the worker pod only
on nodes with the "foo: bar" label:
.. code-block:: none
~(keystone_admin)$ cat <<EOF > /home/sysadmin/my-discovery-overrides.yaml
fullnameOverride: nfd
worker:
nodeSelector:
foo: bar
EOF
#. Run the node feature discover helm chart. It is recommended to run it in
the "kube-system" namespace so the pods run on the platform CPUs.
- To accept the default values, run :command:`helm` without specifying an
overrides file:
.. code-block:: none
~(keystone_admin)$ helm -n kube-system upgrade -i node-feature-discovery stx-platform/node-feature-discovery
- If you have defined default overrides in a yaml file, specify the
file when running :command:`helm`.
For example:
.. code-block:: none
~(keystone_admin)$ helm -n kube-system upgrade -i node-feature-discovery stx-platform/node-feature-discovery --values=/home/sysadmin/my-discovery-overrides.yaml
One worker pod is created per node, which runs once per minute to update
the node features.  One master pod gathers up all the data and reports it
to Kubernetes.

View File

@ -0,0 +1,30 @@
.. _uninstall-node-feature-discovery-nfd-starlingx-application-a582bfdadfb8:
======================================================================
Uninstall Node Feature Discovery (NFD) |prod| Application
======================================================================
Follow these steps to remove the Node Feature Discovery (NFD) |prod|
Application.
.. rubric:: |proc|
#. Remove |NFD| pods and resources using the following command:
.. code-block:: none
~(keystone_admin)]$ system application-remove node-feature-discovery
#. Remove |NFD| helm chart and application using the following command:
.. code-block:: none
~(keystone_admin)]$ system application-delete node-feature-discovery
After completion of the uninstallation process, the |NFD| application will be
completely removed from your system. All related pods, resources, and
configurations associated with |NFD| will no longer be present, ensuring a
clean removal of the application.

View File

@ -89,6 +89,7 @@
.. |NA| replace:: :abbr:`NA (Not Applicable)`
.. |NAT| replace:: :abbr:`NAT (Network Address Translation)`
.. |NF| replace:: :abbr:`NF (Network Function)`
.. |NFD| replace:: :abbr:`NFD (Node Feature Discovery)`
.. |NFs| replace:: :abbr:`NFs (Network Functions)`
.. |NFS| replace:: :abbr:`NFS (Network File System)`
.. |NIC| replace:: :abbr:`NIC (Network Interface Card)`