First try for the test-auth app
Signed-off-by: Aurélien Bompard <aurelien@bompard.org>
This commit is contained in:
parent
dadb90e633
commit
44d019e203
8 changed files with 240 additions and 0 deletions
67
playbooks/openshift-apps/test-auth.yml
Normal file
67
playbooks/openshift-apps/test-auth.yml
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
- name: make the app be real
|
||||||
|
hosts: os_masters[0]: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
|
||||||
|
|
||||||
|
vars:
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- role: openshift/project
|
||||||
|
app: test-auth
|
||||||
|
description: "Authentication testing"
|
||||||
|
appowners:
|
||||||
|
- abompard
|
||||||
|
tags:
|
||||||
|
- apply-appowners
|
||||||
|
|
||||||
|
- role: openshift/imagestream
|
||||||
|
app: test-auth
|
||||||
|
imagename: test-auth
|
||||||
|
|
||||||
|
- role: openshift/object
|
||||||
|
app: test-auth
|
||||||
|
template: buildconfig.yml
|
||||||
|
objectname: buildconfig.yml
|
||||||
|
|
||||||
|
- role: openshift/object
|
||||||
|
app: test-auth
|
||||||
|
template: configmap.yml
|
||||||
|
objectname: configmap.yml
|
||||||
|
|
||||||
|
- role: openshift/object
|
||||||
|
app: test-auth
|
||||||
|
file: service.yml
|
||||||
|
objectname: service.yml
|
||||||
|
|
||||||
|
# - role: openshift/route
|
||||||
|
# app: test-auth
|
||||||
|
# routename: test-auth
|
||||||
|
# host: "admin{{ env_suffix }}.fedoraproject.org"
|
||||||
|
# path: "/test-auth"
|
||||||
|
# serviceport: web
|
||||||
|
# servicename: test-auth
|
||||||
|
# annotations:
|
||||||
|
# haproxy.router.openshift.io/timeout: 5m
|
||||||
|
- role: openshift/route
|
||||||
|
app: test-auth
|
||||||
|
routename: test-auth
|
||||||
|
host: "test-auth.app.os{{ env_suffix }}.fedoraproject.org"
|
||||||
|
serviceport: web
|
||||||
|
servicename: test-auth
|
||||||
|
annotations:
|
||||||
|
haproxy.router.openshift.io/timeout: 5m
|
||||||
|
|
||||||
|
- role: openshift/object
|
||||||
|
app: test-auth
|
||||||
|
template: secret-webhook.yml
|
||||||
|
objectname: secret-webhook.yml
|
||||||
|
|
||||||
|
- role: openshift/object
|
||||||
|
app: test-auth
|
||||||
|
template: deploymentconfig.yml
|
||||||
|
objectname: deploymentconfig.yml
|
14
roles/openshift-apps/test-auth/files/service.yml
Normal file
14
roles/openshift-apps/test-auth/files/service.yml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: test-auth
|
||||||
|
labels:
|
||||||
|
app: test-auth
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: web
|
||||||
|
port: 8080
|
||||||
|
targetPort: 8080
|
||||||
|
selector:
|
||||||
|
app: test-auth
|
||||||
|
deploymentconfig: test-auth
|
41
roles/openshift-apps/test-auth/templates/buildconfig.yml
Normal file
41
roles/openshift-apps/test-auth/templates/buildconfig.yml
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
apiVersion: build.openshift.io/v1
|
||||||
|
kind: BuildConfig
|
||||||
|
metadata:
|
||||||
|
name: test-auth
|
||||||
|
labels:
|
||||||
|
app: test-auth
|
||||||
|
build: test-auth
|
||||||
|
spec:
|
||||||
|
runPolicy: Serial
|
||||||
|
source:
|
||||||
|
type: Git
|
||||||
|
git:
|
||||||
|
uri: https://github.com/abompard/test-auth.git
|
||||||
|
{% if env == "staging" %}
|
||||||
|
ref: main
|
||||||
|
{% else %}
|
||||||
|
ref: stable
|
||||||
|
{% endif %}
|
||||||
|
contextDir: /
|
||||||
|
strategy:
|
||||||
|
type: Source
|
||||||
|
sourceStrategy:
|
||||||
|
from:
|
||||||
|
kind: ImageStreamTag
|
||||||
|
name: python:3.6
|
||||||
|
namespace: openshift
|
||||||
|
output:
|
||||||
|
to:
|
||||||
|
kind: ImageStreamTag
|
||||||
|
name: test-auth:latest
|
||||||
|
triggers:
|
||||||
|
- type: ConfigChange
|
||||||
|
- type: ImageChange
|
||||||
|
- type: GitHub
|
||||||
|
{% if test_auth_stg_github_secret is defined and env == 'staging' %}
|
||||||
|
github:
|
||||||
|
secret: "{{ test_auth_stg_github_secret }}"
|
||||||
|
{% elif test_auth_github_secret is defined and env == 'production' %}
|
||||||
|
github:
|
||||||
|
secret: "{{ test_auth_github_secret }}"
|
||||||
|
{% endif %}
|
17
roles/openshift-apps/test-auth/templates/client_secrets.json
Normal file
17
roles/openshift-apps/test-auth/templates/client_secrets.json
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"web": {
|
||||||
|
"auth_uri": "https://id{{env_suffix}}.fedoraproject.org/openidc/Authorization",
|
||||||
|
"client_id": "{{ test_auth_oidc_client_id }}",
|
||||||
|
{% if env == 'staging' %}
|
||||||
|
"client_secret": "{{ test_auth_stg_oidc_client_secret }}",
|
||||||
|
{% else %}
|
||||||
|
"client_secret": "{{ test_auth_oidc_client_secret }}",
|
||||||
|
{% endif %}
|
||||||
|
"issuer": "https://id{{env_suffix}}.fedoraproject.org/openidc/",
|
||||||
|
"redirect_uris": [
|
||||||
|
"https://test-auth.app.os{{env_suffix}}.fedoraproject.org/oidc/oidc_callback"
|
||||||
|
],
|
||||||
|
"token_uri": "https://id{{env_suffix}}.fedoraproject.org/openidc/Token",
|
||||||
|
"userinfo_uri": "https://id{{env_suffix}}.fedoraproject.org/openidc/UserInfo"
|
||||||
|
}
|
||||||
|
}
|
18
roles/openshift-apps/test-auth/templates/config.py
Normal file
18
roles/openshift-apps/test-auth/templates/config.py
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#
|
||||||
|
# This is the config file for Test Auth as intended to be used in OpenShift
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# Deployed to a subpath
|
||||||
|
# APPLICATION_ROOT = '/test-auth/'
|
||||||
|
|
||||||
|
# Cookies
|
||||||
|
SECRET_KEY = "{{ test_auth_session_secret }}"
|
||||||
|
SESSION_COOKIE_NAME = 'test-auth'
|
||||||
|
SESSION_COOKIE_HTTPONLY = True
|
||||||
|
SESSION_COOKIE_SECURE = True
|
||||||
|
|
||||||
|
# Auth
|
||||||
|
OIDC_CLIENT_SECRETS = "/etc/test-auth/oidc.json"
|
||||||
|
OIDC_SCOPES = ['openid', 'email', 'profile', 'https://id.fedoraproject.org/scope/groups', 'https://id.fedoraproject.org/scope/agreements']
|
||||||
|
OPENID_ENDPOINT = "https://id{{ env_suffix }}.fedoraproject.org/openid/"
|
17
roles/openshift-apps/test-auth/templates/configmap.yml
Normal file
17
roles/openshift-apps/test-auth/templates/configmap.yml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{% macro load_file(filename) %}{% include filename %}{%- endmacro -%}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: List
|
||||||
|
metadata: {}
|
||||||
|
items:
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: test-auth-config
|
||||||
|
labels:
|
||||||
|
app: test-auth
|
||||||
|
data:
|
||||||
|
test-auth.cfg: |-
|
||||||
|
{{ load_file('config.py') | indent(6) }}
|
||||||
|
oidc.json: |-
|
||||||
|
{{ load_file('client_secrets.json') | indent(6) }}
|
|
@ -0,0 +1,59 @@
|
||||||
|
apiVersion: apps.openshift.io/v1
|
||||||
|
kind: DeploymentConfig
|
||||||
|
metadata:
|
||||||
|
name: test-auth
|
||||||
|
labels:
|
||||||
|
app: test-auth
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
app: test-auth
|
||||||
|
deploymentconfig: test-auth
|
||||||
|
strategy:
|
||||||
|
type: Rolling
|
||||||
|
activeDeadlineSeconds: 21600
|
||||||
|
rollingParams:
|
||||||
|
intervalSeconds: 1
|
||||||
|
maxSurge: 25%
|
||||||
|
maxUnavailable: 25%
|
||||||
|
timeoutSeconds: 600
|
||||||
|
updatePeriodSeconds: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
app: test-auth
|
||||||
|
deploymentconfig: test-auth
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: test-auth
|
||||||
|
imagePullPolicy: Always
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
#protocol: TCP
|
||||||
|
#resources: {}
|
||||||
|
#terminationMessagePath: /dev/termination-log
|
||||||
|
#terminationMessagePolicy: File
|
||||||
|
volumeMounts:
|
||||||
|
- name: test-auth-config-volume
|
||||||
|
mountPath: "/etc/test-auth"
|
||||||
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: TESTAUTH_SETTINGS
|
||||||
|
value: "/etc/test-auth/test-auth.cfg"
|
||||||
|
# - name: SCRIPT_NAME
|
||||||
|
# value: "/test-auth"
|
||||||
|
volumes:
|
||||||
|
- name: test-auth-config-volume
|
||||||
|
configMap:
|
||||||
|
name: test-auth-config
|
||||||
|
triggers:
|
||||||
|
- imageChangeParams:
|
||||||
|
automatic: true
|
||||||
|
containerNames:
|
||||||
|
- test-auth
|
||||||
|
from:
|
||||||
|
kind: ImageStreamTag
|
||||||
|
name: test-auth:latest
|
||||||
|
type: ImageChange
|
||||||
|
- type: ConfigChange
|
|
@ -0,0 +1,7 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: test-auth-github-webhook-secret
|
||||||
|
data:
|
||||||
|
WebHookSecretKey: "{{ (env == 'production')|ternary(test_auth_github_secret, test_auth_stg_github_secret) }}"
|
||||||
|
type: Opaque
|
Loading…
Add table
Add a link
Reference in a new issue