A simple GitOps tool, based on one-off run, easy to integrate with existing CI/CD routine
NO DAEMON, NO SERVICE, JUST ONE-OFF EXECUTION
- Support
yaml
,json
,jsonnet
andHelm
- Incremental update
You can either build binary from source, or just download pre-built binary.
-
Build from source
git clone https://github.com/yankeguo/ezops.git cd ezops go build -o ezops ./cmd/ezops
-
Download pre-built binaries
- Ensure
kubectl
andhelm
are available in$PATH
- Prepare a manifests directory, see below
- Run
ezops
--dry-run
, run without actually apply any changes.--kubeconfig
orKUBECONFIG
, specify path tokubeconfig
fileKUBECONFIG_BASE64
, base64 encodedkubeconfig
file content
- Each top-level directory stands for a namespace
- Every manifest 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 Chart
to 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
ezops
will create or update a release named main
, using chart _helm/ingress-nginx
, and values file
kube-system/primary.ingress-nginx.helm.yaml
ezops
also support Helm
values file in JSONNet
GUO YANKE, MIT License