A simple tool to deploy various Kubernetes resources
NO DAEMON, NO SERVICE, JUST ONE-OFF EXECUTION
- Support yaml,json,jsonnetandHelm
- Support incremental updates
You can either build binary from source, or just download pre-built binary.
- 
Build from source git clone https://github.com/yankeguo/ezdeploy.git cd ezdeploy go build -o ezdeploy ./cmd/ezdeploy
- 
Download pre-built binaries 
- Ensure kubectlandhelmare available in$PATH
- Prepare a resource directory, see below
- Run ezdeploy
- --dry-run, run without actually apply any changes.
- --kubeconfigor- KUBECONFIG, specify path to- kubeconfigfile
- KUBECONFIG_BASE64, base64 encoded- kubeconfigfile content
- Each top-level directory stands for a namespace
- Every resource file in that directory, will be applied to that namespace
For example:
namespace-a/
  workload-aa.yaml
  workload-ab.jsonnet
  workload-ac.json
namespace-b/
  workload-ba.yaml
  workload-bb.jsonnet
  workload-bc.json
- Put a Helm Chartto top-level directory_helm
- Create values file in namespace directory, with naming format [RELEASE_NAME].[CHART_NAME].helm.yaml
For example:
_helm/
  ingress-nginx/
    Chart.yaml
    values.yaml
    templates/
      ...
kube-system/
  main.ingress-nginx.helm.yaml
ezdeploy will create or update a release named main, using chart _helm/ingress-nginx, and values file
kube-system/primary.ingress-nginx.helm.yaml
ezdeploy also support values file in jsonnet, file name should be [RELEASE_NAME].[CHART_NAME].helm.jsonnet
GUO YANKE, MIT License