Installation
To install, use go get
:
$ go get -d github.com/linyows/dewy
Usage
When the application functions as a server:
$ cd /opt/yourapp
$ env GITHUB_TOKEN=xxx... SLACK_TOKEN=xxx... \
dewy server --repository yourname/yourapp \
--artifact yourapp_linux_amd64.tar.gz \
--port 3000 \
-- /opt/yourapp/current/yourapp
When the application and server are separated, or when the server is unnecessary:
$ cd /opt/yourapp
$ env GITHUB_TOKEN=xxx... SLACK_TOKEN=xxx... \
dewy assets --repository yourname/yourapp \
--artifact yourapp_linux_amd64.tar.gz
Architecture
Dewy has 3 abstract backends and can be used according to the user's environment.
- Remote repository backend
- Notification backend
- Storage backend
Dewy shares the polling history within the cluster in storage so that it does not communicate excessively to remote repair acquisition.
? Dewy is not CIOps but GitOps. As in the article on weave works, you do not have to grant permissions externally, so it's simple and easy to solve if problems arise.
Kubernetes anti-patterns: Let's do GitOps, not CIOps!
https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops
Server mode
Process right after startup:
$ ps axf
/usr/bin/dewy server ...(main process)
\_ /opt/your-app/current/your-app --args server (child process)
When deployment is started, a new child process is created and the old one is gracefully killed.
$ ps axf
/usr/bin/dewy server ...(main process)
\_ /opt/your-app/current/your-app --args server (old child process) <-- kill
\_ /opt/your-app/current/your-app --args server (current child process)
Provisioning
- Chef cookbook - https://github.com/linyows/dewy-cookbook
- Puppet module - https://github.com/takumakume/puppet-dewy
Todo
Repository
- github release
- git repo
KVS
- file
- memory
- redis
- consul
- etcd
Notification
- slack
Contribution
- Fork (https://github.com/linyows/dewy/fork)
- Create a feature branch
- Commit your changes
- Rebase your local changes against the master branch
- Run test suite with the
go test ./...
command and confirm that it passes - Run
gofmt -s
- Create a new Pull Request