comparison python/k8sdecode.py @ 791:46674fb64686

secret k8s decoder ring
author Jeff Hammel <k0scist@gmail.com>
date Tue, 04 Oct 2016 11:05:20 -0700
parents
children
comparison
equal deleted inserted replaced
790:d4403d13fb31 791:46674fb64686
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 """
5 get a kubernetes secret and decode it
6 """
7
8 # imports
9 import argparse
10 import base64
11 import json
12 import os
13 import subprocess
14 import sys
15
16
17 def main(args=sys.argv[1:]):
18 """CLI"""
19
20 # parse command line
21 parser = argparse.ArgumentParser(description=__doc__)
22 parser.add_argument('secret',
23 help="k8s secret name")
24 options = parser.parse_args(args)
25
26 # get JSON from `kubectl`
27 command = ['kubectl', 'get', 'secret', options.secret, '-o', 'json']
28 try:
29 output = subprocess.check_output(command)
30 except subprocess.CalledProcessError as e:
31 print (e)
32 sys.exit(e.returncode)
33 data = json.loads(output)['data']
34
35 # decode them
36 output = {key: base64.b64decode(value)
37 for key, value in data.items()}
38
39 # output them
40 print (json.dumps(output, indent=2, sort_keys=True))
41
42
43 if __name__ == '__main__':
44 main()