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 Auth mechanism (everything is done via
kubectl
)
Place kubectl-deploy in your PATH
:
curl -#L \
--url "https://raw.githubusercontent.com/antoniaklja/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 If true, only print the object that would be sent, without sending it
-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
kubectl deploy --file examples/helm/templates --config examples/helm/values.yaml
- does not recognize resource name changes (just dumb
kubectl apply -f
) - no complex features from helm like hooks (
"helm.sh/hook":
), releases, templates, magic variables, etc.
Feel free to file issues or pull requests.