Update kerneltest openshift config

Signed-off-by: Ryan Lerch <rlerch@redhat.com>
This commit is contained in:
Ryan Lercho 2024-03-12 13:47:18 +10:00
parent ba4613f735
commit d92a573709
8 changed files with 193 additions and 77 deletions

View file

@ -66,7 +66,7 @@
- role: openshift/route
app: kerneltest
routename: kerneltest
host: "kerneltest{{ env_suffix }}.fedoraproject.org"
host: "kerneltest.apps.ocp{{ env_suffix }}.fedoraproject.org"
serviceport: web
servicename: kerneltest-web

View file

@ -0,0 +1,54 @@
# A generic, single database configuration.
[alembic]
# path to migration scripts
script_location = /opt/app-root/src/alembic
# template used to generate migration files
# file_template = %%(rev)s_%%(slug)s
# set to 'true' to run the environment during
# the 'revision' command, regardless of autogenerate
# revision_environment = false
{% if env == 'staging' %}
sqlalchemy.url = postgresql://{{ kerneltest_stg_db_user }}:{{ kerneltest_stg_db_pass }}@{{ kerneltest_stg_db_host }}/kerneltest
{% else %}
sqlalchemy.url = postgresql://{{ kerneltest_db_user }}:{{ kerneltest_db_pass }}@{{ kerneltest_db_host }}/kerneltest
{% endif %}
# Logging configuration
[loggers]
keys = root,sqlalchemy,alembic
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = WARN
handlers = console
qualname =
[logger_sqlalchemy]
level = WARN
handlers =
qualname = sqlalchemy.engine
[logger_alembic]
level = INFO
handlers =
qualname = alembic
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S

View file

@ -0,0 +1,4 @@
#!/bin/bash
pip install alembic
alembic -c /etc/alembic-upgrade-script/alembic.ini upgrade head

View file

@ -1,66 +1,100 @@
---
apiVersion: v1
kind: List
metadata: {}
items:
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: kerneltest
service: web
name: kerneltest-web
spec:
replicas: 1
selector:
deploymentconfig: kerneltest-web
strategy:
resources: {}
template:
metadata:
labels:
app: kerneltest
deploymentconfig: kerneltest-web
spec:
containers:
- name: kerneltest-web
image: docker-registry.default.svc:5000/kerneltest/kerneltest:latest
kind: DeploymentConfig
metadata:
labels:
app: kerneltest
service: kerneltest
name: kerneltest
spec:
replicas: 1
selector:
app: kerneltest
deploymentconfig: kerneltest
strategy:
type: Recreate
recreateParams:
mid:
failurePolicy: Abort
execNewPod:
containerName: kerneltest
command: ["/opt/app-root/config/alembic_upgrade.sh"]
env:
- name: KERNELTEST_CONFIG
value: /etc/kerneltest/config.toml
- name: APP_MODULE
value: "kerneltest.wsgi:application"
ports:
- containerPort: 8080
resources: {}
volumeMounts:
- name: config-volume
mountPath: /etc/kerneltest
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: kerneltest-configmap
triggers:
- imageChangeParams:
automatic: true
containerNames:
- kerneltest-web
from:
kind: ImageStreamTag
name: kerneltest:latest
namespace: kerneltest
type: ImageChange
- type: ConfigChange
- name: PYTHONPATH
value: /opt/app-root/src
volumes:
- kerneltest-config-volume
- kerneltest-secret-volume
- ipa-config-volume
template:
metadata:
labels:
app: kerneltest
deploymentconfig: kerneltest
spec:
containers:
- name: kerneltest
image: kerneltest:latest
ports:
- containerPort: 8080
resources: {}
env:
- name: GUNICORN_CMD_ARGS
value: "--bind=0.0.0.0:8080"
- name: KERNELTEST_CONFIG
value: /etc/kerneltest-config/config.toml
volumeMounts:
- name: kerneltest-config-volume
mountPath: /etc/kerneltest-config
readOnly: true
- name: alembic-upgrade-script-volume
mountPath: /etc/alembic-upgrade-script
readOnly: true
- name: wsgi-script-volume
mountPath: "/opt/app-root/src/deploy"
readOnly: true
- name: kerneltest-secrets-volume
mountPath: /etc/kerneltest-secrets
readOnly: true
- name: ipa-config-volume
mountPath: /etc/ipa
readOnly: true
readinessProbe:
timeoutSeconds: 1
initialDelaySeconds: 5
httpGet:
path: /
port: 8080
livenessProbe:
timeoutSeconds: 1
initialDelaySeconds: 30
httpGet:
path: /
port: 8080
volumes:
- name: kerneltest-config-volume
configMap:
name: kerneltest-config-map
- name: alembic-upgrade-script-volume
configMap:
name: alembic-upgrade-script
- name: wsgi-script-volume
configMap:
name: wsgi-script
- name: kerneltest-secrets-volume
secret:
secretName: kerneltest-secrets
- name: ipa-config-volume
configMap:
name: ipa-client-config
triggers:
- type: ConfigChange
- type: ImageChange
imageChangeParams:
automatic: true
containerNames:
- elections
from:
kind: ImageStreamTag
name: elections:latest

View file

@ -0,0 +1 @@
from fedora_elections import APP as application

View file

@ -12,14 +12,14 @@ spec:
source:
type: Git
git:
uri: https://github.com/jmflinuxtx/kerneltest-harness.git
uri: https://github.com/fedora-infra/kerneltest.git
strategy:
type: Source
sourceStrategy:
from:
kind: ImageStreamTag
namespace: openshift
name: python:3.6
name: python:3.10
triggers:
- type: ConfigChange
- type: ImageChange

View file

@ -6,4 +6,4 @@ SECRET_KEY = "{{ kerneltest_secretkey }}"
DB_URL = "postgresql://{{ kerneltest_db_user }}:{{ kerneltest_db_pass }}@{{ kerneltest_db_host }}/kerneltest"
{% endif %}
ADMIN_GROUP = ["sysadmin-kernel", "sysadmin-main"]
OIDC_CLIENT_SECRETS = "/etc/kerneltest/client_secrets.json"
OIDC_CLIENT_SECRETS = "/etc/kerneltest-config/client_secrets.json"

View file

@ -1,13 +1,36 @@
{% macro load_file(filename) %}{% include filename %}{%- endmacro -%}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: kerneltest-configmap
labels:
app: kerneltest
data:
config.toml: |-
{{ load_file('config.toml') | indent }}
client_secrets.json: |-
{{ load_file('client_secrets.json') | indent }}
kind: List
metadata: {}
items:
- apiVersion: v1
kind: ConfigMap
metadata:
name: kerneltest-config-map
labels:
app: kerneltest
data:
config.toml: |-
{{ load_file('kerneltest.toml') | indent }}
client_secrets.json: |-
{{ load_file('client_secrets.json') | indent }}
- apiVersion: v1
kind: ConfigMap
metadata:
name: alembic-upgrade-script
labels:
app: kerneltest
data:
alembic_upgrade.sh: |-
{{ load_file('alembic_upgrade.sh') | indent }}
- apiVersion: v1
kind: ConfigMap
metadata:
name: wsgi-script
labels:
app: kerneltest
data:
alembic_upgrade.sh: |-
{{ load_file('wsgi.py') | indent }}