Mercurial > hg > config
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() |