diff --git a/playbooks/openshift-apps/greenwave.yml b/playbooks/openshift-apps/greenwave.yml new file mode 100644 index 0000000000..77c806d27e --- /dev/null +++ b/playbooks/openshift-apps/greenwave.yml @@ -0,0 +1,20 @@ +- name: make the app be real + hosts: os-masters-stg + user: root + gather_facts: True + + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "/srv/private/ansible/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + + roles: + - { role: openshift/project, app: greenwave, description: greenwave, fas_owner: codeblock } + - { role: openshift/object, app: greenwave, file: imagestream.yml } + - { role: openshift/object, app: greenwave, file: buildconfig.yml } + - { role: openshift/start-build, app: greenwave, name: greenwave-docker-build } + - { role: openshift/object, app: greenwave, template: configmap.yml } + - { role: openshift/object, app: greenwave, file: service.yml } + - { role: openshift/object, app: greenwave, file: route.yml } + - { role: openshift/object, app: greenwave, file: deploymentconfig.yml } + - { role: openshift/rollout, app: greenwave, name: greenwave-stg-web } diff --git a/roles/openshift-apps/greenwave/files/buildconfig.yml b/roles/openshift-apps/greenwave/files/buildconfig.yml new file mode 100644 index 0000000000..14d9709f4f --- /dev/null +++ b/roles/openshift-apps/greenwave/files/buildconfig.yml @@ -0,0 +1,34 @@ +apiVersion: v1 +kind: BuildConfig +metadata: + name: "greenwave-docker-build" + labels: + environment: "greenwave" +spec: + runPolicy: Serial + source: + dockerfile: |- + FROM fedora:26 + LABEL \ + name="Greenwave" \ + vendor="Fedora Infrastructure" \ + license="MIT" + RUN yum -y install --setopt=tsflags=nodocs \ + git \ + python-gunicorn \ + python-requests \ + python2-flask + RUN https://pagure.io/greenwave.git /srv/greenwave + RUN ln -s /etc/greenwave/settings.py /srv/greenwave/conf/settings.py + #RUN mv modern_paste.wsgi modern_paste_wsgi.py + WORKDIR /srv/greenwave + USER 1001 + EXPOSE 8080 + ENTRYPOINT python run-dev-server.py + #ENTRYPOINT gunicorn --bind 0.0.0.0:8080 --access-logfile=- --chdir /usr/share/modern-paste modern_paste_wsgi:application + strategy: + type: Docker + output: + to: + kind: ImageStreamTag + name: greenwave:latest diff --git a/roles/openshift-apps/greenwave/files/deploymentconfig.yml b/roles/openshift-apps/greenwave/files/deploymentconfig.yml new file mode 100644 index 0000000000..19fabb0f3a --- /dev/null +++ b/roles/openshift-apps/greenwave/files/deploymentconfig.yml @@ -0,0 +1,56 @@ +apiVersion: v1 +kind: DeploymentConfig +metadata: + name: greenwave-stg-web + labels: + app: greenwave + service: web +spec: + replicas: 2 + selector: + app: greenwave + service: web + template: + metadata: + labels: + app: greenwave + service: web + spec: + containers: + - name: web + image: 172.30.53.136:5000/greenwave/greenwave:latest + ports: + - containerPort: 8080 + volumeMounts: + - name: config-volume + mountPath: /etc/greenwave + readOnly: true + readinessProbe: + timeoutSeconds: 1 + initialDelaySeconds: 5 + httpGet: + path: /healthcheck + port: 8080 + livenessProbe: + timeoutSeconds: 1 + initialDelaySeconds: 30 + httpGet: + path: /healthcheck + port: 8080 + resources: + limits: + memory: 384Mi + volumes: + - name: config-volume + configMap: + name: greenwave-stg-configmap + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - web + from: + kind: ImageStreamTag + name: greenwave:latest + - type: ConfigChange diff --git a/roles/openshift-apps/greenwave/files/imagestream.yml b/roles/openshift-apps/greenwave/files/imagestream.yml new file mode 100644 index 0000000000..acae563aa1 --- /dev/null +++ b/roles/openshift-apps/greenwave/files/imagestream.yml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: ImageStream +metadata: + name: "greenwave" diff --git a/roles/openshift-apps/greenwave/files/route.yml b/roles/openshift-apps/greenwave/files/route.yml new file mode 100644 index 0000000000..c480ef487c --- /dev/null +++ b/roles/openshift-apps/greenwave/files/route.yml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Route +metadata: + name: greenwave-stg-web + labels: + app: greenwave +spec: + #host: greenwave.stg.fedoraproject.org + port: + targetPort: web + to: + kind: Service + name: greenwave-stg-web + tls: + termination: edge + insecureEdgeTerminationPolicy: Redirect diff --git a/roles/openshift-apps/greenwave/files/service.yml b/roles/openshift-apps/greenwave/files/service.yml new file mode 100644 index 0000000000..4aa75c8a75 --- /dev/null +++ b/roles/openshift-apps/greenwave/files/service.yml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: greenwave-stg-web + labels: + app: greenwave +spec: + selector: + app: greenwave + service: web + ports: + - name: web + port: 8080 + targetPort: 8080 diff --git a/roles/openshift-apps/greenwave/templates/configmap.yml b/roles/openshift-apps/greenwave/templates/configmap.yml new file mode 100644 index 0000000000..5b24687b7b --- /dev/null +++ b/roles/openshift-apps/greenwave/templates/configmap.yml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: greenwave-stg-configmap + labels: + app: greenwave +data: + settings.py: |- + SECRET_KEY = '{{stg_greenwave_secret_key}}' + HOST= '0.0.0.0' + PORT = 8080 + WAIVERDB_API_URL = 'https://waiverdb-stg-web-waiverdb.app.os.stg.fedoraproject.org/api/v1.0'