# Copyright (c) 2022 VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

_horizon_helm_values:
  endpoints: "{{ openstack_helm_endpoints }}"
  images:
    tags: "{{ atmosphere_images | vexxhost.atmosphere.openstack_helm_image_tags('horizon') }}"
  pod:
    replicas:
      server: 3
  conf:
    horizon:
      local_settings:
        config:
          disallow_iframe_embed: "True"
          secure_proxy_ssl_header: "True"
          horizon_images_upload_mode: direct
          openstack_enable_password_retrieve: "True"
          raw:
            WEBSSO_KEYSTONE_URL: https://{{ openstack_helm_endpoints['identity']['host_fqdn_override']['public']['host'] }}/v3
      local_settings_d:
        _50_monasca_ui_settings: "{{ lookup('file', '50-monasca-ui-settings.py') }}"
      extra_panels:
        - designatedashboard
        - heat_dashboard
        - ironic_ui
        - magnum_ui
        - manila_ui
        - monitoring
        - neutron_vpnaas_dashboard
        - octavia_dashboard
        - senlin_dashboard
      policy:
        monitoring:
          default: "@"
          monasca_user_role: role:monasca-user
          monitoring:monitoring: rule:monasca_user_role
          monitoring:kibana_access: rule:monasca_user_role
  manifests:
    ingress_api: false
    service_ingress_api: false

_horizon_ingress_annotations:
  nginx.ingress.kubernetes.io/proxy-body-size: "5000m"
  nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
