-
poc: compile kotlin (jvm) to graalvm native-image (on osx)
-
artifact: a cli application to read / decode / encode k8s secrets - compiled as executable binary
-
why? research + playground ;)
# download release from github (osx, wget)
$ wget https://github.com/bastman/kubesecret/raw/master/release/kubesecret.darwin-amd64 && chmod +x ./kubesecret.darwin-amd64
$ kubesecret --help
$ kubesecret list
$ kubesecret get example-secret
$ kubesecret get example-secret --base64-decode
# help
$ kubesecret --help
# list secrets (uses kubectl)
$ kubesecret list --help
$ kubesecret list
# get secret (uses kubectl)
$ kubesecret get --help
$ kubesecret get <SECRET_NAME>
$ kubesecret get <SECRET_NAME> --transform=none --output-format=yml
$ kubesecret get <SECRET_NAME> --transform=none --output-format=bash
$ kubesecret get <SECRET_NAME> --transform=base64-decode --output-format=yml
$ kubesecret get <SECRET_NAME> --transform=base64-decode --output-format=bash
$ kubesecret get <SECRET_NAME> --transform=base64-encode --output-format=yml
$ kubesecret get <SECRET_NAME> --transform=base64-encode --output-format=bash
# base64-decode secret
$ kubesecret base64-decode --help
$ cat example-secrets/secret.yaml | kubesecret base64-decode
$ kubesecret get <SECRET_NAME> | kubesecret base64-decode
# base64-encode secret
$ kubesecret base64-encode --help
$ cat example-secrets/secret-plain.yaml | kubesecret base64-encode
- https://medium.com/graalvm/understanding-class-initialization-in-graalvm-native-image-generation-d765b7e4d6ed
- http://royvanrijn.com/blog/2018/09/part-1-java-to-native-using-graalvm/
- get sdkman: https://sdkman.io/
$ sdk list java
$ sdk install java 1.0.0-rc6-graal
$ sdk use java 1.0.0-rc6-graal