WIP: Add zuul-operator-functional-openshift job

TODO:
- create CR
- validate zuul service is running

Change-Id: Id6e220ad1d463af588fd2e6531b05889ff1b979d
This commit is contained in:
Tristan Cacqueray 2019-07-25 15:20:05 +00:00 committed by Jeff Liu
parent 5637d13f1f
commit aae3739d7f
3 changed files with 142 additions and 5 deletions

View File

@ -21,14 +21,34 @@
- context: .
dockerfile: build/Dockerfile
repository: zuul/zuul-operator
- job:
description: |
Test that zuul-operator works in Openshift (currently debugging use)
name: zuul-operator-functional-openshift
pre-run: playbooks/zuul-operator-functional-openshift/pre.yaml
run: playbooks/zuul-operator-functional-openshift/run.yaml
nodeset:
nodes:
- name: controller
label: fedora-29
required-projects:
- zuul/zuul-operator
- project:
check:
jobs:
- zuul-operator-build-image
- zuul-operator-functional-k8s:
dependencies: zuul-operator-build-image
# - zuul-operator-build-image
- zuul-operator-functional-openshift
# dependencies: zuul-operator-build-image
# - zuul-operator-build-image
#- zuul-operator-functional-k8s
# dependencies: zuul-operator-build-image
gate:
jobs:
- zuul-operator-build-image
- zuul-operator-functional-k8s:
dependencies: zuul-operator-build-image
- zuul-operator-functional-openshift:
dependencies: zuul-operator-build-image
# - zuul-operator-build-image
#- zuul-operator-functional-k8s
# dependencies: zuul-operator-build-image

View File

@ -0,0 +1,44 @@
- hosts: controller
tasks:
- name: Install origin tool
package:
name:
- origin
- docker
become: yes
- name: Fix docker start options
lineinfile:
dest: /etc/sysconfig/docker
regexp: "^OPTIONS="
line: "OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry 172.30.0.0/16'"
become: yes
# See: https://github.com/openshift/origin/issues/15038
- name: Fix rhel secret issue
file:
path: /usr/share/rhel/secrets
state: absent
become: yes
- name: Start docker service
service:
name: docker
state: started
become: yes
- name: Enable test user to connect to docker
file:
path: /var/run/docker.sock
owner: "{{ ansible_user }}"
become: yes
- include_role:
name: clear-firewall
- include_role:
name: deploy-openshift
# - name: Use opendev buildset registry
# include_role:
# name: use-buildset-registry
# vars:
# buildset_registry_docker_user: root

View File

@ -0,0 +1,73 @@
- hosts: controller
tasks:
- name: Login to the openshift cluster
command: >
oc login -u developer -p developer --insecure-skip-tls-verify=true
https://localhost:8443
- name: Login to the openshift registry
shell: docker login -u developer -p $(oc whoami -t) $(oc registry info)
- name: Restore admin user kube/config
copy:
src: /root/.kube/config
dest: "{{ ansible_env.HOME }}/.kube/config"
owner: "{{ ansible_env.USER }}"
mode: 0600
remote_src: yes
become: yes
- name: Login as admin user
command: oc login -u system:admin
- name: Build the operator image
command: >
docker build -f build/Dockerfile -t
172.30.1.1:5000/myproject/zuul-operator:latest .
args:
chdir: "{{ zuul.projects['opendev.org/zuul/zuul-operator'].src_dir }}"
- name: Push the operator image to the openshift registry
command: >
docker push 172.30.1.1:5000/myproject/zuul-operator:latest
register: result
until: result.rc == 0
retries: 5
delay: 1
- name: Fix operator image location for the openshift registry
replace:
path: "{{ zuul.projects['opendev.org/zuul/zuul-operator'].src_dir }}/deploy/operator.yaml"
regexp: "image. .zuul.zuul-operator.$"
replace: "image: \"172.30.1.1:5000/myproject/zuul-operator\""
- name: Apply resources
command: "oc create -f deploy/{{ item }}.yaml"
with_items:
- crds/zuul-ci_v1alpha1_zuul_crd
- rbac
- operator
args:
chdir: "{{ zuul.projects['opendev.org/zuul/zuul-operator'].src_dir }}"
- name: Give some time to settle
pause:
minutes: 1
- name: Get status
command: oc status
- name: Get operator logs
command: oc logs deployment/zuul-operator --all-containers
- name: get project pod name to check if running
command: >
{{ oc_command }} get pods --field-selector=status.phase=Running
-o "jsonpath={.items[?(@.metadata.labels.app=='{{ zuul.project.short_name }}')].metadata.name}"
register: _pod_name
retries: 100
delay: 1
until: "zuul.project.short_name in _pod_name.stdout"
- fail:
when: "operator not in _pod_name.stdout"