#######################################################################################
# Copyright ETSI Contributors and Others.
#
# 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.
#######################################################################################

export ASSUME_YES=""
export APT_PROXY_URL=""
export K8S_CLUSTER_ENGINE="k3s"
export DEBUG_INSTALL=""
export RELEASE="testing-daily"
export REPOSITORY="testing"
export REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg"
export REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/debian"
export INSTALL_AUX_CLUSTER="y"
export INSTALL_MGMT_CLUSTER="y"
export OSM_NAMESPACE=osm
export OSM_HELM_RELEASE=osm
export OSM_DOCKER_TAG="testing-daily"
export DOCKER_USER="opensourcemano"
export DOCKER_REGISTRY_USER=
export DOCKER_REGISTRY_PASSWORD=
export DOCKER_REGISTRY_URL=
export DOCKER_PROXY_URL=
export MODULE_DOCKER_TAG=
export OSM_CLIENT_VERSION="master"
export OSM_IM_VERSION="master"
export OSM_HOME_DIR=${OSM_HOME_DIR:-"$HOME/.osm"}
export CREDENTIALS_DIR="${OSM_HOME_DIR}/.credentials"
export WORK_REPOS_DIR="${OSM_HOME_DIR}/repos"
export INSTALL_MINIO=${INSTALL_MINIO:-"y"}
export KUBECONFIG_AUX_CLUSTER=
export KUBECONFIG_MGMT_CLUSTER=
export KUBECONFIG_OSM_CLUSTER=
export OSM_BEHIND_PROXY=
export OPENSHIFT_MGMT_CLUSTER=
export MGMT_CLUSTER_CA_FILE=
export OSM_BASE_DOMAIN=
export OSM_HELM_TIMEOUT=
export OSM_CLUSTER_INGRESS_CLASS=
export AUX_CLUSTER_INGRESS_CLASS=