Skip to content

Commit

Permalink
Add feature for setting up the encryptedData Key Name (#19)
Browse files Browse the repository at this point in the history
* Add feature for setting up the encryptedData Key Name

* fix log output

* Fix log line; Add JSON Logging for the application

Co-authored-by: Jan Herber <jaydee@DESKTOP-GTJ767I.localdomain>
  • Loading branch information
Jaydee94 and Jan Herber authored Jul 18, 2020
1 parent 39581ab commit 904b7e1
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
19 changes: 16 additions & 3 deletions app/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,21 @@
import jinja2
import sys
import logging
import json_log_formatter

# Setup JSON handler for logging
formatter = json_log_formatter.JSONFormatter()
json_handler = logging.StreamHandler(stream=sys.stdout)
json_handler.setFormatter(formatter)

# Configure logging settings
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
log = logging.getLogger("kubseal-webgui")
log.addHandler(json_handler)
log.setLevel(logging.INFO)

# Set flask werkzeug logger to ERROR
flasklogger = logging.getLogger('werkzeug')
flasklogger.addHandler(json_handler)
flasklogger.setLevel(logging.ERROR)

# Initialize flask app including bootstrap
Expand All @@ -30,6 +40,7 @@ class KubesealForm(FlaskForm):
cleartextSecret = TextAreaField('Cleartext secret:', validators=[InputRequired()])
secretName = TextField('Secret name:', validators=[InputRequired()])
secretNamespace = TextField('Secret namespace:', validators=[InputRequired()])
encryptedDataKeyName = TextField('EncryptedData key name:', validators=[InputRequired()])


# Main Page
Expand All @@ -42,8 +53,9 @@ def run_kubeseal():
cltSecret = form.cleartextSecret.data
sName = form.secretName.data
sNamespace = form.secretNamespace.data
sEncryptedDataKeyName = form.encryptedDataKeyName.data
sealedSecret = Kubeseal.kubectlCMD(cltSecret, sNamespace, sName)
log.info('Created SealedSecret [%s] for Namespace[%s]', sName, sNamespace)
log.info('Created SealedSecret [%s] for namespace [%s] with encrypted data key name: [%s].', sName, sNamespace,sEncryptedDataKeyName)

# Load data from YAML into Python dictionary
env = jinja2.Environment(loader=jinja2.FileSystemLoader('./templates'),
Expand All @@ -53,7 +65,8 @@ def run_kubeseal():

kubernetesObject = template.render(sealedsecretName=sName,
sealedsecretNamespace=sNamespace,
encryptedSecret=sealedSecret[0])
encryptedSecret=sealedSecret[0],
secretKeyName=sEncryptedDataKeyName)

return render_template('output.html', sealedSecret=sealedSecret[0],
kubernetesObject=kubernetesObject)
Expand Down
2 changes: 1 addition & 1 deletion app/templates/sealed-secret.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ metadata:
namespace: {{ sealedsecretNamespace }}
spec:
encryptedData:
<your-key-name>: {{ encryptedSecret }}
{{ secretKeyName }}: {{ encryptedSecret }}
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ flask-bootstrap==3.3.7.1
flask-wtf==0.14.3
flask==1.1.2
itsdangerous==1.1.0
json_log_formatter==0.3.0
jinja2==2.11.1
markupsafe==1.1.1
visitor==0.1.3
Expand Down

0 comments on commit 904b7e1

Please sign in to comment.