service key worker to refresh automatic keys
This commit is contained in:
parent
2242c6773d
commit
a6f6a114c2
6 changed files with 82 additions and 18 deletions
33
boot.py
33
boot.py
|
@ -1,30 +1,20 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
from urlparse import urlunparse
|
||||
|
||||
from jinja2 import Template
|
||||
from cachetools import lru_cache
|
||||
import release
|
||||
|
||||
|
||||
from app import app
|
||||
from data.model.release import set_region_release
|
||||
from util.config.database import sync_database_with_config
|
||||
from util.generatepresharedkey import generate_key
|
||||
|
||||
|
||||
def create_quay_service_key():
|
||||
"""
|
||||
Creates a service key for quay to use in the jwtproxy
|
||||
"""
|
||||
quay_key, key_id = generate_key('quay', 'quay')
|
||||
|
||||
with open('/conf/quay.pem', mode='w') as f:
|
||||
f.truncate(0)
|
||||
f.write(quay_key.exportKey())
|
||||
|
||||
return key_id
|
||||
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_audience():
|
||||
audience = app.config.get('JWTPROXY_AUDIENCE')
|
||||
|
||||
|
@ -47,6 +37,21 @@ def get_audience():
|
|||
return urlunparse((scheme, hostname + ':' + port, '', '', '', ''))
|
||||
|
||||
|
||||
def create_quay_service_key():
|
||||
"""
|
||||
Creates a service key for quay to use in the jwtproxy
|
||||
"""
|
||||
minutes_until_expiration = app.config.get('QUAY_SERVICE_KEY_EXPIRATION', 120)
|
||||
expiration = timedelta(minutes=minutes_until_expiration)
|
||||
quay_key, key_id = generate_key('quay', get_audience(), datetime.now() + expiration)
|
||||
|
||||
with open('/conf/quay.pem', mode='w') as f:
|
||||
f.truncate(0)
|
||||
f.write(quay_key.exportKey())
|
||||
|
||||
return key_id
|
||||
|
||||
|
||||
def create_jwtproxy_conf(quay_key_id):
|
||||
"""
|
||||
Generates the jwtproxy conf from the jinja template
|
||||
|
|
Reference in a new issue