--- - job-template: name: '{env}-resilience-healthdist' disabled: '{obj:disabled_var}' project-type: freestyle lab-name: '' tenant-name: '' scm: - git-integration: branch: "{integration-branch}" wrappers: - timestamps parameters: - string: name: POD_TO_DELETE description: 'Name of pod to delete. This string will be grepped against the pod list and used to delete the pod.' properties: - build-blocker: blocking-jobs: - "{env}-deploy" - "{env}-healthcheck" 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 STACK_NAME="{stack-name}" 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) ssh-keygen -R $NFS_IP echo "kubectl top nodes" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "kubectl get pods -n onap | grep -vE 'Completed|Error|1/1|2/2|3/3'" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su ROBOT_POD=$(echo "kubectl -n onap get pods | grep robot | sed 's/ .*//'" | ssh -i $SSH_KEY -o StrictHostKeychecking=no ubuntu@$NFS_IP sudo su) if [ "$ROBOT_POD" == "" ]; then exit 1 fi POD_TO_KILL=$(echo "kubectl -n onap get pods | grep $POD_TO_DELETE | sed 's/ .*//' | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) echo "kubectl -n onap delete pod $POD_TO_KILL" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su for n in $(seq 1 180); do sleep 30 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|3/3' | wc -l) if [[ $? -eq 0 && $RESULT -eq 0 ]]; then break fi done ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -l root -c "/root/oom/kubernetes/robot/ete-k8s.sh onap healthdist"' retval=$? LOG_DIR=$(echo "kubectl exec -n onap $ROBOT_POD -- ls -1t /share/logs | grep healthdist | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) if [ "$LOG_DIR" == "" ]; then exit 1 fi rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/ echo "kubectl top nodes" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "kubectl get pods -n onap | grep -vE 'Completed|Error|1/1|2/2|3/3'" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" exit 0 publishers: - integration-robot - archive-logs - job-template: name: '{env}-resilience-instantiateDemoVFWCL' disabled: '{obj:disabled_var}' project-type: freestyle lab-name: '' tenant-name: '' scm: - git-integration: branch: "{integration-branch}" wrappers: - timestamps parameters: - string: name: POD_TO_DELETE description: 'Name of pod to delete. This string will be grepped against the pod list and used to delete the pod.' properties: - build-blocker: blocking-jobs: - "{env}-deploy" - "{env}-healthcheck" 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 STACK_NAME="{stack-name}" 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) ssh-keygen -R $NFS_IP echo "kubectl top nodes" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "kubectl get pods -n onap | grep -vE 'Completed|Error|1/1|2/2|3/3'" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su ROBOT_POD=$(echo "kubectl -n onap get pods | grep robot | sed 's/ .*//'" | ssh -i $SSH_KEY -o StrictHostKeychecking=no ubuntu@$NFS_IP sudo su) if [ "$ROBOT_POD" == "" ]; then exit 1 fi POD_TO_KILL=$(echo "kubectl -n onap get pods | grep $POD_TO_DELETE | sed 's/ .*//' | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) echo "kubectl -n onap delete pod $POD_TO_KILL" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su for n in $(seq 1 180); do sleep 30 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|3/3' | wc -l) if [[ $? -eq 0 && $RESULT -eq 0 ]]; then break fi done ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -l root -c "/root/oom/kubernetes/robot/ete-k8s.sh onap instantiateDemoVFWCL"' retval=$? 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) if [ "$LOG_DIR" == "" ]; then exit 1 fi rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/ echo "kubectl top nodes" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "kubectl get pods -n onap | grep -vE 'Completed|Error|1/1|2/2|3/3'" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" # clean up demo stacks DEMO_STACKS=$(openstack stack list -f value -c "Stack Name" --sort creation_time:desc | grep Vfmodule_Demo_ ) if [ ! -z "$DEMO_STACKS" ]; then openstack stack delete -y $DEMO_STACKS fi # clean up vVG VNFs VVG_SERVERS=$(openstack server list -f value -c Name --sort creation_time:desc | grep vVG_) if [ ! -z "$VVG_SERVERS" ]; then openstack server delete $VVG_SERVERS fi exit 0 publishers: - integration-robot - archive-logs - job-template: name: '{env}-resilience-vfwclosedloop' disabled: '{obj:disabled_var}' project-type: freestyle lab-name: '' tenant-name: '' scm: - git-integration: branch: "{integration-branch}" wrappers: - timestamps parameters: - string: name: POD_TO_DELETE description: 'Name of pod to delete. This string will be grepped against the pod list and used to delete the pod.' properties: - build-blocker: blocking-jobs: - "{env}-deploy" - "{env}-healthcheck" 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 STACK_NAME="{stack-name}" 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) ssh-keygen -R $NFS_IP echo "kubectl top nodes" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "kubectl get pods -n onap | grep -vE 'Completed|Error|1/1|2/2|3/3'" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su ROBOT_POD=$(echo "kubectl -n onap get pods | grep robot | sed 's/ .*//'" | ssh -i $SSH_KEY -o StrictHostKeychecking=no ubuntu@$NFS_IP sudo su) if [ "$ROBOT_POD" == "" ]; then exit 1 fi POD_TO_KILL=$(echo "kubectl -n onap get pods | grep $POD_TO_DELETE | sed 's/ .*//' | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) echo "kubectl -n onap delete pod $POD_TO_KILL" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su for n in $(seq 1 180); do sleep 30 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|3/3' | wc -l) if [[ $? -eq 0 && $RESULT -eq 0 ]]; then break fi done 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") for n in $(seq 1 10); do echo "Wait for vfwclosedloop count $n of 10" echo "/root/oom/kubernetes/robot/demo-k8s.sh onap vfwclosedloop $PKG_IP" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su RESULT=$? if [[ $RESULT -eq 0 ]]; then break fi done 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) if [ "$LOG_DIR" == "" ]; then exit 1 fi rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/ echo "kubectl top nodes" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "kubectl get pods -n onap | grep -vE 'Completed|Error|1/1|2/2|3/3'" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" exit 0 publishers: - integration-robot - archive-logs - job-template: disabled_var: name: '{env}-stability72hr' disabled: '{obj:disabled_var}' project-type: freestyle lab-name: '' tenant-name: '' scm: - git-integration: branch: "{integration-branch}" wrappers: - timestamps triggers: - timed: '0 * * * *' properties: - build-blocker: blocking-jobs: - "{env}-deploy" - "{env}-healthcheck" - "{env}-instantiate" - "{env}-manual" - "{env}-staging-manual" 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 STACK_NAME="{stack-name}" 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) ssh-keygen -R $NFS_IP echo "kubectl top nodes" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "kubectl get pods -n onap | grep -vE 'Completed|Error|1/1|2/2|3/3'" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su ROBOT_POD=$(echo "kubectl -n onap get pods | grep robot | sed 's/ .*//'" | ssh -i $SSH_KEY -o StrictHostKeychecking=no ubuntu@$NFS_IP sudo su) if [ "$ROBOT_POD" == "" ]; then exit 1 fi ssh -i $SSH_KEY ubuntu@$NFS_IP 'sudo su -l root -c "/root/oom/kubernetes/robot/ete-k8s.sh onap stability72hr"' retval=$? LOG_DIR=$(echo "kubectl exec -n onap $ROBOT_POD -- ls -1t /share/logs | grep stability72hr | head -1" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su) if [ "$LOG_DIR" == "" ]; then exit 1 fi rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/ echo "kubectl top nodes" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "kubectl get pods -n onap | grep -vE 'Completed|Error|1/1|2/2|3/3'" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" # clean up demo stacks DEMO_STACKS=$(openstack stack list -f value -c "Stack Name" --sort creation_time:desc | grep Vfmodule_Ete_ ) if [ ! -z "$DEMO_STACKS" ]; then openstack stack delete -y $DEMO_STACKS fi # clean up vVG VNFs VVG_SERVERS=$(openstack server list -f value -c Name --sort creation_time:desc | grep vVG_) if [ ! -z "$VVG_SERVERS" ]; then openstack server delete $VVG_SERVERS fi exit 0 publishers: - integration-robot - archive-logs - job-template: disabled_var: name: '{env}-vfwclosedloop' disabled: '{obj:disabled_var}' project-type: freestyle lab-name: '' tenant-name: '' scm: - git-integration: branch: "{integration-branch}" wrappers: - timestamps triggers: - timed: '0 * * * *' properties: - build-blocker: blocking-jobs: - "{env}-deploy" - "{env}-healthcheck" - "{env}-instantiate" - "{env}-manual" - "{env}-staging-manual" 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 STACK_NAME="{stack-name}" 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) ssh-keygen -R $NFS_IP echo "kubectl top nodes" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "kubectl get pods -n onap | grep -vE 'Completed|Error|1/1|2/2|3/3'" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su ROBOT_POD=$(echo "kubectl -n onap get pods | grep robot | sed 's/ .*//'" | ssh -i $SSH_KEY -o StrictHostKeychecking=no ubuntu@$NFS_IP sudo su) if [ "$ROBOT_POD" == "" ]; then exit 1 fi 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 retval=$? 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) if [ "$LOG_DIR" == "" ]; then exit 1 fi rsync -e "ssh -i $SSH_KEY" -avtz ubuntu@$NFS_IP:/dockerdata-nfs/dev-robot/robot/logs/$LOG_DIR/ $WORKSPACE/archives/ echo "kubectl top nodes" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "kubectl get pods -n onap | grep -vE 'Completed|Error|1/1|2/2|3/3'" | ssh -i $SSH_KEY ubuntu@$NFS_IP sudo su echo "Browse Robot results at http://$K8S_IP:30209/logs/$LOG_DIR/" exit 0 publishers: - integration-robot - archive-logs - job-template: name: 'oom-verify' project-type: freestyle parameters: - string: name: GERRIT_PROJECT default: 'oom' description: 'GERRIT_PROJECT parameter if not given by trigger' - string: name: GERRIT_BRANCH default: '{branch}' description: 'JJB configured GERRIT_BRANCH parameter' - string: name: GERRIT_REFSPEC default: 'refs/heads/{branch}' description: 'GERRIT_REFSPEC parameter if not given by trigger' scm: - gerrit-trigger-scm triggers: - gerrit: server-name: 'gerrit.onap.org' trigger-on: - patchset-created-event: exclude-drafts: 'false' exclude-trivial-rebase: 'false' exclude-no-code-change: 'false' - draft-published-event - comment-added-contains-event: comment-contains-value: 'recheck' projects: - project-compare-type: 'ANT' project-pattern: 'oom' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' file-paths: - compare-type: 'ANT' pattern: 'kubernetes/**/*.yaml' - project-compare-type: 'ANT' project-pattern: '*/oom' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' file-paths: - compare-type: 'ANT' pattern: '**/*.yaml' wrappers: - timestamps - timeout: timeout: 720 fail: true builders: - shell: | #!/bin/bash set +e set -x rm -rf $WORKSPACE/archives mkdir -p $WORKSPACE/archives NEXUS_RELEASE_PREFIX="https://nexus3.onap.org/repository/docker.release/v2" RELEASE_TAGS_PATH="/tmp/onap-docker-release" err=0 # if no files changed, will scan all files CHANGED_FILES="" if [ $(git rev-parse HEAD) != $(git rev-parse origin/master) ]; then CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r HEAD) fi IMAGES_FILE=$WORKSPACE/archives/images.txt rgrep --exclude-dir=pnda -n -E ':\s*onap/.*:.*' $CHANGED_FILES | awk '{{$1=$1}};1' | sort > $IMAGES_FILE set +x while read line; do location=$(echo $line | cut -d: -f-2) image_tag=$(echo $line | cut -d: -f3- | awk '{{$1=$1}};1' | cut -d' ' -f2) image=$(echo $image_tag | cut -d : -f 1) tag=$(echo $image_tag | cut -d : -f 2) case $tag in *STAGING*) echo "[ERROR] $location: $image:$tag not released" (( err++ )) ;; *SNAPSHOT*) echo "[ERROR] $location: $image:$tag not released" (( err++ )) ;; *latest*) echo "[ERROR] $location: $image:$tag not released" (( err++ )) ;; *) TAGS_FILE=$RELEASE_TAGS_PATH/$image/tags.txt mkdir -p $RELEASE_TAGS_PATH/$image touch $TAGS_FILE grep -q "^$tag\$" $TAGS_FILE if [ $? -ne 0 ]; then # not found; download latest curl -s $NEXUS_RELEASE_PREFIX/$image/tags/list | jq -r '.tags[]' > $TAGS_FILE 2> /dev/null grep -q "^$tag\$" $TAGS_FILE if [ $? -ne 0 ]; then echo "[ERROR] $location: $image:$tag not released" (( err++ )) fi fi ;; esac done < $IMAGES_FILE echo $err unreleased images found. exit $err publishers: - archive-logs