diff --git a/playbooks/openshift-apps/fpdc.yml b/playbooks/openshift-apps/fpdc.yml new file mode 100644 index 0000000000..9648b08881 --- /dev/null +++ b/playbooks/openshift-apps/fpdc.yml @@ -0,0 +1,56 @@ +- name: make the app be real + hosts: os-masters-stg[0] + user: root + gather_facts: False + + 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: fpdc + description: Fedora Product Definition Center + appowners: + - cverna + - abompard + - role: openshift/object + app: fpdc + template: imagestream.yml + objectname: imagestream.yml + - role: openshift/object + app: fpdc + template: buildconfig.yml + objectname: buildconfig.yml + + - role: openshift/object + app: fpdc + template: configmap.yml + objectname: configmap.yml + + - role: openshift/start-build + app: fpdc + buildname: coreos-build + objectname: coreos-build + + - role: openshift/object + app: fpdc + file: service.yml + objectname: service.yml + + - role: openshift/route + app: fpdc + routename: fpdc + host: "fpdc{{ env_suffix }}.fedoraproject.org" + serviceport: 8080-tcp + servicename: fpdc + + - role: openshift/object + app: fpdc + file: deploymentconfig.yml + objectname: deploymentconfig.yml + + - role: openshift/rollout + app: fpdc + dcname: fpdc diff --git a/roles/openshift-apps/fpdc/files/deploymentconfig.yml b/roles/openshift-apps/fpdc/files/deploymentconfig.yml new file mode 100644 index 0000000000..29e5c73192 --- /dev/null +++ b/roles/openshift-apps/fpdc/files/deploymentconfig.yml @@ -0,0 +1,58 @@ +--- +apiVersion: v1 +kind: DeploymentConfig +metadata: + labels: + app: fpdc + service: fpdc + name: fpdc +spec: + replicas: 2 + selector: + app: fpdc + deploymentconfig: fpdc + strategy: + resources: {} + template: + metadata: + labels: + app: fpdc + deploymentconfig: fpdc + spec: + containers: + - image: fpdc:latest + name: fpdc + ports: + - containerPort: 8080 + protocol: TCP + volumesMounts: + - name: config-volume + mountPath: /opt/app-root/src/fpdc/settings/ + readOnly: true + readinessProbe: + timeoutSeconds: 1 + initialDelaySeconds: 5 + httpGet: + path: / + port: 8080 + livenessProbe: + timeoutSeconds: 1 + initialDelaySeconds: 30 + httpGet: + path: / + port: 8080 + volumes: + - name: config-volume + configMap: + name: fpdc-configmap + + triggers: + - type: ConfigChange + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - fpdc + from: + kind: ImageStreamTag + name: fpdc:latest diff --git a/roles/openshift-apps/fpdc/files/service.yml b/roles/openshift-apps/fpdc/files/service.yml new file mode 100644 index 0000000000..4c849e26c7 --- /dev/null +++ b/roles/openshift-apps/fpdc/files/service.yml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: fpdc + name: fpdc +spec: + ports: + - name: 8080-tcp + port: 8080 + protocol: TCP + targetPort: 8080 + selector: + app: fpdc + deploymentconfig: fpdc + diff --git a/roles/openshift-apps/fpdc/templates/buildconfig.yml b/roles/openshift-apps/fpdc/templates/buildconfig.yml new file mode 100644 index 0000000000..1e4f0603fa --- /dev/null +++ b/roles/openshift-apps/fpdc/templates/buildconfig.yml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: BuildConfig +metadata: + name: fpdc-build + labels: + environment: "fpdc" +spec: + output: + to: + kind: ImageStreamTag + name: fpdc:latest + source: + type: Git + git: + uri: https://github.com/fedora-infra/fpdc.git + strategy: + type: Source + sourceStrategy: + from: + kind: ImageStreamTag + name: python:3.6 + triggers: +{% if fpdc_github_secret is defined %} + - type: GitHub + github: + secret: "{{ fpdc_github_secret }}" +{% endif %} + - type: ConfigChange + - type: ImageChange diff --git a/roles/openshift-apps/fpdc/templates/configmap.yml b/roles/openshift-apps/fpdc/templates/configmap.yml new file mode 100644 index 0000000000..a11198d964 --- /dev/null +++ b/roles/openshift-apps/fpdc/templates/configmap.yml @@ -0,0 +1,43 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: fpdc-configmap + labels: + app: fpdc +data: + prod.py: |- + # Django settings for fpdc project. + from base import * + +{% if env == 'staging' %} + SECRET_KEY = '{{ stg_fpdc_secret_key }}' +{% else %} + SECRET_KEY = '{{ fpdc_secret_key }}' +{% endif %} + + DEBUG = False + ALLOWED_HOSTS = [] +{% if env == 'staging' %} + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'fpdc', + 'USER': 'fpdc', + 'PASSWORD': '{{ fpdc_stg_db_pass }}', + 'HOST': '{{ fpdc_stg_db_server }}', + 'PORT': '', + } + } +{% else %} + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'fpdc', + 'USER': 'fpdc', + 'PASSWORD': '{{ fpdc_db_pass }}', + 'HOST': '{{ fpdc_db_server }}', + 'PORT': '', + } + } +{% endif %} diff --git a/roles/openshift-apps/fpdc/templates/imagestream.yml b/roles/openshift-apps/fpdc/templates/imagestream.yml new file mode 100644 index 0000000000..71a8cdba00 --- /dev/null +++ b/roles/openshift-apps/fpdc/templates/imagestream.yml @@ -0,0 +1,10 @@ +--- +apiVersion: v1 +kind: ImageStream +metadata: + name: fpdc +spec: + lookupPolicy: + local: false +status: + dockerImageRepository: ""