poc vor datagrepper in openshift
This commit is contained in:
parent
e9798a9cac
commit
6223a2cf15
7 changed files with 187 additions and 0 deletions
|
@ -35,11 +35,21 @@
|
||||||
template: dashboard_config.yml
|
template: dashboard_config.yml
|
||||||
objectname: dashboard_config.yml
|
objectname: dashboard_config.yml
|
||||||
|
|
||||||
|
- role: openshift/object
|
||||||
|
app: monitor-dashboard
|
||||||
|
template: datagrepper_config.yml
|
||||||
|
objectname: datagrepper_config.yml
|
||||||
|
|
||||||
- role: openshift/object
|
- role: openshift/object
|
||||||
app: monitor-dashboard
|
app: monitor-dashboard
|
||||||
file: service.yml
|
file: service.yml
|
||||||
objectname: service.yml
|
objectname: service.yml
|
||||||
|
|
||||||
|
- role: openshift/object
|
||||||
|
app: monitor-dashboard
|
||||||
|
file: datagrepper_service.yml
|
||||||
|
objectname: datagrepper_service.yml
|
||||||
|
|
||||||
- role: openshift/object
|
- role: openshift/object
|
||||||
app: monitor-dashboard
|
app: monitor-dashboard
|
||||||
file: route_serviceaccount.yml
|
file: route_serviceaccount.yml
|
||||||
|
@ -51,6 +61,16 @@
|
||||||
file: route.yml
|
file: route.yml
|
||||||
objectname: route.yml
|
objectname: route.yml
|
||||||
|
|
||||||
|
- role: openshift/object
|
||||||
|
app: monitor-dashboard
|
||||||
|
file: datagrepper_route.yml
|
||||||
|
objectname: datagrepper_route.yml
|
||||||
|
|
||||||
|
- role: openshift/object
|
||||||
|
app: monitor-dashboard
|
||||||
|
template: datagrepper_deploymentconfig.yml
|
||||||
|
objectname: datagrepper_deploymentconfig.yml
|
||||||
|
|
||||||
- role: openshift/object
|
- role: openshift/object
|
||||||
app: monitor-dashboard
|
app: monitor-dashboard
|
||||||
template: deploymentconfig.yml
|
template: deploymentconfig.yml
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Route
|
||||||
|
metadata:
|
||||||
|
name: daragrepper
|
||||||
|
labels:
|
||||||
|
app: daragrepper
|
||||||
|
spec:
|
||||||
|
#host: waiverdb.stg.fedoraproject.org
|
||||||
|
port:
|
||||||
|
targetPort: daragrepper
|
||||||
|
to:
|
||||||
|
kind: Service
|
||||||
|
name: daragrepper
|
||||||
|
tls:
|
||||||
|
termination: Edge
|
||||||
|
insecureEdgeTerminationPolicy: Redirect
|
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: datagrepper
|
||||||
|
labels:
|
||||||
|
app: datagrepper
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: datagrepper
|
||||||
|
service: datagrepper
|
||||||
|
ports:
|
||||||
|
- name: datagrepper
|
||||||
|
port: 8080
|
||||||
|
targetPort: 8080
|
|
@ -0,0 +1,15 @@
|
||||||
|
FROM fedora:32
|
||||||
|
LABEL \
|
||||||
|
name="datagrepper" \
|
||||||
|
vendor="Fedora Infrastructure" \
|
||||||
|
license="MIT"
|
||||||
|
RUN dnf -y install fedora-messaging python3 python3-fedmsg python3-gunicorn python3-pip python3-psycopg2 git
|
||||||
|
RUN git clone https://github.com/fedora-infra/datagrepper.git /srv/datanommer && \
|
||||||
|
cd /srv/datanommer && \
|
||||||
|
python3 -m pip install -r requirements.txt && \
|
||||||
|
python3 -m pip install . --no-use-pep517 && \
|
||||||
|
mkdir -p /usr/share/datagrepper && \
|
||||||
|
cp /srv/datanommer/apache/datagrepper.wsgi /usr/share/datagrepper/datagrepper.wsgi && \
|
||||||
|
cp /srv/datanommer/fedmsg.d/example-datagrepper.py /etc/fedmsg.d/datagrepper.py
|
||||||
|
env DATAGREPPER_CONFIG=/srv/datanommer/apache/datagrepper.cfg
|
||||||
|
CMD ["gunicorn", "-b", "0.0.0.0:8080", "-w", "4", "--log-level", "DEBUG", "-t", "180", "datagrepper.app:app"]
|
|
@ -0,0 +1,25 @@
|
||||||
|
{% macro load_file(filename) %}{% include filename %}{%- endmacro -%}
|
||||||
|
apiVersion: v1
|
||||||
|
items:
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: BuildConfig
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
build: datagrepper
|
||||||
|
name: datagrepper
|
||||||
|
spec:
|
||||||
|
runPolicy: Serial
|
||||||
|
source:
|
||||||
|
dockerfile: |-
|
||||||
|
{{ load_file('dockerfile-base') | indent(8) }}
|
||||||
|
type: Dockerfile
|
||||||
|
strategy:
|
||||||
|
type: Docker
|
||||||
|
dockerStrategy:
|
||||||
|
noCache: false
|
||||||
|
output:
|
||||||
|
to:
|
||||||
|
kind: ImageStreamTag
|
||||||
|
name: datagrepper:latest
|
||||||
|
kind: List
|
||||||
|
metadata: {}
|
|
@ -0,0 +1,49 @@
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: datagrepper
|
||||||
|
labels:
|
||||||
|
app: datagrepper
|
||||||
|
data:
|
||||||
|
datagrepper.py: |-
|
||||||
|
# Configuration for the datagrepper webapp.
|
||||||
|
config = {
|
||||||
|
# We don't actually want to run the datanommer consumer on this machine.
|
||||||
|
'datanommer.enabled': False,
|
||||||
|
|
||||||
|
# Note that this is connecting to db02. That's fine for now, but we want to
|
||||||
|
# move the db for datanommer to a whole other db host in the future. We
|
||||||
|
# expect the amount of data it generates to grow pretty steadily over time
|
||||||
|
# and we don't want *read* operations on that database to slow down all our
|
||||||
|
# other apps.
|
||||||
|
'datanommer.sqlalchemy.url': 'postgresql://datanommer_ro:{{ datanommer_ro_password }}@db-datanommer01.iad2.fedoraproject.org/datanommer',
|
||||||
|
'fedmenu_url': 'https://apps.fedoraproject.org/fedmenu',
|
||||||
|
'fedmenu_data_url': 'https://apps.fedoraproject.org/js/data.js',
|
||||||
|
|
||||||
|
# Only allow ajax/websockets connections back to our domains.
|
||||||
|
# https://github.com/fedora-infra/datagrepper/pull/192
|
||||||
|
'content_security_policy': 'connect-src https://*.fedoraproject.org wss://*.fedoraproject.org'
|
||||||
|
}
|
||||||
|
daragrepper.cfg: |-
|
||||||
|
from datetime import timedelta
|
||||||
|
|
||||||
|
### Secret key for the Flask application
|
||||||
|
SECRET_KEY = '{{ datagrepperCookieSecret }}'
|
||||||
|
|
||||||
|
### Unhappy mako
|
||||||
|
MAKO_OUTPUT_ENCODING='utf-8'
|
||||||
|
|
||||||
|
DATAGREPPER_BASE_URL='https://apps.fedoraproject.org/datagrepper/'
|
||||||
|
|
||||||
|
DATAGREPPER_CACHE_BACKEND='dogpile.cache.memcached'
|
||||||
|
|
||||||
|
DATAGREPPER_CACHE_KWARGS={'arguments': {'url': ['memcached01.phx2.fedoraproject.org:11211']}}
|
||||||
|
|
||||||
|
SQLALCHEMY_DATABASE_URI='postgresql+psycopg2://{{ datagrepper_app_user }}:{{ datagrepper_app_password }}@db01.iad2.fedoraproject.org:5432/datagrepper'
|
||||||
|
|
||||||
|
DATAGREPPER_OPENID_ENDPOINT='id.fedoraproject.org'
|
||||||
|
|
||||||
|
RUNNER_LOCKFILE='/var/run/fedmsg/datagrepper.lock'
|
||||||
|
JOB_OUTPUT_DIR='/var/cache/datagrepper'
|
||||||
|
JOB_EXPIRY=timedelta(days=7)
|
|
@ -0,0 +1,48 @@
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: dashboard
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
name: dashboard
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: dashboard
|
||||||
|
app: dashboard
|
||||||
|
service: web
|
||||||
|
name: dashboard
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- command: ["gunicorn"]
|
||||||
|
- args:
|
||||||
|
- "-b"
|
||||||
|
- "0.0.0.0:8080"
|
||||||
|
- "-w"
|
||||||
|
- "4"
|
||||||
|
- "--log-level"
|
||||||
|
- "DEBUG"
|
||||||
|
- "-t"
|
||||||
|
- "180"
|
||||||
|
- "datagrepper.app:app"
|
||||||
|
image: registry.hub.docker.com/openshift/oauth-proxy:latest
|
||||||
|
name: oauth-proxy
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
env:
|
||||||
|
- name: "DATAGREPPER_CONFIG"
|
||||||
|
value: "/srv/datanommer/apache/datagrepper.cfg"
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/fedmsg.d/datagrepper.py
|
||||||
|
subpath: datagrepper.py
|
||||||
|
name: datagrepper
|
||||||
|
- mountPath: /srv/datanommer/fedmsg.d/daragrepper.cfg
|
||||||
|
subpath: daragrepper.cfg
|
||||||
|
name: datagrepper
|
||||||
|
volumes:
|
||||||
|
- configMap:
|
||||||
|
name: datagrepper
|
||||||
|
name: datagrepper
|
Loading…
Add table
Add a link
Reference in a new issue