https://github.com/caldito/soup
GitOps continuous deployment and management tool for Kubernetes focused on simplicity.
https://github.com/caldito/soup
cd continuous-deployment gitops go golang k8s kubernetes
Last synced: about 2 months ago
JSON representation
GitOps continuous deployment and management tool for Kubernetes focused on simplicity.
- Host: GitHub
- URL: https://github.com/caldito/soup
- Owner: caldito
- License: apache-2.0
- Created: 2021-02-20T11:03:31.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-04-19T16:53:22.000Z (about 3 years ago)
- Last Synced: 2024-11-15T01:39:45.929Z (7 months ago)
- Topics: cd, continuous-deployment, gitops, go, golang, k8s, kubernetes
- Language: Go
- Homepage:
- Size: 2.59 MB
- Stars: 40
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Soup

[](https://pkg.go.dev/github.com/caldito/soup)
[](https://goreportcard.com/report/github.com/caldito/soup)
[](https://github.com/caldito/soup/releases)
[](https://circleci.com/gh/caldito/soup/?branch=main)Soup is a GitOps operator for Kubernetes.
## Why Soup
* Focused on design and usage simplicity.
* Deployment to kubernetes performed with [Server-Side Apply](https://kubernetes.io/docs/reference/using-api/server-side-apply/), allows a simple yet fully capable deployment module for all type of resources.
* Match branch names with Regex.
* Match manifests names with patterns.
* Option to create namespaces called the same way as the branch. Useful in combination with the regex branch selector.Image [docs/images/overview.png](https://github.com/caldito/soup/blob/main/docs/images/overview.png) shows an overview on how the system works.
You can watch the following [demo](https://asciinema.org/a/439238) of Soup working.
## Getting started
### Prerequisites`Kubernetes >= v1.20`
### Installation
Install in 3 easy steps:
1. First get the kubernetes kubernetes manifest for installing
```
curl -O https://raw.githubusercontent.com/caldito/soup/main/manifests/install.yml
```
2. Override the `repo` argument in the file you just downloaded
3. Apply to the cluster
```
kubectl apply -f install.yml
```
There is also support for arm64 clusters. To use it change the container image in the `install.yml` file from `pablogcaldito/soup:` to `pablogcaldito/soup:arm64-` before applying.## Usage
### Deployment Configuration file
Soup reads a file named `.soup.yml` on the repository branches in order to know what to deploy and in which namespace. An example can be found in [docs/examples/.soup.yml](https://github.com/caldito/soup/blob/main/docs/examples/.soup.yml).### Arguments
The command line arguments should be in this form:
```
-arg=value
```
Available arguments:
* repo: the url of the repo. This must be specified
* interval: the sync interval in seconds. By default is set to 120s.## Contributing
Pull requests are welcomed and encouraged. For questions, feature requests and bug reports, please open an issue.There is also a [TODO](https://github.com/caldito/soup/blob/main/TODO) file containing work planned to do.
An internal diagram which may be useful for contributors can be found in [docs/images/internals.png](https://github.com/caldito/soup/blob/main/docs/images/internals.png).