WIP: Add zuul-operator-functional-openshift job

TODO:
- create CR
- validate zuul service is running

Depends-On: https://review.opendev.org/#/c/675688/

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 d5cbdbde08
3 changed files with 157 additions and 3 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:
- 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,53 @@
- hosts: controller
tasks:
- include_role:
name: clear-firewall
- name: Install origin tool
package:
name:
- origin
- docker
become: yes
- name: Use opendev buildset registry
include_role:
name: use-buildset-registry
- 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: deploy-openshift
vars:
skip-registry-check: true
#inherit from opendev-buildset-registry
# vars:
# buildset_registry_docker_user: root

View File

@ -0,0 +1,81 @@
- 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: zuul project info
debug:
var: zuul.project
- name: zuul project short name
debug:
var: zuul.project.short_name
- name: get project pod name to check if running
command: >
oc get pods --field-selector=status.phase=Running
-o "jsonpath={.items[*].metadata.name}"
register: _pod_name
retries: 100
delay: 2
until: "zuul.project.short_name in _pod_name.stdout"
- name: pod names that are running
debug:
var: _pod_name