)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"7bf4186d_08053fdc","updated":"2026-03-09 13:45:43.000000000","message":"Hi Edson, I just added some text formatting fixes as I saw some minor issues in the outout. Thanks","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"bc64b6c8_47da08a4","updated":"2026-03-11 20:11:22.000000000","message":"Addressed on patchset 7","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7bd7a0d7_13ba1625","updated":"2026-03-10 21:51:48.000000000","message":"comments addressed on the next patchset","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"4a217e163858edc95ee26df8ec2254c80ffddebb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"16e85cd2_45075b85","updated":"2026-03-12 19:56:00.000000000","message":"solved in upcoming patchset","commit_id":"e218be8e728b355fe026dcf585960f9cb15ffe07"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"123a74407ac3b76d876f39136c1ee2a517ab2502","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"25514ba6_aca3b13b","updated":"2026-03-17 19:42:26.000000000","message":"Addressed on patchset 10","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"212ed8e84de653cf1bf8832289a0d58bfdd4301a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"763d69e2_49e8db98","updated":"2026-03-19 20:03:50.000000000","message":"Hi Eduardo, just added some minor fixes. Thanks","commit_id":"e6f439644060bb89f86f4ade917ca2c95d6e1b56"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"88ed460f1dfbbca4269e0241cd3b0e835399b84a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"26831694_514ded56","updated":"2026-03-19 13:27:21.000000000","message":"addressed in patchset 15","commit_id":"e6f439644060bb89f86f4ade917ca2c95d6e1b56"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"c3d93f546178ce9e8a4dcc1db0ac714da336f903","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"55d372e2_3908a515","updated":"2026-03-20 14:49:50.000000000","message":"addressed on patchset 16.","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3614002ec32ddfe418c4a1a665d5229c5a559b8d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"039e1c2b_e37a7bee","updated":"2026-03-23 21:21:57.000000000","message":"A new task will be added to the Kernel Model Management Application upversion story to address the issue of keeping the kernel, kmm-builder image and documentation versions in sync.","commit_id":"acbcfaa9785e706296a0d55a7aa829bdd44931c7"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"65dc648483971a63eb0ba2821909e1d78d0ceb02","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"e4ff04a0_b6fb9d81","updated":"2026-03-24 15:01:16.000000000","message":"recheck","commit_id":"acbcfaa9785e706296a0d55a7aa829bdd44931c7"}],"doc/source/node_management/kubernetes/kernel-module-management-application-b5e83f99936a.rst":[{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":true,"context_lines":[{"line_number":126,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules, as the final image only requires the .ko files from the built module,"},{"line_number":127,"context_line":"usually a multi-stage build strategy is used to create a lighter image without all unnecessary tools to run the image."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    #. Create the first stage image to build your module."},{"line_number":130,"context_line":"        .. code-block:: none"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"            FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5e33f71b_213b02ed","line":129,"range":{"start_line":129,"start_character":4,"end_line":129,"end_character":57},"updated":"2026-03-09 13:45:43.000000000","message":"Fix indentation.","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[{"line_number":126,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules, as the final image only requires the .ko files from the built module,"},{"line_number":127,"context_line":"usually a multi-stage build strategy is used to create a lighter image without all unnecessary tools to run the image."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    #. Create the first stage image to build your module."},{"line_number":130,"context_line":"        .. code-block:: none"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"            FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a3b605be_37cc623c","line":129,"range":{"start_line":129,"start_character":4,"end_line":129,"end_character":57},"in_reply_to":"5e33f71b_213b02ed","updated":"2026-03-10 21:51:48.000000000","message":"Done","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":true,"context_lines":[{"line_number":127,"context_line":"usually a multi-stage build strategy is used to create a lighter image without all unnecessary tools to run the image."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    #. Create the first stage image to build your module."},{"line_number":130,"context_line":"        .. code-block:: none"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"            FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"},{"line_number":133,"context_line":"            ARG KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9450b68a_a590141b","line":130,"range":{"start_line":130,"start_character":8,"end_line":130,"end_character":28},"updated":"2026-03-09 13:45:43.000000000","message":"Skip a line","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[{"line_number":127,"context_line":"usually a multi-stage build strategy is used to create a lighter image without all unnecessary tools to run the image."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    #. Create the first stage image to build your module."},{"line_number":130,"context_line":"        .. code-block:: none"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"            FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"},{"line_number":133,"context_line":"            ARG KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":5,"id":"0d781fd5_41d9f94d","line":130,"range":{"start_line":130,"start_character":8,"end_line":130,"end_character":28},"in_reply_to":"9450b68a_a590141b","updated":"2026-03-10 21:51:48.000000000","message":"Done","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":true,"context_lines":[{"line_number":136,"context_line":"            WORKDIR /usr/src/app-kernel-module-management/tools/builder-image/debian/docker/hello-world-module"},{"line_number":137,"context_line":"            RUN make KERNEL_DIR\u003d/lib/modules/${KERNEL_FULL_VERSION}/build \u0026\u0026 mkdir /out \u0026\u0026 cp *.ko /out/"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    #. Create the second stage image picking up just the .ko files previously built in the first stage image."},{"line_number":140,"context_line":"        .. code-block:: none"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            FROM ubuntu"}],"source_content_type":"text/x-rst","patch_set":5,"id":"378dbe46_05a030bd","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":7},"updated":"2026-03-09 13:45:43.000000000","message":"Fix indentation","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            WORKDIR /usr/src/app-kernel-module-management/tools/builder-image/debian/docker/hello-world-module"},{"line_number":137,"context_line":"            RUN make KERNEL_DIR\u003d/lib/modules/${KERNEL_FULL_VERSION}/build \u0026\u0026 mkdir /out \u0026\u0026 cp *.ko /out/"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    #. Create the second stage image picking up just the .ko files previously built in the first stage image."},{"line_number":140,"context_line":"        .. code-block:: none"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            FROM ubuntu"}],"source_content_type":"text/x-rst","patch_set":5,"id":"b0e1180f_8e2034f9","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":7},"in_reply_to":"378dbe46_05a030bd","updated":"2026-03-10 21:51:48.000000000","message":"Done","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":true,"context_lines":[{"line_number":145,"context_line":"            COPY --from\u003dbuilder /out/*.ko /opt/lib/modules/${KERNEL_FULL_VERSION}/"},{"line_number":146,"context_line":"            RUN depmod -b /opt ${KERNEL_FULL_VERSION}"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    #. The final Dockerfile should combine both stages."},{"line_number":149,"context_line":"        .. code-block:: none"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"            FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"}],"source_content_type":"text/x-rst","patch_set":5,"id":"8013154b_7d04ef1b","line":148,"range":{"start_line":148,"start_character":0,"end_line":148,"end_character":8},"updated":"2026-03-09 13:45:43.000000000","message":"Fix indentation","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            COPY --from\u003dbuilder /out/*.ko /opt/lib/modules/${KERNEL_FULL_VERSION}/"},{"line_number":146,"context_line":"            RUN depmod -b /opt ${KERNEL_FULL_VERSION}"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    #. The final Dockerfile should combine both stages."},{"line_number":149,"context_line":"        .. code-block:: none"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"            FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a0bb6edc_ec873900","line":148,"range":{"start_line":148,"start_character":0,"end_line":148,"end_character":8},"in_reply_to":"8013154b_7d04ef1b","updated":"2026-03-10 21:51:48.000000000","message":"Done","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":true,"context_lines":[{"line_number":170,"context_line":"        Otherwise, the module will experience an outage while the system builds the new version of the kernel module."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Loading Module images"},{"line_number":174,"context_line":"*********************"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"#. Loading modules from pre-built images"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a53c20a6_3d30b32d","line":173,"range":{"start_line":173,"start_character":0,"end_line":173,"end_character":8},"updated":"2026-03-09 13:45:43.000000000","message":"Load","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        Otherwise, the module will experience an outage while the system builds the new version of the kernel module."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Loading Module images"},{"line_number":174,"context_line":"*********************"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"#. Loading modules from pre-built images"}],"source_content_type":"text/x-rst","patch_set":5,"id":"72ad038e_86d4b71e","line":173,"range":{"start_line":173,"start_character":0,"end_line":173,"end_character":8},"in_reply_to":"a53c20a6_3d30b32d","updated":"2026-03-10 21:51:48.000000000","message":"Done","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":true,"context_lines":[{"line_number":173,"context_line":"Loading Module images"},{"line_number":174,"context_line":"*********************"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"#. Loading modules from pre-built images"},{"line_number":177,"context_line":"    One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":178,"context_line":"    For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    .. note::"},{"line_number":181,"context_line":"        Besides using a public container registry, in a Distributed Cloud environment the module image can also be pushed to the Central Cloud registry and pulled from it by the subclouds."}],"source_content_type":"text/x-rst","patch_set":5,"id":"bdae4664_f28eb655","line":178,"range":{"start_line":176,"start_character":3,"end_line":178,"end_character":94},"updated":"2026-03-09 13:45:43.000000000","message":"Fix indentation. This is not a definition list.","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[{"line_number":173,"context_line":"Loading Module images"},{"line_number":174,"context_line":"*********************"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"#. Loading modules from pre-built images"},{"line_number":177,"context_line":"    One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":178,"context_line":"    For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    .. note::"},{"line_number":181,"context_line":"        Besides using a public container registry, in a Distributed Cloud environment the module image can also be pushed to the Central Cloud registry and pulled from it by the subclouds."}],"source_content_type":"text/x-rst","patch_set":5,"id":"91edcb3d_d6500dc5","line":178,"range":{"start_line":176,"start_character":3,"end_line":178,"end_character":94},"in_reply_to":"bdae4664_f28eb655","updated":"2026-03-10 21:51:48.000000000","message":"Done","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":true,"context_lines":[{"line_number":215,"context_line":"       EOF"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    To load the module, just apply the CRD created by running the following command:"},{"line_number":218,"context_line":"    .. code-block:: none"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        ~(keystone_admin)]$ kubectl apply -f hello_world_mod.yaml"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9beac593_25e4025c","line":218,"range":{"start_line":218,"start_character":4,"end_line":218,"end_character":24},"updated":"2026-03-09 13:45:43.000000000","message":"Skip a line.","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[{"line_number":215,"context_line":"       EOF"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    To load the module, just apply the CRD created by running the following command:"},{"line_number":218,"context_line":"    .. code-block:: none"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        ~(keystone_admin)]$ kubectl apply -f hello_world_mod.yaml"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"b580d05e_afa2803a","line":218,"range":{"start_line":218,"start_character":4,"end_line":218,"end_character":24},"in_reply_to":"9beac593_25e4025c","updated":"2026-03-10 21:51:48.000000000","message":"Done","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":true,"context_lines":[{"line_number":223,"context_line":"        The `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ has an entire section with details on how to construct a Module custom resource."},{"line_number":224,"context_line":"        Just be aware that it is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version the application is running and some configurations may not behave as expected."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"#. Building and loading the modules."},{"line_number":227,"context_line":"    In cases where it is desirable to let the kernel-module-management application build the module image, create a CRD Module file and also a ConfigMap as an additional step."},{"line_number":228,"context_line":"    The ConfigMap will carry the Dockerfile content mentioned previously, and the CRD Module will reference the newly created ConfigMap."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    .. code-block:: none"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"63fd7e4e_9bb94440","line":228,"range":{"start_line":226,"start_character":3,"end_line":228,"end_character":136},"updated":"2026-03-09 13:45:43.000000000","message":"Fix indentation. This is not a definition list.","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        The `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ has an entire section with details on how to construct a Module custom resource."},{"line_number":224,"context_line":"        Just be aware that it is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version the application is running and some configurations may not behave as expected."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"#. Building and loading the modules."},{"line_number":227,"context_line":"    In cases where it is desirable to let the kernel-module-management application build the module image, create a CRD Module file and also a ConfigMap as an additional step."},{"line_number":228,"context_line":"    The ConfigMap will carry the Dockerfile content mentioned previously, and the CRD Module will reference the newly created ConfigMap."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    .. code-block:: none"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"6d349a0a_534daf4a","line":228,"range":{"start_line":226,"start_character":3,"end_line":228,"end_character":136},"in_reply_to":"63fd7e4e_9bb94440","updated":"2026-03-10 21:51:48.000000000","message":"Done","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":true,"context_lines":[{"line_number":295,"context_line":"        EOF"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    To load the module, just apply the CRD and ConfigMap created by running the following command:"},{"line_number":298,"context_line":"    .. code-block:: none"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        ~(keystone_admin)]$ kubectl apply -f hello_world_cm.yaml -f hello_world_mod.yaml"},{"line_number":301,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"144176bd_c3e792f4","line":298,"range":{"start_line":298,"start_character":4,"end_line":298,"end_character":24},"updated":"2026-03-09 13:45:43.000000000","message":"Skip a line","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        EOF"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    To load the module, just apply the CRD and ConfigMap created by running the following command:"},{"line_number":298,"context_line":"    .. code-block:: none"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        ~(keystone_admin)]$ kubectl apply -f hello_world_cm.yaml -f hello_world_mod.yaml"},{"line_number":301,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9388b99f_a5ff376a","line":298,"range":{"start_line":298,"start_character":4,"end_line":298,"end_character":24},"in_reply_to":"144176bd_c3e792f4","updated":"2026-03-10 21:51:48.000000000","message":"Done","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"c04ec2cf1ad585def5bd87de1457b64d52a6f834","unresolved":true,"context_lines":[{"line_number":338,"context_line":"    ~(keystone_admin)]$ kubectl delete -f hello_world_cm.yaml -f hello_world_mod.yaml"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"For the scenario with a pre-built image, run the following command:"},{"line_number":341,"context_line":".. code-block:: none"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    ~(keystone_admin)]$ kubectl delete -f hello_world_mod.yaml"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"bfe9d98b_28912bd7","line":341,"range":{"start_line":341,"start_character":0,"end_line":341,"end_character":20},"updated":"2026-03-09 13:45:43.000000000","message":"Skip a line","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3df0f61e93116646ff1d64ad4844183cf1d0c75b","unresolved":false,"context_lines":[{"line_number":338,"context_line":"    ~(keystone_admin)]$ kubectl delete -f hello_world_cm.yaml -f hello_world_mod.yaml"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"For the scenario with a pre-built image, run the following command:"},{"line_number":341,"context_line":".. code-block:: none"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    ~(keystone_admin)]$ kubectl delete -f hello_world_mod.yaml"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"28116545_0bd91516","line":341,"range":{"start_line":341,"start_character":0,"end_line":341,"end_character":20},"in_reply_to":"bfe9d98b_28912bd7","updated":"2026-03-10 21:51:48.000000000","message":"Done","commit_id":"9065fe09f6658c9a6cae6f623bd4e20ebeab48b8"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"As explained in the `kernel-module-management docs \u003chttps://kmm.sigs.k8s.io/documentation/kmod_image/#depmod\u003e`_ to create your own out-of-tree kernel module it is"},{"line_number":106,"context_line":"necessary to have an image with the kernel headers to build your own module files against it."},{"line_number":107,"context_line":".. code-block:: none"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    FROM ubuntu as builder"},{"line_number":110,"context_line":"    ARG KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":6,"id":"33893caf_0e9e1bdb","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":20},"updated":"2026-03-11 13:05:18.000000000","message":"Skip a line","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"As explained in the `kernel-module-management docs \u003chttps://kmm.sigs.k8s.io/documentation/kmod_image/#depmod\u003e`_ to create your own out-of-tree kernel module it is"},{"line_number":106,"context_line":"necessary to have an image with the kernel headers to build your own module files against it."},{"line_number":107,"context_line":".. code-block:: none"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    FROM ubuntu as builder"},{"line_number":110,"context_line":"    ARG KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9b638bd2_4ceb6b1e","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":20},"in_reply_to":"33893caf_0e9e1bdb","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"04e00745fc720f3d6f3600fbdb1bf4c956467cbe","unresolved":true,"context_lines":[{"line_number":123,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the StarlingX ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":124,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules, as the final image only requires the .ko files from the built module,"},{"line_number":127,"context_line":"usually a multi-stage build strategy is used to create a lighter image without all unnecessary tools to run the image."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"#. Create the first stage image to build your module."},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"8523744d_95526a3a","line":127,"range":{"start_line":126,"start_character":0,"end_line":127,"end_character":118},"updated":"2026-03-10 23:39:26.000000000","message":"this is a run-on sentence","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":123,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the StarlingX ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":124,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules, as the final image only requires the .ko files from the built module,"},{"line_number":127,"context_line":"usually a multi-stage build strategy is used to create a lighter image without all unnecessary tools to run the image."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"#. Create the first stage image to build your module."},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"092c9af7_6d6f8c75","line":127,"range":{"start_line":126,"start_character":0,"end_line":127,"end_character":118},"in_reply_to":"8523744d_95526a3a","updated":"2026-03-11 20:11:22.000000000","message":"rephrased it, breaking into smaller sentences.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"#. Create the first stage image to build your module."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    .. code-block:: none"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"},{"line_number":134,"context_line":"        ARG KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":6,"id":"84a2b26e_ef1e28d9","line":131,"range":{"start_line":131,"start_character":4,"end_line":131,"end_character":24},"updated":"2026-03-11 13:05:18.000000000","message":"Fix indentation.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"#. Create the first stage image to build your module."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    .. code-block:: none"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"},{"line_number":134,"context_line":"        ARG KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":6,"id":"e67d3927_7f80ed08","line":131,"range":{"start_line":131,"start_character":4,"end_line":131,"end_character":24},"in_reply_to":"84a2b26e_ef1e28d9","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":138,"context_line":"        RUN make KERNEL_DIR\u003d/lib/modules/${KERNEL_FULL_VERSION}/build \u0026\u0026 mkdir /out \u0026\u0026 cp *.ko /out/"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"#. Create the second stage image picking up just the .ko files previously built in the first stage image."},{"line_number":141,"context_line":"    .. code-block:: none"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        FROM ubuntu"},{"line_number":144,"context_line":"        ARG KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":6,"id":"77ee87b2_49aa6300","line":141,"range":{"start_line":141,"start_character":0,"end_line":141,"end_character":24},"updated":"2026-03-11 13:05:18.000000000","message":"Skip a line.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        RUN make KERNEL_DIR\u003d/lib/modules/${KERNEL_FULL_VERSION}/build \u0026\u0026 mkdir /out \u0026\u0026 cp *.ko /out/"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"#. Create the second stage image picking up just the .ko files previously built in the first stage image."},{"line_number":141,"context_line":"    .. code-block:: none"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        FROM ubuntu"},{"line_number":144,"context_line":"        ARG KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":6,"id":"f85b84ba_510efef3","line":141,"range":{"start_line":141,"start_character":0,"end_line":141,"end_character":24},"in_reply_to":"77ee87b2_49aa6300","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"04e00745fc720f3d6f3600fbdb1bf4c956467cbe","unresolved":true,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules, as the final image only requires the .ko files from the built module,"},{"line_number":127,"context_line":"usually a multi-stage build strategy is used to create a lighter image without all unnecessary tools to run the image."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"#. Create the first stage image to build your module."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    .. code-block:: none"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"},{"line_number":134,"context_line":"        ARG KERNEL_FULL_VERSION"},{"line_number":135,"context_line":"        WORKDIR /usr/src"},{"line_number":136,"context_line":"        RUN [\"git\", \"clone\", \"https://opendev.org/starlingx/app-kernel-module-management.git\"]"},{"line_number":137,"context_line":"        WORKDIR /usr/src/app-kernel-module-management/tools/builder-image/debian/docker/hello-world-module"},{"line_number":138,"context_line":"        RUN make KERNEL_DIR\u003d/lib/modules/${KERNEL_FULL_VERSION}/build \u0026\u0026 mkdir /out \u0026\u0026 cp *.ko /out/"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"#. Create the second stage image picking up just the .ko files previously built in the first stage image."},{"line_number":141,"context_line":"    .. code-block:: none"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        FROM ubuntu"},{"line_number":144,"context_line":"        ARG KERNEL_FULL_VERSION"},{"line_number":145,"context_line":"        RUN apt-get update \u0026\u0026 apt-get install -y kmod"},{"line_number":146,"context_line":"        COPY --from\u003dbuilder /out/*.ko /opt/lib/modules/${KERNEL_FULL_VERSION}/"},{"line_number":147,"context_line":"        RUN depmod -b /opt ${KERNEL_FULL_VERSION}"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"#. The final Dockerfile should combine both stages."},{"line_number":150,"context_line":"    .. code-block:: none"}],"source_content_type":"text/x-rst","patch_set":6,"id":"e6232a08_abcd5744","line":147,"range":{"start_line":128,"start_character":0,"end_line":147,"end_character":49},"updated":"2026-03-10 23:39:26.000000000","message":"Could probably remove lines 129-147 and just say something like \"The Dockerfile combines two stages, where the first stage builds the module(s) and the second stage builds just the module files and module loading tools into a container image.\n\nAlso, you may want to use something like \"RUN apt-get update \u0026\u0026 apt-get install -y kmod \u0026\u0026 rm -rf /var/lib/apt/lists/*\" to delete extra files that don\u0027t need to be in the final container image.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"4a217e163858edc95ee26df8ec2254c80ffddebb","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules, as the final image only requires the .ko files from the built module,"},{"line_number":127,"context_line":"usually a multi-stage build strategy is used to create a lighter image without all unnecessary tools to run the image."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"#. Create the first stage image to build your module."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    .. code-block:: none"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"},{"line_number":134,"context_line":"        ARG KERNEL_FULL_VERSION"},{"line_number":135,"context_line":"        WORKDIR /usr/src"},{"line_number":136,"context_line":"        RUN [\"git\", \"clone\", \"https://opendev.org/starlingx/app-kernel-module-management.git\"]"},{"line_number":137,"context_line":"        WORKDIR /usr/src/app-kernel-module-management/tools/builder-image/debian/docker/hello-world-module"},{"line_number":138,"context_line":"        RUN make KERNEL_DIR\u003d/lib/modules/${KERNEL_FULL_VERSION}/build \u0026\u0026 mkdir /out \u0026\u0026 cp *.ko /out/"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"#. Create the second stage image picking up just the .ko files previously built in the first stage image."},{"line_number":141,"context_line":"    .. code-block:: none"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        FROM ubuntu"},{"line_number":144,"context_line":"        ARG KERNEL_FULL_VERSION"},{"line_number":145,"context_line":"        RUN apt-get update \u0026\u0026 apt-get install -y kmod"},{"line_number":146,"context_line":"        COPY --from\u003dbuilder /out/*.ko /opt/lib/modules/${KERNEL_FULL_VERSION}/"},{"line_number":147,"context_line":"        RUN depmod -b /opt ${KERNEL_FULL_VERSION}"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"#. The final Dockerfile should combine both stages."},{"line_number":150,"context_line":"    .. code-block:: none"}],"source_content_type":"text/x-rst","patch_set":6,"id":"928ff13b_16104d58","line":147,"range":{"start_line":128,"start_character":0,"end_line":147,"end_character":49},"in_reply_to":"e6232a08_abcd5744","updated":"2026-03-12 19:56:00.000000000","message":"removed the redundant example and left only the combined two stage docker file as an example. added the cleaning suggested instruction to clean the final image further.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":147,"context_line":"        RUN depmod -b /opt ${KERNEL_FULL_VERSION}"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"#. The final Dockerfile should combine both stages."},{"line_number":150,"context_line":"    .. code-block:: none"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"},{"line_number":153,"context_line":"        ARG KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":6,"id":"847c306c_827bea92","line":150,"range":{"start_line":150,"start_character":0,"end_line":150,"end_character":24},"updated":"2026-03-11 13:05:18.000000000","message":"Skip a line.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        RUN depmod -b /opt ${KERNEL_FULL_VERSION}"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"#. The final Dockerfile should combine both stages."},{"line_number":150,"context_line":"    .. code-block:: none"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        FROM docker.io/starlingx/kmm-builder:stx.12.0-v1.0.0 as builder"},{"line_number":153,"context_line":"        ARG KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7dfda71d_2e76f8f1","line":150,"range":{"start_line":150,"start_character":0,"end_line":150,"end_character":24},"in_reply_to":"847c306c_827bea92","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"04e00745fc720f3d6f3600fbdb1bf4c956467cbe","unresolved":true,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"With this Dockerfile created, it is possible to build the image passing the current StarlingX kernel version \"6.12.0-1-amd64\" as a parameter to the docker build command."},{"line_number":166,"context_line":"    .. warning::"},{"line_number":167,"context_line":"        The KERNEL_FULL_VERSION variable should always match the currently StarlingX kernel version, otherwise the module will not be loaded correctly by the application."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    .. warning::"},{"line_number":170,"context_line":"        With new versions of StarlingX, the kernel version could change, creating the necessity to rebuild the module image before applying the system version."}],"source_content_type":"text/x-rst","patch_set":6,"id":"c32c0744_de2bf065","line":167,"range":{"start_line":167,"start_character":141,"end_line":167,"end_character":151},"updated":"2026-03-10 23:39:26.000000000","message":"can remove \"correctly\"","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"04e00745fc720f3d6f3600fbdb1bf4c956467cbe","unresolved":true,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"With this Dockerfile created, it is possible to build the image passing the current StarlingX kernel version \"6.12.0-1-amd64\" as a parameter to the docker build command."},{"line_number":166,"context_line":"    .. warning::"},{"line_number":167,"context_line":"        The KERNEL_FULL_VERSION variable should always match the currently StarlingX kernel version, otherwise the module will not be loaded correctly by the application."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    .. warning::"},{"line_number":170,"context_line":"        With new versions of StarlingX, the kernel version could change, creating the necessity to rebuild the module image before applying the system version."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fd548626_3ed3f42e","line":167,"range":{"start_line":167,"start_character":65,"end_line":167,"end_character":74},"updated":"2026-03-10 23:39:26.000000000","message":"current","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"With this Dockerfile created, it is possible to build the image passing the current StarlingX kernel version \"6.12.0-1-amd64\" as a parameter to the docker build command."},{"line_number":166,"context_line":"    .. warning::"},{"line_number":167,"context_line":"        The KERNEL_FULL_VERSION variable should always match the currently StarlingX kernel version, otherwise the module will not be loaded correctly by the application."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    .. warning::"},{"line_number":170,"context_line":"        With new versions of StarlingX, the kernel version could change, creating the necessity to rebuild the module image before applying the system version."}],"source_content_type":"text/x-rst","patch_set":6,"id":"19958958_714538f5","line":167,"range":{"start_line":167,"start_character":141,"end_line":167,"end_character":151},"in_reply_to":"c32c0744_de2bf065","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"With this Dockerfile created, it is possible to build the image passing the current StarlingX kernel version \"6.12.0-1-amd64\" as a parameter to the docker build command."},{"line_number":166,"context_line":"    .. warning::"},{"line_number":167,"context_line":"        The KERNEL_FULL_VERSION variable should always match the currently StarlingX kernel version, otherwise the module will not be loaded correctly by the application."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    .. warning::"},{"line_number":170,"context_line":"        With new versions of StarlingX, the kernel version could change, creating the necessity to rebuild the module image before applying the system version."}],"source_content_type":"text/x-rst","patch_set":6,"id":"360d3301_6d351881","line":167,"range":{"start_line":167,"start_character":65,"end_line":167,"end_character":74},"in_reply_to":"fd548626_3ed3f42e","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"04e00745fc720f3d6f3600fbdb1bf4c956467cbe","unresolved":true,"context_lines":[{"line_number":167,"context_line":"        The KERNEL_FULL_VERSION variable should always match the currently StarlingX kernel version, otherwise the module will not be loaded correctly by the application."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    .. warning::"},{"line_number":170,"context_line":"        With new versions of StarlingX, the kernel version could change, creating the necessity to rebuild the module image before applying the system version."},{"line_number":171,"context_line":"        Otherwise, the module will experience an outage while the system builds the new version of the kernel module."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f704c54_8a74ee84","line":170,"range":{"start_line":170,"start_character":131,"end_line":170,"end_character":158},"updated":"2026-03-10 23:39:26.000000000","message":"what does \"applying the system version\" mean?","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        The KERNEL_FULL_VERSION variable should always match the currently StarlingX kernel version, otherwise the module will not be loaded correctly by the application."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    .. warning::"},{"line_number":170,"context_line":"        With new versions of StarlingX, the kernel version could change, creating the necessity to rebuild the module image before applying the system version."},{"line_number":171,"context_line":"        Otherwise, the module will experience an outage while the system builds the new version of the kernel module."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"cd2c2f91_f91f7dc1","line":170,"range":{"start_line":170,"start_character":131,"end_line":170,"end_character":158},"in_reply_to":"9f704c54_8a74ee84","updated":"2026-03-11 20:11:22.000000000","message":"That part is about the need of a kernel module to match the kernel version. I\u0027m rephrasing that to make it clearer.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":174,"context_line":"Load Module images"},{"line_number":175,"context_line":"******************"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"#. Loading modules from pre-built images"},{"line_number":178,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":179,"context_line":"   For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":180,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"f4bec851_44923074","line":177,"range":{"start_line":177,"start_character":34,"end_line":177,"end_character":40},"updated":"2026-03-11 13:05:18.000000000","message":"Missing \".\"","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":174,"context_line":"Load Module images"},{"line_number":175,"context_line":"******************"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"#. Loading modules from pre-built images"},{"line_number":178,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":179,"context_line":"   For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":180,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"09a8edfb_8b658c1b","line":177,"range":{"start_line":177,"start_character":34,"end_line":177,"end_character":40},"in_reply_to":"f4bec851_44923074","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":178,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":179,"context_line":"   For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    .. note::"},{"line_number":182,"context_line":"        Besides using a public container registry, in a Distributed Cloud environment the module image can also be pushed to the Central Cloud registry and pulled from it by the subclouds."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    .. code-block:: none"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"       cat \u003c\u003c \u0027EOF\u0027 \u003e hello_world_mod.yaml"},{"line_number":187,"context_line":"       apiVersion: kmm.sigs.x-k8s.io/v1beta1"}],"source_content_type":"text/x-rst","patch_set":6,"id":"92454584_dad244a4","line":184,"range":{"start_line":181,"start_character":4,"end_line":184,"end_character":24},"updated":"2026-03-11 13:05:18.000000000","message":"Fix indentation","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":178,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":179,"context_line":"   For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    .. note::"},{"line_number":182,"context_line":"        Besides using a public container registry, in a Distributed Cloud environment the module image can also be pushed to the Central Cloud registry and pulled from it by the subclouds."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    .. code-block:: none"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"       cat \u003c\u003c \u0027EOF\u0027 \u003e hello_world_mod.yaml"},{"line_number":187,"context_line":"       apiVersion: kmm.sigs.x-k8s.io/v1beta1"}],"source_content_type":"text/x-rst","patch_set":6,"id":"beae0772_31883744","line":184,"range":{"start_line":181,"start_character":4,"end_line":184,"end_character":24},"in_reply_to":"92454584_dad244a4","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"04e00745fc720f3d6f3600fbdb1bf4c956467cbe","unresolved":true,"context_lines":[{"line_number":196,"context_line":"               moduleName: hello_world_dmesg"},{"line_number":197,"context_line":"             kernelMappings:"},{"line_number":198,"context_line":"               - literal: \"6.12.0-1-amd64\""},{"line_number":199,"context_line":"                 containerImage: \u003c pre-built image \u003e"},{"line_number":200,"context_line":"                 registryTLS:"},{"line_number":201,"context_line":"                   insecure: false"},{"line_number":202,"context_line":"                   insecureSkipTLSVerify: true"}],"source_content_type":"text/x-rst","patch_set":6,"id":"00d49734_4ad714df","line":199,"range":{"start_line":199,"start_character":33,"end_line":199,"end_character":52},"updated":"2026-03-10 23:39:26.000000000","message":"should probably give an example of how to specify the pre-built image, including version number and image registry","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"4a217e163858edc95ee26df8ec2254c80ffddebb","unresolved":false,"context_lines":[{"line_number":196,"context_line":"               moduleName: hello_world_dmesg"},{"line_number":197,"context_line":"             kernelMappings:"},{"line_number":198,"context_line":"               - literal: \"6.12.0-1-amd64\""},{"line_number":199,"context_line":"                 containerImage: \u003c pre-built image \u003e"},{"line_number":200,"context_line":"                 registryTLS:"},{"line_number":201,"context_line":"                   insecure: false"},{"line_number":202,"context_line":"                   insecureSkipTLSVerify: true"}],"source_content_type":"text/x-rst","patch_set":6,"id":"6bcaac83_522afce4","line":199,"range":{"start_line":199,"start_character":33,"end_line":199,"end_character":52},"in_reply_to":"00d49734_4ad714df","updated":"2026-03-12 19:56:00.000000000","message":"added a more illustrative example of image carrying a pre-built kernel module.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":215,"context_line":"             effect: \"NoExecute\""},{"line_number":216,"context_line":"       EOF"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    To load the module, just apply the CRD created by running the following command:"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    .. code-block:: none"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"500640c3_da0a4e6f","line":218,"range":{"start_line":218,"start_character":24,"end_line":218,"end_character":29},"updated":"2026-03-11 13:05:18.000000000","message":"remove","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":215,"context_line":"             effect: \"NoExecute\""},{"line_number":216,"context_line":"       EOF"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    To load the module, just apply the CRD created by running the following command:"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    .. code-block:: none"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"2c8b72bc_b925082c","line":218,"range":{"start_line":218,"start_character":24,"end_line":218,"end_character":29},"in_reply_to":"500640c3_da0a4e6f","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":222,"context_line":"        ~(keystone_admin)]$ kubectl apply -f hello_world_mod.yaml"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    .. warning::"},{"line_number":225,"context_line":"        The `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ has an entire section with details on how to construct a Module custom resource."},{"line_number":226,"context_line":"        Just be aware that it is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version the application is running and some configurations may not behave as expected."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"#. Building and loading the modules."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a591109_720e365e","line":225,"range":{"start_line":225,"start_character":8,"end_line":225,"end_character":196},"updated":"2026-03-11 13:05:18.000000000","message":"Maybe rewrite:\nSee `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ for more details on how to construct a Module custom resource.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        ~(keystone_admin)]$ kubectl apply -f hello_world_mod.yaml"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    .. warning::"},{"line_number":225,"context_line":"        The `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ has an entire section with details on how to construct a Module custom resource."},{"line_number":226,"context_line":"        Just be aware that it is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version the application is running and some configurations may not behave as expected."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"#. Building and loading the modules."}],"source_content_type":"text/x-rst","patch_set":6,"id":"89532103_625e5d2d","line":225,"range":{"start_line":225,"start_character":8,"end_line":225,"end_character":196},"in_reply_to":"1a591109_720e365e","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    .. warning::"},{"line_number":225,"context_line":"        The `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ has an entire section with details on how to construct a Module custom resource."},{"line_number":226,"context_line":"        Just be aware that it is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version the application is running and some configurations may not behave as expected."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"#. Building and loading the modules."},{"line_number":229,"context_line":"   In cases where it is desirable to let the kernel-module-management application build the module image, create a CRD Module file and also a ConfigMap as an additional step."}],"source_content_type":"text/x-rst","patch_set":6,"id":"0f8adda4_1969648b","line":226,"range":{"start_line":226,"start_character":8,"end_line":226,"end_character":233},"updated":"2026-03-11 13:05:18.000000000","message":"Maybe rewrite, this is already a warning:\nIt is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version the application is running and some configurations may not behave as expected.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    .. warning::"},{"line_number":225,"context_line":"        The `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ has an entire section with details on how to construct a Module custom resource."},{"line_number":226,"context_line":"        Just be aware that it is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version the application is running and some configurations may not behave as expected."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"#. Building and loading the modules."},{"line_number":229,"context_line":"   In cases where it is desirable to let the kernel-module-management application build the module image, create a CRD Module file and also a ConfigMap as an additional step."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff7b8955_acd02eff","line":226,"range":{"start_line":226,"start_character":8,"end_line":226,"end_character":233},"in_reply_to":"0f8adda4_1969648b","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":226,"context_line":"        Just be aware that it is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version the application is running and some configurations may not behave as expected."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"#. Building and loading the modules."},{"line_number":229,"context_line":"   In cases where it is desirable to let the kernel-module-management application build the module image, create a CRD Module file and also a ConfigMap as an additional step."},{"line_number":230,"context_line":"   The ConfigMap will carry the Dockerfile content mentioned previously, and the CRD Module will reference the newly created ConfigMap."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    .. code-block:: none"}],"source_content_type":"text/x-rst","patch_set":6,"id":"f0b6640a_567787aa","line":229,"range":{"start_line":229,"start_character":3,"end_line":229,"end_character":174},"updated":"2026-03-11 13:05:18.000000000","message":"Maybe rewrite:\nYou can create a |CRD| Module file and a ConfigMap as an additional step when you want the kernel-module-management application to build the module image.","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        Just be aware that it is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version the application is running and some configurations may not behave as expected."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"#. Building and loading the modules."},{"line_number":229,"context_line":"   In cases where it is desirable to let the kernel-module-management application build the module image, create a CRD Module file and also a ConfigMap as an additional step."},{"line_number":230,"context_line":"   The ConfigMap will carry the Dockerfile content mentioned previously, and the CRD Module will reference the newly created ConfigMap."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    .. code-block:: none"}],"source_content_type":"text/x-rst","patch_set":6,"id":"c37b2bdd_6414ab85","line":229,"range":{"start_line":229,"start_character":3,"end_line":229,"end_character":174},"in_reply_to":"f0b6640a_567787aa","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":229,"context_line":"   In cases where it is desirable to let the kernel-module-management application build the module image, create a CRD Module file and also a ConfigMap as an additional step."},{"line_number":230,"context_line":"   The ConfigMap will carry the Dockerfile content mentioned previously, and the CRD Module will reference the newly created ConfigMap."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    .. code-block:: none"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        cat \u003c\u003c \u0027EOF\u0027 \u003e hello_world_cm.yaml"},{"line_number":235,"context_line":"        apiVersion: v1"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5abb40e2_310b576c","line":232,"range":{"start_line":232,"start_character":4,"end_line":232,"end_character":24},"updated":"2026-03-11 13:05:18.000000000","message":"Fix indentation lines 232-313","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":229,"context_line":"   In cases where it is desirable to let the kernel-module-management application build the module image, create a CRD Module file and also a ConfigMap as an additional step."},{"line_number":230,"context_line":"   The ConfigMap will carry the Dockerfile content mentioned previously, and the CRD Module will reference the newly created ConfigMap."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    .. code-block:: none"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        cat \u003c\u003c \u0027EOF\u0027 \u003e hello_world_cm.yaml"},{"line_number":235,"context_line":"        apiVersion: v1"}],"source_content_type":"text/x-rst","patch_set":6,"id":"8b8693c9_4f2bc03e","line":232,"range":{"start_line":232,"start_character":4,"end_line":232,"end_character":24},"in_reply_to":"5abb40e2_310b576c","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"d4b5f49eef2a6c1563fa484dc76b42c9f85a35ca","unresolved":true,"context_lines":[{"line_number":296,"context_line":"              effect: \"NoExecute\""},{"line_number":297,"context_line":"        EOF"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    To load the module, just apply the CRD and ConfigMap created by running the following command:"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    .. code-block:: none"},{"line_number":302,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"714ae323_a644d6ce","line":299,"range":{"start_line":299,"start_character":24,"end_line":299,"end_character":29},"updated":"2026-03-11 13:05:18.000000000","message":"remove","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"0bf0de15c634be684e41a8b24f25115e39699fba","unresolved":false,"context_lines":[{"line_number":296,"context_line":"              effect: \"NoExecute\""},{"line_number":297,"context_line":"        EOF"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    To load the module, just apply the CRD and ConfigMap created by running the following command:"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    .. code-block:: none"},{"line_number":302,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"a6b1e4db_0daf1f7c","line":299,"range":{"start_line":299,"start_character":24,"end_line":299,"end_character":29},"in_reply_to":"714ae323_a644d6ce","updated":"2026-03-11 20:11:22.000000000","message":"Done","commit_id":"2d83d6dac4618f7ff32943b0665791e95929ee8d"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":99,"context_line":"Building and Loading Kernel Modules"},{"line_number":100,"context_line":"-----------------------------------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Create Kernel Modules Images"},{"line_number":103,"context_line":"****************************"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"As explained in the `kernel-module-management docs \u003chttps://kmm.sigs.k8s.io/documentation/kmod_image/#depmod\u003e`_ to create your own out-of-tree kernel module it is"}],"source_content_type":"text/x-rst","patch_set":9,"id":"b6dadb7a_5ac30d79","line":102,"range":{"start_line":102,"start_character":14,"end_line":102,"end_character":21},"updated":"2026-03-16 22:29:41.000000000","message":"Module","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"123a74407ac3b76d876f39136c1ee2a517ab2502","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Building and Loading Kernel Modules"},{"line_number":100,"context_line":"-----------------------------------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Create Kernel Modules Images"},{"line_number":103,"context_line":"****************************"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"As explained in the `kernel-module-management docs \u003chttps://kmm.sigs.k8s.io/documentation/kmod_image/#depmod\u003e`_ to create your own out-of-tree kernel module it is"}],"source_content_type":"text/x-rst","patch_set":9,"id":"29c138f3_b09538a6","line":102,"range":{"start_line":102,"start_character":14,"end_line":102,"end_character":21},"in_reply_to":"b6dadb7a_5ac30d79","updated":"2026-03-17 19:42:26.000000000","message":"Done","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":120,"context_line":"    gcc \\"},{"line_number":121,"context_line":"    linux-headers-${KERNEL_FULL_VERSION}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The StarlingX project already provides a `pre-built container image \u003chttps://hub.docker.com/layers/starlingx/kmm-builder/stx.12.0-v1.0.0/images/sha256-ede1bcb870c910744c83ddf4b4727399e3870f9bf0bd3d32a1050d24ad1cc7c1\u003e`_"},{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the StarlingX ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"b909e422_f5ea6dcc","line":123,"range":{"start_line":123,"start_character":0,"end_line":123,"end_character":218},"updated":"2026-03-16 22:29:41.000000000","message":"Formatting issues with Grey bars, see https://7885e3e0f6aebbee7815-9a7da1621d2fbebddc53d66d25030b3a.ssl.cf2.rackcdn.com/openstack/2c178af3675242e8a7aeff7d3eef10fa/docs/node_management/kubernetes/kernel-module-management-application-b5e83f99936a.html","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":120,"context_line":"    gcc \\"},{"line_number":121,"context_line":"    linux-headers-${KERNEL_FULL_VERSION}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The StarlingX project already provides a `pre-built container image \u003chttps://hub.docker.com/layers/starlingx/kmm-builder/stx.12.0-v1.0.0/images/sha256-ede1bcb870c910744c83ddf4b4727399e3870f9bf0bd3d32a1050d24ad1cc7c1\u003e`_"},{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the StarlingX ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"21306003_96f52d04","line":123,"range":{"start_line":123,"start_character":4,"end_line":123,"end_character":21},"updated":"2026-03-16 22:29:41.000000000","message":"Is this applicable only to StarlingX or downstream too? If so we need to add the string |prod| instead of StarlingX project...\n\nSame comment wherever StarlingX needs to be replaced with the string |prod|","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"123a74407ac3b76d876f39136c1ee2a517ab2502","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    gcc \\"},{"line_number":121,"context_line":"    linux-headers-${KERNEL_FULL_VERSION}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The StarlingX project already provides a `pre-built container image \u003chttps://hub.docker.com/layers/starlingx/kmm-builder/stx.12.0-v1.0.0/images/sha256-ede1bcb870c910744c83ddf4b4727399e3870f9bf0bd3d32a1050d24ad1cc7c1\u003e`_"},{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the StarlingX ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"a38ca145_fa0b9d3f","line":123,"range":{"start_line":123,"start_character":4,"end_line":123,"end_character":21},"in_reply_to":"21306003_96f52d04","updated":"2026-03-17 19:42:26.000000000","message":"Done","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"d15b8f147257ee233bc95551dcfcb96c59318657","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    gcc \\"},{"line_number":121,"context_line":"    linux-headers-${KERNEL_FULL_VERSION}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The StarlingX project already provides a `pre-built container image \u003chttps://hub.docker.com/layers/starlingx/kmm-builder/stx.12.0-v1.0.0/images/sha256-ede1bcb870c910744c83ddf4b4727399e3870f9bf0bd3d32a1050d24ad1cc7c1\u003e`_"},{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the StarlingX ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"d8cf5747_8014f93f","line":123,"range":{"start_line":123,"start_character":0,"end_line":123,"end_character":218},"in_reply_to":"b909e422_f5ea6dcc","updated":"2026-03-18 19:55:23.000000000","message":"Done","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the .ko files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"#. This example Dockerfile uses two stages. The first stage builds the module(s) and the second one builds an image containing the module files and required tools."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    .. code-block:: none"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"0409eb7e_52ea18bb","line":130,"range":{"start_line":130,"start_character":0,"end_line":130,"end_character":163},"updated":"2026-03-16 22:29:41.000000000","message":"Are these steps....see the HTML page, this is not rendering correctly...https://7885e3e0f6aebbee7815-9a7da1621d2fbebddc53d66d25030b3a.ssl.cf2.rackcdn.com/openstack/2c178af3675242e8a7aeff7d3eef10fa/docs/node_management/kubernetes/kernel-module-management-application-b5e83f99936a.html","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the .ko files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"#. This example Dockerfile uses two stages. The first stage builds the module(s) and the second one builds an image containing the module files and required tools."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    .. code-block:: none"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9410597e_13bfcccc","line":130,"range":{"start_line":130,"start_character":8,"end_line":130,"end_character":26},"updated":"2026-03-16 22:29:41.000000000","message":"Dockerfile example, uses .....","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"88ed460f1dfbbca4269e0241cd3b0e835399b84a","unresolved":false,"context_lines":[{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the .ko files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"#. This example Dockerfile uses two stages. The first stage builds the module(s) and the second one builds an image containing the module files and required tools."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    .. code-block:: none"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"2e724e97_cad80e73","line":130,"range":{"start_line":130,"start_character":0,"end_line":130,"end_character":163},"in_reply_to":"0409eb7e_52ea18bb","updated":"2026-03-19 13:27:21.000000000","message":"fixed the identation, now the gray quote bars are gone.","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"123a74407ac3b76d876f39136c1ee2a517ab2502","unresolved":false,"context_lines":[{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the .ko files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"#. This example Dockerfile uses two stages. The first stage builds the module(s) and the second one builds an image containing the module files and required tools."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    .. code-block:: none"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"4de260c2_ce62e363","line":130,"range":{"start_line":130,"start_character":8,"end_line":130,"end_character":26},"in_reply_to":"9410597e_13bfcccc","updated":"2026-03-17 19:42:26.000000000","message":"Done","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":144,"context_line":"        COPY --from\u003dbuilder /out/*.ko /opt/lib/modules/${KERNEL_FULL_VERSION}/"},{"line_number":145,"context_line":"        RUN depmod -b /opt ${KERNEL_FULL_VERSION}"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"With this Dockerfile created, it is possible to build the image passing the current StarlingX kernel version \"6.12.0-1-amd64\" as a build argument when running ``docker build``."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    .. warning::"},{"line_number":150,"context_line":"        The KERNEL_FULL_VERSION variable should always match the current StarlingX kernel version, otherwise the module will not be loaded by the application."}],"source_content_type":"text/x-rst","patch_set":9,"id":"e54ccfba_45f47a05","line":147,"range":{"start_line":147,"start_character":84,"end_line":147,"end_character":93},"updated":"2026-03-16 22:29:41.000000000","message":"Same comments everywhere as above...","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"123a74407ac3b76d876f39136c1ee2a517ab2502","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        COPY --from\u003dbuilder /out/*.ko /opt/lib/modules/${KERNEL_FULL_VERSION}/"},{"line_number":145,"context_line":"        RUN depmod -b /opt ${KERNEL_FULL_VERSION}"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"With this Dockerfile created, it is possible to build the image passing the current StarlingX kernel version \"6.12.0-1-amd64\" as a build argument when running ``docker build``."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    .. warning::"},{"line_number":150,"context_line":"        The KERNEL_FULL_VERSION variable should always match the current StarlingX kernel version, otherwise the module will not be loaded by the application."}],"source_content_type":"text/x-rst","patch_set":9,"id":"8bc2ee86_73b34776","line":147,"range":{"start_line":147,"start_character":84,"end_line":147,"end_character":93},"in_reply_to":"e54ccfba_45f47a05","updated":"2026-03-17 19:42:26.000000000","message":"Done","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":157,"context_line":"Load Module images"},{"line_number":158,"context_line":"******************"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"#. Loading modules from pre-built images."},{"line_number":161,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":162,"context_line":"   For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"53368046_7390f1d5","line":160,"range":{"start_line":160,"start_character":0,"end_line":160,"end_character":2},"updated":"2026-03-16 22:29:41.000000000","message":"??","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":157,"context_line":"Load Module images"},{"line_number":158,"context_line":"******************"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"#. Loading modules from pre-built images."},{"line_number":161,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":162,"context_line":"   For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"a627d9b3_7d84eed1","line":160,"range":{"start_line":160,"start_character":3,"end_line":160,"end_character":41},"updated":"2026-03-16 22:29:41.000000000","message":"This is not required....\n\nOr add: Use the following method to load modules from pre-built images...","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"88ed460f1dfbbca4269e0241cd3b0e835399b84a","unresolved":false,"context_lines":[{"line_number":157,"context_line":"Load Module images"},{"line_number":158,"context_line":"******************"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"#. Loading modules from pre-built images."},{"line_number":161,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":162,"context_line":"   For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"42404e6f_ff62cecb","line":160,"range":{"start_line":160,"start_character":0,"end_line":160,"end_character":2},"in_reply_to":"53368046_7390f1d5","updated":"2026-03-19 13:27:21.000000000","message":"removed the numbered list item that was acting like a subtitle.","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"88ed460f1dfbbca4269e0241cd3b0e835399b84a","unresolved":false,"context_lines":[{"line_number":157,"context_line":"Load Module images"},{"line_number":158,"context_line":"******************"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"#. Loading modules from pre-built images."},{"line_number":161,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":162,"context_line":"   For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"d51db3a1_542cb33c","line":160,"range":{"start_line":160,"start_character":3,"end_line":160,"end_character":41},"in_reply_to":"a627d9b3_7d84eed1","updated":"2026-03-19 13:27:21.000000000","message":"removed","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"#. Loading modules from pre-built images."},{"line_number":161,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":162,"context_line":"   For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    .. note::"},{"line_number":165,"context_line":"       Besides using a public container registry, in a Distributed Cloud environment the module image can also be pushed to the Central Cloud registry and pulled from it by the subclouds."}],"source_content_type":"text/x-rst","patch_set":9,"id":"47aeaf1c_a8fa1725","line":162,"range":{"start_line":162,"start_character":82,"end_line":162,"end_character":85},"updated":"2026-03-16 22:29:41.000000000","message":"|CRD|","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"123a74407ac3b76d876f39136c1ee2a517ab2502","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"#. Loading modules from pre-built images."},{"line_number":161,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":162,"context_line":"   For these cases, just push the built image to the registry in use and create a CRD Module."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    .. note::"},{"line_number":165,"context_line":"       Besides using a public container registry, in a Distributed Cloud environment the module image can also be pushed to the Central Cloud registry and pulled from it by the subclouds."}],"source_content_type":"text/x-rst","patch_set":9,"id":"3ff8207b_9f17e1eb","line":162,"range":{"start_line":162,"start_character":82,"end_line":162,"end_character":85},"in_reply_to":"47aeaf1c_a8fa1725","updated":"2026-03-17 19:42:26.000000000","message":"Done","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    .. warning::"},{"line_number":208,"context_line":"        See `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ for more details on how to construct a Module custom resource."},{"line_number":209,"context_line":"        It is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version of the application is running. Some configurations may not behave as expected."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"#. Building and loading the modules."},{"line_number":212,"context_line":"   You can create a |CRD| Module file and a ConfigMap as an additional step when you want the kernel-module-management application to build the module image. "}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ce025c0_58a61efc","line":209,"range":{"start_line":209,"start_character":66,"end_line":209,"end_character":69},"updated":"2026-03-16 22:29:41.000000000","message":"KMM? Needs to be added to the abbrev.txt file","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"123a74407ac3b76d876f39136c1ee2a517ab2502","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    .. warning::"},{"line_number":208,"context_line":"        See `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ for more details on how to construct a Module custom resource."},{"line_number":209,"context_line":"        It is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version of the application is running. Some configurations may not behave as expected."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"#. Building and loading the modules."},{"line_number":212,"context_line":"   You can create a |CRD| Module file and a ConfigMap as an additional step when you want the kernel-module-management application to build the module image. "}],"source_content_type":"text/x-rst","patch_set":9,"id":"a1c0efce_ca1c420d","line":209,"range":{"start_line":209,"start_character":66,"end_line":209,"end_character":69},"in_reply_to":"1ce025c0_58a61efc","updated":"2026-03-17 19:42:26.000000000","message":"Done","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":32187,"name":"Juanita-Balaraj","email":"juanita.balaraj@windriver.com","username":"jbalaraj"},"change_message_id":"b068c7df3617ffb4e3c6765a1181d46253c85473","unresolved":true,"context_lines":[{"line_number":208,"context_line":"        See `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ for more details on how to construct a Module custom resource."},{"line_number":209,"context_line":"        It is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version of the application is running. Some configurations may not behave as expected."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"#. Building and loading the modules."},{"line_number":212,"context_line":"   You can create a |CRD| Module file and a ConfigMap as an additional step when you want the kernel-module-management application to build the module image. "},{"line_number":213,"context_line":"   The ConfigMap will carry the Dockerfile content mentioned previously, and the CRD Module will reference the newly created ConfigMap."},{"line_number":214,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"803a5f24_a95db242","line":211,"range":{"start_line":211,"start_character":3,"end_line":211,"end_character":36},"updated":"2026-03-16 22:29:41.000000000","message":"Is this required?","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"88ed460f1dfbbca4269e0241cd3b0e835399b84a","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        See `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ for more details on how to construct a Module custom resource."},{"line_number":209,"context_line":"        It is not possible to select documentation for a specific KMM version, so the docs do not take into consideration which version of the application is running. Some configurations may not behave as expected."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"#. Building and loading the modules."},{"line_number":212,"context_line":"   You can create a |CRD| Module file and a ConfigMap as an additional step when you want the kernel-module-management application to build the module image. "},{"line_number":213,"context_line":"   The ConfigMap will carry the Dockerfile content mentioned previously, and the CRD Module will reference the newly created ConfigMap."},{"line_number":214,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"524d9571_884aac4d","line":211,"range":{"start_line":211,"start_character":3,"end_line":211,"end_character":36},"in_reply_to":"803a5f24_a95db242","updated":"2026-03-19 13:27:21.000000000","message":"converted from numbered bullet list item to subtitle","commit_id":"38e471f2e53da5f0d45a4cdd51704294e633c917"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"9a730098cef4f7760711546c6464ac43188b45c3","unresolved":true,"context_lines":[{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the .ko files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"#. This Dockerfile example uses two stages. The first stage builds the module(s) and the second one builds an image containing the module files and required tools."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    .. code-block:: none"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"f3a14b79_0c3aedf2","line":130,"range":{"start_line":130,"start_character":0,"end_line":130,"end_character":163},"updated":"2026-03-17 21:08:12.000000000","message":"Fix indentation in the step as the output has errors https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_675/openstack/675167cb0d334f0395b422427aae3aee/docs/node_management/kubernetes/kernel-module-management-application-b5e83f99936a.html","commit_id":"2794b0d47b5ee084cd2928d1041769e6ec2a1f43"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"d15b8f147257ee233bc95551dcfcb96c59318657","unresolved":false,"context_lines":[{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the .ko files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"#. This Dockerfile example uses two stages. The first stage builds the module(s) and the second one builds an image containing the module files and required tools."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    .. code-block:: none"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5c08a269_ccc749f2","line":130,"range":{"start_line":130,"start_character":0,"end_line":130,"end_character":163},"in_reply_to":"f3a14b79_0c3aedf2","updated":"2026-03-18 19:55:23.000000000","message":"Done","commit_id":"2794b0d47b5ee084cd2928d1041769e6ec2a1f43"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"9a730098cef4f7760711546c6464ac43188b45c3","unresolved":true,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"With this Dockerfile created, it is possible to build the image passing the current |prod| kernel version \"6.12.0-1-amd64\" as a build argument when running ``docker build``."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    .. warning::"},{"line_number":150,"context_line":"        The KERNEL_FULL_VERSION variable should always match the current |prod| kernel version, otherwise the module will not be loaded by the application."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    .. warning::"},{"line_number":153,"context_line":"        With new versions of |prod|, the kernel version could change, creating the necessity to rebuild the module image matching the new kernel version, before reapplying it."},{"line_number":154,"context_line":"        Otherwise, the module will experience an outage while the system builds the new version of the kernel module."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Load Module images"}],"source_content_type":"text/x-rst","patch_set":10,"id":"775c1b19_c2e4eb5b","line":154,"range":{"start_line":149,"start_character":0,"end_line":154,"end_character":117},"updated":"2026-03-17 21:08:12.000000000","message":"Fix indentation as output has formatting errors https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_675/openstack/675167cb0d334f0395b422427aae3aee/docs/node_management/kubernetes/kernel-module-management-application-b5e83f99936a.html","commit_id":"2794b0d47b5ee084cd2928d1041769e6ec2a1f43"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"d15b8f147257ee233bc95551dcfcb96c59318657","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"With this Dockerfile created, it is possible to build the image passing the current |prod| kernel version \"6.12.0-1-amd64\" as a build argument when running ``docker build``."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    .. warning::"},{"line_number":150,"context_line":"        The KERNEL_FULL_VERSION variable should always match the current |prod| kernel version, otherwise the module will not be loaded by the application."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    .. warning::"},{"line_number":153,"context_line":"        With new versions of |prod|, the kernel version could change, creating the necessity to rebuild the module image matching the new kernel version, before reapplying it."},{"line_number":154,"context_line":"        Otherwise, the module will experience an outage while the system builds the new version of the kernel module."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Load Module images"}],"source_content_type":"text/x-rst","patch_set":10,"id":"cb55474f_6f39b078","line":154,"range":{"start_line":149,"start_character":0,"end_line":154,"end_character":117},"in_reply_to":"775c1b19_c2e4eb5b","updated":"2026-03-18 19:55:23.000000000","message":"Done","commit_id":"2794b0d47b5ee084cd2928d1041769e6ec2a1f43"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"9a730098cef4f7760711546c6464ac43188b45c3","unresolved":true,"context_lines":[{"line_number":161,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":162,"context_line":"   For these cases, just push the built image to the registry in use and create a |CRD| Module."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    .. note::"},{"line_number":165,"context_line":"       Besides using a public container registry, in a Distributed Cloud environment the module image can also be pushed to the Central Cloud registry and pulled from it by the subclouds."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    .. code-block:: none"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"       cat \u003c\u003c \u0027EOF\u0027 \u003e hello_world_mod.yaml"},{"line_number":170,"context_line":"       apiVersion: kmm.sigs.x-k8s.io/v1beta1"},{"line_number":171,"context_line":"       kind: Module"},{"line_number":172,"context_line":"       metadata:"},{"line_number":173,"context_line":"         name: kmm-hello-world"},{"line_number":174,"context_line":"         namespace: kernel-module-management"},{"line_number":175,"context_line":"       spec:"},{"line_number":176,"context_line":"         moduleLoader:"},{"line_number":177,"context_line":"           container:"},{"line_number":178,"context_line":"             modprobe:"},{"line_number":179,"context_line":"               moduleName: hello_world_dmesg"},{"line_number":180,"context_line":"             kernelMappings:"},{"line_number":181,"context_line":"               - literal: \"6.12.0-1-amd64\""},{"line_number":182,"context_line":"                 containerImage: docker.io/example/kmm-hello-world:stx.12.0-6.12.0-1-amd64"},{"line_number":183,"context_line":"                 registryTLS:"},{"line_number":184,"context_line":"                   insecure: false"},{"line_number":185,"context_line":"                   insecureSkipTLSVerify: true"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"         imageRepoSecret:"},{"line_number":188,"context_line":"           name: \"kmm-registry-secret\""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"         selector:"},{"line_number":191,"context_line":"           kubernetes.io/os: linux"},{"line_number":192,"context_line":"           kubernetes.io/hostname: controller-0"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"         tolerations:"},{"line_number":195,"context_line":"           - key: \"services\""},{"line_number":196,"context_line":"             operator: \"Equal\""},{"line_number":197,"context_line":"             value: \"disabled\""},{"line_number":198,"context_line":"             effect: \"NoExecute\""},{"line_number":199,"context_line":"       EOF"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    To load the module, apply the CRD created by running the following command:"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    .. code-block:: none"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        ~(keystone_admin)]$ kubectl apply -f hello_world_mod.yaml"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    .. warning::"},{"line_number":208,"context_line":"        See `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ for more details on how to construct a Module custom resource."},{"line_number":209,"context_line":"        It is not possible to select documentation for a specific |KMM| version, so the docs do not take into consideration which version of the application is running. Some configurations may not behave as expected."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"#. Building and loading the modules."},{"line_number":212,"context_line":"   You can create a |CRD| Module file and a ConfigMap as an additional step when you want the kernel-module-management application to build the module image. "},{"line_number":213,"context_line":"   The ConfigMap will carry the Dockerfile content mentioned previously, and the |CRD| Module will reference the newly created ConfigMap."}],"source_content_type":"text/x-rst","patch_set":10,"id":"35d5cfc5_3679bf28","line":210,"range":{"start_line":164,"start_character":4,"end_line":210,"end_character":0},"updated":"2026-03-17 21:08:12.000000000","message":"Fix indentation as output has grey bar errors","commit_id":"2794b0d47b5ee084cd2928d1041769e6ec2a1f43"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"d15b8f147257ee233bc95551dcfcb96c59318657","unresolved":false,"context_lines":[{"line_number":161,"context_line":"   One way to load the module in the application is pre-building the module image in a lab and then shipping it out to all the sites to avoid the overhead of building separately for each site."},{"line_number":162,"context_line":"   For these cases, just push the built image to the registry in use and create a |CRD| Module."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    .. note::"},{"line_number":165,"context_line":"       Besides using a public container registry, in a Distributed Cloud environment the module image can also be pushed to the Central Cloud registry and pulled from it by the subclouds."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    .. code-block:: none"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"       cat \u003c\u003c \u0027EOF\u0027 \u003e hello_world_mod.yaml"},{"line_number":170,"context_line":"       apiVersion: kmm.sigs.x-k8s.io/v1beta1"},{"line_number":171,"context_line":"       kind: Module"},{"line_number":172,"context_line":"       metadata:"},{"line_number":173,"context_line":"         name: kmm-hello-world"},{"line_number":174,"context_line":"         namespace: kernel-module-management"},{"line_number":175,"context_line":"       spec:"},{"line_number":176,"context_line":"         moduleLoader:"},{"line_number":177,"context_line":"           container:"},{"line_number":178,"context_line":"             modprobe:"},{"line_number":179,"context_line":"               moduleName: hello_world_dmesg"},{"line_number":180,"context_line":"             kernelMappings:"},{"line_number":181,"context_line":"               - literal: \"6.12.0-1-amd64\""},{"line_number":182,"context_line":"                 containerImage: docker.io/example/kmm-hello-world:stx.12.0-6.12.0-1-amd64"},{"line_number":183,"context_line":"                 registryTLS:"},{"line_number":184,"context_line":"                   insecure: false"},{"line_number":185,"context_line":"                   insecureSkipTLSVerify: true"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"         imageRepoSecret:"},{"line_number":188,"context_line":"           name: \"kmm-registry-secret\""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"         selector:"},{"line_number":191,"context_line":"           kubernetes.io/os: linux"},{"line_number":192,"context_line":"           kubernetes.io/hostname: controller-0"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"         tolerations:"},{"line_number":195,"context_line":"           - key: \"services\""},{"line_number":196,"context_line":"             operator: \"Equal\""},{"line_number":197,"context_line":"             value: \"disabled\""},{"line_number":198,"context_line":"             effect: \"NoExecute\""},{"line_number":199,"context_line":"       EOF"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    To load the module, apply the CRD created by running the following command:"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    .. code-block:: none"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        ~(keystone_admin)]$ kubectl apply -f hello_world_mod.yaml"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    .. warning::"},{"line_number":208,"context_line":"        See `kernel-module-management official documentation \u003chttps://kmm.sigs.k8s.io/documentation/deploy_kmod/\u003e`_ for more details on how to construct a Module custom resource."},{"line_number":209,"context_line":"        It is not possible to select documentation for a specific |KMM| version, so the docs do not take into consideration which version of the application is running. Some configurations may not behave as expected."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"#. Building and loading the modules."},{"line_number":212,"context_line":"   You can create a |CRD| Module file and a ConfigMap as an additional step when you want the kernel-module-management application to build the module image. "},{"line_number":213,"context_line":"   The ConfigMap will carry the Dockerfile content mentioned previously, and the |CRD| Module will reference the newly created ConfigMap."}],"source_content_type":"text/x-rst","patch_set":10,"id":"714dfb55_9f7cf9e8","line":210,"range":{"start_line":164,"start_character":4,"end_line":210,"end_character":0},"in_reply_to":"35d5cfc5_3679bf28","updated":"2026-03-18 19:55:23.000000000","message":"Done","commit_id":"2794b0d47b5ee084cd2928d1041769e6ec2a1f43"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"212ed8e84de653cf1bf8832289a0d58bfdd4301a","unresolved":true,"context_lines":[{"line_number":102,"context_line":"Create Kernel Module Images"},{"line_number":103,"context_line":"***************************"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"As explained in the `kernel-module-management docs \u003chttps://kmm.sigs.k8s.io/documentation/kmod_image/#depmod\u003e`_ to create your own out-of-tree kernel module it is"},{"line_number":106,"context_line":"necessary to have an image with the kernel headers to build your own module files against it."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":".. code-block:: none"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"c6982259_fe19509e","line":106,"range":{"start_line":105,"start_character":0,"end_line":106,"end_character":93},"updated":"2026-03-19 20:03:50.000000000","message":"Maybe reword:\n\nTo create your own out-of-tree kernel module it is necessary to have an image with the kernel headers to build your own module files against it.\n\nFor more details, see `Creating a kmod image \u003chttps://kmm.sigs.k8s.io/documentation/kmod_image/#depmod\u003e`_.","commit_id":"e6f439644060bb89f86f4ade917ca2c95d6e1b56"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"c3d93f546178ce9e8a4dcc1db0ac714da336f903","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Create Kernel Module Images"},{"line_number":103,"context_line":"***************************"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"As explained in the `kernel-module-management docs \u003chttps://kmm.sigs.k8s.io/documentation/kmod_image/#depmod\u003e`_ to create your own out-of-tree kernel module it is"},{"line_number":106,"context_line":"necessary to have an image with the kernel headers to build your own module files against it."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":".. code-block:: none"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"5b5442e7_55bbab51","line":106,"range":{"start_line":105,"start_character":0,"end_line":106,"end_character":93},"in_reply_to":"c6982259_fe19509e","updated":"2026-03-20 14:49:50.000000000","message":"Done","commit_id":"e6f439644060bb89f86f4ade917ca2c95d6e1b56"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"212ed8e84de653cf1bf8832289a0d58bfdd4301a","unresolved":true,"context_lines":[{"line_number":120,"context_line":"    gcc \\"},{"line_number":121,"context_line":"    linux-headers-${KERNEL_FULL_VERSION}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The |prod| project already provides a `pre-built container image \u003chttps://hub.docker.com/layers/starlingx/kmm-builder/stx.12.0-v1.0.0/images/sha256-ede1bcb870c910744c83ddf4b4727399e3870f9bf0bd3d32a1050d24ad1cc7c1\u003e`_"},{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the |prod| ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"4b735608_2e7bbef1","line":123,"range":{"start_line":123,"start_character":19,"end_line":123,"end_character":27},"updated":"2026-03-19 20:03:50.000000000","message":"remove","commit_id":"e6f439644060bb89f86f4ade917ca2c95d6e1b56"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"c3d93f546178ce9e8a4dcc1db0ac714da336f903","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    gcc \\"},{"line_number":121,"context_line":"    linux-headers-${KERNEL_FULL_VERSION}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The |prod| project already provides a `pre-built container image \u003chttps://hub.docker.com/layers/starlingx/kmm-builder/stx.12.0-v1.0.0/images/sha256-ede1bcb870c910744c83ddf4b4727399e3870f9bf0bd3d32a1050d24ad1cc7c1\u003e`_"},{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the |prod| ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"374fc04d_703f6bdc","line":123,"range":{"start_line":123,"start_character":19,"end_line":123,"end_character":27},"in_reply_to":"4b735608_2e7bbef1","updated":"2026-03-20 14:49:50.000000000","message":"Done","commit_id":"e6f439644060bb89f86f4ade917ca2c95d6e1b56"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"212ed8e84de653cf1bf8832289a0d58bfdd4301a","unresolved":true,"context_lines":[{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the |prod| ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the .ko files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"This Dockerfile example uses two stages. The first stage builds the module(s) and the second one builds an image containing the module files and required tools."}],"source_content_type":"text/x-rst","patch_set":15,"id":"89c3bdfb_df3e6894","line":127,"range":{"start_line":127,"start_character":134,"end_line":127,"end_character":137},"updated":"2026-03-19 20:03:50.000000000","message":"``.ko``","commit_id":"e6f439644060bb89f86f4ade917ca2c95d6e1b56"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"c3d93f546178ce9e8a4dcc1db0ac714da336f903","unresolved":false,"context_lines":[{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the |prod| ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the .ko files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"This Dockerfile example uses two stages. The first stage builds the module(s) and the second one builds an image containing the module files and required tools."}],"source_content_type":"text/x-rst","patch_set":15,"id":"b9321a6f_c7b5354d","line":127,"range":{"start_line":127,"start_character":134,"end_line":127,"end_character":137},"in_reply_to":"89c3bdfb_df3e6894","updated":"2026-03-20 14:49:50.000000000","message":"Done","commit_id":"e6f439644060bb89f86f4ade917ca2c95d6e1b56"},{"author":{"_account_id":33342,"name":"Elisamara Aoki Gonçalves","email":"elisamaraaoki.goncalves@windriver.com","username":"egoncalv"},"change_message_id":"212ed8e84de653cf1bf8832289a0d58bfdd4301a","unresolved":true,"context_lines":[{"line_number":161,"context_line":"For these cases, just push the built image to the registry in use and create a |CRD| Module."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":".. note::"},{"line_number":164,"context_line":"   Besides using a public container registry, in a Distributed Cloud environment the module image can also be pushed to the Central Cloud registry and pulled from it by the subclouds."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":".. code-block:: none"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"f59d4e56_699d8c30","line":164,"range":{"start_line":164,"start_character":3,"end_line":164,"end_character":11},"updated":"2026-03-19 20:03:50.000000000","message":"Informal, maybe use: In addition to using a public container (..)","commit_id":"e6f439644060bb89f86f4ade917ca2c95d6e1b56"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"c3d93f546178ce9e8a4dcc1db0ac714da336f903","unresolved":false,"context_lines":[{"line_number":161,"context_line":"For these cases, just push the built image to the registry in use and create a |CRD| Module."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":".. note::"},{"line_number":164,"context_line":"   Besides using a public container registry, in a Distributed Cloud environment the module image can also be pushed to the Central Cloud registry and pulled from it by the subclouds."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":".. code-block:: none"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"8d18bd85_f9a63b18","line":164,"range":{"start_line":164,"start_character":3,"end_line":164,"end_character":11},"in_reply_to":"f59d4e56_699d8c30","updated":"2026-03-20 14:49:50.000000000","message":"Done","commit_id":"e6f439644060bb89f86f4ade917ca2c95d6e1b56"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"278c2eaa8b19fe9eaf8b8602c8ba2e6d4806dc5d","unresolved":true,"context_lines":[{"line_number":120,"context_line":"    gcc \\"},{"line_number":121,"context_line":"    linux-headers-${KERNEL_FULL_VERSION}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The |prod| project provides a `pre-built container image \u003chttps://hub.docker.com/layers/starlingx/kmm-builder/stx.12.0-v1.0.0/images/sha256-ede1bcb870c910744c83ddf4b4727399e3870f9bf0bd3d32a1050d24ad1cc7c1\u003e`_"},{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the |prod| ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"617c51fb_92476d75","line":123,"range":{"start_line":123,"start_character":0,"end_line":123,"end_character":207},"updated":"2026-03-20 20:17:50.000000000","message":"this gives one specific version of the image.  What happens when we patch the kernel?  How do customers know which version of the kmm-builder container image they should use, and where will they find a list of the various versions available?","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"3614002ec32ddfe418c4a1a665d5229c5a559b8d","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    gcc \\"},{"line_number":121,"context_line":"    linux-headers-${KERNEL_FULL_VERSION}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The |prod| project provides a `pre-built container image \u003chttps://hub.docker.com/layers/starlingx/kmm-builder/stx.12.0-v1.0.0/images/sha256-ede1bcb870c910744c83ddf4b4727399e3870f9bf0bd3d32a1050d24ad1cc7c1\u003e`_"},{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the |prod| ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"77224eb1_6d469bfd","line":123,"range":{"start_line":123,"start_character":0,"end_line":123,"end_character":207},"in_reply_to":"617c51fb_92476d75","updated":"2026-03-23 21:21:57.000000000","message":"A new task will be added to the Kernel Model Management Application upversion story to address the issue of keeping the kernel, kmm-builder image and documentation versions in sync.","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"278c2eaa8b19fe9eaf8b8602c8ba2e6d4806dc5d","unresolved":true,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The |prod| project provides a `pre-built container image \u003chttps://hub.docker.com/layers/starlingx/kmm-builder/stx.12.0-v1.0.0/images/sha256-ede1bcb870c910744c83ddf4b4727399e3870f9bf0bd3d32a1050d24ad1cc7c1\u003e`_"},{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the |prod| ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the `.ko` files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."}],"source_content_type":"text/x-rst","patch_set":16,"id":"df5814bd_7ee777d6","line":125,"range":{"start_line":125,"start_character":0,"end_line":125,"end_character":66},"updated":"2026-03-20 20:17:50.000000000","message":"maybe mention that it can also be used as example code showing how to build their own module?","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"95e8422fe879f18f81428bbe87b97d46f3bbaab9","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The |prod| project provides a `pre-built container image \u003chttps://hub.docker.com/layers/starlingx/kmm-builder/stx.12.0-v1.0.0/images/sha256-ede1bcb870c910744c83ddf4b4727399e3870f9bf0bd3d32a1050d24ad1cc7c1\u003e`_"},{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the |prod| ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the `.ko` files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."}],"source_content_type":"text/x-rst","patch_set":16,"id":"a1e2a92e_69a1201c","line":125,"range":{"start_line":125,"start_character":0,"end_line":125,"end_character":66},"in_reply_to":"df5814bd_7ee777d6","updated":"2026-03-23 20:07:53.000000000","message":"added to the text how structure can be followed by the user to create their own modules.","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"278c2eaa8b19fe9eaf8b8602c8ba2e6d4806dc5d","unresolved":true,"context_lines":[{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the |prod| ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the `.ko` files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"This Dockerfile example uses two stages. The first stage builds the module(s) and the second one builds an image containing the module files and required tools."}],"source_content_type":"text/x-rst","patch_set":16,"id":"d059cadc_07b80c73","line":127,"range":{"start_line":127,"start_character":51,"end_line":127,"end_character":98},"updated":"2026-03-20 20:17:50.000000000","message":"Maybe mention something about providing the source code for the kernel module that the customer wants to build?","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"95e8422fe879f18f81428bbe87b97d46f3bbaab9","unresolved":false,"context_lines":[{"line_number":124,"context_line":"with the tooling and source code to enable you to build your kernel modules inside the |prod| ecosystem. This pre-built image also includes a `hello_world module \u003chttps://opendev.org/starlingx/app-kernel-module-management/src/branch/master/tools/builder-image/debian/docker/hello-world-module\u003e`_"},{"line_number":125,"context_line":"example that can be used to test the kernel-module-management app."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"To create your own module image it is necessary to create a Dockerfile building the wanted modules. The final image only requires the `.ko` files from the built module,"},{"line_number":128,"context_line":"therefore a multi-stage build strategy is advised to create a lighter image, without unnecessary packages and files."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"This Dockerfile example uses two stages. The first stage builds the module(s) and the second one builds an image containing the module files and required tools."}],"source_content_type":"text/x-rst","patch_set":16,"id":"df58cb50_673a9882","line":127,"range":{"start_line":127,"start_character":51,"end_line":127,"end_character":98},"in_reply_to":"d059cadc_07b80c73","updated":"2026-03-23 20:07:53.000000000","message":"added source code for kernel module along as with the Dockerfile as requirements to build module images.","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"278c2eaa8b19fe9eaf8b8602c8ba2e6d4806dc5d","unresolved":true,"context_lines":[{"line_number":150,"context_line":"   The KERNEL_FULL_VERSION variable should always match the current |prod| kernel version, otherwise the module will not be loaded by the application."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. warning::"},{"line_number":153,"context_line":"   With new versions of |prod|, the kernel version could change, creating the necessity to rebuild the module image matching the new kernel version, before reapplying it."},{"line_number":154,"context_line":"   Otherwise, the module will experience an outage while the system builds the new version of the kernel module."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Load Module images"}],"source_content_type":"text/x-rst","patch_set":16,"id":"2a9530bf_47980c02","line":154,"range":{"start_line":153,"start_character":0,"end_line":154,"end_character":112},"updated":"2026-03-20 20:17:50.000000000","message":"you should probably mention that a new version of the kmm-builder container image would be required in this case.","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"95e8422fe879f18f81428bbe87b97d46f3bbaab9","unresolved":false,"context_lines":[{"line_number":150,"context_line":"   The KERNEL_FULL_VERSION variable should always match the current |prod| kernel version, otherwise the module will not be loaded by the application."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. warning::"},{"line_number":153,"context_line":"   With new versions of |prod|, the kernel version could change, creating the necessity to rebuild the module image matching the new kernel version, before reapplying it."},{"line_number":154,"context_line":"   Otherwise, the module will experience an outage while the system builds the new version of the kernel module."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Load Module images"}],"source_content_type":"text/x-rst","patch_set":16,"id":"23069ad5_d59a587c","line":154,"range":{"start_line":153,"start_character":0,"end_line":154,"end_character":112},"in_reply_to":"2a9530bf_47980c02","updated":"2026-03-23 20:07:53.000000000","message":"added mention to the kmm-builder image, reinforcing the kernel module images needs to be built matching kernel and builder image versions.","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"278c2eaa8b19fe9eaf8b8602c8ba2e6d4806dc5d","unresolved":true,"context_lines":[{"line_number":177,"context_line":"         modprobe:"},{"line_number":178,"context_line":"           moduleName: hello_world_dmesg"},{"line_number":179,"context_line":"         kernelMappings:"},{"line_number":180,"context_line":"           - literal: \"6.12.0-1-amd64\""},{"line_number":181,"context_line":"             containerImage: docker.io/example/kmm-hello-world:stx.12.0-6.12.0-1-amd64"},{"line_number":182,"context_line":"             registryTLS:"},{"line_number":183,"context_line":"               insecure: false"}],"source_content_type":"text/x-rst","patch_set":16,"id":"0615e413_07f622d1","line":180,"range":{"start_line":180,"start_character":13,"end_line":180,"end_character":38},"updated":"2026-03-20 20:17:50.000000000","message":"you may want to highlight that the kernelMappings will need to be updated to deal with newer kernels as they come out.","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"95e8422fe879f18f81428bbe87b97d46f3bbaab9","unresolved":false,"context_lines":[{"line_number":177,"context_line":"         modprobe:"},{"line_number":178,"context_line":"           moduleName: hello_world_dmesg"},{"line_number":179,"context_line":"         kernelMappings:"},{"line_number":180,"context_line":"           - literal: \"6.12.0-1-amd64\""},{"line_number":181,"context_line":"             containerImage: docker.io/example/kmm-hello-world:stx.12.0-6.12.0-1-amd64"},{"line_number":182,"context_line":"             registryTLS:"},{"line_number":183,"context_line":"               insecure: false"}],"source_content_type":"text/x-rst","patch_set":16,"id":"53b6bd19_5cc5a1f4","line":180,"range":{"start_line":180,"start_character":13,"end_line":180,"end_character":38},"in_reply_to":"0615e413_07f622d1","updated":"2026-03-23 20:07:53.000000000","message":"added note about the need of updating kernelMappings along with new kernel version(s).","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"278c2eaa8b19fe9eaf8b8602c8ba2e6d4806dc5d","unresolved":true,"context_lines":[{"line_number":178,"context_line":"           moduleName: hello_world_dmesg"},{"line_number":179,"context_line":"         kernelMappings:"},{"line_number":180,"context_line":"           - literal: \"6.12.0-1-amd64\""},{"line_number":181,"context_line":"             containerImage: docker.io/example/kmm-hello-world:stx.12.0-6.12.0-1-amd64"},{"line_number":182,"context_line":"             registryTLS:"},{"line_number":183,"context_line":"               insecure: false"},{"line_number":184,"context_line":"               insecureSkipTLSVerify: true"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5492d079_bd628402","line":181,"range":{"start_line":181,"start_character":29,"end_line":181,"end_character":86},"updated":"2026-03-20 20:17:50.000000000","message":"this doesn\u0027t seem to be a valid image available from upstream","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"95e8422fe879f18f81428bbe87b97d46f3bbaab9","unresolved":false,"context_lines":[{"line_number":178,"context_line":"           moduleName: hello_world_dmesg"},{"line_number":179,"context_line":"         kernelMappings:"},{"line_number":180,"context_line":"           - literal: \"6.12.0-1-amd64\""},{"line_number":181,"context_line":"             containerImage: docker.io/example/kmm-hello-world:stx.12.0-6.12.0-1-amd64"},{"line_number":182,"context_line":"             registryTLS:"},{"line_number":183,"context_line":"               insecure: false"},{"line_number":184,"context_line":"               insecureSkipTLSVerify: true"}],"source_content_type":"text/x-rst","patch_set":16,"id":"c283aaa6_f0c50ef7","line":181,"range":{"start_line":181,"start_character":29,"end_line":181,"end_character":86},"in_reply_to":"5492d079_bd628402","updated":"2026-03-23 20:07:53.000000000","message":"changed back to using registry.local as example.","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"278c2eaa8b19fe9eaf8b8602c8ba2e6d4806dc5d","unresolved":true,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"     selector:"},{"line_number":190,"context_line":"       kubernetes.io/os: linux"},{"line_number":191,"context_line":"       kubernetes.io/hostname: controller-0"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"     tolerations:"},{"line_number":194,"context_line":"       - key: \"services\""}],"source_content_type":"text/x-rst","patch_set":16,"id":"bc003e1a_c84b5ca3","line":191,"range":{"start_line":191,"start_character":6,"end_line":191,"end_character":43},"updated":"2026-03-20 20:17:50.000000000","message":"do we document somewhere that the hostname is optional?","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"95e8422fe879f18f81428bbe87b97d46f3bbaab9","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"     selector:"},{"line_number":190,"context_line":"       kubernetes.io/os: linux"},{"line_number":191,"context_line":"       kubernetes.io/hostname: controller-0"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"     tolerations:"},{"line_number":194,"context_line":"       - key: \"services\""}],"source_content_type":"text/x-rst","patch_set":16,"id":"40dc5fbe_adbab8dc","line":191,"range":{"start_line":191,"start_character":6,"end_line":191,"end_character":43},"in_reply_to":"bc003e1a_c84b5ca3","updated":"2026-03-23 20:07:53.000000000","message":"added note about selecting by node type.","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"278c2eaa8b19fe9eaf8b8602c8ba2e6d4806dc5d","unresolved":true,"context_lines":[{"line_number":253,"context_line":"            moduleName: hello_world_dmesg"},{"line_number":254,"context_line":"          kernelMappings:"},{"line_number":255,"context_line":"            - literal: \"6.12.0-1-amd64\""},{"line_number":256,"context_line":"              containerImage: docker.io/example/kmm-hello-world:stx.12.0-6.12.0-1-amd64"},{"line_number":257,"context_line":"              build:"},{"line_number":258,"context_line":"                buildArgs:"},{"line_number":259,"context_line":"                  - name: KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1820254a_94c05b18","line":256,"range":{"start_line":256,"start_character":30,"end_line":256,"end_character":87},"updated":"2026-03-20 20:17:50.000000000","message":"this doesn\u0027t seem to be a real image that is available to download","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"},{"author":{"_account_id":37661,"name":"Eduardo Franca","display_name":"Eduardo França","email":"eduardo.dossantosfranca@windriver.com","username":"edossan1"},"change_message_id":"95e8422fe879f18f81428bbe87b97d46f3bbaab9","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            moduleName: hello_world_dmesg"},{"line_number":254,"context_line":"          kernelMappings:"},{"line_number":255,"context_line":"            - literal: \"6.12.0-1-amd64\""},{"line_number":256,"context_line":"              containerImage: docker.io/example/kmm-hello-world:stx.12.0-6.12.0-1-amd64"},{"line_number":257,"context_line":"              build:"},{"line_number":258,"context_line":"                buildArgs:"},{"line_number":259,"context_line":"                  - name: KERNEL_FULL_VERSION"}],"source_content_type":"text/x-rst","patch_set":16,"id":"d782a739_040d5217","line":256,"range":{"start_line":256,"start_character":30,"end_line":256,"end_character":87},"in_reply_to":"1820254a_94c05b18","updated":"2026-03-23 20:07:53.000000000","message":"changed back to using registry.local as example.","commit_id":"7e78b280d28b8371897d36b9cab01c27ed95d165"}]}
