| #!/bin/bash -x |
| # |
| # Copyright 2018 Huawei Technologies Co., Ltd. |
| # |
| # 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 |
| # |
| |
| # This is meant to be run from within the Rancher VM to completely |
| # redeploy ONAP while reusing the existing k8s stack. |
| # |
| # This assumes that /root/integration-override.yaml is up-to-date. |
| # |
| # This script can also be used after a VM reboot, and will restart |
| # helm server accordingly. |
| |
| export DEBIAN_FRONTEND=noninteractive |
| |
| usage() { |
| echo "Usage: $0 <namespace>" 1>&2; |
| echo "This will completely re-deploy ONAP, and delete and re-clone oom/ and integration/ directories." |
| exit 1; |
| } |
| |
| if [ "$#" -ne 1 ]; then |
| usage |
| fi |
| |
| |
| NS=$1 |
| OOM_GERRIT_BRANCH=master |
| OOM_GERRIT_REFSPEC=refs/heads/master |
| INTEGRATION_GERRIT_BRANCH=master |
| INTEGRATION_GERRIT_REFSPEC=refs/heads/master |
| |
| # Verify that k8s works |
| if [ $(kubectl get pods --namespace kube-system | tail -n +2 | grep -c Running) -lt 6 ]; then |
| echo "[ERROR] Kubernetes is not healthy; aborting" |
| exit 1 |
| fi |
| |
| |
| kubectl delete namespace $NS |
| for op in secrets configmaps pvc pv services deployments statefulsets clusterrolebinding; do |
| kubectl delete $op -n $NS --all |
| done |
| helm undeploy dev --purge |
| rm -rf /dockerdata-nfs/dev-*/ |
| |
| |
| # Clone OOM: |
| cd ~ |
| rm -rf oom/ |
| git clone -b $OOM_GERRIT_BRANCH https://gerrit.onap.org/r/oom |
| cd oom |
| git fetch https://gerrit.onap.org/r/oom $OOM_GERRIT_REFSPEC |
| git checkout FETCH_HEAD |
| git checkout -b workarounds |
| git log -1 |
| |
| # Clone integration |
| cd ~ |
| rm -rf integration/ |
| git clone -b $INTEGRATION_GERRIT_BRANCH https://gerrit.onap.org/r/integration |
| cd integration |
| git fetch https://gerrit.onap.org/r/integration $INTEGRATION_GERRIT_REFSPEC |
| git checkout FETCH_HEAD |
| git checkout -b workarounds |
| git log -1 |
| |
| git tag -a "deploy0" -m "initial deployment" |
| |
| |
| # Run ONAP: |
| cd ~/oom/kubernetes/ |
| |
| if [ $(curl -s -o /dev/null -w "%{http_code}" 127.0.0.1:8879) -ne 200 ]; then |
| helm init --client-only |
| helm init --upgrade |
| helm serve & |
| sleep 10 |
| helm repo add local http://127.0.0.1:8879 |
| helm repo list |
| fi |
| make all |
| rsync -avt ~/oom/kubernetes/helm/plugins ~/.helm/ |
| helm search -l | grep local |
| helm deploy dev local/onap -f ~/oom/kubernetes/onap/resources/environments/public-cloud.yaml -f ~/integration-override.yaml --namespace onap | ts | tee -a ~/helm-deploy.log |
| helm list |