Skip to content

lhns/kubedeploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kubedeploy

Docker Workflow Release Notes Apache 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

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>

Actions

Env

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

Yaml

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

Json

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

Regex

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

Stack Config

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"

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.