mirror of
https://github.com/prometheus-operator/prometheus-operator.git
synced 2025-04-21 11:48:53 +00:00
Add running tests on Travis CI
This commit is contained in:
parent
f11e1b9fe4
commit
1eb814f635
4 changed files with 132 additions and 0 deletions
14
.travis.yml
Normal file
14
.travis.yml
Normal file
|
@ -0,0 +1,14 @@
|
|||
sudo: required
|
||||
language: go
|
||||
go:
|
||||
- 1.9
|
||||
services:
|
||||
- docker
|
||||
jobs:
|
||||
include:
|
||||
- stage: Check generated contents are up to date and code is formatted.
|
||||
script: ./scripts/jenkins/check-make-generate.sh
|
||||
- stage: Unit tests
|
||||
script: make test
|
||||
- stage: E2e tests
|
||||
script: travis_wait 30 ./scripts/travis-e2e.sh
|
|
@ -8,6 +8,8 @@ set -u
|
|||
# print each command before executing it
|
||||
set -x
|
||||
|
||||
make check-license
|
||||
make format
|
||||
make generate
|
||||
|
||||
git diff --exit-code
|
||||
|
|
78
scripts/minikube-rbac.yaml
Normal file
78
scripts/minikube-rbac.yaml
Normal file
|
@ -0,0 +1,78 @@
|
|||
# Wide open access to the cluster (mostly for kubelet)
|
||||
kind: ClusterRole
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
metadata:
|
||||
name: cluster-writer
|
||||
rules:
|
||||
- apiGroups: ["*"]
|
||||
resources: ["*"]
|
||||
verbs: ["*"]
|
||||
- nonResourceURLs: ["*"]
|
||||
verbs: ["*"]
|
||||
|
||||
---
|
||||
|
||||
# Full read access to the api and resources
|
||||
kind: ClusterRole
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
metadata:
|
||||
name: cluster-reader
|
||||
rules:
|
||||
- apiGroups: ["*"]
|
||||
resources: ["*"]
|
||||
verbs: ["get", "list", "watch"]
|
||||
- nonResourceURLs: ["*"]
|
||||
verbs: ["*"]
|
||||
---
|
||||
# Give admin, kubelet, kube-system, kube-proxy god access
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
metadata:
|
||||
name: cluster-write
|
||||
subjects:
|
||||
- kind: User
|
||||
name: admin
|
||||
- kind: User
|
||||
name: kubelet
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: kube-system
|
||||
- kind: User
|
||||
name: kube-proxy
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: cluster-writer
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
||||
---
|
||||
|
||||
# Setup sd-build as a reader. This has to be a
|
||||
# ClusterRoleBinding to get access to non-resource URLs
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
metadata:
|
||||
name: cluster-read
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: sd-build
|
||||
namespace: default
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: cluster-reader
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
||||
---
|
||||
|
||||
# Setup sd-build as a writer in its namespace
|
||||
kind: RoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
metadata:
|
||||
name: sd-build-write
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: sd-build
|
||||
namespace: default
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: cluster-writer
|
||||
apiGroup: rbac.authorization.k8s.io
|
38
scripts/travis-e2e.sh
Executable file
38
scripts/travis-e2e.sh
Executable file
|
@ -0,0 +1,38 @@
|
|||
#!/usr/bin/env bash
|
||||
# exit immediately when a command fails
|
||||
set -e
|
||||
# only exit with zero if all commands of the pipeline exit successfully
|
||||
set -o pipefail
|
||||
# error on unset variables
|
||||
set -u
|
||||
# print each command before executing it
|
||||
set -x
|
||||
|
||||
export KUBERNETES_VERSION=v1.7.5
|
||||
|
||||
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$KUBERNETES_VERSION/bin/linux/amd64/kubectl && \
|
||||
chmod +x kubectl && \
|
||||
sudo mv kubectl /usr/local/bin/
|
||||
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && \
|
||||
chmod +x minikube && \
|
||||
sudo mv minikube /usr/local/bin/
|
||||
|
||||
export MINIKUBE_WANTUPDATENOTIFICATION=false
|
||||
export MINIKUBE_WANTREPORTERRORPROMPT=false
|
||||
export MINIKUBE_HOME=$HOME
|
||||
export CHANGE_MINIKUBE_NONE_USER=true
|
||||
mkdir $HOME/.kube || true
|
||||
touch $HOME/.kube/config
|
||||
|
||||
export KUBECONFIG=$HOME/.kube/config
|
||||
minikube version
|
||||
sudo minikube start --vm-driver=none --kubernetes-version=$KUBERNETES_VERSION --extra-config=apiserver.Authorization.Mode=RBAC
|
||||
|
||||
minikube update-context
|
||||
|
||||
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; until kubectl get nodes -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1; done
|
||||
|
||||
kubectl apply -f scripts/minikube-rbac.yaml
|
||||
|
||||
make crossbuild
|
||||
make e2e
|
Loading…
Add table
Add a link
Reference in a new issue