deploy-node-app
v3.0.0
Published
Develop and deploy Node.js apps with Kubernetes, with zero config!
Downloads
308
Readme
deploy-node-app
Deploy apps to Kubernetes, with zero config!
deploy-node-app
will prompt you with a minimal set of questions required to deploy your app to any Kubernetes cluster. If zero-config with no lock-in sounds too good to be true - remember this project is in beta :wink:. However, it mostly works, and deploy-node-app
also supports more than just Node.js projects! Try it on a Python or Ruby project or a static site project!
Once you've run deploy-node-app
in your project, you can commit your .dna.json
file and use deploy-node-app
with no prompts in the future (works great for CI too!)
If you don't have a Kubernetes cluster, don't worry! This tool can automatically provision a free KubeSail.com cluster for you!
Instructions
Just run npx deploy-node-app
in your node project.
What does this tool do?
deploy-node-app
is a project bootstrapper, powered by Skaffold. After answering a few questions about your app, this tool can:
- Create a Dockerfile, skaffold.yaml and all the YAML Kubernetes!
- Automatically provision common dependencies (like redis and postgres)!
- Develop and deploy your app on any Kubernetes cluster!
Essentially, deploy-node-app
supercharges any web applications with awesome tools and best practices.
With deploy-node-app
, any codebase can have:
- Local and remote development!
- Infrastructure-as-code with no effort!
- Zero downtime, rolling deployments!
- Free hosting, including SSL and custom domains! (provided by KubeSail)
Usage and examples
Usage: deploy-node-app [env] [action]
Options:
-V, --version output the version number
-w, --write Write files to project (writes out Dockerfile, skaffold.yaml, etc)
-u, --update Update existing files (default: false)
-f, --force Dont prompt if possible (default: false)
-l, --label [foo=bar,tier=service] Add labels to created Kubernetes resources
-t, --target <path/to/project> Target project directory (default: ".")
-c, --config <path/to/kubeconfig> Kubernetes configuration file (default: "~/.kube/config")
-m, --modules <redis,postgres> Explicitly add modules
By default, deploy-node-app
will write a few files to your directory, and by default files won't be touched if they've been modified. deploy-node-app
by itself is the same as deploy-node-app production deploy
Simply run npx deploy-node-app
in your repository. The tool will attempt to prompt you when it needs answers to questions, and do it's best to bootstrap your application. Take a look at supported languages - we're always looking to add more!
Tests-as-examples
Take a look at /test for a growing list of examples!
Dependencies
deploy-node-app
knows about dependencies! For example, if you install a redis or postgres driver for Node.js, Python, Ruby and more, deploy-node-app
will automatically create Redis or Postgres deployments that work with your app!
Suggested tools:
- kubectl - required for creating your deployment, and recommended for managing your deployment after created
- Skaffold - Kubernetes workflow utility
deploy-node-app is created and maintained by
KubeSail - Kubernetes for Human Beings
Contributing
If you feel that this tool can be improved in any way, feel free to open an issue or pull request!