Deploy your app with Walhall

Overview

Walhall’s primary functions are to help you develop apps with microservice architectures and deploy them to Kubernetes. The apps derive their code from repositories linked from your GitHub organization, which are known as modules.

This section goes into detail about the process of deploying your apps with Walhall.

How do I deploy an app?

Once you have created an app, then you will see a button in the top right corner of the app overview page to deploy it:

Screenshot: Deploy your app in Walhall

By default, each app includes a development environment. However, you can create multiple environments to run multiple versions of your apps simultaneously.

What does “deploy ready” mean?

“Deploy ready” refers to whether or not a given module can be deployed with your app. In order to be “deploy ready,” a module must satisfy these conditions:

  • It must implement the Walhall CI/CD pipeline in the form of a .drone.yml file. You can find a template here.
  • It must include a Dockerfile.
  • Its GitHub repository must include a version tag that uses the following syntax: X.X.X

What happens when I deploy an app?

When you click “deploy,” Walhall does the following:

  1. Fetches Docker images of all the modules.
  2. Creates a namespace, config maps, secrets, Docker configuration, and Cloud DB credentials.
  3. Creates deployment controllers and pods, and then assigns a cluster IP, Ingress and DNS entries.

After that, each of your modules will be assigned a public IP. If you included BiFrost, then your app will have a single API URL for requests to all of your modules.

How do I implement the Walhall CI/CD pipeline?

See the CI/CD implementation page for more information.

How do I push an update to a module?

All you have to do is push a tag in the module’s repository and then go to your Walhall app, choose the new version tag, and re-deploy.

See the Update module page for more details.