changeset 791:46674fb64686

secret k8s decoder ring
author Jeff Hammel <k0scist@gmail.com>
date Tue, 04 Oct 2016 11:05:20 -0700
parents d4403d13fb31
children 0aa1d72ef538
files python/k8sdecode.py
diffstat 1 files changed, 44 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python/k8sdecode.py	Tue Oct 04 11:05:20 2016 -0700
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""
+get a kubernetes secret and decode it
+"""
+
+# imports
+import argparse
+import base64
+import json
+import os
+import subprocess
+import sys
+
+
+def main(args=sys.argv[1:]):
+    """CLI"""
+
+    # parse command line
+    parser = argparse.ArgumentParser(description=__doc__)
+    parser.add_argument('secret',
+                        help="k8s secret name")
+    options = parser.parse_args(args)
+
+    # get JSON from `kubectl`
+    command = ['kubectl', 'get', 'secret', options.secret, '-o', 'json']
+    try:
+        output = subprocess.check_output(command)
+    except subprocess.CalledProcessError as e:
+        print (e)
+        sys.exit(e.returncode)
+    data = json.loads(output)['data']
+
+    # decode them
+    output = {key: base64.b64decode(value)
+              for key, value in data.items()}
+
+    # output them
+    print (json.dumps(output, indent=2, sort_keys=True))
+
+
+if __name__ == '__main__':
+    main()