zuul-base-jobs/playbooks/openshift/prepare-namespace.yaml

132 lines
3.6 KiB
YAML

---
# Note: this can probably be simplified by running a ready to use http server.
# In this PoC, the http server is constructed using the openshift/httpd-ex template
- name: create staging-http ImageStream
openshift_raw:
state: present
namespace: "{{ zuul_resources['project'].namespace }}"
definition:
apiVersion: v1
kind: ImageStream
metadata:
labels:
app: staging-http-server
name: staging-http-server
spec:
lookupPolicy:
local: false
- name: create staging-http BuildConfig
openshift_raw:
state: present
namespace: "{{ zuul_resources['project'].namespace }}"
definition:
apiVersion: v1
kind: BuildConfig
metadata:
labels:
app: staging-http-server
name: staging-http-server
spec:
output:
to:
kind: ImageStreamTag
name: 'staging-http-server:latest'
postCommit: {}
resources: {}
runPolicy: Serial
source:
git:
ref: master
uri: 'https://github.com/openshift/httpd-ex.git'
type: Git
strategy:
sourceStrategy:
from:
kind: ImageStreamTag
name: 'httpd:2.4'
namespace: openshift
type: Source
triggers:
- type: ImageChange
- type: ConfigChange
status:
lastVersion: 1
- name: create staging-http DeploymentConfig
openshift_raw:
state: present
namespace: "{{ zuul_resources['project'].namespace }}"
definition:
apiVersion: v1
kind: DeploymentConfig
metadata:
generation: 2
labels:
app: staging-http-server
name: staging-http-server
spec:
replicas: 1
selector:
deploymentconfig: staging-http-server
strategy:
resources: {}
type: Rolling
template:
metadata:
labels:
app: staging-http-server
deploymentconfig: staging-http-server
spec:
containers:
- image: "172.30.1.1:5000/{{ zuul_resources['project'].namespace }}/staging-http-server"
# imagePullPolicy: Always
name: staging-http-server
ports:
- containerPort: 8080
protocol: TCP
- containerPort: 8443
protocol: TCP
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
test: false
- name: create staging-http Service spec
openshift_raw:
state: present
namespace: "{{ zuul_resources['project'].namespace }}"
definition:
apiVersion: v1
kind: Service
metadata:
labels:
app: staging-http-server
name: staging-http-server
spec:
ports:
- name: 8080-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
deploymentconfig: staging-http-server
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
- name: get staging-http-server pod name
command: oc get pods --field-selector=status.phase=Running -o "jsonpath={.items[?(@.metadata.labels.app=='staging-http-server')].metadata.name}"
register: _zm_name
retries: 600
delay: 1
until: "'staging-http' in _zm_name.stdout"
- name: register staging-http-server pod name
set_fact:
zm_name: "{{ _zm_name.stdout }}"