diff --git a/.zuul.yaml b/.zuul.yaml index 5694846..d62d23f 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -2,7 +2,7 @@ name: openstack/ansible-role-k8s-mariadb check: jobs: - - ansible-role-k8s-mariadb-centos + - ansible-role-k8s-mariadb-kubernetes-centos - nodeset: name: ansible-role-k8s-centos @@ -19,6 +19,9 @@ timeout: 10800 - job: - name: ansible-role-k8s-mariadb-centos + name: ansible-role-k8s-mariadb-kubernetes-centos parent: ansible-role-k8s-base nodeset: ansible-role-k8s-centos + vars: + coe: kubernetes + project_name: ansible-role-k8s-mariadb diff --git a/tests/pre.yml b/tests/pre.yml index 5237012..499442c 100644 --- a/tests/pre.yml +++ b/tests/pre.yml @@ -20,26 +20,16 @@ - "system_logs" - "ansible" - - include: pre_rhel.yml - when: ansible_os_family == 'RedHat' - - - include: pre_debian.yml - when: ansible_os_family == 'Debian' + - include: 'roles/{{coe}}/tasks/pre.yml' - name: Create symlink for this role become: true file: src: "{{ ansible_env.HOME }}/{{ zuul.project.src_dir }}" - dest: "/etc/ansible/roles/ansible-role-k8s-mariadb" + dest: "/etc/ansible/roles/{{project_name}}" state: link delegate_to: primary - - name: Clone kubespray - git: - repo: https://github.com/kubernetes-incubator/kubespray/ - dest: "/tmp/kubespray" - delegate_to: primary - - name: Clone ansible-role-k8s-tripleo for now become: true git: diff --git a/tests/roles/kubernetes/tasks/pre.yml b/tests/roles/kubernetes/tasks/pre.yml new file mode 100644 index 0000000..4dccb8c --- /dev/null +++ b/tests/roles/kubernetes/tasks/pre.yml @@ -0,0 +1,12 @@ +--- +- include: pre_rhel.yml + when: ansible_os_family == 'RedHat' + +- include: pre_debian.yml + when: ansible_os_family == 'Debian' + +- name: Clone kubespray + git: + repo: https://github.com/kubernetes-incubator/kubespray/ + dest: "/tmp/kubespray" + delegate_to: primary diff --git a/tests/roles/kubernetes/tasks/pre_debian.yml b/tests/roles/kubernetes/tasks/pre_debian.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/tests/roles/kubernetes/tasks/pre_debian.yml @@ -0,0 +1 @@ +--- diff --git a/tests/roles/kubernetes/tasks/pre_rhel.yml b/tests/roles/kubernetes/tasks/pre_rhel.yml new file mode 100644 index 0000000..bf9955f --- /dev/null +++ b/tests/roles/kubernetes/tasks/pre_rhel.yml @@ -0,0 +1,54 @@ +--- +- name: Add ASB repo for ansible-kubernetes-modules + become: true + yum_repository: + name: asb + description: Copr repo for ansible-service-broker-latest owned by @ansible-service-broker + file: asb + baseurl: https://copr-be.cloud.fedoraproject.org/results/@ansible-service-broker/ansible-service-broker-latest/epel-7-$basearch/ + gpgkey: https://copr-be.cloud.fedoraproject.org/results/@ansible-service-broker/ansible-service-broker-latest/pubkey.gpg + gpgcheck: true + enabled: true + skip_if_unavailable: true + repo_gpgcheck: false + +- name: Enable/Install epel-release/centos-release-openshift-origin + become: true + yum: + name: "{{item}}" + state: present + with_items: + - epel-release + - centos-release-openshift-origin + +# NOTE(flaper87): python-openshift requires a specific version of +# python-requests. We need to update it to the version in the asb repo, hence +# this step. We have to enable epel so we can meet the python2-pysocks +# dependency, which is a python-requests requirement. +- name: Force update for requests/urllib3 + become: true + yum: + name: "{{item}}" + state: latest + update_cache: true + enablerepo: asb,epel + disablerepo: centos-openstack-ocata + with_items: + - python-requests + +- name: Install required packages + become: true + yum: + name: "{{item}}" + state: latest + with_items: + - ansible + - python-netaddr + +- name: Install required packages from asb + become: true + yum: + name: "{{item}}" + state: latest + with_items: + - ansible-kubernetes-modules diff --git a/tests/roles/kubernetes/tasks/run.yml b/tests/roles/kubernetes/tasks/run.yml new file mode 100644 index 0000000..7fbe2e0 --- /dev/null +++ b/tests/roles/kubernetes/tasks/run.yml @@ -0,0 +1,18 @@ +--- +- name: Build inventory + template: + src: "{{ zuul.executor.work_root }}/{{ zuul.project.src_dir }}/tests/roles/kubernetes/templates/inventory.j2" + dest: "/tmp/kubespray/ci_inventory" + delegate_to: "primary" + +- shell: + cmd: | + set -e + set -x + + ansible-playbook -i ci_inventory --skip-tags bastion-ssh-config -e skip_downloads=true cluster.yml + executable: /bin/bash + chdir: "/tmp/kubespray" + delegate_to: "primary" + environment: '{{ zuul | zuul_legacy_vars }}' + register: kubespray_output diff --git a/tests/templates/inventory.j2 b/tests/roles/kubernetes/templates/inventory.j2 similarity index 100% rename from tests/templates/inventory.j2 rename to tests/roles/kubernetes/templates/inventory.j2 diff --git a/tests/run.yml b/tests/run.yml index 96b8cb3..d8501d3 100644 --- a/tests/run.yml +++ b/tests/run.yml @@ -1,7 +1,5 @@ --- - hosts: all - vars: - project_name: ansible-role-k8s-mariadb tasks: - set_fact: nodes: | @@ -9,29 +7,13 @@ {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_become=true ansible_user={{ hostvars[host]['ansible_user'] }} {% endfor %} - - name: Build inventory - template: - src: "{{ zuul.executor.work_root }}/{{ zuul.project.src_dir }}/tests/templates/inventory.j2" - dest: "/tmp/kubespray/ci_inventory" - delegate_to: "primary" - - name: Build playbook template: src: "{{ zuul.executor.work_root }}/{{ zuul.project.src_dir }}/tests/templates/playbook.j2" dest: "{{ ansible_env.HOME }}/{{ zuul.project.src_dir }}/playbook.yml" delegate_to: "primary" - - shell: - cmd: | - set -e - set -x - - ansible-playbook -i ci_inventory --skip-tags bastion-ssh-config -e skip_downloads=true cluster.yml - executable: /bin/bash - chdir: "/tmp/kubespray" - delegate_to: "primary" - environment: '{{ zuul | zuul_legacy_vars }}' - register: kubespray_output + - include: 'roles/{{coe}}/tasks/run.yml' - shell: cmd: |