FASJSON, first try
Signed-off-by: Aurélien Bompard <aurelien@bompard.org>
This commit is contained in:
parent
2e7ede1b71
commit
b0fee5ec4b
15 changed files with 563 additions and 0 deletions
109
playbooks/openshift-apps/fasjson.yml
Normal file
109
playbooks/openshift-apps/fasjson.yml
Normal file
|
@ -0,0 +1,109 @@
|
|||
- 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: fasjson
|
||||
description: "Accounts API"
|
||||
appowners:
|
||||
- abompard
|
||||
- pingou
|
||||
tags:
|
||||
- apply-appowners
|
||||
when: env == "production"
|
||||
- role: openshift/project
|
||||
app: fasjson
|
||||
description: "Accounts API"
|
||||
appowners:
|
||||
- abompard
|
||||
- pingou
|
||||
- nils
|
||||
- ryanlerch
|
||||
tags:
|
||||
- apply-appowners
|
||||
when: env == "staging"
|
||||
|
||||
# Declare the service in IPA
|
||||
- role: ipa/service
|
||||
host: "fasjson{{ env_suffix }}.fedoraproject.org"
|
||||
service: HTTP
|
||||
|
||||
# Setup kerberos delegation
|
||||
- role: ipa/servicedelegationtarget
|
||||
name: ipa-http
|
||||
members:
|
||||
- host: {{ ipa_server }}
|
||||
service: HTTP
|
||||
- role: ipa/servicedelegationrule
|
||||
name: fasjson
|
||||
members:
|
||||
- host: "fasjson{{ env_suffix }}.fedoraproject.org"
|
||||
service: HTTP
|
||||
targets:
|
||||
- ipa-http
|
||||
- ipa-ldap
|
||||
# The ipa-ldap delegation target is declared during IPA installation
|
||||
|
||||
# Keytabs
|
||||
- role: openshift/keytab
|
||||
app: fasjson
|
||||
key: host
|
||||
secret_name: fasjson-keytab-host
|
||||
service: host
|
||||
host: "fasjson{{ env_suffix }}.fedoraproject.org"
|
||||
- role: openshift/keytab
|
||||
app: fasjson
|
||||
key: http
|
||||
secret_name: fasjson-keytab-http
|
||||
service: HTTP
|
||||
host: "fasjson{{ env_suffix }}.fedoraproject.org"
|
||||
|
||||
- role: openshift/imagestream
|
||||
app: fasjson
|
||||
imagename: fasjson
|
||||
|
||||
- role: openshift/object
|
||||
app: fasjson
|
||||
template: buildconfig.yml
|
||||
objectname: buildconfig.yml
|
||||
|
||||
- role: openshift/object
|
||||
app: fasjson
|
||||
template: configmap.yml
|
||||
objectname: configmap.yml
|
||||
|
||||
- role: openshift/ipa-client
|
||||
app: fasjson
|
||||
|
||||
- role: openshift/object
|
||||
app: fasjson
|
||||
file: service.yml
|
||||
objectname: service.yml
|
||||
|
||||
- role: openshift/object
|
||||
app: fasjson
|
||||
template: route.yml
|
||||
objectname: route.yml
|
||||
|
||||
- role: openshift/object
|
||||
app: fasjson
|
||||
template: secret-webhook.yml
|
||||
objectname: secret-webhook.yml
|
||||
|
||||
- role: openshift/object
|
||||
app: fasjson
|
||||
template: deploymentconfig.yml
|
||||
objectname: deploymentconfig.yml
|
||||
|
||||
- role: openshift/start-build
|
||||
app: fasjson
|
||||
buildname: fasjson
|
0
roles/ipa/servicedelegationrule/defaults/main.yml
Normal file
0
roles/ipa/servicedelegationrule/defaults/main.yml
Normal file
52
roles/ipa/servicedelegationrule/tasks/main.yml
Normal file
52
roles/ipa/servicedelegationrule/tasks/main.yml
Normal file
|
@ -0,0 +1,52 @@
|
|||
---
|
||||
- name: Get admin ticket
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
shell: echo "{{ipa_admin_password}}" | kinit admin
|
||||
check_mode: no
|
||||
changed_when: "1 != 1"
|
||||
tags:
|
||||
- config
|
||||
- krb5
|
||||
|
||||
|
||||
- name: Create servicedelegationrule entry
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: ipa servicedelegationrule-add {{name}}-delegation
|
||||
register: add_result
|
||||
check_mode: no
|
||||
changed_when: "'Added service delegation rule' in add_result.stdout"
|
||||
failed_when: "not ('Added service delegation rule' in add_result.stdout or 'already exists' in add_result.stderr)"
|
||||
tags:
|
||||
- config
|
||||
- krb5
|
||||
|
||||
- name: Add servicedelegationrule members
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: ipa servicedelegationrule-add-member {{name}}-delegation --principals={{item.service}}/{{item.host}}@{{ipa_realm}}
|
||||
loop: "{{ members }}"
|
||||
register: add_member_result
|
||||
check_mode: no
|
||||
changed_when: "'Number of members added 1' in add_member_result.stdout"
|
||||
failed_when: "not ('Number of members added 1' in add_member_result.stdout or 'Number of members added 0' in add_member_result.stderr)"
|
||||
tags:
|
||||
- config
|
||||
- krb5
|
||||
|
||||
- name: Add servicedelegationrule targets
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: ipa servicedelegationrule-add-target {{name}}-delegation --servicedelegationtargets={{item}}-delegation-targets
|
||||
loop: "{{ targets }}"
|
||||
register: add_target_result
|
||||
check_mode: no
|
||||
changed_when: "'Number of members added 1' in add_target_result.stdout"
|
||||
failed_when: "not ('Number of members added 1' in add_target_result.stdout or 'Number of members added 0' in add_target_result.stderr)"
|
||||
tags:
|
||||
- config
|
||||
- krb5
|
||||
|
||||
- name: Destroy admin ticket
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: kdestroy -A
|
||||
tags:
|
||||
- config
|
||||
- krb5
|
1
roles/ipa/servicedelegationtarget/defaults/main.yml
Normal file
1
roles/ipa/servicedelegationtarget/defaults/main.yml
Normal file
|
@ -0,0 +1 @@
|
|||
name: "{{ host }}-{{ service|lower }}"
|
40
roles/ipa/servicedelegationtarget/tasks/main.yml
Normal file
40
roles/ipa/servicedelegationtarget/tasks/main.yml
Normal file
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
- name: Get admin ticket
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
shell: echo "{{ipa_admin_password}}" | kinit admin
|
||||
check_mode: no
|
||||
changed_when: "1 != 1"
|
||||
tags:
|
||||
- config
|
||||
- krb5
|
||||
|
||||
|
||||
- name: Create servicedelegationtarget entry
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: ipa servicedelegationtarget-add {{name}}-delegation-targets
|
||||
register: add_result
|
||||
check_mode: no
|
||||
changed_when: "'Added service delegation target' in add_result.stdout"
|
||||
failed_when: "not ('Added service delegation target' in add_result.stdout or 'already exists' in add_result.stderr)"
|
||||
tags:
|
||||
- config
|
||||
- krb5
|
||||
|
||||
- name: Add servicedelegationtarget members
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: ipa servicedelegationtarget-add-member {{name}}-delegation-targets --principals={{item.service}}/{{item.host}}@{{ipa_realm}}
|
||||
loop: "{{ members }}"
|
||||
register: add_member_result
|
||||
check_mode: no
|
||||
changed_when: "'Number of members added 1' in add_member_result.stdout"
|
||||
failed_when: "not ('Number of members added 1' in add_member_result.stdout or 'Number of members added 0' in add_member_result.stderr)"
|
||||
tags:
|
||||
- config
|
||||
- krb5
|
||||
|
||||
- name: Destroy admin ticket
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: kdestroy -A
|
||||
tags:
|
||||
- config
|
||||
- krb5
|
14
roles/openshift-apps/fasjson/files/service.yml
Normal file
14
roles/openshift-apps/fasjson/files/service.yml
Normal file
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: fasjson-web
|
||||
labels:
|
||||
app: fasjson
|
||||
spec:
|
||||
ports:
|
||||
- name: web
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
selector:
|
||||
app: fasjson
|
||||
deploymentconfig: fasjson
|
43
roles/openshift-apps/fasjson/templates/Dockerfile
Normal file
43
roles/openshift-apps/fasjson/templates/Dockerfile
Normal file
|
@ -0,0 +1,43 @@
|
|||
FROM fedora:32
|
||||
LABEL \
|
||||
name="fasjson" \
|
||||
vendor="Fedora Infrastructure" \
|
||||
license="GPLv3+"
|
||||
ENV HOME=/tmp
|
||||
RUN dnf install -y \
|
||||
openldap-clients \
|
||||
vim \
|
||||
git \
|
||||
python3-pip \
|
||||
python3-setuptools \
|
||||
ipa-client \
|
||||
gcc \
|
||||
python-devel \
|
||||
krb5-devel \
|
||||
openldap-devel \
|
||||
httpd \
|
||||
mod_auth_gssapi \
|
||||
mod_session \
|
||||
policycoreutils-python-utils \
|
||||
python3-mod_wsgi \
|
||||
python3-dns \
|
||||
python3-flask \
|
||||
python3-gssapi \
|
||||
python3-ldap \
|
||||
python3-pip \
|
||||
python3-wheel && \
|
||||
dnf autoremove -y && \
|
||||
dnf clean all -y
|
||||
RUN git clone https://github.com/fedora-infra/fasjson.git && \
|
||||
pushd fasjson && \
|
||||
git checkout {{ (env == 'production')|ternary('stable', 'staging') }} && \
|
||||
pip-3 install . && \
|
||||
mkdir -p /usr/share/fasjson && \
|
||||
cp ansible/roles/fasjson/files/fasjson.wsgi /usr/share/fasjson && \
|
||||
popd && \
|
||||
rm -rf fasjson
|
||||
RUN rm -f /etc/krb5.conf && ln -sf /etc/krb5/krb5.conf /etc/krb5.conf && \
|
||||
ln -sf /etc/keytabs/host /etc/krb5.keytab && \
|
||||
rm -f /etc/openldap/ldap.conf && ln -sf /etc/ipa/ldap.conf /etc/openldap/ldap.conf
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT bash /etc/fasjson/start.sh
|
30
roles/openshift-apps/fasjson/templates/buildconfig.yml
Normal file
30
roles/openshift-apps/fasjson/templates/buildconfig.yml
Normal file
|
@ -0,0 +1,30 @@
|
|||
{% macro load_file(filename) %}{% include filename %}{%- endmacro -%}
|
||||
apiVersion: build.openshift.io/v1
|
||||
kind: BuildConfig
|
||||
metadata:
|
||||
name: fasjson
|
||||
labels:
|
||||
app: fasjson
|
||||
build: fasjson
|
||||
spec:
|
||||
runPolicy: Serial
|
||||
source:
|
||||
type: Dockerfile
|
||||
dockerfile: |-
|
||||
{{ load_file('Dockerfile') | indent(6) }}
|
||||
strategy:
|
||||
type: Docker
|
||||
output:
|
||||
to:
|
||||
kind: ImageStreamTag
|
||||
name: fasjson:latest
|
||||
triggers:
|
||||
- type: ImageChange
|
||||
- type: GitHub
|
||||
{% if fasjson_stg_github_secret is defined and env == 'staging' %}
|
||||
github:
|
||||
secret: "{{ fasjson_stg_github_secret }}"
|
||||
{% elif fasjson_github_secret is defined and env == 'production' %}
|
||||
github:
|
||||
secret: "{{ fasjson_github_secret }}"
|
||||
{% endif %}
|
26
roles/openshift-apps/fasjson/templates/configmap.yml
Normal file
26
roles/openshift-apps/fasjson/templates/configmap.yml
Normal file
|
@ -0,0 +1,26 @@
|
|||
{% macro load_file(filename) %}{% include filename %}{%- endmacro -%}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: List
|
||||
metadata: {}
|
||||
items:
|
||||
- apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: fasjson-config
|
||||
labels:
|
||||
app: fasjson
|
||||
data:
|
||||
start.sh: |-
|
||||
{{ load_file('start.sh') | indent(6) }}
|
||||
httpd.conf: |-
|
||||
{{ load_file('httpd.conf') | indent(6) }}
|
||||
- apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: krb5-config
|
||||
labels:
|
||||
app: fasjson
|
||||
data:
|
||||
krb5.conf: |-
|
||||
{{ load_file('krb5.conf') | indent(6) }}
|
94
roles/openshift-apps/fasjson/templates/deploymentconfig.yml
Normal file
94
roles/openshift-apps/fasjson/templates/deploymentconfig.yml
Normal file
|
@ -0,0 +1,94 @@
|
|||
apiVersion: apps.openshift.io/v1
|
||||
kind: DeploymentConfig
|
||||
metadata:
|
||||
name: fasjson
|
||||
labels:
|
||||
app: fasjson
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
app: fasjson
|
||||
deploymentconfig: fasjson
|
||||
strategy:
|
||||
type: Rolling
|
||||
activeDeadlineSeconds: 21600
|
||||
rollingParams:
|
||||
intervalSeconds: 1
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
timeoutSeconds: 600
|
||||
updatePeriodSeconds: 1
|
||||
template:
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
app: fasjson
|
||||
deploymentconfig: fasjson
|
||||
spec:
|
||||
containers:
|
||||
- name: fasjson
|
||||
imagePullPolicy: Always
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
volumeMounts:
|
||||
- name: keytab-host-volume
|
||||
mountPath: /etc/keytabs/host
|
||||
subPath: host
|
||||
readOnly: true
|
||||
- name: keytab-http-volume
|
||||
mountPath: /etc/keytabs/http
|
||||
subPath: http
|
||||
readOnly: true
|
||||
- name: krb-config-volume
|
||||
mountPath: /etc/krb5
|
||||
readOnly: true
|
||||
- name: fasjson-config-volume
|
||||
mountPath: /etc/fasjson
|
||||
readOnly: true
|
||||
- name: ipa-config-volume
|
||||
mountPath: /etc/ipa
|
||||
readOnly: true
|
||||
- name: httpdir
|
||||
mountPath: /httpdir
|
||||
livenessProbe:
|
||||
timeoutSeconds: 10
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 60
|
||||
httpGet:
|
||||
path: /healthz/live
|
||||
port: 8080
|
||||
readinessProbe:
|
||||
timeoutSeconds: 10
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 60
|
||||
httpGet:
|
||||
path: /healthz/ready
|
||||
port: 8080
|
||||
volumes:
|
||||
- name: fasjson-config-volume
|
||||
configMap:
|
||||
name: fasjson-config
|
||||
- name: keytab-volume-host
|
||||
secret:
|
||||
secretName: fasjson-keytab-host
|
||||
- name: keytab-volume-http
|
||||
secret:
|
||||
secretName: fasjson-keytab-http
|
||||
- name: krb-config-volume
|
||||
configMap:
|
||||
name: krb5-config
|
||||
- name: ipa-config-volume
|
||||
configMap:
|
||||
name: ipa-config
|
||||
- name: httpdir
|
||||
emptyDir: {}
|
||||
triggers:
|
||||
- imageChangeParams:
|
||||
automatic: true
|
||||
containerNames:
|
||||
- fasjson
|
||||
from:
|
||||
kind: ImageStreamTag
|
||||
name: fasjson:latest
|
||||
type: ImageChange
|
||||
- type: ConfigChange
|
95
roles/openshift-apps/fasjson/templates/httpd.conf
Normal file
95
roles/openshift-apps/fasjson/templates/httpd.conf
Normal file
|
@ -0,0 +1,95 @@
|
|||
Listen 0.0.0.0:8080
|
||||
ServerRoot "/httpdir"
|
||||
PidFile "/httpdir/httpd.pid"
|
||||
LoadModule authn_file_module modules/mod_authn_file.so
|
||||
LoadModule authn_anon_module modules/mod_authn_anon.so
|
||||
LoadModule authz_user_module modules/mod_authz_user.so
|
||||
LoadModule authz_host_module modules/mod_authz_host.so
|
||||
LoadModule include_module modules/mod_include.so
|
||||
LoadModule log_config_module modules/mod_log_config.so
|
||||
LoadModule env_module modules/mod_env.so
|
||||
LoadModule ext_filter_module modules/mod_ext_filter.so
|
||||
LoadModule expires_module modules/mod_expires.so
|
||||
LoadModule headers_module modules/mod_headers.so
|
||||
LoadModule mime_module modules/mod_mime.so
|
||||
LoadModule status_module modules/mod_status.so
|
||||
LoadModule negotiation_module modules/mod_negotiation.so
|
||||
LoadModule dir_module modules/mod_dir.so
|
||||
LoadModule alias_module modules/mod_alias.so
|
||||
LoadModule rewrite_module modules/mod_rewrite.so
|
||||
LoadModule version_module modules/mod_version.so
|
||||
LoadModule wsgi_module modules/mod_wsgi_python3.so
|
||||
LoadModule authn_core_module modules/mod_authn_core.so
|
||||
LoadModule authz_core_module modules/mod_authz_core.so
|
||||
LoadModule unixd_module modules/mod_unixd.so
|
||||
LoadModule mpm_event_module modules/mod_mpm_event.so
|
||||
LoadModule request_module modules/mod_request.so
|
||||
LoadModule auth_gssapi_module modules/mod_auth_gssapi.so
|
||||
LoadModule session_module modules/mod_session.so
|
||||
LoadModule session_cookie_module modules/mod_session_cookie.so
|
||||
LoadModule session_dbd_module modules/mod_session_dbd.so
|
||||
LoadModule auth_form_module modules/mod_auth_form.so
|
||||
LoadModule setenvif_module modules/mod_setenvif.so
|
||||
|
||||
StartServers 20
|
||||
ServerLimit 100
|
||||
MaxRequestsPerChild 2000
|
||||
MaxRequestWorkers 100
|
||||
TypesConfig /etc/mime.types
|
||||
AddDefaultCharset UTF-8
|
||||
CoreDumpDirectory /tmp
|
||||
|
||||
# Logging. Don't log OpenShift's probes
|
||||
SetEnvIf Request_URI "^/healthz/" dontlog
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
||||
CustomLog /httpdir/access.log combined env=!dontlog
|
||||
ErrorLog /httpdir/error.log
|
||||
LogLevel info
|
||||
|
||||
WSGISocketPrefix run/wsgi
|
||||
WSGIDaemonProcess fasjson processes=4 threads=1 maximum-requests=500 \
|
||||
display-name=%{GROUP} socket-timeout=2147483647 \
|
||||
lang=C.UTF-8 locale=C.UTF-8 home=/httpdir
|
||||
WSGIImportScript /usr/share/fasjson/fasjson.wsgi \
|
||||
process-group=fasjson application-group=fasjson
|
||||
WSGIScriptAlias / /usr/share/fasjson/fasjson.wsgi
|
||||
WSGIScriptReloading Off
|
||||
WSGIRestrictStdout Off
|
||||
WSGIRestrictSignal Off
|
||||
#WSGIPythonOptimize 1 # This causes the ldap module to fail
|
||||
|
||||
<Location "/">
|
||||
WSGIProcessGroup fasjson
|
||||
WSGIApplicationGroup fasjson
|
||||
|
||||
Require all granted
|
||||
ErrorDocument 401 /errors/401
|
||||
ErrorDocument 403 /errors/403
|
||||
ErrorDocument 404 /errors/404
|
||||
ErrorDocument 500 /errors/500
|
||||
</Location>
|
||||
|
||||
<LocationMatch "^/v[0-9]+/">
|
||||
AuthType GSSAPI
|
||||
AuthName "Kerberos Login"
|
||||
GssapiUseSessions On
|
||||
Session On
|
||||
SessionCookieName ipa_session path=/;httponly;secure;
|
||||
SessionHeader IPASESSION
|
||||
GssapiSessionKey file:/httpdir/run/session.key
|
||||
|
||||
GssapiCredStore keytab:/etc/keytabs/httpd
|
||||
GssapiImpersonate On
|
||||
GssapiDelegCcacheDir /httpdir/run/ccaches
|
||||
GssapiDelegCcachePerms mode:0660
|
||||
GssapiUseS4U2Proxy on
|
||||
GssapiAllowedMech krb5
|
||||
|
||||
Require valid-user
|
||||
|
||||
Header always append X-Frame-Options DENY
|
||||
Header always append Content-Security-Policy "frame-ancestors 'none'"
|
||||
Header unset Set-Cookie
|
||||
Header unset ETag
|
||||
FileETag None
|
||||
</LocationMatch>
|
29
roles/openshift-apps/fasjson/templates/krb5.conf
Normal file
29
roles/openshift-apps/fasjson/templates/krb5.conf
Normal file
|
@ -0,0 +1,29 @@
|
|||
includedir /etc/krb5.conf.d/
|
||||
|
||||
[libdefaults]
|
||||
default_realm = {{ ipa_realm }}
|
||||
dns_lookup_realm = false
|
||||
dns_lookup_kdc = false
|
||||
rdns = false
|
||||
dns_canonicalize_hostname = false
|
||||
ticket_lifetime = 24h
|
||||
forwardable = true
|
||||
udp_preference_limit = 0
|
||||
default_ccache_name = KEYRING:persistent:%{uid}
|
||||
|
||||
[realms]
|
||||
{{ ipa_realm }} = {
|
||||
kdc = {{ ipa_server }}:88
|
||||
master_kdc = {{ ipa_server }}:88
|
||||
admin_server = {{ ipa_server }}:749
|
||||
kpasswd_server = {{ ipa_server }}:464
|
||||
default_domain = {{ ipa_realm | lower }}
|
||||
pkinit_anchors = FILE:/etc/ipa/ca.crt
|
||||
pkinit_pool = FILE:/etc/ipa/ca.crt
|
||||
}
|
||||
|
||||
[domain_realm]
|
||||
{{ env_suffix }}.fedoraproject.org = {{ ipa_realm }}
|
||||
{{ ipa_realm | lower }} = {{ ipa_realm }}
|
||||
{{ inventory_hostname }} = {{ ipa_realm }}
|
||||
fasjson{{ env_suffix }}.fedoraproject.org = {{ ipa_realm }}
|
16
roles/openshift-apps/fasjson/templates/route.yml
Normal file
16
roles/openshift-apps/fasjson/templates/route.yml
Normal file
|
@ -0,0 +1,16 @@
|
|||
apiVersion: v1
|
||||
kind: Route
|
||||
metadata:
|
||||
name: fasjson-web
|
||||
labels:
|
||||
app: fasjson
|
||||
spec:
|
||||
host: fasjson{{ env_suffix }}.fedoraproject.org
|
||||
port:
|
||||
targetPort: web
|
||||
to:
|
||||
kind: Service
|
||||
name: fasjson-web
|
||||
tls:
|
||||
termination: edge
|
||||
insecureEdgeTerminationPolicy: Redirect
|
|
@ -0,0 +1,7 @@
|
|||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: fasjson-github-webhook-secret
|
||||
data:
|
||||
WebHookSecretKey: "{{ (env == 'production')|ternary(fasjson_github_secret, fasjson_stg_github_secret) }}"
|
||||
type: Opaque
|
7
roles/openshift-apps/fasjson/templates/start.sh
Normal file
7
roles/openshift-apps/fasjson/templates/start.sh
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
rm -rf /httpdir/*
|
||||
mkdir /httpdir/run/ /httpdir/run/ccaches/
|
||||
ln -s /etc/httpd/modules /httpdir/modules
|
||||
truncate --size=0 /httpdir/access.log /httpdir/error.log
|
||||
tail -qf /httpdir/access.log /httpdir/error.log &
|
||||
exec httpd -f /etc/fasjson/httpd.conf -DFOREGROUND -DNO_DETACH
|
Loading…
Add table
Add a link
Reference in a new issue