--- /dev/null
+#######################################################################################
+# 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.
+#######################################################################################
+
+FROM ubuntu:22.04 as INSTALL
+
+ARG APT_PROXY
+RUN if [ ! -z $APT_PROXY ] ; then \
+ echo "Acquire::http::Proxy \"$APT_PROXY\";" > /etc/apt/apt.conf.d/proxy.conf ;\
+ echo "Acquire::https::Proxy \"$APT_PROXY\";" >> /etc/apt/apt.conf.d/proxy.conf ;\
+ fi
+
+RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
+ DEBIAN_FRONTEND=noninteractive apt-get --yes install \
+ gcc=4:11.* \
+ python3=3.10.* \
+ python3-dev=3.10.* \
+ python3-pip=22.0.* \
+ curl=7.81.* \
+ && rm -rf /var/lib/apt/lists/*
+
+#######################################################################################
+# End of common preparation
+
+ARG PYTHON3_OSM_COMMON_URL
+ARG PYTHON3_OSM_PLA_URL
+
+RUN curl $PYTHON3_OSM_COMMON_URL -o osm_common.deb
+RUN dpkg -i ./osm_common.deb
+
+RUN curl $PYTHON3_OSM_PLA_URL -o osm_pla.deb
+RUN dpkg -i ./osm_pla.deb
+
+RUN pip3 install \
+ -r /usr/lib/python3/dist-packages/osm_common/requirements.txt \
+ -r /usr/lib/python3/dist-packages/osm_pla/requirements.txt
+
+ADD https://github.com/MiniZinc/MiniZincIDE/releases/download/2.4.2/MiniZincIDE-2.4.2-bundle-linux-x86_64.tgz /minizinc.tgz
+
+RUN tar -zxf /minizinc.tgz && \
+ mv /MiniZincIDE-2.4.2-bundle-linux /minizinc
+
+#######################################################################################
+FROM ubuntu:22.04 as FINAL
+
+ARG APT_PROXY
+RUN if [ ! -z $APT_PROXY ] ; then \
+ echo "Acquire::http::Proxy \"$APT_PROXY\";" > /etc/apt/apt.conf.d/proxy.conf ;\
+ echo "Acquire::https::Proxy \"$APT_PROXY\";" >> /etc/apt/apt.conf.d/proxy.conf ;\
+ fi
+
+RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
+ DEBIAN_FRONTEND=noninteractive apt-get --yes install \
+ python3-minimal=3.10.* \
+ && rm -rf /var/lib/apt/lists/*
+
+COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
+COPY --from=INSTALL /usr/local/lib/python3.10/dist-packages /usr/local/lib/python3.10/dist-packages
+
+#######################################################################################
+# End of common preparation
+
+RUN rm -f /etc/apt/apt.conf.d/proxy.conf
+
+LABEL authors="Lars-Göran Magnusson"
+
+COPY --from=INSTALL /usr/bin/osm* /usr/bin/
+COPY --from=INSTALL /minizinc /minizinc
+
+RUN mkdir /entry_data && \
+ mkdir /placement && \
+ mkdir /entry_data/mzn-lib && \
+ ln -s /entry_data/mzn-lib /minizinc/share/minizinc/exec
+
+COPY scripts/ /app/osm_pla/scripts/
+
+# Creating the user for the app
+RUN groupadd -g 1000 appuser && \
+ useradd -u 1000 -g 1000 -d /app appuser && \
+ mkdir -p /app/osm_pla && \
+ chown -R appuser:appuser /app && \
+ chown -R appuser:appuser /entry_data && \
+ chown -R appuser:appuser /minizinc && \
+ chown -R appuser:appuser /placement
+
+WORKDIR /app/osm_pla
+
+# Changing the security context
+USER appuser
+
+ENV OSMPLA_MESSAGE_DRIVER kafka
+ENV OSMPLA_MESSAGE_HOST kafka
+ENV OSMPLA_MESSAGE_PORT 9092
+
+ENV OSMPLA_DATABASE_DRIVER mongo
+ENV OSMPLA_DATABASE_URI mongodb://mongo:27017
+
+ENV OSMPLA_SQL_DATABASE_URI sqlite:///pla_sqlite.db
+
+ENV OSMPLA_GLOBAL_LOG_LEVEL INFO
+
+ENV FZNEXEC "/entry_data/fzn-exec"
+ENV PATH "/minizinc/bin:${PATH}"
+ENV LD_LIBRARY_PATH "/minizinc/lib:${LD_LIBRARY_PATH}"
+
+# No healtcheck yet...
+#HEALTHCHECK --start-period=120s --interval=10s --timeout=5s --retries=5 \
+# CMD osm-pla-healthcheck || exit 1
+
+CMD [ "/bin/bash", "scripts/start.sh" ]
--- /dev/null
+# -*- coding: utf-8 -*-
+
+# Copyright 2020 Arctos Labs Scandinavia AB
+#
+# 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.
+DB_EXISTS=""
+
+max_attempts=120
+function wait_db(){
+ db_host=$1
+ db_port=$2
+ attempt=0
+ echo "Wait until $max_attempts seconds for MySQL mano Server ${db_host}:${db_port} "
+ while ! mysqladmin ping -h"$db_host" -P"$db_port" --silent; do
+ #wait 120 sec
+ if [ $attempt -ge $max_attempts ]; then
+ echo
+ echo "Can not connect to database ${db_host}:${db_port} during $max_attempts sec"
+ return 1
+ fi
+ attempt=$[$attempt+1]
+ echo -n "."
+ sleep 1
+ done
+ return 0
+}
+
+function is_db_created() {
+ db_host=$1
+ db_port=$2
+ db_user=$3
+ db_pswd=$4
+ db_name=$5
+
+ if mysqlshow -h"$db_host" -P"$db_port" -u"$db_user" -p"$db_pswd" | grep -v Wildcard | grep -q $db_name; then
+ echo "DB $db_name exists"
+ return 0
+ else
+ echo "DB $db_name does not exist"
+ return 1
+ fi
+}
+
+if [[ $OSMPLA_SQL_DATABASE_URI == *'mysql'* ]]; then
+ DB_HOST=$(echo $OSMPLA_SQL_DATABASE_URI | sed -r 's|^\w+://.+:.+@(.+):.*$|\1|')
+ DB_PORT=$(echo $OSMPLA_SQL_DATABASE_URI | sed -r 's|^\w+://.*:([0-9]+).*$|\1|')
+ DB_USER=$(echo $OSMPLA_SQL_DATABASE_URI | sed -r 's|^\w+://(.+):.+@.+$|\1|')
+ DB_PASSWORD=$(echo $OSMPLA_SQL_DATABASE_URI | sed -r 's|^.+://.+:(.+)@.*$|\1|')
+ DB_NAME=$(echo $OSMPLA_SQL_DATABASE_URI | sed -r 's|^\w+://.+:.+@.+:.*/(.+)$|\1|')
+
+ wait_db "$DB_HOST" "$DB_PORT" || exit 1
+
+ is_db_created "$DB_HOST" "$DB_PORT" "$DB_USER" "$DB_PASSWORD" "$DB_NAME" && DB_EXISTS="Y"
+
+ if [ -z $DB_EXISTS ]; then
+ mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASSWORD" --default_character_set utf8 -e "CREATE DATABASE $DB_NAME"
+ fi
+fi
+
+osm-pla-server
--- /dev/null
+#######################################################################################
+# 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.
+#######################################################################################
+
+FROM ubuntu:22.04 as INSTALL
+
+ARG APT_PROXY
+RUN if [ ! -z $APT_PROXY ] ; then \
+ echo "Acquire::http::Proxy \"$APT_PROXY\";" > /etc/apt/apt.conf.d/proxy.conf ;\
+ echo "Acquire::https::Proxy \"$APT_PROXY\";" >> /etc/apt/apt.conf.d/proxy.conf ;\
+ fi
+
+RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
+ DEBIAN_FRONTEND=noninteractive apt-get --yes install \
+ gcc=4:11.* \
+ python3=3.10.* \
+ python3-dev=3.10.* \
+ python3-pip=22.0.* \
+ curl=7.81.* \
+ && rm -rf /var/lib/apt/lists/*
+
+#######################################################################################
+# End of common preparation
+
+RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
+ DEBIAN_FRONTEND=noninteractive apt-get --yes install \
+ mysql-client-core-8.0=8.0.*
+
+ARG PYTHON3_OSM_COMMON_URL
+ARG PYTHON3_OSM_POLICY_MODULE_URL
+
+RUN curl $PYTHON3_OSM_COMMON_URL -o osm_common.deb
+RUN dpkg -i ./osm_common.deb
+
+RUN curl $PYTHON3_OSM_POLICY_MODULE_URL -o osm_policy_module.deb
+RUN dpkg -i ./osm_policy_module.deb
+
+RUN pip3 install \
+ -r /usr/lib/python3/dist-packages/osm_common/requirements.txt \
+ -r /usr/lib/python3/dist-packages/osm_policy_module/requirements.txt
+
+#######################################################################################
+FROM ubuntu:22.04 as FINAL
+
+ARG APT_PROXY
+RUN if [ ! -z $APT_PROXY ] ; then \
+ echo "Acquire::http::Proxy \"$APT_PROXY\";" > /etc/apt/apt.conf.d/proxy.conf ;\
+ echo "Acquire::https::Proxy \"$APT_PROXY\";" >> /etc/apt/apt.conf.d/proxy.conf ;\
+ fi
+
+RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
+ DEBIAN_FRONTEND=noninteractive apt-get --yes install \
+ python3-minimal=3.10.* \
+ && rm -rf /var/lib/apt/lists/*
+
+COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
+COPY --from=INSTALL /usr/local/lib/python3.10/dist-packages /usr/local/lib/python3.10/dist-packages
+
+#######################################################################################
+# End of common preparation
+
+COPY --from=INSTALL /usr/bin/osm* /usr/bin/
+COPY --from=INSTALL /usr/bin/mysql /usr/bin/
+COPY --from=INSTALL /usr/bin/mysqladmin /usr/bin/
+COPY --from=INSTALL /usr/bin/mysqlshow /usr/bin/
+COPY --from=INSTALL /usr/lib/x86_64-linux-gnu/libedit.so.2 /usr/lib/x86_64-linux-gnu/
+COPY --from=INSTALL /usr/lib/x86_64-linux-gnu/libbsd.so.0 /usr/lib/x86_64-linux-gnu/
+COPY --from=INSTALL /usr/lib/x86_64-linux-gnu/libmd.so.0 /usr/lib/x86_64-linux-gnu/
+
+COPY scripts/ /app/osm_pol/scripts/
+
+# Creating the user for the app
+RUN groupadd -g 1000 appuser && \
+ useradd -u 1000 -g 1000 -d /app appuser && \
+ mkdir -p /app/osm_pol && \
+ mkdir -p /app/storage/kafka && \
+ mkdir /app/log && \
+ chown -R appuser:appuser /app
+
+WORKDIR /app/osm_pol
+
+# Changing the security context
+USER appuser
+
+########################################################################
+
+ENV OSMPOL_MESSAGE_DRIVER kafka
+ENV OSMPOL_MESSAGE_HOST kafka
+ENV OSMPOL_MESSAGE_PORT 9092
+
+ENV OSMPOL_DATABASE_DRIVER mongo
+ENV OSMPOL_DATABASE_URI mongodb://mongo:27017
+
+ENV OSMPOL_SQL_DATABASE_URI sqlite:///mon_sqlite.db
+
+ENV OSMPOL_GLOBAL_LOG_LEVEL INFO
+
+ENV OSMPOL_AUTOHEAL_ENABLED True
+
+ENV OSMPOL_AUTOSCALE_ENABLED True
+
+HEALTHCHECK --start-period=120s --interval=10s --timeout=5s --retries=5 \
+ CMD osm-pol-healthcheck || exit 1
+
+CMD /bin/bash scripts/start.sh
--- /dev/null
+DB_EXISTS=""
+
+max_attempts=120
+function wait_db(){
+ db_host=$1
+ db_port=$2
+ attempt=0
+ echo "Wait until $max_attempts seconds for MySQL mano Server ${db_host}:${db_port} "
+ while ! mysqladmin ping -h"$db_host" -P"$db_port" --silent; do
+ #wait 120 sec
+ if [ $attempt -ge $max_attempts ]; then
+ echo
+ echo "Can not connect to database ${db_host}:${db_port} during $max_attempts sec"
+ return 1
+ fi
+ attempt=$[$attempt+1]
+ echo -n "."
+ sleep 1
+ done
+ return 0
+}
+
+function is_db_created() {
+ db_host=$1
+ db_port=$2
+ db_user=$3
+ db_pswd=$4
+ db_name=$5
+
+ if mysqlshow -h"$db_host" -P"$db_port" -u"$db_user" -p"$db_pswd" | grep -v Wildcard | grep -q $db_name; then
+ echo "DB $db_name exists"
+ return 0
+ else
+ echo "DB $db_name does not exist"
+ return 1
+ fi
+}
+
+if [[ $OSMPOL_SQL_DATABASE_URI == *'mysql'* ]]; then
+ DB_HOST=$(echo $OSMPOL_SQL_DATABASE_URI | sed -r 's|^\w+://.+:.+@(.+):.*$|\1|')
+ DB_PORT=$(echo $OSMPOL_SQL_DATABASE_URI | sed -r 's|^\w+://.*:([0-9]+).*$|\1|')
+ DB_USER=$(echo $OSMPOL_SQL_DATABASE_URI | sed -r 's|^\w+://(.+):.+@.+$|\1|')
+ DB_PASSWORD=$(echo $OSMPOL_SQL_DATABASE_URI | sed -r 's|^.+://.+:(.+)@.*$|\1|')
+ DB_NAME=$(echo $OSMPOL_SQL_DATABASE_URI | sed -r 's|^\w+://.+:.+@.+:.*/(.+)$|\1|')
+
+ wait_db "$DB_HOST" "$DB_PORT" || exit 1
+
+ is_db_created "$DB_HOST" "$DB_PORT" "$DB_USER" "$DB_PASSWORD" "$DB_NAME" && DB_EXISTS="Y"
+
+ if [ -z $DB_EXISTS ]; then
+ mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASSWORD" --default_character_set utf8 -e "CREATE DATABASE $DB_NAME"
+ fi
+fi
+
+osm-policy-agent
\ No newline at end of file
echo -e " -S <VCA secret> use VCA/juju secret key"
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 " --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 " -o <COMPONENT>: ONLY installs the specified component (k8s_monitor, ng-sa, k8scluster, docker, deploy-osm)"
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/"
echo -e " -N <openstack public network name/ID>: public network name required to setup OSM to OpenStack"
fi
[ -n "$OSM_VCA_APIPROXY" ] && OSM_HELM_OPTS="${OSM_HELM_OPTS} --set lcm.config.OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}"
- OSM_HELM_OPTS="${OSM_HELM_OPTS} --set airflow.defaultAirflowRepository=${DOCKER_REGISTRY_URL}${DOCKER_USER}/airflow"
- [ ! "$OSM_DOCKER_TAG" == "testing-daily" ] && OSM_HELM_OPTS="${OSM_HELM_OPTS} --set-string airflow.defaultAirflowTag=${OSM_DOCKER_TAG}"
- OSM_HELM_OPTS="${OSM_HELM_OPTS} --set airflow.ingress.web.hosts[0].name=airflow.${OSM_K8S_EXTERNAL_IP}.nip.io"
-
+ if [ -n "${INSTALL_NGSA}" ]; then
+ OSM_HELM_OPTS="${OSM_HELM_OPTS} --set airflow.defaultAirflowRepository=${DOCKER_REGISTRY_URL}${DOCKER_USER}/airflow"
+ [ ! "$OSM_DOCKER_TAG" == "testing-daily" ] && OSM_HELM_OPTS="${OSM_HELM_OPTS} --set-string airflow.defaultAirflowTag=${OSM_DOCKER_TAG}"
+ OSM_HELM_OPTS="${OSM_HELM_OPTS} --set airflow.ingress.web.hosts[0].name=airflow.${OSM_K8S_EXTERNAL_IP}.nip.io"
+ else
+ OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.oldServiceAssurance=true --set airflow.enabled=false"
+ fi
if [ -n "${OSM_BEHIND_PROXY}" ]; then
OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.behindHttpProxy=true"
[ -n "${HTTP_PROXY}" ] && OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.httpProxy.HTTP_PROXY=\"${HTTP_PROXY}\""
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
+function install_osm_ngsa_service() {
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+ NGSA_OPTS="-i ${OSM_K8S_EXTERNAL_IP} -d ${OSM_HELM_WORK_DIR} -D ${OSM_DEVOPS} -s ${OSM_NAMESPACE} -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
+}
+
function add_local_k8scluster() {
[ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
# OSM_HOSTNAME=$(kubectl get --namespace osm -o jsonpath="{.spec.rules[0].host}" ingress nbi-ingress)
fi
track mgmtcluster mgmt_and_aux_cluster_ok
- # Deploy OSM (OSM helm chart)
+ # Deploy OSM (mongodb, OSM helm chart, NGSA)
echo "Deploying OSM in the K8s cluster ..."
deploy_osm
echo "INSTALL_JUJU=$INSTALL_JUJU"
echo "INSTALL_K8S_MONITOR=$INSTALL_K8S_MONITOR"
echo "INSTALL_LXD=$INSTALL_LXD"
+ echo "INSTALL_NGSA=$INSTALL_NGSA"
echo "INSTALL_DOCKER=$INSTALL_DOCKER"
echo "INSTALL_ONLY=$INSTALL_ONLY"
echo "INSTALL_ONLY_DEPLOY_OSM=$INSTALL_ONLY_DEPLOY_OSM"
echo "INSTALL_ONLY_DOCKER_CE=$INSTALL_ONLY_DOCKER_CE"
echo "INSTALL_ONLY_K8S_CLUSTER=$INSTALL_ONLY_K8S_CLUSTER"
+ echo "INSTALL_ONLY_NGSA=$INSTALL_ONLY_NGSA"
+ echo "INSTALL_PLA=$INSTALL_PLA"
echo "INSTALL_TO_OPENSTACK=$INSTALL_TO_OPENSTACK"
echo "INSTALL_VIMEMU=$INSTALL_VIMEMU"
echo "OPENSTACK_PUBLIC_NET_NAME=$OPENSTACK_PUBLIC_NET_NAME"
RELEASE="testing-daily"
REPOSITORY="testing"
INSTALL_K8S_MONITOR=""
+INSTALL_NGSA="y"
+INSTALL_PLA=""
INSTALL_VIMEMU=""
LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd"
LXD_REPOSITORY_PATH=""
INSTALL_ONLY_DEPLOY_OSM=""
INSTALL_ONLY_DOCKER_CE=""
INSTALL_ONLY_K8S_CLUSTER=""
+INSTALL_ONLY_NGSA=""
INSTALL_DOCKER=""
INSTALL_JUJU=""
INSTALL_NOHOSTCLIENT=""
o)
INSTALL_ONLY="y"
[ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue
+ [ "${OPTARG}" == "ng-sa" ] && INSTALL_ONLY_NGSA="y" && continue
[ "${OPTARG}" == "docker" ] && INSTALL_ONLY_DOCKER_CE="y" && continue
[ "${OPTARG}" == "k8scluster" ] && INSTALL_ONLY_K8S_CLUSTER="y" && continue
[ "${OPTARG}" == "deploy-osm" ] && INSTALL_ONLY_DEPLOY_OSM="y" && continue
[ "${OPTARG}" == "ha" ] && continue
[ "${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
[ "${OPTARG}" == "cachelxdimages" ] && INSTALL_CACHELXDIMAGES="--cachelxdimages" && continue
[ -n "$INSTALL_ONLY_K8S_CLUSTER" ] && install_k8s_cluster
[ -n "$INSTALL_K8S_MONITOR" ] && install_k8s_monitoring
[ -n "$INSTALL_ONLY_DEPLOY_OSM" ] && deploy_osm
+ [ -n "$INSTALL_ONLY_NGSA" ] && install_osm_ngsa_service
echo -e "\nDONE" && exit 0
fi
# This is where installation starts
+{{- if not .Values.global.oldServiceAssurance -}}
{{- if .Values.airflow.enabled -}}
#######################################################################################
# Copyright ETSI Contributors and Others.
{{- include "osm.labels" . | nindent 4 }}
data:
webserver-secret-key: {{ randAlphaNum 32 | b64enc | quote }}
+{{- end }}
{{- end }}
\ No newline at end of file
+{{- if not .Values.global.oldServiceAssurance -}}
{{- if .Values.alertmanager.enabled -}}
#######################################################################################
# Copyright ETSI Contributors and Others.
name: alertmanager
port:
number: 9093
+{{- end }}
{{- end }}
\ No newline at end of file
{{- toYaml .Values.global.securityContext | nindent 12 }}
image: {{ include "osm.mon.image" . }}
imagePullPolicy: {{ .Values.global.image.pullPolicy }}
+ {{- if not .Values.global.oldServiceAssurance }}
command: ["/bin/bash"]
args: ["scripts/dashboarder-start.sh"]
+ {{- end }}
ports:
- containerPort: 8662
protocol: TCP
--- /dev/null
+{{- if .Values.global.oldServiceAssurance -}}
+{{- if .Values.pla.enabled -}}
+#######################################################################################
+# 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.
+#######################################################################################
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "osm.fullname" . }}-pla-configmap
+ labels:
+ {{- include "osm.labels" . | nindent 4 }}
+data:
+ OSMPLA_DATABASE_HOST: "mongo"
+ OSMPLA_MESSAGE_HOST: "kafka"
+ OSMPLA_GLOBAL_LOG_LEVEL: {{ .Values.pla.logLevel | default .Values.global.logLevel | default "INFO" }}
+{{- end }}
+{{- end }}
\ No newline at end of file
--- /dev/null
+{{- if .Values.global.oldServiceAssurance -}}
+{{- if .Values.pla.enabled -}}
+#######################################################################################
+# 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.
+#######################################################################################
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: pla
+ labels:
+ {{- include "osm.labels" . | nindent 4 }}
+spec:
+ replicas: {{ .Values.pla.replicaCount | default .Values.global.replicaCount }}
+ selector:
+ matchLabels:
+ app.kubernetes.io/component: pla
+ {{- include "osm.selectorLabels" . | nindent 6 }}
+ template:
+ metadata:
+ {{- with .Values.global.podAnnotations }}
+ annotations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ labels:
+ app.kubernetes.io/component: pla
+ {{- include "osm.selectorLabels" . | nindent 8 }}
+ spec:
+ {{- with .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ serviceAccountName: {{ include "osm.serviceAccountName" . }}
+ securityContext:
+ {{- toYaml .Values.global.podSecurityContext | nindent 8 }}
+ initContainers:
+ - name: kafka-mongo-test
+ image: alpine:latest
+ command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 {{ .Values.global.db.mongo.mongoService }} 27017); do sleep 3; done; exit 0"]
+ containers:
+ - name: pla
+ securityContext:
+ readOnlyRootFilesystem: true
+ allowPrivilegeEscalation: false
+ runAsNonRoot: true
+ {{- toYaml .Values.global.securityContext | nindent 12 }}
+ image: {{ include "osm.pla.image" . }}
+ imagePullPolicy: {{ .Values.global.image.pullPolicy }}
+ resources:
+ limits:
+ memory: 1024Mi
+ requests:
+ memory: 128Mi
+ envFrom:
+ - configMapRef:
+ name: {{ include "osm.fullname" . }}-pla-configmap
+ env:
+ - name: OSMPLA_DATABASE_URI
+ valueFrom:
+ secretKeyRef:
+ name: {{ include "osm.fullname" . }}-secret
+ key: OSM_DATABASE_URI
+ {{- with .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.affinity }}
+ affinity:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+{{- end }}
+{{- end }}
\ No newline at end of file
--- /dev/null
+{{- if .Values.global.oldServiceAssurance -}}
+{{- if .Values.pol.enabled -}}
+#######################################################################################
+# 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.
+#######################################################################################
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "osm.fullname" . }}-pol-configmap
+ labels:
+ {{- include "osm.labels" . | nindent 4 }}
+data:
+ OSMPOL_MESSAGE_HOST: "kafka"
+ OSMPOL_MESSAGE_PORT: "9092"
+ OSMPOL_GLOBAL_LOG_LEVEL: {{ .Values.pol.logLevel | default .Values.global.logLevel | default "INFO" }}
+{{- end }}
+{{- end }}
\ No newline at end of file
--- /dev/null
+{{- if .Values.global.oldServiceAssurance -}}
+{{- if .Values.pol.enabled -}}
+#######################################################################################
+# 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.
+#######################################################################################
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: pol
+ labels:
+ {{- include "osm.labels" . | nindent 4 }}
+spec:
+ replicas: {{ .Values.pol.replicaCount | default .Values.global.replicaCount }}
+ selector:
+ matchLabels:
+ app.kubernetes.io/component: pol
+ {{- include "osm.selectorLabels" . | nindent 6 }}
+ template:
+ metadata:
+ {{- with .Values.global.podAnnotations }}
+ annotations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ labels:
+ app.kubernetes.io/component: pol
+ {{- include "osm.selectorLabels" . | nindent 8 }}
+ spec:
+ {{- with .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ serviceAccountName: {{ include "osm.serviceAccountName" . }}
+ securityContext:
+ {{- toYaml .Values.global.podSecurityContext | nindent 8 }}
+ initContainers:
+ - name: kafka-mongo-test
+ image: alpine:latest
+ command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 {{ .Values.global.db.mongo.mongoService }} 27017); do sleep 3; done; exit 0"]
+ containers:
+ - name: pol
+ securityContext:
+ # readOnlyRootFilesystem: true
+ allowPrivilegeEscalation: false
+ runAsNonRoot: true
+ {{- toYaml .Values.global.securityContext | nindent 12 }}
+ image: {{ include "osm.pol.image" . }}
+ imagePullPolicy: {{ .Values.global.image.pullPolicy }}
+ ports:
+ - containerPort: 8662
+ protocol: TCP
+ resources:
+ limits:
+ memory: 1024Mi
+ requests:
+ memory: 128Mi
+ envFrom:
+ - configMapRef:
+ name: {{ include "osm.fullname" . }}-pol-configmap
+ {{- if not .Values.pol.useOsmSecret }}
+ - secretRef:
+ name: {{ .Values.pol.secretName | default "pol-secret" }}
+ {{- else }}
+ env:
+ - name: OSMPOL_DATABASE_COMMONKEY
+ valueFrom:
+ secretKeyRef:
+ name: {{ include "osm.fullname" . }}-secret
+ key: OSM_DATABASE_COMMONKEY
+ - name: OSMPOL_DATABASE_URI
+ valueFrom:
+ secretKeyRef:
+ name: {{ include "osm.fullname" . }}-secret
+ key: OSM_DATABASE_URI
+ {{- end }}
+ {{- with .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.affinity }}
+ affinity:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+{{- end }}
+{{- end }}
\ No newline at end of file
+{{- if not .Values.global.oldServiceAssurance -}}
{{- if .Values.webhookTranslator.enabled -}}
#######################################################################################
# Copyright ETSI Contributors and Others.
data:
AIRFLOW_HOST: "airflow-webserver"
AIRFLOW_PORT: "8080"
+{{- end }}
{{- end }}
\ No newline at end of file
+{{- if not .Values.global.oldServiceAssurance -}}
{{- if .Values.webhookTranslator.enabled -}}
#######################################################################################
# Copyright ETSI Contributors and Others.
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
+{{- end }}
{{- end }}
\ No newline at end of file
+{{- if not .Values.global.oldServiceAssurance -}}
{{- if .Values.webhookTranslator.enabled -}}
#######################################################################################
# Copyright ETSI Contributors and Others.
name: webhook-translator
port:
number: 9998
+{{- end }}
{{- end }}
\ No newline at end of file
+{{- if not .Values.global.oldServiceAssurance -}}
{{- if .Values.webhookTranslator.enabled -}}
#######################################################################################
# Copyright ETSI Contributors and Others.
AIRFLOW_USER: {{ "admin" | b64enc | quote }}
# AIRFLOW_PASS: {{ randAlphaNum 32 | b64enc | quote }}
AIRFLOW_PASS: {{ "admin" | b64enc | quote }}
+{{- end }}
{{- end }}
\ No newline at end of file
+{{- if not .Values.global.oldServiceAssurance -}}
{{- if .Values.webhookTranslator.enabled -}}
#######################################################################################
# Copyright ETSI Contributors and Others.
selector:
app.kubernetes.io/component: webhook-translator
{{- include "osm.selectorLabels" . | nindent 4 }}
+{{- end }}
{{- end }}
\ No newline at end of file
# HTTPS_PROXY: <HTTPS_PROXY>
# NO_PROXY: <NO_PROXY>
+ oldServiceAssurance: false
+
airflow:
enabled: true
config:
# tag: "testing-daily"
# replicaCount: 1
+# pla module is disabled by default unless global.oldServiceAssurance and pla.enabled are set to true
+pla:
+ enabled: false
+ # logLevel: DEBUG
+ image: {}
+ # repository: opensourcemano/pla
+ # tag: "testing-daily"
+ # replicaCount: 1
+
+# pol module is disabled by default unless global.oldServiceAssurance and pol.enabled are set to true
+pol:
+ enabled: true
+ # logLevel: DEBUG
+ image: {}
+ # repository: opensourcemano/pol
+ # tag: "testing-daily"
+ # replicaCount: 1
+ useOsmSecret: true
+ # secretName: "pol-secret"
+
prometheus:
enabled: true
configmapReload:
--- /dev/null
+#
+# 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.
+#
+---
+config:
+ core:
+ parallelism: 4
+ dag_concurrency: 2
+ max_active_tasks_per_dag: 2
+ worker_concurrency: 2
+ dags_folder: "/home/airflow/.local/lib/python3.10/site-packages/osm_ngsa"
+defaultAirflowRepository: opensourcemano/airflow
+defaultAirflowTag: "testing-daily"
+executor: LocalExecutor
+extraEnv: |
+ - name: AIRFLOW__API__AUTH_BACKENDS
+ value: 'airflow.api.auth.backend.basic_auth'
+ - name: AIRFLOW__LOGGING__LOGGING_LEVEL
+ value: 'INFO'
+ - name: OSMMON_DATABASE_COMMONKEY
+ valueFrom:
+ secretKeyRef:
+ name: osm-secret
+ key: OSM_DATABASE_COMMONKEY
+# extraEnvFrom: |
+# - secretRef:
+# name: ngsa-secret
+ingress:
+ web:
+ enabled: True
+ hosts:
+ - name: "localhost"
+ ingressClassName: nginx
+# scheduler:
+# resources:
+# requests:
+# memory: 512Mi
+# cpu: 250m
+# limits:
+# memory: 1Gi
+# cpu: 500m
+webserverSecretKeySecretName: airflow-webserver-secret
+webserver:
+ resources:
+ requests:
+ memory: 256Mi
+ cpu: 250m
+ limits:
+ memory: 1Gi
+ cpu: 500m
+ service:
+ type: ClusterIP
+ ports:
+ - name: airflow-ui
+ port: "{{ .Values.ports.airflowUI }}"
+ targetPort: "{{ .Values.ports.airflowUI }}"
+workers:
+ persistence:
+ size: 2Gi
+ replicas: 1
+ resources:
+ requests:
+ memory: 512Mi
+ cpu: 250m
+ limits:
+ memory: 1Gi
+ cpu: 500m
+ logGroomerSidecar:
+ retentionDays: 7
+ resources:
+ limits:
+ cpu: 100m
+ memory: 128Mi
+ requests:
+ cpu: 100m
+ memory: 128Mi
--- /dev/null
+#!/bin/bash
+#
+# 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.
+#
+
+set +eux
+
+# Helm chart 1.6.0 correspondes to Airflow 2.3.0
+AIRFLOW_HELM_VERSION=1.9.0
+
+# Install Airflow helm chart
+function install_airflow() {
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+ # copy airflow-values.yaml to the destination folder
+ sudo mkdir -p ${OSM_HELM_WORK_DIR}
+ sudo cp ${OSM_DEVOPS}/installers/helm/values/airflow-values.yaml ${OSM_HELM_WORK_DIR}
+ # update airflow-values.yaml to use the right tag
+ echo "Updating Helm values file helm/values/airflow-values.yaml to use defaultAirflowTag: ${OSM_DOCKER_TAG}"
+ sudo sed -i "s#defaultAirflowTag:.*#defaultAirflowTag: \"${OSM_DOCKER_TAG}\"#g" ${OSM_HELM_WORK_DIR}/airflow-values.yaml
+ echo "Updating Helm values file helm/values/airflow-values.yaml to use defaultAirflowRepository: ${DOCKER_REGISTRY_URL}${DOCKER_USER}/airflow"
+ sudo sed -i "s#defaultAirflowRepository:.*#defaultAirflowRepository: ${DOCKER_REGISTRY_URL}${DOCKER_USER}/airflow#g" ${OSM_HELM_WORK_DIR}/airflow-values.yaml
+ echo "Updating Helm values file helm/values/airflow-values.yaml to set ingress.web.hosts with host \"airflow.${DEFAULT_IP}.nip.io\""
+ sudo sed -i "s#name: \"localhost\"#name: \"airflow.${DEFAULT_IP}.nip.io\"#g" ${OSM_HELM_WORK_DIR}/airflow-values.yaml
+
+ helm repo add apache-airflow https://airflow.apache.org
+ helm repo update
+ helm upgrade airflow apache-airflow/airflow -n ${OSM_NAMESPACE} --create-namespace --install -f ${OSM_HELM_WORK_DIR}/airflow-values.yaml --version ${AIRFLOW_HELM_VERSION} --timeout 10m || FATAL_TRACK ngsa "Failed installing airflow helm chart"
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
+# main
+while getopts ":D:d:i:s:t:r:U:-: " o; do
+ case "${o}" in
+ i)
+ DEFAULT_IP="${OPTARG}"
+ ;;
+ D)
+ OSM_DEVOPS="${OPTARG}"
+ ;;
+ d)
+ OSM_HELM_WORK_DIR="${OPTARG}"
+ ;;
+ s)
+ OSM_NAMESPACE="${OPTARG}"
+ ;;
+ t)
+ OSM_DOCKER_TAG="${OPTARG}"
+ ;;
+ r)
+ DOCKER_REGISTRY_URL="${OPTARG}"
+ ;;
+ U)
+ DOCKER_USER="${OPTARG}"
+ ;;
+ -)
+ [ "${OPTARG}" == "debug" ] && DEBUG_INSTALL="y" && continue
+ echo -e "Invalid option: '--$OPTARG'\n" >&2
+ exit 1
+ ;;
+ :)
+ echo "Option -$OPTARG requires an argument" >&2
+ exit 1
+ ;;
+ \?)
+ echo -e "Invalid option: '-$OPTARG'\n" >&2
+ exit 1
+ ;;
+ *)
+ exit 1
+ ;;
+ esac
+done
+
+DEBUG_INSTALL=${DEBUG_INSTALL:-}
+DEFAULT_IP=${DEFAULT_IP:-"127.0.0.1"}
+OSM_DEVOPS=${OSM_DEVOPS:-"/usr/share/osm-devops"}
+OSM_DOCKER_TAG=${OSM_DOCKER_TAG:-"testing-daily"}
+OSM_HELM_WORK_DIR=${OSM_HELM_WORK_DIR:-"/etc/osm/helm"}
+OSM_NAMESPACE=${OSM_NAMESPACE:-"osm"}
+DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL:-}
+DOCKER_USER=${DOCKER_USER:-"opensourcemano"}
+echo "DEBUG_INSTALL=$DEBUG_INSTALL"
+echo "DEFAULT_IP=$DEFAULT_IP"
+echo "OSM_DEVOPS=$OSM_DEVOPS"
+echo "OSM_DOCKER_TAG=$OSM_DOCKER_TAG"
+echo "OSM_HELM_WORK_DIR=$OSM_HELM_WORK_DIR"
+echo "OSM_NAMESPACE=$OSM_NAMESPACE"
+echo "DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL"
+echo "DOCKER_USER=$DOCKER_USER"
+
+source $OSM_DEVOPS/common/logging
+source $OSM_DEVOPS/common/track
+
+install_airflow
+track deploy_osm airflow_ok
echo -e " -S <VCA secret> use VCA/juju secret key"
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 " --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 " -o <COMPONENT>: ONLY installs the specified component (k8s_monitor, ng-sa, k8scluster, docker, deploy-osm)"
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/"
echo -e " -N <openstack public network name/ID>: public network name required to setup OSM to OpenStack"
echo "Now osm docker images and volumes will be deleted"
# TODO: clean-up of images should take into account if other tags were used for specific modules
newgrp docker << EONG
-for module in ro lcm keystone nbi mon osmclient; do
+for module in ro lcm keystone nbi mon pol pla osmclient; do
docker image rm ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module}:${OSM_DOCKER_TAG}
done
EONG
RELEASE="ReleaseTEN"
REPOSITORY="stable"
INSTALL_VIMEMU=""
+INSTALL_PLA=""
LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd"
LXD_REPOSITORY_PATH=""
INSTALL_LIGHTWEIGHT="y"
[ "${OPTARG}" == "LCM" ] && TO_REBUILD="$TO_REBUILD LCM" && continue
[ "${OPTARG}" == "RO" ] && TO_REBUILD="$TO_REBUILD RO" && continue
[ "${OPTARG}" == "MON" ] && TO_REBUILD="$TO_REBUILD MON" && continue
+ [ "${OPTARG}" == "POL" ] && TO_REBUILD="$TO_REBUILD POL" && continue
+ [ "${OPTARG}" == "PLA" ] && TO_REBUILD="$TO_REBUILD PLA" && continue
[ "${OPTARG}" == "osmclient" ] && TO_REBUILD="$TO_REBUILD osmclient" && continue
[ "${OPTARG}" == "KAFKA" ] && TO_REBUILD="$TO_REBUILD KAFKA" && continue
[ "${OPTARG}" == "MONGO" ] && TO_REBUILD="$TO_REBUILD MONGO" && continue
[ "${OPTARG}" == "ha" ] && continue
[ "${OPTARG}" == "tag" ] && continue
[ "${OPTARG}" == "registry" ] && continue
+ [ "${OPTARG}" == "pla" ] && INSTALL_PLA="y" && continue
[ "${OPTARG}" == "volume" ] && OPENSTACK_ATTACH_VOLUME="true" && continue
[ "${OPTARG}" == "nocachelxdimages" ] && continue
[ "${OPTARG}" == "cachelxdimages" ] && INSTALL_CACHELXDIMAGES="--cachelxdimages" && continue
parallelSteps = [:]
list = ['RO', 'osmclient', 'IM', 'devops', 'MON', 'N2VC', 'NBI',
- 'common', 'LCM', 'NG-UI', 'NG-SA', 'tests']
+ 'common', 'LCM', 'POL', 'NG-UI', 'NG-SA', 'PLA', 'tests']
if (upstreamComponent.length() > 0) {
println("Skipping upstream fetch of ${upstreamComponent}")
list.remove(upstreamComponent)
echo "-----------------------------------------" > "${OSM_CHANGES_FOLDER}/osm_changes-${BRANCH}-from${FROM_REF}-to${TO_REF}.log"
-modules="common devops IM LCM MON N2VC NBI NG-SA NG-UI osmclient RO SOL003 SOL005 tests"
+modules="common devops IM LCM MON N2VC NBI NG-SA NG-UI osmclient RO PLA POL SOL003 SOL005 tests"
for repo in $modules; do
echo ${repo}
git -C ${OSM_CHANGES_FOLDER} clone "https://osm.etsi.org/gerrit/osm/${repo}"
tag_header="OSM Release TWO:"
tag_message="$tag_header version $TAG"
-modules="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO SOL003 SOL005 tests"
+modules="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO PLA POL SOL003 SOL005 tests"
list=""
for i in $modules; do
if [ "$1" == "$i" -o "$1" == "all" ]; then
echo "BUILD_NUMBER: $BUILD_NUMBER"
}
-MDG_REPOS="RO osmclient openvim SO UI IM devops MON N2VC NBI common LW-UI NG-UI NG-SA"
+MDG_REPOS="RO osmclient openvim SO UI IM devops MON N2VC NBI common POL PLA LW-UI NG-UI NG-SA"
IN_REPO="unstable"
OUT_REPO="stable"
GPGKEY=71C0472C
function stage_2() {
print_section "Performing Stage 2"
- MODULES="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO tests"
+ MODULES="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient PLA POL RO tests"
if [ ! -z ${1} ] ; then
POSSIBLE_MODULES=$(echo ${1} | sed "s/,/ /g")
for MODULE in ${POSSIBLE_MODULES}; do
USER="$3"
tag_message="Start of $BRANCH"
-modules="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO SOL003 SOL005 tests"
+modules="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO PLA POL SOL003 SOL005 tests"
list=""
for i in $modules; do
if [ "$1" == "$i" -o "$1" == "all" ]; then
tag_header="OSM Release $RELEASE_NAME:"
tag_message="$tag_header version $TAG"
-modules="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO SOL003 SOL005 tests"
+modules="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO PLA POL SOL003 SOL005 tests"
list=""
for i in $modules; do
if [ "$1" == "$i" -o "$1" == "all" ]; then
which osm
#dockers deb packages
echo "dockers deb packages"
-for i in kafka keystone lcm mon mongo nbi prometheus ro mysql zookeeper; do
+for i in kafka keystone lcm mon mongo nbi pol prometheus ro mysql zookeeper; do
echo "docker osm_$i"
docker exec $(docker ps -q -f name=osm_$i -l) dpkg -l |grep osm
done
echo "dockers deb packages"
echo "MON"
docker exec -it $(docker ps -aqf "name=osm_mon" -n 1) dpkg -l |egrep -i "osm|n2vc"
+echo "POL"
+docker exec -it $(docker ps -aqf "name=osm_pol" -n 1) dpkg -l |egrep -i "osm|n2vc"
echo "LCM"
docker exec -it $(docker ps -aqf "name=osm_lcm" -n 1) dpkg -l |egrep -i "osm|n2vc"
echo "NBI"
echo "docker osm_mon"
docker exec $(docker ps -q -f name=osm_mon -l) git -C /mon rev-parse HEAD
docker exec $(docker ps -q -f name=osm_mon -l) git -C /mon describe --tags --long --dirty
+echo "docker osm_pol"
+docker exec $(docker ps -q -f name=osm_pol -l) git -C /policy_module rev-parse HEAD
+docker exec $(docker ps -q -f name=osm_pol -l) git -C /policy_module describe --tags --long --dirty
#Get configuration files
echo "-------------------------------"