Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lhns/kubedeploy

A vendor-neutral way to deploy your App
https://github.com/lhns/kubedeploy

continuous-deployment curl devops docker docker-swarm gitops k8s kubernetes portainer webservice

Last synced: 9 days ago
JSON representation

A vendor-neutral way to deploy your App

Awesome Lists containing this project

README

        

# kubedeploy

[![Docker Workflow](https://github.com/lhns/kubedeploy/workflows/build/badge.svg)](https://github.com/lhns/kubedeploy/actions?query=workflow%3Abuild)
[![Release Notes](https://img.shields.io/github/release/lhns/kubedeploy.svg?maxAge=3600)](https://github.com/lhns/kubedeploy/releases/latest)
[![Apache License 2.0](https://img.shields.io/github/license/lhns/kubedeploy.svg?maxAge=3600)](https://www.apache.org/licenses/LICENSE-2.0)

A vendor-neutral and modular way to deploy your App with `curl` from a CI/CD-Pipeline to your Container Cluster of
choice.

## Example

```shell
curl -sSf -H "Authorization: Bearer " -d "{
\"resource\": \"my-app\",
\"actions\": [{\"env\": {
\"IMAGE\": \"ghcr.io/my/app:1.0.0\"
}}]
}" http://my-kubedeploy:8080/deploy/
```

## Actions

### Env

```json
{
"env": {
"IMAGE": "myimage:latest"
}
}
```

### Yaml

```json
{
"yaml": {
"path": [
"services",
"test",
"image"
],
"value": "myimage:latest"
}
}
```

### Json

```json
{
"json": {
"path": [
"services",
"test",
"image"
],
"value": "myimage:latest"
}
}
```

### Regex

```json
{
"regex": {
"find": "(?<=image: ).*?(?=\\r?\\n|$)",
"replace": "myimage:latest"
}
}
```

### Stack Config

```yaml
version: '3.8'

services:
kubedeploy:
image: ghcr.io/lhns/kubedeploy:latest
environment:
CONFIG: |
{
"targets": [
{
"id": "",
"secret": "",
"portainer": {
"url": "http://my-portainer",
"username": "",
"password": ""
}
}
]
}
ports:
- "8080:8080"
```

## Supported

- Docker Swarm via Portainer API
- doesn't support deployment status yet
- GitOps
- doesn't support deployment status yet (via Argo CD, Flux or Kubernetes API)

## Planned

- Docker Swarm via Docker API
- Kubernetes API

## License

This project uses the Apache 2.0 License. See the file called LICENSE.