mirror of
https://github.com/coredns/coredns.git
synced 2025-12-09 11:55:13 -05:00
This fix uses docker container for kubectl. Since Kubernetes docker image hyperkube has already been downloaded and it consists of kubectl, there is really no need to download kubectl binary again. This fix cleans up the Kubernetes related travis setup and removes unneeded scripts. This fix also fixes several mismatches of the Kubernetes version used, so that any changes in version in the future only need to update .travis.yml. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
50 lines
2.1 KiB
YAML
50 lines
2.1 KiB
YAML
sudo: required
|
|
# Trusty distribution is much faster when sudo is required
|
|
dist: trusty
|
|
|
|
services:
|
|
- docker
|
|
|
|
language: go
|
|
go:
|
|
- 1.6
|
|
|
|
go_import_path: github.com/miekg/coredns
|
|
|
|
env:
|
|
- ETCD_VERSION=2.3.1 K8S_VERSION=1.3.7 KUBECTL="docker exec hyperkube /hyperkube kubectl" DNS_ARGUMENTS=""
|
|
|
|
# In the Travis VM-based build environment, IPv6 networking is not
|
|
# enabled by default. The sysctl operations below enable IPv6.
|
|
# IPv6 is needed by some of the CoreDNS test cases. The VM environment
|
|
# is needed to have access to sudo in the test environment. Sudo is
|
|
# needed to have docker in the test environment. Docker is needed to
|
|
# launch a kubernetes instance in the test environment.
|
|
# (Dependencies are fun! :) )
|
|
before_install:
|
|
- cat /proc/net/if_inet6
|
|
- uname -a
|
|
- sudo bash -c 'if [ `cat /proc/net/if_inet6 | wc -l` = "0" ]; then echo "Enabling IPv6" ; sysctl net.ipv6.conf.all.disable_ipv6=0 ; sysctl net.ipv6.conf.default.disable_ipv6=0 ; sysctl net.ipv6.conf.lo.disable_ipv6=0 ; fi'
|
|
- cat /proc/net/if_inet6
|
|
- env
|
|
|
|
before_script:
|
|
- docker run -d --net=host --name=etcd quay.io/coreos/etcd:v$ETCD_VERSION
|
|
- docker run -d --volume=/:/rootfs:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:rw --volume=/var/lib/kubelet/:/var/lib/kubelet:rw --volume=/var/run:/var/run:rw --net=host --pid=host --privileged --name=hyperkube gcr.io/google_containers/hyperkube-amd64:v$K8S_VERSION /hyperkube kubelet --containerized --hostname-override=127.0.0.1 --api-servers=http://localhost:8080 --config=/etc/kubernetes/manifests $DNS_ARGUMENTS --allow-privileged --v=2
|
|
# Wait until kubectl is ready
|
|
- for i in {1..10}; do $KUBECTL version && break || sleep 5; done
|
|
- $KUBECTL version
|
|
- $KUBECTL config set-cluster test-doc --server=http://localhost:8080
|
|
- $KUBECTL config set-context test-doc --cluster=test-doc
|
|
- $KUBECTL config use-context test-doc
|
|
# Wait until k8s is ready
|
|
- for i in {1..30}; do $KUBECTL get nodes && break || sleep 5; done
|
|
- .travis/kubernetes/setup_k8s_services.sh
|
|
- docker ps -a
|
|
|
|
script:
|
|
- make coverage
|
|
|
|
after_success:
|
|
- bash <(curl -s https://codecov.io/bash)
|