Initial openshift app for librariesio2fedmsg

Signed-off-by: Jeremy Cline <jeremy@jcline.org>
This commit is contained in:
Jeremy Cline 2017-11-13 21:27:14 +00:00
parent d5d94eb93e
commit 5ee07c719d
7 changed files with 259 additions and 0 deletions

View file

@ -14,3 +14,13 @@
description: librariesio2fedmsg
appowners:
- jcline
- { role: openshift/object, app: librariesio2fedmsg, file: imagestream.yml }
- { role: openshift/object, app: librariesio2fedmsg, template: secret.yml }
- { role: openshift/object, app: librariesio2fedmsg, file: buildconfig.yml }
- { role: openshift/start-build, app: librariesio2fedmsg, name: fedmsg-relay-docker-build }
- { role: openshift/start-build, app: librariesio2fedmsg, name: sse2fedmsg-docker-build }
- { role: openshift/object, app: librariesio2fedmsg, template: configmap.yml }
- { role: openshift/object, app: librariesio2fedmsg, file: service.yml }
- { role: openshift/object, app: librariesio2fedmsg, file: route.yml }
- { role: openshift/object, app: librariesio2fedmsg, file: deploymentconfig.yml }
- { role: openshift/rollout, app: librariesio2fedmsg, name: librariesio2fedmsg }

View file

@ -0,0 +1,62 @@
apiVersion: v1
items:
- apiVersion: v1
kind: BuildConfig
metadata:
labels:
build: fedmsg-relay
name: fedmsg-relay-docker-build
spec:
runPolicy: Serial
source:
dockerfile: |-
FROM fedora:26
LABEL \
name="fedmsg-relay" \
vendor="Fedora Infrastructure" \
license="MIT"
RUN dnf -y --enablerepo updates-testing update && \
dnf -y --enablerepo updates-testing install --setopt=tsflags=nodocs python3-fedmsg && \
dnf clean all
RUN rm /etc/fedmsg.d/*.py
ENV USER=fedmsg-relay
EXPOSE 9940
EXPOSE 4001
ENTRYPOINT fedmsg-relay-3
type: Dockerfile
strategy:
type: Docker
output:
to:
kind: ImageStreamTag
name: fedmsg-relay:latest
- apiVersion: v1
kind: BuildConfig
metadata:
labels:
build: sse2fedmsg
name: sse2fedmsg-docker-build
spec:
runPolicy: Serial
source:
dockerfile: |-
FROM fedora:26
LABEL \
name="sse2fedmsg" \
vendor="Fedora Infrastructure" \
license="MIT"
RUN dnf -y --enablerepo updates-testing update && \
dnf -y --enablerepo updates-testing install --setopt=tsflags=nodocs sse2fedmsg && \
dnf clean all
RUN rm /etc/fedmsg.d/*py
ENV USER=librariesio2fedmsg
ENTRYPOINT sse2fedmsg librariesio http://firehose.libraries.io/events
type: Dockerfile
strategy:
type: Docker
output:
to:
kind: ImageStreamTag
name: sse2fedmsg:latest
kind: List
metadata: {}

View file

@ -0,0 +1,91 @@
apiVersion: v1
items:
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: librariesio2fedmsg
service: fedmsg
name: librariesio2fedmsg
spec:
replicas: 1
selector:
deploymentconfig: librariesio2fedmsg
strategy:
activeDeadlineSeconds: 21600
recreateParams:
timeoutSeconds: 600
resources: {}
rollingParams:
intervalSeconds: 1
maxSurge: 25%
maxUnavailable: 25%
timeoutSeconds: 600
updatePeriodSeconds: 1
type: Rolling
template:
metadata:
creationTimestamp: null
labels:
app: librariesio2fedmsg
deploymentconfig: librariesio2fedmsg
spec:
containers:
- name: librariesio2fedmsg
image: librariesio2fedmsg/sse2fedmsg:latest
volumeMounts:
- mountPath: /etc/fedmsg.d/
name: fedmsg-confg
readOnly: true
- name: fedmsg-relay
image: librariesio2fedmsg/fedmsg-relay:latest
livenessProbe:
failureThreshold: 3
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 9940
timeoutSeconds: 3
ports:
- containerPort: 9940
protocol: TCP
- containerPort: 4001
protocol: TCP
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 1
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 9940
timeoutSeconds: 5
resources: {}
volumeMounts:
- mountPath: /etc/fedmsg.d/
name: fedmsg-config
volumes:
- name: fedmsg-config-volume
configMap:
name: fedmsg-config
triggers:
- imageChangeParams:
automatic: true
containerNames:
- librariesio2fedmsg
from:
kind: ImageStreamTag
name: sse2fedmsg:latest
namespace: librariesio2fedmsg
type: ImageChange
- imageChangeParams:
automatic: true
containerNames:
- fedmsg-relay
from:
kind: ImageStreamTag
name: fedmsg-relay:latest
namespace: librariesio2fedmsg
type: ImageChange
- type: ConfigChange
kind: List
metadata: {}

View file

@ -0,0 +1,16 @@
apiVersion: v1
items:
- apiVersion: v1
kind: ImageStream
metadata:
name: fedmsg-relay
labels:
build: fedmsg-relay
- apiVersion: v1
kind: ImageStream
metadata:
name: sse2fedmsg
labels:
build: sse2fedmsg
kind: List
metadata: {}

View file

@ -0,0 +1,18 @@
apiVersion: v1
items:
- apiVersion: v1
kind: Route
metadata:
name: librariesio2fedmsg
labels:
app: librariesio2fedmsg
spec:
port:
targetPort: 9940-tcp
to:
kind: Service
name: librariesio2fedmsg
weight: 100
wildcardPolicy: None
kind: List
metadata: {}

View file

@ -0,0 +1,20 @@
apiVersion: v1
items:
- apiVersion: v1
kind: Service
metadata:
name: librariesio2fedmsg
labels:
app: librariesio2fedmsg
spec:
ports:
- name: 9940-tcp
port: 9940
protocol: TCP
targetPort: 9940
selector:
deploymentconfig: librariesio2fedmsg
sessionAffinity: None
type: ClusterIP
kind: List
metadata: {}

View file

@ -0,0 +1,42 @@
apiVersion: v1
items:
- apiVersion: v1
data:
librariesio2fedmsg.py: |-
config = dict(
zmq_enabled=True,
# Openshift requires that we relay through the fedmsg relay because we don't
# know our hostname.
active=True,
{% if env == 'staging' %}
environment="stg",
{% else %}
environment="prod",
{% endif %}
high_water_mark=0,
io_threads=1,
post_init_sleep=0.5,
zmq_linger=1000,
zmq_tcp_keepalive=1,
zmq_tcp_keepalive_cnt=3,
zmq_tcp_keepalive_idle=60,
zmq_tcp_keepalive_intvl=5,
zmq_reconnect_ivl=100,
zmq_reconnect_ivl_max=1000,
endpoints={
"relay_outbound": [
"tcp://*:9940",
],
},
relay_inbound=[
"tcp://127.0.0.1:4001",
],
sign_messages=False,
validate_signatures=False,
)
kind: ConfigMap
metadata:
creationTimestamp: null
name: fedmsg-config
kind: List
metadata: {}