This commit is contained in:
Manuel de Brito Fontes 2017-09-11 10:20:44 -03:00
parent 123e0d6c05
commit 3f4ef674ad
7 changed files with 44 additions and 41 deletions

View file

@ -20,21 +20,18 @@ env:
- RELEASE="ci-${TRAVIS_BUILD_ID}"
- DOCKER=docker
before_script:
- export PATH=$PATH:$PWD/controllers/nginx/e2e/e2e-internal
jobs:
include:
- stage: Static Check
script:
- go get github.com/golang/lint/golint
- make fmt lint vet
- stage: Coverage
script:
- go get github.com/mattn/goveralls
- go get github.com/modocache/gover
- if ! go get github.com/golang/tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi
- make cover
# - stage: Coverage
# script:
# - go get github.com/mattn/goveralls
# - go get github.com/modocache/gover
# - if ! go get github.com/golang/tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi
# - make cover
- stage: e2e
script:
- make test-e2e

View file

@ -4,7 +4,6 @@ metadata:
name: default-http-backend
labels:
k8s-app: default-http-backend
namespace: kube-system
spec:
replicas: 1
template:
@ -40,7 +39,6 @@ apiVersion: v1
kind: Service
metadata:
name: default-http-backend
namespace: kube-system
labels:
k8s-app: default-http-backend
spec:

View file

@ -3,31 +3,35 @@
export MINIKUBE_VERSION=0.22.0
export K8S_VERSION=v1.7.5
export PWD=`pwd`
export BASEDIR="$(dirname ${BASH_SOURCE})"
export KUBECTL="${BASEDIR}/kubectl"
export MINIKUBE="${BASEDIR}/minikube"
export KUBECTL="/usr/local/bin/kubectl"
export MINIKUBE="/usr/local/bin/minikube"
export WAIT_FOR_DEPLOYMENT="/usr/local/bin/wait-for-deployment"
export GOOS="${GOOS:-linux}"
export MINIKUBE_WANTUPDATENOTIFICATION=false
export MINIKUBE_WANTREPORTERRORPROMPT=false
export MINIKUBE_HOME=$HOME
export CHANGE_MINIKUBE_NONE_USER=true
export MINIKUBE_PROFILE="ingress-e2e"
export KUBECONFIG=$HOME/.kube/config
export MINIKUBE_PROFILE="ingress-e2e"
export PATH=$PATH:$BASEDIR
if [ ! -e ${KUBECTL} ]; then
echo "kubectl binary is missing. downloading..."
curl -sSL http://storage.googleapis.com/kubernetes-release/release/${K8S_VERSION}/bin/${GOOS}/amd64/kubectl -o ${KUBECTL}
chmod u+x ${KUBECTL}
echo "kubectl binary is missing. downloading binary to ${KUBECTL}"
sudo curl -sSL http://storage.googleapis.com/kubernetes-release/release/${K8S_VERSION}/bin/${GOOS}/amd64/kubectl -o ${KUBECTL}
sudo chmod +x ${KUBECTL}
fi
if [ ! -e ${MINIKUBE} ]; then
echo "minikube binary is missing. downloading..."
curl -sSLo ${MINIKUBE} https://storage.googleapis.com/minikube/releases/v${MINIKUBE_VERSION}/minikube-linux-amd64
chmod +x ${MINIKUBE}
echo "minikube binary is missing. downloading binary to ${MINIKUBE}"
sudo curl -sSLo ${MINIKUBE} https://storage.googleapis.com/minikube/releases/v${MINIKUBE_VERSION}/minikube-linux-amd64
sudo chmod +x ${MINIKUBE}
fi
if [ ! -e ${WAIT_FOR_DEPLOYMENT} ]; then
echo "wait-for-deployment script is missing. downloading binary to ${WAIT_FOR_DEPLOYMENT}"
# https://github.com/timoreimann/kubernetes-scripts
sudo curl -sSLo ${WAIT_FOR_DEPLOYMENT} https://raw.githubusercontent.com/timoreimann/kubernetes-scripts/master/wait-for-deployment
sudo chmod +x ${WAIT_FOR_DEPLOYMENT}
fi

View file

@ -1,7 +1,5 @@
#!/usr/bin/env bash
set -eof pipefail
. ./e2e/e2e-internal/e2e-env.sh
mkdir -p $HOME/.kube
@ -16,10 +14,11 @@ fi
# this for loop waits until kubectl can access the api server that minikube has created
for i in {1..150} # timeout for 5 minutes
do
$KUBECTL get po &> /dev/null
$($KUBECTL get pods &> /dev/null) || true
if [ $? -ne 1 ]; then
break
fi
echo -n "."
sleep 10
done

View file

@ -7,9 +7,23 @@ set -eof pipefail
echo "Creating test tag for image $IMAGE:$TAG"
docker tag $IMAGE:$TAG $IMAGE:test
echo "Uploading test image to minikube"
dockerenv=$(${MINIKUBE} --profile ${MINIKUBE_PROFILE} docker-env | sed 's/export//g' | sed 's/^#.*$//g' | sed 's/"//g')
docker save $IMAGE:test | env -i $dockerenv docker load
if [ "$TRAVIS" = true ] ; then
echo "Using local docker graph as source for $IMAGE:test"
else
echo "Uploading test image to minikube"
dockerenv=$(${MINIKUBE} --profile ${MINIKUBE_PROFILE} docker-env | sed 's/export//g' | sed 's/^#.*$//g' | sed 's/"//g')
docker save $IMAGE:test | env -i $dockerenv docker load
fi
report_error() {
echo "unexpected error waiting for nginx ingress controller pod"
echo "LOGS:"
${KUBECTL} logs -l k8s-app=nginx-ingress-controller
}
trap 'report_error $LINENO' ERR
${WAIT_FOR_DEPLOYMENT} nginx-ingress-controller
notrap
echo "Running tests..."
go test -v k8s.io/ingress/controllers/nginx/e2e/... -run ^TestIngressSuite$ --args --alsologtostderr --v=10

View file

@ -285,11 +285,5 @@ func finishRunning(stepName string, cmd *exec.Cmd) error {
func kubectlCmd(arg ...string) *exec.Cmd {
args := []string{"--context", "ingress-e2e"}
args = append(args, arg...)
kb := os.Getenv("KUBECTL")
if kb == "" {
kb = "./e2e/e2e-internal/kubectl"
}
return exec.Command(kb, args...)
return exec.Command("kubectl", args...)
}

View file

@ -4,7 +4,6 @@ metadata:
name: nginx-ingress-controller
labels:
k8s-app: nginx-ingress-controller
namespace: kube-system
spec:
replicas: 1
template:
@ -30,9 +29,7 @@ spec:
timeoutSeconds: 1
ports:
- containerPort: 80
hostPort: 80
- containerPort: 443
hostPort: 443
env:
- name: POD_NAME
valueFrom: