From a628dcbc0789e864815f1c5d52222a6a81e1db45 Mon Sep 17 00:00:00 2001 From: Feruzjon Muyassarov Date: Thu, 19 Oct 2023 10:38:05 +0300 Subject: [PATCH] docs: add basic README for each Helm chart on their own directory This commit adds basic documentation for each Helm chart so that basic information is available to the user who are trying to install any of those plugins via artifacthub.io registry. Signed-off-by: Feruzjon Muyassarov --- deployment/helm/balloons/README.md | 43 ++++++++++++ deployment/helm/memory-qos/README.md | 43 ++++++++++++ deployment/helm/memtierd/README.md | 43 ++++++++++++ deployment/helm/topology-aware/README.md | 44 ++++++++++++ docs/resource-policy/installation.md | 86 +++--------------------- 5 files changed, 183 insertions(+), 76 deletions(-) create mode 100644 deployment/helm/balloons/README.md create mode 100644 deployment/helm/memory-qos/README.md create mode 100644 deployment/helm/memtierd/README.md create mode 100644 deployment/helm/topology-aware/README.md diff --git a/deployment/helm/balloons/README.md b/deployment/helm/balloons/README.md new file mode 100644 index 000000000..f01e17a26 --- /dev/null +++ b/deployment/helm/balloons/README.md @@ -0,0 +1,43 @@ +# Introduction + +This chart deploys balloons Node Resource Interface (NRI) plugin. The balloons NRI resource +policy plugin implements workload placement into “balloons” that are disjoint CPU pools. + +# Installing the Chart + +Path to the chart: `nri-resource-policy-balloons` + +``` +helm repo add nri-plugins https://containers.github.io/nri-plugins +helm install my-balloons nri-plugins/nri-resource-policy-balloons --namespace kube-system +``` + +The command above deploys balloons NRI plugin on the Kubernetes cluster within the +`kube-system` namespace with default configuration. + +# Uninstalling the Chart + +To uninstall the balloons plugin run the following command: + +``` +helm delete my-balloons --namespace kube-system +``` + +# Configuration options + +The tables below present an overview of the parameters available for users to customize with their own values, +along with the default values. + +| Name | Default | Description | +| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | +| `image.name` | [ghcr.io/containers/nri-plugins/nri-resource-policy-balloons](ghcr.io/containers/nri-plugins/nri-resource-policy-balloons) | container image name | +| `image.tag` | unstable | container image tag | +| `image.pullPolicy` | Always | image pull policy | +| `resources.cpu` | 500m | cpu resources for the Pod | +| `resources.memory` | 512Mi | memory qouta for the Pod | +| `hostPort` | 8891 | metrics port to expose on the host | +| `config` |
ReservedResources:
cpu: 750m
| plugin configuration data | +| `nri.patchRuntimeConfig` | false | enable NRI in containerd or CRI-O | +| `initImage.name` | [ghcr.io/containers/nri-plugins/config-manager](ghcr.io/containers/nri-plugins/config-manager) | init container image name | +| `initImage.tag` | unstable | init container image tag | +| `initImage.pullPolicy` | Always | init container image pull policy | diff --git a/deployment/helm/memory-qos/README.md b/deployment/helm/memory-qos/README.md new file mode 100644 index 000000000..aa408c408 --- /dev/null +++ b/deployment/helm/memory-qos/README.md @@ -0,0 +1,43 @@ +# Introduction + +This chart deploys memory-qos Node Resource Interface (NRI) plugin. The memory-qos NRI plugin +adds two methods for controlling cgroups v2 memory.* parameters: QoS class and direct memory +annotations. + +# Installing the Chart + +Path to the chart: `nri-memory-qos`. + +``` +helm repo add nri-plugins https://containers.github.io/nri-plugins +helm install my-memory-qos nri-plugins/nri-memory-qos --namespace kube-system +``` + +The command above deploys memtierd NRI plugin on the Kubernetes cluster within the +`kube-system` namespace with default configuration. + +# Uninstalling the Chart + +To uninstall the memory-qos plugin run the following command: + +``` +helm delete my-memory-qos --namespace kube-system +``` + +# Configuration options + +The tables below present an overview of the parameters available for users to customize with their own values, +along with the default values. + +| Name | Default | Description | +| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | +| `image.name` | [ghcr.io/containers/nri-plugins/nri-memory-qos](ghcr.io/containers/nri-plugins/nri-memory-qos) | container image name | +| `image.tag` | unstable | container image tag | +| `image.pullPolicy` | Always | image pull policy | +| `resources.cpu` | 10m | cpu resources for the Pod | +| `resources.memory` | 100Mi | memory qouta for the | +| `nri.patchRuntimeConfig` | false | enable NRI in containerd or CRI-O | +| `initImage.name` | [ghcr.io/containers/nri-plugins/config-manager](ghcr.io/containers/nri-plugins/config-manager) | init container image name | +| `initImage.tag` | unstable | init container image tag | +| `initImage.pullPolicy` | Always | init container image pull policy | + diff --git a/deployment/helm/memtierd/README.md b/deployment/helm/memtierd/README.md new file mode 100644 index 000000000..ff138bf34 --- /dev/null +++ b/deployment/helm/memtierd/README.md @@ -0,0 +1,43 @@ +# Introduction + +This chart deploys memtierd Node Resource Interface (NRI) plugin. The memtierd NRI plugin enables +managing workloads with Memtierd in Kubernetes. + +# Installing the Chart + +Path to the chart: `nri-memtierd`. + +``` +helm repo add nri-plugins https://containers.github.io/nri-plugins +helm install my-memtierd nri-plugins/nri-memtierd --namespace kube-system +``` + +The command above deploys memtierd NRI plugin on the Kubernetes cluster within the +`kube-system` namespace with default configuration. + +# Uninstalling the Chart + +To uninstall the memtierd plugin run the following command: + +``` +helm delete my-memtierd --namespace kube-system +``` + +# Configuration options + +The tables below present an overview of the parameters available for users to customize with their own values, +along with the default values. + +| Name | Default | Description | +| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | +| `image.name` | [ghcr.io/containers/nri-plugins/nri-memtierd](ghcr.io/containers/nri-plugins/nri-memtierd) | container image name | +| `image.tag` | unstable | container image tag | +| `image.pullPolicy` | Always | image pull policy | +| `resources.cpu` | 250m | cpu resources for the Pod | +| `resources.memory` | 100Mi | memory qouta for the | +| `outputDir` | empty string | host directory for memtierd.output files | +| `nri.patchRuntimeConfig` | false | enable NRI in containerd or CRI-O | +| `initImage.name` | [ghcr.io/containers/nri-plugins/config-manager](ghcr.io/containers/nri-plugins/config-manager) | init container image name | +| `initImage.tag` | unstable | init container image tag | +| `initImage.pullPolicy` | Always | init container image pull policy | + diff --git a/deployment/helm/topology-aware/README.md b/deployment/helm/topology-aware/README.md new file mode 100644 index 000000000..fab05c4d6 --- /dev/null +++ b/deployment/helm/topology-aware/README.md @@ -0,0 +1,44 @@ +# Introduction + +This chart deploys topology-aware Node Resource Interface (NRI) plugin. Topology-aware NRI +resource policy plugin is a NRI plugin that will apply hardware-aware resource allocation +policies to the containers running in the system. + +# Installing the Chart + +Path to the chart: `nri-resource-policy-topology-aware`. + +``` +helm repo add nri-plugins https://containers.github.io/nri-plugins +helm install my-topology-aware nri-plugins/nri-resource-policy-topology-aware --namespace kube-system +``` + +The command above deploys topology-aware NRI plugin on the Kubernetes cluster within the +`kube-system` namespace with default configuration. + +# Uninstalling the Chart + +To uninstall the topology-aware plugin run the following command: + +``` +helm delete my-topology-aware --namespace kube-system +``` + +# Configuration options + +The tables below present an overview of the parameters available for users to customize with their own values, +along with the default values. + +| Name | Default | Description | +| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | +| `image.name` | [ghcr.io/containers/nri-plugins/nri-resource-policy-topology-aware](ghcr.io/containers/nri-plugins/nri-resource-policy-topology-aware) | container image name | +| `image.tag` | unstable | container image tag | +| `image.pullPolicy` | Always | image pull policy | +| `resources.cpu` | 500m | cpu resources for the Pod | +| `resources.memory` | 512Mi | memory qouta for the Pod | +| `hostPort` | 8891 | metrics port to expose on the host | +| `config` |
ReservedResources:
cpu: 750m
| plugin configuration data | +| `nri.patchRuntimeConfig` | false | enable NRI in containerd or CRI-O | +| `initImage.name` | [ghcr.io/containers/nri-plugins/config-manager](ghcr.io/containers/nri-plugins/config-manager) | init container image name | +| `initImage.tag` | unstable | init container image tag | +| `initImage.pullPolicy` | Always | init container image pull policy | diff --git a/docs/resource-policy/installation.md b/docs/resource-policy/installation.md index fa2db3c17..a0f5237cd 100644 --- a/docs/resource-policy/installation.md +++ b/docs/resource-policy/installation.md @@ -62,7 +62,7 @@ following components: DaemonSet, ConfigMap, CustomResourceDefinition, and RBAC-r ``` 1. Install the plugin. Replace release version with the desired version. If you wish to - provide custom values to the Helm chart, refer to the [table](#helm-parameters) below, + provide custom values to the Helm chart, refer to the [table](#available-parameters) below, which describes the available parameters that can be modified before installation. It's important to note that specifying the namespace (using `--namespace` or `-n`) is crucial when installing the Helm chart. If no namespace is specified, the manifests @@ -76,7 +76,7 @@ following components: DaemonSet, ConfigMap, CustomResourceDefinition, and RBAC-r flexibility to choose any name when adding it. However, it's important to note that `nri-resource-policy-topology-aware`, which serves as the path to the chart, must accurately reflect the actual name of the chart. You - can find the path to each chart in the [helm parameters table](#helm-parameters). + can find the path to each chart in the [helm parameters table](#available-parameters). 1. Verify the status of the daemonset to ensure that the plugin is running successfully @@ -100,91 +100,25 @@ helm uninstall topology-aware --namespace kube-system Note: this removes DaemonSet, ConfigMap, CustomResourceDefinition, and RBAC-related objects associated with the chart. -### Helm parameters - -The tables below present an overview of the parameters available for users to customize with their own values, -along with the default values, for the Topology-aware and Balloons plugins Helm charts. - -#### Topology-aware - -Path to the chart: `nri-resource-policy-topology-aware` - -| Name | Default | Description | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | -| `image.name` | [ghcr.io/containers/nri-plugins/nri-resource-policy-topology-aware](ghcr.io/containers/nri-plugins/nri-resource-policy-topology-aware) | container image name | -| `image.tag` | unstable | container image tag | -| `image.pullPolicy` | Always | image pull policy | -| `resources.cpu` | 500m | cpu resources for the Pod | -| `resources.memory` | 512Mi | memory qouta for the Pod | -| `hostPort` | 8891 | metrics port to expose on the host | -| `config` |
ReservedResources:
cpu: 750m
| plugin configuration data | -| `nri.patchRuntimeConfig` | false | enable NRI in containerd or CRI-O | -| `initImage.name` | [ghcr.io/containers/nri-plugins/config-manager](ghcr.io/containers/nri-plugins/config-manager) | init container image name | -| `initImage.tag` | unstable | init container image tag | -| `initImage.pullPolicy` | Always | init container image pull policy | - -#### Balloons - -Path to the chart: `nri-resource-policy-balloons` - -| Name | Default | Description | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | -| `image.name` | [ghcr.io/containers/nri-plugins/nri-resource-policy-balloons](ghcr.io/containers/nri-plugins/nri-resource-policy-balloons) | container image name | -| `image.tag` | unstable | container image tag | -| `image.pullPolicy` | Always | image pull policy | -| `resources.cpu` | 500m | cpu resources for the Pod | -| `resources.memory` | 512Mi | memory qouta for the Pod | -| `hostPort` | 8891 | metrics port to expose on the host | -| `config` |
ReservedResources:
cpu: 750m
| plugin configuration data | -| `nri.patchRuntimeConfig` | false | enable NRI in containerd or CRI-O | -| `initImage.name` | [ghcr.io/containers/nri-plugins/config-manager](ghcr.io/containers/nri-plugins/config-manager) | init container image name | -| `initImage.tag` | unstable | init container image tag | -| `initImage.pullPolicy` | Always | init container image pull policy | - -#### Memtierd - -Path to the chart: `nri-memtierd` - -| Name | Default | Description | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | -| `image.name` | [ghcr.io/containers/nri-plugins/nri-memtierd](ghcr.io/containers/nri-plugins/nri-memtierd) | container image name | -| `image.tag` | unstable | container image tag | -| `image.pullPolicy` | Always | image pull policy | -| `resources.cpu` | 250m | cpu resources for the Pod | -| `resources.memory` | 100Mi | memory qouta for the | -| `outputDir` | empty string | host directory for memtierd.output files | -| `nri.patchRuntimeConfig` | false | enable NRI in containerd or CRI-O | -| `initImage.name` | [ghcr.io/containers/nri-plugins/config-manager](ghcr.io/containers/nri-plugins/config-manager) | init container image name | -| `initImage.tag` | unstable | init container image tag | -| `initImage.pullPolicy` | Always | init container image pull policy | - - -#### Memory-qos - -Path to the chart: `nri-memory-qos` - -| Name | Default | Description | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | -| `image.name` | [ghcr.io/containers/nri-plugins/nri-memory-qos](ghcr.io/containers/nri-plugins/nri-memory-qos) | container image name | -| `image.tag` | unstable | container image tag | -| `image.pullPolicy` | Always | image pull policy | -| `resources.cpu` | 10m | cpu resources for the Pod | -| `resources.memory` | 100Mi | memory qouta for the | -| `nri.patchRuntimeConfig` | false | enable NRI in containerd or CRI-O | -| `initImage.name` | [ghcr.io/containers/nri-plugins/config-manager](ghcr.io/containers/nri-plugins/config-manager) | init container image name | -| `initImage.tag` | unstable | init container image tag | -| `initImage.pullPolicy` | Always | init container image pull policy | +## Available parameters +To know what are the available Helm configuration options for currently available Helm charts, you can check: +- [balloons parameters](../../deployment/helm/balloons/README.md) +- [memory-qos parameters](../../deployment/helm/memory-qos/README.md) +- [memtierd parameters](../../deployment/helm/memtierd/README.md) +- [topology-aware parameters](../../deployment/helm/topology-aware/README.md) ## Manual installation For the manual installation we will be using templating tool to generate Kubernetes YAML manifests. 1. Clone the project to your local machine + ```sh git clone https://github.com/containers/nri-plugins.git ``` 1. Navigate to the project directory + ```sh cd nri-plugins ```