diff --git a/docs/containerd.md b/docs/containerd.md index c911a8df404..112c0fc1efb 100644 --- a/docs/containerd.md +++ b/docs/containerd.md @@ -130,3 +130,13 @@ containerd_registries_mirrors: [RuntimeClass]: https://kubernetes.io/docs/concepts/containers/runtime-class/ [runtime classes in containerd]: https://github.com/containerd/containerd/blob/main/docs/cri/config.md#runtime-classes [runtime-spec]: https://github.com/opencontainers/runtime-spec + +### Optional : NRI + +[Node Resource Interface](https://github.com/containerd/nri) (NRI) is disabled by default for the containerd. If you +are using contained version v1.7.0 or above, then you can enable it with the +following configuration: + +```yaml +nri_enabled: true +``` diff --git a/docs/cri-o.md b/docs/cri-o.md index 213c39a017e..2405697d30d 100644 --- a/docs/cri-o.md +++ b/docs/cri-o.md @@ -62,3 +62,13 @@ The `allowed_annotations` configures `crio.conf` accordingly. The `crio_remap_enable` configures the `/etc/subuid` and `/etc/subgid` files to add an entry for the **containers** user. By default, 16M uids and gids are reserved for user namespaces (256 pods * 65536 uids/gids) at the end of the uid/gid space. + +## Optional : NRI + +[Node Resource Interface](https://github.com/containerd/nri) (NRI) is disabled by default for the CRI-O. If you +are using CRI-O version v1.26.0 or above, then you can enable it with the +following configuration: + +```yaml +nri_enabled: true +``` diff --git a/roles/container-engine/containerd/defaults/main.yml b/roles/container-engine/containerd/defaults/main.yml index 9359e1aeb9a..05cfd95c189 100644 --- a/roles/container-engine/containerd/defaults/main.yml +++ b/roles/container-engine/containerd/defaults/main.yml @@ -64,9 +64,6 @@ containerd_enable_unprivileged_ports: false # If enabled it will allow non root users to use icmp sockets containerd_enable_unprivileged_icmp: false -# If enabled, it will activate the NRI support in containerd -containerd_nri_disable: true - containerd_cfg_dir: /etc/containerd # Extra config to be put in {{ containerd_cfg_dir }}/config.toml literally diff --git a/roles/container-engine/containerd/templates/config.toml.j2 b/roles/container-engine/containerd/templates/config.toml.j2 index ba107ee8bde..fc3ea477faa 100644 --- a/roles/container-engine/containerd/templates/config.toml.j2 +++ b/roles/container-engine/containerd/templates/config.toml.j2 @@ -78,8 +78,10 @@ oom_score = {{ containerd_oom_score }} {% endif %} {% endfor %} +{% if nri_enabled and containerd_version >= 1.7.0 %} [plugins."io.containerd.nri.v1.nri"] - disable = {{ containerd_nri_disable | default(true) | lower }} + disable = false +{% endif %} {% if containerd_extra_args is defined %} {{ containerd_extra_args }} diff --git a/roles/container-engine/cri-o/defaults/main.yml b/roles/container-engine/cri-o/defaults/main.yml index 053af20e66b..949ed69ed53 100644 --- a/roles/container-engine/cri-o/defaults/main.yml +++ b/roles/container-engine/cri-o/defaults/main.yml @@ -97,6 +97,3 @@ crio_man_files: 8: - crio - crio-status - -# If set to true, it will enable the NRI support in cri-o -crio_enable_nri: false diff --git a/roles/container-engine/cri-o/templates/crio.conf.j2 b/roles/container-engine/cri-o/templates/crio.conf.j2 index f92206e32c6..f0455d0939b 100644 --- a/roles/container-engine/cri-o/templates/crio.conf.j2 +++ b/roles/container-engine/cri-o/templates/crio.conf.j2 @@ -377,7 +377,8 @@ enable_metrics = {{ crio_enable_metrics | bool | lower }} # The port on which the metrics server will listen. metrics_port = {{ crio_metrics_port }} +{% if nri_enabled and crio_version >= v1.26.0 %} [crio.nri] -# Enable or disable NRI (Node Resource Interface) support in CRI-O. -enable_nri={{ crio_enable_nri | default(false) | lower }} +enable_nri=true +{% endif %} diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml index 23c7a0e1bd8..7768ff3237f 100644 --- a/roles/kubespray-defaults/defaults/main.yaml +++ b/roles/kubespray-defaults/defaults/main.yaml @@ -270,6 +270,10 @@ deploy_container_engine: "{{ inventory_hostname in groups['k8s_cluster'] or etcd # Container for runtime container_manager: containerd +# Enable Node Resource Interface in containerd or CRI-O. Requires crio_version >= v1.26.0 +# or containerd_version >= 1.7.0. +nri_enabled: false + # Enable Kata Containers as additional container runtime # When enabled, it requires `container_manager` different than Docker kata_containers_enabled: false