Giter Site home page Giter Site logo

autoapply's Introduction

autoapply

Build Status Coverage status Docker build status License

Automatically apply changes to a Kubernetes cluster.

Technical overview

  • All resource files are stored in Git, which means there is a single source of truth for the state of your application.
  • When editing resource files, the changes can be documented and merged using your standard Git workflow.
  • You can use yaml-crypt or sops to store Kubernetes secrets directly in the repository.

  1. Usage
  2. Configuration
  3. Docker tags
  4. Related projects
  5. License

Usage

First create an empty, publicly accessible repository. For private repositories, you can use deploy keys. Add the desired Kubernetes resource files to the repository, for example nginx.yaml, and make sure all files have been pushed.

Now download kubernetes-simple.yaml and change https://github.com/autoapply/hello-world to the URL of the repository you just created. Then create the autoapply deployment in your cluster:

$ kubectl apply -f kubernetes-simple.yaml

Now, autoapply will download the resource files from your repository and apply them to the cluster. When you update the repository, autoapply will fetch the new files and update the cluster accordingly.

To automatically setup autoapply in a cluster, see the related autosetup project.

For more detailed instructions, see Hello, World!

Configuration

A basic configuration file looks like this:

loop:
  commands:
  - git clone --depth 1 https://github.com/autoapply/hello-world workspace/
  - kubectl apply -f workspace/

For more information, see the documentation.

Docker images

  • autoapply/autoapply:latest provides a minimal image with just autoapply installed (Dockerfile)
  • autoapply/autoapply:kubectl also provides git, kubectl, sops and dockerize (Dockerfile)
  • autoapply/autoapply:helm also provides git, sops and helm (Dockerfile)
  • autoapply/autoapply:jekyll also provides ruby, java, git and jekyll (Dockerfile)

Related projects

  • kube-applier is very similar, but less flexible. It doesn't support Helm or custom workflows like using sops.
  • Keel provides fully automated updates, but only changes the container image version, nothing else.
  • Helm does not provide automated updates, but still offers a consistent way to release new versions. However, you will still need a way to manage the values that will be used to create releases from charts.
  • Flux is also very similar, but goes a step further and uses an abstraction on top of the existing Kubernetes model. There is also a blog post by Weaveworks about GitOps and Kubernetes, which gives a good overview of the topic.
  • kube-backup is for the opposite way and regularly adds all Kubernetes objects into the configured git repository.

License

Autoapply is licensed under the MIT License

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.