# set -eux
-LXD_VERSION=4.0
+LXD_VERSION=5.0
JUJU_VERSION=2.9
-JUJU_AGENT_VERSION=2.9.33
+JUJU_AGENT_VERSION=2.9.34
K8S_CLOUD_NAME="k8s-cloud"
KUBECTL="microk8s.kubectl"
-MICROK8S_VERSION=1.23
+MICROK8S_VERSION=1.26
OSMCLIENT_VERSION=latest
IMAGES_OVERLAY_FILE=~/.osm/images-overlay.yaml
PASSWORD_OVERLAY_FILE=~/.osm/password-overlay.yaml
PATH=/snap/bin:${PATH}
OSM_DEVOPS="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/.. &> /dev/null && pwd )"
+INSTALL_PLA=""
+PLA_OVERLAY_FILE=~/.osm/pla-overlay.yaml
+
if [ -f ${OSM_DEVOPS}/common/all_funcs ] ; then
source ${OSM_DEVOPS}/common/all_funcs
else
--tag) TAG="$2" ;;
--registry) REGISTRY_INFO="$2" ;;
--only-vca) ONLY_VCA=y ;;
+ --pla) INSTALL_PLA=y ;;
esac
shift
done
else
sg ${KUBEGRP} -c "echo ${DEFAULT_IP}-${DEFAULT_IP} | microk8s.enable metallb"
sg ${KUBEGRP} -c "microk8s.enable ingress"
- sg ${KUBEGRP} -c "microk8s.enable storage dns"
+ sg ${KUBEGRP} -c "microk8s.enable hostpath-storage dns"
TIME_TO_WAIT=30
start_time="$(date -u +%s)"
while true
sudo sysctl --system
# Install LXD snap
sudo apt-get remove --purge -y liblxc1 lxc-common lxcfs lxd lxd-client
- sudo snap install lxd --channel $LXD_VERSION/stable
+ snap info lxd | grep installed > /dev/null
+ if [ $? -eq 0 ]; then
+ sudo snap refresh lxd --channel $LXD_VERSION/stable
+ else
+ sudo snap install lxd --channel $LXD_VERSION/stable
+ fi
# Configure LXD
sudo usermod -a -G lxd `whoami`
cat /usr/share/osm-devops/installers/lxd-preseed.conf | sed 's/^config: {}/config:\n core.https_address: '$LXDENDPOINT':8443/' | sg lxd -c "lxd init --preseed"
generate_password_overlay && secret_overlay="--overlay $PASSWORD_OVERLAY_FILE"
+ [ -n "$INSTALL_PLA" ] && create_pla_overlay && pla_overlay="--overlay $PLA_OVERLAY_FILE"
+
if [ -v BUNDLE ]; then
- juju deploy --trust --channel $CHARMHUB_CHANNEL -m $MODEL_NAME $BUNDLE $images_overlay $extra_overlay $secret_overlay
+ juju deploy --trust --channel $CHARMHUB_CHANNEL -m $MODEL_NAME $BUNDLE $images_overlay $extra_overlay $secret_overlay $pla_overlay
else
- juju deploy --trust --channel $CHARMHUB_CHANNEL -m $MODEL_NAME $OSM_BUNDLE $images_overlay $extra_overlay $secret_overlay
+ juju deploy --trust --channel $CHARMHUB_CHANNEL -m $MODEL_NAME $OSM_BUNDLE $images_overlay $extra_overlay $secret_overlay $pla_overlay
fi
if [ ! -v KUBECFG ]; then
API_SERVER="$(echo $hostport | sed -e 's,:.*,,g')"
fi
# Configure VCA Integrator
- juju config vca \
- k8s-cloud=microk8s \
- lxd-cloud=lxd-cloud:lxd-cloud \
- controllers="`cat ~/.local/share/juju/controllers.yaml`" \
- accounts="`cat ~/.local/share/juju/accounts.yaml`" \
- public-key="`cat ~/.local/share/juju/ssh/juju_id_rsa.pub`"
+ if [ ! -v INSTALL_NOLXD ]; then
+ juju config vca \
+ k8s-cloud=microk8s \
+ lxd-cloud=lxd-cloud:lxd-cloud \
+ controllers="`cat ~/.local/share/juju/controllers.yaml`" \
+ accounts="`cat ~/.local/share/juju/accounts.yaml`" \
+ public-key="`cat ~/.local/share/juju/ssh/juju_id_rsa.pub`"
+ else
+ juju config vca \
+ k8s-cloud=microk8s \
+ controllers="`cat ~/.local/share/juju/controllers.yaml`" \
+ accounts="`cat ~/.local/share/juju/accounts.yaml`" \
+ public-key="`cat ~/.local/share/juju/ssh/juju_id_rsa.pub`"
+ fi
# Expose OSM services
juju config -m $MODEL_NAME nbi external-hostname=nbi.${API_SERVER}.nip.io
juju config -m $MODEL_NAME ng-ui external-hostname=ui.${API_SERVER}.nip.io
function check_osm_deployed() {
TIME_TO_WAIT=600
start_time="$(date -u +%s)"
- total_service_count=16
+ total_service_count=15
+ [ -n "$INSTALL_PLA" ] && total_service_count=$((total_service_count + 1))
previous_count=0
while true
do
mv /tmp/password-overlay.yaml $PASSWORD_OVERLAY_FILE
}
+function create_pla_overlay(){
+ echo "Creating PLA Overlay"
+ [ $BUNDLE == $OSM_HA_BUNDLE ] && scale=3 || scale=1
+ cat << EOF > /tmp/pla-overlay.yaml
+applications:
+ pla:
+ charm: osm-pla
+ channel: latest/stable
+ scale: $scale
+ series: kubernetes
+ options:
+ log_level: DEBUG
+ resources:
+ image: opensourcemano/pla:testing-daily
+relations:
+ - - pla:kafka
+ - kafka:kafka
+ - - pla:mongodb
+ - mongodb:database
+EOF
+ mv /tmp/pla-overlay.yaml $PLA_OVERLAY_FILE
+}
+
function generate_images_overlay(){
echo "applications:" > /tmp/images-overlay.yaml
- charms_with_resources="nbi lcm mon pol ng-ui ro pla"
+ charms_with_resources="nbi lcm mon pol ng-ui ro"
+ [ -n "$INSTALL_PLA" ] && charms_with_resources+=" pla"
for charm in $charms_with_resources; do
cat << EOF > /tmp/${charm}_registry.yaml
registrypath: ${REGISTRY_URL}opensourcemano/${charm}:$TAG
cat << EOF >> /tmp/images-overlay.yaml
${charm}:
resources:
- image: /tmp/${charm}_registry.yaml
+ ${charm}-image: /tmp/${charm}_registry.yaml
EOF
done