kubectl + render + crypt family
kubectl-deploy it's a really simple kubectl
plugin which renders Kubernetes manifests (go-template) and applies them.
The way it works is similar to tiller-less Helm 3, but:
- follows the standard go-template API
- adds custom render functions
- provides Secret Management via crypt
- uses native Kubernetes authorization mechanism (everything is done via
kubectl
)
Place kubectl-deploy in your PATH
:
curl -#L \
--url "https://raw.githubusercontent.com/VirtusLab/kubectl-deploy/master/kubectl-deploy" \
--output "/usr/local/bin/kubectl-deploy"
chmod +x "/usr/local/bin/kubectl-deploy"
More info at Extend kubectl with plugins.
Ensure kubectl-deploy plugin is recognized by kubectl
:
kubectl plugin list
Example usage:
Usage:
kubectl deploy [flags]
Flags:
--config string config.yaml (required)
-c, --context string k8s context (optional)
-d, --debug enable debug logging level output (optional)
--dry-run If true, only print the object that would be sent, without sending it
-f, --file string k8s manifest or directory
-h, --help help for kubectl
-n, --namespace string k8s namespace (optional)
-t, --trace enable trace logging level output (optional)
For more advanced templates and rendering please take a look at render#usage.
kubectl deploy --file examples/manifests --config examples/config.yaml
Currently rendering and applying the Helm chart is not supported. Mostly because Helm does not follow the standard go-template API.
As a workaround please use helm template
command first.
Feel free to file issues or pull requests.