4a05d9f562 | ||
---|---|---|
CONTRIBUTORS | ||
LICENSE | ||
Makefile | ||
README.md | ||
apt.mk | ||
compose-file.mk | ||
compose.mk | ||
copy.mk | ||
cron.mk | ||
helm.mk | ||
k8s.mk | ||
kustomize.mk | ||
swarm.mk | ||
systemd.mk |
README.md
make-deploy
A simple Makefile based deployment system.
make-deploy was initially hosted at https://git.dnix.de/an/make-deploy. Since it has become heavily used at chefkoch.de for system deployments, and lots of code is committed there, we moved the repo to https://git.chefkoch.net/pub/make-deploy. A mirror still exists at https://git.dnix.de/mirror/make-deploy.
make-deploy is licensed under the terms of the MIT-License. See LICENSE for info.
Installation
Clone make-deploy as a submodule into your repository:
$ git submodule add https://git.chefkoch.net/pub/make-deploy
Create a symlink to the Makefile:
$ ln -s make-deploy/Makefile .
Create config.mk
(for common config options) and secrets.mk
(for sensitive information, should be git-crypted) in your project.
Example config.mk
:
DEPLOY_NAME = my-project
DEPLOY_PATH = /srv
DEPLOY_TYPE = compose
DEPLOY_HOSTS = server01.example.com server02.example.com
DOCKER_IMAGE = dr.example.com/my-project:latest
DOCKER_LOGIN = 1
DOCKER_REGISTRY = dr.example.com
SSH_USER = ci
Example secrets.mk
:
DOCKER_USER = root
DOCKER_PASS = secret1234
Usage
Start the deployment process
make deploy
Create docker contexts for the target hosts
make create-docker-contexts
Update make-deploy submodule in your project
make self-update
Available options for DEPLOY_TYPE
copy, compose, swarm, k8s (TBD), helm, cron (TBD)
copy
Just copy the repo to the remote location(s). Put additional logic into pre- and post-deploy.sh.
compose
Docker Compose deployment.
swarm
Docker Swarm deployment.
k8s, helm, cron
To be implemented.