feat: add support for custom panels

Add support for custom panels.
Make possible to manipulate panels in Horizon.

Change-Id: I72f310352e7b28bfcf674ab0d46113c53994e768
This commit is contained in:
Tadas Sutkaitis 2024-02-23 20:10:47 +02:00
parent 552cab2ff1
commit 3e203c68fa
No known key found for this signature in database
GPG Key ID: C123CD627D02FD57
6 changed files with 23 additions and 1 deletions

View File

@ -14,7 +14,7 @@ apiVersion: v1
appVersion: v1.0.0
description: OpenStack-Helm Horizon
name: horizon
version: 0.3.15
version: 0.3.16
home: https://docs.openstack.org/horizon/latest/
icon: https://www.openstack.org/themes/openstack/images/project-mascots/Horizon/OpenStack_Project_Horizon_vertical.png
sources:

View File

@ -25,6 +25,9 @@ function start () {
{{- range $key, $value := .Values.conf.horizon.local_settings_d }}
ln -s /etc/openstack-dashboard/local_settings.d/{{ $key }}.py ${SITE_PACKAGES_ROOT}/openstack_dashboard/local/local_settings.d/{{ $key }}.py
{{- end }}
{{- range $key, $value := .Values.conf.horizon.custom_panels }}
ln -s /etc/openstack-dashboard/custom_panels/{{ $key }}.py ${SITE_PACKAGES_ROOT}/openstack_dashboard/local/enabled/{{ $key }}.py
{{- end }}
# wsgi/horizon-http needs open files here, including secret_key_store
chown -R horizon ${SITE_PACKAGES_ROOT}/openstack_dashboard/local/

View File

@ -26,6 +26,9 @@ data:
{{- if .Values.conf.horizon.security }}
{{- include "helm-toolkit.snippets.values_template_renderer" (dict "envAll" $envAll "template" .Values.conf.horizon.security "key" "security.conf" "format" "Secret" ) | indent 2 }}
{{- end }}
{{- range $key, $value := .Values.conf.horizon.custom_panels }}
{{ printf "%s.py" $key }}: {{ $value | b64enc }}
{{- end }}
{{- range $key, $value := .Values.conf.horizon.policy }}
{{ printf "%s_policy.json" $key }}: {{ $value | toPrettyJson | b64enc }}
{{- end }}

View File

@ -133,6 +133,13 @@ spec:
mountPath: /etc/openstack-dashboard/local_settings
subPath: local_settings
readOnly: true
{{- range $key, $value := $envAll.Values.conf.horizon.custom_panels }}
{{- $customPanelsFile := printf "/etc/openstack-dashboard/custom_panels/%s.py" $key }}
- name: horizon-etc
mountPath: {{ $customPanelsFile }}
subPath: {{ base $customPanelsFile }}
readOnly: true
{{- end }}
{{- range $key, $value := $envAll.Values.conf.horizon.policy }}
{{- $policyYamlFile := printf "/etc/openstack-dashboard/%s_policy.yaml" $key }}
- name: horizon-etc

View File

@ -184,6 +184,14 @@ conf:
# site as frames. This defends against clickjacking attacks.
# Requires mod_headers to be enabled.
#
custom_panels: {}
## For example, _5000_disable_project_vg_snapshots.py
# _5000_disable_project_vg_snapshots: |
# PANEL = 'vg_snapshots'
# PANEL_DASHBOARD = 'project'
# PANEL_GROUP = 'volumes'
# REMOVE_PANEL = True
## https://docs.openstack.org/horizon/latest/configuration/pluggable_panels.html#id2
local_settings_d: {}
## For example, _50_monasca_ui_settings.py
# _50_monasca_ui_settings: |

View File

@ -52,4 +52,5 @@ horizon:
- 0.3.13 Make selenium v4 syntax optional
- 0.3.14 Add 2023.2 Ubuntu Jammy overrides
- 0.3.15 Update osh-selenium image used by default
- 0.3.16 Add support for custom panels
...