Add travis tests

This commit is contained in:
ant31 2015-12-22 11:50:55 +01:00
parent 8fa0110e28
commit 9a03249446
4 changed files with 71 additions and 9 deletions

41
.travis.yml Normal file
View file

@ -0,0 +1,41 @@
sudo: required
dist: trusty
language: python
python: "2.7"
addons:
hosts:
- node1
env:
- SITE=cluster.yml
before_install:
- sudo apt-get update -qq
install:
# Install Ansible.
- sudo -H pip install ansible
- sudo -H pip install netaddr
cache:
directories:
- $HOME/releases
- $HOME/.cache/pip
before_script:
- export PATH=$PATH:/usr/local/bin
script:
# Check the role/playbook's syntax.
- "sudo -H ansible-playbook -i inventory/local-tests.cfg $SITE --syntax-check"
# Run the role/playbook with ansible-playbook.
- "sudo -H ansible-playbook -i inventory/local-tests.cfg $SITE --connection=local"
# Run the role/playbook again, checking to make sure it's idempotent.
- >
sudo -H ansible-playbook -i inventory/local-tests.cfg $SITE --connection=local
| tee /dev/stderr | grep -q 'changed=0.*failed=0'
&& (echo 'Idempotence test: pass' && exit 0)
|| (echo 'Idempotence test: fail' && exit 1)

17
inventory/local-tests.cfg Normal file
View file

@ -0,0 +1,17 @@
node1 ansible_connection=local local_release_dir={{ansible_env.HOME}}/releases
[downloader]
node1
[kube-master]
node1
[etcd]
node1
[kube-node]
node1
[k8s-cluster:children]
kube-node
kube-master

View file

@ -1,20 +1,23 @@
--- ---
- name: Write kubelet systemd init file - debug: msg="{{init_system == "systemd"}}"
- debug: msg="{{init_system}}"
- name: install | Write kubelet systemd init file
template: src=kubelet.service.j2 dest=/etc/systemd/system/kubelet.service backup=yes template: src=kubelet.service.j2 dest=/etc/systemd/system/kubelet.service backup=yes
when: init_system == "systemd" when: init_system == "systemd"
notify: restart systemd-kubelet notify: restart systemd-kubelet
- name: Write kubelet initd script - name: install | Write kubelet initd script
template: src=deb-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=755 backup=yes template: src=deb-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=755 backup=yes
when: init_system == "sysvinit" and ansible_os_family == "Debian" when: init_system == "sysvinit" and ansible_os_family == "Debian"
notify: restart kubelet notify: restart kubelet
- name: Write kubelet initd script - name: install | Write kubelet initd script
template: src=rh-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=755 backup=yes template: src=rh-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=755 backup=yes
when: init_system == "sysvinit" and ansible_os_family == "RedHat" when: init_system == "sysvinit" and ansible_os_family == "RedHat"
notify: restart kubelet notify: restart kubelet
- name: Install kubelet binary - name: install | Install kubelet binary
synchronize: synchronize:
src: "{{ local_release_dir }}/kubernetes/bin/kubelet" src: "{{ local_release_dir }}/kubernetes/bin/kubelet"
dest: "{{ bin_dir }}/kubelet" dest: "{{ bin_dir }}/kubelet"
@ -25,14 +28,14 @@
notify: notify:
- restart kubelet - restart kubelet
- name: Perms kubelet binary - name: install | Perms kubelet binary
file: path={{ bin_dir }}/kubelet owner=kube mode=0755 state=file file: path={{ bin_dir }}/kubelet owner=kube mode=0755 state=file
- name: Calico-plugin | Directory - name: install | Calico-plugin | Directory
file: path=/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/ state=directory file: path=/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/ state=directory
when: kube_network_plugin == "calico" when: kube_network_plugin == "calico"
- name: Calico-plugin | Binary - name: install | Calico-plugin | Binary
synchronize: synchronize:
src: "{{ local_release_dir }}/calico/bin/calico" src: "{{ local_release_dir }}/calico/bin/calico"
dest: "/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/calico" dest: "/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/calico"
@ -43,5 +46,5 @@
when: kube_network_plugin == "calico" when: kube_network_plugin == "calico"
notify: restart kubelet notify: restart kubelet
- name: Perms calico plugin binary - name: install | Perms calico plugin binary
file: path=/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/calico owner=kube mode=0755 state=file file: path=/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/calico owner=kube mode=0755 state=file

View file

@ -1,7 +1,8 @@
--- ---
- name: "Identify init system" - name: "Identify init system"
shell: > shell: >
if $(pgrep systemd > /dev/null); then $(pgrep systemd > /dev/null && systemctl status > /dev/null);
if [ $? -eq 0 ] ; then
echo systemd; echo systemd;
else else
echo sysvinit; echo sysvinit;