Build and deploy your first app

Overview

Follow this tutorial to build a microservice app using modules—i.e., code from repositories belonging to your GitHub organization—and deploy it to a development environment on Kubernetes using Walhall.

Requirements

  • You need a GitHub account which is a member of an organization that has been linked to Walhall.
  • The repositories in your organization must fulfill the following requirements:
    • They each have a .drone.yml file in the root. Here’s a template.
    • They each have a Dockerfile in the root.

1. Build the app

  1. Log in to Walhall.
  2. Enter a name for your new app and click Create. Screenshot: First app in Walhall
  3. Now you will see a list of repositories that have been imported from your organization into Walhall. In Walhall, these are known as modules. Click the Add button next to each module you want to include in your first app.
    Screenshot: List of modules while creating an app
  4. Walhall includes BiFrost, an open-source core authentication layer for microservices. You can use it in your Walhall apps to connect your services and act as an API gateway, but we don’t need it for this tutorial—go ahead and click Exclude.
  5. When you’re ready, click Review.

Now, Walhall will create your app and build the images of your modules. When the build process is done, the Deploy to Development button will become available.

Screenshot: Walhall modules ready to deploy

Click here to read more about modules and how to add them to your app.

2. Deploy the app

By default, each app includes a development environment. Each environment contains a set of configurations for the modules in the app, including module versions and configuration/environment variables.

You can deploy your app by clicking the Deploy to Development button in the top right.

Once you click this button, Walhall does the following:

  1. Creates an environment, a namespace, and environment secrets for your app.
  2. Creates instances of the app’s modules (and BiFrost, if you included it) in the namespace.
  3. Creates config maps, app secrets, cluster IPs, deployments, and containers for the modules (and BiFrost, if applicable).

Click here to read more about the deployment process.

Next steps

That’s it! Now you’ve created your first microservice app using Walhall. If you want to learn how to customize your app, then take a look at these pages:

API URL from BiFrost

If your app uses BiFrost, then BiFrost will run a discovery process to combine the endpoints of your modules into a single API, and the API will be exposed under a single URL. If it doesn’t use BiFrost, then an IP address will be assigned to each module.

BiFrost provides API documentation for your app via SwaggerUI. To get there, click the BiFrost URL on your app overview page, and then click the API link on the following page.

Beta limitations

Walhall is currently in closed beta. The following limitations to app and environment creation apply:

  • Both user access management and source code management are handled through GitHub. We will open this up to other version control systems (e.g., Gitlab, Bitbucket) in the future.
  • The number of applications is limited to 20, with a maximum of 3 environments each.
  • Walhall currently only offers the creation of development, staging, and demo environments; the option to create and manage production environments will be added later.
  • The role-based access model is not yet activated in Walhall. Each member of an organization in Walhall has full access to all applications for that organization and can delete and edit environments and applications.
  • Walhall works best in the latest version of Google Chrome.