languages: initial deployment on staging

This commit is contained in:
Francois Andrieu 2021-02-11 09:04:33 +01:00 committed by smooge
parent 23d38a61fa
commit 5b8316be12
9 changed files with 433 additions and 0 deletions

View file

@ -0,0 +1 @@
registry: "docker-registry.default.svc:5000"

View file

@ -0,0 +1,45 @@
apiVersion: v1
kind: BuildConfig
metadata:
labels:
build: build-f33
name: build-f33
spec:
successfulBuildsHistoryLimit: 2
failedBuildsHistoryLimit: 1
runPolicy: Serial
source:
git:
uri: "https://pagure.io/fedora-l10n/fedora-localization-statistics.git"
ref: main
strategy:
type: Docker
dockerStrategy:
dockerfilePath: docker/Dockerfile.33
output:
to:
kind: ImageStreamTag
name: builder:f33
---
apiVersion: v1
kind: BuildConfig
metadata:
labels:
build: build-latest
name: build-latest
spec:
successfulBuildsHistoryLimit: 2
failedBuildsHistoryLimit: 1
runPolicy: Serial
source:
git:
uri: "https://pagure.io/fedora-l10n/fedora-localization-statistics.git"
ref: main
strategy:
type: Docker
dockerStrategy:
dockerfilePath: docker/Dockerfile.34
output:
to:
kind: ImageStreamTag
name: builder:latest

View file

@ -0,0 +1,229 @@
{% if env == "production" %}
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: extract-33
spec:
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 2
concurrencyPolicy: Forbid
schedule: "0 4 * * *"
startingDeadlineSeconds: 500
jobTemplate:
spec:
backoffLimit: 0
template:
metadata:
labels:
parent: "cron_extract"
spec:
containers:
- name: extract
image: "{{ registry }}/{{ app }}/builder:f33"
imagePullPolicy: Always
command:
- ./build.py
- "--results"
- f33
volumeMounts:
- name: srpm-data
readOnly: false
mountPath: /src/results
volumes:
- name: srpm-data
persistentVolumeClaim:
claimName: "{{ app }}-storage"
restartPolicy: Never
---
{% endif %}
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: extract-34
spec:
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 2
concurrencyPolicy: Forbid
schedule: "0 4 * * *"
startingDeadlineSeconds: 500
jobTemplate:
spec:
backoffLimit: 0
template:
metadata:
labels:
parent: "cron_extract"
spec:
containers:
- name: extract
image: "{{ registry }}/{{ app }}/builder:latest"
imagePullPolicy: Always
command:
- ./build.py
- "--results"
- f34
volumeMounts:
- name: srpm-data
readOnly: false
mountPath: /src/results
volumes:
- name: srpm-data
persistentVolumeClaim:
claimName: "{{ app }}-storage"
restartPolicy: Never
---
{% if env == "production" %}
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: stats-33
spec:
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 2
concurrencyPolicy: Forbid
schedule: "0 20 * * *"
startingDeadlineSeconds: 500
jobTemplate:
spec:
backoffLimit: 0
template:
metadata:
labels:
parent: "cron_stats"
spec:
volumes:
- name: srpm-data
persistentVolumeClaim:
claimName: "{{ app }}-storage"
restartPolicy: Never
containers:
- name: stats
image: "{{ registry }}/{{ app }}/builder:latest"
imagePullPolicy: Always
command: ["/bin/sh", "-c"]
args:
- >
./build_language_list.py --results f33 --refresh &&
./build_language_list.py --results f33 --analyzealllang &&
./build_tm.py --results f33 --compress &&
./build_stats.py --results f33
volumeMounts:
- name: srpm-data
readOnly: false
mountPath: /src/results
---
{% endif %}
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: stats-34
spec:
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 2
concurrencyPolicy: Forbid
schedule: "0 10 * * *"
startingDeadlineSeconds: 500
jobTemplate:
spec:
backoffLimit: 0
template:
metadata:
labels:
parent: "cron_stats"
spec:
volumes:
- name: srpm-data
persistentVolumeClaim:
claimName: "{{ app }}-storage"
restartPolicy: Never
containers:
- name: stats
image: "{{ registry }}/{{ app }}/builder:latest"
imagePullPolicy: Always
command: ["/bin/sh", "-c"]
args:
- >
./build_language_list.py --results f34 --refresh &&
./build_language_list.py --results f34 --analyzealllang &&
./build_tm.py --results f34 --compress &&
./build_stats.py --results f34
volumeMounts:
- name: srpm-data
readOnly: false
mountPath: /src/results
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: build-website
spec:
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 2
concurrencyPolicy: Forbid
schedule: "0 */2 * * *"
startingDeadlineSeconds: 500
jobTemplate:
spec:
backoffLimit: 0
template:
metadata:
labels:
parent: "cron_stats"
spec:
volumes:
- name: srpm-data
persistentVolumeClaim:
claimName: "{{ app }}-storage"
restartPolicy: Never
containers:
- name: stats
image: "{{ registry }}/{{ app }}/builder:latest"
imagePullPolicy: Always
command: ["/bin/sh", "-c"]
args:
- >
./build_website.py -v --results f33 ;
./build_website.py -v --results f34 ;
cd website && hugo -D --baseURL https://languages{{ env_suffix }}.fedoraproject.org &&
cp -R public /src/results/
volumeMounts:
- name: srpm-data
readOnly: false
mountPath: /src/results
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: stats-website
spec:
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 2
concurrencyPolicy: Forbid
schedule: "0 * * * *"
startingDeadlineSeconds: 500
jobTemplate:
spec:
backoffLimit: 0
template:
metadata:
labels:
parent: "cron_stats"
spec:
restartPolicy: Never
containers:
- image: allinurl/goaccess
name: goaccess
imagePullPolicy: IfNotPresent
args:
- "-a"
- "--log-format=COMBINED"
- "--log-file=/html/logs/access.log"
- "--output=/html/public/stats.html"
ports:
volumeMounts:
- name: nginx-data
mountPath: /html
volumes:
- name: nginx-data
persistentVolumeClaim:
claimName: "{{ app }}-storage"

View file

@ -0,0 +1,39 @@
apiVersion: v1
kind: DeploymentConfig
metadata:
name: "web"
labels:
app: "web"
spec:
replicas: 1
selector:
app: "web"
template:
metadata:
labels:
app: "web"
spec:
containers:
- image: registry.redhat.io/rhel8/nginx-116
name: nginx
imagePullPolicy: IfNotPresent
args:
- nginx
- "-g"
- "daemon off;"
ports:
- containerPort: 8080
protocol: TCP
volumeMounts:
- name: nginx-data
mountPath: /opt/app-root/src
subPath: public
- name: nginx-data
subPath: logs
mountPath: /var/log/nginx
volumes:
- name: nginx-data
persistentVolumeClaim:
claimName: "{{ app }}-storage"
restartPolicy: Always

View file

@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: "{{ app }}-storage"
spec:
accessModes:
- ReadWriteMany
resources:
requests:
{% if env == 'staging' %}
storage: 40Gi
{% else %}
storage: 70Gi
{% endif %}
storageClassName: ""

View file

@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: web
labels:
app: web
spec:
selector:
app: web
ports:
- name: web
port: 8080
targetPort: 8080