X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Fcharmed_install.sh;h=7bec50e34efaff26e363015d0833521114bddfbe;hb=9c0d2b7f85bdeb84aeacc8caa5c5be645c3756f1;hp=b36d582dacf83f0abe06fdada6f8fa9a32a99c9b;hpb=c753dc5f89180d11c1049f6398d74a4f99d7acd5;p=osm%2Fdevops.git diff --git a/installers/charmed_install.sh b/installers/charmed_install.sh index b36d582d..7bec50e3 100755 --- a/installers/charmed_install.sh +++ b/installers/charmed_install.sh @@ -15,24 +15,29 @@ # set -eux -JUJU_AGENT_VERSION=2.8.9 +LXD_VERSION=4.0 +JUJU_VERSION=2.9 +JUJU_AGENT_VERSION=2.9.22 K8S_CLOUD_NAME="k8s-cloud" KUBECTL="microk8s.kubectl" -MICROK8S_VERSION=1.19 -OSMCLIENT_VERSION=9.0 +MICROK8S_VERSION=1.23 +OSMCLIENT_VERSION=10.0 IMAGES_OVERLAY_FILE=~/.osm/images-overlay.yaml PATH=/snap/bin:${PATH} MODEL_NAME=osm -OSM_BUNDLE=cs:osm-60 -OSM_HA_BUNDLE=cs:osm-ha-45 -TAG=testing-daily + +OSM_BUNDLE=ch:osm +OSM_HA_BUNDLE=ch:osm-ha +CHARMHUB_CHANNEL=10.0/edge +unset TAG function check_arguments(){ while [ $# -gt 0 ] ; do case $1 in --bundle) BUNDLE="$2" ;; + --overlay) OVERLAY="$2" ;; --k8s) KUBECFG="$2" ;; --vca) CONTROLLER="$2" ;; --lxd) LXD_CLOUD="$2" ;; @@ -41,6 +46,7 @@ function check_arguments(){ --ha) BUNDLE=$OSM_HA_BUNDLE ;; --tag) TAG="$2" ;; --registry) REGISTRY_INFO="$2" ;; + --only-vca) ONLY_VCA=y ;; esac shift done @@ -50,16 +56,16 @@ function check_arguments(){ function install_snaps(){ if [ ! -v KUBECFG ]; then + KUBEGRP="microk8s" sudo snap install microk8s --classic --channel=${MICROK8S_VERSION}/stable + sudo usermod -a -G microk8s `whoami` 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 + sg ${KUBEGRP} -c microk8s.stop + sg ${KUBEGRP} -c microk8s.start ) - sudo usermod -a -G microk8s `whoami` mkdir -p ~/.kube sudo chown -f -R `whoami` ~/.kube - KUBEGRP="microk8s" sg ${KUBEGRP} -c "microk8s status --wait-ready" KUBECONFIG=~/.osm/microk8s-config.yaml sg ${KUBEGRP} -c "microk8s config" | tee ${KUBECONFIG} @@ -69,7 +75,7 @@ function install_snaps(){ export KUBECONFIG=${KUBECFG} KUBEGRP=$(id -g -n) fi - sudo snap install juju --classic --channel=2.8/stable + sudo snap install juju --classic --channel=$JUJU_VERSION/stable } function bootstrap_k8s_lxd(){ @@ -149,7 +155,7 @@ EOF sudo sysctl --system # Install LXD snap sudo apt-get remove --purge -y liblxc1 lxc-common lxcfs lxd lxd-client - sudo snap install lxd + sudo snap install lxd --channel $LXD_VERSION/stable # 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" @@ -235,7 +241,6 @@ function deploy_charmed_osm(){ esac fi - create_overlay echo "Creating OSM model" if [ -v KUBECFG ]; then juju add-model $MODEL_NAME $K8S_CLOUD_NAME @@ -249,10 +254,14 @@ function deploy_charmed_osm(){ fi [ -v TAG ] && generate_images_overlay && images_overlay="--overlay $IMAGES_OVERLAY_FILE" + if [ -v OVERLAY ]; then + extra_overlay="--overlay $OVERLAY" + fi + if [ -v BUNDLE ]; then - juju deploy -m $MODEL_NAME $BUNDLE --overlay ~/.osm/vca-overlay.yaml $images_overlay + juju deploy --trust --channel $CHARMHUB_CHANNEL -m $MODEL_NAME $BUNDLE --overlay ~/.osm/vca-overlay.yaml $images_overlay $extra_overlay else - juju deploy -m $MODEL_NAME $OSM_BUNDLE --overlay ~/.osm/vca-overlay.yaml $images_overlay + juju deploy --trust --channel $CHARMHUB_CHANNEL -m $MODEL_NAME $OSM_BUNDLE --overlay ~/.osm/vca-overlay.yaml $images_overlay $extra_overlay fi if [ ! -v KUBECFG ]; then @@ -266,12 +275,15 @@ function deploy_charmed_osm(){ API_SERVER="$(echo $hostport | sed -e 's,:.*,,g')" fi # Expose OSM services - 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 + juju config -m $MODEL_NAME nbi site_url=https://nbi.${API_SERVER}.nip.io + juju config -m $MODEL_NAME ng-ui site_url=https://ui.${API_SERVER}.nip.io + juju config -m $MODEL_NAME grafana site_url=https://grafana.${API_SERVER}.nip.io + juju config -m $MODEL_NAME prometheus site_url=https://prometheus.${API_SERVER}.nip.io echo "Waiting for deployment to finish..." + grafana_leader=`juju status -m $MODEL_NAME grafana | grep "*" | cut -d "*" -f 1` + grafana_admin_password=`juju run -m $MODEL_NAME --unit $grafana_leader "echo \\$GF_SECURITY_ADMIN_PASSWORD"` + juju config -m $MODEL_NAME mon grafana_password=$grafana_admin_password check_osm_deployed echo "OSM with charms deployed" } @@ -344,7 +356,7 @@ EOF function generate_images_overlay(){ echo "applications:" > /tmp/images-overlay.yaml - charms_with_resources="nbi lcm mon pol ng-ui ro pla keystone" + charms_with_resources="nbi lcm mon pol ng-ui ro pla" for charm in $charms_with_resources; do cat << EOF > /tmp/${charm}_registry.yaml registrypath: ${REGISTRY_URL}opensourcemano/${charm}:$TAG @@ -359,6 +371,23 @@ EOF resources: image: /tmp/${charm}_registry.yaml +EOF + done + ch_charms_with_resources="keystone" + for charm in $ch_charms_with_resources; do + cat << EOF > /tmp/${charm}_registry.yaml +registrypath: ${REGISTRY_URL}opensourcemano/${charm}:$TAG +EOF + 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 + ${charm}: + resources: + ${charm}-image: /tmp/${charm}_registry.yaml + EOF done @@ -440,25 +469,40 @@ check_arguments $@ mkdir -p ~/.osm install_snaps bootstrap_k8s_lxd -deploy_charmed_osm -install_osmclient -export OSM_HOSTNAME=$(juju config -m $MODEL_NAME nbi site_url | sed "s/http.*\?:\/\///"):443 -sleep 10 -add_local_k8scluster - -if [ -v MICROSTACK ]; then - install_microstack -fi +create_overlay +if [ -v ONLY_VCA ]; then + HOME=/home/$USER + vca_user=$(cat $HOME/.local/share/juju/accounts.yaml | yq e .controllers.$CONTROLLER_NAME.user - ) + vca_secret=$(cat $HOME/.local/share/juju/accounts.yaml | yq e .controllers.$CONTROLLER_NAME.password - ) + vca_host=$(cat $HOME/.local/share/juju/controllers.yaml | yq e .controllers.$CONTROLLER_NAME.api-endpoints[0] - | cut -d ":" -f 1) + vca_port=$(cat $HOME/.local/share/juju/controllers.yaml | yq e .controllers.$CONTROLLER_NAME.api-endpoints[0] - | cut -d ":" -f 2) + vca_pubkey=\"$(cat $HOME/.local/share/juju/ssh/juju_id_rsa.pub)\" + vca_cloud="lxd-cloud" + vca_cacert=$(cat $HOME/.local/share/juju/controllers.yaml | yq e .controllers.$CONTROLLER_NAME.ca-cert - | base64 | tr -d \\n) + hostname=`cat /etc/hostname` + + echo "Use the following command to register the installed VCA to your OSM:" + echo -e " osm vca-add --endpoints $vca_host:$vca_port \\\n --user $vca_user \\\n --secret $vca_secret \\\n --cacert $vca_cacert \\\n --lxd-cloud lxd-cloud \\\n --lxd-credentials lxd-cloud \\\n --k8s-cloud microk8s \\\n --k8s-credentials microk8s\\\n $hostname-vca" +else + deploy_charmed_osm + install_osmclient + export OSM_HOSTNAME=$(juju config -m $MODEL_NAME nbi site_url | sed "s/http.*\?:\/\///"):443 + sleep 10 + add_local_k8scluster + if [ -v MICROSTACK ]; then + install_microstack + fi + echo "Your installation is now complete, follow these steps for configuring the osmclient:" + echo + echo "1. Create the OSM_HOSTNAME environment variable with the NBI IP" + echo + echo "export OSM_HOSTNAME=$OSM_HOSTNAME" + echo + echo "2. Add the previous command to your .bashrc for other Shell sessions" + echo + echo "echo \"export OSM_HOSTNAME=$OSM_HOSTNAME\" >> ~/.bashrc" + echo + echo "DONE" +fi -echo "Your installation is now complete, follow these steps for configuring the osmclient:" -echo -echo "1. Create the OSM_HOSTNAME environment variable with the NBI IP" -echo -echo "export OSM_HOSTNAME=$OSM_HOSTNAME" -echo -echo "2. Add the previous command to your .bashrc for other Shell sessions" -echo -echo "echo \"export OSM_HOSTNAME=$OSM_HOSTNAME\" >> ~/.bashrc" -echo -echo "DONE"