This is an automated email from the ASF dual-hosted git repository. hanahmily pushed a commit to branch minikube in repository https://gitbox.apache.org/repos/asf/skywalking.git
commit 3a1a35058fc441ccca71a82f534edaefb148203d Author: Gao Hongtao <[email protected]> AuthorDate: Mon Nov 11 12:15:50 2019 +0800 Test --- Jenkinsfile-E2E-Mesh | 36 +++++++ .../server-starter/src/main/resources/log4j2.xml | 2 +- skywalking-ui | 2 +- test/e2e-kubernetes/istio-mixer-adapter/run.sh | 50 +++++++++ test/scripts/clean.sh | 28 +++++ test/scripts/minikube.sh | 114 +++++++++++++++++++++ test/scripts/pre.sh | 80 +++++++++++++++ 7 files changed, 310 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile-E2E-Mesh b/Jenkinsfile-E2E-Mesh new file mode 100644 index 0000000..496df1b --- /dev/null +++ b/Jenkinsfile-E2E-Mesh @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +pipeline { + agent { + label 'jenkins-skywalking5' + } + + options { + timestamps() + timeout(time: 5, unit: 'HOURS') + } + + stages { + stage('Test') { + steps { + sh 'whoami' + sh 'sudo ls -lt /root' + } + } +} diff --git a/oap-server/server-starter/src/main/resources/log4j2.xml b/oap-server/server-starter/src/main/resources/log4j2.xml index 72dcf43..fc300a2 100644 --- a/oap-server/server-starter/src/main/resources/log4j2.xml +++ b/oap-server/server-starter/src/main/resources/log4j2.xml @@ -35,7 +35,7 @@ <logger name="org.apache.skywalking.oap.server.core" level="INFO"/> <logger name="org.apache.skywalking.oap.server.core.remote.client" level="DEBUG"/> <logger name="org.apache.skywalking.oap.server.library.buffer" level="INFO"/> - <logger name="org.apache.skywalking.oap.server.receiver.so11y" level="DEBUG" /> +<!-- <logger name="org.apache.skywalking.oap.server.receiver.so11y" level="DEBUG" />--> <Root level="DEBUG"> <AppenderRef ref="Console"/> </Root> diff --git a/skywalking-ui b/skywalking-ui index 2695697..9f3aa72 160000 --- a/skywalking-ui +++ b/skywalking-ui @@ -1 +1 @@ -Subproject commit 2695697d0de0acf4f5adc0df68e7d71a4824b4e4 +Subproject commit 9f3aa72a47983c037e95fb3607faa2154bafef59 diff --git a/test/e2e-kubernetes/istio-mixer-adapter/run.sh b/test/e2e-kubernetes/istio-mixer-adapter/run.sh new file mode 100755 index 0000000..400a842 --- /dev/null +++ b/test/e2e-kubernetes/istio-mixer-adapter/run.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +set -ex + +DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +ROOT=${DIR}/../../.. +SCRIPTS_DIR=${ROOT}/test/scripts + +CONTAINER_NAME=$1 +if [[ "${CONTAINER_NAME}" == "" ]]; then + CONTAINER_NAME="e2e-istio-mixer-adapter" +fi + +# Clean old container +${SCRIPTS_DIR}/clean.sh ${CONTAINER_NAME} + + +docker run -itd --name ${CONTAINER_NAME} -v ${ROOT}:/skywalking buildpack-deps:16.04-curl /bin/bash + +CONTAINER_SCRIPTS_DIR=/skywalking/test/scripts + +# Install all requirements +docker exec -it ${CONTAINER_NAME} ${CONTAINER_SCRIPTS_DIR}/pre.sh + +docker exec -it ${CONTAINER_NAME} ${CONTAINER_SCRIPTS_DIR}/minikube.sh startMinikube & + +docker exec -it ${CONTAINER_NAME} ${CONTAINER_SCRIPTS_DIR}/minikube.sh waitMinikube + +docker exec -it ${CONTAINER_NAME} ${CONTAINER_SCRIPTS_DIR}/minikube.sh stopMinikube + +${SCRIPTS_DIR}/clean.sh ${CONTAINER_NAME} diff --git a/test/scripts/clean.sh b/test/scripts/clean.sh new file mode 100755 index 0000000..9de476b --- /dev/null +++ b/test/scripts/clean.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +set -e + +CONTAINER_NAME=$1 +[[ "${CONTAINER_NAME}" == "" ]] && exit 1 + +docker ps | grep -e ${CONTAINER_NAME} | awk '{print $1}' | xargs docker stop +docker ps -a | grep -e ${CONTAINER_NAME} | awk '{print $1}' | xargs docker rm diff --git a/test/scripts/minikube.sh b/test/scripts/minikube.sh new file mode 100755 index 0000000..be2924b --- /dev/null +++ b/test/scripts/minikube.sh @@ -0,0 +1,114 @@ +#!/usr/bin/env bash + +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +set -x + +K8S_VER=$2 +if [[ "${K8S_VER}" == "" ]]; then + K8S_VER="k8s-v1.15.4" +fi + +function waitMinikube() { + set +e + kubectl cluster-info + # This for loop waits until kubectl can access the api server that Minikube has created. + for _ in {1..12}; do # Timeout for 120 seconds. + kubectl get po --all-namespaces + if [ $? -ne 1 ]; then + break + fi + sleep 10 + done + if ! kubectl get all --all-namespaces; then + echo "Kubernetes failed to start" + ps ax + netstat -an + docker images + cat /var/lib/localkube/localkube.err + printf '\n\n\n' + kubectl cluster-info dump + exit 1 + fi + + echo "Minikube is running" + + for _ in {1..6}; do # Timeout for 60 seconds. + echo "$(sudo -E minikube ip) minikube.local" | sudo tee -a /etc/hosts + ip=$(cat /etc/hosts | grep minikube.local | cut -d' ' -f1 | xargs) + if [ -n "$ip" ]; then + break + fi + sleep 10 + done + + ip=$(cat /etc/hosts | grep minikube.local | cut -d' ' -f1 | xargs) + if [ -n "$ip" ]; then + echo "minikube.local is mapped to $ip" + else + exit 1 + fi +} + +# startMinikubeNone starts real kubernetes minikube with none driver. This requires `sudo`. +function startMinikubeNone() { + export MINIKUBE_WANTUPDATENOTIFICATION=false + export MINIKUBE_WANTREPORTERRORPROMPT=false + export MINIKUBE_HOME=$HOME + export CHANGE_MINIKUBE_NONE_USER=true + + # Troubleshoot problem with Docker build on some CircleCI machines. + if [ -f /proc/sys/net/ipv4/ip_forward ]; then + echo "IP forwarding setting: $(cat /proc/sys/net/ipv4/ip_forward)" + echo "My hostname is:" + hostname + echo "My distro is:" + cat /etc/*-release + echo "Contents of /etc/sysctl.d/" + ls -l /etc/sysctl.d/ || true + echo "Contents of /etc/sysctl.conf" + grep ip_forward /etc/sysctl.conf + echo "Config files setting ip_forward" + find /etc/sysctl.d/ -type f -exec grep ip_forward \{\} \; -print + if [ "$(cat /proc/sys/net/ipv4/ip_forward)" -eq 0 ]; then + whoami + echo "Cannot build images without IPv4 forwarding, attempting to turn on forwarding" + sudo sysctl -w net.ipv4.ip_forward=1 + if [ "$(cat /proc/sys/net/ipv4/ip_forward)" -eq 0 ]; then + echo "Cannot build images without IPv4 forwarding" + exit 1 + fi + fi + fi + + sudo -E minikube config set WantUpdateNotification false + sudo -E minikube config set WantReportErrorPrompt false + sudo -E minikube start --kubernetes-version=${K8S_VER#k8s-} --vm-driver=none +} + +function stopMinikube() { + sudo minikube stop +} + +case "$1" in + start) startMinikubeNone ;; + stop) stopMinikube ;; + wait) waitMinikube ;; +esac \ No newline at end of file diff --git a/test/scripts/pre.sh b/test/scripts/pre.sh new file mode 100755 index 0000000..d4e4935 --- /dev/null +++ b/test/scripts/pre.sh @@ -0,0 +1,80 @@ +#!/usr/bin/env bash + +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +set -ex + +apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/* + +HELMVERSION=$1 +if [[ "${HELMVERSION}" == "" ]]; then + HELMVERSION="helm-v3.0.0-rc.3" +fi + +MINIKUBEVERESION=$2 +if [[ "${MINIKUBEVERESION}" == "" ]]; then + MINIKUBEVERESION="minikube-v1.4.0" +fi + +K8SVERSION=$3 +if [[ "${K8SVERSION}" == "" ]]; then + K8SVERSION="k8s-v1.15.4" +fi + +# Remove strict host checking. The rest of the file is already populated by the 'add_ssh_keys' step. +mkdir -p ~/.ssh +echo -e "\tStrictHostKeyChecking no" >> ~/.ssh/config +echo -e "\tControlMaster auto" >> ~/.ssh/config +echo -e "\tControlPersist 3600" >> ~/.ssh/config +echo -e "\tControlPath ~/.ssh/%r@%h:%p" >> ~/.ssh/config + +# Create directory for logs. +mkdir -p ~/logs + +# create directory for e2e artifacts. +mkdir -p ~/skywalking/test/e2e/artifacts + +curl -sSL https://get.helm.sh/${HELMVERSION}-linux-amd64.tar.gz | \ + sudo tar xz -C /usr/local/bin --strip-components=1 linux-amd64/helm + +sudo mkdir -p /usr/local/bin +curl -sSL "https://storage.googleapis.com/minikube/releases/${MINIKUBEVERESION#minikube-}/minikube-linux-amd64" -o /tmp/minikube +chmod +x /tmp/minikube +sudo mv /tmp/minikube /usr/local/bin/minikube + +curl -sSL "https://storage.googleapis.com/kubernetes-release/release/${K8SVERSION#k8s-}/bin/linux/amd64/kubectl" -o /tmp/kubectl +chmod +x /tmp/kubectl +sudo mv /tmp/kubectl /usr/local/bin/kubectl + +sudo apt-get remove -y --purge man-db +sudo apt-get update +sudo apt-get install -y \ + --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages \ + xvfb libgtk-3-0 libnotify4 libgconf-2-4 libnss3 libxss1 libasound2 \ + apt-transport-https systemd \ + software-properties-common +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +sudo apt-key fingerprint 0EBFCD88 +sudo add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) \ + stable" +sudo apt-get update +sudo apt-get install -y docker-ce \ No newline at end of file
