Skip to content

Instantly share code, notes, and snippets.

@jslay88
Last active May 18, 2019 07:32
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jslay88/5051e774641feca90e65d541c7bae528 to your computer and use it in GitHub Desktop.
Save jslay88/5051e774641feca90e65d541c7bae528 to your computer and use it in GitHub Desktop.
Create k8s Secret YAML
#!/usr/bin/env python3
import base64
from getpass import getpass
def create_secret_yaml(secret_name, **kwargs):
"""
Create k8s Secret Yaml with key: value
Value must already be base64 encoded and in utf-8 encoded bytes
:param secret_name: Secret name for metadata
:param kwargs: Keywords are keys, values are values.
:return: UTF-8 Bytes containing Secret YAML
"""
data = bytes(
'apiVersion: v1\n'
'kind: Secret\n'
'metadata:\n'
' name: ' + secret_name + '\n'
'data:\n', 'utf-8')
for k, v in kwargs.items():
data += b' ' + k.encode('utf-8') + b': ' + v + b'\n'
return data
if __name__ == '__main__':
fn = input('YAML filename: ')
sn = input('Secret Name: ')
kvs = dict()
while True:
key = input('Key: ')
if key == '':
break
value = base64.b64encode(getpass('Value (Input is Hidden): ').encode('utf-8'))
kvs[key] = value
yaml = create_secret_yaml(sn, **kvs)
with open(fn, 'wb') as f:
f.write(yaml)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment