Skip to content
This repository has been archived by the owner on Apr 28, 2019. It is now read-only.

antoniaklja/kubectl-deploy

Repository files navigation

kubectl-deploy

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:

Installation

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.

Usage

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.

Examples

Kubernetes manifests

kubectl deploy --file examples/manifests --config examples/config.yaml

Helm Chart [WIP]

kubectl deploy --file examples/helm/templates --config examples/helm/values.yaml

Limitations

  • 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.

Contribution

Feel free to file issues or pull requests.