#######################################################################################
# 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="releaseeighteen-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="releaseeighteen-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="v18.0"
export OSM_IM_VERSION="v18.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_K8S_NGINX_IPADDRESS=
export OSM_HELM_TIMEOUT=
