echo -e " -P <VCA pubkey> use VCA/juju public key file"
echo -e " -A <VCA apiproxy> use VCA/juju API proxy"
echo -e " --pla: install the PLA module for placement support"
- echo -e " --ng-sa: install Airflow and Pushgateway to get VNF and NS status (experimental)"
+ echo -e " --old-sa: install old Service Assurance framework (MON, POL); do not install Airflow and Pushgateway"
+ echo -e " --ng-sa: install new Service Assurance framework (Airflow, AlertManager and Pushgateway) (enabled by default)"
echo -e " -m <MODULE>: install OSM but only rebuild or pull the specified docker images (NG-UI, NBI, LCM, RO, MON, POL, PLA, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, NONE)"
echo -e " -o <ADDON>: ONLY (un)installs one of the addons (k8s_monitor, ng-sa)"
echo -e " -O <openrc file path/cloud name>: Install OSM to an OpenStack infrastructure. <openrc file/cloud name> is required. If a <cloud name> is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/"
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
-function generate_docker_images() {
+function pull_docker_images() {
[ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
- echo "Pulling and generating docker images"
- [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login
-
echo "Pulling docker images"
+ [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login
+ echo "Pulling non-OSM docker images"
if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q KAFKA ; then
sg docker -c "docker pull wurstmeister/zookeeper" || FATAL "cannot get zookeeper docker image"
sg docker -c "docker pull wurstmeister/kafka:${KAFKA_TAG}" || FATAL "cannot get kafka docker image"
sg docker -c "docker pull mysql:5" || FATAL "cannot get mysql docker image"
fi
- if [ -n "$PULL_IMAGES" ]; then
- echo "Pulling OSM docker images"
- for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA osmclient; do
+ list_of_modules="MON NBI KEYSTONE RO LCM NG-UI osmclient"
+ if [ -n "$INSTALL_NGSA" ]; then
+ list_of_modules="${list_of_modules} Airflow Webhook"
+ else
+ list_of_modules="${list_of_modules} POL"
+ fi
+ if [ -n "$INSTALL_PLA" ]; then
+ list_of_modules="${list_of_modules} PLA"
+ fi
+ echo "Pulling OSM docker images for the following modules: ${list_of_modules}"
+ for module in ${list_of_modules}; do
+ module_lower=${module,,}
+ module_tag="${OSM_DOCKER_TAG}"
+ if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then
+ module_tag="${MODULE_DOCKER_TAG}"
+ fi
+ echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image"
+ sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image"
+ done
+
+ echo "Finished pulling docker images"
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
+function generate_docker_images() {
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+ echo "Generating docker images"
+ _build_from=$COMMIT_ID
+ [ -z "$_build_from" ] && _build_from="latest"
+ echo "OSM Docker images generated from $_build_from"
+ LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")"
+ trap 'rm -rf "${LWTEMPDIR}"' EXIT
+ for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do
+ if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then
module_lower=${module,,}
if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then
continue
fi
- module_tag="${OSM_DOCKER_TAG}"
- if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then
- module_tag="${MODULE_DOCKER_TAG}"
- fi
- echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image"
- sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image"
- done
- else
- _build_from=$COMMIT_ID
- [ -z "$_build_from" ] && _build_from="latest"
- echo "OSM Docker images generated from $_build_from"
- LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")"
- trap 'rm -rf "${LWTEMPDIR}"' EXIT
- for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do
- if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then
- module_lower=${module,,}
- if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then
- continue
- fi
- git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module
- git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID}
- sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image"
- fi
- done
- if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then
- BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY")
- BUILD_ARGS+=(--build-arg RELEASE="$RELEASE")
- BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY")
- BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE")
- sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ."
+ git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module
+ git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID}
+ sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image"
fi
- echo "Finished generation of docker images"
+ done
+ if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then
+ BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY")
+ BUILD_ARGS+=(--build-arg RELEASE="$RELEASE")
+ BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY")
+ BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE")
+ sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ."
fi
-
- echo "Finished pulling and generating docker images"
+ echo "Finished generation of docker images"
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
kubectl create secret generic ro-db-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/ro-db.env
kubectl create secret generic ro-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/ro.env
kubectl create secret generic keystone-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/keystone.env
- kubectl create secret generic pol-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env
if [ -n "${INSTALL_NGSA}" ]; then
kubectl create secret generic ngsa-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/ngsa.env
kubectl create secret generic webhook-translator-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/webhook-translator.env
+ else
+ kubectl create secret generic pol-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env
fi
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
#deploys osm pods and services
function deploy_osm_services() {
[ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+ echo "The following manifests under $OSM_K8S_WORK_DIR will be deployed:"
+ ls $OSM_K8S_WORK_DIR
kubectl apply -n $OSM_NAMESPACE -f $OSM_K8S_WORK_DIR
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
function install_osm_ngsa_service() {
[ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
- $OSM_DEVOPS/installers/install_ngsa.sh -d ${OSM_HELM_WORK_DIR} -D ${OSM_DEVOPS} -t ${OSM_DOCKER_TAG} ${DEBUG_INSTALL} || \
+ NGSA_OPTS="-d ${OSM_HELM_WORK_DIR} -D ${OSM_DEVOPS} -t ${OSM_DOCKER_TAG} -U ${DOCKER_USER} ${DEBUG_INSTALL}"
+ [ -n "${DOCKER_REGISTRY_URL}" ] && NGSA_OPTS="${NGSA_OPTS} -r ${DOCKER_REGISTRY_URL}"
+ $OSM_DEVOPS/installers/install_ngsa.sh ${NGSA_OPTS} || \
FATAL_TRACK install_osm_ngsa_service "install_ngsa.sh failed"
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
for module in $services; do
if [ "$module" == "pla" ]; then
if [ -n "$INSTALL_PLA" ]; then
- echo "Updating K8s manifest file from opensourcemano\/pla:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/pla:${TAG}"
+ echo "Updating K8s manifest file for ${module} from opensourcemano\/pla:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/pla:${TAG}"
sudo sed -i "s#opensourcemano/pla:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/pla:${TAG}#g" ${OSM_DOCKER_WORK_DIR}/osm_pla/pla.yaml
fi
else
elif [ "$module" == "ng-mon" ]; then
image="mon"
fi
- echo "Updating K8s manifest file from opensourcemano\/${image}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${image}:${TAG}"
+ echo "Updating K8s manifest file for ${module} from opensourcemano\/${image}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${image}:${TAG}"
sudo sed -i "s#opensourcemano/${image}:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/${image}:${TAG}#g" ${OSM_K8S_WORK_DIR}/${module}.yaml
fi
done
}
function update_manifest_files() {
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
osm_services="nbi lcm ro pol mon ng-mon ng-ui keystone pla prometheus ng-prometheus"
list_of_services=""
for module in $osm_services; do
fi
# Deploy OSM services
- [ -z "$DOCKER_NOBUILD" ] && generate_docker_images
+ [ -z "$DOCKER_NOBUILD" ] && pull_docker_images
+ [ -z "$DOCKER_NOBUILD" ] && [ -z "$PULL_IMAGES" ] && generate_docker_images
track docker_images docker_images_ok
generate_k8s_manifest_files
RELEASE="ReleaseTEN"
REPOSITORY="stable"
INSTALL_K8S_MONITOR=""
-INSTALL_NGSA=""
+INSTALL_NGSA="y"
INSTALL_PLA=""
INSTALL_VIMEMU=""
LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd"
[ "${OPTARG}" == "tag" ] && continue
[ "${OPTARG}" == "registry" ] && continue
[ "${OPTARG}" == "pla" ] && INSTALL_PLA="y" && continue
+ [ "${OPTARG}" == "old-sa" ] && INSTALL_NGSA="" && continue
[ "${OPTARG}" == "ng-sa" ] && INSTALL_NGSA="y" && continue
[ "${OPTARG}" == "volume" ] && OPENSTACK_ATTACH_VOLUME="true" && continue
[ "${OPTARG}" == "nocachelxdimages" ] && continue