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

ingress_class_name: "{{ atmosphere_ingress_class_name }}"

# ingress_name: string

# ingress_namespace: string

# ingress_host: string

# ingress_service_name: string

# ingress_service_port: number

# ingress_secret_name: string

# List of annotations to apply to the Ingress
#
# NOTE(mnaser): These are typically used by the role that calls
#               the ingress role to pass annotations to the
#               Ingress resource.  You should use role-specific
#               variable to pass annotations or use the
#               ingress_default_annotations variable to apply
#               annotations to all Ingress resources.
ingress_annotations: {}

# List of annotations to apply to all Ingress resources as default
ingress_default_annotations: "{{ ingress_global_annotations | default(atmosphere_ingress_annotations) }}"

# Use default TLS certificate
ingress_use_default_tls_certificate: false
