Kubernetes Secret の Manifest ファイルを base64 decode するツールである kube-sec-decoderの紹介です。

kubectl-view-secret との違い

Kubernetes Secret を base64 decode して出力してくれるツールとして有名なのは kubectl plugin の kubectl-view-secret ではないかと思います。kubectl-view-secret は kubectl get secret SECRET -o yaml の結果を base64 decode して出力してくれるイメージだと思いますが、kube-sec-decoder は Manifest ファイルを入力として受け取り decode して出力する点が違います。そのため、kubectl createkubectl apply をする前に Kubernetes Secret の Manifest ファイルを簡単に確認するのが主な用途になります。

Installation

https://github.com/tkuchiki/kube-sec-decoder/releases からダウンロードして、/usr/local/bin などの PATH が通っているディレクトリに配置してください。

Usage

Manifest ファイルをパイプで渡すだけです。

$ cat test.yaml
apiVersion: v1
kind: Secret
metadata:
  name: testsecret
  namespace: default
data:
  FOO: Zm9v
  BAR: YmFy
  
$ cat test.yaml| kube-sec-decoder
apiVersion: v1
kind: Secret
metadata:
  name: testsecret
  namespace: default
data:
  FOO: foo
  BAR: bar

レビューなどで、Secret の data を隠して Manifest を共有したいことがあったので、値を隠した状態で出力する機能を実装しています。

$ cat test.yaml | kube-sec-decoder --hide-data
apiVersion: v1
kind: Secret
metadata:
  name: testsecret
  namespace: default
data:
  FOO: <secret>
  BAR: <secret>

$ cat test.yaml | kube-sec-decoder --hide-data --replace-data xxx
apiVersion: v1
kind: Secret
metadata:
  name: testsecret
  namespace: default
data:
  FOO: xxx
  BAR: xxx

Pull Request 作成前に、Kubernetes Secret の Manifest ファイルの中身を確認するときなどにお使いください。