Skip to content
master
Go to file
Code

README.md

deploy-node-app

npm version

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 😉. 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.

Example

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:

  1. Create a Dockerfile, skaffold.yaml and all the YAML Kubernetes!
  2. Automatically provision common dependencies (like redis and postgres)!
  3. 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:

  1. Local and remote development!
  2. Infrastructure-as-code with no effort!
  3. Zero downtime, rolling deployments!
  4. 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
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!

You can’t perform that action at this time.