A vendor-neutral and modular way to deploy your App with curl
from a CI/CD-Pipeline to your Container Cluster of
choice.
curl -sSf -H "Authorization: Bearer <secret>" -d "{
\"resource\": \"my-app\",
\"actions\": [{\"env\": {
\"IMAGE\": \"ghcr.io/my/app:1.0.0\"
}}]
}" http://my-kubedeploy:8080/deploy/<target-id>
{
"env": {
"IMAGE": "myimage:latest"
}
}
{
"yaml": {
"path": [
"services",
"test",
"image"
],
"value": "myimage:latest"
}
}
{
"json": {
"path": [
"services",
"test",
"image"
],
"value": "myimage:latest"
}
}
{
"regex": {
"find": "(?<=image: ).*?(?=\\r?\\n|$)",
"replace": "myimage:latest"
}
}
version: '3.8'
services:
kubedeploy:
image: ghcr.io/lhns/kubedeploy:latest
environment:
CONFIG: |
{
"targets": [
{
"id": "<target-id>",
"secret": "<secret>",
"portainer": {
"url": "http://my-portainer",
"username": "<username>",
"password": "<password>"
}
}
]
}
ports:
- "8080:8080"
- 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)
- Docker Swarm via Docker API
- Kubernetes API
This project uses the Apache 2.0 License. See the file called LICENSE.