# Copyright (c) 2023 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.

keycloak_helm_release_name: keycloak
keycloak_helm_chart_path: "../../charts/keycloak/"
keycloak_helm_chart_ref: /usr/local/src/keycloak

keycloak_helm_release_namespace: auth-system
keycloak_helm_kubeconfig: "{{ kubeconfig_path | default('/etc/kubernetes/admin.conf') }}"
keycloak_helm_values: {}

keycloak_host: "{{ undef('You must specify a Keycloak host using keycloak_host') }}"
keycloak_ingress_annotations: {}
keycloak_ingress_class_name: "{{ atmosphere_ingress_class_name }}"
keycloak_ingress_cluster_issuer: "{{ atmosphere_ingress_cluster_issuer }}"

keycloak_admin_username: admin
keycloak_admin_password: "{{ undef(hint='You must specify a Keycloak admin password using keycloak_admin_password') }}"

keycloak_database_username: keycloak
keycloak_database_password: "{{ undef('You must specify a Keycloak database password using keycloak_database_password') }}"
keycloak_database_name: keycloak
keycloak_host_tls_secret_name: "{{ openstack_helm_ingress_secret_name | default(keycloak_host + '-tls')}}"
