| --- |
| - builder: |
| name: run-rke-ete |
| builders: |
| - shell: | |
| #!/bin/bash |
| set +x |
| . $WORKSPACE/deployment/heat/onap-rke/env/{lab-name}/{tenant-name}-openrc |
| . $JENKINS_HOME/onap-lab-ci/labs/{lab-name}-openrc |
| source $WORKSPACE/test/ete/scripts/install_openstack_cli.sh |
| |
| set -x |
| rm -rf $WORKSPACE/archives |
| mkdir -p $WORKSPACE/archives |
| |
| SSH_KEY=~/.ssh/onap_key |
| ENV_FILE=./env/{lab-name}/onap-oom.env |
| STACK_NAME={stack-name} |
| |
| cd $WORKSPACE/deployment/heat/onap-rke/ |
| ./scripts/deploy.sh -s $STACK_NAME -d {stack-name}.{lab-name}.onapci.org -i {integration-branch} -o {oom-branch} -q $ENV_FILE |
| |
| NFS_IP=$(openstack stack output show $STACK_NAME nfs_vm_ip -c output_value -f value) |
| K8S_IP=$(openstack stack output show $STACK_NAME k8s_01_vm_ip -c output_value -f value) |
| |
| set +x |
| ~/onap-lab-ci/labs/set-dns-record.sh "{stack-name}.{lab-name}" $K8S_IP |
| set -x |
| |
| # deploy log and pomba at the end since they're by default disabled in integration-override |
| ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -c "helm deploy dev local/onap -f ~/oom/kubernetes/onap/resources/environments/public-cloud.yaml -f ~/integration-override.yaml --namespace onap --verbose --set log.enabled=true --set pomba.enabled=true"' |
| |
| PREV_RESULT=999 |
| for n in $(seq 1 8); do |
| echo "Wait for pods to be up, $n of 8" |
| RESULT=$(ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -c "kubectl -n onap get pods"' | grep -vE 'NAME|Completed|Error|1/1|2/2' | wc -l) |
| if [[ $? -eq 0 && ( $RESULT -eq 0 || $RESULT -ge $PREV_RESULT ) ]]; then |
| break |
| fi |
| sleep 15m |
| PREV_RESULT=$RESULT |
| done |
| |
| PREV_RESULT=127 |
| for n in $(seq 1 8); do |
| echo "Wait for HEALTHCHECK, $n of 8" |
| ROBOT_POD=$(ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -c "kubectl --namespace onap get pods"' | grep robot | sed 's/ .*//') |
| ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -l root -c "/root/oom/kubernetes/robot/ete-k8s.sh onap health"' |
| RESULT=$? |
| if [[ $RESULT -lt 20 && ( $RESULT -eq 0 || $RESULT -ge $PREV_RESULT ) ]]; then |
| break |
| fi |
| sleep 15m |
| PREV_RESULT=$RESULT |
| done |
| if [ "$ROBOT_POD" == "" ]; then |
| exit 1 |
| fi |
| |
| LOG_DIR=$(echo "kubectl exec -n onap $ROBOT_POD -- ls -1t /share/logs | grep health | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) |
| echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" |
| mkdir -p $WORKSPACE/archives/healthcheck |
| rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/healthcheck |
| |
| # record states of pods and containers |
| ssh -i $SSH_KEY root@$NFS_IP 'kubectl get pods -n onap' |
| ssh -i $SSH_KEY root@$NFS_IP "kubectl get pods -n onap -o json" > $WORKSPACE/archives/onap-pods.json |
| ssh -i $SSH_KEY root@$NFS_IP "/root/integration/deployment/heat/onap-rke/scripts/get-image-tags.sh | tee image-tags.log" > $WORKSPACE/archives/image-tags.log |
| |
| # demo init |
| ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -l root -c "/root/oom/kubernetes/robot/demo-k8s.sh onap init"' |
| LOG_DIR=$(echo "kubectl exec -n onap $ROBOT_POD -- ls -1t /share/logs | grep demo_init | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) |
| echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" |
| mkdir -p $WORKSPACE/archives/demo-init |
| rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/demo-init |
| |
| # ete ete |
| ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -l root -c "/root/oom/kubernetes/robot/ete-k8s.sh onap ete execscript"' |
| LOG_DIR=$(echo "kubectl exec -n onap $ROBOT_POD -- ls -1t /share/logs | grep ete_ete | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) |
| echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" |
| mkdir -p $WORKSPACE/archives/ete |
| rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/ete |
| |
| # ete instantiate |
| ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -l root -c "/root/oom/kubernetes/robot/ete-k8s.sh onap instantiate"' |
| LOG_DIR=$(echo "kubectl exec -n onap $ROBOT_POD -- ls -1t /share/logs | grep instantiate | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) |
| echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" |
| mkdir -p $WORKSPACE/archives/instantiate |
| rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/instantiate |
| |
| # ete portal |
| ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -l root -c "/root/oom/kubernetes/robot/ete-k8s.sh onap portal"' |
| LOG_DIR=$(echo "kubectl exec -n onap $ROBOT_POD -- ls -1t /share/logs | grep portal | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) |
| echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" |
| mkdir -p $WORKSPACE/archives/portal |
| rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/portal |
| |
| # ete instantiateDemoVFWCL |
| ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -l root -c "/root/oom/kubernetes/robot/ete-k8s.sh onap instantiateDemoVFWCL"' |
| LOG_DIR=$(echo "kubectl exec -n onap $ROBOT_POD -- ls -1t /share/logs | grep instantiateDemoVFWCL | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) |
| echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" |
| mkdir -p $WORKSPACE/archives/instantiateDemoVFWCL |
| rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/instantiateDemoVFWCL |
| |
| # ete sdc-dcae-d |
| ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -l root -c "/root/oom/kubernetes/robot/ete-k8s.sh onap sdc-dcae-d"' |
| LOG_DIR=$(echo "kubectl exec -n onap $ROBOT_POD -- ls -1t /share/logs | grep sdc-dcae-d | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) |
| echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" |
| mkdir -p $WORKSPACE/archives/sdc-dcae-d |
| rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/sdc-dcae-d |
| |
| |
| # demo vfwclosedloop |
| PKG_STACK=$(openstack stack list -f value -c "Stack Name" --sort creation_time:desc | grep Vfmodule_Demo_vFWCLvPKG | head -1) |
| PUBLIC_NET_ID=$(openstack stack show $STACK_NAME -f json | jq -r '.parameters.public_net_id') |
| PUBLIC_NET_NAME=$(openstack network show $PUBLIC_NET_ID -f value -c name) |
| PKG_IP=$(openstack stack resource show $PKG_STACK vpg_server_0 -f json | jq -r ".attributes.addresses.$PUBLIC_NET_NAME[0].addr") |
| echo "/root/oom/kubernetes/robot/demo-k8s.sh onap vfwclosedloop $PKG_IP" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su |
| LOG_DIR=$(echo "kubectl exec -n onap $ROBOT_POD -- ls -1t /share/logs | grep vfwclosedloop | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) |
| echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" |
| mkdir -p $WORKSPACE/archives/vfwclosedloop |
| rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/vfwclosedloop |
| |
| |
| cd $WORKSPACE/archives |
| rebot -N "ONAP CI" --removekeywords wuks --output output.xml --merge $(ls -rt */output.xml) |
| |
| exit 0 |
| |
| - job-template: |
| disabled_var: |
| triggers_var: |
| name: '{env}-staging-{frequency}' |
| description: 'Staging deployment to {lab-name} {tenant-name}' |
| disabled: '{obj:disabled_var}' |
| project-type: freestyle |
| lab-name: '' |
| tenant-name: '' |
| scm: |
| - git-integration: |
| branch: "{integration-branch}" |
| wrappers: |
| - timestamps |
| - timeout: |
| timeout: 720 |
| fail: true |
| triggers: '{obj:triggers_var}' |
| builders: |
| - run-rke-ete: |
| stack-name: '{stack-name}' |
| lab-name: '{lab-name}' |
| tenant-name: '{tenant-name}' |
| integration-branch: '{integration-branch}' |
| oom-branch: '{oom-branch}' |
| publishers: |
| - integration-robot |
| - pods-influxdb |
| - archive-logs |
| - trigger-lf-lab-job: |
| lab-name: '{lab-name}' |
| |
| - job-template: |
| disabled_var: |
| triggers_var: |
| name: '{env}-release-{frequency}' |
| description: 'Release deployment to {lab-name} {tenant-name}' |
| disabled: '{obj:disabled_var}' |
| project-type: freestyle |
| lab-name: '' |
| tenant-name: '' |
| scm: |
| - git-integration: |
| branch: "{integration-branch}" |
| wrappers: |
| - timestamps |
| - timeout: |
| timeout: 720 |
| fail: true |
| triggers: '{obj:triggers_var}' |
| builders: |
| - run-rke-ete: |
| stack-name: '{stack-name}' |
| lab-name: '{lab-name}' |
| tenant-name: '{tenant-name}' |
| integration-branch: '{integration-branch}' |
| oom-branch: '{oom-branch}' |
| publishers: |
| - integration-robot |
| - pods-influxdb |
| - archive-logs |
| - trigger-lf-lab-job: |
| lab-name: '{lab-name}' |
| |
| - builder: |
| name: run-cleanup |
| builders: |
| - shell: | |
| #!/bin/bash |
| set +x |
| . $WORKSPACE/deployment/heat/onap-rke/env/{lab-name}/{tenant-name}-openrc |
| . $JENKINS_HOME/onap-lab-ci/labs/{lab-name}-openrc |
| |
| set -x |
| rm -rf $WORKSPACE/archives |
| mkdir -p $WORKSPACE/archives |
| |
| SSH_KEY=~/.ssh/onap_key |
| |
| openstack project list -f value | while read line; do |
| OS_PROJECT_ID=$(echo $line | cut -d' ' -f1) |
| OS_PROJECT_NAME=$(echo $line | cut -d' ' -f2-) |
| |
| openstack stack list -f value -c 'Stack Name' | while read STACK_NAME; do |
| NFS_IP=$(openstack stack output show $STACK_NAME nfs_vm_ip -c output_value -f value) |
| if [ ! -z "$NFS_IP" ]; then |
| # timeout 20 ssh -i $SSH_KEY root@$NFS_IP "helm delete dev-log" |
| # timeout 20 ssh -i $SSH_KEY root@$NFS_IP "helm delete dev-pomba" |
| timeout 20 ssh -i $SSH_KEY root@$NFS_IP "kubectl top pod | sort --reverse --key 2 --numeric | head -20" |
| fi |
| done |
| done |
| |
| exit 0 |
| |
| - job-template: |
| name: '{env}-cleanup' |
| description: 'Clean up {lab-name} tenants' |
| project-type: freestyle |
| lab-name: '' |
| tenant-name: '' |
| scm: |
| - git-integration: |
| branch: "{integration-branch}" |
| wrappers: |
| - timestamps |
| builders: |
| - run-cleanup: |
| lab-name: '{lab-name}' |
| tenant-name: '{tenant-name}' |
| publishers: |
| - archive-logs |