This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Andrea Luzzardi 22fb218b28 component: do not fail if #dagger marker has no compute
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-01-14 18:01:45 -08:00
.github/workflows Adding tests 2021-01-14 17:29:12 -08:00
cmd/dagger cmd: wire --input flag into client 2021-01-14 15:21:27 -08:00
dagger component: do not fail if #dagger marker has no compute 2021-01-14 18:01:45 -08:00
examples test: enable noop 2021-01-14 18:01:45 -08:00
.golangci.yml fix lint errors, enable CI 2021-01-08 17:18:34 +01:00
Dockerfile Fix dockerfile build 2021-01-11 11:10:07 -08:00
go.mod re-wire logging on top of zerolog 2021-01-13 18:18:48 -08:00
go.sum re-wire logging on top of zerolog 2021-01-13 18:18:48 -08:00
LICENSE add LICENSE file 2021-01-14 12:36:19 -08:00
Makefile Adding tests 2021-01-14 17:29:12 -08:00
README.md First pass at a README 2020-12-30 01:19:41 -08:00

dagger: the devops superglu, by the creators of docker

Dagger is an automation platform that lets software teams bind all their tools and infrastructure together into a unified supply chain.

Thanks to its vast catalog of adapters, developed in the open and curated for safety and quality, you can drop Dagger into an existing stack without changing it, and immediately start automating the most repetitive and complex tasks.

And most importantly, Dagger is programmable. Thanks to a powerful scripting environment, anyone with basic programming knowledge can extend Dagger with their own custom adapters and workflows. Whether you're a seasoned SRE building a custom PAAS for your organization, a hobbyist on a fun over-engineered week-end project, or a developer trying to setup CICD because, well, someone has to do it.. There's a whole community of fellow automation enthusiasts ready to help you write your first Dagger script.

Usage examples

A few examples of how Dagger is used in the wild:

  • Deploy a new API to AWS Elastic Container Service while continuing to deploy the main app on Heroku
  • Deploy lightweight staging environments on-demand for QA, integration testing or product demos.
  • Run integration tests on a live production-like deployment, automatically, for each pull request.
  • Deploy the same app on Netlify for testing, and on Kubernetes for production
  • Replace a 500-line deploy.sh with a 10-line configuration file
  • Control sprawl of serverless functions on AWS, Google Cloud, Cloudflare, Netlify etc. by gradually moving them to a generic interface, and switching backend at will.
  • When the ML team uploads a new model to their S3 bucket, automatically incorporate it into staging deployments, but not into production until manual confirmation!
  • Rotate database credentials, and automatically re-deploy all staging environments with the new credentials.
  • Allocate cool auto-generated URLs to development instances, and automatically configure your DNS, load-balancer and SSL certificate manager to route traffic to them.
  • Orchestrate application deployment across 2 infrastructure siloes, one managed with CloudFormation, the other with Terraform.
  • Migrate from Helm to Kustomize, without disrupting next week's big release.

Comparison to other automation platforms

CICD

Github, Gitlab, Jenkins, Spinnaker, Tekton

Build systems

Bazel, Nix, Skopeo

Infrastructure automation

Terraform, Pulumi, Ansible

Traditional scripting

Bash, Make, Python

PaaS

Heroku, Elastic Beanstalk, Cloud Foundry, Openshift

Kubernetes management

Kustomize, Helm, jsonnet

Gitops

Flux, ...