#######################################################################################
# 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="releasenineteen-daily"
export INSTALL_AUX_CLUSTER="y"
export INSTALL_MGMT_CLUSTER="y"
export OSM_NAMESPACE=osm
export OSM_HELM_RELEASE=osm
export OSM_DOCKER_TAG="releasenineteen-daily"
export DOCKER_USER="opensourcemano"
export DOCKER_REGISTRY_USER=
export DOCKER_REGISTRY_PASSWORD=
export DOCKER_REGISTRY_URL=
export DOCKER_PROXY_URL=
export MODULES_FOR_TESTING=
export MODULE_DOCKER_TAG=
export OSM_CLIENT_VERSION="v19.0"
export OSM_IM_VERSION="v19.0"
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=