Skip to content
Search

Gitopper

lastmod 2024-08-16created 2024-08-161 edits

Doing Gitops without Kubernetes

Features

  • A GitOps tool for people who don't use Kubernetes
  • Watches a remote git repository, pulls changes, and reloads the server (service) process by sending it a HUP signal
  • Performs a sparse (but full-history) git checkout so that each service sees only the files it actually needs
  • Sets up several bind mounts to give services access to files in Git
  • If the target directory doesn't exist, it is created as the current user (if specified)
  • Offers little more than pulling a repository, but lets you use a GitOps workflow without depending on an environment like Kubernetes
  • The Git repository used to provision services must have at least one (sub)directory for each service
  • Installs packages if specified, but doesn't upgrade or downgrade them, assuming there is a better way to do that
  • The remote interface uses SSH keys for authentication
  • The following features are implemented:
    • Metrics: exports the Git hash so rollouts can be tracked
    • Diff detection: possible via metrics or gitopperctl
    • Out of band rollbacks: bypasses the normal Git workflow using gitopperctl
    • No client side processing: files are used exactly as they are in the Git repository
    • Canarying: a service can be given a different branch to check out

See also

Favorite site

author Zer0 sitemap