# set -eux
-JUJU_AGENT_VERSION=2.8.6
+JUJU_AGENT_VERSION=2.8.9
K8S_CLOUD_NAME="k8s-cloud"
KUBECTL="microk8s.kubectl"
MICROK8S_VERSION=1.19
MODEL_NAME=osm
-OSM_BUNDLE=cs:osm-54
-OSM_HA_BUNDLE=cs:osm-ha-40
-TAG=9
+OSM_BUNDLE=cs:osm-58
+OSM_HA_BUNDLE=cs:osm-ha-43
+TAG=testing-daily
function check_arguments(){
while [ $# -gt 0 ] ; do
function install_snaps(){
if [ ! -v KUBECFG ]; then
sudo snap install microk8s --classic --channel=${MICROK8S_VERSION}/stable
- cat /var/snap/microk8s/current/args/kube-apiserver | grep advertise-address || (
+ sudo cat /var/snap/microk8s/current/args/kube-apiserver | grep advertise-address || (
echo "--advertise-address $DEFAULT_IP" | sudo tee -a /var/snap/microk8s/current/args/kube-apiserver
microk8s.stop
microk8s.start
juju deploy -m $MODEL_NAME $OSM_BUNDLE --overlay ~/.osm/vca-overlay.yaml $images_overlay
fi
- echo "Waiting for deployment to finish..."
- check_osm_deployed
- echo "OSM with charms deployed"
if [ ! -v KUBECFG ]; then
API_SERVER=${DEFAULT_IP}
else
hostport="$(echo ${url/$user@/} | cut -d/ -f1)"
API_SERVER="$(echo $hostport | sed -e 's,:.*,,g')"
fi
-
# Expose OSM services
- # Expose NBI
juju config -m $MODEL_NAME nbi site_url=https://nbi.${API_SERVER}.xip.io
juju config -m $MODEL_NAME ng-ui site_url=https://ui.${API_SERVER}.xip.io
+ juju config -m $MODEL_NAME grafana site_url=https://grafana.${API_SERVER}.xip.io
+ juju config -m $MODEL_NAME prometheus site_url=https://prometheus.${API_SERVER}.xip.io
- # Expose Grafana
- juju config -m $MODEL_NAME grafana-k8s juju-external-hostname=grafana.${API_SERVER}.xip.io
- juju expose -m $MODEL_NAME grafana-k8s
- wait_for_port grafana-k8s 0
-
- # Expose Prometheus
- juju config -m $MODEL_NAME prometheus-k8s juju-external-hostname=prometheus.${API_SERVER}.xip.io
- juju expose -m $MODEL_NAME prometheus-k8s
- wait_for_port prometheus-k8s 1
-
- # Apply annotations
- sg ${KUBEGRP} -c "${KUBECTL} annotate ingresses.networking nginx.ingress.kubernetes.io/proxy-body-size=0 -n osm -l juju-app=ng-ui"
+ echo "Waiting for deployment to finish..."
+ check_osm_deployed
+ echo "OSM with charms deployed"
}
function check_osm_deployed() {
# Generate a new overlay.yaml, overriding any existing one
cat << EOF > /tmp/vca-overlay.yaml
applications:
- lcm-k8s:
+ lcm:
options:
vca_user: $vca_user
vca_password: $vca_password
vca_cacert: $vca_cacert
vca_cloud: $vca_cloud
vca_k8s_cloud: $K8S_CLOUD_NAME
- mon-k8s:
+ mon:
options:
vca_user: $vca_user
vca_password: $vca_password
}
function generate_images_overlay(){
- cat << EOF > /tmp/nbi_registry.yaml
-registrypath: ${REGISTRY_URL}opensourcemano/nbi:$TAG
-EOF
- cat << EOF > /tmp/ng_ui_registry.yaml
-registrypath: ${REGISTRY_URL}opensourcemano/ng-ui:$TAG
-EOF
- if [ ! -z "$REGISTRY_USERNAME" ] ; then
- REGISTRY_CREDENTIALS=$(cat <<EOF
+ echo "applications:" > /tmp/images-overlay.yaml
- image_username: $REGISTRY_USERNAME
- image_password: $REGISTRY_PASSWORD
+ charms_with_resources="nbi lcm mon pol ng-ui ro pla keystone"
+ for charm in $charms_with_resources; do
+ cat << EOF > /tmp/${charm}_registry.yaml
+registrypath: ${REGISTRY_URL}opensourcemano/${charm}:$TAG
EOF
- );
- echo username: $REGISTRY_USERNAME >> /tmp/nbi_registry.yaml
- echo password: $REGISTRY_PASSWORD >> /tmp/nbi_registry.yaml
- echo username: $REGISTRY_USERNAME >> /tmp/ng_ui_registry.yaml
- echo password: $REGISTRY_PASSWORD >> /tmp/ng_ui_registry.yaml
-fi
+ if [ ! -z "$REGISTRY_USERNAME" ] ; then
+ echo username: $REGISTRY_USERNAME >> /tmp/${charm}_registry.yaml
+ echo password: $REGISTRY_PASSWORD >> /tmp/${charm}_registry.yaml
+ fi
- cat << EOF > /tmp/images-overlay.yaml
-applications:
- lcm-k8s:
- options:
- image: ${REGISTRY_URL}opensourcemano/lcm:$TAG ${REGISTRY_CREDENTIALS}
- mon-k8s:
- options:
- image: ${REGISTRY_URL}opensourcemano/mon:$TAG ${REGISTRY_CREDENTIALS}
- ro-k8s:
- options:
- image: ${REGISTRY_URL}opensourcemano/ro:$TAG ${REGISTRY_CREDENTIALS}
- nbi:
- resources:
- image: /tmp/nbi_registry.yaml
- pol-k8s:
- options:
- image: ${REGISTRY_URL}opensourcemano/pol:$TAG ${REGISTRY_CREDENTIALS}
- pla:
- options:
- image: ${REGISTRY_URL}opensourcemano/pla:$TAG ${REGISTRY_CREDENTIALS}
- ng-ui:
+ cat << EOF >> /tmp/images-overlay.yaml
+ ${charm}:
resources:
- image: /tmp/ng_ui_registry.yaml
- keystone:
- options:
- image: ${REGISTRY_URL}opensourcemano/keystone:$TAG ${REGISTRY_CREDENTIALS}
+ image: /tmp/${charm}_registry.yaml
+
EOF
+ done
+
mv /tmp/images-overlay.yaml $IMAGES_OVERLAY_FILE
}
ubuntu1604
ssh-keygen -t rsa -N "" -f ~/.ssh/microstack
microstack.openstack keypair create --public-key ~/.ssh/microstack.pub microstack
- export OSM_HOSTNAME=`juju status --format json | jq -rc '.applications."nbi".address'`
+ export OSM_HOSTNAME=`juju status -m $MODEL_NAME --format json | jq -rc '.applications."nbi".address'`
osm vim-create --name microstack-site \
--user admin \
--password keystone \
bootstrap_k8s_lxd
deploy_charmed_osm
install_osmclient
-export OSM_HOSTNAME=$(juju config nbi site_url | sed "s/http.*\?:\/\///"):443
+export OSM_HOSTNAME=$(juju config -m $MODEL_NAME nbi site_url | sed "s/http.*\?:\/\///"):443
+sleep 10
add_local_k8scluster
if [ -v MICROSTACK ]; then