Some improvements to babashka/process 0.0.2:
Tokenization:
https://github.com/babashka/process#tokenization
Example: (sh "ls -la")
Note: automatic parsing of arg strings
:extra-env
option:
https://github.com/babashka/process#add-environment
@nha one quick way to get started with kubernetes is to wrap kubectl doing something like
(require '[clojure.java.shell :refer [sh]])
(-> (sh "kubectl" "get" "pod" "--all-namespaces" "-o" "json")
:out
(json/parse-string true)
:items
)
Thanks everyone, interesting feedback and pointers here ๐
Made some updates to the bb task runner (WIP). Documentation updated: https://github.com/babashka/babashka/issues/756 Discuss: https://github.com/babashka/babashka/issues/757 Play around: #babashka-circleci-builds (bb.edn branch binaries)
right, I know thatโs an option, I was hoping to avoid shell wrapping but maybe thatโs the easiest ๐
Yup, I have a wrapper around kubectl that helps cut down the verbosity of it. Works very well.
I've also wanted to generate k8s yaml via bb code, but that hasn't materialized yet.
right, there is verbosity but also potential state thatโs in there too right? Like, login/which cluster is the default at the moment etc.
Better than plain bash for sure though I am considering bb + bash vs going with the java client
There is https://github.com/nubank/k8s-api but it has some deps that are not part of babashka so you would need to create a babashka pod for it or just use a full clojure repl. It's also possible to use curl to interact with the api. btw, you can use kubectl to switch contexts in your script. Lots of choice here. But l agree with nate that bb with kubectl is surprisingly usable so it may be all you'll need for quick scripts.
I was able to port antq's Makefile to bb.edn's new task runner: https://github.com/borkdude/antq/blob/bb.edn/bb.edn https://github.com/borkdude/antq/blob/bb.edn/Makefile