)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"3f56a710235a47ecb181cac548663e0c74785f2e","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fixes not being able to add additional plugins at build time due to the"},{"line_number":10,"context_line":"`grafana` volume being mounted over the existing `/var/lib/grafana`"},{"line_number":11,"context_line":"directory. This is fixed by removing the `grafana` volume. This however"},{"line_number":12,"context_line":"leaves behind the volume which should be removed with `docker volume rm"},{"line_number":13,"context_line":"grafana`."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"83d82606_6baf12e9","line":11,"range":{"start_line":11,"start_character":11,"end_line":11,"end_character":58},"updated":"2024-01-16 11:13:25.000000000","message":"please adjust the commit message to match the actual code.\n\nThis is fixed by instead mounting the more narrow `/var/Lib/grafana/dashboards` directory.\n\nThanks","commit_id":"0ceae45cf8ba1dc5a7c681ffc9df6f971c25feca"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"27921724f7313a70e2416d380e220e9dd195a85f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fixes not being able to add additional plugins at build time due to the"},{"line_number":10,"context_line":"`grafana` volume being mounted over the existing `/var/lib/grafana`"},{"line_number":11,"context_line":"directory. This is fixed by removing the `grafana` volume. This however"},{"line_number":12,"context_line":"leaves behind the volume which should be removed with `docker volume rm"},{"line_number":13,"context_line":"grafana`."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"e1018916_fc8ad59c","line":11,"range":{"start_line":11,"start_character":11,"end_line":11,"end_character":58},"in_reply_to":"83d82606_6baf12e9","updated":"2024-01-30 19:15:50.000000000","message":"Done","commit_id":"0ceae45cf8ba1dc5a7c681ffc9df6f971c25feca"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"0ec0c822bac79a4ab66b004ee88b9a212d6d1608","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a669fb55_a19105f6","updated":"2023-10-24 11:03:04.000000000","message":"Can we remove the volume automatically during deploy?","commit_id":"c6cb2e858503dd2066ba74590f3b8e199f8f6b43"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"81a78a79a3663ffed5b4d269370d9083a62e51a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bcb6ad8a_54fa8fa5","in_reply_to":"120e5ae1_a19cd87d","updated":"2023-11-10 15:59:54.000000000","message":"Done","commit_id":"c6cb2e858503dd2066ba74590f3b8e199f8f6b43"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"3444704fe0afbfd40303b0623bcae4aef0c2eeea","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"73c070a6_e46255d8","in_reply_to":"42183547_06066d9e","updated":"2023-10-24 18:18:10.000000000","message":"Just put a task in roles/grafana/tasks/post_config.yml that ensures that the volume is absent?","commit_id":"c6cb2e858503dd2066ba74590f3b8e199f8f6b43"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"bdbaf00b7d40210f936eb1aa26f36dae7be9c202","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"120e5ae1_a19cd87d","in_reply_to":"73c070a6_e46255d8","updated":"2023-10-27 09:47:27.000000000","message":"+1, although I\u0027ve suggested keeping it around for one release, if people have installed plugins via the CLI/UI.","commit_id":"c6cb2e858503dd2066ba74590f3b8e199f8f6b43"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"12cbecdc1f418e971ce5d496b3b426e42975e3e7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"42183547_06066d9e","in_reply_to":"a669fb55_a19105f6","updated":"2023-10-24 11:04:52.000000000","message":"How do you propose doing this? I\u0027m not too sure how we would go about this.","commit_id":"c6cb2e858503dd2066ba74590f3b8e199f8f6b43"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"eebec3b4d9989e1fdab8795632db34b0c5c2d89e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b7adfe10_7a4b229c","updated":"2023-10-25 13:39:42.000000000","message":"Are we sure there is no persistent state written the /var/lib/grafana?","commit_id":"bb44827c78ecbd6464d85a68074b44a1eb9d77e4"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"3d1678d92513fca13ed96128f122819b6896d0af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"004a07e2_34db4acd","updated":"2023-10-24 15:41:58.000000000","message":"had to ditch the narrowed down approach of using a volume only for dashboards as somewhere in the start script, it attempts to remove `/var/lib/grafana/dashboards` and fails as that is now a mountpoint","commit_id":"bb44827c78ecbd6464d85a68074b44a1eb9d77e4"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"bdbaf00b7d40210f936eb1aa26f36dae7be9c202","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9bdfd7ad_0e2dca3d","in_reply_to":"004a07e2_34db4acd","updated":"2023-10-27 09:47:27.000000000","message":"I reproduced this:\n\n`\nERROR:__main__:Unexpected error:                                                                       \nTraceback (most recent call last):                                                                     \n  File \"/usr/local/bin/kolla_set_configs\", line 424, in main                                           \n    execute_config_strategy(config)                                                                    \n  File \"/usr/local/bin/kolla_set_configs\", line 390, in execute_config_strategy                        \n    copy_config(config)                                                                                \n  File \"/usr/local/bin/kolla_set_configs\", line 304, in copy_config                                    \n    config_file.copy()                                                                                 \n  File \"/usr/local/bin/kolla_set_configs\", line 150, in copy                                           \n    self._delete_path(dest)                                                                            \n  File \"/usr/local/bin/kolla_set_configs\", line 107, in _delete_path                                   \n    shutil.rmtree(path)                                                                                \n  File \"/usr/lib64/python3.9/shutil.py\", line 740, in rmtree                                           \n    onerror(os.rmdir, path, sys.exc_info())                                                            \n  File \"/usr/lib64/python3.9/shutil.py\", line 738, in rmtree                                           \n    os.rmdir(path)                                                                                     \nOSError: [Errno 16] Device or resource busy: \u0027/var/lib/grafana/dashboards\u0027         `\n\nYou can prevent Kolla trying to remove the directory by adding `merge: true` to config.json. Eg.:\n\n```\n        {                                                       \n            \"source\": \"/var/lib/kolla/config_files/dashboards/\",\n            \"dest\": \"/var/lib/grafana/dashboards/\",             \n            \"owner\": \"grafana\",                                 \n            \"perm\": \"0755\",                                     \n            \"optional\": true,                                   \n            \"merge\": true        \u003c-----------------                               \n        }                                                       \n```\n\nSee: https://docs.openstack.org/kolla/latest/admin/kolla_api.html#format-of-the-configuration-file","commit_id":"bb44827c78ecbd6464d85a68074b44a1eb9d77e4"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"5897386d4f1b907cac63e0a911ca0103abb699c7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6e204af4_65a8fbe2","in_reply_to":"3240306c_2554e513","updated":"2024-01-16 10:42:32.000000000","message":"this removes the ability for the user to provide custom dashboards via this volume, no?\n\nI would consider this a regression/bug, if I understand it correctly (I have personally used custom dashboards for grafana in the past and would consider it a rather frequent thing users do).","commit_id":"bb44827c78ecbd6464d85a68074b44a1eb9d77e4"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"e5c172c30c00e9c96d0b619c44719c9f0b773ef0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ae0be566_a30a3462","in_reply_to":"6e204af4_65a8fbe2","updated":"2024-01-16 10:52:12.000000000","message":"@Sven, Have you tried this patch?","commit_id":"bb44827c78ecbd6464d85a68074b44a1eb9d77e4"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"f18e7803a1cf9412c056c780496960b29e13b3fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4f42dbb5_33fd0e1c","in_reply_to":"ae0be566_a30a3462","updated":"2024-01-16 11:14:22.000000000","message":"no, why are you asking?","commit_id":"bb44827c78ecbd6464d85a68074b44a1eb9d77e4"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"89775930987170143d1cd388e276876cb6b53650","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f1ef66d3_2935c866","in_reply_to":"b7adfe10_7a4b229c","updated":"2023-10-25 14:02:28.000000000","message":"Only json based dashboards in /var/lib/grafana/dashboards - but those are the ones used for provisioning I think (the real ones are in the database)\n\n/var/lib/grafana]$ ls -la\ntotal 40\ndrwxr-xr-x 1 grafana grafana 4096 Oct 24 15:57 .\ndrwxr-xr-x 1 root    root    4096 Oct 24 14:50 ..\ndrwxr-x--- 3 grafana grafana 4096 Oct 24 14:50 alerting\ndrwx------ 2 grafana grafana 4096 Oct 24 14:50 csv\ndrwxr-xr-x 4 grafana grafana 4096 Oct 24 15:57 dashboards\ndrwxr-xr-x 1 grafana grafana 4096 Oct 24 15:21 plugins\ndrwx------ 2 grafana grafana 4096 Oct 24 14:50 png\n\nalerting for alert templates, csv is empty, plugins is for plugins and png is empty\n\nI guess the alternative is it use different path for plugins?","commit_id":"bb44827c78ecbd6464d85a68074b44a1eb9d77e4"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"c647fbc4b30bea0e4857a25323832c33fc023dad","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3240306c_2554e513","in_reply_to":"f1ef66d3_2935c866","updated":"2023-10-25 14:20:32.000000000","message":"Yes this is what I have seen too. \n\nThe issue/problem/concern with changing the plugins path is that it will differ from upstream grafana configs as they typically expect it at var/lib/grafana/plugins. \n\nAlso with changing the path it would have to be a kolla \u0026 kolla ansible change as kolla would need to install the plugins in the updated path. \n\nAs theres nothing that needs persisting in this volume I think we should remove it","commit_id":"bb44827c78ecbd6464d85a68074b44a1eb9d77e4"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"d5d9ca259acc91f97f32ce7fe0a3db12a82ec9f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d5a3710e_9f090330","updated":"2023-11-13 10:19:10.000000000","message":"Thanks for updating. The new volume looks good. Some small changes suggested inline.","commit_id":"a5052cb6afca4da05c472cb092f4995526009c2a"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"9cfe25eafd8aed46fd07d4131bb7bad19337de52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"bb544bed_2bf6afe3","updated":"2024-01-03 11:04:38.000000000","message":"Functionally good, but please fully address my comments from the previous review.","commit_id":"cf17b7db35163be4ab7253bc56af9c5bea7af401"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"8f1c9a498302cfe2327cb48ea9821887be90657b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"75f26c71_e64787e3","updated":"2024-01-16 10:45:21.000000000","message":"please instead narrow down the mount path to `/var/lib/grafana/dashboards` as stated in the bug report.\n\nI still have the feeling this bug should not exist. IIRC a usual docker filesystem is layered, so shouldn\u0027t build time and runtime plugins in theory be able to coexist, that is, the runtime mount would be layered on top of the build time mount and not completely replace it?","commit_id":"0ceae45cf8ba1dc5a7c681ffc9df6f971c25feca"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"e5c172c30c00e9c96d0b619c44719c9f0b773ef0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"e6510784_f5b24d48","in_reply_to":"75f26c71_e64787e3","updated":"2024-01-16 10:52:12.000000000","message":"Acknowledged.\n\nThe mountpath is indeed `/var/lib/grafana/dashboards`","commit_id":"0ceae45cf8ba1dc5a7c681ffc9df6f971c25feca"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"bd3cbab4c222476137dd2588c3e1203c33ddaa45","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"c92f5cc1_4c55e549","in_reply_to":"75f26c71_e64787e3","updated":"2024-01-16 10:50:59.000000000","message":"nvm the part about the runtime mounts, they of course obscure the build time directories and there seems to be no way around this - in docker - .\n\na hack would be to mount the directory somewhere else and use rsync to merge the two directories. I have currently no opinion if I like this approach myself. Probably the idea to narrow down the path to `/var/lib/grafana/dashboards` is the cleanest approach, currently.","commit_id":"0ceae45cf8ba1dc5a7c681ffc9df6f971c25feca"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"36438712bad0ba48051b43103f8a60cf72c9e5b7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"dba69c23_59e07acf","updated":"2024-02-08 10:40:43.000000000","message":"Thanks for updating. Please see comments in line.","commit_id":"47a818938a4700c165dff2be71267272850fa19d"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"72591aa5031b16c6228f1efce6ccd08c395ea1c8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"acf628d1_39dbf3e0","updated":"2024-02-12 16:30:55.000000000","message":"This looks fine now, thanks for updating Dawud.","commit_id":"8962b4081e25e97f500677b0b55e0800d2acf76f"}],"ansible/roles/grafana/defaults/main.yml":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"835b555e562a2a6d39ad42623c4fb8b82e1e2301","unresolved":true,"context_lines":[{"line_number":90,"context_line":"grafana_start_first_node_delay: 10"},{"line_number":91,"context_line":"grafana_start_first_node_retries: 12"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"#TODO: make this True in the D release"},{"line_number":94,"context_line":"grafana_remove_old_volume: false"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"############"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"83fd6017_c17f3117","line":93,"updated":"2024-01-03 12:52:01.000000000","message":"nit: It is conventional to include your name with the TODO (please see other existing TODO notes)","commit_id":"9d8bd12ed4ef2a548a14502173f2fd01d8f5a464"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"af7d54bd48a1bf80541e10ca339a3289951cf269","unresolved":false,"context_lines":[{"line_number":90,"context_line":"grafana_start_first_node_delay: 10"},{"line_number":91,"context_line":"grafana_start_first_node_retries: 12"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"#TODO: make this True in the D release"},{"line_number":94,"context_line":"grafana_remove_old_volume: false"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"############"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"261f5f0a_ccbf3687","line":93,"in_reply_to":"83fd6017_c17f3117","updated":"2024-01-05 10:27:44.000000000","message":"Done","commit_id":"9d8bd12ed4ef2a548a14502173f2fd01d8f5a464"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b202c3a7ad681f38cc136fa92a3b6b5bbd55d7bc","unresolved":true,"context_lines":[{"line_number":83,"context_line":"  - \"{{ node_config_directory }}/grafana/:{{ container_config_directory }}/:ro\""},{"line_number":84,"context_line":"  - \"/etc/localtime:/etc/localtime:ro\""},{"line_number":85,"context_line":"  - \"{{ \u0027/etc/timezone:/etc/timezone:ro\u0027 if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else \u0027\u0027 }}\""},{"line_number":86,"context_line":"  - \"grafana-dashboards:/var/lib/grafana/dashboards\""},{"line_number":87,"context_line":"  - \"kolla_logs:/var/log/kolla/\""},{"line_number":88,"context_line":"grafana_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":11,"id":"d3a0f050_a4ef31fd","line":86,"updated":"2024-01-11 12:30:58.000000000","message":"Minor consistency issue: named volumes use underscores rather than dashes in kolla-ansible.","commit_id":"a2931bf9583477c91256b9a5da03d5f8de88b038"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"5705cb02bfdee4549d4536f69b80c56d20fa59bc","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  - \"{{ node_config_directory }}/grafana/:{{ container_config_directory }}/:ro\""},{"line_number":84,"context_line":"  - \"/etc/localtime:/etc/localtime:ro\""},{"line_number":85,"context_line":"  - \"{{ \u0027/etc/timezone:/etc/timezone:ro\u0027 if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else \u0027\u0027 }}\""},{"line_number":86,"context_line":"  - \"grafana-dashboards:/var/lib/grafana/dashboards\""},{"line_number":87,"context_line":"  - \"kolla_logs:/var/log/kolla/\""},{"line_number":88,"context_line":"grafana_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":11,"id":"24d24596_a78226b7","line":86,"in_reply_to":"d3a0f050_a4ef31fd","updated":"2024-01-12 18:05:14.000000000","message":"Done","commit_id":"a2931bf9583477c91256b9a5da03d5f8de88b038"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"36438712bad0ba48051b43103f8a60cf72c9e5b7","unresolved":true,"context_lines":[{"line_number":83,"context_line":"  - \"{{ node_config_directory }}/grafana/:{{ container_config_directory }}/:ro\""},{"line_number":84,"context_line":"  - \"/etc/localtime:/etc/localtime:ro\""},{"line_number":85,"context_line":"  - \"{{ \u0027/etc/timezone:/etc/timezone:ro\u0027 if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else \u0027\u0027 }}\""},{"line_number":86,"context_line":"  - \"{{ node_config_directory }}/grafana/dashboards:/var/lib/grafana/dashboards/:ro\""},{"line_number":87,"context_line":"  - \"kolla_logs:/var/log/kolla/\""},{"line_number":88,"context_line":"grafana_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":14,"id":"cc746e19_66a5580d","line":86,"updated":"2024-02-08 10:40:43.000000000","message":"I think we could remove line 86, use the mount from line 83, and then copy the dashboards from the `container_config_directory` to `/var/lib/grafana/dashboards` via `grafana.json`?","commit_id":"47a818938a4700c165dff2be71267272850fa19d"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"2f896aae5503040815a280039e54388a247d88ba","unresolved":true,"context_lines":[{"line_number":83,"context_line":"  - \"{{ node_config_directory }}/grafana/:{{ container_config_directory }}/:ro\""},{"line_number":84,"context_line":"  - \"/etc/localtime:/etc/localtime:ro\""},{"line_number":85,"context_line":"  - \"{{ \u0027/etc/timezone:/etc/timezone:ro\u0027 if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else \u0027\u0027 }}\""},{"line_number":86,"context_line":"  - \"{{ node_config_directory }}/grafana/dashboards:/var/lib/grafana/dashboards/:ro\""},{"line_number":87,"context_line":"  - \"kolla_logs:/var/log/kolla/\""},{"line_number":88,"context_line":"grafana_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":14,"id":"f6c332aa_b400dbe6","line":86,"in_reply_to":"cc746e19_66a5580d","updated":"2024-02-08 11:09:22.000000000","message":"maybe I\u0027m misunderstanding your proposal, but how would that work on a read only volume?","commit_id":"47a818938a4700c165dff2be71267272850fa19d"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"43c2d0c2db4e28d6df94eb273583b4217cad015b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  - \"{{ node_config_directory }}/grafana/:{{ container_config_directory }}/:ro\""},{"line_number":84,"context_line":"  - \"/etc/localtime:/etc/localtime:ro\""},{"line_number":85,"context_line":"  - \"{{ \u0027/etc/timezone:/etc/timezone:ro\u0027 if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else \u0027\u0027 }}\""},{"line_number":86,"context_line":"  - \"{{ node_config_directory }}/grafana/dashboards:/var/lib/grafana/dashboards/:ro\""},{"line_number":87,"context_line":"  - \"kolla_logs:/var/log/kolla/\""},{"line_number":88,"context_line":"grafana_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":14,"id":"40fad293_383ae91f","line":86,"in_reply_to":"f46b9ae4_60b5f616","updated":"2024-02-12 16:23:27.000000000","message":"Done","commit_id":"47a818938a4700c165dff2be71267272850fa19d"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"394eaf1ae85b86c3335395baa722977f0360b500","unresolved":true,"context_lines":[{"line_number":83,"context_line":"  - \"{{ node_config_directory }}/grafana/:{{ container_config_directory }}/:ro\""},{"line_number":84,"context_line":"  - \"/etc/localtime:/etc/localtime:ro\""},{"line_number":85,"context_line":"  - \"{{ \u0027/etc/timezone:/etc/timezone:ro\u0027 if ansible_facts.os_family \u003d\u003d \u0027Debian\u0027 else \u0027\u0027 }}\""},{"line_number":86,"context_line":"  - \"{{ node_config_directory }}/grafana/dashboards:/var/lib/grafana/dashboards/:ro\""},{"line_number":87,"context_line":"  - \"kolla_logs:/var/log/kolla/\""},{"line_number":88,"context_line":"grafana_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":14,"id":"f46b9ae4_60b5f616","line":86,"in_reply_to":"f6c332aa_b400dbe6","updated":"2024-02-08 14:13:55.000000000","message":"So the dashboards would be bind mounted on line 83 into the container to `/var/lib/kolla/config_files`, and then grafana.json would copy them out of there to the container filesystem at `/var/lib/grafana/dashboards` (which is no longer a volume).","commit_id":"47a818938a4700c165dff2be71267272850fa19d"}],"ansible/roles/grafana/tasks/post_config.yml":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"00c97f0886e10df055ee3f716819d36c3cab8449","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Remove old grafana docker volume"},{"line_number":17,"context_line":"  become: true"},{"line_number":18,"context_line":"  kolla_docker:"},{"line_number":19,"context_line":"    action: \"remove_volume\""},{"line_number":20,"context_line":"    name: grafana"},{"line_number":21,"context_line":"  when: grafana_remove_old_volume | bool"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"341df6d3_0f9b8130","line":18,"range":{"start_line":18,"start_character":2,"end_line":18,"end_character":14},"updated":"2024-01-02 14:23:20.000000000","message":"kolla_container","commit_id":"8a517accc66b4e911ad2074553ed7765fec1b3bd"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"9f21bd27bcc3ad3064312136beb9d5e0b2d4aba9","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Remove old grafana docker volume"},{"line_number":17,"context_line":"  become: true"},{"line_number":18,"context_line":"  kolla_docker:"},{"line_number":19,"context_line":"    action: \"remove_volume\""},{"line_number":20,"context_line":"    name: grafana"},{"line_number":21,"context_line":"  when: grafana_remove_old_volume | bool"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"adf0d8a5_443882b2","line":18,"range":{"start_line":18,"start_character":2,"end_line":18,"end_character":14},"in_reply_to":"341df6d3_0f9b8130","updated":"2024-01-02 14:25:51.000000000","message":"Can you explain why please. Would help to understand..","commit_id":"8a517accc66b4e911ad2074553ed7765fec1b3bd"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"79ca2ec3b4973813137deade4875a5190a1b177b","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Remove old grafana docker volume"},{"line_number":17,"context_line":"  become: true"},{"line_number":18,"context_line":"  kolla_docker:"},{"line_number":19,"context_line":"    action: \"remove_volume\""},{"line_number":20,"context_line":"    name: grafana"},{"line_number":21,"context_line":"  when: grafana_remove_old_volume | bool"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7a0fabd4_35a3d8f4","line":18,"range":{"start_line":18,"start_character":2,"end_line":18,"end_character":14},"in_reply_to":"3e82ce68_173b80ca","updated":"2024-01-02 14:28:40.000000000","message":"Makes sense. Thank you.","commit_id":"8a517accc66b4e911ad2074553ed7765fec1b3bd"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"d4499816052a306954e3c623ff3ccb4e60b3f276","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Remove old grafana docker volume"},{"line_number":17,"context_line":"  become: true"},{"line_number":18,"context_line":"  kolla_docker:"},{"line_number":19,"context_line":"    action: \"remove_volume\""},{"line_number":20,"context_line":"    name: grafana"},{"line_number":21,"context_line":"  when: grafana_remove_old_volume | bool"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3e82ce68_173b80ca","line":18,"range":{"start_line":18,"start_character":2,"end_line":18,"end_character":14},"in_reply_to":"adf0d8a5_443882b2","updated":"2024-01-02 14:27:40.000000000","message":"It has been simply renamed in I13c676ed0378aa721a21a1300f6054658ad12bc7","commit_id":"8a517accc66b4e911ad2074553ed7765fec1b3bd"}],"ansible/roles/grafana/templates/grafana.json.j2":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b202c3a7ad681f38cc136fa92a3b6b5bbd55d7bc","unresolved":true,"context_lines":[{"line_number":41,"context_line":"            \"owner\": \"grafana\","},{"line_number":42,"context_line":"            \"perm\": \"0755\","},{"line_number":43,"context_line":"            \"optional\": true,"},{"line_number":44,"context_line":"            \"merge\": true"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":"    ],"},{"line_number":47,"context_line":"    \"permissions\": ["}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"9eed024f_102a59d5","line":44,"updated":"2024-01-11 12:30:58.000000000","message":"Wondering why this needed to change. Could it result in old dashboards not getting removed?","commit_id":"a2931bf9583477c91256b9a5da03d5f8de88b038"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"f562abc008ff0a9ef48ecd53a6dc444de3029fd1","unresolved":true,"context_lines":[{"line_number":41,"context_line":"            \"owner\": \"grafana\","},{"line_number":42,"context_line":"            \"perm\": \"0755\","},{"line_number":43,"context_line":"            \"optional\": true,"},{"line_number":44,"context_line":"            \"merge\": true"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":"    ],"},{"line_number":47,"context_line":"    \"permissions\": ["}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"8af24436_b7975750","line":44,"in_reply_to":"022823cb_36d0d3a4","updated":"2024-01-31 10:40:36.000000000","message":"Actually nevermind. I tested it again and indeed older dashboards are not removed","commit_id":"a2931bf9583477c91256b9a5da03d5f8de88b038"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"949ab82887f14f5008a9550982b7d4018f090922","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            \"owner\": \"grafana\","},{"line_number":42,"context_line":"            \"perm\": \"0755\","},{"line_number":43,"context_line":"            \"optional\": true,"},{"line_number":44,"context_line":"            \"merge\": true"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":"    ],"},{"line_number":47,"context_line":"    \"permissions\": ["}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"022823cb_36d0d3a4","line":44,"in_reply_to":"5021836b_e5842115","updated":"2024-01-30 19:10:54.000000000","message":"I tested it and old dashboards do get removed as expected","commit_id":"a2931bf9583477c91256b9a5da03d5f8de88b038"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"7799c0d21ba670907d0f806ee5335a231437855b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            \"owner\": \"grafana\","},{"line_number":42,"context_line":"            \"perm\": \"0755\","},{"line_number":43,"context_line":"            \"optional\": true,"},{"line_number":44,"context_line":"            \"merge\": true"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":"    ],"},{"line_number":47,"context_line":"    \"permissions\": ["}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"6c072663_9172ec8e","line":44,"in_reply_to":"8af24436_b7975750","updated":"2024-02-07 17:33:51.000000000","message":"Done","commit_id":"a2931bf9583477c91256b9a5da03d5f8de88b038"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"5705cb02bfdee4549d4536f69b80c56d20fa59bc","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            \"owner\": \"grafana\","},{"line_number":42,"context_line":"            \"perm\": \"0755\","},{"line_number":43,"context_line":"            \"optional\": true,"},{"line_number":44,"context_line":"            \"merge\": true"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":"    ],"},{"line_number":47,"context_line":"    \"permissions\": ["}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"5021836b_e5842115","line":44,"in_reply_to":"9eed024f_102a59d5","updated":"2024-01-12 18:05:14.000000000","message":"Because of this error we were running into: https://review.opendev.org/c/openstack/kolla-ansible/+/899136/comments/004a07e2_34db4acd\n\nI\u0027m not entirely sure about the old dashbaords however","commit_id":"a2931bf9583477c91256b9a5da03d5f8de88b038"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"36438712bad0ba48051b43103f8a60cf72c9e5b7","unresolved":true,"context_lines":[{"line_number":45,"context_line":"    ],"},{"line_number":46,"context_line":"    \"permissions\": ["},{"line_number":47,"context_line":"        {"},{"line_number":48,"context_line":"            \"path\": \"/var/lib/grafana\","},{"line_number":49,"context_line":"            \"owner\": \"grafana:grafana\","},{"line_number":50,"context_line":"            \"recurse\": true"},{"line_number":51,"context_line":"        },"}],"source_content_type":"text/x-jinja2","patch_set":14,"id":"7b271924_9613a59b","side":"PARENT","line":48,"updated":"2024-02-08 10:40:43.000000000","message":"What happens here if the owner of the dashboards supplied via the bind mount is not `grafana`? Since the bind mount is ready only, I would expect it to fail to set the owner?","commit_id":"f34ec164a6f9ccf3067b50d34a23be239af0709c"}],"releasenotes/notes/grafana-volume-81d569128d9e020f.yaml":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"bdbaf00b7d40210f936eb1aa26f36dae7be9c202","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Fixes not being able to add additional plugins at build time due to the"},{"line_number":5,"context_line":"    `grafana` volume being mounted over the existing `/var/lib/grafana`"},{"line_number":6,"context_line":"    directory. This is fixed by removing the `grafana` volume. This however"},{"line_number":7,"context_line":"    leaves behind the volume which should be removed with `docker volume rm"},{"line_number":8,"context_line":"    grafana`."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ea4ca61e_50fb42d3","line":7,"updated":"2023-10-27 09:47:27.000000000","message":"There is a corner case to be aware of: If you have installed a plugin via the Grafana command line, or the Grafana UI, then it will be removed by this change.\n\nWe should discourage users from installing plugins using the above methods, because when there is more than one Grafana instance, you have to ensure that plugins are installed consistently across each instance.\n\nEg. Grafana docs state:\n\n```\nNote: The Plugin catalog is designed to work with a single Grafana server instance only. Support for Grafana clusters will be added in future Grafana releases. [1]\n```\n[1] https://grafana.com/docs/grafana/latest/administration/plugin-management/\n\n\nIn this release note, we must warn users that if they have installed plugins via the Grafana UI, or CLI, they will be removed, and that they should switch to installing them at image build time.  If we leave the original Grafana volume around for one release, they can at least reference that.","commit_id":"bb44827c78ecbd6464d85a68074b44a1eb9d77e4"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"81a78a79a3663ffed5b4d269370d9083a62e51a8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Fixes not being able to add additional plugins at build time due to the"},{"line_number":5,"context_line":"    `grafana` volume being mounted over the existing `/var/lib/grafana`"},{"line_number":6,"context_line":"    directory. This is fixed by removing the `grafana` volume. This however"},{"line_number":7,"context_line":"    leaves behind the volume which should be removed with `docker volume rm"},{"line_number":8,"context_line":"    grafana`."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"78eced4a_a3b00c70","line":7,"in_reply_to":"ea4ca61e_50fb42d3","updated":"2023-11-10 15:59:54.000000000","message":"Done","commit_id":"bb44827c78ecbd6464d85a68074b44a1eb9d77e4"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"d5d9ca259acc91f97f32ce7fe0a3db12a82ec9f6","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    `grafana` volume being mounted over the existing `/var/lib/grafana`"},{"line_number":6,"context_line":"    directory. This is fixed by removing the `grafana` volume. This however"},{"line_number":7,"context_line":"    leaves behind the volume which should be removed with `docker volume rm"},{"line_number":8,"context_line":"    grafana`. Please note that any plugins installed via the cli directly and"},{"line_number":9,"context_line":"    not through kolla will be lost when doing this. In a future release we will"},{"line_number":10,"context_line":"    include code to automatically remove this volume."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"c799e0f5_31884422","line":8,"updated":"2023-11-13 10:19:10.000000000","message":"We should include an upgrade note here, since there are specific actions which must be undertaken for some users. Something like this?\n\n\nfixes:\n  - |\n    Fixes bug `#2039498 \u003chttps://bugs.launchpad.net/kolla-ansible/+bug/2039498\u003e`__\n    where the `grafana` docker volume was bind mounted over Grafana plugins\n    installed at image build time.\n\n\nupgrade:\n  - |\n    If you have previously installed Grafana plugins via the Grafana UI, or\n    CLI, you must change to installing them at image `build time\n    https://docs.openstack.org/kolla/latest/admin/image-building.html#dockerfile- \n    customisation.`\n    The `grafana` volume, which will contain existing custom plugins,\n    will be automatically removed in the D release.","commit_id":"a5052cb6afca4da05c472cb092f4995526009c2a"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"232f05a37a12a3aba358ac369453782973210d5b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    `grafana` volume being mounted over the existing `/var/lib/grafana`"},{"line_number":6,"context_line":"    directory. This is fixed by removing the `grafana` volume. This however"},{"line_number":7,"context_line":"    leaves behind the volume which should be removed with `docker volume rm"},{"line_number":8,"context_line":"    grafana`. Please note that any plugins installed via the cli directly and"},{"line_number":9,"context_line":"    not through kolla will be lost when doing this. In a future release we will"},{"line_number":10,"context_line":"    include code to automatically remove this volume."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"440c29ad_448cdf76","line":8,"in_reply_to":"7d702a13_e43c5e12","updated":"2024-01-03 12:07:38.000000000","message":"Done","commit_id":"a5052cb6afca4da05c472cb092f4995526009c2a"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"9cfe25eafd8aed46fd07d4131bb7bad19337de52","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    `grafana` volume being mounted over the existing `/var/lib/grafana`"},{"line_number":6,"context_line":"    directory. This is fixed by removing the `grafana` volume. This however"},{"line_number":7,"context_line":"    leaves behind the volume which should be removed with `docker volume rm"},{"line_number":8,"context_line":"    grafana`. Please note that any plugins installed via the cli directly and"},{"line_number":9,"context_line":"    not through kolla will be lost when doing this. In a future release we will"},{"line_number":10,"context_line":"    include code to automatically remove this volume."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7d702a13_e43c5e12","line":8,"in_reply_to":"c799e0f5_31884422","updated":"2024-01-03 11:04:38.000000000","message":"Please include the bug reference, the link to the docs and other information above in the release notes.","commit_id":"a5052cb6afca4da05c472cb092f4995526009c2a"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"d5d9ca259acc91f97f32ce7fe0a3db12a82ec9f6","unresolved":true,"context_lines":[{"line_number":7,"context_line":"    leaves behind the volume which should be removed with `docker volume rm"},{"line_number":8,"context_line":"    grafana`. Please note that any plugins installed via the cli directly and"},{"line_number":9,"context_line":"    not through kolla will be lost when doing this. In a future release we will"},{"line_number":10,"context_line":"    include code to automatically remove this volume."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bd661850_140d5dce","line":10,"updated":"2023-11-13 10:19:10.000000000","message":"As Michal suggested earlier, a task could be added to `post_config.yml` to remove the old volume automatically. To defer removing the volume automatically in this release, you could make the task dependent on a variable which is `False` by default, adding a `TODO` note to change it to `True` in the following release. This way it is less likely to be forgotten about.","commit_id":"a5052cb6afca4da05c472cb092f4995526009c2a"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"232f05a37a12a3aba358ac369453782973210d5b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    leaves behind the volume which should be removed with `docker volume rm"},{"line_number":8,"context_line":"    grafana`. Please note that any plugins installed via the cli directly and"},{"line_number":9,"context_line":"    not through kolla will be lost when doing this. In a future release we will"},{"line_number":10,"context_line":"    include code to automatically remove this volume."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ea17a994_66eee2b7","line":10,"in_reply_to":"773fc27d_15232d1d","updated":"2024-01-03 12:07:38.000000000","message":"Done","commit_id":"a5052cb6afca4da05c472cb092f4995526009c2a"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"9cfe25eafd8aed46fd07d4131bb7bad19337de52","unresolved":true,"context_lines":[{"line_number":7,"context_line":"    leaves behind the volume which should be removed with `docker volume rm"},{"line_number":8,"context_line":"    grafana`. Please note that any plugins installed via the cli directly and"},{"line_number":9,"context_line":"    not through kolla will be lost when doing this. In a future release we will"},{"line_number":10,"context_line":"    include code to automatically remove this volume."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"773fc27d_15232d1d","line":10,"in_reply_to":"bd661850_140d5dce","updated":"2024-01-03 11:04:38.000000000","message":"Please add the TODO note next to the new variable","commit_id":"a5052cb6afca4da05c472cb092f4995526009c2a"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b202c3a7ad681f38cc136fa92a3b6b5bbd55d7bc","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Fixes bug `#2039498"},{"line_number":5,"context_line":"    \u003chttps://bugs.launchpad.net/kolla-ansible/+bug/2039498\u003e`__ where the"},{"line_number":6,"context_line":"    grafana docker volume was bind mounted over Grafana plugins installed at"},{"line_number":7,"context_line":"    image build time. This is fixed by using the ``grafana-dashboards`` volume"},{"line_number":8,"context_line":"    instead of the ``grafana`` volume. This however leaves behind the volume"},{"line_number":9,"context_line":"    which can be removed by setting ``grafana_remove_old_volume`` to ``true``."},{"line_number":10,"context_line":"    Please note that any plugins installed via the cli directly and not through"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"c7edcc05_0ca84627","line":7,"updated":"2024-01-11 12:30:58.000000000","message":"Remember to update volume name in the reno too.","commit_id":"a2931bf9583477c91256b9a5da03d5f8de88b038"},{"author":{"_account_id":35511,"name":"Dawud","email":"dawud@stackhpc.com","username":"dawudm"},"change_message_id":"5705cb02bfdee4549d4536f69b80c56d20fa59bc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Fixes bug `#2039498"},{"line_number":5,"context_line":"    \u003chttps://bugs.launchpad.net/kolla-ansible/+bug/2039498\u003e`__ where the"},{"line_number":6,"context_line":"    grafana docker volume was bind mounted over Grafana plugins installed at"},{"line_number":7,"context_line":"    image build time. This is fixed by using the ``grafana-dashboards`` volume"},{"line_number":8,"context_line":"    instead of the ``grafana`` volume. This however leaves behind the volume"},{"line_number":9,"context_line":"    which can be removed by setting ``grafana_remove_old_volume`` to ``true``."},{"line_number":10,"context_line":"    Please note that any plugins installed via the cli directly and not through"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9d5282d9_dd61e850","line":7,"in_reply_to":"c7edcc05_0ca84627","updated":"2024-01-12 18:05:14.000000000","message":"Done","commit_id":"a2931bf9583477c91256b9a5da03d5f8de88b038"}]}
